Close

Integrar Snyk en Atlassian Open DevOps

Foto de Warren Marusiak
Warren Marusiak

Divulgador técnico sénior

Para demostrar cómo desarrollar, implementar y gestionar aplicaciones con Jira Software y varias herramientas conectadas, nuestro equipo creó ImageLabeller, una sencilla aplicación de demostración creada con AWS que utiliza el aprendizaje automático para aplicar etiquetas a las imágenes.

Esta página explica cómo integrar Snyk con Bitbucket. Antes de empezar, te recomendamos que leas la página de Introducción a ImageLabeller para ver el contexto.

Conectar Bitbucket y Snyk

Hay dos formas de trabajar con Snyk en Bitbucket. La primera es habilitar la integración nativa de Snyk con Bitbucket a través de la pestaña Seguridad de la pantalla del repositorio. La segunda es añadir un paso de Snyk a un archivo bitbucket-pipelines.yml. Hacer ambas cosas no tiene ningún inconveniente. La integración de Synk en Bitbucket proporciona un acceso rápido a los datos de vulnerabilidades a cualquiera que consulte el repositorio de Bitbucket. A continuación, puedes hacer clic en el sitio web de Snyk para obtener información adicional sobre cada vulnerabilidad encontrada. El paso Snyk de un archivo bitbucket-pipelines.yml permite el análisis automático de cada confirmación de una canalización.

Añadir la integración de Snyk a Bitbucket

Para añadir Snyk a un repositorio de Bitbucket, haz clic en la pestaña Seguridad, busca la integración de Snyk y haz clic en Probar ahora.

Imagen de añadir la integración de Snyk a Bitbucket

Concede acceso y haz clic en Conectar Bitbucket con Snyk.

Conectar Bitbucket a Snyk

Una vez configurada la integración, cierra la pestaña.

Guía de integración exitosa

Haz clic en la nueva opción de Snyk que aparece en el menú de navegación de la izquierda. A continuación, haz clic en el archivo go.mod para profundizar y ver información más detallada. En este ejemplo, el repositorio de Golang utiliza los módulos go para gestionar las dependencias. Para otros tipos de repositorios, habrá diferentes archivos de dependencias.

Pantalla de Snyk

Para obtener más información sobre cómo corregir cada vulnerabilidad, haz clic en Visita Snyk para ir al sitio web de Snyk.

visita snyk

Esta vista de la aplicación Snyk es similar a la pantalla de detalles renderizada en Bitbucket. Esta pantalla muestra una lista de vulnerabilidades e información adicional sobre cada vulnerabilidad.

Captura de pantalla del sitio web de Snyk

A continuación, se muestra un ejemplo de informe de vulnerabilidad en Snyk. En la sección Rutas detalladas se muestra una jerarquía de la procedencia de la vulnerabilidad. En el siguiente ejemplo, puedes ver que SubmitImage hereda esta vulnerabilidad del SDK de AWS Golang. Snyk resume el estado de todas las incidencias de la izquierda. En este caso, ninguna de las incidencias se puede solucionar. Ten en cuenta que hay cinco incidencias sin corrección disponible en Correcciones. Esto significa que actualmente no hay ninguna mitigación disponible para estas incidencias. Los desarrolladores pueden monitorizar la integración y aplicar las correcciones en cuanto estén disponibles.

Captura de pantalla de detalles de vulnerabilidad

Añade un paso de Snyk a bitbucket-pipelines.yml

Además de acceder a Snyk a través de la interfaz de usuario de Bitbucket, se puede acceder a la funcionalidad de Snyk a través de los canales de Bitbucket añadiendo pasos a los archivos bitbucket-pipelines.yml. Esto significa que el análisis de vulnerabilidades se realizará automáticamente en cada confirmación y te avisará de cualquier vulnerabilidad de seguridad.

A continuación, se muestran dos fragmentos de código de bitbucket-pipelines.yml para ejecutar pruebas de Snyk como parte de una canalización.

Añadir Snyk a los canales de Bitbucket para Golang

Este ejemplo ilustra cómo ejecutar la prueba snyk para un proyecto de Golang mediante los módulos de Go para la gestión de dependencias.

definitions:
  steps:
    -step: &runsnyktest
        name: run snyk test
        image: snyk/snyk:golang
        script:
          - snyk auth $SNYK_TOKEN
          - cd submitImage
          - go mod graph
          - snyk test
pipelines:
  default:
    - step: *runsnyktest

Añadir Snyk a las canalizaciones de Bitbucket para Python

Este ejemplo ilustra cómo ejecutar la prueba snyk para un proyecto de Python con Pip para la gestión de dependencias.

definitions:
  steps:
    -step: &runsnyktest
        name: run snyk test
        image: snyk/snyk:python
        script:
          - snyk auth $SNYK_TOKEN
          - cd src
          - snyk test --skip-unresolved
          - cd ../tst
          - snyk test --skip-unresolved
pipelines:
  default:
    - step: *runsnyktest

Así es como se ve cuando el paso runsnyktest se ejecuta en una canalización de Bitbucket.

paso runsnyktest en una canalización de Bitbucket

En conclusión...

La práctica de integrar la seguridad en tu canalización de CI/CD es uno de los principios fundamentales de DevSecOps. DevSecOps afirma que la seguridad debe aplicarse en cada etapa de la canalización típica de DevOps: planificación, código, compilación, pruebas, publicación e implementación. Al incorporar la seguridad en tu flujo de trabajo, pasa a ser una parte activa e integrada del proceso de desarrollo, en lugar de ser una idea tardía. Esto se traduce en aplicaciones más seguras, menos incidentes y clientes más satisfechos.

Warren Marusiak
Warren Marusiak

Warren is a Canadian developer from Vancouver, BC with over 10 years of experience. He came to Atlassian from AWS in January of 2021.


Compartir este artículo

Lecturas recomendadas

Consulta estos recursos para conocer los tipos de equipos de DevOps o para estar al tanto de las novedades sobre DevOps en Atlassian.

Ilustración de Devops

La comunidad de DevOps

Ilustración de Devops

Ruta de aprendizaje de DevOps

Ilustración de un mapa

Pruébalo gratis

Suscríbete para recibir el boletín de DevOps

Thank you for signing up