Detector de AWS GuardDuty Deshabilitado/Suspendido – Regla Semanal de Detección de Amenazas #11-2025
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
El artículo del blog describe una regla de detección en AWS GuardDuty Detector diseñada para alertar cuando se elimina, desactiva o suspende un GuardDuty Detector. Recorre escenarios esperados de administración, pruebas y atacante, incluye una muestra de regla Sigma y detalla cómo investigar alertas. La regla se centra en registros de AWS CloudTrail que capturan actividades de las API DeleteDetector y UpdateDetector, ayudando a los equipos de seguridad a detectar intentos de desactivar la visibilidad de GuardDuty Detector.
Análisis
Esta sección aconseja a los analistas inspeccionar las entradas de CloudTrail para DeleteDetector and UpdateDetector llamadas API de GuardDuty, verificar si las acciones tuvieron éxito, identificar al usuario o rol de IAM que las emitió y correlacionar su momento con otros eventos sospechosos. Además, recomienda revisar los hallazgos recientes de GuardDuty generados antes del cambio del detector y evaluar los permisos de IAM asignados a la cuenta que realizó la operación.
Mitigación
La orientación de mitigación incluye restaurar rápidamente el GuardDuty Detector a un estado habilitado, endurecer las políticas de IAM, permitir que solo roles estrictamente controlados usen DeleteDetector and UpdateDetector llamadas API, aprovechar AWS Config para alertar sobre cambios en la configuración de GuardDuty y aplicar una gestión formal de cambios para cualquier eliminación legítima de un detector. Los equipos también deben revisar la automatización y los scripts para evitar la eliminación accidental de GuardDuty Detector.
Respuesta
Cuando se detecta tal actividad maliciosa, los equipos de seguridad deben confirmar si la solicitud estaba autorizada, reactivar inmediatamente el GuardDuty Detector, aislar cualquier recurso potencialmente comprometido, informar a los principales interesados y fortalecer el monitoreo y los controles de acceso para reducir el riesgo de cambios no autorizados en el detector en el futuro.
graph TB %% Class definitions classDef technique fill:#ffcc99 classDef action fill:#99ccff classDef builtin fill:#cccccc %% Technique nodes tech_valid_accounts[«<b>Técnica</b> – <b>T1078 Cuentas Válidas</b><br /><b>Descripción</b>: El adversario obtiene y utiliza credenciales comprometidas para acceder a cuentas.»] class tech_valid_accounts technique tech_impair_defenses[«<b>Técnica</b> – <b>T1562 Deteriorar Defensas</b><br /><b>Descripción</b>: El adversario intenta desactivar herramientas o mecanismos de seguridad.»] class tech_impair_defenses technique tech_clear_persistence[«<b>Técnica</b> – <b>T1070.009 Eliminar Persistencia</b><br /><b>Descripción</b>: El adversario elimina artefactos que podrían indicar persistencia o actividad previa.»] class tech_clear_persistence technique %% Action nodes action_obtain_credentials[«<b>Acción</b> – Obtener credenciales IAM comprometidas con permisos guardduty:DeleteDetector / UpdateDetector»] class action_obtain_credentials action action_disable_gd[«<b>Acción</b> – Eliminar o actualizar el detector de GuardDuty mediante llamadas a la API»] class action_disable_gd action action_remove_alerts[«<b>Acción</b> – Eliminar alertas y registros de GuardDuty, eliminando evidencia de detección»] class action_remove_alerts action %% Connections showing attack flow tech_valid_accounts u002du002d>|habilita| action_obtain_credentials action_obtain_credentials u002du002d>|se usa para ejecutar| tech_impair_defenses tech_impair_defenses u002du002d>|usa| action_disable_gd action_disable_gd u002du002d>|conduce a| tech_clear_persistence tech_clear_persistence u002du002d>|facilita| action_remove_alerts
Flujo de ataque
Detecciones
AWS GuardDuty Detector eliminado o actualizado [AWS CloudTrail]
Ver
IOCs (DestinationIP) para detectar: AWS : Regla de detección de amenazas – detector de GuardDuty desactivado o suspendido Semanal #11-2025
Ver
IOCs (SourceIP) para detectar: AWS : Regla de detección de amenazas – detector de GuardDuty desactivado o suspendido Semanal #11-2025
Ver
AWS GuardDuty Detector eliminado o actualizado
Ver
Ejecución de simulación
Prerrequisito: El chequeo previo de telemetría y línea base debe haber pasado.
-
Narrativa del ataque y comandos:
Un adversario que ha obtenido credenciales AWS privilegiadas (por ejemplo,
AdministratorAccess) busca ocultar actividad maliciosa eliminando la supervisión de GuardDuty. El atacante primero descubre el ID del detector de GuardDuty existente, luego elimina el detector completamente o lo actualiza para desactivarlo. Ambas acciones generan eventos CloudTrail que coinciden con la regla sigma. -
Script de prueba regresiva:
#!/usr/bin/env bash # ============================================================================= # Script de simulación – T1562.008: Desactivar/Eliminar GuardDuty Detector # Prerrequisitos: # - AWS CLI v2 instalado y configurado con credenciales que tienen derechos de administración de GuardDuty # - jq instalado para el análisis de JSON # ============================================================================= set -euo pipefail REGION="us-east-1" echo "[*] Descubriendo ID del detector de GuardDuty..." DETECTOR_ID=$(aws guardduty list-detectors --region "$REGION" --output json | jq -r '.DetectorIds[0]') if [[ -z "$DETECTOR_ID" || "$DETECTOR_ID" == "null" ]]; then echo "[!] No se encontró detector de GuardDuty en la región $REGION. Saliendo." exit 1 fi echo "[+] ID del detector: $DETECTOR_ID" # ------------------------------------------------------------------------- # Opción 1: Eliminar el detector (produce evento DeleteDetector) # ------------------------------------------------------------------------- echo "[*] Eliminando detector de GuardDuty para simular T1562.008..." aws guardduty delete-detector --detector-id "$DETECTOR_ID" --region "$REGION" echo "[+] Llamada DeleteDetector emitida." # ------------------------------------------------------------------------- # Opción 2: Desactivar el detector (produce UpdateDetector con enable=false) # ------------------------------------------------------------------------- # Descomentar el bloque a continuación para probar la ruta UpdateDetector en lugar de Delete. #: <<'DISABLE_BLOCK' #echo "[*] Desactivando detector de GuardDuty (ruta alternativa)..." #aws guardduty update-detector # --detector-id "$DETECTOR_ID" # --region "$REGION" # --enable false #echo "[+] Llamada UpdateDetector (enable=false) emitida." #: DISABLE_BLOCK echo "[*] Simulación completa. Verifique alertas SIEM para eventos DeleteDetector o UpdateDetector." -
Comandos de limpieza:
#!/usr/bin/env bash # Volver a crear el detector de GuardDuty (si fue eliminado) o volver a habilitarlo (si fue desactivado) REGION="us-east-1" # Comprobar si existen detectores EXISTING=$(aws guardduty list-detectors --region "$REGION" --output json | jq -r '.DetectorIds | length') if [[ "$EXISTING" -eq 0 ]]; then echo "[*] No se encontró detector de GuardDuty – creando uno nuevo..." aws guardduty create-detector --region "$REGION" --enable true echo "[+] Nuevo detector de GuardDuty creado y habilitado." else DETECTOR_ID=$(aws guardduty list-detectors --region "$REGION" --output json | jq -r '.DetectorIds[0]') echo "[*] Rehabilitando el detector existente $DETECTOR_ID..." aws guardduty update-detector --detector-id "$DETECTOR_ID" --region "$REGION" --enable true echo "[+] Detector $DETECTOR_ID rehabilitado." fi