
LLM powered fuzzing via OSS-Fuzz.
Este framework genera fuzz targets para proyectos reales de C/C++/Java/Python con
varios modelos de lenguaje de gran tamaño (LLM) y los evalúa mediante la
plataforma OSS-Fuzz.
Más detalles disponibles en Fuzzing impulsado por IA: rompiendo la barrera de la caza de bugs:

Los modelos admitidos actualmente son:
Los fuzz targets generados se evalúan con cuatro métricas frente a los datos más actualizados del entorno de producción:
OSS-Fuzz.Aquí hay un ejemplo de resultado de experimento del 31 de enero de 2024. El experimento incluyó más de 1300 benchmarks de 297 proyectos de código abierto.

En general, este framework logra aprovechar con éxito los LLM para generar fuzz targets válidos (que generan un aumento de cobertura distinto de cero) para 160 proyectos de C/C++. El aumento máximo de cobertura de líneas es del 29% respecto a los fuzz targets escritos por humanos existentes.
Ten en cuenta que estos informes no son públicos, ya que pueden contener vulnerabilidades no divulgadas.
Consulta nuestra guía de uso para obtener instrucciones sobre cómo ejecutar este framework y generar informes basados en los resultados.
También puedes ejecutar o evaluar agentes individuales sin ejecutar experimentos completos, utilizando el framework integrado de ejecución de agentes. Consulta la documentación del framework para obtener instrucciones detalladas sobre cómo ejecutar agentes individuales o secuencias de agentes.
¿Te interesan las colaboraciones de investigación o con la comunidad de código abierto? No dudes en crear un issue o enviarnos un correo electrónico: [email protected].
Hasta ahora, hemos reportado 30 nuevos bugs/vulnerabilidades encontrados por fuzz targets generados automáticamente construidos por este framework:
Estos bugs solo pudieron descubrirse con fuzz targets generados recientemente. No eran alcanzables con los fuzz targets OSS-Fuzz existentes.
* "Líneas totales del proyecto" mide el código fuente del proyecto bajo prueba compilado y enlazado por los fuzz targets escritos por humanos preexistentes de OSS-Fuzz.
* La "ganancia total de cobertura" se calcula utilizando como denominador las "líneas totales del proyecto". La "ganancia relativa total" es el aumento de cobertura en comparación con el número anterior de líneas cubiertas.
* Puede incluirse código adicional del proyecto bajo prueba al compilar los nuevos fuzz targets, lo que resulta en ganancias de alto porcentaje.
Haz clic en el botón 'Cite this repository' situado en el lado derecho de esta página de GitHub para obtener los detalles de la cita.
| Proyecto | Bug | LLM | Constructor de prompts | Oráculo de destino |
|---|
| Proyecto | Ganancia total de cobertura | Ganancia relativa total | Líneas cubiertas totales por OSS-Fuzz-gen | Líneas cubiertas nuevas por OSS-Fuzz-gen | Líneas cubiertas existentes | Líneas totales del proyecto |
|---|
| 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 | 5503 |
| glaze | 34.55% | 30.06% | 2920 | 2416 | 8036 | 6993 |
| rapidjson | 31.83% | 148.07% | 1585 | 958 | 647 | 3010 |
| libunwind | 30.58% | 83.25% | 2899 | 1342 | 1612 | 4388 |
| openh264 | 30.07% | 50.14% | 6607 | 5751 | 11470 | 19123 |