
Продакшен-готовые запросы для обнаружения и реагирования в osquery
osquery-запросы для обнаружения угроз и реагирования на инциденты, содержащие более 250 готовых к использованию в продакшене запросов.

ODK (osquery-defense-kit) уникален тем, что запросы предназначены для использования в составе продакшн-пайплайна обнаружения и реагирования. Запросы обнаружения составлены так, чтобы возвращать ноль строк при обычном ожидаемом поведении, что позволяет настроить генерацию оповещений при появлении строк в результате.
На данный момент эти запросы преимущественно предназначены для выполнения на POSIX-платформах (Linux и macOS). Pull request'ы по улучшению поддержки других платформ всячески приветствуются.
Запустите make detect для обнаружения на текущий момент времени. Это позволит обнаружить меньше, чем продакшн-установка, поскольку не будет доступа к историческим событиям.
Загрузите выпущенный набор запросов (query pack) в удобное место и укажите эти файлы в секции packs вашего файла osquery.conf.
Запустите make collect. Это особенно полезно для анализа «до/после».
Запустите make packs. Для большего контроля вы можете напрямую вызвать osqtool, чтобы переопределить интервалы по умолчанию или исключить отдельные проверки.
Запустите make verify
detection/ — запросы для обнаружения угроз, настроенные на генерацию оповещений.policy/ — запросы для проверки политик безопасности, настроенные на генерацию оповещений.incident_response/ — сбор данных для помощи в реагировании на возможные угрозы. Настроены на периодический сбор улик.Запросы обнаружения дополнительно разделены по категориям тактик MITRE ATT&CK.
При выпуске запросы упаковываются в формат osquery query pack. Смотрите раздел «Локальная генерация наборов запросов» для получения информации о том, как создавать собственные наборы в любое время.
Вот частичный список запросов, которые сработали бы как оповещения на основе этих запросов:
execution/tiny-executable-events.sqlexecution/tiny-executable.sqlexecution/tiny-executable-events.sqlexecution/tiny-executable.sqlexecution/unexpected-shell-parents.sqlexecution/sketchy-fetchers.sqlexecution/sketchy-fetcher-events.sqlc2/unexpected-talkers-linux.sqlc2/exotic-command-events.sqlc2/exotic-cmdline.sqlexecution/unexpected-executable-permissions.sqlexecution/unexpected-executable-directory-linux.sqlexecution/unexpected-tmp-executables.sqlc2/exotic-command-events.sqlc2/exotic-cmdline.sqlinitial_access/unexpected-shell-parents.sqlevasion/missing-from-disk-linux.sqlprivesc/unexpected-setxid-process.sqlprivesc/unexpected-privilege-escalation.sqlprivesc/events/unexpected-privilege-escalation-events.sqlevasion/name_path_mismatch.sqlpersistence/unexpected-cron-entries.sqlexecution/unexpected-executable-directory-linux.sqlВот частичный список стадий, которые были бы обнаружены конкретными запросами:
Выполнение первоначального дроппера, обнаружено:
c2/unexpected-talkers-macos.sqlВыполнение второй стадии, обнаружено:
execution/unexpected-executable-directory-macos.sqlpersistence/unexpected-launch-daemon-macos.sqlexecution/unexpected-mounts.sqlОбход TCC, обнаружено:
evasion/unexpected-env-values.sqlВыполнение шпионского агента, обнаружено:
c2/unexpected-talkers-macos.sqlexecution/exotic-command-events.sqlexecution/unexpected-executable-directory-macos.sqlТребуется помощь! Мы поддерживаем любые новые запросы, если их можно легко дорабатывать для устранения ложных срабатываний.
Пользователи могут отправлять исключения для ложных срабатываний для популярных широко известных программных пакетов, но их могут попросить предоставить доказательства такого поведения.
Хотя изначально мы ориентировались на Linux и macOS, мы поддерживаем добавление запросов на любые платформы, поддерживаемые osquery.
В частности, нас спрашивали о поддержке Windows: у Chainguard нет компьютеров с Windows, но если у вас есть запросы для Windows, которые, по вашему мнению, будут полезны и соответствуют нашей философии, мы более чем готовы их принять!
Мы стремимся исключать реальные ложные срабатывания из наших запросов в detection.
Борьба с ложными срабатываниями — задача не из простых; приветствуются pull request'ы!
В совокупности запросы не должны потреблять более 2% времени настенных часов (wall clock) в течение суток на развёрнутой системе.
Интервалы выполнения в развёрнутой среде автоматически определяются на основе тегов, поддерживаемых osqtool, который мы используем для сборки наборов запросов.