6 vulnerabilidades importantes de AWS IAM y cómo evitarlas
5 de noviembre de 2021
0 minutos de lecturaNota del editor
Este blog se publicó originalmente en fugue.co. Fugue se unió a Snyk en 2022 y es un componente clave de Snyk IaC.
¿Qué es una vulnerabilidad en la nube? En términos sencillos, es una debilidad explotable en un entorno de nube. Las vulnerabilidades suelen deberse a configuraciones incorrectas de los recursos de la nube y pueden provocar filtraciones y fallas de seguridad, sobre todo cuando están relacionadas con la administración de identidades y accesos (IAM).
IAM es notoriamente complejo, y las consecuencias de configurarlo mal pueden ser graves. Según nuestro informe sobre el estado de la seguridad en la nube de 2021, IAM es la configuración incorrecta en la nube que se menciona con más frecuencia (el 41 % de las personas encuestadas la mencionó). Además, el informe de investigaciones sobre filtraciones de datos de Verizon de 2021 señala que las credenciales estuvieron involucradas en el 61 % de las filtraciones analizadas.
En esta publicación del blog, presentamos varias vulnerabilidades relacionadas con AWS IAM y consejos para prevenirlas.
Vulnerabilidades relacionadas con las credenciales de AWS
No rotar las claves de acceso
La vulnerabilidad: claves de acceso de IAM sin rotar
Por qué es peligroso: Las claves de acceso son credenciales de larga duración que los usuarios de IAM usan para acceder mediante programación a la CLI o la API. Las claves de acceso constan de un ID de clave de acceso y una clave de acceso secreta. Cuanto más tiempo estén activas, más oportunidades tendrá un atacante de ponerlas en riesgo. Las claves de acceso comprometidas son tan peligrosas como un nombre de usuario y una contraseña comprometidos.
Cómo solucionarlo: CIS AWS Foundations Benchmark v1.4.0 recomienda rotar las claves de acceso cada 90 días o menos. Puedes hacerlo desde AWS Management Console, la CLI o la API. Estos son los pasos generales:
Crear una nueva clave de acceso
Actualizar las aplicaciones para que usen la nueva clave
Desactivar la clave anterior
Cuando te asegures de que las aplicaciones funcionan, eliminar la clave anterior
Consulta aquí los pasos para corregirlo.
Reutilizar contraseñas
La vulnerabilidad: reutilizar una contraseña anterior
Por qué es peligroso: Al igual que sucede con las claves de acceso, cuanto más tiempo esté activa una contraseña, más oportunidades habrá de que se vea comprometida. Reutilizar la misma contraseña tampoco ayuda. Además, existe la posibilidad de sufrir ataques de relleno de credenciales, en los que un atacante intenta acceder a una cuenta probando muchos nombres de usuario y contraseñas robados.
Cómo solucionarlo: CIS AWS Foundations Benchmark v1.4.0 recomienda establecer una política de contraseñas que habilite «Impedir la reutilización de contraseñas» y configure «Número de contraseñas que se deben recordar» en 24. Consulta aquí los pasos para corregirlo.
No usar MFA
La vulnerabilidad: no usar MFA
Por qué es peligroso: La autenticación multifactor (MFA) agrega una capa de protección para los usuarios de IAM. Sin ella, solo se necesitan un nombre de usuario y una contraseña para iniciar sesión en AWS. Por lo tanto, si un atacante consigue credenciales comprometidas, tiene las llaves del reino. Sin embargo, cuando MFA está habilitada en una cuenta, el usuario debe proporcionar información adicional para iniciar sesión, como un código de un solo uso de un dispositivo MFA virtual o físico. Sin esta información, no se podrá iniciar sesión y el atacante no podrá acceder.
Cómo solucionarlo: CIS AWS Foundations Benchmark v1.4.0 recomienda habilitar MFA para todos los usuarios de IAM con acceso a la consola. Consulta aquí los pasos para corregirlo.
Vulnerabilidades relacionadas con las políticas de IAM
Permitir acciones de listado amplias en buckets de S3
La vulnerabilidad: las políticas de roles de IAM permiten acciones de listado amplias en buckets de S3
Por qué es peligroso: Si un rol de IAM tiene una política que permite acciones de listado amplias en buckets de S3 y un atacante obtiene acceso al rol, puede enumerar todos tus buckets para averiguar dónde guardas tus datos. Como s3 sync también requiere permisos de listado, el atacante podría robar datos confidenciales de tus buckets. Si no son estrictamente necesarias, evita incluir en las políticas de IAM las acciones s3:ListAllMyBuckets, s3:List* y s3:*. Es posible que esta vulnerabilidad haya contribuido a la filtración de datos de Capital One de 2019. Obtén más información en Un análisis técnico de la filtración de datos de Capital One causada por una configuración incorrecta en la nube.
Cómo solucionarlo: Elimina de la política de IAM los permisos de listado demasiado amplios. Consulta aquí los pasos para corregirlo.
Permitir que todas las entidades principales asuman un rol
La vulnerabilidad: las políticas de confianza de roles de IAM permiten que todas las entidades principales asuman el rol
Por qué es peligroso: Permitir que cualquier usuario de IAM de cualquier cuenta de AWS asuma un rol en tu cuenta le da acceso, en la práctica, a todos los permisos de ese rol de IAM. Esto podría tener consecuencias catastróficas y provocar una escalada de privilegios, la exfiltración de datos y mucho más. Asegúrate de que las políticas de confianza de roles no incluyan todos los siguientes elementos:
Effect: “Allow”
Principal: “*”
Action: “sts:AssumeRole”
Cómo solucionarlo: Reemplaza el comodín por una entidad principal específica. Consulta aquí los pasos para corregirlo.
Permitir privilegios administrativos completos
La vulnerabilidad: las políticas de IAM permiten privilegios administrativos completos "*:*"
Por qué es peligroso: Tener una política de IAM que permita todos los permisos posibles para todos los servicios posibles infringe directamente el principio de seguridad del mínimo privilegio. Si un atacante obtiene acceso a un usuario o rol con una política así, tendría acceso ilimitado a todo en tu cuenta de AWS y todo estaría perdido. Es mejor asignar solo los permisos necesarios, y nada más.
Cómo solucionarlo: Elimina los comodines de las políticas Allow en las que tanto Action como Resource estén configurados en *. Consulta aquí los pasos para corregirlo.
Consejos y prácticas recomendadas para IAM
Estas son algunas prácticas recomendadas para trabajar con IAM:
Aplica el principio de seguridad del mínimo privilegio. Otorga solo los permisos necesarios para realizar una tarea. Es mejor empezar con un rol con permisos mínimos y agregar permisos según sea necesario que empezar con acceso administrativo y luego quitar permisos.
Mantén buenos hábitos de uso de contraseñas. Puedes crear una política de contraseñas para los usuarios que les exija cumplir ciertos requisitos al crear una contraseña, como una longitud mínima (CIS recomienda al menos 14 caracteres), una combinación de letras, números y símbolos, y no reutilizar contraseñas anteriores. También puedes establecer una fecha de vencimiento para que los usuarios deban actualizar sus contraseñas periódicamente, por ejemplo, cada 90 días.
Guarda las credenciales de forma segura. No guardes claves de acceso ni contraseñas en repositorios de código, ni siquiera en los privados: así fue como hackearon Uber en 2016. Tampoco compartas credenciales entre usuarios.
Supervisa tu configuración de IAM para estar al tanto cada vez que se modifique una política o se active o desactive una clave de acceso. También debes escribir reglas personalizadas para aplicar los requisitos específicos de tu empresa. ¿Tu organización exige que los usuarios cambien su contraseña de AWS cada 45 días? Implementa una solución que revise cada cuenta de AWS para verificar que tenga una política de contraseñas que exija ese cambio.
¿Quieres seguir aprendiendo? Consulta nuestra serie sobre las 5 configuraciones incorrectas de AWS más comunes.



