
Un agent Go autonome et réflexif pour l'audit de sécurité de bout en bout, le contournement de WAF, la vérification LDAP hors bande (OOB), l'auto-remédiation (correctifs automatiques) et les rapports de conformité pour CVE-2021-44228 (Log4Shell).
Banc de démonstration isolé d'un agent exécuteur réflexif autonome (Go/Java)
Русский 🇷🇺 • English 🇬🇧 • 中文 🇨🇳 • Español 🇪🇸 • Deutsch 🇩🇪 • Italiano 🇮🇹 • العربية 🇸🇦
[!NOTE] AUTO AUDIT est un ensemble logiciel démontrant un cycle fermé 100 % autonome (Sense-Think-Act) de détection, de vérification, d'exploitation, de correction automatique (Self-Healing / Auto-Remediation) et de reporting de conformité pour la vulnérabilité critique Log4Shell (CVE-2021-44228 / БДУ ФСТЭК:2021-06103).
Le banc déploie une application web locale basée sur Java Spring Boot, un LDAP TCP Callback Listener intégré et le noyau cognitif de l'agent Go, qui prend des décisions dans des conditions d'observabilité partielle de l'environnement externe (Partially Observable Markov Decision Process — POMDP).```mermaid %%{init: { 'theme': 'dark', 'themeVariables': { 'background': '#0f172a', 'primaryColor': '#1e293b', 'primaryTextColor': '#cbd5e1', 'primaryBorderColor': '#3b82f6', 'lineColor': '#38bdf8', 'secondaryColor': '#1e1b4b', 'tertiaryColor': '#0f172a', 'edgeLabelBackground': '#0f172a' } }}%% graph TD classDef sense fill:#0284c7,stroke:#0ea5e9,stroke-width:2px,color:#fff; classDef think fill:#4f46e5,stroke:#6366f1,stroke-width:2px,color:#fff; classDef act fill:#059669,stroke:#10b981,stroke-width:2px,color:#fff; classDef target fill:#dc2626,stroke:#ef4444,stroke-width:2px,color:#fff;
subgraph Sense ["🔍 СЕНСОРНЫЙ АНАЛИЗ (Sense)"]
A[Внешние отклики / TCP-коллбеки]:::sense --> B(Обновление Базы Знаний):::sense
end
subgraph Think ["🧠 КОГНИТИВНОЕ ЯДРО (Think)"]
B --> C{Вычисление Utility Policy}:::think
C -->|Рефлексивный вывод| D[Выбор эффектора из реестра]:::think
end
subgraph subgraph_Act ["⚡ ИСПОЛНЕНИЕ (Act)"]
D --> E[Выполнение Tool.Execute]:::act
E -->|Воздействие| F((Java Spring Boot Target)):::target
F -.->|Обратный канал OOB| A
end
---
## 🛠️ Architecture technique et composants
La structure logicielle de l'agent est conçue selon les principes de l'architecture propre (*Hexagonal Architecture / Ports and Adapters*), SOLID et TDD :
* 📂 **[cmd/agent/main.go](https://github.com/c00ln3t/log4shellauditor/blob/main/cmd/agent/main.go)** — Point d'entrée. Gère le cycle de vie des processus en arrière-plan et coordonne le lancement de la goroutine de l'agent.
* 📂 **`internal/`** — Logique métier principale du circuit cognitif :
* 🧠 **[agent/agent.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/agent/agent.go)** — Circuit cognitif. Implémente la boucle de contrôle et la règle de décision de sélection de stratégie `Think()`.
* 💾 **[core/model.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/model.go)** — Base de connaissances thread-safe (`KnowledgeBase` / LTM) fondée sur `sync.RWMutex`.
* 🔌 **[core/effector.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/effector.go)** — Interface `Tool` pour les effecteurs.
* ⚙️ **[effectors/](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/effectors)** — Registre des effecteurs (outils) polymorphes :
* 🔍 `ToolPortScanner` — Reconnaissance du périmètre réseau.
* 🌐 `ToolDiscovery` — Recherche de points d'articulation et de vecteurs d'entrée (`X-Api-Version`).
* 🔬 `ToolPayloadGenerator` — Synthèse du vecteur de signature JNDI.
* 🚀 `ToolProber` — Vérification de la vulnérabilité par traçage hors bande (Out-of-Band).
* 🛡️ `ToolSemanticFuzzer` — Contournement des classifieurs de filtrage (WAF Evasion) à l'aide de mutations syntaxiques imbriquées.
* 🩹 `ToolRemediator` — Correction automatique (Self-Healing).
* 📄 `ToolReporter` — Génération du rapport conformément à ГОСТ Р 56939-2016.
* 📂 **`pkg/`** — Paquets et bibliothèques utilitaires :
* 📡 **[oob/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/oob)** — Écouteurs hors bande (LDAP et HTTP).
* ☕ **[jvm/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/jvm)** — Gestion du cycle de vie et du redémarrage de la cible Java locale.
* 📂 **[deployments/](https://github.com/c00ln3t/log4shellauditor/blob/main/deployments)** — Fichiers de configuration pour le déploiement (Docker, Compose).
* 📂 **[test/vulnerable-app/](https://github.com/c00ln3t/log4shellauditor/blob/main/test/vulnerable-app)** — Application de test Java Spring Boot vulnérable.
---
## 🎯 Appareil mathématique et spécification du cycle cognitif (Think-Act Loop)
La prise de décision de l'agent est formalisée comme un **processus de décision markovien partiellement observable (POMDP)**, décrit par le tuple $\langle S, A, T, R, \Omega, O, \gamma \rangle$ :
* $S$ — espace discret des états cachés de l'environnement cible (disponibilité du port, présence de paramètres vulnérables, activité du WAF, fait de compromission, statut du correctif, présence du rapport de conformité).
* $A$ — espace des actions des effecteurs (appels d'outils : `port_scanner`, `discovery`, `payload_generator`, `prober`, `semantic_fuzzer`, `remediator`, `reporter`, `stop`).
* $\Omega$ — espace des observations (réponses HTTP reçues, callbacks TCP OOB, enregistrements du système de fichiers).
* $O(o \mid s', a)$ — fonction d'observation déterminant la probabilité d'obtenir une réponse $o \in \Omega$.