
Un agente Go autónomo y reflexivo para auditoría de seguridad de ciclo completo, evasión de WAF, verificación LDAP OOB, autocorrección (parcheo automático) e informes de cumplimiento para CVE-2021-44228 (Log4Shell).
Banco de demostración aislado de un agente ejecutor reflexivo autónomo (Go/Java)
Русский 🇷🇺 • English 🇬🇧 • 中文 🇨🇳 • Español 🇪🇸 • Deutsch 🇩🇪 • Italiano 🇮🇹 • العربية 🇸🇦
[!NOTE] AUTO AUDIT es un sistema de software que demuestra un ciclo cerrado 100% autónomo (Sense-Think-Act) de detección, verificación, explotación, corrección automática (Self-Healing / Auto-Remediation) y generación de informes de cumplimiento para la vulnerabilidad crítica Log4Shell (CVE-2021-44228 / БДУ ФСТЭК:2021-06103).
El banco de pruebas despliega una aplicación web local basada en Java Spring Boot, un LDAP TCP Callback Listener integrado y el núcleo cognitivo del agente Go, que toma decisiones en condiciones de observabilidad parcial del entorno externo (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
---
## 🛠️ Arquitectura técnica y componentes
La estructura del software del agente está diseñada siguiendo los principios de la arquitectura limpia (*Hexagonal Architecture / Ports and Adapters*), SOLID y TDD:
* 📂 **[cmd/agent/main.go](https://github.com/c00ln3t/log4shellauditor/blob/main/cmd/agent/main.go)** — Punto de entrada. Gestiona el ciclo de vida de los procesos en segundo plano y coordina el lanzamiento de la goroutine del agente.
* 📂 **`internal/`** — La lógica de negocio principal del bucle cognitivo:
* 🧠 **[agent/agent.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/agent/agent.go)** — Bucle cognitivo. Implementa el ciclo de control y la regla de decisión para la selección de estrategia `Think()`.
* 💾 **[core/model.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/model.go)** — Base de conocimiento segura para subprocesos (`KnowledgeBase` / LTM) basada en `sync.RWMutex`.
* 🔌 **[core/effector.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/effector.go)** — Interfaz `Tool` para los efectores.
* ⚙️ **[effectors/](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/effectors)** — Registro de efectores polimórficos (herramientas):
* 🔍 `ToolPortScanner` — Reconocimiento del perímetro de red.
* 🌐 `ToolDiscovery` — Búsqueda de puntos de articulación y vectores de entrada (`X-Api-Version`).
* 🔬 `ToolPayloadGenerator` — Síntesis del vector de firma JNDI.
* 🚀 `ToolProber` — Comprobación de la vulnerabilidad mediante trazado fuera de banda (Out-of-Band).
* 🛡️ `ToolSemanticFuzzer` — Evasión de clasificadores de filtrado (WAF Evasion) mediante mutaciones sintácticas anidadas.
* 🩹 `ToolRemediator` — Aplicación automática de parches (Self-Healing).
* 📄 `ToolReporter` — Generación del informe de acuerdo con GOST R 56939-2016.
* 📂 **`pkg/`** — Paquetes y bibliotecas auxiliares:
* 📡 **[oob/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/oob)** — Escuchadores fuera de banda (LDAP y HTTP).
* ☕ **[jvm/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/jvm)** — Gestión del ciclo de vida y del reinicio del objetivo Java local.
* 📂 **[deployments/](https://github.com/c00ln3t/log4shellauditor/blob/main/deployments)** — Archivos de configuración para el despliegue (Docker, Compose).
* 📂 **[test/vulnerable-app/](https://github.com/c00ln3t/log4shellauditor/blob/main/test/vulnerable-app)** — Aplicación de prueba vulnerable Java Spring Boot.
---
## 🎯 Aparato matemático y especificación del ciclo cognitivo (Think-Act Loop)
La toma de decisiones del agente se formaliza como un **proceso de decisión de Markov parcialmente observable (POMDP)**, descrito por la tupla $\langle S, A, T, R, \Omega, O, \gamma \rangle$:
* $S$ — espacio discreto de estados ocultos del entorno objetivo (disponibilidad del puerto, presencia de parámetros vulnerables, actividad del WAF, hecho de compromiso, estado del parcheo, presencia del informe de cumplimiento).
* $A$ — espacio de acciones de los efectores (invocación de herramientas: `port_scanner`, `discovery`, `payload_generator`, `prober`, `semantic_fuzzer`, `remediator`, `reporter`, `stop`).
* $\Omega$ — espacio de observaciones (respuestas HTTP recibidas, callbacks TCP OOB, registros del sistema de archivos).
* $O(o \mid s', a)$ — función de observación que determina la probabilidad de obtener una respuesta $o \in \Omega$.