Asegura tus flujos de trabajo en GitHub Actions utilizando CodeQL

Elena Digital López

En los últimos meses, se ha llevado a cabo un esfuerzo significativo para mejorar la seguridad de los flujos de trabajo en los proyectos de código abierto que utilizan GitHub Actions. Se ha logrado asegurar más de 75 flujos de trabajo, revelando un total de 90 vulnerabilidades distintas. Este trabajo ha permitido la incorporación de nuevas capacidades de seguridad en CodeQL, una herramienta crucial para el análisis del código que facilita a los desarrolladores proteger sus proyectos contra posibles amenazas.

Una serie de artículos informativos han sido publicados con el objetivo de educar a los usuarios sobre cómo mantener seguros estos flujos de trabajo y enfrentar las vulnerabilidades más comunes. Sin embargo, a pesar de estos esfuerzos educativos, las vulnerabilidades continúan siendo frecuentes. Esto se atribuye principalmente a la falta de conocimiento sobre la interacción entre diferentes componentes y los potenciales impactos que pueden tener estas fallas sobre una organización o un repositorio particular.

Para contrarrestar la introducción de nuevas vulnerabilidades y corregir las existentes, se ha implementado el soporte de CodeQL específicamente para GitHub Actions. Este nuevo paquete permite escanear tanto flujos de trabajo existentes como aquellos que se desarrollen en el futuro. Además, el escaneo de códigos y la función Copilot Autofix están disponibles de forma gratuita para los repositorios de código abierto, facilitando el acceso a estas herramientas a todos los repositorios públicos de GitHub, y mejorando así la detección y corrección de vulnerabilidades.

Se ha trabajado intensamente en el desarrollo de capacidades avanzadas para CodeQL, como el seguimiento de contaminación (taint tracking) y el soporte para scripts de Bash. Esto es crucial ya que permite identificar patrones complejos de vulnerabilidad y detectar fuentes de datos no confiables. Por ejemplo, el seguimiento de contaminación ayuda a identificar situacioness donde datos no confiables son interpolados dentro de un script, lo cual podría derivar en inyecciones de código malicioso.

El análisis de scripts de Bash ha sido destacado dada su frecuencia en los flujos de trabajo de GitHub, lo cual hace indispensable su inclusión en las nuevas configuraciones de seguridad de CodeQL. Entender el flujo de datos contaminados a través de un script es clave para prevenir posibles vulnerabilidades. También se ha profundizado en el análisis de acciones de terceros, lo que ha permitido descubrir diversas fuentes de vulnerabilidad. Se han identificado hasta ahora 62 fuentes, 129 resúmenes y 2199 recipientes en riesgo.

Para abordar estas debilidades, se han desarrollado 18 nuevas consultas que superan las simples inyecciones de código, enfrentándose también a problemas como la exposición excesiva de secretos y la inyección de variables de entorno. Las pruebas realizadas en miles de proyectos de código abierto han corroborado la eficacia y precisión de estas nuevas consultas, consiguiendo identificar y reportar vulnerabilidades en organizaciones tan críticas como Microsoft, GitHub, Adobe y Apache.

Con estas innovaciones, se espera que los desarrolladores puedan fortalecer aún más la seguridad de sus flujos de trabajo en GitHub, previniendo posibles ataques a la cadena de suministro del software de código abierto que todos empleamos. Los repositorios que estén interesados pueden empezar a habilitar el análisis de acciones en sus configuraciones para aprovechar esta nueva capacidad.

Scroll al inicio