Análisis de seguridad de código de GitHub: protege tus dependencias de código abierto
4 de mayo de 2021
0 minutos de lecturaNos complace anunciar la compatibilidad de Snyk Open Source con el análisis de seguridad de código de GitHub, que te permite analizar automáticamente tus dependencias de código abierto en busca de vulnerabilidades de seguridad y problemas de licencias, y consultar los resultados directamente en la pestaña Security de GitHub.
Un aspecto clave del enfoque de Snyk, que prioriza a los desarrolladores, es integrar los datos de seguridad de Snyk en los mismos procesos que usan los desarrolladores, ya sea en un IDE o en un flujo de trabajo basado en Git.
En octubre de 2020, presentamos la capacidad de analizar imágenes de contenedores alojadas en GitHub, archivos de configuración de Kubernetes y código de Terraform, y luego consultar los resultados en la pestaña Security de GitHub. Esta capacidad, que ahora es compatible con Snyk Container, Snyk IaC, y Snyk Open Source, usa las GitHub Actions de Snyk para integrar Snyk de forma nativa con el análisis de seguridad de código de GitHub.

Si ya usas las GitHub Actions de Snyk, podrás ver los resultados de inmediato en el análisis de seguridad de código de GitHub. Si no las usas o eres nuevo en Snyk, aquí te explicamos cómo comenzar.
GitHub Actions de Snyk
GitHub presentó GitHub Actions para ayudar a los desarrolladores a automatizar sus flujos de trabajo de integración continua. El conjunto de GitHub Actions de Snyk te ofrece una manera sencilla de integrar Snyk en esos flujos de trabajo y analizar tus proyectos de GitHub en busca de vulnerabilidades de seguridad y problemas de licencias, todo como parte de tu flujo de trabajo de CI/CD automatizado y de forma nativa desde GitHub.
Snyk ofrece una acción diferente según los lenguajes de programación o las herramientas de compilación que uses. Esta es una lista parcial (para consultar todas las acciones disponibles, revisa la documentación en GitHub):
¡Ahora probémoslo!
Nota: Puedes seguir las instrucciones a continuación para analizar repositorios públicos. Sin embargo, para analizar repositorios privados, debes ser cliente de pago de GitHub Advanced Security.
Configurar la autenticación con Snyk
La acción de Snyk usa una variable de entorno llamada SNYK_TOKEN. Este es tu token de API de Snyk, que debes obtener antes de configurar la acción de GitHub.
Si aún no tienes una cuenta, crea una cuenta de Snyk. Luego podrás obtener el token de una de estas dos maneras:
Si usas la CLI de Snyk, obtén el token con este comando:
snyk config get apiEn la interfaz de usuario, ve a la página de configuración de tu cuenta de Snyk y obtén el token de API.

Cuando tengas el token, defínelo como secreto en la configuración de tu repositorio, en Settings | Secrets:

Configurar la GitHub Action de Snyk
Ya puedes configurar la acción de Snyk. En tu repositorio de GitHub, abre la pestaña Actions y haz clic en el botón New workflow, en la esquina superior izquierda.
GitHub te ofrecerá algunas acciones de plantilla según el lenguaje de programación del repositorio. Para configurar la GitHub Action de Snyk, haz clic en set up a workflow yourself, en la parte superior de la página:

Reemplaza el código de ejemplo por este:

Como puedes ver en este ejemplo, la acción de Snyk está configurada para ejecutar el flujo de trabajo cada vez que se envía código nuevo al repositorio. El flujo de trabajo usa snyk test para analizar tus dependencias de código abierto en busca de vulnerabilidades de seguridad y problemas de licencias, y luego carga en el análisis de seguridad de código de GitHub un archivo SARIF con los resultados.
La marca continue-on-error está configurada como true, pero puedes cambiarla para que las compilaciones fallen cuando se detecten problemas.
Haz clic en Start commit para confirmar el archivo del flujo de trabajo en tu repositorio y activar la primera acción automatizada de Snyk. Un flujo de trabajo completo de CI de GitHub comienza por crear el archivo de GitHub Action en la raíz de la ruta del repositorio: .github/workflows/main.yml
La acción se ejecutará durante unos segundos y podrás supervisar el proceso mientras avanza.
Cuando termine, abre la pestaña Security de GitHub. Los resultados del análisis de Snyk aparecen en Code scanning alerts:

A partir de ese momento, cada vez que envíes nuevas confirmaciones a tu repositorio de GitHub, se agregará un nuevo trabajo en la pestaña Actions del repositorio para analizarlo en busca de problemas.
Consultar los resultados del análisis en Code Scanning
Snyk Open Source analiza las dependencias de código abierto de tu repositorio, tanto las directas como las transitivas, en busca de vulnerabilidades de seguridad y problemas de licencias. Cuando las identifica, muestra todo el contexto necesario para agilizar la corrección. Cuanto más contexto tengas sobre las vulnerabilidades, más fácil será priorizar su corrección.
En nuestro ejemplo, Snyk Open Source correlacionó el archivo de manifiesto de nuestro proyecto (package.json) con la base de datos de vulnerabilidades de Snyk Intel y encontró 281 vulnerabilidades.
Veamos una de ellas: una vulnerabilidad de gravedad alta que permite eludir la protección contra la sobrescritura de prototipos en la dependencia qs.
El encabezado de la vulnerabilidad indica su gravedad, así como su CVE y CWE. La gravedad se asigna de la siguiente manera:
CVSS | SARIF |
|---|---|
Baja | Nota |
Media | Advertencia |
Alta / Crítica | Error |

Además, Snyk ofrece una descripción completa de la vulnerabilidad, cómo se introdujo, ejemplos de explotación, una cronología de divulgación y, lo más importante, recomendaciones para corregirla.

Invertir en seguridad nativa de GitHub
Las herramientas de seguridad que priorizan a los desarrolladores deben integrarse de la manera más sencilla posible en los flujos de trabajo de desarrollo. Esto reduce gran parte de la fricción que suele surgir al integrar la seguridad y ayuda a los desarrolladores a asumir una mayor responsabilidad en este ámbito.
Más de 2.2 millones de desarrolladores en todo el mundo usan Snyk para proteger sus aplicaciones. Muchos de ellos usan la integración de Snyk con GitHub, por eso seguimos invirtiendo en mejorarla. ¡Prueba las GitHub Actions de Snyk y la nueva compatibilidad de Snyk Open Source con el análisis de seguridad de código de GitHub, y cuéntanos qué te parece!
Empieza con los desafíos de Capture the Flag
Aprende a resolver desafíos de captura la bandera con nuestro taller virtual introductorio a pedido.