Google ha anunciado que su herramienta de fuzzing impulsada por IA, OSS-Fuzz, ha sido utilizada para descubrir 26 vulnerabilidades en diferentes repositorios de código abierto, incluida una falla de gravedad media en la biblioteca criptográfica OpenSSL.
“Estas vulnerabilidades marcan un avance en la detección automatizada de fallos: todas fueron localizadas gracias a la IA, empleando objetivos de fuzz mejorados y generados por la misma”, indicó el equipo de seguridad de código abierto de Google en una entrada en su blog compartida con The Hacker News.
La vulnerabilidad de OpenSSL en cuestión es CVE-2024-9143 (con una puntuación CVSS de 4,3), un fallo de escritura en memoria fuera de los límites que podría causar un bloqueo de la aplicación o la ejecución remota de código. Este error se ha corregido 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 en agosto de 2023 introdujo modelos de lenguaje grandes (LLM) para optimizar la cobertura de fuzzing en OSS-Fuzz, indicó que la vulnerabilidad probablemente estuvo presente en el código durante 20 años y no habría sido detectada con los objetivos de fuzzing escritos por humanos.
Además, la empresa destacó que el uso de IA para crear estos objetivos ha mejorado la cobertura del código en 272 proyectos C/C++, incorporando más de 370,000 nuevas líneas de código.
“Una de las razones por las que estos errores se han mantenido ocultos por tanto tiempo es que la cobertura de línea no garantiza que una función esté libre de fallos”, explicó Google. “La cobertura de código como métrica no puede medir todas las rutas y estados posibles: diferentes configuraciones y señales pueden activar comportamientos variados y revelar errores distintos”.
Estos hallazgos de vulnerabilidades asistidos por IA también son posibles gracias a que los LLM están demostrando ser efectivos para emular el flujo de trabajo de fuzzing de un desarrollador, lo que permite una mayor automatización.
Este progreso ocurre después de que Google anunciara a principios de este mes que su marco Big Sleep, basado en LLM, facilitó la detección de una vulnerabilidad de día cero en el motor de base de datos de código abierto SQLite.
Simultáneamente, Google ha estado trabajando en la transición de sus propios códigos a lenguajes seguros para la memoria, como Rust, mientras moderniza los mecanismos para abordar vulnerabilidades de seguridad de memoria en proyectos C++ existentes, como Chrome. Esto incluye la migración a Safe Buffers y la implementación de libc++ reforzado, que añade verificación de límites a las estructuras de datos estándar de C++ para evitar errores de seguridad espacial. Según la empresa, el impacto en el rendimiento de este cambio es mínimo (solo un 0,30%).
“La versión reforzada de libc++, recientemente añadida por colaboradores de código abierto, introduce controles de seguridad diseñados para detectar vulnerabilidades como accesos fuera de los límites en producción”, explicó Google. “Aunque C++ no será completamente seguro en cuanto a la memoria, estas mejoras reducen el riesgo, resultando en un software más confiable y seguro”.
Fuente: thehackernews.com