
Ein autonomer reflexiver Go-Agent für vollständige Sicherheitsaudits, WAF-Umgehung, OOB-LDAP-Verifizierung, Selbstreparatur (automatisches Patchen) und Compliance-Berichterstattung für CVE-2021-44228 (Log4Shell).
Isolierter Demonstrationsstand eines autonomen reflexiven ausführenden Agenten (Go/Java)
Русский 🇷🇺 • English 🇬🇧 • 中文 🇨🇳 • Español 🇪🇸 • Deutsch 🇩🇪 • Italiano 🇮🇹 • العربية 🇸🇦
[!NOTE] AUTO AUDIT ist ein Softwarekomplex, der einen 100% autonomen geschlossenen Kreislauf (Sense-Think-Act) für Erkennung, Verifizierung, Ausnutzung, automatische Behebung (Self-Healing / Auto-Remediation) und Compliance-Berichterstattung für die kritische Schwachstelle Log4Shell (CVE-2021-44228 / БДУ ФСТЭК:2021-06103) demonstriert.
Der Demonstrationsstand stellt eine lokale Webanwendung auf Basis von Java Spring Boot, einen eingebetteten LDAP TCP Callback Listener und den kognitiven Kern des Go-Agenten bereit, der Entscheidungen unter Bedingungen teilweiser Beobachtbarkeit der externen Umgebung trifft (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
---
## 🛠️ Technische Architektur und Komponenten
Die Programmstruktur des Agenten wurde gemäß den Prinzipien sauberer Architektur (*Hexagonal Architecture / Ports and Adapters*), SOLID und TDD entwickelt:
* 📂 **[cmd/agent/main.go](https://github.com/c00ln3t/log4shellauditor/blob/main/cmd/agent/main.go)** — Einstiegspunkt. Verwaltet den Lebenszyklus von Hintergrundprozessen und koordiniert den Start der Agent-Goroutine.
* 📂 **`internal/`** — Kern-Geschäftslogik des kognitiven Regelkreises:
* 🧠 **[agent/agent.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/agent/agent.go)** — Kognitiver Regelkreis. Implementiert die Steuerungsschleife und die Entscheidungsregel zur Strategiewahl `Think()`.
* 💾 **[core/model.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/model.go)** — Threadsichere Wissensbasis (`KnowledgeBase` / LTM) auf Basis von `sync.RWMutex`.
* 🔌 **[core/effector.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/effector.go)** — Schnittstelle `Tool` für Effektoren.
* ⚙️ **[effectors/](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/effectors)** — Registry polymorpher Effektoren (Werkzeuge):
* 🔍 `ToolPortScanner` — Erkundung des Netzwerkperimeters.
* 🌐 `ToolDiscovery` — Suche nach Angriffspunkten und Eingabevektoren (`X-Api-Version`).
* 🔬 `ToolPayloadGenerator` — Synthese des JNDI-Signaturvektors.
* 🚀 `ToolProber` — Schwachstellenprüfung mittels Out-of-Band-Tracing.
* 🛡️ `ToolSemanticFuzzer` — Umgehung von Filter-Klassifikatoren (WAF-Evasion) mithilfe verschachtelter syntaktischer Mutationen.
* 🩹 `ToolRemediator` — Automatisches Patchen (Self-Healing).
* 📄 `ToolReporter` — Erstellung des Berichts gemäß ГОСТ Р 56939-2016.
* 📂 **`pkg/`** — Hilfspakete und Bibliotheken:
* 📡 **[oob/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/oob)** — Out-of-Band-Listener (LDAP und HTTP).
* ☕ **[jvm/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/jvm)** — Verwaltung des Lebenszyklus und Neustarts des lokalen Java-Ziels.
* 📂 **[deployments/](https://github.com/c00ln3t/log4shellauditor/blob/main/deployments)** — Konfigurationsdateien für die Bereitstellung (Docker, Compose).
* 📂 **[test/vulnerable-app/](https://github.com/c00ln3t/log4shellauditor/blob/main/test/vulnerable-app)** — Verwundbare Java-Spring-Boot-Testanwendung.
---
## 🎯 Mathematischer Apparat und Spezifikation des kognitiven Zyklus (Think-Act Loop)
Die Entscheidungsfindung des Agenten ist als **teilweise beobachtbarer Markov-Entscheidungsprozess (POMDP)** formalisiert, der durch das Tupel $\langle S, A, T, R, \Omega, O, \gamma \rangle$ beschrieben wird:
* $S$ — diskreter Raum verborgener Zustände der Zielumgebung (Portverfügbarkeit, Vorhandensein verwundbarer Parameter, WAF-Aktivität, Kompromittierungsstatus, Patch-Status, Vorhandensein eines Compliance-Berichts).
* $A$ — Aktionsraum der Effektoren (Aufruf der Werkzeuge: `port_scanner`, `discovery`, `payload_generator`, `prober`, `semantic_fuzzer`, `remediator`, `reporter`, `stop`).
* $\Omega$ — Beobachtungsraum (empfangene HTTP-Antworten, OOB-TCP-Callbacks, Dateisystem-Einträge).
* $O(o \mid s', a)$ — Beobachtungsfunktion, die die Wahrscheinlichkeit bestimmt, eine Antwort $o \in \Omega$ zu erhalten.