Listen to this Post
2025-02-15
El servicio de AWS Identity and Access Management (IAM) es una de las partes más críticas en la seguridad de la nube. Sin embargo, malas configuraciones y permisos excesivos pueden convertirlo en un vector de ataque para la escalada de privilegios. A continuación, se describen cinco vectores de ataque comunes en AWS IAM, junto con herramientas y comandos para practicar y proteger tus entornos.
1. IAM Permissions on Other Users
Los permisos excesivos otorgados a un usuario pueden permitirle modificar o asumir roles de otros usuarios. Para auditar los permisos de IAM, utiliza el siguiente comando de AWS CLI:
aws iam list-users aws iam list-user-policies --user-name <USER_NAME>
2. Permissions on Policies
Un usuario con permisos para crear o modificar políticas puede otorgarse a sí mismo privilegios adicionales. Verifica las políticas asociadas a un usuario con:
aws iam list-policies aws iam get-policy-version --policy-arn <POLICY_ARN> --version-id <VERSION_ID>
3. Updating an AssumeRolePolicy
Si un usuario puede modificar la política de un rol, puede asumir ese rol y escalar privilegios. Para listar roles y sus políticas, usa:
aws iam list-roles aws iam get-role --role-name <ROLE_NAME>
4. iam:PassRole:*
El permiso `iam:PassRole` permite a un usuario pasar un rol a un servicio de AWS, lo que puede ser explotado si el rol tiene permisos elevados. Verifica los permisos de PassRole con:
aws iam list-roles --query 'Roles[?contains(AssumeRolePolicyDocument.Statement[].Action[], <code>iam:PassRole</code>)]'
5. Privilege Escalation Using AWS Services
Algunos servicios de AWS, como Lambda o EC2, pueden ser utilizados para escalar privilegios si están mal configurados. Para auditar servicios, ejecuta:
aws lambda list-functions aws ec2 describe-instances
Práctica con Terraform
Para practicar estos vectores de ataque en un entorno controlado, puedes desplegar un entorno vulnerable usando Terraform desde el repositorio de BishopFox:
git clone https://github.com/BishopFox/iam-vulnerable.git cd iam-vulnerable terraform init terraform apply
Este repositorio te permitirá simular escenarios de escalada de privilegios y aprender a proteger tus configuraciones de IAM.
What Undercode Say
La seguridad en AWS IAM es fundamental para proteger los recursos en la nube. Los cinco vectores de ataque descritos en este artículo son solo una muestra de cómo las malas configuraciones pueden ser explotadas. Para fortalecer la seguridad, es crucial auditar regularmente los permisos de IAM, utilizar políticas de mínimo privilegio y monitorear actividades sospechosas.
Aquí hay algunos comandos adicionales para mejorar la seguridad en AWS:
- Auditar políticas de IAM:
aws iam simulate-principal-policy --policy-source-arn <USER_ARN> --action-names <ACTION_NAME>
Habilitar MFA para usuarios:
aws iam enable-mfa-device --user-name <USER_NAME> --serial-number <MFA_SERIAL> --authentication-code1 <CODE1> --authentication-code2 <CODE2>
Monitorear actividades con CloudTrail:
aws cloudtrail lookup-events --lookup-attributes AttributeKey=Username,AttributeValue=<USER_NAME>
Restringir políticas de roles:
aws iam update-assume-role-policy --role-name <ROLE_NAME> --policy-document file://policy.json
Además, es recomendable utilizar herramientas como ScoutSuite para auditorías automatizadas:
pip install scoutsuite scout aws
La seguridad en la nube es un proceso continuo. Mantente actualizado con las mejores prácticas y utiliza herramientas como Terraform para simular y mitigar riesgos. Para más información, visita el repositorio de BishopFox/iam-vulnerable.
References:
Hackers Feeds, Undercode AI