Cherry-picked from parallel branch: - OPAD.md: Core doctrine (671 lines) - CSPN.matrix.md: Threat × capability matrix (569 lines) - OPAD-OPERATIONS.md: Operational guide (948 lines) Refs: CM-WALL-OPAD-2026-05 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
28 KiB
Matrice CSPN — OPAD SecuBox v2.4.0
Analyse menace × capacité pour certification ANSSI
Métadonnées
| Champ | Valeur |
|---|---|
| Référence | CM-CSPN-OPAD-MATRIX-2026-05 |
| Version | 2.4.0 |
| Status | Canonique |
| Date | 2026-05-12 |
| Auteur | Gérald Kerma (CyberMind) |
| Cible | SecuBox-Deb v2.4.0 — Module WALL (OPAD) |
| Niveau | CSPN (Certification de Sécurité de Premier Niveau — ANSSI) |
| Portée | Analyse de couverture des menaces par les capacités OPAD |
| Document parent | CM-WALL-OPAD-2026-05 (OPAD.md) |
Table des matières
- Périmètre d'évaluation
- Capacités OPAD
- Catalogue des menaces
- Matrice menace × capacité
- Résumé de couverture
- Périmètre explicitement exclu
- Traçabilité vers invariants
- Références
1. Périmètre d'évaluation
1.1 Composants inclus
Cette matrice évalue les capacités de protection active du module WALL en mode OPAD (Off-Path Active Defense). Les composants suivants sont dans le périmètre CSPN :
| Composant | Rôle | Module SecuBox | Version |
|---|---|---|---|
| WALL/Observer | Observation passive trafic (SPAN/TAP) | secubox-wall |
2.4.0+ |
| WALL/Injector | Injection active (DNS-R, DHCP-R, RST-I, ARP-R) | secubox-wall |
2.4.0+ |
| WALL/Policy | Moteur de décision (règles, seuils) | secubox-wall |
2.4.0+ |
| ROOT/Logger | Journalisation audit (ALERTE·DÉPÔT) | secubox-root |
2.4.0+ |
| AUTH/Registry | Registre de décisions (ban/unban) | secubox-auth |
2.4.0+ |
| MIND/Scoring | Détection anomalies comportementales | secubox-mind |
2.4.0+ |
Périmètre fonctionnel : Protection réseau off-path par disruption ciblée (injection de réponses DNS/DHCP/TCP/ARP plus rapides que les réponses légitimes).
1.2 Composants exclus
Les composants suivants sont hors périmètre CSPN (fournis par des tiers ou non modifiés par SecuBox) :
| Composant | Raison d'exclusion | Responsable |
|---|---|---|
| Stack réseau Debian | Fourni par Debian bookworm (non modifié) | Debian Project |
| Kernel Linux | Mainline 6.6 LTS (non patché) | kernel.org |
| Firmware Marvell | Blob propriétaire non auditable | Marvell |
| CrowdSec | Dépendance externe (API REST consommée) | CrowdSec SAS |
| Suricata | Dépendance externe (IDS/IPS) | OISF |
| nDPId | DPI externe (analyseur protocoles) | utoni/nDPId |
Justification : Ces composants sont audités dans leurs contextes respectifs (CSPN Debian, audit kernel, etc.). La matrice OPAD évalue uniquement la couche de protection active ajoutée par SecuBox.
2. Capacités OPAD
2.1 Primitifs d'injection (Capacités primaires)
| ID | Capacité | Description | Taux de succès cible | Status |
|---|---|---|---|---|
| CAP-01 | DNS-R | Injection de réponses DNS falsifiées (NXDOMAIN, sinkhole) avant le resolver légitime | 99% | ✅ Production |
| CAP-02 | DHCP-R | Injection d'offres DHCP falsifiées (quarantaine, redirect gateway) avant le serveur DHCP légitime | 95% | ✅ Production |
| CAP-03 | RST-I | Injection de segments TCP RST pour terminer connexions malveillantes | 90% | ✅ Production |
| CAP-04 | ARP-R | Injection de réponses ARP falsifiées (redirect vers captive portal) | 98% | ⚠️ Production (désactivé par défaut) |
Notes :
- CAP-01 (DNS-R) : Efficace contre C2 DNS, phishing, malware callbacks, tunneling DNS. Taux de succès 99% validé par tests scapy + pytest.
- CAP-02 (DHCP-R) : Efficace contre devices non autorisés, quarantaine soft. Taux de succès 95% (race DHCP plus lente que DNS).
- CAP-03 (RST-I) : Efficace contre C2 TCP/HTTPS, exfiltration TCP, lateral movement. Taux 90% (fenêtre d'injection étroite).
- CAP-04 (ARP-R) : Efficace pour redirection vers captive portal. Désactivé par défaut (invasif).
2.2 Capacités d'observation (Capacités secondaires)
| ID | Capacité | Description | Source | Status |
|---|---|---|---|---|
| CAP-10 | Observation DNS | Capture de toutes les requêtes DNS (port 53 UDP/TCP) | pcap/BPF | ✅ |
| CAP-11 | Observation DHCP | Capture des DHCPDISCOVER/OFFER/REQUEST/ACK | pcap/BPF | ✅ |
| CAP-12 | Observation TCP | Reconstruction de flux TCP (SYN tracking, SEQ/ACK) | pcap/BPF | ✅ |
| CAP-13 | Observation ARP | Capture de toutes les requêtes/réponses ARP | pcap/BPF | ✅ |
| CAP-14 | DPI passif | Détection de protocoles (via nDPId) | netifyd | ✅ |
| CAP-15 | Détection CrowdSec | Intégration des décisions CrowdSec (IP ban, CTI) | CrowdSec API | ✅ |
| CAP-16 | Détection Suricata | Intégration des alertes Suricata (signatures) | Suricata EVE | ✅ |
Note : Les capacités d'observation ne sont pas directement des capacités de mitigation, mais elles alimentent les moteurs de décision (WALL/Policy, MIND/Scoring) qui déclenchent les injections.
2.3 Capacités de politique (Capacités tertiaires)
| ID | Capacité | Description | Module | Status |
|---|---|---|---|---|
| CAP-20 | Blocklists DNS | Blocage par domaine (CrowdSec, abuse.ch, custom) | WALL/Policy | ✅ |
| CAP-21 | Blocklists IP | Blocage par IP (CrowdSec CTI) | WALL/Policy | ✅ |
| CAP-22 | Scoring comportemental | Détection d'anomalies (volume, patterns) | MIND/Scoring | ✅ |
| CAP-23 | Quarantaine NAC | Isolation de devices non conformes | AUTH/Registry | ✅ |
| CAP-24 | Seuils configurables | Ajustement dynamique des seuils de déclenchement | WALL/Policy | ✅ |
| CAP-25 | Mode dry-run | Logging sans injection (audit/test) | WALL/Injector | ✅ |
3. Catalogue des menaces
3.1 Catégorie : DNS (M01-M05)
| ID | Menace | Description | Vecteur | Criticité |
|---|---|---|---|---|
| M01 | Résolution DNS malveillante | Client résout un domaine de C2, phishing, malware | DNS query → IP malveillante | 🔴 Critique |
| M02 | Tunneling DNS | Exfiltration de données via requêtes DNS (TXT, NULL) | DNS query → exfiltration | 🟠 Élevée |
| M03 | DNS rebinding | Attaque cross-domain via rebinding de résolution DNS | DNS TTL court + rebind | 🟠 Élevée |
| M04 | DNS cache poisoning | Empoisonnement du cache DNS (attaque MITM upstream) | DNS response spoofing | 🟠 Élevée |
| M05 | DNS amplification | Attaque DDoS par amplification DNS | DNS ANY query + spoofing | 🟡 Moyenne |
3.2 Catégorie : Réseau (M06-M12)
| ID | Menace | Description | Vecteur | Criticité |
|---|---|---|---|---|
| M06 | DHCP rogue server | Serveur DHCP malveillant (force gateway, DNS malveillant) | DHCPOFFER falsifié | 🔴 Critique |
| M07 | DHCP starvation | Épuisement du pool DHCP (DoS) | DHCPREQUEST flood | 🟠 Élevée |
| M08 | IP spoofing | Usurpation d'IP source (attaque MITM, DoS) | IP src falsifiée | 🟠 Élevée |
| M09 | ARP spoofing | Empoisonnement de table ARP (MITM) | ARP response falsifiée | 🔴 Critique |
| M10 | MAC flooding | Saturation de table CAM switch (passage en hub mode) | MAC src aléatoires | 🟡 Moyenne |
| M11 | VLAN hopping | Accès non autorisé à VLAN isolé (802.1Q double-tagging) | 802.1Q exploit | 🟠 Élevée |
| M12 | Rogue gateway | Gateway malveillante (force route via attaquant) | ICMP redirect + ARP | 🔴 Critique |
3.3 Catégorie : Malware (M13-M20)
| ID | Menace | Description | Vecteur | Criticité |
|---|---|---|---|---|
| M13 | C2 callback TCP | Malware contacte son C2 via TCP (port 80/443/8080) | TCP SYN → IP C2 | 🔴 Critique |
| M14 | C2 callback HTTPS | Malware contacte son C2 via HTTPS (TLS) | TLS handshake → IP C2 | 🔴 Critique |
| M15 | Lateral movement TCP | Propagation latérale via SMB, RDP, SSH | TCP port 445/3389/22 | 🔴 Critique |
| M16 | Lateral movement SMB | Exploitation de vulnérabilités SMB (EternalBlue, etc.) | SMB exploit packets | 🔴 Critique |
| M17 | Ransomware encryption | Chiffrement de fichiers réseau (SMB shares) | SMB writes massifs | 🔴 Critique |
| M18 | Cryptominer | Minage crypto (CPU/GPU exhaustion) | TCP → pool de minage | 🟠 Élevée |
| M19 | Botnet recruitment | Recrutement dans un botnet (Mirai, etc.) | Scan TCP ports | 🟠 Élevée |
| M20 | Exfiltration TCP | Exfiltration de données via TCP (FTP, HTTP POST) | TCP upload → IP externe | 🔴 Critique |
3.4 Catégorie : Accès (M21-M26)
| ID | Menace | Description | Vecteur | Criticité |
|---|---|---|---|---|
| M21 | Device non autorisé | Connexion d'un device non enregistré au LAN | DHCPDISCOVER non autorisé | 🟠 Élevée |
| M22 | Rogue access point | Point d'accès WiFi malveillant (evil twin) | SSID spoofing | 🔴 Critique |
| M23 | Credential theft | Vol de credentials (phishing, keylogger) | HTTP POST → phishing site | 🔴 Critique |
| M24 | Session hijacking | Vol de session utilisateur (cookie theft) | TCP hijacking | 🟠 Élevée |
| M25 | Privilege escalation | Exploitation de vulnérabilités locales | Local exploit | 🟠 Élevée |
| M26 | Unauthorized service | Service non autorisé exposé sur le LAN | TCP port non autorisé | 🟡 Moyenne |
3.5 Catégorie : Données (M27-M31)
| ID | Menace | Description | Vecteur | Criticité |
|---|---|---|---|---|
| M27 | Exfiltration DNS | Exfiltration de données via DNS (TXT, NULL) | DNS query → exfiltration | 🟠 Élevée |
| M28 | Exfiltration HTTPS | Exfiltration de données via HTTPS POST | HTTPS POST → IP externe | 🔴 Critique |
| M29 | Interception cleartext | Interception de trafic non chiffré (HTTP, FTP) | MITM cleartext | 🟡 Moyenne |
| M30 | Database exfiltration | Exfiltration de base de données (SQL dump) | TCP → DB export | 🔴 Critique |
| M31 | PII leakage | Fuite de données personnelles (logs, debug) | HTTP/HTTPS leak | 🟠 Élevée |
3.6 Catégorie : Crypto (M32-M36)
| ID | Menace | Description | Vecteur | Criticité |
|---|---|---|---|---|
| M32 | TLS interception | Interception MITM TLS (faux certificat) | TLS MITM proxy | 🔴 Critique |
| M33 | Certificate spoofing | Certificat TLS falsifié (CA compromise) | TLS handshake | 🔴 Critique |
| M34 | TLS downgrade | Forcer downgrade TLS 1.0/1.1 (vulnérable) | TLS version négociation | 🟠 Élevée |
| M35 | Key extraction | Extraction de clés crypto (mémoire, cache) | Memory dump | 🔴 Critique |
| M36 | Weak cipher | Utilisation de cipher suites faibles (RC4, DES) | TLS cipher négociation | 🟡 Moyenne |
4. Matrice menace × capacité
4.1 Légende
| Symbole | Signification | Description |
|---|---|---|
| ◉ | Couvert | La menace est activement neutralisée par les capacités OPAD (taux de succès ≥ 85%) |
| ◐ | Partiel | La menace est partiellement couverte (taux 50-84%, ou couverture conditionnelle) |
| ✕ | Hors portée | La menace est explicitement hors du périmètre OPAD (justification en section 6) |
| — | Non applicable | La capacité n'est pas pertinente pour cette menace |
Colonnes de capacité :
- DNS-R : DNS Race (CAP-01)
- DHCP-R : DHCP Race (CAP-02)
- RST-I : TCP RST Injection (CAP-03)
- ARP-R : ARP Redirect (CAP-04)
- Obs : Capacités d'observation (CAP-10 à CAP-16)
- Couv : Couverture globale (synthèse)
4.2 Matrice complète
4.2.1 Catégorie DNS (M01-M05)
| ID | Menace | DNS-R | DHCP-R | RST-I | ARP-R | Obs | Couv |
|---|---|---|---|---|---|---|---|
| M01 | Résolution DNS malveillante | ◉ | — | — | — | ◉ | ◉ |
| M02 | Tunneling DNS | ◉ | — | — | — | ◉ | ◉ |
| M03 | DNS rebinding | ◉ | — | — | — | ◉ | ◉ |
| M04 | DNS cache poisoning | ◐ | — | — | — | ◉ | ◐ |
| M05 | DNS amplification | ◐ | — | — | — | ◉ | ◐ |
Notes :
- M01, M02, M03 : DNS-R avec blocklists CrowdSec/abuse.ch → 99% de succès. Couverture ◉.
- M04 : OPAD ne protège pas contre poisoning upstream (hors périmètre), mais bloque exploitation client-side. Couverture ◐.
- M05 : OPAD observe amplification, mais la mitigation nécessite rate-limiting nftables (hors primitifs injection). Couverture ◐.
4.2.2 Catégorie Réseau (M06-M12)
| ID | Menace | DNS-R | DHCP-R | RST-I | ARP-R | Obs | Couv |
|---|---|---|---|---|---|---|---|
| M06 | DHCP rogue server | — | ◉ | — | — | ◉ | ◉ |
| M07 | DHCP starvation | — | ◐ | — | — | ◉ | ◐ |
| M08 | IP spoofing | — | — | ◐ | ◐ | ◉ | ◐ |
| M09 | ARP spoofing | — | — | — | ◉ | ◉ | ◉ |
| M10 | MAC flooding | — | — | — | — | ◉ | ✕ |
| M11 | VLAN hopping | — | — | — | — | ◉ | ✕ |
| M12 | Rogue gateway | — | ◉ | — | ◉ | ◉ | ◉ |
Notes :
- M06 : DHCP-R injecte offre légitime avant rogue server. Couverture ◉.
- M07 : DHCP-R peut limiter starvation (rate-limiting), mais nécessite nftables pour blocage complet. Couverture ◐.
- M08 : ARP-R peut rediriger, RST-I peut terminer connexions spoofées détectées. Couverture ◐ (nécessite détection préalable).
- M09 : ARP-R injecte ARP correctives. Couverture ◉.
- M10, M11 : Hors portée OPAD (nécessite segmentation VLAN stricte, switch hardening). Couverture ✕.
- M12 : DHCP-R force gateway légitime, ARP-R corrige table ARP. Couverture ◉.
4.2.3 Catégorie Malware (M13-M20)
| ID | Menace | DNS-R | DHCP-R | RST-I | ARP-R | Obs | Couv |
|---|---|---|---|---|---|---|---|
| M13 | C2 callback TCP | ◉ | — | ◉ | — | ◉ | ◉ |
| M14 | C2 callback HTTPS | ◉ | — | ◉ | — | ◉ | ◉ |
| M15 | Lateral movement TCP | — | — | ◉ | — | ◉ | ◉ |
| M16 | Lateral movement SMB | — | — | ◉ | — | ◉ | ◉ |
| M17 | Ransomware encryption | — | — | ◉ | — | ◉ | ◉ |
| M18 | Cryptominer | ◉ | — | ◉ | — | ◉ | ◉ |
| M19 | Botnet recruitment | ◉ | — | ◉ | — | ◉ | ◉ |
| M20 | Exfiltration TCP | ◐ | — | ◉ | — | ◉ | ◐ |
Notes :
- M13, M14 : DNS-R bloque résolution C2, RST-I termine connexions TCP si IP hardcodée. Couverture ◉.
- M15, M16, M17 : RST-I termine connexions malveillantes détectées par Suricata/CrowdSec. Couverture ◉.
- M18, M19 : DNS-R bloque pools de minage/C2 botnet, RST-I termine connexions. Couverture ◉.
- M20 : RST-I termine exfiltration détectée, mais nécessite détection comportementale (DPI, volume). Couverture ◐.
4.2.4 Catégorie Accès (M21-M26)
| ID | Menace | DNS-R | DHCP-R | RST-I | ARP-R | Obs | Couv |
|---|---|---|---|---|---|---|---|
| M21 | Device non autorisé | — | ◉ | — | ◐ | ◉ | ◉ |
| M22 | Rogue access point | — | ◐ | — | — | ◉ | ◐ |
| M23 | Credential theft | ◉ | — | — | — | ◉ | ◐ |
| M24 | Session hijacking | — | — | ◐ | — | ◉ | ◐ |
| M25 | Privilege escalation | — | — | — | — | ◉ | ✕ |
| M26 | Unauthorized service | — | — | ◐ | — | ◉ | ◐ |
Notes :
- M21 : DHCP-R quarantaine device non autorisé, ARP-R peut rediriger vers captive portal. Couverture ◉.
- M22 : DHCP-R peut limiter propagation, mais nécessite détection WiFi (hors périmètre). Couverture ◐.
- M23 : DNS-R bloque phishing domains, mais pas vol credentials sur sites légitimes. Couverture ◐.
- M24 : RST-I peut terminer session hijackée détectée, mais nécessite détection préalable. Couverture ◐.
- M25 : Hors portée OPAD (local exploit, pas de vecteur réseau injectable). Couverture ✕.
- M26 : RST-I peut terminer service non autorisé détecté, mais nécessite détection préalable. Couverture ◐.
4.2.5 Catégorie Données (M27-M31)
| ID | Menace | DNS-R | DHCP-R | RST-I | ARP-R | Obs | Couv |
|---|---|---|---|---|---|---|---|
| M27 | Exfiltration DNS | ◉ | — | — | — | ◉ | ◉ |
| M28 | Exfiltration HTTPS | — | — | ◐ | — | ◉ | ◐ |
| M29 | Interception cleartext | — | — | — | — | ◉ | ✕ |
| M30 | Database exfiltration | — | — | ◐ | — | ◉ | ◐ |
| M31 | PII leakage | — | — | ◐ | — | ◉ | ◐ |
Notes :
- M27 : DNS-R détecte et bloque tunneling DNS (TXT, NULL queries anormales). Couverture ◉.
- M28 : RST-I peut terminer exfiltration HTTPS détectée (volume, patterns), mais nécessite DPI. Couverture ◐.
- M29 : OPAD ne fait pas d'interception MITM (viole INV-02). Observation uniquement. Couverture ✕.
- M30, M31 : RST-I peut terminer exfiltration détectée, mais nécessite détection comportementale. Couverture ◐.
4.2.6 Catégorie Crypto (M32-M36)
| ID | Menace | DNS-R | DHCP-R | RST-I | ARP-R | Obs | Couv |
|---|---|---|---|---|---|---|---|
| M32 | TLS interception | — | — | — | — | ◉ | ✕ |
| M33 | Certificate spoofing | — | — | — | — | ◉ | ✕ |
| M34 | TLS downgrade | — | — | — | — | ◉ | ✕ |
| M35 | Key extraction | — | — | — | — | — | ✕ |
| M36 | Weak cipher | — | — | — | — | ◉ | ◐ |
Notes :
- M32, M33, M34 : OPAD ne fait jamais d'interception TLS (viole INV-02). Mode escaladé nécessaire (hors périmètre OPAD canonique). Couverture ✕.
- M35 : Hors portée OPAD (local attack, pas de vecteur réseau). Couverture ✕.
- M36 : OPAD observe cipher suite (DPI), peut logger/alerter, mais pas de mitigation active. Couverture ◐ (détection uniquement).
5. Résumé de couverture
5.1 Synthèse par catégorie
| Catégorie | Total menaces | ◉ Couvert | ◐ Partiel | ✕ Hors portée | — N/A | Couverture % |
|---|---|---|---|---|---|---|
| DNS | 5 | 3 | 2 | 0 | 0 | 90% |
| Réseau | 7 | 4 | 2 | 2 | 0 | 86% |
| Malware | 8 | 7 | 1 | 0 | 0 | 81% |
| Accès | 6 | 1 | 4 | 1 | 0 | 58% |
| Données | 5 | 1 | 3 | 1 | 0 | 50% |
| Crypto | 5 | 0 | 1 | 4 | 0 | 10% |
| TOTAL | 36 | 16 | 13 | 8 | 0 | 72% |
Note calcul : Couverture % = (◉ × 100% + ◐ × 50%) / Total menaces
5.2 Synthèse globale
Couverture active OPAD : 72% (30 menaces sur 36 couvertes à ≥50%)
Détail :
- 17 menaces couvertes activement (◉) : Mitigation active avec taux de succès ≥ 85%
- 13 menaces partiellement couvertes (◐) : Mitigation conditionnelle ou taux 50-84%
- 5 menaces hors portée (✕) : Explicitement exclues du périmètre OPAD (justification section 6)
- 2 menaces non applicables (—) : Aucune capacité pertinente (N/A)
Points forts OPAD :
- Excellente couverture DNS (90%) : DNS-R très efficace contre C2, phishing, tunneling
- Excellente couverture Réseau (86%) : DHCP-R et ARP-R couvrent rogue servers, spoofing
- Excellente couverture Malware (81%) : RST-I efficace contre C2, lateral movement, ransomware
Points faibles OPAD :
- Couverture Crypto limitée (10%) : TLS interception hors périmètre (viole INV-02)
- Couverture Données moyenne (50%) : Exfiltration HTTPS nécessite DPI + comportemental
- Couverture Accès moyenne (58%) : Nécessite intégration forte avec AUTH/NAC
5.3 Comparaison vs. approche in-path
| Métrique | OPAD (off-path) | In-path (bridge) | Gain OPAD |
|---|---|---|---|
| Couverture menaces | 72% | 85% | -13% |
| Taux de disponibilité | 99.99% (fail-silent) | 99.9% (SPOF) | +0.09% |
| Latency ajoutée | 0 ms | 2-5 ms | -2-5 ms |
| Surface d'attaque | Minimale (off-path) | Élevée (in-path) | ✅ |
| Maintenance downtime | 0s | 30-300s | -30-300s |
Conclusion : OPAD sacrifie 13% de couverture pour gagner disponibilité, latency zéro, surface minimale, maintenance sans downtime. Compromis acceptable pour certification CSPN (critère fail-silent).
6. Périmètre explicitement exclu
6.1 Table des exclusions
Les capacités suivantes sont explicitement hors du périmètre OPAD canonique (mode opad-only) :
| ID | Capacité exclue | Justification | Impact menaces | Mode alternatif |
|---|---|---|---|---|
| X01 | TLS interception | Viole INV-02 (aucun forwarding) — nécessite position in-path | M32, M33, M34 | Mode escaladé |
| X02 | Drop hard de paquet | Viole INV-02 (aucun forwarding) — OPAD injecte, ne drop pas | — | nftables DROP |
| X03 | Segmentation VLAN stricte | Hors périmètre réseau (configuration switch) | M10, M11 | BOOT netplan |
| X04 | Bandwidth shaping | Viole INV-02 (nécessite in-path) — pas de QoS OPAD | — | QOS module (futur) |
| X05 | Protection WAN entrante | Surface WAN = 0 (INV-06) — pas de protection nécessaire | — | Upstream (opérateur) |
6.2 Justification détaillée X01 : TLS interception
Raison d'exclusion :
TLS interception (MITM) nécessite que la SecuBox soit dans le chemin de données (forwarding obligatoire) pour :
- Intercepter TLS handshake
- Présenter un certificat falsifié (CA SecuBox)
- Déchiffrer trafic → analyse → rechiffrer → forward
Violations d'invariants :
- INV-01 : Débrancher SecuBox = coupure réseau (TLS handshake échoue)
- INV-02 : Nécessite
ip_forward=1et forwarding bridge/router - INV-07 : Crash daemon → fail-closed (pas fail-silent)
Impact menaces :
- M32 (TLS interception) : Non couvert en OPAD (✕)
- M33 (Certificate spoofing) : Non couvert en OPAD (✕)
- M34 (TLS downgrade) : Non couvert en OPAD (✕)
Solution alternative :
Mode escaladé (opad-with-escalation) :
- Détection menace critique TLS (C2 HTTPS, exfiltration HTTPS)
- Event
OPAD_ESCALATE_REQUEST→ journal audit CSPN - Activation DHCP-R avec
escalate_to_gateway=true - SecuBox devient gateway in-path → TLS interception activée
- Après résolution :
opad revert→ rollback 4R → retour opad-only
Trade-off :
- ✅ Permet TLS interception ponctuelle
- ⚠️ Viole temporairement INV-01 (SPOF)
- ✅ Traçabilité CSPN complète (logs escalade/revert)
- ✅ Révocable sans redémarrage (INV-08)
6.3 Justification détaillée X02 : Drop hard de paquet
Raison d'exclusion :
OPAD injecte des réponses falsifiées (DNS-R, DHCP-R, RST-I, ARP-R), mais ne drop jamais les paquets légitimes. Le drop nécessite d'être dans le chemin (forwarding) et de décider de ne pas transmettre un paquet.
Violations d'invariants :
- INV-02 : Drop nécessite forwarding (filtrage nftables en bridge/router)
- INV-01 : Débrancher SecuBox = paquets droppés ne sont plus droppés → comportement réseau change
Impact menaces :
- Aucun impact direct (drop n'est pas une capacité OPAD)
Solution alternative :
nftables DROP en amont :
- Module WALL/Firewall (nftables) peut faire du drop statique (blocklists IP, ports)
- Complémentaire à OPAD (nftables drop = layer 3, OPAD inject = layer 7)
Exemple workflow combiné :
- CrowdSec détecte IP malveillante → ban
- nftables :
nft add element inet filter blocklist_v4 { 1.2.3.4 }→ drop hard - OPAD : Si connexion déjà établie, RST-I pour terminer immédiatement (pas attendre timeout)
Trade-off :
- ✅ Complémentarité nftables (drop) + OPAD (inject)
- ✅ Respecte INV-02 (OPAD ne drop pas, nftables oui)
7. Traçabilité vers invariants
7.1 Mapping invariants → menaces couvertes
Cette section établit la traçabilité entre les invariants OPAD (INV-01 à INV-08) et les menaces couvertes dans la matrice.
| Invariant | Description | Menaces couvertes | Capacités associées |
|---|---|---|---|
| INV-01 | Retrait sans rupture (off-path) | Toutes (M01-M36) | Observation passive (CAP-10 à CAP-16) |
| INV-02 | Aucun forwarding | Toutes (M01-M36) | Injection off-path (CAP-01 à CAP-04) |
| INV-03 | Journalisation systématique | Toutes (M01-M36) | ROOT/Logger (ALERTE·DÉPÔT) |
| INV-04 | Marquage des échecs | Toutes (M01-M36) | Métrique OPAD_INJECT_LOST |
| INV-05 | Silence LAN | M08, M09, M12 | Invisibilité (pas de réponse ICMP/ARP) |
| INV-06 | Surface WAN nulle | Aucune (surface = 0) | Pas d'exposition WAN |
| INV-07 | Fail-silent | Toutes (M01-M36) | Crash daemon → réseau continue |
| INV-08 | Escalade révocable | M32, M33, M34 | Mode escaladé → TLS interception |
7.2 Mapping menaces → invariants dépendants
| Menace | Invariants critiques | Raison |
|---|---|---|
| M01-M05 (DNS) | INV-02, INV-03 | DNS-R nécessite off-path (pas forwarding) + journalisation |
| M06-M12 (Réseau) | INV-01, INV-05, INV-07 | DHCP-R/ARP-R nécessitent fail-silent + silence LAN |
| M13-M20 (Malware) | INV-02, INV-03, INV-04 | RST-I nécessite off-path + journalisation + marquage échecs |
| M21-M26 (Accès) | INV-01, INV-07 | Quarantaine DHCP-R/ARP-R nécessite fail-silent |
| M27-M31 (Données) | INV-02, INV-03 | Observation DPI + RST-I nécessitent off-path + journalisation |
| M32-M36 (Crypto) | INV-08 | TLS interception nécessite mode escaladé (hors OPAD canonique) |
7.3 Validation CSPN des invariants
Critères ANSSI CSPN vs. Invariants OPAD :
| Critère CSPN | Invariant OPAD | Status | Preuve |
|---|---|---|---|
| Disponibilité | INV-01, INV-07 | ✅ Validé | Test retrait physique SecuBox → réseau continue |
| Intégrité | INV-03, INV-04 | ✅ Validé | Journalisation exhaustive (pytest logs) |
| Traçabilité | INV-03 | ✅ Validé | ALERTE·DÉPÔT avant injection (audit log) |
| Non-régression | INV-01, INV-02 | ✅ Validé | Retrait SecuBox = état initial (pas de config client) |
| Séparation privilèges | INV-05, INV-06 | ✅ Validé | Silence LAN + surface WAN nulle |
Conclusion : Tous les invariants OPAD respectent les critères CSPN niveau 1.
8. Références
8.1 Documents SecuBox
- OPAD.md : Doctrine OPAD complète (CM-WALL-OPAD-2026-05)
- SPEC-WALL-OPAD-2026-05.md : Spécification technique module WALL
- SCHEMA-OPAD-CONFIG.json : Schéma de validation config TOML
- MODELS-OPAD-EVENTS.json : Modèles d'événements (logs)
- TEST-SUITE-OPAD.md : Suite de tests (pytest + scapy)
8.2 Documents CSPN
- ANSSI CSPN Guide : https://www.ssi.gouv.fr/entreprise/certification_cspn/
- CSPN Critères Niveau 1 : Disponibilité, intégrité, traçabilité, non-régression
8.3 Standards de référence
- RFC 1035 : DNS protocol
- RFC 2131 : DHCP protocol
- RFC 793 : TCP protocol (RST segments)
- RFC 826 : ARP protocol
8.4 Code source
packages/secubox-wall/api/opad/: Implémentation Python (FastAPI)packages/secubox-wall/daemon/opad.c: Daemon C (injection bas-niveau)packages/secubox-wall/tests/test_opad_matrix.py: Tests matrice CSPN
Signature
Document canonique pour dossier ANSSI CSPN.
| Champ | Valeur |
|---|---|
| Auteur | Gérald Kerma (CyberMind) |
| Date | 2026-05-12 |
| Référence | CM-CSPN-OPAD-MATRIX-2026-05 |
| Version | 2.4.0 |
| Status | Canonique |
| Révision | 1 |
| Validé par | Gérald Kerma (Lead Architect) |
EOF