Détecteur AWS GuardDuty Désactivé/Suspendu – Règle de Détection des Menaces Hebdomadaire #11-2025
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
L’article de blog décrit une règle de détection dans AWS GuardDuty Detector conçue pour alerter lorsqu’un GuardDuty Detector est supprimé, désactivé, ou suspendu. Il détaille les scénarios administratifs, de test et d’attaquant attendus, inclut un exemple de règle Sigma, et explique comment enquêter sur les alertes. La règle se concentre sur les enregistrements AWS CloudTrail qui capturent l’activité des API DeleteDetector et UpdateDetector, aidant les équipes de sécurité à repérer les tentatives de désactivation de la visibilité du GuardDuty Detector.
Analyse
Cette section recommande aux analystes d’examiner les entrées CloudTrail pour DeleteDetector and UpdateDetector appels API GuardDuty ****, vérifier si les actions ont réussi, identifier l’utilisateur IAM ou le rôle qui les a émis, et corréler leur chronologie avec d’autres événements suspects. Il est également conseillé d’examiner les découvertes récentes de GuardDuty générées avant le changement de détecteur et d’évaluer les permissions IAM attribuées au compte ayant effectué l’opération.
Atténuation
Les conseils d’atténuation incluent la restauration rapide du GuardDuty Detector dans un état activé, le renforcement des politiques IAM, en ne permettant qu’à des rôles strictement contrôlés d’utiliser DeleteDetector and UpdateDetector les appels API, l’utilisation d’AWS Config pour alerter sur les changements de configuration de GuardDuty, et l’application de la gestion formelle du changement pour toute suppression légitime de détecteur. Les équipes devraient également examiner l’automatisation et les scripts pour éviter toute suppression accidentelle de GuardDuty Detector.
Réponse
Lorsqu’une telle activité malveillante est détectée, les équipes de sécurité doivent confirmer si la demande était autorisée, réactiver immédiatement le GuardDuty Detector, isoler toute ressource potentiellement compromise, informer les parties prenantes clés, et renforcer la surveillance ainsi que les contrôles d’accès pour réduire le risque de futurs changements non autorisés de détecteur.
mermaid graph TB %% Class definitions classDef technique fill:#ffcc99 classDef action fill:#99ccff classDef builtin fill:#cccccc %% Technique nodes tech_valid_accounts[« <b>Technique</b> – <b>T1078 Comptes Valides</b><br/><b>Description</b>: L’adversaire obtient et utilise des identifiants compromis pour accéder aux comptes. »] class tech_valid_accounts technique tech_impair_defenses[« <b>Technique</b> – <b>T1562 Affaiblir les défenses</b><br/><b>Description</b>: L’adversaire tente de désactiver les outils ou mécanismes de sécurité. »] class tech_impair_defenses technique tech_clear_persistence[« ÅÅ<b>Technique</b> – <b>T1070.009 Effacer la Persistance</b><br/><b>Description</b>: L’adversaire supprime des artefacts qui pourraient indiquer de la persistance ou une activité antérieure. »] class tech_clear_persistence technique %% Action nodes action_obtain_credentials[« <b>Action</b> – Obtenir des informations d’identification IAM compromises avec les permissions guardduty:DeleteDetector/UpdateDetector »] class action_obtain_credentials action action_disable_gd[« <b>Action</b> – Supprimer ou Mettre à jour le détecteur GuardDuty via des appels API »] class action_disable_gd action action_remove_alerts[« <b>Action</b> – Supprimer les alertes et les journaux GuardDuty, éliminant les preuves de détection »] class action_remove_alerts action %% Connections showing attack flow tech_valid_accounts u002du002d>|permet| action_obtain_credentials action_obtain_credentials u002du002d>|utilisé pour exécuter| tech_impair_defenses tech_impair_defenses u002du002d>|utilise| action_disable_gd action_disable_gd u002du002d>|mène à| tech_clear_persistence tech_clear_persistence u002du002d>|facilite| action_remove_alerts
Flux d’attaque
Détections
AWS GuardDuty Detector supprimé ou mis à jour [AWS CloudTrail]
Vue
IOCs (DestinationIP) pour détecter : AWS : Règle de détection de menace – détecteur GuardDuty désactivé ou suspendu Hebdomadaire #11-2025
Vue
IOCs (SourceIP) pour détecter : AWS : Règle de détection de menace – détecteur GuardDuty désactivé ou suspendu Hebdomadaire #11-2025
Vue
Detecteur AWS GuardDuty supprimé ou mis à jour
Vue
Exécution de la simulation
Prérequis : Le Contrôle préliminaire de la Télémétrie et de la Ligne de Base doit avoir été validé.
-
Narratif d’Attaque & Commandes :
Un adversaire ayant obtenu des informations d’identification AWS privilégiées (par exemple,
AdministratorAccess) vise à dissimuler des activités malveillantes en supprimant la surveillance de GuardDuty. L’attaquant découvre d’abord l’ID du détecteur GuardDuty existant, puis le supprime directement ou le met à jour pour le désactiver. Les deux actions génèrent des événements CloudTrail correspondant à la règle sigma. -
Script de Test de Régression :
#!/usr/bin/env bash # ============================================================================= # Script de simulation – T1562.008 : Désactivation/Suppression du détecteur GuardDuty # Prérequis : # - AWS CLI v2 installé et configuré avec des informations d'identification disposant des droits d'administration GuardDuty # - jq installé pour le parsing JSON # ============================================================================= set -euo pipefail REGION="us-east-1" echo "[*] Découverte de l'ID du détecteur GuardDuty..." DETECTOR_ID=$(aws guardduty list-detectors --region "$REGION" --output json | jq -r '.DetectorIds[0]') if [[ -z "$DETECTOR_ID" || "$DETECTOR_ID" == "null" ]]; then echo "[!] Aucun détecteur GuardDuty trouvé dans la région $REGION. Sortie." exit 1 fi echo "[+] ID du détecteur : $DETECTOR_ID" # ------------------------------------------------------------------------- # Option 1 : Supprimer le détecteur (produit l'événement DeleteDetector) # ------------------------------------------------------------------------- echo "[*] Suppression du détecteur GuardDuty pour simuler T1562.008..." aws guardduty delete-detector --detector-id "$DETECTOR_ID" --region "$REGION" echo "[+] Appel DeleteDetector émis." # ------------------------------------------------------------------------- # Option 2 : Désactiver le détecteur (produit UpdateDetector avec enable=false) # ------------------------------------------------------------------------- # Décommenter le bloc ci-dessous pour tester le chemin UpdateDetector au lieu de Delete. #: <<'DISABLE_BLOCK' #echo "[*] Désactivation du détecteur GuardDuty (chemin alternatif)..." #aws guardduty update-detector # --detector-id "$DETECTOR_ID" # --region "$REGION" # --enable false #echo "[+] Appel UpdateDetector (enable=false) émis." #: DISABLE_BLOCK echo "[*] Simulation complète. Vérifiez les alertes SIEM pour les événements DeleteDetector ou UpdateDetector." -
Commandes de Nettoyage :
#!/usr/bin/env bash # Recréer un détecteur GuardDuty (s'il a été supprimé) ou le réactiver (s'il a été désactivé) REGION="us-east-1" # Vérifiez si des détecteurs existent EXISTING=$(aws guardduty list-detectors --region "$REGION" --output json | jq -r '.DetectorIds | length') if [[ "$EXISTING" -eq 0 ]]; then echo "[*] Aucun détecteur GuardDuty trouvé – création d'un nouveau..." aws guardduty create-detector --region "$REGION" --enable true echo "[+] Nouveau détecteur GuardDuty créé et activé." else DETECTOR_ID=$(aws guardduty list-detectors --region "$REGION" --output json | jq -r '.DetectorIds[0]') echo "[*] Réactivation du détecteur existant $DETECTOR_ID..." aws guardduty update-detector --detector-id "$DETECTOR_ID" --region "$REGION" --enable true echo "[+] Détecteur $DETECTOR_ID réactivé." fi