¿DevOps con código abierto? Por supuesto.
Hoy en día, los equipos de DevOps están sometidos a una gran presión para entregar rápidamente nuevas aplicaciones y servicios que impulsen la transformación digital en la empresa. Cuentan con la ayuda de herramientas de código abierto que funcionan bien juntas gracias a interfaces y estándares abiertos y permiten una amplia automatización de los procesos de integración y entrega continuas (CI/CD).
Las herramientas son fáciles de evaluar y poner en marcha sin apoyo y -desgraciadamente- a menudo sin coordinación con los equipos de TI y seguridad. Pero el intento de producir nuevas aplicaciones cada vez más rápido y dotarlas de actualizaciones a intervalos cada vez más cortos conduce a menudo a prácticas poco seguras - especialmente cuando se trata de credenciales confidenciales y privilegiadas como contraseñas, claves API y SSH y certificados.
Los desarrolladores suelen incrustar los datos de inicio de sesión -por ejemplo, para acceder a bases de datos o servicios en la nube importantes- directamente en el código del programa o almacenarlos en archivos de configuración. En cualquier caso, esto es arriesgado, porque el código y las configuraciones suelen almacenarse en repositorios centrales a los que tienen acceso muchos usuarios diferentes. En el caso del código abierto, que se nutre de la idea de comunidad y de compartir el código fuente, también existe el peligro de que los datos de acceso salgan de la empresa involuntariamente y faciliten los ataques. Compartir el código es sin duda deseable e importante para el desarrollo del software de código abierto, pero los datos de acceso no tienen cabida en el código.
Además, los equipos de DevOps suelen utilizar herramientas de código abierto sin haberlas sometido antes a pruebas suficientes para detectar vulnerabilidades y gestionar las credenciales de forma segura. O utilizan código de terceros que no ha sido suficientemente probado o que está obsoleto. Los responsables de seguridad se enfrentan así al reto de minimizar los riesgos cuando utilizan código abierto sin ralentizar el trabajo de los equipos DevOps.
Por regla general, no pueden recurrir a soluciones clásicas para la gestión de la seguridad, ya que están diseñadas para aplicaciones de software y métodos de desarrollo tradicionales y, por tanto, son demasiado lentas, inflexibles y complejas para el mundo del desarrollo ágil. Mientras tanto, sin embargo, existen soluciones modernas para la gestión de secretos, es decir, el control y la administración de accesos privilegiados a sistemas críticos y entre partes de aplicaciones, y éstas también se basan en el código abierto. Estas soluciones protegen las credenciales tanto de las identidades técnicas como de los usuarios humanos en entornos DevOps e integran la seguridad a la perfección en los procesos CI/CD existentes.
La gestión moderna de secretos elimina las credenciales codificadas de las aplicaciones y los scripts y archivos de configuración de las herramientas de automatización y configuración a lo largo de todo el proceso de CI/CD y las gestiona de forma centralizada. Proporciona controles de acceso basados en políticas y funciones, rotación de credenciales y documentación completa para auditorías.
También comprueba las solicitudes de credenciales de los contenedores y los libera de acuerdo con las directrices, algo en lo que suelen fallar las soluciones de seguridad tradicionales debido a la corta vida útil de los contenedores. La gestión de secretos también asigna las identidades adecuadas a los nuevos hosts en entornos en la nube, de modo que los DevOps-
Los equipos pueden utilizar funciones de escalado automático y no tienen que asignar manualmente permisos a los nuevos anfitriones.
En resumen, un sistema moderno de gestión de secretos autentica, controla y audita todos los accesos de forma centralizada a través de pilas de herramientas, plataformas de contenedores y entornos en la nube y, por lo tanto, también disuelve los silos de seguridad. De este modo, los equipos de seguridad protegen de forma fiable todas las credenciales, mientras que los equipos de DevOps pueden concentrarse en su tarea real: el desarrollo, el mantenimiento y el funcionamiento de las aplicaciones.