Secuestrar el rol de la máquina de estados de Step Functions
Puede reescribir una máquina de estados y llamar a AWS directamente como su rol de ejecución.
Concede escalada solo en combinación. Se necesitan todos estos a la vez:
states:UpdateStateMachinestates:StartExecutionstates:UpdateStateMachine puede reescribir una máquina de estados y llamar directamente a AWS con su rol de ejecución, pero solo cuando se combina con states:StartExecution. Combinados, llegan a acceso de administrador.
Por qué es peligroso
Un principal puede llamar a states:UpdateStateMachine sobre una máquina de estados de Step Functions existente que ya tiene el rol de ejecución, reemplazando su definición ASL por una cuya tarea de integración con el SDK llama directamente a AWS (por ejemplo, iam:AttachUserPolicy), y después a states:StartExecution para ejecutarla. La tarea se ejecuta con el rol, sin necesidad de iam:PassRole ni de states:CreateStateMachine, porque el rol ya está vinculado a la máquina de estados. Si el rol es privilegiado, se trata de una escalada total de privilegios contra una máquina de estados en la que ya se confiaba.
En términos de MITRE ATT&CK, esto corresponde a T1578, Modificar la infraestructura de cómputo cloud, bajo la táctica de escalada de privilegios. AWS lo registra en CloudTrail como UpdateStateMachine, StartExecution. La llamada es ruidosa en CloudTrail y destaca de la actividad normal.
Detección
UpdateStateMachineStartExecutionRequisitos previos
Una máquina de estados existente con un rol de ejecución; permiso para actualizar su definición e iniciar una ejecución.
Táctica
Escalada de privilegios
Un control que lo eliminaría: Restringe states:UpdateStateMachine / states:StartExecution en las máquinas de estados que tienen un rol de ejecución con privilegios.
Aplicarla o no depende de cómo se use el permiso en tu entorno, así que es una decisión de negocio y no una corrección automática. El mismo permiso puede ser imprescindible en una cuenta y puro riesgo en otra.
Pathbreak confirma si esta ruta se resuelve en tu cuenta, la clasifica frente a las demás según cuánto abre y usa tu modelo de amenazas y tu contexto de negocio para mostrar qué rutas merece la pena cortar.
Preguntas
¿Qué permite states:UpdateStateMachine?
Puede reescribir una máquina de estados y llamar a AWS directamente como su rol de ejecución.
¿Qué más hace falta para que states:UpdateStateMachine sea peligroso?
Solo se convierte en escalada cuando se combina con states:StartExecution. Por sí solo no basta, y eso es lo que hace que la combinación sea fácil de pasar por alto.
¿Cómo se detecta el secuestro del rol de la máquina de estados de Step Functions?
Vigila UpdateStateMachine, StartExecution en CloudTrail. La llamada es ruidosa en CloudTrail y destaca de la actividad normal.
¿Cómo se rompe esta ruta?
Un control que lo eliminaría es: Restringe states:UpdateStateMachine / states:StartExecution en máquinas de estados que tengan un rol de ejecución con privilegios. Aplicarla o no depende de cómo se use el permiso en tu cuenta, así que es una decisión de negocio y no una corrección automática.
¿De qué técnica de MITRE ATT&CK se trata?
T1578, Modificar la infraestructura de cómputo cloud, en la táctica de escalada de privilegios.
Rutas relacionadas
Referencias
Encuéntralo en tu propia cuenta
Ejecutamos un escaneo de solo lectura de una cuenta de AWS y te mostramos cuáles de estas rutas existen, ordenadas por radio de impacto, con el cambio que rompe cada una. Primeras rutas validadas en menos de una hora.