
Um agente Go reflexivo autônomo para auditoria de segurança de ciclo completo, evasão de WAF, verificação LDAP OOB, autorremediação (aplicação automática de patches) e relatórios de conformidade para CVE-2021-44228 (Log4Shell).
Bancada de demonstração isolada de um agente executor autônomo reflexivo (Go/Java)
Русский 🇷🇺 • English 🇬🇧 • 中文 🇨🇳 • Español 🇪🇸 • Deutsch 🇩🇪 • Italiano 🇮🇹 • العربية 🇸🇦
[!NOTE] AUTO AUDIT é um complexo de software que demonstra um ciclo fechado 100% autônomo (Sense-Think-Act) de detecção, verificação, exploração, correção automática (Self-Healing / Auto-Remediation) e relatórios de conformidade para a vulnerabilidade crítica Log4Shell (CVE-2021-44228 / БДУ ФСТЭК:2021-06103).
A bancada implanta uma aplicação web local baseada em Java Spring Boot, um LDAP TCP Callback Listener integrado e o núcleo cognitivo de um agente Go, que toma decisões em condições de observabilidade parcial do ambiente 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
---
## 🛠️ Arquitetura técnica e componentes
A estrutura de software do agente é desenvolvida de acordo com os princípios da arquitetura limpa (*Hexagonal Architecture / Ports and Adapters*), SOLID e TDD:
* 📂 **[cmd/agent/main.go](https://github.com/c00ln3t/log4shellauditor/blob/main/cmd/agent/main.go)** — Ponto de entrada. Gerencia o ciclo de vida dos processos em segundo plano e coordena a inicialização da goroutine do agente.
* 📂 **`internal/`** — Lógica de negócios principal do circuito cognitivo:
* 🧠 **[agent/agent.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/agent/agent.go)** — Circuito cognitivo. Implementa o loop de controle e a regra de decisão para seleção da estratégia `Think()`.
* 💾 **[core/model.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/model.go)** — Base de conhecimento thread-safe (`KnowledgeBase` / LTM) baseada em `sync.RWMutex`.
* 🔌 **[core/effector.go](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/core/effector.go)** — Interface `Tool` para os efetores.
* ⚙️ **[effectors/](https://github.com/c00ln3t/log4shellauditor/blob/main/internal/effectors)** — Registro de efetores polimórficos (ferramentas):
* 🔍 `ToolPortScanner` — Reconhecimento do perímetro de rede.
* 🌐 `ToolDiscovery` — Descoberta de pontos de articulação e vetores de entrada (`X-Api-Version`).
* 🔬 `ToolPayloadGenerator` — Síntese do vetor de assinatura JNDI.
* 🚀 `ToolProber` — Verificação de vulnerabilidade por meio de rastreamento fora de banda (Out-of-Band).
* 🛡️ `ToolSemanticFuzzer` — Contorno de classificadores de filtragem (WAF Evasion) por meio de mutações sintáticas aninhadas.
* 🩹 `ToolRemediator` — Aplicação automática de patches (Self-Healing).
* 📄 `ToolReporter` — Geração de relatório de acordo com GOST R 56939-2016.
* 📂 **`pkg/`** — Pacotes e bibliotecas de serviço:
* 📡 **[oob/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/oob)** — Listeners fora de banda (LDAP e HTTP).
* ☕ **[jvm/](https://github.com/c00ln3t/log4shellauditor/blob/main/pkg/jvm)** — Gerenciamento do ciclo de vida e reinicialização do alvo Java local.
* 📂 **[deployments/](https://github.com/c00ln3t/log4shellauditor/blob/main/deployments)** — Arquivos de configuração para implantação (Docker, Compose).
* 📂 **[test/vulnerable-app/](https://github.com/c00ln3t/log4shellauditor/blob/main/test/vulnerable-app)** — Aplicativo de teste vulnerável Java Spring Boot.
---
## 🎯 Aparato matemático e especificação do ciclo cognitivo (Think-Act Loop)
A tomada de decisão do agente é formalizada como um **Processo de Decisão de Markov Parcialmente Observável (POMDP)**, descrito pela tupla $\langle S, A, T, R, \Omega, O, \gamma \rangle$:
* $S$ — espaço discreto de estados ocultos do ambiente alvo (disponibilidade da porta, presença de parâmetros vulneráveis, atividade do WAF, fato de comprometimento, status da aplicação de patches, presença do relatório de conformidade).
* $A$ — espaço de ações dos efetores (chamada de ferramentas: `port_scanner`, `discovery`, `payload_generator`, `prober`, `semantic_fuzzer`, `remediator`, `reporter`, `stop`).
* $\Omega$ — espaço de observações (respostas HTTP recebidas, callbacks TCP OOB, registros do sistema de arquivos).
* $O(o \mid s', a)$ — função de observação que determina a probabilidade de receber uma resposta $o \in \Omega$.