Skip to main content

Guía rápida de buenas prácticas para Snyk y Bitbucket

Escrito por
Finding open source vulnerabilities within the Bitbucket workflow tumb

3 de marzo de 2022

0 minutos de lectura

A medida que crece la alianza entre Snyk y Atlassian, decidimos crear una guía rápida de buenas prácticas para ayudarte a aprovechar al máximo nuestra integración con Bitbucket. Te ayudará a usar Bitbucket de forma más segura para administrar y almacenar tu código, así como a monitorear continuamente tu código y dependencias para detectar posibles vulnerabilidades con Snyk.

Estas son las siete buenas prácticas que veremos en esta publicación:

  1. Nunca almacenes credenciales en el código ni en los archivos de configuración de Bitbucket

  2. Elimina los datos confidenciales

  3. Controla rigurosamente el acceso

  4. Agrega un archivo SECURITY.md

  5. Valida las aplicaciones de Bitbucket

  6. Recibe consejos de seguridad como parte de tu flujo de trabajo con Code Insights

  7. Agrega pruebas de seguridad a los pull requests

Guía de seguridad de Snyk y Bitbucket con siete prácticas recomendadas, como protección de credenciales, control de acceso, pruebas de seguridad y análisis de código.

Descarga la guía rápida

1. Nunca almacenes credenciales en el código ni en los archivos de configuración de Bitbucket

Almacenar contraseñas, claves de API u otras credenciales en código de acceso público deja tu aplicación y organización expuestas. Por eso, necesitas implementar medidas para evitar que las credenciales se suban a tus repositorios de Bitbucket.

La canalización git-secrets-scan puede bloquear la publicación de datos confidenciales al interrumpir las compilaciones cuando sea necesario para impedir que el código se suba a Bitbucket. Esta herramienta analiza tus archivos en busca de datos codificados de forma fija y los señala en un informe de seguridad.

También puedes buscar secretos que se hayan filtrado con truffleHog, que analiza los repositorios de Git —incluidos el historial de confirmaciones y las ramas— para encontrarlos. Un hook de pre-commit también puede impedir que los desarrolladores suban ciertos secretos.

Por último, puedes conectarte a un administrador de secretos como Hashicorp Vault mediante la canalización de exportación de Vault Secrets, que obtiene automáticamente los secretos de HashiCorp Vault cuando se necesitan, en lugar de guardarlos en el repositorio.

2. Elimina los datos confidenciales

Al igual que en el consejo anterior, es fundamental eliminar los datos confidenciales del código almacenado en Bitbucket. Debes invalidar los tokens o las contraseñas que ya se hayan publicado, ya que es posible que terceros no autorizados los hayan robado.

Además, debes limpiar el historial de Git y forzar el envío del historial reescrito. Después de invalidar los secretos y limpiar el historial de Git, evalúa el impacto de cualquier información privada que se haya filtrado.

Adaptivist ScriptRunner puede facilitar estas tareas al automatizar la administración de secretos.

3. Controla rigurosamente el acceso

Muchos incidentes de seguridad se deben a errores humanos y decisiones incorrectas, por lo que es importante implementar controles de acceso estrictos. Con unas pocas configuraciones sencillas, puedes reducir el riesgo de que usuarios no autorizados accedan a tu código en Bitbucket.

Los controles de acceso estrictos incluyen:

  • Exigir la autenticación de dos factores en todas las cuentas de Bitbucket agrega una capa adicional de seguridad al incorporar un segundo paso.

  • No permitir nunca que los desarrolladores compartan cuentas refuerza las políticas de privilegios mínimos y de acceso según la necesidad de conocer, que son buenas prácticas de seguridad.

  • Proteger adecuadamente los dispositivos físicos con acceso al código fuente resguarda tus activos en caso de robo.

  • Revocar el acceso a Bitbucket de los usuarios que ya no trabajan en la empresa es fundamental para proteger tu propiedad intelectual.

4. Agrega un archivo SECURITY.md

Usar un archivo SECURITY.md permite compartir información importante sobre la seguridad de tu proyecto con futuros colaboradores o encargados del mantenimiento. Este archivo debe incluir:

  • Política de divulgación: El proceso para reportar problemas de seguridad, incluida la persona de contacto, cómo comunicarse con ella y qué información proporcionar.

  • Política de actualizaciones de seguridad: Cómo se informará a los usuarios sobre las vulnerabilidades recién descubiertas y su posible impacto.

  • Configuración relacionada con la seguridad: Los ajustes recomendados para quienes usan el código, como HTTPS, una capa de autorización o protocolos para restablecer contraseñas.

  • Brechas de seguridad conocidas y mejoras futuras: Mejoras de seguridad que aún no se han implementado y que señalan áreas de riesgo que los usuarios del proyecto tendrán que mitigar por su cuenta.

5. Valida las aplicaciones de Bitbucket

Como las aplicaciones de Bitbucket son desarrolladas por terceros, es importante validar que sean seguras. Primero, confirma que los permisos de acceso de la aplicación impidan que usuarios no deseados accedan a tu código y que solo permitan el nivel de acceso necesario. Esto también incluye eliminar o deshabilitar las aplicaciones que ya no se usan.

También debes verificar la credibilidad de quien creó la aplicación, ya sea un autor individual o una organización entera. Recuerda que tu seguridad depende de tu eslabón más débil, por lo que es fundamental elegir aplicaciones creadas por desarrolladores confiables.

Por último, evalúa la postura de seguridad de la propia aplicación de Bitbucket. Si sus medidas de seguridad son insuficientes, una brecha puede dar a los atacantes acceso a tu código. Si auditas con regularidad las aplicaciones que usas, puedes asegurarte de que sigan siendo necesarias y seguras.

6. Recibe consejos de seguridad como parte de tu flujo de trabajo con Code Insights

La integración de Snyk con Bitbucket puede analizar tus pull requests para evitar que introduzcas nuevas vulnerabilidades. Snyk proporciona anotaciones detalladas en línea directamente en el pull request, junto a la posible vulnerabilidad, para que los desarrolladores puedan tomar decisiones informadas de inmediato.

Además de información sobre vulnerabilidades en dependencias, Snyk ofrece actualizaciones recomendadas para corregirlas y otros consejos prácticos para mitigar problemas, basados en la Base de datos de vulnerabilidades de Snyk Intel.

7. Agrega pruebas de seguridad a los pull requests

Los hooks de Bitbucket permiten activar análisis de código en cada pull request para comprobar la calidad y la seguridad del código. Por ejemplo, puedes usar webhooks para detectar errores y problemas de estilo con SonarCloud y automatizar las revisiones de código con Code Climate.

Con los hooks de Bitbucket, Snyk puede analizar cada pull request para detectar vulnerabilidades o problemas de licencias como parte natural de tu flujo de desarrollo. Así, los equipos de desarrollo obtienen cuanto antes la información de seguridad que necesitan.