Aller au contenu

Méthodologie du moteur décisionnel Hermes (HDEM) : arbitrage multi-objectif de remédiation


Évaluez le tenseur décisionnel à 5 dimensions, simulez les arbitrages prescriptifs sur des cas réels de référence et générez des pistes d’audit conformes à NIS2 et DORA :

6 Directives Prescriptives Patch, Mitigate, Isolate, Replace, Accept, Monitor
< 1h SLA d'Isolement d'Urgence Zero-Day armé sur actif Tier 0
5D Tenseur d'Évaluation Criticité, Accès, Armement, Impact, Compensation
100% Confidentialité Client (P7) Zéro transmission serveur

Banc d'Essai d'Arbitrage Décisionnel en Temps Réel

Sélectionnez un cas réel ou configurez les 5 dimensions opérationnelles de votre infrastructure pour obtenir immédiatement la directive d'action prescriptive, le SLA cible et la justification d'audit.

👑 Criticité de l'Actif (C_asset) Tier 0 (Crown Jewels)
🌐 Exposition Réseau (E_reach) Public Internet
💣 Armement de l'Exploit (W_exploit) CISA KEV (In The Wild)
⚡ Pénalité d'Interruption Patch (K_disrupt) Severe Outage
🛡️ Faisabilité de Compensation (F_fallback) WAF / eBPF Ready
DIRECTIVE OPÉRATIONNELLE PRESCRITE :
🛡️ MITIGATE
⏱️ SLA Cible : < 4 Heures
Directive de Contingence Secondaire : PATCH (en fenêtre de maintenance)
Score d'Urgence Prescriptif (PUS) : 89 / 100
Coût de l'Inaction Incontrôlée : CRITIQUE (Compromission d'identité)

💡 Justification Mathématique de l'Arbitrage :

L'actif est de criticité Tier 0 (Joyau de la couronne) et la menace est activement armée (CISA KEV). Cependant, l'application immédiate du patch introduirait une indisponibilité majeure pendant une période de gel opérationnel. Comme une règle WAF/eBPF compensatoire est disponible, la directive MITIGATE est prescrite en urgence (< 4h), différant la directive PATCH à la prochaine fenêtre de maintenance.

🛠️ Playbook de Remédiation Associé :

rmmod ebt_snat || modprobe -r ebt_snat

Taxonomie Formelle des 6 Directives Opérationnelles

Hermes met fin au réflexe simpliste « tout patcher tout de suite ». Les 6 directives encadrent scientifiquement l'arbitrage entre sécurité, disponibilité et coût d'ingénierie.

📦 PATCH ⏱️ < 24 Hours (Critical) / < 7 Days (High)

Immediate Vendor Patching

Deploy official vendor security updates, backports, or hotfixes to eliminate underlying vulnerability permanently.

🎯 Condition Déclenchante : Vendor patch verified stable AND (Exploit in KEV OR Public PoC with reachable attack surface).
⚖️ Compromis Opérationnel : Requires service restart or maintenance window; potential regression risk.
⏪ Risque de Retour Arrière : Low to Moderate.
🛡️ MITIGATE ⏱️ < 4 Hours

Compensatory Defensive Mitigation

Deploy external perimeter controls (WAF virtual patch, eBPF socket drop, ingress firewall rules, or feature toggle) to block exploitation without touching underlying codebase.

🎯 Condition Déclenchante : Active zero-day without vendor patch OR high patch disruption during strict operational freeze.
⚖️ Compromis Opérationnel : Risk of false positives on non-standard client traffic; maintenance overhead of rule lifecycle.
⏪ Risque de Retour Arrière : Very Low (Instantaneous rule disablement).
🔒 ISOLATE ⏱️ < 1 Hour (Urgent)

Perimeter & Network Quarantine

Sever untrusted network access, move asset to isolated quarantine VLAN, drop default routing, or confine execution inside an ephemeral microVM sandbox.

🎯 Condition Déclenchante : Unauthenticated RCE under active wild exploitation on critical asset where no patch or WAF mitigation exists.
⚖️ Compromis Opérationnel : Temporary functional impairment of external integrations or service reachability.
⏪ Risque de Retour Arrière : Instantaneous (Route restoration).
🔄 REPLACE ⏱️ < 30 Days

Architectural Deprecation & Replacement

Decommission and replace unmaintained, abandonware, or structurally defective components with hardened modern alternatives.

🎯 Condition Déclenchante : Component is End-of-Life (EOL), unpatched for > 90 days, or architecturally unsecurable.
⚖️ Compromis Opérationnel : Substantial migration engineering effort and regression testing cycles.
⏪ Risque de Retour Arrière : High (Multi-system architectural migration).
📋 ACCEPT ⏱️ Quarterly Review Cycle

Formalized Risk Acceptance

Document and formalize conscious business risk acceptance when vulnerability is unreachable, purely theoretical, or remediation cost exceeds maximum potential loss.

🎯 Condition Déclenchante : HTS < 40 AND Exploitability is Theoretical AND Network Reachability is zero (air-gapped / unexposed).
⚖️ Compromis Opérationnel : Zero immediate operational expenditure; residual compliance audit tracking.
⏪ Risque de Retour Arrière : Zero.
👁️ MONITOR ⏱️ < 48 Hours

Enhanced Telemetry & Threat Hunting

Deploy targeted SIEM detection rules, Canary tokens, and auditd/Sysmon probes to detect early exploitation attempts without altering production code.

🎯 Condition Déclenchante : Newly disclosed CVE with high theoretical severity but zero in-the-wild weaponization or weaponized exploit circulating on specialized darknet channels.
⚖️ Compromis Opérationnel : SIEM ingestion bandwidth and SOC analyst triage load.
⏪ Risque de Retour Arrière : Negligible.

Bibliothèque de Playbooks Prescriptifs de Remédiation

Commandes de neutralisation immédiate prêtes au déploiement pour WAF, noyaux Linux, micro-segmentation SDN et conteneurs.

PLAY-01-EBPF-DROP ⚙️ Linux Kernel XDP / TC

eBPF Sub-Millisecond Kernel Socket Drop

Directive: MITIGATE
Extrait d'implémentation :
SEC("xdp") int xdp_drop_cve(struct xdp_md *ctx) { void *data = (void *)(long)ctx->data; void *data_end = (void *)(long)ctx->data_end; struct ethhdr *eth = data; if ((void *)(eth + 1) > data_end) return XDP_PASS; if (eth->h_proto == bpf_htons(ETH_P_IP)) { struct iphdr *ip = (void *)(eth + 1); if ((void *)(ip + 1) > data_end) return XDP_PASS; if (ip->protocol == IPPROTO_TCP) { struct tcphdr *tcp = (void *)(ip + 1); if ((void *)(tcp + 1) > data_end) return XDP_PASS; if (tcp->dest == bpf_htons(7001)) return XDP_DROP; } } return XDP_PASS; }
✅ Commande de vérification :
bpftool prog show name xdp_drop_cve && bpftool net list
PLAY-02-WAF-VIRTUAL-PATCH ⚙️ Reverse Proxy / WAF

ModSecurity / Coraza Virtual Regex Patch

Directive: MITIGATE
Extrait d'implémentation :
SecRule REQUEST_URI "@rx (?:/api/v1/reset_password|/guest/provision)" "id:100901,phase:2,deny,status:403,log,msg:'Hermes Virtual Patch: Malformed Account Provisioning Replay'"
✅ Commande de vérification :
curl -ik -X POST https://target/api/v1/reset_password -d 'malformed' | grep 403
PLAY-03-VLAN-QUARANTINE ⚙️ Software-Defined Network (SDN) / Calico / Cilium

Automated Micro-Segmentation Quarantine

Directive: ISOLATE
Extrait d'implémentation :
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
  name: emergency-isolate-asset
spec:
  endpointSelector:
    matchLabels:
      app.kubernetes.io/name: vulnerable-workload
  ingress: []
  egress: []
✅ Commande de vérification :
cilium endpoint list | grep vulnerable-workload
PLAY-04-MODULE-UNLOAD ⚙️ Host OS Modprobe

Vulnerable Kernel Module Dynamic Blacklist

Directive: MITIGATE
Extrait d'implémentation :
rmmod ebt_snat || modprobe -r ebt_snat && echo 'install ebt_snat /bin/true' > /etc/modprobe.d/cve-2026-53266-mitigation.conf
✅ Commande de vérification :
lsmod | grep ebt_snat || echo 'Module successfully unmapped'
PLAY-05-DECOMMISSION-WORKFLOW ⚙️ Infrastructure as Code (Terraform / Helm)

Graceful Sunset & Architecture Replacement

Directive: REPLACE
Extrait d'implémentation :
resource "kubernetes_deployment" "legacy_workload" {
  metadata {
    annotations = {
      "hermes.codex/deprecated" = "true"
      "hermes.codex/sunset-date" = "2026-10-15"
    }
  }
  spec {
    replicas = 0
  }
}
✅ Commande de vérification :
kubectl get deployments -A -l hermes.codex/deprecated=true
PLAY-06-AUDITD-PROBE ⚙️ Linux auditd

High-Fidelity Kernel Syscall Audit Probe

Directive: MONITOR
Extrait d'implémentation :
auditctl -a always,exit -F arch=b64 -S setsockopt -F a2=0x2710 -k cve_2026_ebtables_exploit
auditctl -a always,exit -F arch=b64 -S sendmsg -F a0=3 -k cve_2025_afalg_race
✅ Commande de vérification :
ausearch -k cve_2026_ebtables_exploit --raw

Journal d'Audit Décisionnel & Justification de Conformité (NIS2 / DORA)

Les régulateurs exigent la preuve qu'une vulnérabilité non immédiatement patchée a fait l'objet d'une décision d'atténuation formelle et tracée. Générez ici votre justificatif certifié.

📜 HERMES DECISION AUDIT MANIFEST
{
  "audit_version": "1.0",
  "engine": "Hermes Decision Engine V3.0",
  "timestamp": "2026-09-18T18:00:00Z",
  "compliance_frameworks": ["NIS2-Art21", "DORA-Art9", "ISO27001-A.12.6.1"],
  "evaluation_context": {
    "threat_id": "CVE-2026-83021",
    "asset_criticality": "TIER_0 (Crown Jewels)",
    "network_reachability": "DMZ_PROXY",
    "exploit_weaponization": "CISA_KEV_WILD",
    "disruption_penalty": "SEVERE_OUTAGE (Operational Freeze)",
    "compensatory_fallback": "IMMEDIATE_WAF (Port 7001 eBPF Filter)"
  },
  "arbitration_result": {
    "primary_directive": "MITIGATE",
    "target_sla": "< 4 Hours",
    "secondary_contingency": "PATCH (Next Scheduled Maintenance Window)",
    "prescriptive_urgency_score": 89,
    "formal_justification": "Compensatory defensive control deployed to prevent active exploitation without incurring catastrophic operational downtime during active freeze window."
  }
}
          

1. L’échec structurel de la priorisation classique des vulnérabilités

Section intitulée « 1. L’échec structurel de la priorisation classique des vulnérabilités »

La gestion traditionnelle des vulnérabilités repose sur un tri linéaire simpliste : les failles sont classées selon leur score CVSS de base, et les équipes techniques se voient imposer de « tout patcher » au-delà d’un certain seuil dans un délai calendaire uniforme (ex. 14 jours pour les critiques, 30 jours pour les élevées).

En environnement d’entreprise réel, ce modèle échoue pour trois raisons majeures :

  1. Le paradoxe sécurité-disponibilité : appliquer des correctifs en urgence sur des infrastructures Tier 0 (fournisseurs d’identité, bases de données centrales, hyperviseurs) en pleine période de production engendre des risques majeurs de panne. Dans de nombreux incidents documentés, des patchs précipités ont causé des pertes financières supérieures à l’exploitation de la vulnérabilité elle-même.
  2. L’hypothèse nulle de l’exposition : une exécution de code à distance (RCE) notée CVSS 10.0 sur un composant isolé ou écoutant sur localhost présente une accessibilité réseau effective nulle. La traiter en urgence absolue mobilise indûment des ressources d’ingénierie au détriment de failles actives ciblant la zone démilitarisée (DMZ).
  3. L’angle mort des zero-days : lorsqu’une menace est exploitée avant la disponibilité d’un patch éditeur officiel, les processus classiques n’offrent aucune directive d’action. Les décideurs ont besoin d’un cadre formel légitimant l’atténuation temporaire (MITIGATE) ou la quarantaine réseau immédiate (ISOLATE).
graph TD
Input["Signal de Menace Multi-Sources (KEV / HTS / EPSS)"] --> Engine["Moteur d'Arbitrage Décisionnel Hermes"]
Engine --> Obj1["Objectif 1 : Minimiser l'Exposition au Risque (Delta R)"]
Engine --> Obj2["Objectif 2 : Minimiser l'Indisponibilité Métier (Delta K)"]
Engine --> Obj3["Objectif 3 : Maximiser la Faisabilité & le Respect des SLA"]
Obj1 --> Pareto["Optimisation d'Utilité sur Frontière de Pareto"]
Obj2 --> Pareto
Obj3 --> Pareto
Pareto --> D_Patch["PATCH (Correctif Éditeur)"]
Pareto --> D_Mitigate["MITIGATE (Mesure Compensatoire WAF/eBPF)"]
Pareto --> D_Isolate["ISOLATE (Quarantaine de Périmètre)"]
Pareto --> D_Replace["REPLACE (Dépréciation de Composant)"]
Pareto --> D_Accept["ACCEPT (Acceptation Formelle du Risque)"]
Pareto --> D_Monitor["MONITOR (Surveillance Accrue SIEM)"]

2. Formalisation mathématique : la fonction d’utilité multi-objectif

Section intitulée « 2. Formalisation mathématique : la fonction d’utilité multi-objectif »

La méthodologie HDEM modélise la directive prescriptive optimale (D*) comme l’argument qui maximise l’utilité opérationnelle nette de sécurité (U(D)) :

D* = argmax_D dans {PATCH, MITIGATE, ISOLATE, REPLACE, ACCEPT, MONITOR} [ U(D) ]

Où l’utilité nette U(D) est définie par :

U(D) = Delta_R(D) - Lambda_disrupt * K_disrupt(D) - Lambda_op * C_overhead(D)

Où :

  • Delta_R(D) : réduction effective du risque apportée par la directive D. Pour PATCH et ISOLATE, Delta_R approche 100 % du vecteur d’attaque. Pour MITIGATE, Delta_R dépend du taux de couverture du filtre (typiquement 80 à 95 %).
  • K_disrupt(D) : pénalité d’interruption opérationnelle (temps d’arrêt, dégradation de débit, ruptures de compatibilité).
  • C_overhead(D) : coût d’ingénierie et charge de maintenance récurrente du contrôle déployé.
  • Lambda_disrupt & Lambda_op : coefficients de pondération calibrés selon l’appétence au risque de l’organisation.

3. Formulation du score d’urgence prescriptif (PUS)

Section intitulée « 3. Formulation du score d’urgence prescriptif (PUS) »

Avant d’arbitrer entre les options concrètes de remédiation, HDEM calcule le Score d’Urgence Prescriptif (PUS - Prescriptive Urgency Score), un indice scalaire de 0 à 100 quantifiant la nécessité d’une intervention défensive immédiate :

PUS = min(100, (w_c * C_asset + w_r * E_reach + w_w * W_exploit) * 100)

Pondérations étalonnées :

  • w_c = 0.35 (Facteur de Criticité de l’Actif, C_asset dans [0.2, 1.0])
  • w_r = 0.35 (Facteur d’Exposition Réseau, E_reach dans [0.1, 1.0])
  • w_w = 0.30 (Facteur d’Armement de l’Exploit, W_exploit dans [0.2, 1.0])
Plage PUSIndisponibilité ($K$)Compensation ($F$)Directive PrimaireSLA CibleDirective de Contingence
80 - 100Élevée (>= 0.7)Disponible (>= 0.7)MITIGATE< 4 HeuresPATCH (Fenêtre de maintenance)
80 - 100Élevée (>= 0.7)Nulle (< 0.4)ISOLATE< 1 HeurePATCH (Post-isolement)
80 - 100Faible (< 0.7)IndifférentePATCH< 12 HeuresISOLATE (Repli de sécurité)
50 - 79Élevée (>= 0.7)Disponible (>= 0.7)MITIGATE< 48 HeuresPATCH (Prochaine mise à jour)
50 - 79Faible (< 0.7)IndifférentePATCH< 7 JoursMONITOR
30 - 49IndifférenteIndifférenteMONITOR< 14 JoursACCEPT (Si isolé)
0 - 29IndifférenteIndifférenteACCEPTTrimestrielMONITOR (Revue annuelle)

Une directive sans procédure technique exécutable reste lettre morte. La méthodologie HDEM associe chaque directive à un Playbook de Remédiation Directement Actionnable :

sequenceDiagram
autonumber
participant D as Moteur Décisionnel
participant S as Équipe SOC / DevSecOps
participant E as Couche d'Exécution (WAF / Noyau / K8s)
participant A as Journal d'Audit & Conformité
D->>S: Émission de la Directive Prescriptive (ex. MITIGATE < 4h)
S->>E: Déploiement de l'Extrait de Playbook Pré-Compilé
E-->>S: Vérification d'Exécution (Contrôle du Code de Retour)
S->>A: Enregistrement du Jeton Cryptographique de Preuve
Note over A: Justification Réglementaire NIS2 Art. 21 / DORA Art. 9

5. Justification et défendabilité réglementaire (NIS2, DORA, ISO 27001)

Section intitulée « 5. Justification et défendabilité réglementaire (NIS2, DORA, ISO 27001) »

Sous l’égide des cadres réglementaires modernes, la conformité n’est plus une simple case à cocher. Les autorités européennes (ANSSI, BSI, ENISA) mènent des investigations forensiques rigoureuses après incident. Si une intrusion survient via une vulnérabilité non corrigée, les enquêteurs exigent de savoir :

  1. À quelle date l’organisation a-t-elle pris connaissance de la faille ?
  2. Pourquoi le correctif n’a-t-il pas été déployé dans les délais usuels ?
  3. Quels contrôles compensatoires ont été mis en œuvre pendant la période de différé ?

La méthodologie HDEM automatise la production d’un Manifeste d’Audit Décisionnel, garantissant l’alignement sur les exigences de gouvernance et éliminant les risques de sanctions pour non-conformité.