Présentation
AWSHound, développé par SpecterOps, est un collecteur auto‑hébergé qui transforme les environnements AWS en jeux de données compatibles BloodHound OpenGraph. Contrairement aux outils existants, il réalise des évaluations IAM strictement hors ligne : les politiques d’identité sont croisées avec les limites de permissions (permissions boundaries) et les SCP (Service Control Policies) afin de ne tracer que les relations où l’autorisation effective résulte d’un allow explicite.
Architecture et fonctionnement
Le collecteur s’appuie sur les chaînes d’identification standard du SDK AWS (variables d’environnement, profils, rôles assumés). Après authentification, il interroge les API ListRoles, ListPolicies, GetPolicy et SimulatePrincipalPolicy pour chaque entité. Les réponses sont stockées localement, puis un moteur d’intersection calcule les permissions effectives en appliquant les règles de priorité IAM. Le résultat est exporté sous forme de graphe JSON, directement ingestible par BloodHound pour la visualisation des chemins d’attaque.
Évaluation de performance et limites
Lors d’un test interne, AWSHound a cartographié une organisation de 500 comptes AWS, générant 10,5 millions d’arêtes en approximativement 15 minutes. Ce chiffre illustre la capacité du pipeline à gérer des environnements massifs sans surcharge réseau, grâce à la mise en cache locale des politiques et à la parallélisation des appels SimulatePrincipalPolicy. Cependant, la précision dépend de la complétude des politiques récupérées ; les permissions octroyées via des conditions dynamiques (ex. aws:SourceIp) peuvent être sous‑évaluées si les variables de contexte ne sont pas reproduites. De plus, le modèle hors ligne ne détecte pas les permissions accordées par des services tiers (ex. AWS Marketplace) qui ne sont pas exposés via les API IAM classiques.
Implications pour la défense
En ne visualisant que les autorisations réellement effectives, AWSHound réduit le bruit habituel des cartes IAM qui incluent des chemins théoriques non exploitables. Les équipes de réponse aux incidents peuvent ainsi prioriser les chemins où un compte compromis possède un allow explicite, limitant les faux positifs lors de la chasse aux menaces. Le fait que l’outil fonctionne sans connexion externe minimise le risque d’exfiltration de métadonnées pendant la collecte. Néanmoins, les organisations doivent intégrer le processus de mise à jour du graphe dans leurs cycles CI/CD, car les changements de politiques peuvent rapidement rendre le modèle obsolète. Une pratique recommandée consiste à exécuter AWSHound quotidiennement et à comparer les diff de graphe pour détecter les élargissements de surface d’attaque.