Instalacja Osquery w Ubuntu
Osquery pakiety nie są dostępne w domyślnym repozytorium Ubuntu, więc przed instalacją musimy dodać Osquery apt repozytorium, uruchamiając następujące polecenie w terminalu.
[email chroniony]:~$ echo "deb [arch=amd64] https://pkg.osquery.io/deb deb główny" |koszulka sudo /etc/apt/sources.lista.d/osquery.lista
Teraz zaimportujemy klucz podpisu, uruchamiając następujące polecenie w terminalu.
[ochrona poczty e-mail]:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com--1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
Po zaimportowaniu klucza podpisu zaktualizuj system, uruchamiając następujące polecenie w terminalu.
[ochrona poczty e-mail]:~$ sudo apt-get updateTeraz zainstaluj Osquery uruchamiając następujące polecenie
[ochrona poczty e-mail]:~$ sudo apt-get install osqueryPo zainstalowaniu Osquery, teraz musimy sprawdzić, czy został poprawnie zainstalowany, uruchamiając następujące polecenie
[email chroniony]:~$ osqueryi --wersjaJeśli daje następujące dane wyjściowe, jest zainstalowany poprawnie
Korzystanie z Osquery
Teraz po instalacji jesteśmy gotowi do użycia Osquery. Uruchom następujące polecenie, aby przejść do interaktywnego wiersza poleceń
[email chroniony]:~$ osqueryi
Otrzymywać pomoc
Teraz możemy uruchamiać zapytania oparte na SQL, aby uzyskać dane z systemu operacyjnego. Możemy uzyskać pomoc na temat Osquery uruchamiając następujące polecenie w interaktywnej powłoce.
osquery> .Wsparcie
Zdobycie wszystkich tabel
Jak wcześniej wspomniano, Osquery udostępnia dane z systemu operacyjnego jako relacyjną bazę danych, dzięki czemu posiada wszystkie dane w postaci tabel. Możemy uzyskać wszystkie tabele, uruchamiając następujące polecenie w interaktywnej powłoce:
osquery> .stoły
Jak widzimy, uruchamiając powyższe polecenie, możemy uzyskać kilka tabel. Teraz możemy uzyskać dane z tych tabel, uruchamiając zapytania oparte na SQL.
Informacje o liście wszystkich użytkowników
Możemy zobaczyć wszystkie informacje o użytkownikach, uruchamiając następujące polecenie w interaktywnej powłoce
osquery> SELECT * FROM użytkowników;Powyższe polecenie wyświetli gid, uid, opis itp. wszystkich użytkowników
Możemy również wyodrębnić tylko istotne dane o użytkownikach, na przykład chcemy zobaczyć tylko użytkowników, a nie inne informacje o użytkownikach. Uruchom następujące polecenie w interaktywnej powłoce, aby uzyskać nazwy użytkowników
osquery> SELECT nazwa użytkownika FROM użytkowników;Powyższe polecenie pokaże wszystkich użytkowników w twoim systemie
Podobnie możemy uzyskać nazwy użytkowników wraz z katalogiem, w którym użytkownik istnieje, uruchamiając następujące polecenie.
osquery> SELECT nazwa użytkownika, katalog FROM użytkowników;
Podobnie możemy zapytać o tyle pól, ile chcemy, uruchamiając podobne polecenia.
Możemy również uzyskać wszystkie dane konkretnych użytkowników. Na przykład chcemy uzyskać wszystkie informacje o użytkowniku root. Możemy uzyskać wszystkie informacje o użytkowniku root, uruchamiając następujące polecenie.
osquery> SELECT * FROM users WHERE username="root";
Możemy również uzyskać konkretne dane z określonych pól (kolumn). Na przykład chcemy uzyskać identyfikator grupy i nazwę użytkownika root. Uruchom następujące polecenie, aby uzyskać te dane.
osquery> SELECT nazwa użytkownika, gid FROM użytkownicy WHERE nazwa użytkownika=”root”
W ten sposób możemy zapytać o wszystko, co chcemy z tabeli.
Lista wszystkich procesów
Możemy wyświetlić listę pierwszych pięciu procesów działających w ubuntu, uruchamiając następujące polecenie w interaktywnej powłoce:
osquery> SELECT * Z procesów LIMIT 5;
Ponieważ w systemie uruchomionych jest wiele procesów więc wyświetliliśmy tylko pięć procesów za pomocą słowa kluczowego LIMITLIMIT.
Możemy znaleźć identyfikator procesu określonego procesu, na przykład chcemy znaleźć identyfikator procesu mongodb, więc uruchomimy następujące polecenie w interaktywnej powłoce
osquery> SELECT pid FROM procesów WHERE name="mongod";
Znajdowanie wersji Ubuntu
Wersję naszego systemu Ubuntu możemy znaleźć, uruchamiając następujące polecenie w interaktywnej powłoce:
osquery> SELECT * FROM os_version;Pokaże nam wersję naszego systemu operacyjnego
Sprawdzanie interfejsów sieciowych i adresów IP
Możemy sprawdzić adres IP, maskę podsieci interfejsów sieciowych, uruchamiając następujące zapytanie w powłoce interaktywnej.
osquery> SELECT interface,address,mask FROM interface_addressesGDZIE interfejs NIE PODOBNY '%lo%';
Sprawdzanie zalogowanych użytkowników
Możemy również sprawdzić zalogowanych użytkowników w Twoim systemie, wysyłając zapytanie o dane z tabeli „logged_in_users”. Uruchom następujące polecenie, aby znaleźć zalogowanych użytkowników.
osquery> SELECT użytkownik,host,czas FROM zalogowanych_użytkowników GDZIE tty NIE PODOBNE '-';
Sprawdzanie pamięci systemowej
Możemy również sprawdzić całkowitą pamięć, wolną pamięć podręczną itp. uruchamiając w interaktywnej powłoce jakieś polecenie oparte na SQL. Aby sprawdzić całkowitą pamięć, uruchom następujące polecenie. To da nam całkowitą pamięć systemu w bajtach.
osquery> SELECT memory_total FROM memory_info;
Aby sprawdzić wolną pamięć systemu, uruchom następujące zapytanie w interaktywnej powłoce:
osquery> SELECT memory_free FROM memory_info;Uruchomienie powyższego polecenia da nam wolną pamięć dostępną w naszym systemie
Możemy również sprawdzić pamięć podręczną systemu za pomocą tabeli memory_info, uruchamiając następujące zapytanie.
osquery> wybierz buforowane z memory_info;
Lista grup
Możemy znaleźć wszystkie grupy w twoim systemie, uruchamiając następujące zapytanie w interaktywnej powłoce
osquery> SELECT * FROM grup;
Wyświetlanie portów nasłuchu
Możemy wyświetlić wszystkie porty nasłuchujące naszego systemu, uruchamiając następujące polecenie w interaktywnej powłoce:
osquery> WYBIERZ * Z nasłuchiwania_portów;
Możemy również sprawdzić, czy port nasłuchuje, uruchamiając następujące polecenie w interaktywnej powłoce:
osquery> SELECT port, adres FROM porty_nasłuchiwania WHERE port=27017;To da nam dane wyjściowe, jak pokazano na poniższym rysunku
Wniosek
Osquery to bardzo przydatne narzędzie programowe do wyszukiwania wszelkiego rodzaju informacji o twoim systemie. Jeśli znasz już zapytania oparte na SQL, jest to bardzo łatwe w użyciu lub jeśli nie znasz zapytań opartych na SQL, starałem się jak najlepiej pokazać kilka głównych zapytań, które są przydatne do wyszukiwania danych. Możesz znaleźć dowolny rodzaj danych z dowolnej tabeli, uruchamiając podobne zapytania.