
Caça determinística a ameaças em rede.
NDR com Zeek como entrada principal · local-first · uso autorizado.
Terminal · Interface · Arquitetura · Docker · Suporte · Roadmap · Changelog
English · Português
--- **Estado: esqueleto pré-alfa.** A estrutura do projeto, a documentação, o CI e os stubs que compilam existem. Os quatro pilares matemáticos de detecção, o parser real de logs Zeek, o armazenamento DuckDB e o motor de alertas estão **em desenvolvimento** e ainda não são distribuídos. Nada nesta página deve ser lido como promessa de que a detecção já funciona. O Acauã é um motor de caça a ameaças em rede construído em torno de evidência determinística, não de um modelo opaco. O objetivo é responder não só "isto parece suspeito", mas "estas entradas exatas, com estes valores intermediários, produziram esta pontuação". - **Determinístico por projeto:** reduções em ordem fixa, sentinelas documentados e um registro JSON de evidência para cada alerta futuro. - **Local-first:** o armazenamento analítico mora dentro do processo; nenhum banco externo e nenhuma telemetria por padrão. - **Zeek como entrada principal:** `dns.log`, `ssl.log`, `conn.log` e os logs de protocolo necessários para identidade e movimento lateral. NetFlow/IPFIX é um modo degradado documentado, nunca apresentado como equivalente. Suricata EVE JSON é uma entrada secundária opcional. - **Daemon e desktop:** `acaua serve` roda ingestão contínua, agendador, API e a UI embutida; o app Tauri abre um dataset local ou conversa com um `serve` remoto. - **Pesquisa fora do produto:** `research/` é um espaço Python isolado para validação científica e fixtures. Ele nunca é compilado, empacotado ou distribuído. ## O que existe hoje | Área | Estado | |---|---| | Workspace Rust e stubs da CLI | ✅ compila | | API Axum com rotas de health, status, alertas e análise | ✅ stub | | Shell desktop e UI vanilla | ✅ shell, sem screenshots reais | | Documentação e workflows de CI/release | ✅ | | Quatro pilares de detecção | 🚧 em desenvolvimento | | Parser de logs Zeek | 🚧 stub | | Armazenamento DuckDB/Parquet e TTL de 7 dias | 🚧 reservado, feature desligada por padrão | | Evidência e pontuação de alertas | 🚧 stub | | Releases publicadas | ❌ nenhuma ainda | ## Os quatro pilares Todos os quatro estão **em desenvolvimento**. O roadmap os mantém como trabalho futuro, não como recurso implementado. 1. **Beaconing:** periodicidade sobre timestamps de eventos com periodograma de Rayleigh/Schuster, e Lomb–Scargle generalizado só onde existe um `y` real. 2. **Sessões persistentes:** conexões longas que nunca produzem um `Δt` curto e ficariam invisíveis para um detector de beaconing. 3. **Anomalias de protocolo:** features determinísticas sobre logs de protocolo do Zeek, incluindo sinais de identidade e movimento lateral. 4. **Fusão de evidências:** combinação limitada e simétrica das pontuações dos pilares, com um registro de evidência reproduzível por alerta. As decisões de projeto por trás desses pilares, incluindo as seis correções ao blueprint original, estão em **[docs/pt-BR/arquitetura.md](docs/pt-BR/arquitetura.md)**. ## Uso autorizado O Acauã é software defensivo para redes próprias ou para redes que você tem autorização explícita para monitorar. Capturar ou analisar tráfego de terceiros sem permissão pode ser ilegal. O operador é responsável por escopo, privacidade e retenção. O daemon escuta em `127.0.0.1` por padrão. A implantação opcional com Docker é documentada para laboratório e pesquisa. ## Instalação Ainda não há releases publicadas. Compile do código: ```bash cargo build --release -p acaua-cli ./target/release/acaua --help ``` É preciso Rust 1.80+. O app desktop precisa das dependências de sistema do Tauri para a sua plataforma. ## Começando ```bash acaua doctor acaua serve --bind 127.0.0.1:8787 --data-dir .acaua acaua analyze /var/log/zeek/current --json acaua update ``` O `analyze` hoje valida o diretório e devolve um relatório de esqueleto; ele ainda não lê logs Zeek. O `serve` expõe a API stub e a UI embutida. O `update` usa o mesmo modelo de Gitea Releases + SHA-256 do Guará e do Sabiá. ## App desktop O app Tauri é um shell para a mesma UI usada pelo `serve`. Ele tem um painel dos quatro pilares, um campo de caminho de dataset, um painel de alertas e configurações de idioma e tema. Ele **ainda não** renderiza resultados de detecção. Veja **[docs/pt-BR/interface.md](docs/pt-BR/interface.md)**. ## Desenvolvimento ```bash cargo test --workspace cargo clippy --workspace --all-targets node scripts/check-ui-i18n.mjs scripts/check.sh ``` O backend DuckDB opcional é compilado com `--features duckdb`; ele fica desligado por padrão para o esqueleto continuar rápido de verificar. Veja **[CONTRIBUTING.pt-BR.md](CONTRIBUTING.pt-BR.md)** e **[docs/pt-BR/arquitetura.md](docs/pt-BR/arquitetura.md)**. ## Limites conhecidos - O motor de detecção, o parser Zeek e a camada de armazenamento são stubs. - Não há binário, instalador ou asset de release publicado. - A GUI não tem screenshots reais porque ainda não há nada para renderizar. - NetFlow/IPFIX é um modo degradado por projeto; ele não substitui os logs de protocolo do Zeek em todos os pilares. - O projeto mira Linux para o daemon e para o pipeline de release do CI. O app desktop segue a mesma matriz Tauri dos projetos irmãos. ## Para onde vai Resumo do [ROADMAP](ROADMAP.pt-BR.md): | | | |---|---| | **Feito** | Workspace, stubs de CLI/API, shell da GUI, documentação, workflows de CI/release | | **Próximo** | Implementação dos pilares 1 e 2 com fixtures determinísticas; parser Zeek real | | **Depois** | Armazenamento DuckDB/Parquet, TTL, pilares 3 e 4, fusão de evidências, visão de dataset no desktop | | **Fora de plano** | Pontuação por IA opaca, serviço de nuvem obrigatório, Python no runtime distribuído | ## Licença [MIT](LICENSE-MIT) ou [Apache-2.0](LICENSE-APACHE), à sua escolha.