Anuncio de Nuevos Paquetes Comunitarios de CodeQL

Elena Digital López

GitHub ha presentado recientemente sus nuevos CodeQL Community Packs, una completa colección de consultas y modelos diseñados para enriquecer las capacidades de análisis de código en la plataforma. Estos paquetes personalizados están destinados a complementar el conjunto estándar de consultas de CodeQL, y ofrecen recursos adicionales tanto para desarrolladores como para investigadores de seguridad.

CodeQL es una herramienta innovadora que permite a los desarrolladores interrogar sus bases de código como si se tratase de bases de datos, lo que facilita la identificación eficaz de vulnerabilidades, errores y patrones. El conjunto estándar de CodeQL se enfoca en la precisión y en minimizar los falsos positivos, ideal para su uso en pipelines de integración continua y entrega continua (CI/CD). Sin embargo, cuando las alertas son gestionadas por ingenieros de seguridad o investigadores, es posible ajustar el equilibrio entre falsos positivos y negativos, priorizando la detección de errores reales, aunque esto requiera un mayor esfuerzo de clasificación.

Los nuevos CodeQL Community Packs se dividen en tres tipos principales: los ‘Model packs’, que brindan modelos adicionales para el seguimiento de taint y resúmenes de bibliotecas y marcos no cubiertos por los conjuntos estándar; los ‘Query packs’, que ofrecen consultas de seguridad y auditoría adicionales para localizar vulnerabilidades potenciales y mejorar la calidad del código; y, finalmente, los ‘Library packs’, que, aunque no incluyen consultas, proporcionan bibliotecas esenciales para un análisis más minucioso.

El GitHub Security Lab ha utilizado intensivamente estos paquetes en los últimos años, obteniendo resultados significativos en la detección de vulnerabilidades a través de auditorías de consultas. Estos han demostrado ser especialmente útiles en revisiones de código manuales exhaustivas, como las realizadas en proyectos destacados como Datahub y Home Assistant, donde se necesitaba un listado detallado de todos los archivos que introducían datos no confiables en la aplicación, algo clave para explorar grandes bases de código desconocidas.

Los CodeQL Community Packs incluyen diversas consultas y modelos para lenguajes de programación como Java, C# y Python, diseñados para mejorar la relación señal-ruido y enfocar la atención en minimizar la tasa de falsos negativos, lo que los convierte en herramientas vitales para los investigadores de seguridad. Por ejemplo, los paquetes para Java incluyen consultas dirigidas a vulnerabilidades comunes (CVE), nuevas aportaciones de consultas de seguridad por parte de ingenieros y plantillas para el seguimiento de taint, facilitando la exploración de rutas de datos.

Además, se han desarrollado modelos de extensión para bibliotecas que permiten a CodeQL señalar rutas de flujo de datos no confiables. Estas innovaciones son el resultado de un análisis exhaustivo de aplicaciones que manejarán datos no confiables hacia APIs de terceros. Una capacidad mejorada que se ha traducido en una mayor eficiencia en la detección de problemas de seguridad, como la inyección JNDI, que se identificó en parte gracias a estos nuevos modelos.

Los CodeQL Community Packs están disponibles en los flujos de trabajo de escaneo de código de GitHub y a través de la interfaz de línea de comandos de CodeQL, lo que facilita que los usuarios integren estos recursos en sus análisis. Su desarrollo también enfatiza la participación comunitaria, invitando a los desarrolladores a compartir sus propios modelos y consultas para fortalecer la seguridad en el software de código abierto.