in

Amazon GuardDuty mejora la detección de exfiltración de credenciales de instancia EC2 | Servicios web de Amazon

Amazon GuardDuty es un servicio de detección de amenazas que monitorea continuamente la actividad maliciosa y el comportamiento no autorizado para proteger sus cuentas, cargas de trabajo y datos de AWS almacenados en Amazon Simple Storage Service (Amazon S3). Con información de una multitud de fuentes de datos públicas y generadas por AWS y con tecnología de aprendizaje automático, GuardDuty analiza miles de millones de eventos en busca de tendencias, patrones y anomalías que son signos reconocibles de que algo anda mal. Puede habilitarlo con un clic y ver los primeros hallazgos en minutos.

Hoy, agregamos a GuardDuty la capacidad de detectar cuándo sus credenciales de instancia de Amazon Elastic Compute Cloud (Amazon EC2) se están utilizando desde otra cuenta de AWS. Las credenciales de la instancia de EC2 son las credenciales temporales disponibles a través del servicio de metadatos de EC2 para cualquier aplicación que se ejecute en una instancia, cuando se le adjunta una función de AWS Identity and Access Management (IAM).

¿Cuáles son los riesgos?
Cuando sus cargas de trabajo implementadas en instancias EC2 acceden a los servicios de AWS, utilizan una clave de acceso, una clave de acceso secreta y un token de sesión. El mecanismo seguro para pasar las credenciales de clave de acceso a sus cargas de trabajo es definir los permisos requeridos por su carga de trabajo, crear una o varias políticas de IAM con los permisos, adjuntar las políticas a un rol de IAM y, finalmente, adjuntar el rol a la instancia.

Cualquier proceso que se ejecute en una instancia de EC2 con un rol adjunto puede recuperar las credenciales de seguridad llamando al servicio de metadatos de EC2:

curl 169.254.169.254/latest/meta-data/iam/security-credentials/role_name
{
  "Code" : "Success",
  "LastUpdated" : "2021-09-05T18:24:45Z",
  "Type" : "AWS-HMAC",
  "AccessKeyId" : "AS...J5",
  "SecretAccessKey" : "r1...9m",
  "Token" : "IQ...z5Q==",
  "Expiration" : "2021-09-06T00:44:06Z"
}

Estas credenciales están limitadas en tiempo y alcance. Tienen una vigencia máxima de seis horas. Están limitados al alcance de los permisos adjuntos al rol de IAM asociado con la instancia EC2.

Todos los SDK de AWS pueden recuperar y renovar dichas credenciales automáticamente. No es necesario ningún código adicional en su aplicación.

Ahora imagine que su aplicación que se ejecuta en la instancia EC2 está comprometida y un actor malintencionado logró acceder al servicio de metadatos de la instancia. El actor malintencionado extraería las credenciales. Estas credenciales tienen los permisos que definió en el rol de IAM adjunto a la instancia. Según su aplicación, los atacantes pueden tener la posibilidad de filtrar datos de S3 o DynamoDB, iniciar o finalizar instancias EC2 o incluso crear nuevos usuarios o roles de IAM.

Desde el lanzamiento de GuardDuty, ha detectado cuándo se utilizan dichas credenciales desde direcciones IP fuera de AWS. Por lo tanto, los atacantes inteligentes podrían ocultar su actividad de otra cuenta de AWS para operar fuera de la vista de GuardDuty. A partir de hoy, GuardDuty también detecta cuándo se utilizan las credenciales de otras cuentas de AWS, dentro de la red de AWS.

¿Qué alertas se generan?
Existen motivos legítimos por los que la dirección IP de origen que se comunica con las API de servicios de AWS puede ser diferente de la dirección IP de la instancia EC2. Piense en topologías de red complejas que enrutan el tráfico a una o varias VPC; AWS Transit Gateway o AWS Direct Connect, por ejemplo. Además, las configuraciones de múltiples regiones, o no usar AWS Organizations, hacen que no sea trivial detectar si la cuenta de AWS que usa las credenciales le pertenece o no. Grandes empresas han implementado su propia solución para detectar tales compromisos de seguridad, pero este tipo de soluciones no son fáciles de construir y mantener. Solo unas pocas organizaciones tienen los recursos necesarios para hacer frente a este desafío. Cuando lo hacen, distraen sus esfuerzos de ingeniería de su negocio principal. Es por eso que decidimos abordar esto.

A partir de hoy, GuardDuty genera alertas cuando detecta un uso indebido de las credenciales de la instancia EC2. Cuando las credenciales se usan desde una cuenta afiliada, la alerta se etiqueta como de gravedad media. De lo contrario, se genera una alerta de gravedad alta. Las cuentas afiliadas son cuentas supervisadas por la misma cuenta de administrador de GuardDuty, también conocidas como cuentas de miembro de GuardDuty. Pueden ser parte de su organización o no.

En la práctica
Para saber cómo funciona, capturemos y extraigamos un conjunto de credenciales de EC2 de una de mis instancias de EC2. Uso SSH para conectarme a una de mis instancias y uso curl para recuperar las credenciales, como se muestra anteriormente:

curl 169.254.169.254/latest/meta-data/iam/security-credentials/role_name
{
  "Code" : "Success",
  "LastUpdated" : "2021-09-05T18:24:45Z",
  "Type" : "AWS-HMAC",
  "AccessKeyId" : "AS...J5",
  "SecretAccessKey" : "r1...9m",
  "Token" : "IQ...z5Q==",
  "Expiration" : "2021-09-06T00:44:06Z"
}

La instancia tiene un rol de IAM con permisos que permiten leer depósitos S3 en esta cuenta de AWS. Copio y pego las credenciales. Luego me conecto a otra instancia de EC2 que se ejecuta en una cuenta de AWS diferente, no afiliada a la misma cuenta de administrador de GuardDuty. Uso SSH para conectarme a esa otra instancia y luego configuro la CLI de AWS con las credenciales comprometidas. Intento acceder a un depósito S3 privado.


# first verify I do not have access 
[ec2-user@ip-1-1-0-79 ~]$ aws s3 ls s3://my-private-bucket

An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied

# then I configure the CLI using the compromised credentials
[ec2-user@ip-1-1-0-79 ~]$ aws configure
AWS Access Key ID [None]: AS...J5
AWS Secret Access Key [None]: r1...9m
Default region name [None]: us-east-1
Default output format [None]:

[ec2-user@ip-1-1-0-79 ~]$ aws configure set aws_session_token IQ...z5Q==

# Finally, I attempt to access S3 again
[ec2-user@ip-1-1-0-79 ~]$ aws s3 ls s3://my-private-bucket
                     PRE folder1/
                     PRE folder2/
                     PRE folder3/
2021-01-22 16:37:48 6148 .DS_Store

Poco después, uso la Consola de administración de AWS para acceder a GuardDuty en la cuenta de AWS donde robé las credenciales. Puedo verificar que se generó una alerta de gravedad alta.

¿Y qué?
Los atacantes pueden extraer credenciales cuando tienen ejecución remota de código (RCE), presencia local en la instancia, o explotando vulnerabilidades a nivel de aplicación como Falsificación de solicitud del lado del servidor (SSRF) y Entidad externa XML (XXE) inyección. Existen varios métodos para mitigar RCE o el acceso local, incluida la reconstrucción de las instancias desde una AMI protegida y parcheada para eliminar el acceso remoto, rotar las credenciales de acceso, etc. Cuando la vulnerabilidad está en el nivel de la aplicación, usted o el proveedor de la aplicación deben parchear el código de la aplicación para eliminar la vulnerabilidad.

Cuando recibe una alerta que indica un riesgo de credenciales comprometidas, lo primero que debe hacer es verificar la identificación de la cuenta. ¿Es una de las cuentas de su empresa o no? Durante el análisis, cuando el caso comercial lo permita, puede finalizar las instancias comprometidas o cerrar la aplicación. Esto evita que el atacante extraiga credenciales de instancia renovadas al vencimiento. En caso de duda, comuníquese con el equipo de Confianza y seguridad de AWS mediante el formulario Informar abuso de Amazon AWS o comunicándose con abuse@amazonaws.com. Proporcione toda la información necesaria, incluido el ID de la cuenta de AWS sospechosa, los inicios de sesión en texto sin formato, etc., cuando envíe su solicitud.

Disponibilidad
Esta nueva capacidad está disponible en todas las regiones de AWS sin costo adicional. Está habilitado de forma predeterminada cuando GuardDuty ya está habilitado en su cuenta de AWS.

De lo contrario, habilite GuardDuty ahoray comience el período de prueba de 30 días.

–seb



Fuente

Aviones en contacto por radio: TU Graz desarrolla herramientas de simulación para la ocupación de transpondedores

Aeronaves en contacto por radio: desarrollo de herramientas de simulación para la ocupación de transpondedores

Ventana de edición de Microsoft Word que muestra un documento con poco contraste de texto en una sección.  Una parte ampliada de la pantalla muestra el indicador

Facilitando la creación de contenido que todos puedan usar: novedades en las funciones de accesibilidad de Microsoft 365 para el invierno de 2022 – Blog de accesibilidad de Microsoft