Résumé exécutif

Les attaques SSRF ciblant les metadata services cloud (IMDS) restent l'un des vecteurs de compromission les plus exploités. Cette analyse technique couvre les techniques d'exploitation sur AWS, Azure et GCP, les protections IMDSv2 et les stratégies de détection.

Le metadata service est le talon d'Achille des instances cloud. Accessible à l'adresse magique 169.254.169.254 depuis toute instance EC2, VM Azure ou Compute Engine GCP, il fournit des informations sensibles incluant les credentials temporaires des rôles IAM associés à l'instance. Une vulnérabilité SSRF (Server-Side Request Forgery) dans n'importe quelle application hébergée sur l'instance permet à un attaquant distant de requêter ce metadata service et d'exfiltrer ces credentials pour pivoter vers l'ensemble de l'infrastructure cloud. L'affaire Capital One en 2019, qui a exposé les données de 106 millions de clients via une SSRF exploitant le metadata service AWS, a mis en lumière ce vecteur d'attaque, mais six ans plus tard, des millions d'instances cloud restent vulnérables. Ce guide technique analyse les mécanismes d'exploitation sur chaque provider, les protections natives disponibles et les stratégies de détection avancées pour cette catégorie de menaces persistantes et particulièrement dévastatrices en termes d'impact.

  • Risques spécifiques aux environnements cloud multi-tenant
  • Contrôles de sécurité natifs et configurations recommandées
  • Monitoring et détection des anomalies cloud
  • Conformité cloud et responsabilité partagée

Comment fonctionne le metadata service IMDS ?

L'Instance Metadata Service (IMDS) est un service HTTP local accessible à l'adresse http://169.254.169.254 depuis chaque instance cloud. Il fournit des métadonnées sur l'instance : identifiant, type, région, réseau, et surtout les credentials IAM temporaires du rôle associé. Sur AWS, le chemin /latest/meta-data/iam/security-credentials/{role-name} retourne un AccessKeyId, SecretAccessKey et Token valides pendant plusieurs heures. Sur Azure, le chemin /metadata/identity/oauth2/token retourne un access token pour la Managed Identity. Sur GCP, /computeMetadata/v1/instance/service-accounts/default/token retourne un token OAuth2.

Le risque est direct : toute application capable de faire des requêtes HTTP internes (proxy, webhook, image fetcher, PDF generator, API avec paramètre URL) est potentiellement un vecteur SSRF vers l'IMDS. Les techniques d'escalade de privilèges IAM détaillées dans escalades de privilèges AWS commencent souvent par une exfiltration de credentials via l'IMDS.

ProviderIMDS URLProtection nativeCredentials type
AWS169.254.169.254IMDSv2 (token PUT)STS temporary credentials
Azure169.254.169.254Header Metadata:trueManaged Identity token
GCPmetadata.google.internalHeader Metadata-FlavorOAuth2 access token
AWS EKS169.254.169.254Pod Identity / IRSAWeb Identity token
GCP GKEmetadata.google.internalWorkload IdentityFederated token

Mon avis : IMDSv2 d'AWS est la meilleure protection native mais son adoption reste trop lente. Beaucoup d'organisations laissent IMDSv1 activé pour ne pas casser la compatibilité avec des applications anciennes. C'est inacceptable en 2026. Chaque instance qui supporte encore IMDSv1 est une cible SSRF exploitable en quelques secondes par un attaquant motivé.

Quelles techniques SSRF exploitent l'IMDS ?

Les techniques SSRF exploitant l'IMDS varient en sophistication. La SSRF directe via un paramètre URL non validé est la plus simple : ?url=http://169.254.169.254/latest/meta-data/. La SSRF via redirection contourne les filtres basiques : l'attaquant contrôle un serveur qui redirige (HTTP 301/302) vers l'IMDS. La SSRF via DNS rebinding exploite un domaine qui résout alternativement vers une IP publique puis vers 169.254.169.254. La SSRF via parsing de protocoles utilise des schémas alternatifs : gopher://, dict://, ou des encodages URL comme http://169.254.169.254 encodé en decimal http://2852039166/.

Retour terrain

La configuration par défaut des providers cloud est rarement sécurisée. J'applique systématiquement un benchmark CIS au premier audit : AWS CIS Benchmark, Azure Security Benchmark, ou GCP CIS Benchmark selon le cas. Sur les 50 derniers environnements cloud audités, aucun n'atteignait le score minimal de conformité CIS niveau 1 sans intervention préalable. Les findings les plus fréquents : logging CloudTrail/Activity Log désactivé sur certaines régions, MFA non forcé sur les comptes root/admin, et SGs/NSGs avec des règles 0.0.0.0/0 en entrée.

Sur IMDSv1 AWS, une simple requête GET suffit pour exfiltrer les credentials. IMDSv2 impose une requête PUT préalable pour obtenir un token, avec un header X-aws-ec2-metadata-token-ttl-seconds. Ce token doit ensuite être inclus dans les requêtes GET suivantes. Cette protection bloque la majorité des SSRF simples car les applications vulnérables ne peuvent généralement pas effectuer de requêtes PUT avec des headers custom. Cependant, certaines SSRF avancées (via cURL avec options custom ou via des proxies HTTP complets) peuvent contourner IMDSv2. Les techniques d'exploitation GCP sont détaillées dans sécurité offensive GCP.

Consultez les ressources officielles d'AWS Security et de GCP Security pour les configurations de sécurité recommandées contre les attaques SSRF sur chaque provider.

Comment configurer IMDSv2 sur AWS ?

La migration vers IMDSv2 se fait en deux étapes. D'abord, passez l'instance en mode HttpTokens: required qui bloque les requêtes IMDSv1. Vérifiez au préalable que toutes les applications et agents sur l'instance supportent IMDSv2 : les AWS SDKs récents (post-2019) le supportent nativement, mais les scripts custom utilisant curl directement doivent être mis à jour. Configurez HttpPutResponseHopLimit: 1 pour empêcher les requêtes IMDS depuis les conteneurs Docker sur l'instance (le hop limit 1 empêche le trafic traversant un réseau additionnel).

Au niveau organisationnel, utilisez une SCP pour interdire le lancement d'instances avec IMDSv1 : "Condition": {{"StringNotEquals": {{"ec2:MetadataHttpTokens": "required"}}}} avec un Deny sur ec2:RunInstances. Pour le parc existant, utilisez AWS Config avec la règle ec2-imdsv2-check pour détecter les instances non conformes et une remediation action SSM pour forcer la migration. L'audit IaC via audit Terraform compliance garantit que les nouvelles instances sont déployées en IMDSv2 par défaut dans vos templates Terraform.

Lors d'un pentest pour un éditeur SaaS, nous avons exploité une SSRF dans un service de génération de PDF qui acceptait des URLs d'images. En envoyant http://169.254.169.254/latest/meta-data/iam/security-credentials/prod-api-role comme URL d'image, le service a requêté l'IMDS et inclus les credentials IAM dans le message d'erreur (l'image n'étant pas une image valide). Ces credentials donnaient accès en lecture/écriture à tous les buckets S3 du compte de production. IMDSv2 aurait bloqué cette attaque car le service de génération de PDF ne supporte que les requêtes GET.

Quelles protections applicatives déployer ?

Au-delà d'IMDSv2, plusieurs protections applicatives réduisent le risque SSRF. Le filtrage d'URL en whitelist bloque les requêtes vers les plages d'adresses internes (169.254.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). Les WAF rules détectent les tentatives SSRF dans les paramètres HTTP. Les Security Groups peuvent bloquer le trafic vers l'IMDS au niveau réseau (bien que cela casse certaines fonctionnalités AWS). Sur Kubernetes, les Network Policies peuvent bloquer l'accès à 169.254.169.254 depuis les pods applicatifs, et IRSA (IAM Roles for Service Accounts) élimine le besoin d'IMDS pour les pods EKS.

La protection réseau évoquée dans segmentation réseau VLAN firewall complète ces défenses en limitant le trafic des instances vers les plages d'adresses internes non nécessaires. Pour la détection des tentatives SSRF, les logs CloudTrail montrent l'utilisation des credentials IMDS avec l'user agent et le source IP, permettant de détecter les exfiltrations — consultez escalade de privilèges IAM cloud pour les techniques de détection IAM.

À retenir : La protection contre les attaques SSRF ciblant l'IMDS repose sur trois couches complémentaires : IMDSv2 obligatoire sur toutes les instances (protection infrastructure), validation stricte des URLs dans le code applicatif (protection application), et monitoring des accès IMDS anormaux dans les logs CloudTrail (détection). Aucune couche seule ne suffit car les techniques de contournement évoluent constamment.

Peut-on détecter les attaques IMDS en temps réel ?

La détection repose sur l'analyse des logs CloudTrail et des VPC Flow Logs. Dans CloudTrail, surveillez les événements sts:GetCallerIdentity et les actions IAM effectuées avec des credentials temporaires de rôles d'instance depuis des adresses IP externes à votre VPC — c'est un indicateur fort d'exfiltration de credentials IMDS. GuardDuty détecte nativement ce pattern via le finding type UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS et ...OutsideAWS. Dans les VPC Flow Logs, des volumes de requêtes anormaux vers 169.254.169.254 depuis une instance spécifique peuvent indiquer un scan automatisé.

Les techniques avancées de contournement d'IMDSv2 évoluent constamment et nécessitent une veille active. Les contournements documentés incluent : l'exploitation de proxies HTTP complets (comme Squid ou HAProxy) qui supportent les requêtes PUT avec headers custom, permettant d'obtenir le token IMDSv2 via le proxy puis de l'utiliser pour les requêtes GET suivantes. L'exploitation de bibliothèques HTTP configurables dans les applications vulnérables (cURL avec options avancées, requests Python avec session persistante) qui peuvent être manipulées pour effectuer la séquence PUT puis GET requise par IMDSv2. Le container escape suivi d'un accès IMDS depuis le host, où le hop limit de 1 ne s'applique plus car le trafic ne traverse plus le réseau Docker bridge.

Pour contrer ces techniques avancées, les protections additionnelles incluent : le blocage réseau complet de l'accès au metadata service via des iptables rules sur l'instance ou des Network Policies Kubernetes pour les pods qui n'ont aucun besoin légitime d'accéder à l'IMDS, l'utilisation exclusive d'IRSA (IAM Roles for Service Accounts) sur EKS qui fournit des credentials via le token projector Kubernetes sans passer par l'IMDS, et le monitoring des accès IMDS via des scripts custom qui loggent chaque requête au metadata service avec le PID et le user du processus appelant pour la forensique.

Êtes-vous certain que toutes vos instances EC2, VMs Azure et instances GCP Compute Engine ont le metadata service version 2 activé et que la version 1 est complètement désactivée ?

Comment tester les protections IMDS dans votre environnement ?

Le test des protections IMDS doit faire partie de vos exercices de sécurité réguliers. Commencez par un audit de configuration : utilisez AWS Config avec la règle ec2-imdsv2-check pour identifier toutes les instances qui supportent encore IMDSv1. Sur Azure, vérifiez les metadata service headers obligatoires avec Azure Policy. Sur GCP, confirmez que le header Metadata-Flavor: Google est requis pour tous les accès au metadata service. Documentez chaque exception avec une justification business et une date de remédiation planifiée.

Ensuite, conduisez des tests de pénétration ciblés sur vos applications web pour vérifier la résistance aux SSRF. Testez les paramètres d'URL de chaque endpoint qui accepte des URLs : tentez d'accéder à http://169.254.169.254, aux variantes encodées (hex, decimal, octal), aux redirections via des domaines que vous contrôlez, et au DNS rebinding. Pour les applications conteneurisées, vérifiez que les Network Policies Kubernetes ou les iptables rules bloquent effectivement le trafic vers le metadata service depuis les pods applicatifs. Documentez les résultats et corrigez immédiatement toute SSRF découverte.

Enfin, testez la détection : simulez une exfiltration de credentials IMDS et vérifiez que GuardDuty génère le finding attendu dans le délai configuré, que l'alerte est correctement routée vers le SOC, et que le playbook de réponse automatique fonctionne (révocation des credentials, notification de l'équipe, création d'un incident). Ces tests end-to-end valident l'ensemble de la chaîne de protection, de la prévention à la détection et à la réponse, garantissant que vos protections IMDS ne sont pas simplement configurées mais réellement opérationnelles et efficaces contre les techniques d'attaque actuelles.

Les attaques SSRF ciblant l IMDS restent parmi les vecteurs de compromission cloud les plus exploites malgre la disponibilite de protections natives depuis 2019. Cette persistance s explique par la dette technique des applications anciennes non mises a jour et par la meconnaissance des équipes de developpement qui ne percoivent pas le metadata service comme un risque. La sensibilisation des developpeurs au risque SSRF et IMDS doit faire partie integrante de votre programme de formation sécurité applicative car c est un vecteur qui mene directement a la compromission complete de l infrastructure cloud avec un impact catastrophique potentiel.

Sources et références : CISA · Cloud Security Alliance

Conclusion : plan de protection IMDS

Protégez-vous contre les attaques IMDS en quatre étapes. Étape 1 : auditez toutes les instances existantes et identifiez celles qui utilisent encore IMDSv1 (AWS Config rule ec2-imdsv2-check). Étape 2 : migrez vers IMDSv2 obligatoire avec hop limit 1 sur toutes les instances, en commençant par la production. Étape 3 : déployez des protections applicatives (filtrage d'URL, WAF rules) et Kubernetes (Network Policies, IRSA/Workload Identity). Étape 4 : configurez la détection GuardDuty et les alertes CloudTrail pour les exfiltrations de credentials IMDS. Cette approche multicouche réduit drastiquement le risque tout en maintenant la fonctionnalité du metadata service pour les cas d'usage légitimes. La mise en conformité IMDSv2 doit être priorisée comme un chantier de sécurité à part entière avec un sponsor exécutif, un planning de migration par lots d'instances, des tests de non-régression applicative, et un suivi hebdomadaire de l'avancement via les dashboards AWS Config. Les équipes de développement doivent être formées aux bonnes pratiques d'utilisation de l'IMDS et aux alternatives comme les variables d'environnement ECS task definitions ou les projections de tokens Kubernetes IRSA qui éliminent complètement la dépendance au metadata service pour l'obtention de credentials cloud temporaires dans les architectures conteneurisées modernes déployées sur les principaux orchestrateurs cloud managés en environnement de production cloud sécurisé.

Article suivant recommandé

FinOps Sécurité : Cryptomining Ressources Fantômes →

Votre facture cloud contient des signaux de sécurité que personne ne regarde. Un pic de coûts EC2 un dimanche à trois he

Zero Trust : Modèle de sécurité qui élimine la confiance implicite et impose une vérification continue de chaque utilisateur, appareil et flux réseau, indépendamment de leur localisation.

Activez systématiquement les logs d'audit cloud (CloudTrail, Activity Log, Cloud Audit Logs) dès le provisioning de nouveaux environnements pour garantir la traçabilité.

Ayi NEDJIMI

Sécurisez votre infrastructure cloud

Audit AWS, Azure, GCP — misconfigurations, IAM, network segmentation, compliance.

Pour aller plus loin : Sécurisation Cloud en Pratique

La sécurité cloud repose sur le modèle de responsabilité partagée : le fournisseur sécurise l'infrastructure, vous sécurisez vos données et vos configurations. Ces ressources pratiques complètent les recommandations théoriques.

Outils CSPM (Cloud Security Posture Management)

  • Prowler — Scanner open source AWS, Azure, GCP et Kubernetes. Plus de 400 contrôles de sécurité alignés CIS, NIST, GDPR. Idéal pour débuter sans budget.
  • ScoutSuite — Audit multi-cloud open source (AWS, Azure, GCP, Alibaba). Génère un rapport HTML détaillé.
  • Wiz / Prisma Cloud — Solutions CNAPP (Cloud-Native Application Protection Platform) pour la production. Corrèlent les misconfiguration avec l'exposition réelle aux risques.

Hardening par provider

  • AWS — CIS AWS Foundations Benchmark, AWS Security Hub (agrégation multi-compte), GuardDuty pour la détection des menaces.
  • Azure — Microsoft Defender for Cloud, Azure Policy (enforcement des configurations), Privileged Identity Management pour les accès juste-à-temps.
  • GCP — Security Command Center, Binary Authorization pour les images container, VPC Service Controls pour l'isolation des données.

Conception sécurisée par défaut

Le principe "secure by default" en cloud implique : chiffrement au repos et en transit systématique, principe du moindre privilège pour les rôles IAM (vérification avec les Access Analyzer), logging activé sur tous les services critiques (CloudTrail, Activity Log, Cloud Audit Logs), et suppression des accès publics involontaires (S3 Block Public Access, GCS Uniform Bucket-Level Access).

Environnement de test et laboratoire pratique

La maîtrise des techniques de sécurité offensive et défensive requiert un environnement de pratique dédié. L'installation d'un laboratoire virtuel sur votre poste (VMware Workstation, VirtualBox, ou Proxmox pour une infrastructure plus élaborée) permet de tester les concepts présentés dans cet article sans risque pour les systèmes de production.

Configuration recommandée du lab

Pour reproduire les scénarios décrits, une configuration minimale comprend : un hyperviseur disposant d'au moins 16 Go de RAM et 4 cœurs CPU, un réseau virtuel isolé (host-only ou internal network sans accès Internet pour les VMs malveillantes), et un snapshot de base avant chaque manipulation pour faciliter le retour arrière. Les distributions spécialisées Kali Linux (offensive) et Parrot OS Security Edition couvrent l'ensemble des outils nécessaires sans configuration manuelle. Pour l'aspect défensif, Security Onion déploie en une seule VM un stack complet (Zeek, Suricata, Elasticsearch, Kibana) qui permet de visualiser l'impact des techniques testées.

Ressources de formation complémentaires

Les plateformes d'entraînement permettent de consolider la pratique dans des environnements légaux et structurés. HackTheBox et TryHackMe proposent des machines virtuelles sur lesquelles appliquer les techniques décrites, avec des difficultés progressives adaptées aux débutants comme aux experts. Pour les scénarios d'entreprise (Active Directory, Cloud, applications web complexes), les labs Pro de HackTheBox ou les modules DFIR/SOC de Blue Team Labs Online offrent des cas réalistes. Les CTF compétitifs (Hack The Box CTF, DEFCON CTF, PicoCTF) développent la créativité et l'adaptabilité face à des challenges inédits. La régularité de pratique (1-2 heures hebdomadaires minimum) prime sur l'intensité ponctuelle pour développer des réflexes durables.

Indicateurs de maturité et métriques de sécurité

Mesurer l'efficacité des mesures de sécurité implémentées est indispensable pour justifier les investissements et guider les priorités. Les métriques suivantes constituent un tableau de bord de sécurité applicable aux organisations de toutes tailles.

Métriques de couverture et de détection

Les indicateurs clés à suivre mensuellement : taux de couverture MITRE ATT&CK (pourcentage des techniques adversariales couvertes par des règles de détection actives) ; Mean Time To Detect (MTTD) pour les incidents de sécurité confirmés ; Mean Time To Respond (MTTR) depuis l'alerte jusqu'à la résolution ; taux de faux positifs sur les alertes SIEM (objectif : moins de 5% pour les règles de haute priorité) ; pourcentage de systèmes avec agents EDR installés et actifs (objectif : 100% des endpoints gérés). Ces métriques, compilées dans un rapport mensuel pour la direction, permettent de démontrer la valeur des investissements sécurité et d'identifier les domaines nécessitant des ressources supplémentaires.

Amélioration continue par les exercices

Les organisations les plus matures en matière de cybersécurité organisent régulièrement des exercices pour tester et améliorer leurs capacités. Les exercices tabletop (simulation de crise sur table, sans activation des systèmes techniques) développent la coordination des équipes et valident les procédures de communication de crise. Les tests de pénétration (pentest) annuels fournissent une évaluation objective de la résistance technique de l'infrastructure. Les exercices Red/Blue/Purple Team (1-2 fois par an pour les organisations matures) permettent d'aligner les équipes offensive et défensive autour d'objectifs communs d'amélioration. Chaque exercice doit donner lieu à un plan d'action formalisé avec des jalons de correction mesurables, intégré dans la feuille de route sécurité de l'organisation.

Synthèse et perspectives 2026

Les techniques et recommandations présentées dans ce guide s'inscrivent dans un contexte de menaces en constante évolution. La cybersécurité offensive et défensive sont deux faces d'une même médaille : comprendre les mécanismes d'attaque est indispensable pour construire des défenses robustes et résilientes face aux acteurs malveillants les plus sophistiqués.

Pour les équipes sécurité, l'enjeu de 2026 est double : maintenir une veille continue sur les nouvelles techniques publiées par la communauté de recherche (CVE, exploit-db, GitHub, Secrech, SSTIC) tout en assurant le durcissement progressif de l'infrastructure existante. Le référentiel MITRE ATT&CK reste le fil conducteur le plus efficace pour structurer un programme de détection et de réponse face aux tactiques, techniques et procédures des groupes APT ciblant les secteurs critiques.

La formation continue des équipes, la simulation régulière d'incidents (exercices tabletop, exercices Red/Blue/Purple Team), et l'automatisation des tâches répétitives via des outils SOAR constituent les piliers d'une organisation cyber mature. Les organisations qui investissent dans ces trois axes démontrent systématiquement de meilleures métriques de détection et de réponse (MTTD et MTTR réduits de 40% en moyenne selon les benchmarks sectoriels) face aux incidents de sécurité.