1️⃣ Introduction : Pourquoi la Sécurité du Cloud est un Enjeu ?
Le Cloud est devenu un élément clé des infrastructures modernes, mais il représente aussi un **terrain de jeu idéal pour les attaquants**.
Les fournisseurs Cloud sont doublement vulnérables :
- 🎯 **Cibles à haute valeur** → Ils stockent des **millions de données** d’entreprises.
- 🔓 **Accès indirect aux clients** → Un Cloud compromis = accès aux données de plusieurs sociétés.
🔥 **Objectif de ce tuto :** Comprendre comment attaquer le Cloud et comment mieux se défendre, avec une approche **offensive et défensive**.
2️⃣ Reconnaissance & Cartographie des Surfaces d'Attaque
📡 2.1. Scans & OSINT sur le Cloud
**Avant d’exploiter, il faut trouver ce qui est exposé.** Un mauvais paramétrage, un stockage public, une API non protégée… autant de portes d’entrée !
🔎 Recherche des infrastructures Cloud exposées :
amass enum -d cible.com
subfinder -d cible.com -silent
📂 Scan des stockages ouverts (AWS, Azure, GCP) :
aws s3 ls s3://nom-du-bucket --no-sign-request
gcloud storage buckets list --project cible
🔍 Scan des API mal protégées :
ffuf -u https://api.cible.com/FUZZ -w wordlist.txt
3️⃣ Exploitation des Failles Cloud : Persistence & Pivoting
💀 3.1. Prise de Contrôle via IAM & API
Une des attaques Cloud les plus courantes est **l’exploitation des mauvaises configurations IAM (gestion des accès).**
**🔹 Vérification des rôles accessibles :**
aws iam list-roles
**🔹 Dump des credentials des rôles compromis :**
aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/VulnerableRole" --role-session-name attack
🔥 3.2. Exploitation d’un Bucket S3 mal configuré
Les buckets mal configurés permettent souvent d’accéder à des données sensibles :
**📂 Recherche d’objets lisibles :**
aws s3api list-objects --bucket bucket-expose --no-sign-request
**📥 Exfiltration des fichiers sensibles :**
aws s3 cp s3://bucket-expose/fichier.txt . --no-sign-request
4️⃣ Sécurisation & Application des Recommandations ANSSI
🔒 4.1. Cloisonnement et Zero Trust
L’ANSSI recommande un modèle **Zero Trust** pour le Cloud :
- 🚧 Séparation stricte des **réseaux Cloud/public/internet**.
- 🛡️ **Passerelles d’interconnexion sécurisées**.
- 🔑 Authentification forte et gestion des accès minimisés.
Implémentation d’une authentification renforcée :
aws configure set default.sso_start_url https://sso.aws.amazon.com/start
gcloud auth login --update-adc
🛠 4.2. Détection & Journalisation des Activités Suspectes
Tout bon défenseur doit **anticiper les attaques en détectant les anomalies.**
**🔍 Activation de la journalisation complète :**
aws cloudtrail create-trail --name SecureTrail --s3-bucket-name logs-bucket
**📊 Analyse des logs avec SIEM :**
grep "UnauthorizedAccess" cloudtrail-logs.json
5️⃣ Automatisation : Scripts Python pour Sécuriser & Tester un Cloud
💻 Script de Scan IAM
Ce script liste les permissions dangereuses accordées à des rôles non sécurisés.
import boto3
client = boto3.client('iam')
roles = client.list_roles()
for role in roles['Roles']:
policies = client.list_attached_role_policies(RoleName=role['RoleName'])
for policy in policies['AttachedPolicies']:
print(f"🔴 {role['RoleName']} → {policy['PolicyName']} (POTENTIELLEMENT DANGEREUX)")
💀 Script de Vérification de Buckets Exposés
Liste et vérifie si des buckets S3 sont accessibles publiquement.
import boto3
s3 = boto3.client('s3')
buckets = s3.list_buckets()
for bucket in buckets['Buckets']:
acl = s3.get_bucket_acl(Bucket=bucket['Name'])
for grant in acl['Grants']:
if 'AllUsers' in str(grant):
print(f"⚠️ Bucket exposé : {bucket['Name']}")
6️⃣ Conclusion & Recommandations Finales
Le Cloud est un **terrain de jeu vulnérable** si mal configuré.
Pour une **sécurité optimale**, applique ces mesures :
- 🔒 **Utiliser Zero Trust & cloisonnement réseau.**
- 🚀 **Monitorer en temps réel avec des logs CloudTrail/Azure Monitor.**
- 🛡️ **Automatiser la détection avec des outils et scripts Python.**
🛠 **Ne jamais sous-estimer l’attaquant. Le meilleur défenseur est celui qui comprend l’attaque.**