¿Qué es la seguridad de DevOps?
- Glosario IAM
- ¿Qué es la seguridad de DevOps?
La seguridad de DevOps, también conocida como DevSecOps, es un conglomerado de las palabras desarrollo, operaciones y seguridad. Tanto la seguridad de DevOps como DevSecOps hacen referencia a la filosofía de integrar la seguridad en el ciclo de vida del desarrollo del software (SDLC) tan pronto como sea posible, preferiblemente antes de que se escriba la primera línea de código.
¿Cuál es la diferencia entre DevOps y DevSecOps?
DevSecOps es una extensión o mejora de la filosofía DevOps. Por esta razón, es importante que entienda qué tienen en común DevOps y DevSecOps antes de pasar a conocer sus diferencias.
Tanto DevOps como DevSecOps hacen referencia a la filosofía o planteamiento del desarrollo del software, no a una herramienta en concreto o a un grupo de herramientas. Del mismo modo que instalar un sistema de seguimiento de incidencias no significa "hacer DevOps", instalar herramientas de seguridad de aplicaciones estáticas o dinámicas no significa "hacer DevSecOps".
Tanto DevOps como DevSecOps hacen hincapié en la colaboración, automatización y supervisión activa de las aplicaciones de software. La capacidad de capturar datos de las aplicaciones en tiempo real es clave para ambas filosofías, porque "hacer" DevOps y DevSecOps requiere capturar y analizar continuamente estos datos para descubrir formas de mejorar la productividad e impulsar mejoras.
Ambas filosofías también dependen de la colaboración, especialmente a la hora de eliminar silos organizativos. DevOps busca romper los silos entre el desarrollo de software y las operaciones de TI, con la idea de que cuando los desarrolladores y el personal de TI trabajan juntos, el software se publica más rápidamente y con menos errores. DevSecOps va un paso más allá, ya que su objetivo es colocar las operaciones de seguridad en la ecuación. La idea tras DevSecOps es que cuando los desarrolladores, el personal de TI y el personal de seguridad trabajan juntos, el software se publica más rápidamente, es de mayor calidad y es más seguro.
"Hacer" DevSecOps correctamente significa que las aplicaciones están protegidas de forma adecuada frente a riesgos antes de que se envíen a producción. Normalmente, a esta práctica se la denomina "shift left", porque se refiere a la integración de la seguridad al inicio del proyecto (antes de que se escriba una sola línea de código) en lugar de abordarla en fases posteriores. En un entorno DevSecOps, los desarrolladores programan teniendo siempre en cuenta la seguridad, algo que el DevOps por sí solo no contempla.
Al introducir prácticas como el análisis del código, la investigación de amenazas y la evaluación de vulnerabilidades en el SDLC, con pruebas y evaluaciones continuas, DevSecOps garantiza que la base del código sea segura desde el principio. Además de mejorar la seguridad de las aplicaciones, DevSecOps aumenta la productividad. Descubrir y solucionar los problemas de seguridad desde el principio es mucho menos lento y costoso que tener que refactorizar el código más adelante en el ciclo de vida del software.
Retos de la seguridad DevOps
A pesar de todos los beneficios de DevSecOps, las organizaciones pueden tener dificultades para implementarlo correctamente. Examinemos algunos de los retos más comunes para la seguridad de DevOps.
Demasiado centrada en las herramientas, demasiado poco centrada en los procesos. Como se ha mencionado anteriormente en el artículo, tanto DevOps como DevSecOps son filosofías, pues no obligan a utilizar un software en particular.
Resistencia cultural por parte de los desarrolladores o el típico "siempre se ha hecho así". Puede que los desarrolladores no estén acostumbrados a las prácticas de codificación segura. Habitualmente, los desarrolladores programaban buscando viabilidad, y los fallos de seguridad se descubrían y parcheaban posteriormente. Temían que tener que preocuparse por la seguridad ralentizara la producción.
Resistencia cultural por parte de los equipos de seguridad. Los desarrolladores no son los únicos que se aferran a la idea del "siempre se ha hecho así". Los equipos de DevOps se centran en la velocidad: modifican y sacan el código en horas o días, a un ritmo rápido que puede preocupar a los equipos de seguridad. La diferencia radica en que los equipos de DevOps automatizan todos los procesos posibles, mientras que los equipos de seguridad normalmente hacen su trabajo de forma manual.
Gestión de secretos inadecuada. Los entornos de DevOps son muy complejos y están profundamente interconectados. No es inusual para las tiendas de DevOps tener cientos de grupos de seguridad y miles de instancias de servidores, los cuales utilizan secretos como credenciales de cuentas privilegiadas, claves SSH, tokens de API, contraseñas de bases de datos, etc., todos dispersos por el entorno de datos de la organización en una condición conocida como "divulgación de secretos". Un pequeño error en la configuración puede conllevar la exposición de uno de estos secretos y que la organización sufra un ataque cibernético catastrófico.
Gestión del acceso privilegiado inadecuada. Para acelerar la producción, muchos equipos DevOps dan a sus miembros un acceso prácticamente ilimitado a cuentas privilegiadas como las cuentas raíz y de administrador. Y lo que es peor, varios individuos pueden compartir el mismo conjunto de credenciales, lo cual es un gran error de seguridad y un gran problema durante las auditorías de cumplimiento con las regulaciones, en las que se espera que las organizaciones tengan un resultado de auditoría limpio. Además, la orquestación, la gestión de la configuración y otras herramientas DevOps también pueden tener niveles de acceso muy altos, mucho más de lo que la herramienta necesita para funcionar.
Buenas prácticas de la seguridad de DevOps
A continuación, encontrará algunas buenas prácticas para implementar la seguridad de DevOps en su organización.
- Recuerde que DevSecOps, como DevOps, es una actitud, no un conjunto de herramientas. En lugar de comprar "herramientas de DevSecOps" y averiguar dónde quiere utilizarlas, enfóquese en sus objetivos finales, desarrolle procesos para conseguirlos y después compre las herramientas necesarias para los procesos y objetivos propuestos.
- Use los métodos de gestión de cambios adecuados para superar la resistencia cultural por parte de sus desarrolladores y personal de seguridad. Demuestre a ambos equipos que DevSecOps les ahorrará tiempo y les hará más productivos, no menos. Establezca estándares de programación claros para sus desarrolladores y automatice todo lo posible los procesos y las herramientas de seguridad.
- Combata la divulgación de secretos con una herramienta como Keeper Secrets Manager.
- Restrinja el exceso de derechos de privilegio y los niveles de acceso con controles como el control de accesos basados en roles (RBAC), el acceso de privilegios mínimo y el aprovisionamiento justo a tiempo.
- Evite que se abuse de los accesos privilegiados mediante el registro y la auditoría de las sesiones.