
Un agente Go riflessivo e autonomo per audit di sicurezza a ciclo completo, evasione WAF, verifica LDAP OOB, auto-rimedio (auto-patching) e reporting di conformità per CVE-2021-44228 (Log4Shell).
Banco di prova dimostrativo isolato di un agente esecutore autonomo e riflessivo (Go/Java)
Russo 🇷🇺 • Inglese 🇬🇧 • Cinese 🇨🇳 • Spagnolo 🇪🇸 • Tedesco 🇩🇪 • Italiano 🇮🇹 • Arabo 🇸🇦
[!NOTE] AUTO AUDIT è un complesso software che dimostra un ciclo chiuso 100% autonomo (Sense-Think-Act) di individuazione, verifica, sfruttamento, correzione automatica (Self-Healing / Auto-Remediation) e reportistica di conformità per la vulnerabilità critica Log4Shell (CVE-2021-44228 / БДУ ФСТЭК:2021-06103).
Il banco di prova distribuisce un'applicazione web locale basata su Java Spring Boot, un LDAP TCP Callback Listener integrato e il nucleo cognitivo dell'agente Go, che prende decisioni in condizioni di parziale osservabilità dell'ambiente esterno (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
---
## 🛠️ Architettura tecnica e componenti
La struttura software dell'agente è progettata secondo i principi dell'architettura pulita (*Hexagonal Architecture / Ports and Adapters*), SOLID e TDD:
* 📂 **[cmd/agent/main.go](https://github.com/c00ln3t/log4shellauditor/blob/main/cmd/agent/main.go)** — Punto di ingresso. Gestisce il ciclo di vita dei processi in background e coordina l'avvio della goroutine dell'agente.
* 📂 **`internal/`** — Logica di business principale del circuito cognitivo:
* 🧠 **[agent/agent.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/agent/agent.go)** — Circuito cognitivo. Implementa il ciclo di controllo e la regola decisionale per la selezione della strategia `Think()`.
* 💾 **[core/model.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/model.go)** — Base di conoscenza thread-safe (`KnowledgeBase` / LTM) basata su `sync.RWMutex`.
* 🔌 **[core/effector.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/effector.go)** — Interfaccia `Tool` per gli effector.
* ⚙️ **[effectors/](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/effectors)** — Registro degli effector polimorfi (strumenti):
* 🔍 `ToolPortScanner` — Ricognizione del perimetro di rete.
* 🌐 `ToolDiscovery` — Ricerca di punti di giunzione e vettori di input (`X-Api-Version`).
* 🔬 `ToolPayloadGenerator` — Sintesi del vettore di firma JNDI.
* 🚀 `ToolProber` — Verifica della vulnerabilità tramite tracciamento out-of-band (Out-of-Band).
* 🛡️ `ToolSemanticFuzzer` — Bypass dei classificatori di filtraggio (WAF Evasion) tramite mutazioni sintattiche annidate.
* 🩹 `ToolRemediator` — Patching automatico (Self-Healing).
* 📄 `ToolReporter` — Generazione del report in conformità a GOST R 56939-2016.
* 📂 **`pkg/`** — Pacchetti e librerie di supporto:
* 📡 **[oob/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/oob)** — Listener out-of-band (LDAP e HTTP).
* ☕ **[jvm/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/jvm)** — Gestione del ciclo di vita e del riavvio del target Java locale.
* 📂 **[deployments/](https://github.com/c00ln3t/log4shellauditor/blob/main/deployments)** — File di configurazione per il deployment (Docker, Compose).
* 📂 **[test/vulnerable-app/](https://github.com/c00ln3t/log4shellauditor/blob/main/test/vulnerable-app)** — Applicazione di test vulnerabile Java Spring Boot.
---
## 🎯 Apparato matematico e specifica del ciclo cognitivo (Think-Act Loop)
Il processo decisionale dell'agente è formalizzato come **processo decisionale di Markov parzialmente osservabile (POMDP)**, descritto dalla tupla $\langle S, A, T, R, \Omega, O, \gamma \rangle$:
* $S$ — spazio discreto degli stati nascosti dell'ambiente target (disponibilità della porta, presenza di parametri vulnerabili, attività del WAF, fatto di compromissione, stato del patching, presenza del report di conformità).
* $A$ — spazio delle azioni degli effector (invocazione degli strumenti: `port_scanner`, `discovery`, `payload_generator`, `prober`, `semantic_fuzzer`, `remediator`, `reporter`, `stop`).
* $\Omega$ — spazio delle osservazioni (risposte HTTP ricevute, callback TCP OOB, record del file system).
* $O(o \mid s', a)$ — funzione di osservazione che determina la probabilità di ricevere una risposta $o \in \Omega$.