Cómo Asegurar Tus Flujos de Trabajo en GitHub Actions con CodeQL

0
26

En los últimos meses, se ha logrado asegurar más de 75 flujos de trabajo de GitHub Actions en proyectos de código abierto, revelando más de 90 vulnerabilidades distintas. Este esfuerzo de investigación ha dado como resultado un nuevo soporte para flujos de trabajo en CodeQL, que permitirá a los desarrolladores proteger sus proyectos de manera más efectiva.

En una serie de artículos destinados a mantener los flujos de trabajo de GitHub Actions seguros, se han discutido las vulnerabilidades más comunes y cómo abordarlas. A pesar de estas advertencias, las vulnerabilidades siguen siendo bastante comunes, principalmente debido a la falta de conciencia sobre cómo interactúan los diferentes componentes y el impacto que estas vulnerabilidades pueden tener en una organización o repositorio.

Para mitigar la introducción de vulnerabilidades y ayudar en la identificación y corrección de las existentes, se ha incorporado el soporte de CodeQL para GitHub Actions. Este nuevo paquete de CodeQL permite escanear flujos de trabajo tanto existentes como nuevos, y, dado que el escaneo de código y Copilot Autofix son gratuitos para repositorios de código abierto, todos los repositorios públicos de GitHub podrán acceder a estas nuevas consultas, mejorando la detección y remediación de vulnerabilidades.

El trabajo ha implicado la adición de nuevas capacidades a CodeQL, incluyendo el seguimiento de contaminación (taint tracking) y soporte para bash, permitiendo identificar patrones complejos de vulnerabilidad y fuentes de datos no confiables. Por ejemplo, el seguimiento de contaminación permite identificar casos en que se interpola un dato no confiable en un script, lo que podría llevar a inyecciones de código.

Se ha observado que los scripts de Bash son uno de los tipos de scripts más comunes en los flujos de trabajo de GitHub, lo que hace que su inclusión en las nuevas consultas de CodeQL sea vital. Identificar datos contaminados y entender cómo fluyen a través de un script es crucial para prevenir posibles vulnerabilidades.

Además, el análisis detallado de acciones de terceros ha permitido identificar 62 fuentes, 129 resúmenes y 2199 recipientes que son objeto de vulnerabilidades. Con este enfoque, se han creado 18 nuevas consultas que van más allá de la simple inyección de código, abordando temas como la exposición excesiva de secretos y la inyección de variables de entorno.

Recientemente se han realizado pruebas en miles de proyectos de código abierto para validar la precisión y el rendimiento de estas nuevas consultas, obteniendo resultados positivos que han permitido identificar y reportar vulnerabilidades en organizaciones críticas como Microsoft, GitHub, Adobe y Apache.

Con estas nuevas herramientas y técnicas, se espera que los desarrolladores puedan proteger mejor sus flujos de trabajo en GitHub y prevenir ataques de cadena de suministro en el software de código abierto que todos utilizamos. Los repositorios interesados pueden empezar a habilitar el análisis de acciones en sus configuraciones para aprovechar esta nueva capacidad de seguridad.
vía: GitHub Security