GitHub ha lanzado los nuevos CodeQL Community Packs, una colección integral de consultas y modelos diseñados para mejorar las capacidades de análisis de código. Estos paquetes están personalizados para complementar el conjunto estándar de consultas de CodeQL, ofreciendo recursos adicionales tanto para investigadores de seguridad como para desarrolladores.
CodeQL es una herramienta de análisis semántico de código que permite a los desarrolladores interrogar sus bases de código como si fueran bases de datos. Esto facilita la identificación de vulnerabilidades, errores y patrones de manera eficaz. El conjunto estándar de consultas de CodeQL se centra en la precisión y en bajos índices de falsos positivos, lo cual es ideal para su integración en pipelines de CI/CD. Sin embargo, cuando los alertas son gestionados por ingenieros de seguridad o investigadores, se puede ajustar el equilibrio entre falsos positivos y negativos para priorizar los negativos, asegurando que no queden errores sin detectar, aunque esto implique un mayor esfuerzo de clasificación.
Los CodeQL Community Packs consisten en tres tipos principales de paquetes. En primer lugar, los ‘Model packs’, que contienen modelos adicionales para el seguimiento de taint y resúmenes de bibliotecas y marcos que no están soportados por los conjuntos estándar. En segundo lugar, los ‘Query packs’, que ofrecen consultas de seguridad y auditoría adicionales para identificar vulnerabilidades potenciales y mejorar la calidad del código. Por último, los ‘Library packs’, que aunque no contienen consultas en sí, proporcionan importantes bibliotecas para un análisis más completo.
El GitHub Security Lab ha estado utilizando intensamente estos paquetes durante los últimos años y ha generado resultados significativos en la detección de vulnerabilidades a través de consultas de auditoría. Estas han sido especialmente útiles en revisiones de código manuales profundas, como las realizadas para proyectos como Datahub y Home Assistant, donde poder listar todos los archivos que introducen datos no confiables en la aplicación fue muy valioso al explorar grandes bases de código desconocidas.
Los CodeQL Community Packs incluyen una variedad de consultas y modelos para lenguajes como Java, C# y Python, diseñado para acercar la relación señal-ruido hacia un mayor enfoque en la baja tasa de falsos negativos, lo que los hace particularmente útiles para investigadores de seguridad. Por ejemplo, los paquetes de Java incluyen consultas para CVEs conocidos, nuevas consultas de seguridad contribuidas por ingenieros y una serie de plantillas para el seguimiento de taint que facilitan la exploración de rutas de datos.
Además, se han desarrollado modelos de extensión para bibliotecas que permiten a CodeQL reportar rutas de flujo de datos no confiables, innovaciones resultantes de un análisis exhaustivo de aplicaciones que pasaron datos no confiables a APIs de terceros. Esta capacidad mejorada se traduce en una mayor efectividad a la hora de detectar problemas de seguridad como la inyección JNDI que fue conocida, en parte, gracias a la existencia de estos nuevos modelos.
Los nuevos paquetes son accesibles tanto en los flujos de trabajo de escaneo de código de GitHub como a través de la interfaz de línea de comandos de CodeQL, permitiendo a los usuarios agregar fácilmente estos recursos a sus análisis. El desarrollo de estos paquetes también pone un fuerte énfasis en la participación de la comunidad, alentando a los desarrolladores a compartir sus propios modelos y consultas para mejorar la seguridad del software de código abierto.
vía: GitHub Security