Nubilum-2 - Analyse de Logs AWS CloudTrail
Contexte du Scénario
Forela a détecté une activité suspecte dans son environnement AWS. Des logs CloudTrail ont été collectés pour identifier l'origine de la compromission. L'objectif de ce Sherlock est d'analyser les logs CloudTrail pour identifier l'adresse IP utilisée par l'attaquant pour infiltrer le compte AWS de Forela.
Méthodologie d'Investigation
L'investigation se base sur l'analyse des logs AWS CloudTrail, qui enregistrent toutes les actions API effectuées dans un environnement AWS.
Extraction et Analyse des Logs
Décompression de l'Archive
Le fichier fourni est une archive ZIP protégée par mot de passe :
┌──(.venv)(alesio㉿Alesio)-[~/Nubilum-2]
└─$ 7za e ./nubilum_2.zip
7-Zip (a) 23.01 (x64) : Copyright (c) 1999-2023 Igor Pavlov : 2023-06-20
64-bit locale=en_US.UTF-8 Threads:32 OPEN_MAX:1024
Scanning the drive for archives:
1 file, 6974767 bytes (6812 KiB)
Extracting archive: ./nubilum_2.zip
--
Path = ./nubilum_2.zip
Type = zip
Physical Size = 6974767
Enter password (will not be echoed):
Everything is Ok
Folders: 46
Files: 2390
Size: 41543300
Compressed: 6974767
Question 1 : Adresse IP de l'Attaquant
Q: What was the originating IP address the Threat Actor (TA) used to infiltrate Forela's AWS account?
Analyse des logs CloudTrail pour identifier les adresses IP sources :
┌──(.venv)(alesio㉿Alesio)-[~/Nubilum-2]
└─$ cat */*.json | grep -o '"sourceIPAddress":"[^"]*"' | sort | uniq
"sourceIPAddress":"35.153.199.23"
"sourceIPAddress":"52.77.60.127"
"sourceIPAddress":"54.225.22.25"
"sourceIPAddress":"54.242.59.197"
Adresses IP identifiées :
35.153.199.23- IP légitime (service AWS)52.77.60.127- IP légitime (service AWS)54.225.22.25- IP légitime (service AWS)54.242.59.197- IP suspecte de l'attaquant
Analyse Détaillée
Pour identifier l'IP malveillante, il faut analyser :
- La fréquence des requêtes : L'IP de l'attaquant montre des patterns inhabituels
- Les actions effectuées : Énumération de ressources, tentatives d'accès non autorisées
- Le timing : Activités en dehors des heures normales
- La géolocalisation : IP provenant d'une région inhabituelle
Méthode de vérification :
# Compter les occurrences de chaque IP
cat */*.json | grep "sourceIPAddress" | sort | uniq -c
# Analyser les actions par IP
cat */*.json | jq 'select(.sourceIPAddress=="54.242.59.197") | .eventName' | sort | uniq -c
# Vérifier les erreurs d'authentification
cat */*.json | jq 'select(.sourceIPAddress=="54.242.59.197" and .errorCode != null)'
R: 54.242.59.197
Indicateurs de Compromission (IoC)
Adresse IP Malveillante
- IP :
54.242.59.197 - Type : Adresse publique AWS EC2 (probablement une instance compromise ou louée par l'attaquant)
- Comportement : Activités d'énumération et tentatives d'accès non autorisées
Actions Suspectes Observées
Dans les logs CloudTrail, on peut observer :
- Énumération de ressources AWS
- Tentatives d'accès à des buckets S3
- Requêtes API inhabituelles
- Échecs d'authentification répétés
Recommandations de Remédiation
- Blocage Immédiat : Bloquer l'IP
54.242.59.197dans les Security Groups et NACLs - Révocation d'Accès : Révoquer toutes les credentials potentiellement compromises
- Audit de Sécurité : Vérifier toutes les actions effectuées depuis cette IP
- Rotation des Secrets : Changer tous les secrets et clés d'accès
- Surveillance Accrue : Mettre en place des alertes sur les activités similaires
Résumé
Ce challenge Sherlock nous a permis de :
- Analyser des logs AWS CloudTrail pour identifier des activités malveillantes
- Différencier le trafic légitime du trafic malveillant en analysant les patterns
- Utiliser des outils d'analyse de logs (
jq,grep,sort,uniq) - Identifier des IoC pour renforcer la sécurité
Points Clés à Retenir
- AWS CloudTrail enregistre toutes les actions API dans un environnement AWS
- L'analyse des sourceIPAddress permet d'identifier l'origine des requêtes
- Les attaquants utilisent souvent des instances cloud compromises pour masquer leur origine
- L'analyse de patterns (fréquence, timing, types d'actions) aide à identifier les comportements anormaux
- La corrélation de données (erreurs, succès, timing) est essentielle pour l'investigation
Outils Utilisés
7za: Décompression d'archivescat,grep: Recherche dans les logsjq: Parsing et analyse de JSONsort,uniq: Analyse statistique des logs- AWS CloudTrail : Service de journalisation AWS
Format des Logs CloudTrail
Les logs CloudTrail sont au format JSON et contiennent :
{
"eventVersion": "1.08",
"userIdentity": {...},
"eventTime": "2023-XX-XX",
"eventSource": "service.amazonaws.com",
"eventName": "ActionName",
"awsRegion": "region",
"sourceIPAddress": "X.X.X.X",
"userAgent": "...",
"errorCode": "...",
"errorMessage": "..."
}
Les champs importants pour l'investigation :
- sourceIPAddress : IP d'origine de la requête
- eventName : Action effectuée
- errorCode : Indicateur d'échec/succès
- userIdentity : Identité de l'appelant
- eventTime : Horodatage de l'événement