Aby ten samouczek był zwięzły, nie będziemy zagłębiać się w „co” i „jak” stosu ELK. Zamiast tego szybko i prosto omówimy, jak go używać z Osquery. Założymy również, że masz praktyczną wiedzę na temat SQL (niezależnie od dostarczonego przewodnika).
Co to jest Osquery?
Opracowany przez Facebooka Osquery to wieloplatformowe narzędzie typu open source służące do wysyłania zapytań i monitorowania systemów za pomocą zapytań opartych na SQL.
Osquery może wchodzić w interakcje z systemem i zbierać szczegółowe informacje, takie jak wykorzystanie pamięci, uruchomione procesy, załadowane moduły jądra, zdarzenia sprzętowe, połączenia sieciowe itp. Narzędzie działa na wszystkich systemach, w tym Windows, Linux, Mac i BSD.
Za pomocą Osquery możesz tworzyć zapytania SQL, które wyświetlają informacje o systemie i wykorzystują te informacje do monitorowania i analizowania zebranych danych.
Jak zainstalować Osquery na systemach Debiana?
Instalacja Osquery na systemach Debiana jest bardzo łatwa i chociaż nie jest dostępna w głównych repozytoriach Debiana, dodanie go jest dość proste.
Spójrzmy na pierwszą metodę, której możesz użyć do zainstalowania Osquery na Debianie:
Pierwszym i najprostszym krokiem jest pobranie instalatora deb ze strony głównej:
https://pkg.osquery.io/deb/osquery_4.6.0-1.linux_amd64.deb
wget https://pkg.osquery.io/deb/osquery_4.6.0-1.linux_amd64.debsudo dpkg -i osquery_4.6.0-1.linux_amd64.deb
Zalecamy powyższą metodę, ponieważ pakiety deb mają bardzo mało zależności od większości dystrybucji Debiana. Jeśli jednak chcesz dodać do apt, użyj następnej metody.
Wpisz następujące polecenia, aby zainstalować Osquery z repozytoriów.
eksport OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80Bsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $OSQUERY_KEY
sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb główny”
aktualizacja sudo apt-get
sudo apt-get install osquery
Jak używać Osquery w Debianie 10
Zanim zagłębimy się w tworzenie automatycznych skryptów i pracę ze stosem ELK, omówmy kilka prostych zastosowań Osquery w systemie lokalnym.
Osquery ma trzy główne komponenty, których możesz użyć do interakcji z API.
Osquery: Pierwszym komponentem jest osqueryi, interaktywna sesja powłoki. Tryb osqueryi jest całkowicie samodzielny i nie wymaga interakcji z demonem Osquery-Osquery. Korzystając z trybu osqueryi, możesz interaktywnie wykonywać zapytania SQL i eksplorować aktualny system podobnie do powłoki SQL.
UWAGA: Osquery szanuje przestrzenie użytkownika, a jeśli uruchomisz powłokę w zwykłym trybie użytkownika, nie będziesz mieć dostępu do uprzywilejowanych tabel.
Osqueryd: Drugim komponentem jest osqueryd, demon Osquery używany do planowania zapytań i rejestrowania zmian stanu w tle. Demon działa poprzez agregowanie wyników zapytań wykonanych w określonym przedziale czasu i generuje logi używane do porównania zmian stanu każdego zapytania.
Osqueryctl: Trzecim komponentem jest Osqueryctl, skrypt pomocniczy używany do testowania konfiguracji wdrożenia. Możesz go również używać jako menedżera usług Osquery, co pozwala na uruchamianie i zatrzymywanie usługi.
Po wyjęciu z pudełka Osquery to nic innego jak proste narzędzie do wyszukiwania informacji o systemie. Jednak gdy połączysz zapytania, aby zbudować dobrze posortowane i zagregowane dane, staje się to czymś więcej niż narzędziem do wysyłania zapytań.
Aby zacząć działać, zacznijmy od podstaw, aby zrozumieć, jak to działa:
Pierwszym krokiem jest uzyskanie pomocy z poleceniem:
sudo osqueryd --pomocTo polecenie wyświetli pomoc dla demona Osquery, z listą argumentów, których możesz użyć w powłoce.
Następnym i najłatwiejszym sposobem interakcji z Osquery jest użycie sesji osqueryi. Na przykład, jeśli wykonasz polecenie osqueryi bez argumentu, wpadniesz do powłoki podobnej do SQL:
sudo osqueryiWewnątrz powłoki osqueryi możesz wykonywać polecenia i składnię SQL, aby wybrać określone informacje o systemie.
Aby wyświetlić tryb pomocy w powłoce osqueryi, użyj polecenia:
osquery > .WsparcieWykonanie tego polecenia powinno wyświetlić pomoc dotyczącą sesji Osquery.
Ponieważ Osquery jest maperem relacyjnych baz danych dla twojego systemu, posiada listę tabel, których możesz użyć do wybrania informacji z zapytań SQLite.
UWAGA: Zapytania Osquery są oparte na SQLite. Możesz zapoznać się z jego dokumentacją, jeśli Osquery nie dostarczy wystarczających informacji:
https://www.sqlite.org/indeks.html
Wewnątrz powłoki osqueryi użyj polecenia:
osquery > .stołyTo polecenie wyświetla dostępne tabele zawierające informacje o systemie.
Stamtąd możesz wybrać informacje z dostępnych schematów. Na przykład przejrzyj informacje o resolwerach DNS.
WYBIERZ * Z dns_resolvers;W zależności od schematu, którego dotyczy zapytanie, otrzymasz mnóstwo informacji i może być konieczne użycie kombinacji zapytań SQL, aby to zrozumieć.
Więcej informacji na temat tabel i schematów Osquery można znaleźć w następującym zasobach:
https://osquery.io/schemat/4.6.0/
Podstawowy przewodnik po SQL
Osquery działa przy użyciu zapytań składni SQLite do zbierania informacji o systemie. Nie mam pojęcia, dlaczego Facebook wybrał tę trasę, ale działa.
Ten prosty samouczek omówi podstawy SQLite, aby wyjaśnić, w jaki sposób można go używać do interakcji z Osquery.
UWAGA: To w żaden sposób nie ma być przewodnikiem po SQL lub językach pokrewnych. Aby uzyskać więcej instrukcji dotyczących poszczególnych języków, zapoznaj się z podstawową dokumentacją.
Wybieranie określonych wpisów z tabeli
Używając podstawowej składni SQLite, możemy wybrać określone informacje z tabeli za pomocą instrukcji SELECT, jak pokazano:
SELECT pid, nazwa, ścieżka FROM procesów;Dodawanie funkcji SQL
Osquery obsługuje również funkcje SQL, umożliwiając wykonywanie różnych działań na danych zebranych z zapytań.
Na przykład funkcja liczenia może pozwolić ci zobaczyć liczbę użytkowników w twoim systemie.
SELECT COUNT(*) OD użytkowników;To polecenie zwróci całkowitą liczbę użytkowników w systemie.
Możliwość korzystania przez Osquery ze składni SQL jest ogromną zaletą, która może pomóc w tworzeniu złożonych zestawów danych, które mogą zapewnić bardziej dogłębną analizę systemu. Tworzy również pomost, który programiści SQL korzystający z silników takich jak PostgreSQL, MySQL i innych mogą wykorzystać do łatwej adaptacji.
https://osquery.przeczytaj dokumentację.io/pl/stabilny/wprowadzenie/sql/
Zabawny, poboczny projekt
Gdy będziesz bliżej poznawać Osquery i eksperymentować z nim, odkryjesz, że jest to wszechstronne i potężne narzędzie, które ułatwia tworzenie projektów specjalnie dostosowanych do monitorowania Twoich systemów.
Ze względu na zakres tego samouczka i aby uniknąć zmylenia początkujących, nie będziemy zagłębiać się w złożone projekty. Jak wspomniałem, oto kilka narzędzi, które możesz zbudować za pomocą Osquery:
- Zbieraj logi z Logstash
- Zbuduj pulpit nawigacyjny monitora systemu za pomocą Elasticsearch, Logstash i Kibana.
- Zbuduj flotę Osquery z Kolide
https://osquery.przeczytaj dokumentację.io/pl/stabilne/wdrażanie/agregacja-log/
https://www.elastyczny.co/guide/en/beats/filebeat/7.10/filebeat-moduł-osquery.html
https://github.com/fleetdm/flota
Wniosek
W tym samouczku przyjrzeliśmy się podstawom Osquery, w tym sposobom używania go do zbierania informacji o systemie.
Chociaż nie jest wyczerpujący, ten przewodnik ma na celu zapewnienie szybkiego i prostego wprowadzenia do Osquery; w żadnym wypadku nie był to przewodnik referencyjny.
Zachęcamy do korzystania z innych zasobów, aby lepiej zrozumieć różne koncepcje, które omówiliśmy w tym samouczku.