Close

Desarrollo de un enfoque de DevSecOps con Snyk y Bitbucket Cloud

Fotografía de Simon Maple
Simon Maple

Responsable de departamento tecnológico de campo de Snyk

Adopta un enfoque de DevSecOps integrando Snyk en Bitbucket Cloud y Jira.

Snyk se integra con varios productos de Atlassian para mejorar los flujos de trabajo y las canalizaciones de los equipos de DevSecOps. En este tutorial, se detallan las pautas para incluir la seguridad desde el principio del desarrollo con Atlassian Bitbucket y Snyk. Estas técnicas permiten a tu equipo analizar sus cargas de trabajo basadas en contenedores y aplicaciones al ritmo de DevSecOps. Aprenderás a usar estos patrones para incluir la seguridad en todas las etapas de la canalización.

Duración

Lectura de 15 minutos.

Público

  • Desarrolladores
  • Ingenieros de DevOps y DevSecOps
  • Equipos de seguridad de aplicaciones y desarrollo de aplicaciones

Requisitos previos

Tener una cuenta de Snyk, que puedes crear aquí.

Tienes una cuenta de Atlassian Bitbucket. Inicia sesión aquí o comienza aquí.

Paso 1: configuración de tu entorno

Instala la CLI de Snyk

La interfaz de línea de comandos (CLI) de Snyk autentica tu equipo utilizando tu cuenta de Snyk. La herramienta de CLI te ayuda a encontrar y corregir vulnerabilidades conocidas en tus dependencias, tanto de forma manual como en tu canalización de CI/CD. Puedes consultar las instrucciones completas para instalar la CLI en el sitio web de Snyk en varios formatos para sistemas operativos y entornos populares. Por ejemplo, la CLI está disponible con brew mediante estos comandos:

brew tap snyk/tap
brew install snyk

Una vez que instales la CLI, lleva a cabo la autenticación con el siguiente comando:

snyk auth

Este comando abre una pestaña del navegador para completar el proceso de autenticación. Puedes proceder a analizar tu repositorio haciendo clic en el botón Autenticar. Una vez finalizada la autenticación, puedes volver a tu terminal y continuar con el trabajo.

Recursos de laboratorio adicionales

Los ejercicios de este tutorial incluyen una serie de comandos o fragmentos de código que se publicarán en las páginas correspondientes del módulo, así como código fuente y plantillas que estarán disponibles en un repositorio público de Bitbucket. Una vez configurada tu cuenta de Bitbucket Cloud, tienes que copiar estos recursos en tu cuenta. Para hacerlo, sigue estos pasos:

Bifurca el repositorio

Haz clic aquí para bifurcar el repositorio remoto en tu cuenta de Bitbucket. La documentación de Atlassian ofrece instrucciones detalladas sobre cómo bifurcar un repositorio.

Clona la bifurcación de forma local

Una vez completada la bifurcación, debes clonar el repositorio que has bifurcado. Consulta la documentación de Atlassian sobre cómo clonar un repositorio para obtener instrucciones detalladas.

Paso 2. Conexión de Snyk a Bitbucket

En esta sección, conectaremos Snyk con Bitbucket para analizar nuestra aplicación de Bitbucket en busca de vulnerabilidades de código abierto.

Diagrama del proceso de Bitbucket

¿En qué consiste el análisis de composición de software (SCA)?

El análisis de composición de software (SCA) es una herramienta de gestión de componentes de código abierto que genera un informe en el que figuran todos los componentes de código abierto de una aplicación, incluidas las dependencias directas e indirectas. Con una herramienta de SCA, los equipos de desarrollo pueden llevar un control de los componentes de código abierto introducidos en un proyecto y analizarlos rápidamente.

Aunque son prácticos y su uso está generalizado, los componentes de código abierto han sido tradicionalmente difíciles de supervisar. Como resultado, los desarrolladores se han basado en procesos manuales, como correos electrónicos y hojas de cálculo, para mitigar la situación. Sin embargo, estos procesos manuales ponen en peligro las ventajas que aporta el código abierto y son una solución incompleta. Una estrategia mejor es utilizar una herramienta de SCA que proporcione información inmediata sobre cada componente.

¿Por qué utilizar una herramienta de SCA?

Los componentes de código abierto son pilares fundamentales del desarrollo de software en prácticamente todos los sectores. Independientemente del tamaño que tenga tu organización, el SCA contribuye a identificar componentes de código abierto en las aplicaciones que resultan fundamentales para tu empresa. Las herramientas de SCA permiten a los desarrolladores hacer lo siguiente:

1. Comprender las dependencias utilizadas en las aplicaciones.

2. Aplicar políticas de seguridad y conformidad en todas las fases del ciclo de vida del desarrollo de software.

3. Solucionar de forma proactiva las posibles vulnerabilidades del código fuente.

4. Mejorar la eficiencia del equipo y la seguridad de la empresa.

Paso 3: Crea una contraseña para la aplicación

Tendrás que crear una contraseña de la aplicación para conceder acceso a Snyk a tu repositorio y habilitar la integración de Bitbucket Cloud en Snyk.

Para crear una contraseña de la aplicación, sigue estos pasos:

1. En tu avatar, en la parte inferior izquierda, haz clic en “Configuración personal”.

Ventana de configuración personal

2. En “Gestión de accesos”, haz clic en “Contraseñas de aplicaciones”.

Ventana de gestión de accesos

3. Haz clic en Crear contraseña de aplicación.

Ventana de contraseña de aplicación

4. Pon un nombre a la contraseña de la aplicación que indique qué aplicación la usará.

Ventana de contraseña de aplicación

5. Selecciona el acceso y los permisos específicos que quieres que tenga esta contraseña de la aplicación.

  • Cuenta: lectura
  • Pertenencia al equipo: lectura
  • Proyectos: lectura
  • Repositorios: lectura y escritura
  • Solicitudes de incorporación de cambios: lectura y escritura
  • Webhooks: lectura y escritura

6. Copia la contraseña generada y guárdala o pégala en la aplicación a la que quieres dar acceso, ya que solo se mostrará esta vez.

Paso 4: Añade variables de repositorio

Debes definir variables de repositorio a nivel de repositorio, a las que luego se hará referencia en tu canalización. Constarán de lo siguiente:

  • SNYK_TOKEN: token de API de Snyk para autenticarte con tu cuenta de Snyk. Es una variable segura.
  • IMAGE: nombre de la imagen del contenedor. No es una variable segura.

Las demás variables son para operaciones de canalización mejoradas y no se tratan en este tutorial.

Ventana de configuración del repositorio

Paso 5: Obtén tu token de API de Snyk

1. Obtención de token de API de Snyk

En la consola de Snyk, ve a Settings (Configuración) y, en el menú General, haz clic en Copy (Copiar) para copiar el Organization ID (ID de la organización).

Configuración general de Snyk

Una vez que hayas copiado tu token, vuelve a la interfaz de usuario de Bitbucket Cloud y define la variable de repositorio SNYK_TOKEN.

Paso 6: Habilita la integración de Bitbucket

En la consola de Snyk, ve a Integraciones y selecciona Bitbucket Cloud.

Ventana de integraciones de Snyk

En la página de integración de Bitbucket Cloud, introduce tu nombre de usuario de Bitbucket en el campo Nombre de usuario y la contraseña de la aplicación de Bitbucket generada en el paso anterior en el campo Contraseña de la aplicación. A continuación, haz clic en Guardar.

Configuración: ventana de integraciones

Una vez que hayas conectado correctamente tus cuentas de Snyk y Bitbucket, recibirás un mensaje de confirmación y se te ofrecerá la opción de añadir tu repositorio de Bitbucket Cloud a Snyk.

Sigue leyendo para aprender a importar un repositorio de Bitbucket Cloud y analizarlo con Snyk.

Analiza y supervisa tu aplicación de Bitbucket

Miniatura de análisis y supervisión de Bitbucket

El análisis de tu aplicación en busca de vulnerabilidades en tus dependencias de código abierto comienza en la fuente. En la sección anterior, hemos habilitado la integración de Snyk en Bitbucket, por lo que podemos importar nuestro primer proyecto.

Paso 7: Añade repositorios de Bitbucket Cloud a Snyk

En la última pantalla de la sección anterior, haz clic en Añadir tu repositorio de Bitbucket Cloud a Snyk.

Adición de repositorios de Bitbucket Cloud a Snyk

Busca el repositorio que bifurcaste en el módulo Configurar entorno. Haz clic en la casilla de verificación para seleccionarla y, a continuación, haz clic en el botón Añadir repositorio seleccionado para importar tu proyecto.

Botón Añadir repositorios seleccionados en la esquina superior derecha

Paso 8: Revisa el informe de vulnerabilidades

Debería aparecer el recuento de vulnerabilidades en función de packages.json, así como información detallada de cada una de ellas. Haz clic en el proyecto que acabas de analizar y revisa los resultados en Snyk. No solo recibirás contexto como la gravedad y madurez de los exploits de las vulnerabilidades, sino también las siguientes potentes funciones:

Informe de vulnerabilidades
  • Fix this vulnerability (Corregir esta vulnerabilidad) te permite corregir una vulnerabilidad mediante la actualización de las dependencias directas o la aplicación de parches.
  • La Priority Score (Puntuación de prioridad) te ayuda a dar prioridad a las correcciones de forma eficaz. La puntuación, que oscila entre 1 y 1000, se basa en un algoritmo propio que procesa una amplia variedad de factores, como la puntuación de CVSS, la disponibilidad de una corrección, la existencia de exploits conocidos, la antigüedad de la vulnerabilidad y si se puede acceder a ella.
  • La integración con Jira te permite crear incidencias en Jira.
Simon Maple
Simon Maple

Simon Maple is the Field CTO at Snyk, a Java Champion since 2014, Virtual JUG founder, and London Java Community co-leader. He is an experienced speaker, with a passion for community. When not traveling, Simon enjoys spending quality time with his family, cooking and eating great food.


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

Taller de simulación

Ilustración de un mapa

Pruébalo gratis

Suscríbete para recibir el boletín de DevOps

Thank you for signing up