DevOps ofrece una gran oportunidad para una mejor seguridad en el desarrollo y entrega de productos y servicios. Muchas de las prácticas que incorpora el modelo, como la automatización, el énfasis en las pruebas y los bucles de rápidos de feedback, son terreno fértil para integrar la seguridad y la capacidad de auditoría.
“La seguridad debe ser un componente incorporado en los procesos DevOps.”
Al integrar la seguridad, las personas y los procesos de manera estricta dentro del ciclo de entrega continua, DevOps puede ayudarnos a hacer un mejor trabajo para eliminar las lagunas y los vacíos en el código antes de llegar a producción. Las herramientas de DevOps enfatizan el uso de procesos frecuentes y automatizados para mejorar la calidad del software. Asimismo DevOps es un modelo ideal para incorporar pruebas y correcciones de seguridad.
Determinar la mejor manera de combinar la seguridad con DevOps es un trabajo en progreso y se debe mejorar de manera continua.
DevOps – Best Practices en seguridad
Las mejores prácticas para la seguridad en DevOps deben acoplarse a su modelo holístico y adoptar lo mejor de este modelo en todo el Pipeline de entrega de valor para incorporar los aspectos de seguridad en él. No obstante, tendremos que cuidar de incluir a todo los implicados en este esfuerzo y también de gestionar adecuadamente las herramientas que usemos.
Usar lo mejor de DevOps para la seguridad
DevOps, con su enfoque en la automatización y la integración continua, proporciona un marco más holístico para la gestión de la seguridad. Es necesario considerar la seguridad en cada paso del ciclo de desarrollo y producción.
Será por tanto necesario integrar controles de seguridad automatizados en las fases de desarrollo, prueba y despliegue.
Los profesionales de seguridad de la compañía pueden ayudar a los desarrolladores a eliminar los problemas de diseño al principio, como garantizar que todo el transporte de datos esté cifrado.
Asimismo será necesario concienciar y educar a todos los miembros del equipo sobre la importancia de incorporar el pensamiento de seguridad en sus roles de trabajo específicos.
“La seguridad no debería ser el último proceso antes de enviar el código a producción, si no que debe estar incorporado en todo el Pipeline de entrega de valor”
DevOps – Estar al día de las nuevas herramientas de seguridad en la nube
El crecimiento de la industria está aumentando rápidamente las necesidades de seguridad en DevOps. Existen un conjunto de herramientas que apoyan la seguridad en todo el Pipeline de entrega de valor y que es necesario que conozcamos y entendamos.
Estas se dividen en dos grupos:
- Herramientas de Seguridad de Aplicación Estática (SAS) prueban la seguridad cuando se escribe el código.
- Herramientas de Seguridad de Aplicación Dinámica (DAS) prueban los riesgos de la interfaz.
Algunos ejemplos de estas herramientas son Checkmarx, Veracode y Parasoft.
Una tercera área de herramientas de automatización cubre pruebas de vulnerabilidad de penetración, como Nessus, Qualys y OpenVAS.
Estas herramientas se pueden integrar sin problemas en el ciclo de vida de desarrollo del software, como por ejemplo conectándose a Jenkins.
“La automatización de la seguridad no solo estará incorporada, sino que no ralentizará el proceso DevOps.”
Lograr la implicación de los equipos de seguridad
Está bien podría ser la parte más difícil cuando se incorpora el modelo DevOps a una compañía y por tanto se hace necesario implicar a los equipos de seguridad.
Mientras que los desarrolladores estamos motivamos a ir más rápido y hacer más, los profesionales de la seguridad lo son para controlar, monitorizar y reducir el riesgo. Por tanto puede parecer que los objetivos de sendos equipos puede tener distintas velocidades y, en algún punto, ser antagónicos.
Comprender la importancia de trabajar en colaboración con el equipo de seguridad y de manera responsable es esencial para los desarrolladores y así lograr un buen modelo de entrega de valor.
Por su parte el equipo de seguridad pueden beneficiarse de una comprensión más completa de la seguridad en todo el proceso. Asimismo, pueden apoyar en el conocimiento y la formación continua en las nuevas herramientas y servicios disponibles en la actualidad para administrar el riesgo.
“Todo esto dará como resultado una seguridad aún más alta: mejores informes hasta la seguridad basada en API y un cifrado más sencillo.”
Gestionar la expansión de herramientas en DevOps
El concepto de auto-organización y autonomía es muy importante en DevOps: espíritu de flexibilidad y colaboración rápida.
Esta independencia, junto a la atomatización de procesos puede llevar a entornos con docenas o incluso cientos de herramientas diferentes. Administrar la implementación, la configuración, el control de calidad y la orquestación de estas herramientas es un reto importante.
No hacerlo supone introducir un riesgos para la visibilidad y el monitoreo. Así como la estandarización de los controles y el acceso de seguridad. De hecho, la infraestructura de automatización de DevOps en sí misma es susceptible de introducir riesgos: Si un atacante obtiene acceso a una herramienta como Puppet o Chef, puede modificar cualquier configuracioón y agregar nuevas cuentas de usuario.
“Por lo tanto es esencial lograr un equilibrio entre una gobernanza de herramientas y flujos de trabajo”
Para ello es necesario proporcionar pautas para la selección de herramientas, su monitorización y orquestación. Asimismo las herramientas de configuración y gestión de cambios deben estar securizadas y gobernadas adecuadamente.