En una medida significativa para mejorar la seguridad en proyectos de código abierto, más de 75 flujos de trabajo de GitHub Actions han sido asegurados recientemente, revelando un total de 90 vulnerabilidades distintas. Este esfuerzo minucioso ha culminado con el lanzamiento de un nuevo soporte para flujos de trabajo en CodeQL, proporcionando a los desarrolladores herramientas más efectivas para blindar sus proyectos.
A través de una serie de artículos dedicados a la seguridad de los flujos de trabajo de GitHub Actions, se han explorado las vulnerabilidades más comunes y las estrategias para abordarlas. Sin embargo, a pesar de estas orientaciones, estas vulnerabilidades persisten, en gran parte debido a la falta de conciencia sobre la interacción entre diferentes componentes y el impacto potencial que estas fallas de seguridad pueden tener en un repositorio u organización.
Para enfrentar este desafío, CodeQL ha incorporado un nuevo soporte específico para GitHub Actions. Esta herramienta permite escanear tanto flujos de trabajo existentes como nuevos, optimizando la detección y corrección de vulnerabilidades. Además, el hecho de que el escaneo de código y Copilot Autofix sean gratuitos para repositorios de código abierto, garantiza que todos los repositorios públicos en GitHub puedan beneficiarse de estas nuevas consultas.
El desarrollo de estas capacidades incluyó la implementación de seguimiento de contaminación (taint tracking) y soporte para bash, herramientas que facilitan la identificación de patrones complejos de vulnerabilidad y fuentes de datos no confiables. El seguimiento de contaminación, por ejemplo, es crucial para detectar casos en los que un dato no confiable es interpolado en un script, pudiendo derivar en inyecciones de código.
Los scripts de Bash son prevalentes en los flujos de trabajo de GitHub, lo que hace esencial su inclusión en las nuevas consultas de CodeQL. Detectar datos contaminados y comprender su flujo dentro de un script es fundamental para prevenir vulnerabilidades potenciales.
El análisis detallado de acciones de terceros ha logrado identificar 62 fuentes, 129 resúmenes y 2199 recipientes vulnerables. A partir de estos hallazgos, se han desarrollado 18 nuevas consultas que no solo se enfocan en la inyección de código, sino que también abordan problemas como la exposición excesiva de secretos y la inyección de variables de entorno.
En pruebas recientes aplicadas a miles de proyectos de código abierto, estas nuevas consultas han demostrado su efectividad y precisión, identificando vulnerabilidades en organizaciones críticas como Microsoft, GitHub, Adobe y Apache.
Con el lanzamiento de estas innovadoras herramientas y técnicas, se espera que los desarrolladores estén mejor preparados para proteger sus flujos de trabajo en GitHub, ayudando a prevenir ataques en la cadena de suministro del software de código abierto. Los repositorios interesados pueden comenzar a activar el análisis de acciones en sus configuraciones para aprovechar esta avanzada capacidad de seguridad.