Acauã: Network Detection & Threat Hunting, heuristic analysis over a rolling 7-day window using deterministic math (time series, graph theory, information theory) instead of opaque ML models. Third product in the Ciberfauna ecosystem, alongside Guará and Sabiá. Follows the ecosystem's established conventions: OpenWolf project memory, bilingual PT-BR/EN docs and UI, Gitea Actions CI/CD on the same self-hosted runners, Conventional Commits, SemVer, logo and productName handling, MIT OR Apache-2.0 licensing. Architecture decision (made with the project owner after a dedicated consultation, not the original blueprint's suggested stack): Rust throughout, not Python/FastAPI/React. Most of the statistics (Bowley skew, MADM, Shannon entropy, PCR, Z-score, novel-edge detection, pivot chains) reduces to SQL over an embedded DuckDB/Parquet store; only the spectral analysis and graph centrality need host-language code, and both have workable Rust crates. Documented in full, including six corrections to the original blueprint's math (Rayleigh/Schuster instead of a degenerate Lomb-Scargle over bare timestamps, an explicit sentinel for Bowley skew's Q3=Q1 case, Jensen-Shannon instead of unbounded KL, a dedicated long-connection detector, JA4 vs. JA4+ licensing caution, deterministic per-alert evidence), in docs/architecture.md. Skeleton only: crates/acaua-core has the four detection pillars, fusion, storage, zeek log parsing and the updater as typed stubs that compile and return a clear "skeleton" status rather than real detection logic — that is separate, future work. crates/acaua-cli has serve/analyze/doctor/update. apps/gui is a minimal Tauri shell. Also already includes the one-click desktop self-update mechanism shared with Guará and Sabiá (AppImage/.deb/Windows installer), even with no release published yet, for consistency across the ecosystem. No Gitea repository exists for this project yet; this is a local-only commit. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VAyr8d7HuAdUGB6aA5xmDD
58 lines
2.5 KiB
Markdown
58 lines
2.5 KiB
Markdown
# Roadmap
|
||
|
||
[English](ROADMAP.md) · **Português**
|
||
|
||
Este roadmap separa o que existe do que está planejado. Os quatro pilares **não
|
||
estão implementados** em `0.1.0`; eles são o próximo bloco de trabalho.
|
||
|
||
## Feito
|
||
|
||
- Workspace Rust com `acaua-core` e `acaua-cli`.
|
||
- Esqueleto da CLI, esqueleto da API Axum e UI vanilla embutida.
|
||
- Shell desktop Tauri com configurações de idioma e tema.
|
||
- Stubs dos quatro pilares, fusão de evidências, armazenamento, ingestão Zeek e
|
||
updater baseado em Gitea.
|
||
- Documentação em inglês/português, workflows de CI/release e `scripts/check.sh`.
|
||
- Testes de fumaça determinísticos e checagem bilíngue da UI.
|
||
|
||
## Próximo
|
||
|
||
1. **Pilar 1 — beaconing.** Implementar o periodograma de Rayleigh/Schuster
|
||
sobre timestamps de eventos, adicionar Lomb–Scargle generalizado só quando
|
||
existir um `y` real e entregar fixtures douradas com valores esperados fixos.
|
||
2. **Pilar 2 — sessões persistentes.** Detectar conexões longas que nunca
|
||
produzem um intervalo curto, com limiares explícitos e sem sobreposição com o
|
||
pilar 1.
|
||
3. **Parser Zeek real.** Ler `conn.log`, `dns.log`, `ssl.log` e logs de
|
||
protocolo com memória limitada, confinamento de caminho e ordem determinística.
|
||
4. **Registro de evidência.** Emitir um JSON por alerta com entradas, valores
|
||
intermediários, versão do código e hash do dataset.
|
||
|
||
## Depois
|
||
|
||
- Pilar 3 — anomalias determinísticas de protocolo, incluindo identidade e
|
||
movimento lateral.
|
||
- Pilar 4 — fusão limitada e simétrica, com pesos reproduzíveis.
|
||
- Armazenamento DuckDB/Parquet atrás da feature opcional `duckdb`, com TTL de
|
||
sete dias e comando de exportação.
|
||
- Visão de dataset no desktop, detalhe de alerta com evidência e execuções
|
||
agendadas do `serve`.
|
||
- NetFlow/IPFIX como modo degradado documentado e Suricata EVE JSON como entrada
|
||
secundária opcional.
|
||
- Metadados de release assinados, SBOM e builds reproduzíveis.
|
||
|
||
## Fora de plano
|
||
|
||
- Pontuação por IA opaca que não explica um alerta.
|
||
- Serviço de nuvem obrigatório ou pipeline de telemetria.
|
||
- Python no runtime distribuído.
|
||
- Tratar registros de fluxo como equivalentes a logs completos de protocolo Zeek.
|
||
- Auto-atualização automática do desktop.
|
||
|
||
## Versionamento
|
||
|
||
O projeto segue SemVer 2.0.0. `0.x` significa que a API e a saída de detecção
|
||
podem mudar entre versões menores. Uma versão `1.0.0` vai exigir formato de
|
||
evidência estável, limiares documentados e caminho de migração para dados
|
||
armazenados.
|