Acaua is a collective SOC daemon consuming only Zeek log files, not a single-user tool needing local hardware like its siblings. Drop the Tauri desktop shell, installers and self-update entirely; the server and its web dashboard ship as a container, updated by pulling a new image tag. Link against the official prebuilt libduckdb instead of compiling it from source via the bundled feature, cutting image build time from 15+ minutes to about 3. Fix a real bug found along the way: as PID 1 in a container, the daemon ignored SIGTERM and was always killed after the stop timeout; it now shuts down gracefully. Also corrects the Pillar 1 beaconing score: the period estimate had a harmonic alias (a perfectly periodic 4h series resolved to 600s), and the old score formula flagged pure random traffic as suspicious (p95 = 0.839 on Poisson noise). The new formula was validated against 300 samples per scenario. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VAyr8d7HuAdUGB6aA5xmDD
2.9 KiB
Docker
English · Português
O Acauã é distribuído como uma imagem de container oficial:
git.lucasrguerra.dev.br/ciberfauna/acaua.
Tags de imagem disponíveis:
latest: Release estável mais recente.X.Y.Z/X.Y: Versões semânticas fixadas.edge: Gerada automaticamente a partir do branchmain.
O container executa como usuário de sistema não privilegiado (acaua, UID 10001),
com filesystem raiz somente leitura (read_only: true), todas as capabilities revogadas
(cap_drop: [ALL]), e endurecimento de segurança (no-new-privileges:true).
Implantação com Compose
A implantação recomendada para produção e laboratório utiliza Docker Compose:
cp .env.example .env # configure ZEEK_INTERFACE (apenas redes autorizadas)
docker compose pull && docker compose up -d
Para compilar e rodar localmente a partir do código:
docker compose up -d --build
A stack coordena dois serviços:
| Serviço | Imagem | Finalidade | Perfil de segurança |
|---|---|---|---|
zeek |
zeek/zeek:9.0.1 |
Captura de pacotes de rede e rotação horária de logs | Rede host, capabilities NET_RAW e NET_ADMIN |
acaua |
git.lucasrguerra.dev.br/ciberfauna/acaua |
Processamento analítico, API e dashboard web | Não privilegiado (UID 10001), rootfs read-only, sem capabilities |
Volumes e organização de dados
A stack utiliza volumes nomeados para isolamento limpo de permissões e propriedade:
zeek-logs: Volume compartilhado montado em/logsno serviço Zeek e montado como somente leitura em/data/zeek:rono serviço Acauã.acaua-data: Volume dedicado de leitura e escrita montado em/data/acauapara o armazenamento DuckDB, partições Parquet e arquivos de execução.
Para inspecionar ou extrair dados no host:
docker compose cp acaua:/data/acaua ./local-acaua-backup
Ou executar um container efêmero de inspeção:
docker run --rm -v acaua_acaua-data:/data:ro debian:trixie-slim ls -la /data
Atualização
Por rodar como um daemon de SOC de uso coletivo, atualizações são realizadas puxando a imagem verificada mais recente:
docker compose pull && docker compose up -d
O daemon em execução finaliza de forma limpa em resposta ao SIGTERM em tempo
sub-segundo, garantindo que gravações Parquet e transações DuckDB sejam concluídas
sem corrupção.
Notas de segurança
- O serviço
zeekrequer privilégios de captura de pacotes (NET_RAW,NET_ADMIN). Execute-o apenas em interfaces e redes que você tem autorização explícita para monitorar. - A publicação padrão do dashboard é restrita a loopback (
ACAUA_PUBLISH=127.0.0.1:8787). Não exponha o serviço em interfaces externas sem um proxy reverso com autenticação. - A imagem não possui telemetria. Tráfego de saída restringe-se a checagens de versão iniciadas pelo operador contra a API de Releases do Gitea.