Щоб цей підручник був стислим, ми не будемо глибоко занурюватися в “що” та “як” стеку ELK. Натомість ми швидко та прямо обговоримо, як використовувати його з Osquery. Ми також вважатимемо, що ви добре знаєте SQL - незважаючи на наданий посібник).
Що таке Осквері?
Розроблений Facebook, Osquery - це міжплатформений інструмент з відкритим кодом, який використовується для запитів та моніторингу систем із використанням запитів на основі SQL.
Osquery може взаємодіяти з системою та збирати детальну інформацію, таку як використання пам'яті, запущені процеси, завантажені модулі ядра, апаратні події, мережеві підключення тощо. Інструмент працює у всіх системах, включаючи Windows, Linux, Mac та BSD.
Використовуючи Osquery, ви можете створювати запити SQL, які відображають інформацію про систему, і використовувати цю інформацію для моніторингу та аналізу зібраних даних.
Як встановити Osquery на системи Debian
Встановити Osquery в системах Debian дуже просто, і хоча він недоступний в основних репозиторіях Debian, додавання цього є досить простим.
Давайте розглянемо перший метод, який ви можете використовувати для встановлення Osquery на Debian:
Першим і найпростішим кроком є завантаження програми встановлення deb з головної сторінки:
https: // pkg.osquery.io / deb / osquery_4.6.0-1.linux_amd64.деб
wget https: // pkg.osquery.io / deb / osquery_4.6.0-1.linux_amd64.дебsudo dpkg -i osquery_4.6.0-1.linux_amd64.деб
Ми рекомендуємо описаний вище метод, оскільки пакети deb мають дуже мало залежностей від більшості дистрибутивів Debian. Однак, якщо ви хочете додати до apt, використовуйте наступний метод.
Введіть наступні команди, щоб встановити Osquery зі сховищ.
експортувати OSQUERY_KEY = 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80Bsudo apt-key adv --keyserver hkp: // keyserver.ubuntu.com: 80 --recv-клавіші $ OSQUERY_KEY
sudo add-apt-repository 'deb [arch = amd64] https: // pkg.osquery.io / deb deb main '
sudo apt-get update
sudo apt-get install osquery - -
Як використовувати Osquery на Debian 10
Перш ніж заглибитися в створення автоматизованих сценаріїв та роботу зі стеком ELK, давайте обговоримо деякі прості способи використання Osquery в локальній системі.
Osquery має три основні компоненти, які ви можете використовувати для взаємодії з API.
Осквері: Перший компонент - це osqueryi, інтерактивний сеанс оболонки. Режим osqueryi повністю автономний і не вимагає взаємодії з демоном Osquery-Osquery. Використовуючи режим osqueryi, ви можете інтерактивно виконувати запити SQL та досліджувати поточну систему, подібну до оболонки SQL.
ПРИМІТКА: Osquery поважає користувацькі простори, і якщо запустити оболонку як звичайний користувацький режим, ви не матимете доступу до привілейованих таблиць.
Оскверид: Інший компонент - osqueryd, демон Osquery, який використовується для планування запитів та запису змін стану у фоновому режимі. Демон працює шляхом агрегування результатів запиту, виконаних протягом певного періоду часу, і генерує журнали, що використовуються для порівняння змін стану кожного запиту.
Osqueryctl: Третім компонентом є Osqueryctl, допоміжний скрипт, який використовується для тестування конфігурації розгортання. Ви також можете використовувати його як менеджер послуг Osquery, що дозволяє запускати та зупиняти послугу.
Звичайно Osquery - це не що інше, як простий інструмент для отримання інформації про систему. Однак, коли ви поєднуєте запити для створення добре відсортованих та зведених даних, це стає більше, ніж інструментом запитів.
Щоб розпочати, давайте почнемо з основ, щоб зрозуміти, як це працює:
Перший крок - отримати допомогу з командою:
sudo osqueryd --допомогаЦя команда відобразить довідку демона Osquery зі списком аргументів, які ви можете використовувати в оболонці.
Наступним і найпростішим способом взаємодії з Osquery є використання сеансу osqueryi. Наприклад, якщо ви виконаєте команду osqueryi без аргументу, ви потрапите в оболонку, подібну до SQL:
sudo osqueryiУсередині оболонки osqueryi ви можете виконувати команди та синтаксис SQL для вибору конкретної інформації про систему.
Щоб переглянути режим довідки всередині оболонки osqueryi, використовуйте команду:
osquery> .допомогтиВиконання цієї команди повинно відображати довідку щодо сеансу Osquery.
Оскільки Osquery є реляційним картографом баз даних для вашої системи, він містить список таблиць, за якими ви можете вибрати інформацію з використання SQLite Queries.
ПРИМІТКА: Запити osquery базуються на SQLite. Ви можете звернутися до його документації, якщо Osquery не надає достатньо інформації:
https: // www.sqlite.орг / індекс.html
Всередині оболонки osqueryi використовуйте команду:
osquery> .таблиціЦя команда перелічує доступні таблиці, що містять системну інформацію.
Звідти ви можете вибрати інформацію з доступних схем. Наприклад, перегляньте інформацію про вирішувачі DNS.
ВИБЕРІТЬ * З dns_resolvers;Залежно від схеми, яку ви запитуєте, ви отримаєте багато інформації, і, можливо, вам доведеться використовувати комбінацію запитів SQL, щоб зрозуміти це.
Дізнатися більше про таблиці та схеми Osquery можна з наступного ресурсу:
https: // osquery.io / schema / 4.6.0 /
Основне керівництво по SQL
Osquery працює, використовуючи синтаксичні запити SQLite для збору інформації про систему. Я не уявляю, чому Facebook обрав цей маршрут, але це працює.
Цей простий підручник обговорить основи SQLite, щоб пояснити, як ви можете використовувати його для взаємодії з Osquery.
ПРИМІТКА: Це жодним чином не повинно бути керівництвом для SQL або суміжних мов. Щоб отримати докладніші посібники для мови, зверніться до первинної документації.
Вибір конкретних записів із таблиці
Використовуючи базовий синтаксис SQLite, ми можемо вибрати конкретну інформацію з таблиці за допомогою оператора SELECT, як показано:
ВИБЕРІТЬ pid, ім'я, шлях ВІД процесів;Додавання функцій SQL
Osquery також підтримує функції SQL, дозволяючи виконувати різні дії з даними, зібраними з запитів.
Наприклад, функція підрахунку може дозволити вам переглянути кількість користувачів у вашій системі.
ВИБЕРІТЬ КОЛЬКУ (*) ВІД користувачів;Ця команда поверне загальну кількість користувачів у системі.
Здатність Osquery використовувати синтаксис SQL є величезною перевагою, яка може допомогти вам створити складні набори даних, які можуть дати вам більш глибокий аналіз системи. Це також створює міст, який розробники SQL, використовуючи такі двигуни, як PostgreSQL, MySQL та інші, можуть використовувати для легкої адаптації.
https: // osquery.readthedocs.io / en / stable / uvod / sql /
Веселий, побічний проект
Досліджуючи Osquery і експериментуючи з ним, ви виявите, що це всеосяжний і потужний інструмент, який полегшує створення проектів, спеціально налаштованих для моніторингу ваших систем.
Через обсяг цього підручника та щоб уникнути заплутаних початківців, ми не будемо вникати у складні проекти. Згадане, ось кілька інструментів, які ви можете створити за допомогою Osquery:
- Збирайте журнали за допомогою Logstash
- Створіть інформаційну панель системного монітора за допомогою Elasticsearch, Logstash та Kibana.
- Побудуйте флот Osquery за допомогою Kolide
https: // osquery.readthedocs.io / en / stable / deployment / log-aggregation /
https: // www.еластичний.co / guide / en / beats / filebeat / 7.10 / filebeat-module-osquery.html
https: // github.com / fleetdm / fleet
Висновок
У цьому посібнику ми розглянули основи Osquery, зокрема, як використовувати їх для збору системної інформації.
Цей посібник, хоч і не вичерпний, мав на меті надати вам швидке та зрозуміле ознайомлення з Osquery; аж ніяк не був довідковим посібником.
Не соромтеся використовувати інші ресурси, щоб глибше зрозуміти різні концепції, про які ми говорили в цьому посібнику.