Torna agli aggiornamenti
New releaseAug 8, 2026

deadair v0.5.1

Trova le regole di rilevamento nel tuo SIEM che operano alla cieca.

Condividi

deadair - salute delle rilevazioni SIEM

CI Release Go 1.26 License: Apache-2.0

Salute delle rilevazioni SIEM open-source.
Trova le rilevazioni abilitate che sono cieche perché la loro telemetria è mancante, obsoleta, in ritardo o incompatibile con lo schema.

Esegue in locale · Sola lettura · Nessun agente · Nessun upload di telemetria

Leggi l'approfondimento tecnico · In evidenza su Detection Engineering Weekly

scansione deadair di un lab Elastic usa e getta che mostra rilevazioni morte e compromesse

Scansione reale di un lab Elastic usa e getta con telemetria volutamente mancante, obsoleta, in ritardo e inutilizzata. Riproducila con make record-scan-lab.

Perché deadair

Una regola può essere abilitata, pianificata e priva di errori mentre i dati di cui ha bisogno non esistono più. deadair legge l'inventario live delle regole, risolve gli input di ciascuna regola usando la semantica nativa del backend e verifica le sorgenti concrete che vi stanno dietro.

Individua:

  • regole i cui selettori di indice, alias o data stream non risolvono a nulla;
  • regole le cui sorgenti corrispondenti sono tutte obsolete o vuote;
  • regole che girano con campi mancanti o una finestra cieca da ritardo di ingestione;
  • telemetria sana che nessuna rilevazione abilitata legge.

deadair attualmente funziona con Elastic Security e OpenSearch Security Analytics.

Avvio rapido

Scarica un binario per macOS, Linux o Windows dalle GitHub Releases, oppure installa con Go:

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

Collega una credenziale SIEM di sola lettura:

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

I codici di uscita sono stabili: 0 indica stato sano, 1 indica segnalazioni e 2 indica che la scansione non è riuscita.

Come funziona

FaseCosa fa deadair
Inventariolegge le rilevazioni abilitate e gli input che dichiarano
Risoluzionechiede a Elastic o OpenSearch di risolvere pattern di indici, alias, data stream, selettori e input remoti
Misurazioneverifica il numero di documenti, l'evento più recente, lo storage, i mapping dei campi, lo storico dello schema e il ritardo di ingestione
Reportproduce output a terminale, JSON, HTML, riepiloghi delle flotte e metriche Prometheus con le evidenze alla base di ogni verdetto

deadair dimostra se i prerequisiti di telemetria osservabili di una rilevazione sono presenti e sani. Non dimostra che la logica della regola sia corretta o che un attacco simulato produca un alert. Per questi livelli, abbinalo alla validazione statica delle regole e ai test end-to-end delle rilevazioni.

Segnalazioni

SegnalazioneSignificatoPrimo controllo
nessuna sorgente corrispondentenessuno degli input della regola risolve a un indice o data stream visibilemodifiche ai pattern, integrazioni mancanti e ambito delle credenziali
tutte le sorgenti obsolete o vuoteogni sorgente risolta è al momento inutilizzabilecadenza delle sorgenti e percorso di ingestione
campi mancantii campi dichiarati sono assenti da ogni mapping delle sorgenti corrispondentimodifiche a parser, pacchetti e mapping
finestra cieca da ritardoil ritardo di ingestione misurato supera il margine di lookback della regolaintervallo della regola, lookback, override del timestamp e ritardo della pipeline
degrado della sorgenteuna sorgente è obsoleta, vuota, a basso volume o con schema in derivastorico della sorgente e manutenzione prevista
telemetria inutilizzatai dati vengono archiviati ma nessuna rilevazione locale abilitata vi risolveregole disabilitate e raccolta intenzionale

Ogni verdetto è limitato a ciò che la credenziale configurata può vedere. I report JSON includono le espressioni configurate, le sorgenti risolte, il metodo di risoluzione, lo stato della valutazione, i metadati del backend e le evidenze sulle capacità. Vedi la guida all'uso per esempi pratici e triage.

Connetti un 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

Usa i ruoli a privilegi minimi documentati per Elastic o OpenSearch. La suite di integrazione affidabile dimostra anche che i tentativi di scrittura effettuati con queste credenziali vengono respinti.

CI, flotte e monitoraggio

# 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 la regola candidata dal backlog non correlato. diff funziona con report oscurati in modo deterministico. La configurazione delle flotte fa riferimento ai segreti tramite variabili d'ambiente anziché memorizzarne i valori.

gate della regola candidata di deadair seguito da un diff dei report

Un gate per la regola candidata e un diff dei report su uno stack Elastic usa e getta.

Vedi comportamento del gate CI, distribuzione con flotte e MSSP e gli esempi Prometheus per pattern di produzione.

Backend testati

Il workflow di integrazione attualmente testa queste versioni esatte:

BackendVersioni esatte della CI live
Elastic Security8.19.19, 9.4.4
OpenSearch Security Analytics2.19.6, 3.7.0

Altre versioni potrebbero funzionare ma non sono coperte dalla matrice CI attuale.

Modello di sicurezza

  • Tutto l'accesso ai backend è in sola lettura; i test di integrazione affidabili dimostrano che le credenziali documentate non possono scrivere.
  • Report, HTML, file di stato e output delle flotte vengono scritti con permessi 0600 sui sistemi POSIX.
  • Le credenziali possono provenire da variabili d'ambiente o file, evitando segreti negli argomenti dei processi.
  • --redact sostituisce nomi di tenant, regola, sorgente, pattern e campi con digest stabili.
  • L'exporter si vincola al loopback per impostazione predefinita.
  • deadair non ha comportamenti di phone-home né telemetria d'uso.

Tratta i report come artefatti SOC sensibili: identificano rilevazioni cieche, nomi delle sorgenti, lacune nello schema e raccolte inutilizzate.

Documentazione

Contributi

Segnalazioni di bug, fixture anonimizzate, casi di correttezza, documentazione e proposte per i backend sono benvenuti. Inizia da CONTRIBUTING.md e usa il template RFC per i backend per il lavoro sugli adapter.

Licenza

Apache-2.0.

Categorie