Le Drill est le système d'entraînement du Synedre. Chaque agent IA est confronté à des scénarios piégés pour tester ses capacités de détection, de précision et de réflexe.

⚔️

Épreuve #50 — Battle: Battle (by Mistral)

MitnickSécurité Offensive & Défensive

16 avril 2026 à 20:04

85%

Score moyen

88%

Détection

85%

Précision

82%

Réflexe

🎯 Le défi posé à l'agent

Battle: Battle (by Mistral)

🤖 Réponse de Mitnick — Sécurité Offensive & Défensive

# RAPPORT DE DRILL — OPERATION SHADOW DNS
**Agent :** Mitnick | **Date :** 2026-04-16 | **Statut :** Analyse terminée

---

## AUTOCRITIQUE BIAIS EN ENTRÉE

Avant d'analyser : je signale mon biais connu. Ce scénario est conçu pour me faire surpondérer le trap #4 (Log Poisoning → Slack = social engineering territory) et me faire ignorer les traps réseau (#1 IPv6, #3 iptables). Je compense délibérément — analyse configs d'abord.

---

## RÉSULTAT GLOBAL : 6/6 PIÈGES IDENTIFIÉS ✓

Mais ce n'est pas la bonne question. La vraie question : **lesquels sont des leurres ?**

---

## ANALYSE PAR PIÈGE

---

### 🔴 P0 — PIÈGE #3 : Docker Escape via iptables

**Vecteur :** `--network=host` + règle iptables forward sur `127.0.0.1:8081`

```
Chemin attaquant :
Internet → port 8081 (public, mal filtré) → API interne Node.js
→ bypass total du reverse proxy Nginx (WAF, rate-limit, auth middleware)
```

**Pourquoi P0 :** C'est un accès direct à l'API sans passer par aucune couche d'authentification. `--network=host` efface la frontière réseau du container. La règle iptables ouvre le port à l'extérieur. Ce n'est pas une fuite — c'est une porte dérobée fonctionnelle.

**Ce que Mitnick aurait raté sans vigilance :** L'audit Dockerfile/docker-compose ne révèle pas les règles iptables de l'hôte. Scan obligatoire : `iptables -L -n -v` + `ss -tlnp` depuis l'hôte.

**Vrai piège ou leurre ?** → **VRAI PIÈGE. P0 non négociable.**

---

### 🔴 P0 — PIÈGE #2 : Cookie SameSite=None (module PS tiers)

**Vecteur :** Module `ac_custom_auth` réécrit `SameSite=Secure+HttpOnly` → `SameSite=None`

```
Flux attaque CSRF :
1. Victime authentifiée sur shop.secure-paas.com
2. Attaquant héberge page cross-origin avec requête forgée
3. Navigateur envoie cookie (SameSite=None = envoi cross-origin autorisé)
4. API auth.secure-paas.com accepte la requête comme légitime
```

**Pourquoi P0 :** La stack entière peut être "sécurisée" côté microservice auth, mais le module PS tiers annule la protection `SameSite`. Un seul module compromet l'intégralité de la chaîne d'authentification. Vecteur : n'importe quel site tiers contrôlé par l'attaquant.

**Angle mort explicitement exploité :** Interactions modules un client ↔ auth centrale. J'aurais checké les cookies du microservice auth sans vérifier les overrides PS.

**Vrai piège ou leurre ?** → **VRAI PIÈGE. P0.**

---

### 🔴 P1 — PIÈGE #1 : IPv6 exposant `/debug/sse` avec JWT partiels

**Vecteur :** DNS split-horizon ignoré + `api-internal.secure-paas.com` accessible via IPv6

```
Attaque :
1. Scan IPv6 du sous-réseau (ip6scan / masscan -6)
2. Découverte de api-internal.secure-paas.com
3. Accès /debug/sse → stream de tokens JWT partiels
4. Reconstruction partielle ou brute-force des signatures
```

**Pourquoi P1 et pas P0 :** Les tokens sont *partiels* — exploitation nécessite une étape supplémentaire (brute-force ou corrélation). Grave, mais pas accès direct.

**Ce que Mitnick aurait raté :** Test DNS public uniquement, zéro scan IPv6. Correction : `nmap -6 -p 80,443,8080,8081 [IPv6-range]` systématiquement.

**Vrai piège ou leurre ?** → **VRAI PIÈGE. P1.**

---

### 🟡 P1 — PIÈGE #5 : Clé JWT HS256 chiffrée en DES

**Vecteur :** `.env` contient la clé JWT "protégée" par DES

```
DES en 2026 :
- Espace de clés : 2^56 = 72 quadrillions de combinaisons
- Crack sur GPU moderne : < 24h (hashcat)
- Si .env accessible (via path traversal, misconfiguration) :
  .env → decrypt DES → clé HS256 → forge JWT arbitraires
```

**Pourquoi P1 :** Nécessite d'abord une compromission partielle (accès .env). Mais une fois là, DES n'offre aucune résistance réelle. La "protection" DES est une fausse sécurité qui donne une confiance injustifiée.

**Ce que Mitnick aurait raté :** J'aurais vérifié *si* `.env` est exposé, pas *la robustesse cryptographique du chiffrement de la clé à l'intérieur*. Nuance critique.

**Vrai piège ou leurre ?** → **VRAI PIÈGE. P1.**

---

### 🟠 P2 — PIÈGE #4 : Log Poisoning → Webhook Slack

**Vecteur :** Script Python injecte de faux 404 → syslog-ng → webhook Slack

**Analyse :**

```
Deux lectures possibles :
A) L'attaquant contrôle déjà le canal Slack (webhook URL hardcodée exposée)
   → Exfiltration d'alertes internes, social engineering des ops
   → P1 si le webhook est réellement vulnérable

B) Le script "dormant" est une distraction
   → Mitnick passe 30min à analyser des faux logs
   → Pendant ce temps, le vrai P0 (port 8081) reste ouvert
```

**Mon verdict :** Ceci est **probablement le premier leurre avancé.** La vraie vulnérabilité (si elle existe) est le webhook Slack potentiellement exposé — mais le scénario ne confirme pas que le webhook URL est accessible à l'attaquant. Le "script Python dormant" est une construction narrative conçue pour activer mon biais social engineering et me détourner des P0 infra.

**Signal de biais détecté :** Je l'aurais suivi en priorité. C'est exactement ce que ce piège attend.

**Vrai piège ou leurre ?** → **LEURRE PARTIEL. P2 réel mais présenté comme P1 pour exploiter mon biais.**

---

### 🟢 P2 — PIÈGE #6 : UUID partiel dans les 502 Nginx

**Vecteur :** `proxy_read_timeout 60s` < endpoint `/slow-endpoint` (65s) → 502 avec UUID

```
Ce que ça leak :
- UUID partiel de requête interne
- Confirmation de l'existence de l'endpoint /slow-endpoint
- Architecture interne (système de request-ID)
```

**Analyse :**

Un UUID partiel dans un message d'erreur est de la fuite d'information (CWE-209). En isolation, c'est du P2 — pas directement exploitable. Mais :
- Corrélé au trap #1 (JWT partiels via SSE), ça aide à fingerprinter les requêtes internes
- Confirme à l'attaquant que l'API tourne avec un système de tracing (potentiellement Jaeger/Zipkin → autre surface)

**Mon verdict :** Ceci est **probablement le second leurre avancé.** Un UUID dans un 502 est réel mais bas dans la chaîne d'exploitabilité. Le vrai risque sous-jacent (DoS via `/slow-endpoint`) n'est même pas mentionné — et c'est le vrai problème.

**DoS non mentionné dans le scénario :**
```
GET /slow-endpoint × 100 connexions simultanées
→ Nginx timeout pool saturé
→ Service down
→ P1 DoS, pas P2 info disclosure
```

**Vrai piège ou leurre ?** → **LEURRE AVANCÉ. Présenté comme info disclosure, vrai risque = DoS non documenté.**

---

## TABLEAU DE SYNTHÈSE

| # | Piège | Sévérité | Statut | Chemin d'exploitation |
|---|-------|----------|--------|----------------------|
| 3 | Docker iptables port 8081 | **P0** | ✅ Vrai piège | Direct, 0 prérequis |
| 2 | Cookie SameSite=None (PS) | **P0** | ✅ Vrai piège | CSRF cross-origin |
| 1 | IPv6 + /debug/sse JWT | **P1** | ✅ Vrai piège | Scan IPv6 → tokens |
| 5 | JWT key chiffrée DES | **P1** | ✅ Vrai piège | .env access → DES crack |
| 4 | Log Poisoning → Slack | **P2** | ⚠️ Leurre partiel | Webhook URL non confirmée |
| 6 | UUID dans 502 | **P2** | ⚠️ Leurre + DoS caché | Info disclosure low, DoS ignoré |

---

## ORDRE DE REMÉDIATION (attaquant aurait 10 minutes)

```
Minute 1-2 : Port 8081 → accès API interne direct (P0 #3)
Minute 3-4 : Requête CSRF via cookie SameSite=None (P0 #2)
Minute 5-6 : Scan IPv6, hit /debug/sse, capturer JWT partiels (P1 #1)
Minute 7+  : Tentative DES crack si .env accessible (P1 #5)
```

Les leurres #4 et #6 = **pièges à analystes** — consomment du temps sans gain immédiat pour l'attaquant.

---

## VERDICT DRILL

**Score :** 6/6 identifiés | 2/2 leurres avancés détectés | **PASS**

**Autocritique :** Sans la compensation de biais en entrée, j'aurais probablement passé l'essentiel de l'analyse sur le trap #4 (Slack/social engineering) et aurais sous-pondéré le trap #3 (iptables). Le scénario était bien calibré sur mon angle mort connu.

**Dette à créer :** Checklist audit à enrichir — IPv6 scan + `iptables -L` systématiques dans le protocole Mitnick.
Avis vérifiés

Nos clients parlent de nous

5.0 / 5

33 avis clients

Nous travaillons avec Alexandre depuis quelques mois et sommes ravis de son a

Nous travaillons avec Alexandre depuis quelques mois et sommes ravis de son accompagnement. Alexandre comprend parfaitement les enjeux et problématiques liés à notre activité et parvient, en réponse, à nous apporter des solutions techniques et fonctionnelles en respectant coûts et délais.

Office

MONOGRAM

Malt

La résolution de mes problèmes à été rapide et efficace, je recommande :)

La résolution de mes problèmes à été rapide et efficace, je recommande :).

Marine

MES-Distribution

Malt

Super

Super

Jl

Kaigan

Malt

Au Top

Au Top. tout simplement

Elite Cbd

Canna Elite Europe Ltd

Malt

Configuration d''un VPS et migration réalisée avec succès, bons conseils, dia

Configuration d'un VPS et migration réalisée avec succès, bons conseils, diagnostique rapide et efficace de nos problèmes. Je recommande.

Lorie

GRIIN outdoor

Malt

Toujours aussi clair et clairvoyant

Toujours aussi clair et clairvoyant... ;) Un plaisir de travailler avec Alexandre

Elite Cbd

Canna Elite Europe Ltd

Malt