El vector de entrada y el compromiso de identidades
El grupo de amenazas Storm-3068 inició su incursión mediante la manipulación de un proceso de restablecimiento de contraseña de autoservicio. Esta vulnerabilidad permitió al atacante obtener el acceso inicial a una cuenta de usuario, que posteriormente fue consolidada mediante el registro de sus propios métodos de autenticación. Una vez que el actor de amenazas estableció este control total sobre la identidad, pudo mantener un acceso persistente al entorno sin necesidad de desplegar malware complejo en la fase inicial.
El equipo de Respuesta a Incidentes de Ciberseguridad de Microsoft Defender Experts, conocido como DART, identificó que el atacante no utilizó exploits de software ni herramientas maliciosas convencionales para el acceso primario. En su lugar, aprovechó servicios de identidad legítimos y herramientas administrativas estándar para moverse lateralmente por el sistema. Esta estrategia permitió que la actividad pasara desapercibida durante más tiempo, ya que las acciones ejecutadas simulaban el comportamiento de un administrador o un desarrollador autorizado.
Explotación de Azure DevOps y flujos de trabajo de desarrollo
Tras asegurar la identidad del usuario, Storm-3068 centró sus esfuerzos en Azure DevOps, la plataforma de Microsoft que integra la gestión de código fuente, la planificación de proyectos y la automatización de despliegues. El atacante utilizó scripts automatizados y herramientas administrativas para enumerar repositorios, proyectos y entornos de despliegue. El objetivo era mapear las rutas de despliegue confiables y los recursos conectados para identificar puntos débiles que permitieran expandir sus permisos.
La fase crítica del ataque ocurrió cuando el grupo modificó los flujos de trabajo (pipelines) de desarrollo. Un pipeline es una serie de pasos automatizados que llevan el código desde el repositorio hasta el entorno de producción. Storm-3068 creó un pipeline malicioso diseñado específicamente para recolectar credenciales de Kubernetes a gran escala. Kubernetes es el sistema de orquestación de contenedores que gestiona el despliegue de aplicaciones en la nube, y el control sobre sus credenciales otorga un acceso directo a los servidores y datos de la infraestructura.
Recolección de credenciales y agentes de control
El pipeline malicioso desplegó un agente de kube, cuya función era ejecutar trabajos para recopilar archivos kubeconfig. Estos archivos contienen los detalles de conexión al clúster y la información de autenticación necesaria para interactuar con la API de Kubernetes. Gracias a los permisos de la cuenta comprometida, el atacante logró que el pipeline tuviera autorización para acceder a más de 50 recursos y servicios distintos.
Además de la extracción de credenciales, el grupo instaló el agente de gestión remota Atera y la utilidad de tunelización Chisel. Chisel es una herramienta que permite crear túneles TCP sobre HTTP, lo que en este caso se utilizó para establecer un túnel inverso hacia una dirección IP externa. Esta maniobra tenía como objetivo exponer el servidor de la API de Kubernetes y facilitar la interacción remota con los clústers, evitando las restricciones de seguridad del firewall perimetral.
El código fuente como mapa de la infraestructura
La investigación de Microsoft subraya que los repositorios de código no solo contienen la lógica de las aplicaciones, sino que a menudo actúan como una hoja de ruta detallada de toda la infraestructura de una empresa. Al analizar el historial de versiones de Git y los registros de auditoría de Azure DevOps, los investigadores descubrieron que Storm-3068 añadió siete archivos kubeconfig robados a un repositorio. Esto permitió al atacante acceder a clústers de Kubernetes específicos que eran objetivos prioritarios.
Este incidente revela que la intersección entre la identidad, el desarrollo de software y las operaciones de nube crea una superficie de ataque donde un fallo en un solo punto puede comprometer todo el ecosistema. Cuando las conexiones entre los flujos de despliegue y los entornos de producción son demasiado estrechas y carecen de controles estrictos, el código fuente se convierte en la llave maestra para acceder a los secretos de la infraestructura.
Medidas de mitigación y defensa de identidades
Microsoft ha emitido una serie de recomendaciones técnicas para evitar que este vector de ataque sea replicado. La primera línea de defensa debe centrarse en la monitorización de la actividad de restablecimiento de contraseñas. Las organizaciones deben buscar patrones inusuales, como intentos repetidos de restablecimiento o actividad que afecte a múltiples usuarios en un corto periodo de tiempo, lo que podría indicar un ataque de Storm-3068 o grupos similares.
Para las cuentas con privilegios elevados, la recomendación es limitar la exposición a los flujos de restablecimiento de contraseña de autoservicio y exigir la implementación de una autenticación multifactor resistente al phishing. Esto evita que el robo de una contraseña o la manipulación de un proceso de recuperación sea suficiente para tomar el control de una identidad administrativa.
Control de pipelines y principio de mínimo privilegio
En el ámbito del desarrollo, Microsoft insta a las empresas a implementar políticas de protección de ramas y requerir aprobaciones obligatorias para cualquier cambio en el código. Restringir los commits directos a las ramas críticas asegura que todas las modificaciones pasen por un proceso de revisión humana, lo que dificultaría que un atacante insertara scripts maliciosos en un flujo de despliegue sin ser detectado.
Asimismo, es fundamental controlar estrictamente los permisos de los pipelines, limitando quién puede crear, modificar o ejecutar procesos de construcción y despliegue. La aplicación del principio de mínimo privilegio, que consiste en otorgar solo los permisos estrictamente necesarios para realizar una tarea, reduciría drásticamente el impacto de una cuenta comprometida. Si el pipeline malicioso de Storm-3068 hubiera tenido acceso restringido, no habría podido interactuar con 50 recursos diferentes.
Análisis de la respuesta y estado de la amenaza
La intervención del equipo DART se centró en analizar la telemetría de los sistemas de identidad, las plataformas de desarrollo y la infraestructura de nube para reconstruir la línea temporal del ataque. Esta coordinación permitió no solo contener la intrusión, sino también eliminar los túneles establecidos por la herramienta Chisel y revocar las credenciales comprometidas en los clústers de Kubernetes.
Aunque Microsoft ha detallado la metodología técnica del ataque, existen vacíos de información sobre el alcance global de esta campaña. No se ha especificado la fecha exacta en la que comenzaron las incursiones ni el número total de organizaciones afectadas por la actividad de Storm-3068. Lo que sí está confirmado es que el grupo ha evolucionado su táctica para evitar el uso de malware, basando su éxito en el abuso de herramientas legítimas de administración de nube.
Este caso marca un cambio en la percepción de la seguridad de DevOps. Hasta hace poco, el enfoque principal era proteger el código contra vulnerabilidades o fugas de datos. Ahora, la prioridad debe desplazarse hacia la protección de la cadena de suministro de software y la identidad del desarrollador, ya que el flujo de despliegue se ha convertido en el camino más corto hacia el núcleo de la infraestructura de nube.




