Skip to main content

Integra seguridad práctica en tu flujo de trabajo de CI/CD y sistemas de compilación con las pruebas de Snyk

Escrito por
blog banner cicd workflow

13 de diciembre de 2019

0 minutos de lectura

Conectar Snyk con los repositorios que tienes en un sistema de administración de código fuente, como GitHub o GitLab, e importar tus proyectos a Snyk es una excelente manera de aprovechar las pruebas de seguridad de aplicaciones en tus principales flujos de trabajo de desarrollo. De inmediato, obtienes las ventajas del monitoreo de seguridad continua para detectar nuevas vulnerabilidades en los manifiestos de bibliotecas de tu proyecto. Y, mejor aún, puedes hacer que se creen pull request automáticamente para corregir esos problemas de seguridad.

Mira nuestro video para aprender a empezar a usar nuestra herramienta CLI.

Además de estas integraciones básicas con Git, Snyk también se integra con tus herramientas de CI/CD (integración continua y desarrollo continuo) mediante Snyk CLI, para ejecutarse en un proceso de compilación o CI, como Jenkins. Snyk CLI es una solución muy flexible que ayuda a los desarrolladores a empezar fácilmente a analizar y corregir vulnerabilidades de código abierto en sus aplicaciones y contenedores. No sorprende que los ingenieros de DevOps integren cada vez más esta herramienta CLI en sus pipelines.

¿Cómo puedo brindar a mis desarrolladores información valiosa sobre la seguridad de las aplicaciones?

Si eres ingeniero de DevOps o DevSecOps, no tengo duda de que probablemente te hayas hecho esa pregunta al menos una vez.

Hacer pruebas de seguridad de aplicaciones en tu entorno de CI/CD es un gran avance, pero es aún mejor ofrecer a los desarrolladores recomendaciones prácticas para corregir los problemas cuando falla una compilación. Esto también ayuda a reducir el ruido (por ejemplo, evitar que falle la compilación por problemas que no se pueden corregir y que los desarrolladores se sientan impotentes).

Para ofrecer recomendaciones valiosas, debes enfocarte principalmente en que sean prácticas.

Aunque esto es fácil de hacer desde la interfaz de Snyk y las integraciones de administración de código fuente, como se muestra en la imagen de abajo, ¿cómo hacemos lo mismo para los desarrolladores que trabajan con la herramienta CLI?

Panel de proyectos de Snyk que muestra 45 vulnerabilidades, dependencias y un problema de escritura arbitraria de archivos de gravedad alta en adm-zip.

Si ejecutas Snyk desde la CLI para encontrar esos problemas de seguridad, probablemente ya conozcas la lista de vulnerabilidades que se muestra con claridad. Es útil al trabajar con los resultados de compilación, pero ¿sabías que también puedes obtener estos resultados en formato JSON? Y ¿cómo nos ayuda esto a facilitar que los desarrolladores corrijan esos problemas de seguridad?

Salida de la terminal de Snyk que muestra vulnerabilidades de gravedad alta en js-yaml y handlebars, con sugerencias para corregirlas y cuatro problemas detectados.

Filtrar el resultado JSON de las pruebas de Snyk CLI

Snyk CLI ofrece varios argumentos de línea de comandos muy útiles para obtener la información deseada de una prueba. También tenemos una hoja de referencia de Snyk CLI que puedes consultar.

Uno de estos argumentos útiles de línea de comandos es la opción --json. El resultado JSON de las pruebas de Snyk, junto con el comando analizador JSON jq, puede ser muy útil para filtrar y manipular los resultados de vulnerabilidades.

Con este argumento, puedes filtrar fácilmente los resultados para mostrar solo los problemas que se pueden corregir al actualizar la biblioteca vulnerable o aplicar un parche. ¡Eso sí que es práctico!

snyk test --json | jq '.vulnerabilities |= map(select(.isUpgradable == true or .isPatchable == true))'

De resultados JSON generados por máquinas a visualizaciones

Es excelente tener un formato JSON estructurado para manipular, pero sería aún mejor poder convertir los resultados en una visualización atractiva. Así podemos enviar la versión filtrada a los desarrolladores, líderes de equipo u otras partes interesadas para dar seguimiento a las acciones y mitigar las vulnerabilidades de seguridad en nuestros proyectos.

Por suerte, podemos usar la CLI snyk-to-html. Con esta herramienta, puedes exportar los resultados JSON a una página web HTML estática, empaquetada en un solo archivo que puedes enviar por correo electrónico o compartir como prefieras.

Primero, instala la herramienta:

$ npm install --global snyk-to-html

Ahora, envía el resultado JSON de la prueba de Snyk CLI a jq para filtrarlo y, por último, a snyk-to-html para convertir el JSON en un archivo HTML:

$ snyk test —json | snyk-to-html -o results.html

Esto genera un informe HTML estático con un formato atractivo que puedes enviar a las partes interesadas pertinentes. Por ejemplo:

Informe de pruebas de Snyk que muestra tres vulnerabilidades conocidas, incluida una vulnerabilidad de denegación de servicio de gravedad media en js-yaml.

Resumen

Es importante conocer las vulnerabilidades de seguridad, pero no olvides que es aún más poderoso combinar esa información con recomendaciones prácticas que permitan a tus desarrolladores tomar medidas y mantener sus aplicaciones seguras.

A continuación, encontrarás recursos para explorar más a fondo los resultados de Snyk CLI:

  1. Empieza a usar nuestra herramienta CLI con este video breve y consulta también la referencia completa de CLI.

  2. Descubre más sobre los argumentos de nuestros comandos con esta práctica hoja de referencia de Snyk CLI.

  3. Para conocer los filtros y otros operadores, consulta la documentación de jq.

  4. Por último, puedes leer una publicación más detallada sobre cómo aprovechar al máximo las pruebas de Snyk con JSON.

Empieza con Capture the Flag

Aprende a resolver desafíos de Capture the Flag viendo nuestro taller virtual introductorio a pedido.