Voltar às atualizações
New releaseAug 8, 2026

deadair v0.5.1

Encontra as regras de deteção no seu SIEM que estão a funcionar às cegas.

Compartilhar

deadair - saúde da cobertura de detecção SIEM

CI Release Go 1.26 License: Apache-2.0

Saúde de detecção SIEM de código aberto.
Encontre detecções habilitadas que estão cegas porque sua telemetria está ausente, desatualizada, atrasada ou incompatível com o esquema.

Executa localmente · Somente leitura · Sem agente · Sem upload de telemetria

Leia o artigo técnico · Destaque no Detection Engineering Weekly

exame do deadair em um laboratório Elastic descartável mostrando detecções mortas e prejudicadas

Exame real de um laboratório Elastic descartável com telemetria deliberadamente ausente, desatualizada, atrasada e não utilizada. Reproduza-o com make record-scan-lab.

Por que deadair

Uma regra pode estar habilitada, agendada e sem erros enquanto os dados de que precisa desapareceram. O deadair lê o inventário ativo de regras, resolve as entradas de cada regra usando a semântica nativa do backend e verifica as fontes concretas por trás delas.

Ele detecta:

  • regras cujos seletores de índice, alias ou data stream não resolvem para nada;
  • regras cujas fontes correspondentes estão todas desatualizadas ou vazias;
  • regras executando com campos ausentes ou uma janela cega de atraso de ingestão;
  • telemetria saudável que nenhuma detecção habilitada lê.

O deadair atualmente funciona com Elastic Security e OpenSearch Security Analytics.

Início rápido

Baixe um binário para macOS, Linux ou Windows em GitHub Releases ou instale com Go:

go install github.com/alephnull-sh/deadair/cmd/deadair@latest

Conecte uma credencial SIEM somente leitura:

deadair setup elastic   # print the least-privilege setup
deadair check           # verify the credential can scan
deadair scan            # assess live rules and telemetry

Os códigos de saída são estáveis: 0 significa saudável, 1 significa achados e 2 significa que o exame falhou.

Como funciona

EtapaO que o deadair faz
Inventáriolê as detecções habilitadas e as entradas que elas declaram
Resoluçãopede ao Elastic ou OpenSearch para resolver padrões de índice, aliases, data streams, seletores e entradas remotas
Mediçãoverifica contagem de documentos, evento mais recente, armazenamento, mapeamentos de campos, histórico de esquema e atraso de ingestão
Relatórioemite saída em terminal, JSON, HTML, resumos de frota e métricas Prometheus com as evidências por trás de cada veredito

O deadair comprova se os pré-requisitos observáveis de telemetria de uma detecção estão presentes e saudáveis. Ele não comprova que a lógica da regra está correta ou que um ataque simulado produzirá um alerta. Combine-o com validação estática de regras e testes de detecção de ponta a ponta para essas camadas.

Achados

AchadoSignificadoPrimeira verificação
nenhuma fonte correspondentenenhuma das entradas da regra resolve para um índice ou data stream visívelalterações de padrão, integrações ausentes e escopo da credencial
todas as fontes desatualizadas ou vaziastoda fonte resolvida está inutilizável no momentocadência da fonte e o caminho de ingestão
campos ausentescampos declarados estão ausentes em todo mapeamento de fonte correspondentemudanças no parser, no pacote e no mapeamento
janela cega de atrasoo atraso de ingestão medido excede a margem de lookback da regraintervalo da regra, lookback, substituição de timestamp e atraso do pipeline
degradação da fonteuma fonte está desatualizada, vazia, com volume baixo ou com deriva de esquemahistórico da fonte e manutenção esperada
telemetria não utilizadaos dados estão sendo armazenados, mas nenhuma detecção local habilitada resolve para elesregras desabilitadas e coleta intencional

Cada veredito está limitado ao que a credencial configurada pode ver. Os relatórios JSON incluem as expressões configuradas, fontes resolvidas, método de resolução, status da avaliação, metadados do backend e evidências de capacidade. Consulte o guia de uso para exemplos práticos e triagem.

Conecte um SIEM

Elastic:

export DEADAIR_ES_URL=https://es.example.internal:9200
export DEADAIR_KIBANA_URL=https://kibana.example.internal:5601
export DEADAIR_API_KEY=<read-only-api-key>

deadair check
deadair scan --json-out report.json --html-out report.html

OpenSearch:

export DEADAIR_BACKEND=opensearch
export DEADAIR_OPENSEARCH_URL=https://opensearch.example.internal:9200
export DEADAIR_OPENSEARCH_USERNAME=deadair
export DEADAIR_OPENSEARCH_PASSWORD=<password>

deadair check
deadair scan

Use as funções de privilégio mínimo documentadas para Elastic ou OpenSearch. A suíte de integração confiável também comprova que tentativas de escrita feitas com essas credenciais são rejeitadas.

CI, frotas e monitoramento

# Gate a candidate rule against live source availability.
deadair scan --rule new-rule.json

# Fail only on new regressions between reports.
deadair diff yesterday.json today.json

# Scan multiple SIEM instances from one process.
deadair scan --fleet fleet.json

# Export cached scan results as Prometheus metrics.
deadair serve --interval 5m

scan --rule isola a regra candidata do backlog não relacionado. O diff funciona com relatórios redigidos deterministicamente. A configuração de frota referencia segredos por meio de variáveis de ambiente em vez de armazenar valores secretos.

gate de regra candidata do deadair seguido por um diff de relatório

Um gate de regra candidata e um diff de relatório contra uma stack Elastic descartável.

Consulte comportamento do gate de CI, implantação de frota e MSSP e os exemplos de Prometheus para padrões de produção.

Backends testados

O fluxo de trabalho de integração atualmente testa estas versões exatas:

BackendVersões exatas de CI ao vivo
Elastic Security8.19.19, 9.4.4
OpenSearch Security Analytics2.19.6, 3.7.0

Outras versões podem funcionar, mas não são cobertas pela matriz de CI atual.

Modelo de segurança

  • Todo o acesso ao backend é somente leitura; os testes de integração confiáveis comprovam que as credenciais documentadas não podem gravar.
  • Relatórios, HTML, arquivos de estado e saída de frota são gravados com 0600 em sistemas POSIX.
  • As credenciais podem vir de variáveis de ambiente ou arquivos, evitando segredos em argumentos de processos.
  • --redact substitui nomes de tenant, regra, fonte, padrão e campo por resumos (digests) estáveis.
  • O exportador escuta apenas em loopback por padrão.
  • O deadair não tem comportamento de phone-home nem telemetria de uso.

Trate os relatórios como artefatos confidenciais do SOC: eles identificam detecções cegas, nomes de fontes, lacunas de esquema e coleta não utilizada.

Documentação

Contribuindo

Relatos de bugs, fixtures sanitizadas, casos de correção, documentação e propostas de backend são bem-vindos. Comece por CONTRIBUTING.md e use o modelo de RFC de backend para trabalhos de adaptador.

Licença

Apache-2.0.

Categorias