Una de las estrategias que siguen los ciberdelincuentes para abrir camino a sus actividades maliciosas es tratar de obtener los credenciales de los desarrolladores o los privilegios administrativos de una herramienta de desarrollo.
Teniendo en cuenta que estos, en ocasiones, cuentan con excesivos privilegios y acceso a amplias áreas de un entorno TI, resultan objetivos muy atractivos para los hackers.
“Los ciberdelincuentes saben que los desarrolladores tienen todo el acceso que necesitan. Por ello, necesitamos proteger sus identidades y su acceso, sin restringir el enorme trabajo que realizan", comenta Brandon Traffanstedt, director senior de tecnología global de CyberArk.
Para reforzar la seguridad de DevOps, sin que redunde en el trabajo del desarrollador, CyberArk sugiere una serie de pasos:
1. Estaciones de trabajo y herramientas seguras para desarrolladores
A veces, los desarrolladores necesitan mejorar ciertas herramientas que utilizan para escribir y confirmar código y las organizaciones lo resuelven ofreciéndoles privilegios administrativos locales completos.
Traffanstedt explica que el objetivo debe ser reducir o erradicar por completo la enorme cantidad de administradores locales y, al mismo tiempo, proporcionar el nivel correcto de elevación según la política de seguridad.
Muchos ataques de robo de credenciales se pueden ejecutar sin privilegios de administrador local y desde la estación de trabajo de un solo desarrollador, por lo que resulta importante protegerse contra el robo de credenciales en los navegadores, donde los secretos de la aplicación pueden almacenarse para acceder a repositorios o herramientas con interfaces de línea de comandos (CLI), y donde esos mismos secretos se pueden almacenar directamente en archivos de configuración.
2. Asegurar la automatización
Otros vectores de amenazas que deben protegerse son los marcos de automatización que los desarrolladores emplean para configurar la infraestructura como código, junto con la enorme lista de herramientas de desarrollo que se utilizan en todo el proceso.
Es fundamental administrar y rotar los secretos utilizados por estas herramientas y plataformas, además de garantizar que las aplicaciones y los procesos se autentiquen de forma segura para recuperar esos secretos administrados. De lo contrario se habrá realizado una gran cantidad de trabajo con muy poco valor.
Muchas de las herramientas y servicios que ofrecen los proveedores de la nube y las plataformas de contenedores tienen algunas capacidades de gestión de secretos integradas. El uso de estas capacidades de administración de secretos nativos es mejor que ninguna seguridad, apunta Traffanstedt.
3.Determinar quién necesita acceso a qué
El siguiente paso es escoger quién puede confirmar el código fuente y elevar los binarios como parte de un flujo de trabajo de DevOps. No todos los miembros del equipo de DevOps necesitan tener derechos administrativos completos para todos los sistemas y herramientas que componen la canalización.
Los controles de acceso privilegiado just-in-time pueden brindar a determinados desarrolladores la flexibilidad para acceder a lo que necesitan y cuando lo necesitan, según el rol. Cuando se deban elevar los privilegios, los equipos de ciberseguridad deben monitorizar los recursos a los que se accede y por quién.
3. Acceso seguro de nivel 0 a recursos y máquinas virtuales
Los desarrolladores tampoco deberían tener acceso directo a máquinas virtuales en entornos de producción. Si necesitan acceso, deben gestionarlo mediante la administración de sesiones o una puerta de enlace de acceso web segura para minimizar los riesgos.
No se debe permitir que las excepciones a las políticas de seguridad se conviertan en permanentes. Es necesario que haya un proceso estricto para aprobar la asignación y activación de políticas en todo el flujo de trabajo de DevOps.
También se debe prestar especial atención a las plataformas en la nube que brindan a los usuarios varios niveles de opciones de acceso. Las mismas reglas de privilegio mínimo y procesos de monitorización y aislamiento de sesión que se aplican en un entorno local deben extenderse a la nube.