Recientemente, Google anunció que su herramienta de fuzzing basada en inteligencia artificial, OSS-Fuzz, ha descubierto 26 vulnerabilidades en bibliotecas de código abierto, incluyendo una vulnerabilidad de severidad media en la biblioteca de encriptación OpenSSL.
El equipo de seguridad de código abierto de Google declaró en una entrada de blog: "El descubrimiento de estas vulnerabilidades marca un nuevo hito en la detección automatizada de vulnerabilidades: cada vulnerabilidad se encontró mediante objetivos de fuzzing generados y mejorados por IA."
Nota de la fuente de la imagen: Imagen generada por IA, proveída por Midjourney
La vulnerabilidad de OpenSSL descubierta, con el identificador CVE-2024-9143 (puntuación CVSS de 4.3), se manifiesta como un error de escritura de memoria fuera de los límites, lo que podría provocar el bloqueo de la aplicación o la ejecución remota de código. Este problema se ha solucionado en varias versiones de OpenSSL, incluyendo las versiones 3.3.3, 3.2.4, 3.1.8, 3.0.16, 1.1.1zb y 1.0.2zl. Google señala que esta vulnerabilidad podría haber existido en la base de código durante casi 20 años, y que los objetivos de fuzzing tradicionales escritos por humanos no pudieron detectarla.
Google también menciona que, gracias a los objetivos de fuzzing generados por IA, se ha mejorado la cobertura de código de 272 proyectos en C/C++, añadiendo más de 370.000 líneas de código nuevo. Google explica que muchas fallas pasan desapercibidas porque la cobertura de código no es equivalente a la ausencia de vulnerabilidades funcionales. La cobertura de código por sí sola no puede medir todas las posibles rutas y estados del código, ya que diferentes indicadores y configuraciones pueden desencadenar comportamientos distintos, exponiendo diferentes vulnerabilidades.
Este descubrimiento de vulnerabilidades asistido por IA también se beneficia del excelente desempeño de los modelos lingüísticos grandes (LLM) en la simulación de los flujos de trabajo de fuzzing de los desarrolladores, lo que aumenta aún más la automatización. Además, a principios de este mes, Google reveló que su framework basado en LLM, Big Sleep, ayudó a detectar una vulnerabilidad de día cero en el motor de base de datos de código abierto SQLite.
Para mejorar la seguridad de sus propias bases de código, Google está impulsando la migración de código a lenguajes de memoria segura como Rust, y está corrigiendo vulnerabilidades de seguridad de memoria espacial en los proyectos C++ existentes. Esto incluye la migración a búferes seguros y la habilitación de libc++ endurecido, eliminando una clase importante de vulnerabilidades de seguridad espacial mediante la adición de comprobaciones de límites a las estructuras de datos C++ estándar. Google afirma que la pérdida de rendimiento causada por estas mejoras es mínima, con una media de solo el 0,30%.
Google enfatiza además que el libc++ endurecido, añadido recientemente por contribuyentes de código abierto, introduce una serie de comprobaciones de seguridad diseñadas para detectar vulnerabilidades como el acceso fuera de los límites en entornos de producción. Aunque el lenguaje C++ no puede lograr la seguridad de memoria completa, estas mejoras sin duda reducen el riesgo y hacen que el software sea más fiable y seguro.
Puntos clave:
🌟 La herramienta OSS-Fuzz de Google descubrió vulnerabilidades en 26 proyectos de código abierto, incluyendo una vulnerabilidad en OpenSSL que existía desde hace casi 20 años.
🔍 Los objetivos de fuzzing generados por IA mejoraron la cobertura de código de 272 proyectos C/C++, añadiendo más de 370.000 líneas de código nuevo.
🔒 Google está migrando código a lenguajes de memoria segura y mejorando la seguridad de los proyectos C++ mediante el endurecimiento de libc++, entre otras medidas.