GitHub ha introducido los CodeQL Community Packs, una innovadora colección de consultas y modelos creados para potenciar el análisis de código. Estos recursos están ideados para complementar las consultas estándar de CodeQL, proporcionando herramientas adicionales útiles tanto para investigadores de seguridad como para desarrolladores.
CodeQL permite a los creadores de software analizar sus bases de código como si fueran bases de datos, lo que facilita la detección de vulnerabilidades y errores. Las consultas estándar de CodeQL son precisas y limitan los falsos positivos, ideales para su inclusión en pipelines de CI/CD. Sin embargo, cuando la revisión de alertas está en manos de expertos en seguridad, es posible ajustar el balance para reducir falsos negativos, asegurando que los errores no pasen desapercibidos, aunque conlleve una mayor carga de clasificaciones.
Los CodeQL Community Packs se dividen en tres categorías principales. Los ‘Model packs’ contienen modelos extra para el seguimiento de taint y resúmenes de bibliotecas no soportadas por los conjuntos estándar. Los ‘Query packs’ proporcionan consultas adicionales de seguridad para identificar posibles vulnerabilidades y mejorar la calidad del código. Finalmente, los ‘Library packs’ ofrecen bibliotecas esenciales para un análisis exhaustivo.
El GitHub Security Lab ha implementado estos paquetes con notable éxito en la detección de vulnerabilidades mediante auditorías. Estas se han mostrado eficaces en revisiones detalladas de código, como en los proyectos Datahub y Home Assistant, donde han sido de gran ayuda al gestionar grandes bases de datos desconocidas.
Los paquetes están disponibles para lenguajes como Java, C# y Python, optimizados para minimizar los falsos negativos, lo cual es muy beneficioso para los investigadores de seguridad. Por ejemplo, los paquetes de Java incluyen consultas para vulnerabilidades conocidas, contribuciones de seguridad de ingenieros y plantillas para el seguimiento de taint, lo que facilita el rastreo 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. Estas innovaciones derivan de un análisis profundo de aplicaciones que comunicaban datos poco seguros a APIs externas. Esta capacidad mejorada destaca en la detección de problemas de seguridad como la inyección JNDI, visibilizada gracias a los nuevos modelos.
Los usuarios pueden acceder a estos paquetes a través de los flujos de trabajo de escaneo de código de GitHub y mediante la línea de comandos de CodeQL. Se enfatiza también la participación de la comunidad, invitando a los desarrolladores a compartir sus propias consultas y modelos para reforzar la seguridad del software de código abierto.