Назад к обновлениям
New releaseAug 8, 2026

deadair v0.5.1

Находит правила обнаружения в вашем SIEM, которые работают вслепую

Поделиться

deadair - здоровье покрытия детектирований SIEM

CI Release Go 1.26 License: Apache-2.0

Открытый инструмент контроля здоровья SIEM-детектирований.
Находите включённые детектирования, которые «слепы», потому что их телеметрия отсутствует, устарела, опаздывает или несовместима со схемой.

Работает локально · Только чтение · Без агента · Без загрузки телеметрии

Прочитайте техническую статью · Упоминается в Detection Engineering Weekly

сканирование deadair одноразовой лаборатории Elastic, показывающее мёртвые и повреждённые детектирования

Реальное сканирование одноразовой лаборатории Elastic с намеренно отсутствующей, устаревшей, запаздывающей и неиспользуемой телеметрией. Воспроизведите его с помощью make record-scan-lab.

Зачем нужен deadair

Правило может быть включено, запланировано и работать без ошибок, в то время как данные, которые ему нужны, отсутствуют. deadair читает актуальный реестр правил, разрешает входные источники каждого правила, используя нативную семантику бэкенда, и проверяет конкретные источники за ними.

Он выявляет:

  • правила, чьи селекторы индексов, алиасов или потоков данных не разрешаются ни во что;
  • правила, у которых все соответствующие источники устарели или пусты;
  • правила, работающие с отсутствующими полями или со слепым окном задержки приёма;
  • здоровую телеметрию, которую не читает ни одно включённое детектирование.

В настоящее время deadair работает с Elastic Security и OpenSearch Security Analytics.

Быстрый старт

Скачайте бинарный файл для macOS, Linux или Windows из GitHub Releases или установите с помощью Go:

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

Подключите учётные данные SIEM с доступом только на чтение:

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

Коды выхода стабильны: 0 — всё здорово, 1 — есть находки, 2 — сканирование завершилось с ошибкой.

Как это работает

ЭтапЧто делает deadair
Инвентаризациячитает включённые детектирования и объявленные ими входные источники
Разрешениезапрашивает у Elastic или OpenSearch разрешение шаблонов индексов, алиасов, потоков данных, селекторов и удалённых источников
Измерениепроверяет количество документов, самое свежее событие, объём хранилища, сопоставления полей, историю схемы и задержку приёма
Отчётвыводит результаты в терминал, JSON, HTML, сводки по флотам и метрики Prometheus с доказательствами по каждому вердикту

deadair доказывает, присутствуют ли наблюдаемые телеметрические предусловия детектирования и здоровы ли они. Он не доказывает, что логика правила корректна или что имитация атаки приведёт к оповещению. Для этих уровней используйте его в паре со статической валидацией правил и сквозным тестированием детектирований.

Находки

НаходкаЗначениеПервая проверка
нет подходящего источникани один из входных источников правила не разрешается в видимый индекс или поток данныхизменения шаблонов, отсутствующие интеграции и область действия учётных данных
все источники устарели или пустыкаждый разрешённый источник сейчас непригоденпериодичность источника и путь приёма данных
отсутствующие поляобъявленные поля отсутствуют в сопоставлениях всех подходящих источниковизменения парсера, пакета и сопоставлений
слепое окно задержкиизмеренная задержка приёма превышает запас lookback правилаинтервал правила, lookback, переопределение временной метки и задержка пайплайна
деградация источникаисточник устарел, пуст, имеет низкий объём или отклонился от схемыистория источника и ожидаемое обслуживание
неиспользуемая телеметрияданные хранятся, но ни одно включённое локальное детектирование не ссылается на нихотключённые правила и намеренный сбор

Каждый вердикт ограничен областью видимости настроенных учётных данных. JSON-отчёты включают настроенные выражения, разрешённые источники, метод разрешения, статус оценки, метаданные бэкенда и доказательства возможностей. Подробные примеры и разбор см. в руководстве по использованию.

Подключение 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

Используйте документированные роли с минимальными привилегиями для Elastic или OpenSearch. Доверенный набор интеграционных тестов также доказывает, что попытки записи с использованием этих учётных данных отклоняются.

CI, флоты и мониторинг

# 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 изолирует правило-кандидат от несвязанного накопленного объёма проблем. diff работает с детерминированно обезличенными отчётами. Конфигурация флота ссылается на секреты через переменные окружения, а не хранит секретные значения.

шлюз правила-кандидата deadair с последующим сравнением отчётов

Шлюз правила-кандидата и сравнение отчётов на одноразовом стеке Elastic.

Продакшен-паттерны см. в поведении шлюза CI, развёртывании флотов и MSSP и примерах Prometheus.

Протестированные бэкенды

В настоящее время конвейер интеграционного тестирования проверяет следующие точные версии:

БэкендТочные версии в реальном CI
Elastic Security8.19.19, 9.4.4
OpenSearch Security Analytics2.19.6, 3.7.0

Другие версии могут работать, но не покрываются текущей матрицей CI.

Модель безопасности

  • Весь доступ к бэкендам — только на чтение; доверенные интеграционные тесты доказывают, что документированные учётные данные не могут выполнять запись.
  • Отчёты, HTML, файлы состояния и вывод флота на POSIX-системах записываются с правами 0600.
  • Учётные данные могут поступать из переменных окружения или файлов, что исключает секреты в аргументах процессов.
  • --redact заменяет имена тенантов, правил, источников, шаблонов и полей на устойчивые дайджесты.
  • Экспортёр по умолчанию привязывается к loopback.
  • deadair не отправляет данные на внешние серверы и не собирает телеметрию использования.

Относитесь к отчётам как к чувствительным артефактам SOC: они выявляют слепые детектирования, имена источников, пробелы в схемах и неиспользуемый сбор.

Документация

Участие в разработке

Приветствуются отчёты об ошибках, обезличенные фикстуры, кейсы корректности, документация и предложения по бэкендам. Начните с CONTRIBUTING.md и используйте шаблон RFC для бэкенда при работе над адаптерами.

Лицензия

Apache-2.0.

Категории