osquery

Defensive & Threat Intelligence v5.23.1 · 24.06.2026 активный

Превращает операционную систему в реляционную базу данных: любой аспект состояния машины (процессы, сетевые соединения, установленные пакеты, автозагрузка) запрашивается обычным SQL. Разработан в Meta, используется тысячами компаний для мониторинга парка машин и хантинга угроз в реальном времени.

v5.23.1
24.06.2026 current
Добавлен 27.07.2026 · Обновлён 27.07.2026 · Defensive & Threat Intelligence
Установка
# Debian/Ubuntu:
export OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $OSQUERY_KEY
sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
sudo apt update && sudo apt install osquery

osqueryi "SELECT * FROM processes WHERE name = 'sshd';"
переведено ИИ

osquery

Логотип osquery

osquery — это работающий на основе SQL инструментарий для инструментации, мониторинга и аналитики операционных систем.
Доступен для Linux, macOS и Windows.

Информация и ресурсы

Что такое osquery?

osquery представляет операционную систему как высокопроизводительную реляционную базу данных. Это позволяет вам писать запросы на SQL для исследования данных операционной системы. В osquery SQL-таблицы представляют абстрактные концепции, такие как запущенные процессы, загруженные модули ядра, открытые сетевые соединения, плагины браузеров, аппаратные события или хеши файлов.

SQL-таблицы реализуются через простой API плагинов и расширений. Уже существует множество таблиц, и создаются новые: https://osquery.io/schema. Чтобы лучше понять выразительность, которую дает вам osquery, рассмотрите следующие SQL-запросы:

Вывести список users:

SELECT * FROM users;

Проверить processes, у которых удален исполняемый файл:

SELECT * FROM processes WHERE on_disk = 0;

Получить имя процесса, порт и PID для процессов, слушающих на всех интерфейсах:

SELECT DISTINCT processes.name, listening_ports.port, processes.pid
  FROM listening_ports JOIN processes USING (pid)
  WHERE listening_ports.address = '0.0.0.0';

Найти каждый macOS LaunchDaemon, который запускает исполняемый файл и поддерживает его работающим:

SELECT name, program || program_arguments AS executable
  FROM launchd
  WHERE (run_at_load = 1 AND keep_alive = 1)
  AND (program != '' OR program_arguments != '');

Проверить наличие аномалий ARP с точки зрения хоста:

SELECT address, mac, COUNT(mac) AS mac_count
  FROM arp_cache GROUP BY mac
  HAVING count(mac) > 1;

Альтернативно, вы также можете использовать SQL-подзапрос для достижения того же результата:

SELECT address, mac, mac_count
  FROM
    (SELECT address, mac, COUNT(mac) AS mac_count FROM arp_cache GROUP BY mac)
  WHERE mac_count > 1;

Эти запросы могут:

  • выполняться по требованию для исследования состояния операционной системы с помощью оболочки osqueryi
  • выполняться через планировщик для мониторинга состояния операционной системы на наборе хостов
  • запускаться из пользовательских приложений с использованием Thrift API osquery

Загрузка и установка

Чтобы загрузить последние стабильные сборки, получить информацию о репозитории и инструкции по установке, посетите https://osquery.io/downloads.

Мы используем простую числовую схему версионирования X.Y.Z, где X — основная версия, Y — минорная, а Z — патч. Мы планируем минорные релизы примерно каждые два месяца. Эти релизы отслеживаются на нашей странице Вех. Патч-релиз используется, когда в минорном релизе обнаруживаются непредвиденные ошибки, и нам нужно быстро выпустить исправление. Редкий «ревизионный» релиз может быть использован, если нам нужно изменить конфигурации сборки.

Основные, минорные и патч-релизы помечаются тегами на GitHub, и их можно посмотреть на странице Релизы. Мы открываем новый выпуск Чек-лист релиза, когда готовим минорный релиз. Если вас интересует статус релиза, пожалуйста, найдите соответствующий выпуск чек-листа и обратите внимание, что выпуск будет помечен как закрытый, когда мы закончим чек-лист. Мы считаем релиз «находящимся в тестировании» в течение периода размещения новых загрузок на нашем сайте и добавления их в наши репозитории. Мы пометим релиз как «стабильный» на GitHub, когда будет проведено достаточно тестирования, обычно это занимает две недели.

Сборка из исходного кода

Мы поощряем сборку osquery из исходного кода! Ознакомьтесь с нашим руководством по сборке. Также посмотрите наше руководство по участию и присоединяйтесь к сообществу в Slack.

Менеджеры кластеров osquery

Существует множество менеджеров кластеров osquery. Проект osquery не поддерживает, не рекомендует и не тестирует их. Они предоставлены в качестве отправной точки.

Проект Лицензия
Fleet Open Core
Kolide Коммерческая
OSCTRL Открытый исходный код
Zentral Открытый исходный код

Лицензия

Внося свой вклад в osquery, вы соглашаетесь, что ваш вклад будет лицензирован в соответствии с файлом LICENSE.

Уязвимости

Мы отслеживаем объявления о безопасности в примечаниях к выпущенным версиям на GitHub. Мы также агрегируем их в SECURITY.md.

Узнайте больше

Документация osquery доступна онлайн. Документация для более старых версий также доступна по номеру версии, по ссылке.

Если вы хотите узнать больше об osquery, прочитайте статью-анонс для получения предыстории проекта и посетите руководство пользователя.

Обсуждение разработки и использования происходит в Slack osquery, получите приглашение здесь!

Комментарии
Войдите, чтобы оставить комментарий