En este artículo hablaré de una palabra de moda en el ámbito de DevOps: DevSecOps.
DevOps ha sido un éxito en los últimos años. Ahora se ha convertido en una de las prácticas fundamentales en todas las organizaciones. La colaboración entre los equipos de desarrollo y de operaciones ha ayudado a las organizaciones a lanzar sus productos a gran velocidad y con mayor calidad.
Mediante el uso de herramientas y prácticas DevOps, la mayoría de las cosas se han vuelto más fluidas y automatizadas.
Pero, ¿cree que no hay ningún reto con DevOps?
Sí que lo hay
¿Por qué necesitamos DevSecOps?
Unainvestigaciónde Forrester demostró que el 58% de las empresas sufrieron una violación de datos, y el 41% de ellas proceden de vulnerabilidades del software. Los errores de seguridad tienen el potencial de causar daños considerables y costar millones a las organizaciones.
- crecimiento del 88% y vulnerabilidades de las aplicaciones en más de dos años
- el 78% de las vulnerabilidades se encuentran en dependencias indirectas
- el 37% de los desarrolladores de código abierto no implementan ningún tipo de seguridad durante la integración continua
- el 54% de los desarrolladores no realiza ninguna prueba de seguridad de las imágenes Docker
Anteriormente, en el modelo de cascada, solía recopilar todos los requisitos, trabajar en todos los requisitos y, después de meses o años, solía entregar el producto completo. En DevOps, el producto completo se libera de forma iterativa. Una aplicación puede tener cientos de iteraciones en un día, pero ¿podría un probador de penetración encontrar fallos de seguridad en una aplicación cien veces al día?
La respuesta es ¡No!
Los desarrolladores, administradores y arquitectos piensan que si trabajan en la nube, están seguros porque el proveedor de la nube se ocupa de la seguridad. Esto es un mito y no es cierto. La mayoría de las veces, si está trabajando en la nube, está más expuesto a los ataques.
Así que en los tiempos que corren, la seguridad es un factor muy importante en todas las empresas. La seguridad tradicional no es lo suficientemente buena para seguir el rápido ritmo de DevOps.
¡Aquí es donde DevSecOps viene al rescate!
¿Qué es DevSecOps?
DevSecOps es la seguridad como cultura de código en la que se integran herramientas de seguridad en el ciclo de vida de DevOps. La seguridad como parte del proceso DevOps es la única forma de mitigar los riesgos.
Es un cambio transformacional que incorpora la cultura, las prácticas y las herramientas de seguridad en cada fase de los procesos DevOps. Elimina los silos entre los equipos de desarrollo, seguridad y operaciones.
Sigue el enfoque de cambio a la izquierda, lo que significa inyectar los procesos de seguridad en una fase temprana de la etapa de diseño/planificación para proporcionar conciencia de seguridad a los equipos de desarrollo y operaciones y cumplir los requisitos de ciberseguridad.
Estas son las prácticas de cómo se está implementando DevSecOps:
- Colaborando con los equipos de seguridad y desarrollo en el modelo de amenazas
- Integrando herramientas de seguridad en el conducto de integración del desarrollo
- Priorizando los requisitos de seguridad como parte del backlog del producto
- Revisando las políticas de seguridad relacionadas con la infraestructura antes del despliegue
- Los expertos en seguridad evalúan las pruebas automatizadas.
La innovación tecnológica moderna desempeña un papel vital en DevSecOps. La seguridad como código, el cumplimiento como código y la infraestructura como código pueden eliminar muchas actividades manuales de seguridad y aumentar la eficacia general.
Herramientas para DevSecOps
Se requieren muchas pilas tecnológicas con varias soluciones que deben integrarse cuidadosamente para implantar la cultura DevSecOps sin crear lagunas ni cuellos de botella en la seguridad.
A continuación se indican algunas herramientas DevSecOps importantes y de tendencia :
- SonarQube: se utiliza para la inspección continua de la calidad del código. Proporciona información continua sobre la calidad del software.
- ThreatModeler: proporciona una solución de modelado de amenazas que escala y asegura el ciclo de vida de desarrollo del software empresarial. Predice, identifica y define las amenazas a la seguridad, y le ayuda a ahorrar tiempo y costes.
- Aqua Security: proporciona prevención, detección y automatización de la respuesta para asegurar la creación, asegurar la infraestructura en la nube y asegurar las cargas de trabajo en ejecución. Protege todo el ciclo de vida de las aplicaciones.
- CheckMarx: una suite completa de soluciones de seguridad de software. Esta suite proporciona pruebas de seguridad para aplicaciones estáticas y dinámicas, herramientas como el análisis de la composición del software y el «code bashing» para promover la cultura de la seguridad del software entre los desarrolladores.
- Fortify: proporciona seguridad de aplicaciones como servicio. Se utiliza principalmente en la empresa para el desarrollo seguro, las pruebas de seguridad y la supervisión y protección continuas.
- HashiCorp Vault: gestiona secretos como contraseñas, tokens, claves API, certificados y protege estos datos sensibles. Hay más gestores de secretos que puede explorar aquí.
- GauntLT: una herramienta de desarrollo basada en el comportamiento para automatizar herramientas de ataque. Puede integrarse fácilmente con la herramienta y los procesos de prueba de su organización.
- IriusRisk: proporciona seguridad de aplicaciones a nivel de producción a escala. Le ayuda a gestionar los modelos de amenazas y los riesgos de seguridad mediante la sincronización bidireccional con las herramientas de pruebas y los rastreadores de incidencias con una vista de la actividad de seguridad en tiempo real.
Ecosistema DevSecOps
Este es el flujo de las distintas fases del ecosistema DevSecOps. Aquí la exploración de la seguridad formará parte del ecosistema completo.
- En la fase de desarrollo, las herramientas y plugins de seguridad pueden integrarse directamente en el entorno IDE, identificando cualquier vulnerabilidad del código fuente.
- Se pueden integrar ganchos de precompromiso que no permitirán comprometer ningún contenido de datos inseguro como claves de autenticación en el repositorio y mantener dichos datos únicamente en la máquina del desarrollador.
- El control de versiones mantendrá la gestión secreta y las configuraciones a nivel del repositorio.
- La pre y post-construcción asegurará las revisiones estáticas y dinámicas del código, la ejecución y la retroalimentación.
- El entorno de control de calidad comprobará el escaneado de seguridad y, especialmente, el escaneado de componentes de terceros.
- Mientras que el entorno de puesta en escena ejecutará pruebas de vulnerabilidad y penetración, los resultados se compartirán con los equipos de desarrollo, calidad y seguridad.
- El escaneado de seguridad automatizado en el entorno de producción para Infraestructura como código, Cumplimiento como código y Seguridad como código mitigará muchas actividades manuales de seguridad.
- Por último, la supervisión del entorno habilitará alertas y notificaciones para los umbrales de seguridad.
- La gestión de vulnerabilidades formará parte de todo el ecosistema DevSecOps.
Conclusión
Eso fue todo acerca de los fundamentos de DevSecOps. Si usted está en DevOps, debe comenzar a promover y aplicar la cultura DevSecOps en su organización. También puede consultar este blog para comprender las principales responsabilidades de un experto en DevSecOps.