El desafío
Cuando el equipo de Helvetia comenzó a dejar atrás su stack de desarrollo interno para migrar a la nube, tuvo que volver a enfocarse en los requisitos de seguridad y analizar los riesgos de ejecutar en una infraestructura en la nube el software que desarrollaban. Gestionaban manualmente la seguridad de las aplicaciones e incluían verificaciones de dependencias de OWASP y revisiones de seguridad externas. Sin embargo, como tenían muchas aplicaciones nuevas en su entorno, el proceso era demasiado lento. Al desarrollar software, configuraban middleware y necesitaban una herramienta que cubriera todas las dependencias. Querían pasar de un enfoque de «protección», con pruebas de seguridad al final del proceso, a la «detección» en etapas más tempranas del ciclo de vida del desarrollo de software (SDLC), es decir, integrar la seguridad desde el inicio. Para eso, necesitaban una herramienta que generara informes de forma automatizada. Además, el equipo legal buscaba una solución que permitiera tener visibilidad del uso de licencias en su software. Los requisitos de la plataforma de detección de software incluían:
Informes automatizados sobre:
Vulnerabilidades en las dependencias utilizadas
Gestión del ciclo de vida
Uso de licencias
Integración en el ciclo de desarrollo
Compatibilidad nativa con:
Análisis de imágenes de contenedores
Análisis de dependencias del código
Información para la corrección
Integración con Kubernetes / Openshift
Análisis de dependencias de sus principales lenguajes de programación
Cumplimiento de ISMS e ISO 27001
La solución
Para migrar los entornos de ejecución y desarrollo de Helvetia a una infraestructura en la nube, el equipo sabía que necesitaba tener una visión general y evaluar el estado de todas las aplicaciones que se ejecutaban en su plataforma. Tras evaluar a más de 20 proveedores según sus criterios, concluyeron que necesitaban plataformas maduras como AWS, Openshift y Snyk para crear y desarrollar la plataforma de contenedores de Helvetia.
Snyk fue la solución que mejor se adaptó a sus necesidades, sobre todo en lo relacionado con la gestión del ciclo de vida y de las licencias. Además, el equipo de Helvetia comprobó que Snyk podía satisfacer sus requisitos clave, como la compatibilidad con Java/Maven, TypeScript/NPM, Python y .NET. Los desarrolladores querían una herramienta que pudieran usar fácilmente mediante una CLI y que se integrara con IntelliJ, su IDE. También era importante la integración con Bitbucket Server para analizar repositorios directamente desde Bitbucket. Por último, la integración completa con CI/CD era clave para probar cada compilación y avisarles si se incumplía alguno de sus requisitos internos.
Además, el modelo de precios de Snyk permitió que Helvetia comenzara a pequeña escala, según su número de usuarios, y creciera con el tiempo. Esto era importante porque se adaptaba a su migración gradual a la nube: a medida que Helvetia creciera, Snyk podría crecer con ellos.
El impacto
Desde que implementaron Snyk, el equipo puede detectar automáticamente problemas del ciclo de vida en el software que desarrollan y usar los informes de Snyk para verificar determinadas dependencias. También pueden registrar las dependencias utilizadas en un nivel más alto de abstracción en su herramienta de gestión del ciclo de vida, LeanIX. Esto les permite hacer un seguimiento del uso de las dependencias e identificar problemas relacionados con el fin de vida útil.
El CTO exige que realicen una prueba de seguridad antes de una auditoría. Aunque esto puede revelar muchos hallazgos, también lleva tiempo gestionarlos. Ahora, Snyk se encarga de los problemas más sencillos, por lo que pueden priorizar las pruebas de penetración y las auditorías de las aplicaciones críticas.
Ahora, el equipo de Helvetia tiene transparencia sobre el estado de sus aplicaciones, y sus equipos de desarrollo cuentan con herramientas para evaluar mejor qué componentes de terceros usan en sus aplicaciones. Esto les ha permitido adoptar un enfoque de seguridad continua. En palabras de Björn:
«Necesitamos garantizar la calidad durante el desarrollo, y Snyk nos ayudó a lograrlo. No habríamos llegado tan lejos sin una herramienta como Snyk».
Integración de Red Hat OpenShift con Snyk
Actualmente, el equipo usa la integración de Snyk Container / OpenShift para analizar las cargas de trabajo de contenedores en ejecución y está trabajando en definir la arquitectura de las aplicaciones que se ejecutan en OpenShift.
Como el equipo de Helvetia no tiene experiencia en la nube con AWS ni Azure, buscó una plataforma que le informara qué hace su proveedor de nube y cómo se desempeña. No querían quedar atados a un proveedor de nube y, como dijo Björn: «Openshift nos ofrece eso. No tenemos mucha experiencia con contenedores, y Openshift nos permite gestionarlos con seguridad integrada, algo muy importante para una empresa como la nuestra».
Openshift es uno de los entornos de ejecución de contenedores que evita que el equipo tenga que crear uno por su cuenta. Además, Openshift ofrece muchas ventajas para optimizar la experiencia de desarrollo. Pueden ocultar o abstraer algunos detalles subyacentes de la nube en la interfaz de cloudshift y despreocuparse de lo que ocurre detrás. Esto ha reducido las preocupaciones sobre las bibliotecas y las bases de datos, y ha dado más transparencia a los desarrolladores.
