Ein Framework für die Generierung und Bewertung von Fuzz-Targets
Dieses Framework generiert Fuzz-Targets für reale C/C++/Java/Python-Projekte mit verschiedenen Large Language Models (LLM) und benchmarkt sie über die OSS-Fuzz-Plattform.
Insgesamt gelingt es diesem Framework, LLMs erfolgreich einzusetzen, um gültige Fuzz-Targets (die eine Abdeckungssteigerung ungleich null erzeugen) für 160 C/C++-Projekte zu generieren. Die maximale Steigerung der Zeilenabdeckung gegenüber den vorhandenen, von Menschen geschriebenen Targets beträgt 29 %.
Beachten Sie, dass diese Berichte nicht öffentlich sind, da sie möglicherweise nicht offengelegte Schwachstellen enthalten.
Verwendung
In unserer ausführlichen Nutzungsanleitung finden Sie Anweisungen, wie Sie dieses Framework ausführen und auf Grundlage der Ergebnisse Berichte erstellen können.
Unabhängige Agent-Ausführung und -Bewertung
Sie können auch einzelne Agents ausführen oder bewerten, ohne vollständige Experimente auszuführen, indem Sie das integrierte Agent-Ausführungsframework verwenden.
In der Dokumentation des Frameworks finden Sie detaillierte Anweisungen, wie Sie einzelne Agents oder Agent-Sequenzen ausführen können.
Kooperationen
Interessiert an Forschung oder Kooperationen mit der Open-Source-Community?
Erstellen Sie gerne ein Issue oder schreiben Sie uns eine E-Mail: [email protected].
Entdeckte Bugs
Bisher haben wir 30 neue Bugs/Schwachstellen gemeldet, die von automatisch generierten Targets gefunden wurden, die mit diesem Framework erstellt wurden:
Diese Bugs konnten ausschließlich mit neu generierten Targets entdeckt werden. Sie waren mit den vorhandenen OSS-Fuzz-Targets nicht erreichbar.
Aktuelle Top-Verbesserungen der Abdeckung nach Projekt
Projekt
Gesamtabdeckungsgewinn
Gesamter relativer Gewinn
Von OSS-Fuzz-gen insgesamt abgedeckte Zeilen
Von OSS-Fuzz-gen neu abgedeckte Zeilen
Bereits abgedeckte Zeilen
Gesamtzahl der Projektzeilen
phmap
98.42%
205.75%
1601
1181
574
1120
usbguard
97.62%
26.04%
24550
5463
20979
3564
onednn
96.67%
7057.14%
5434
5434
77
210
avahi
82.06%
155.90%
3358
2814
1805
3046
pugixml
72.98%
194.95%
9015
6646
3409
7662
librdkafka
66.88%
845.57%
5019
4490
531
1169
casync
66.75%
903.23%
1171
1120
124
1678
tomlplusplus
61.06%
331.10%
4755
3652
1103
5981
astc-encoder
59.35%
177.88%
2726
1745
981
2940
mruby
48.56%
0.00%
34493
34493
0
71038
arduinojson
42.10%
85.80%
3344
1800
2098
4276
json
41.13%
66.51%
5051
3339
5020
8119
double-conversion
40.40%
88.12%
1663
779
884
1928
tinyobjloader
38.26%
77.01%
1157
717
931
1874
glog
38.18%
58.69%
895
331
564
867
cppitertools
35.78%
45.07%
253
151
335
422
eigen
35.38%
190.70%
2643
1947
1021
* „Total project lines" misst den Quellcode des getesteten Projekts, der von den bereits vorhandenen, von Menschen geschriebenen Fuzz-Targets aus OSS-Fuzz kompiliert und gelinkt wird.
* „Total coverage gain" wird mithilfe eines Nenners von „Total project lines" berechnet. „Total relative gain" ist die Steigerung der Abdeckung im Vergleich zur bisherigen Anzahl abgedeckter Zeilen.
* Beim Kompilieren der neuen Fuzz-Targets kann zusätzlicher Code aus dem getesteten Projekt einbezogen werden, was zu hohen prozentualen Gewinnen führt.
Zitieren dieser Arbeit
Bitte klicken Sie für Zitationsdetails auf die Schaltfläche 'Cite this repository' auf der rechten Seite dieser GitHub-Seite.