Google ha revelado que su herramienta de fuzzing impulsada por IA, OSS-Fuzz, se ha utilizado para ayudar a identificar 26 vulnerabilidades en varios repositorios de código fuente abierto, incluida una falla de gravedad media en la biblioteca criptográfica OpenSSL.
“Estas vulnerabilidades particulares representan un hito para la búsqueda automatizada de vulnerabilidades: cada una fue encontrada con IA, utilizando objetivos fuzz mejorados y generados por IA”, dijo el equipo de seguridad de código abierto de Google en una publicación de blog compartida con The Hacker News.
La vulnerabilidad OpenSSL en cuestión es CVE-2024-9143 (puntuación CVSS: 4,3), un error de escritura en memoria fuera de los límites que puede provocar el fallo de una aplicación o la ejecución remota de código. El problema se solucionó en las versiones 3.3.3, 3.2.4, 3.1.8, 3.0.16, 1.1.1zb y 1.0.2zl de OpenSSL.
Google, que agregó la capacidad de aprovechar modelos de lenguaje grandes (LLM) para mejorar la cobertura de fuzzing en OSS-Fuzz en agosto de 2023, dijo que la vulnerabilidad probablemente ha estado presente en el código base durante dos décadas y que “no habría sido detectable con objetivos fuzz existentes escritos por humanos.”
Además, el gigante tecnológico señaló que el uso de IA para generar objetivos difusos ha mejorado la cobertura del código en 272 proyectos C/C++, añadiendo más de 370.000 líneas de código nuevo.
“Una de las razones por las que estos errores podrían permanecer sin descubrirse durante tanto tiempo es que la cobertura de la línea no es garantía de que una función esté libre de errores”, dijo Google. “La cobertura del código como métrica no puede medir todas las rutas y estados posibles del código; diferentes indicadores y configuraciones pueden desencadenar diferentes comportamientos, descubriendo diferentes errores”.
Estos descubrimientos de vulnerabilidades asistidos por IA también son posibles gracias al hecho de que los LLM están demostrando ser expertos en emular el flujo de trabajo difuso de un desarrollador, lo que permite una mayor automatización.
El desarrollo se produce cuando la compañía reveló a principios de este mes que su marco basado en LLM llamado Big Sleep facilitó la detección de una vulnerabilidad de día cero en el motor de base de datos de código abierto SQLite.
Al mismo tiempo, Google ha estado trabajando para hacer la transición de sus propias bases de código a lenguajes seguros para la memoria, como Rust, y al mismo tiempo modernizar mecanismos para abordar las vulnerabilidades de seguridad de la memoria espacial, que ocurren cuando es posible que un fragmento de código acceda a la memoria que está fuera de su destino previsto. límites: dentro de proyectos C++ existentes, incluido Chrome.
Esto incluye migrar a Safe Buffers y habilitar libc++ reforzado, que agrega verificación de límites a las estructuras de datos estándar de C++ para eliminar una clase importante de errores de seguridad espacial. Además, señaló que los gastos generales incurridos como resultado de la incorporación del cambio son mínimos (es decir, un impacto promedio en el rendimiento del 0,30%).
“El libc++ reforzado, agregado recientemente por contribuyentes de código abierto, introduce un conjunto de controles de seguridad diseñados para detectar vulnerabilidades como accesos fuera de límites en producción”, dijo Google. “Aunque C++ no será totalmente seguro para la memoria, estas mejoras reducen el riesgo (…), lo que conducirá a un software más fiable y seguro.”