Robocikowo>ROBOCIKOWO
Ocena jakości

Differential Oracle

2026BadawczyOpublikowano: 2 września 2026Aktualizacja: 2 września 2026Opublikowany
Programowalny test oracle uznający wejście za poprawny PoC podatności tylko, gdy powoduje awarię w buildzie sprzed łatki i nie powoduje jej w buildzie po łatce.
Kluczowa innowacja
Przeformułowuje ważność exploita/PoC jako maszynowo sprawdzalny, dwustronny predykat różnicowy między buildem sprzed i po łatce, zamieniając generację exploitów w pętlę zaproponuj–zweryfikuj–popraw.
Kategoria
Ocena jakości
Poziom abstrakcji
Wzorzec
Poziom operacji
Ewaluacja (runtime)Środowisko agentowe
Zastosowania
Automatyczna generacja dowodów podatności (PoC)Weryfikacja skuteczności łatek bezpieczeństwaTrening i ewaluacja agentów cyberbezpieczeństwaDifferential testing oprogramowania

Jak działa

Dla instancji podatności przygotowuje się dwa buildy tego samego oprogramowania: podatny (b⁻) i załatany (b⁺). Kandydujące wejście x jest uruchamiane na obu buildach z instrumentacją sanitizerem. Oracle uznaje x za poprawny PoC tylko, gdy b⁻ ulega docelowej awarii sanitizera, a b⁺ nie. Ponieważ predykat jest programowalny i rozstrzygalny, agent może testować każdego kandydata bez nadzoru; werdykt wraz ze śladem sanitizera stanowi ugruntowaną informację zwrotną, zamieniając konstrukcję PoC w wykonywalną pętlę zaproponuj–zweryfikuj–popraw.

Rozwiązany problem

Jak obiektywnie i bez nadzoru człowieka rozstrzygnąć, czy wygenerowany przez model exploit/PoC faktycznie wykorzystuje daną podatność, a nie zawiesza programu z przypadkowego powodu.

Komponenty

Build sprzed łatki (b⁻)Wersja podatna

Podatna wersja oprogramowania, na której poprawny PoC musi wywołać awarię.

Build po łatce (b⁺)Wersja naprawiona

Załatana wersja, na której poprawny PoC nie może wywołać awarii.

Predykat Crash / instrumentacja sanitizeremSygnał runtime

Crash(b,x) jest prawdą wtw. gdy uruchomienie b na x wywołuje docelową awarię sanitizera; dostarcza sygnału dla błędów pamięci.

Dwustronny werdykt 𝒱(x)Decyzja oracle

𝒱(x)=𝟙[Crash(b⁻,x)]∧𝟙[¬Crash(b⁺,x)] — maszynowo sprawdzalny sygnał sukcesu.

Ewolucja

Oryginalny paper · 2026 · arXiv preprint · Jian Yang
CyberFactory: Scaling Cyber Security Capabilities with Instances from the Wild
Jian Yang, Haau-Sing Li, Shawn Guo, Zixi Zhao, Yibo Tan, Jiajun Wu, Aishan Liu, Xianglong Liu, Tianyu Zheng, Bryan Dai, Chengran Yang
1998
Differential testing
Punkt przełomowy

Sformułowanie zasady porównywania zachowań wariantów programu na tych samych wejściach jako oracle.

2026
Differential oracle w CyberFactory
Punkt przełomowy

Dwustronny, maszynowo sprawdzalny oracle różnicowy (build sprzed/po łatce) dla autonomicznej generacji PoC przez agentów AI.

Hiperparametry (konfigurowalne osie)

Docelowy sanitizer / sygnał awariiWysoka

Rodzaj instrumentacji sanitizerem definiujący predykat Crash (np. wykrywanie błędów pamięci).