Secuestrar la configuración de una función Lambda
Puede adjuntar una capa maliciosa a una función y ejecutar código como su rol de ejecución.
Concede escalada por sí solo.
lambda:UpdateFunctionConfigurationPor sí solo, lambda:UpdateFunctionConfiguration puede adjuntar una capa maliciosa a una función y ejecutar código con su rol de ejecución. Con un alcance de recursos amplio, eso por sí solo llega a acceso de administrador.
Por qué es peligroso
Un principal puede llamar a lambda:UpdateFunctionConfiguration sobre una función existente que se ejecuta con el rol de la función, adjuntando una capa de Lambda controlada por el atacante (o cambiando el runtime, el handler o el entorno) para que el código del atacante se cargue en la siguiente invocación, sin sobrescribir el código publicado de la función. Ese código se ejecuta con los permisos de la función y lee las credenciales activas de la función desde el entorno de ejecución de Lambda, sin necesidad de iam:PassRole, porque la función ya está vinculada al rol. Si la función es privilegiada, se trata de una escalada total de privilegios contra una función 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 UpdateFunctionConfiguration20150331v2, UpdateFunctionConfiguration. La llamada aparece en CloudTrail pero se confunde con la administración normal, así que necesita una regla para destacar.
Detección
UpdateFunctionConfiguration20150331v2UpdateFunctionConfigurationRequisitos previos
Una función de Lambda existente con un rol de ejecución; permiso para actualizar su configuración. La ejecución ocurre en el siguiente disparador (o en una invocación que el atacante pueda provocar); el cambio de capa o de runtime es la única escritura necesaria.
Táctica
Escalada de privilegios
Un control que lo eliminaría: Restringe lambda:UpdateFunctionConfiguration a los principales de CI/CD; reduce los permisos del rol de ejecución de la función.
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 lambda:UpdateFunctionConfiguration?
Puede adjuntar una capa maliciosa a una función y ejecutar código como su rol de ejecución.
¿Puede lambda:UpdateFunctionConfiguration escalar privilegios por sí solo?
Sí. Concedido sobre un recurso lo bastante amplio, llega a acceso de administrador sin ningún otro permiso.
¿Cómo se detecta el secuestro de la configuración de una función Lambda?
Vigila UpdateFunctionConfiguration20150331v2, UpdateFunctionConfiguration en CloudTrail. La llamada aparece en CloudTrail pero se confunde con la administración normal, así que necesita una regla para destacar.
¿Cómo se rompe esta ruta?
Un control que lo eliminaría es: Restringe lambda:UpdateFunctionConfiguration a las entidades de CI/CD; reduce los permisos del rol de ejecución de la función. 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.