Um Framework para Geração e Avaliação de Alvos de Fuzz
Este framework gera alvos de fuzz para projetos reais em C/C++/Java/Python com vários Modelos de Linguagem de Grande Porte (LLM) e os avalia por meio da plataforma OSS-Fuzz.
No geral, este framework consegue aproveitar com sucesso os LLMs para gerar alvos de fuzz válidos (que geram aumento de cobertura diferente de zero) para 160 projetos em C/C++. O aumento máximo de cobertura de linhas é de 29% em relação aos alvos escritos por humanos existentes.
Observe que esses relatórios não são públicos, pois podem conter vulnerabilidades não divulgadas.
Uso
Consulte nosso guia de uso detalhado para instruções sobre como executar este framework e gerar relatórios com base nos resultados.
Execução e Avaliação Independente de Agentes
Você também pode executar ou avaliar agentes individuais sem executar experimentos completos, usando o framework integrado de execução de agentes. Consulte a documentação do framework para instruções detalhadas sobre como executar agentes individuais ou sequências de agentes.
Colaborações
Interessado em colaborações de pesquisa ou na comunidade de código aberto? Sinta-se à vontade para criar uma issue ou enviar um e-mail para: [email protected].
Bugs Descobertos
Até agora, relatamos 30 novos bugs/vulnerabilidades encontrados por alvos gerados automaticamente construídos por este framework:
Esses bugs só puderam ser descobertos com alvos recém-gerados. Eles não eram alcançáveis com os alvos OSS-Fuzz existentes.
Principais melhorias atuais de cobertura por projeto
Projeto
Ganho total de cobertura
Ganho relativo total
Total de linhas cobertas pelo OSS-Fuzz-gen
Novas linhas cobertas pelo OSS-Fuzz-gen
Linhas cobertas existentes
Total de linhas do projeto
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 de linhas do projeto" mede o código-fonte do projeto em teste compilado e vinculado pelos alvos de fuzz escritos por humanos pré-existentes do OSS-Fuzz.
* O "Ganho total de cobertura" é calculado usando como denominador o "Total de linhas do projeto". O "Ganho relativo total" é o aumento na cobertura em comparação com o antigo número de linhas cobertas.
* Código adicional do projeto em teste pode ser incluído ao compilar os novos alvos de fuzz e resultar em ganhos percentuais elevados.
Citando Este Trabalho
Clique no botão 'Citar este repositório' localizado no lado direito desta página do GitHub para obter detalhes de citação.