Aby bol tento tutoriál stručný, nebudeme sa ponoriť hlboko do „čo“ a „ako“ v zásobníku ELK. Namiesto toho budeme rýchlo a priamo diskutovať o tom, ako to používať s Osquery. Budeme tiež predpokladať, že máte pracovné znalosti jazyka SQL - bez ohľadu na poskytovanú príručku).
Čo je Osquery?
Osquery, vyvinutý spoločnosťou Facebook, je cross-platformový open-source nástroj používaný na dopytovanie a monitorovanie systémov pomocou dotazov založených na SQL.
Osquery môže interagovať so systémom a zhromažďovať podrobné informácie, ako napríklad využitie pamäte, spustené procesy, načítané moduly jadra, hardvérové udalosti, sieťové pripojenia atď. Tento nástroj pracuje na všetkých systémoch vrátane Windows, Linux, Mac a BSD.
Pomocou Osquery môžete vytvárať dotazy SQL, ktoré zobrazujú informácie o systéme, a pomocou týchto informácií monitorovať a analyzovať zhromaždené údaje.
Ako nainštalovať Osquery na systémy Debian
Inštalácia Osquery na systémy Debian je veľmi jednoduchá a aj keď nie je k dispozícii v hlavných úložiskách Debianu, je jej pridanie celkom jednoduché.
Pozrime sa na prvú metódu, ktorú môžete použiť na inštaláciu Osquery na Debian:
Prvým a najjednoduchším krokom je stiahnutie inštalátora deb z hlavnej stránky:
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
Vyššie uvedenú metódu odporúčame, pretože deb balíčky majú veľmi málo závislostí od väčšiny distribúcií Debianu. Ak však chcete pridať do apt, použite nasledujúcu metódu.
Zadaním nasledujúcich príkazov nainštalujete Osquery z úložísk.
exportovať 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 main '
sudo apt-get aktualizácia
sudo apt-get nainštalovať osquery
Ako používať Osquery v Debiane 10
Pred ponorením sa do hĺbky vytvárania automatizovaných skriptov a prácou so zásobníkom ELK si povieme niečo o jednoduchom použití Osquery v lokálnom systéme.
Osquery má tri hlavné komponenty, ktoré môžete použiť na interakciu s API.
Osquery: Prvým komponentom je osqueryi, interaktívna relácia shellu. Režim osqueryi je úplne samostatný a nevyžaduje interakciu s démonom Osquery-Osquery. Pomocou režimu osqueryi môžete interaktívne vykonávať dotazy SQL a skúmať súčasný systém podobne ako v prostredí SQL.
POZNÁMKA: Osquery rešpektuje užívateľské priestory a ak spustíte shell ako bežný užívateľský režim, nebudete mať prístup k privilegovaným tabuľkám.
Osqueryd: Ďalším komponentom je osqueryd, démon Osquery, ktorý sa používa na plánovanie dotazov a zaznamenávanie zmien stavu na pozadí. Démon pracuje na agregácii výsledkov dotazu vykonaných v konkrétnom časovom rámci a generuje protokoly používané na porovnanie zmien stavu každého dotazu.
Osqueryctl: Tretím komponentom je Osqueryctl, pomocný skript používaný na testovanie konfigurácie nasadenia. Môžete ho tiež použiť ako správcu služieb Osquery, ktorý vám umožní spustiť a zastaviť službu.
Osquery nie je po vybalení ničím iným ako jednoduchým nástrojom na zisťovanie informácií o systéme. Keď však skombinujete dotazy a vytvoríte dobre zoradené a agregované údaje, stane sa z nich viac ako dotazovací nástroj.
Aby sme sa dostali do pohybu, začnime základmi, aby sme pochopili, ako to funguje:
Prvým krokom je získať pomoc s príkazom:
sudo osqueryd --pomocTento príkaz zobrazí pomocníka démona Osquery so zoznamom argumentov, ktoré môžete použiť v shelli.
Ďalším a najjednoduchším spôsobom interakcie s Osquery je použitie relácie osqueryi. Napríklad, ak vykonáte príkaz osqueryi bez argumentu, dostanete sa do shellu podobného SQL:
sudo osqueryiVo vnútri osqueryi shell môžete vykonávať príkazy a syntax SQL, aby ste vybrali konkrétne informácie o systéme.
Ak chcete zobraziť režim pomoci vo vnútri plášťa osqueryi, použite príkaz:
osquery> .PomocVykonaním tohto príkazu by sa mala zobraziť pomoc ohľadom relácie Osquery.
Pretože Osquery je mapovač relačných databáz pre váš systém, obsahuje zoznam tabuliek, pomocou ktorých môžete vyberať informácie pomocou dotazov SQLite.
POZNÁMKA: Dotazy Osquery sú založené na SQLite. Ak Osquery neposkytuje dostatok informácií, môžete sa obrátiť na jeho dokumentáciu:
https: // www.sqlite.org / index.html
Vo vnútri plášťa osqueryi použite príkaz:
osquery> .stolyTento príkaz uvádza zoznam dostupných tabuliek obsahujúcich systémové informácie.
Odtiaľ si môžete vybrať informácie z dostupných schém. Napríklad si pozrite informácie o prekladačoch DNS.
SELECT * FROM dns_resolvers;V závislosti od schémy, na ktorú sa pýtate, získate množstvo informácií a na pochopenie bude pravdepodobne potrebné použiť kombináciu dotazov SQL.
Viac informácií o tabuľkách a schémach Osquery sa môžete dozvedieť z nasledujúceho zdroja:
https: // osquery.io / schéma / 4.6.0 /
Základný sprievodca SQL
Osquery funguje tak, že na zhromažďovanie informácií o systéme používa syntaxové dotazy SQLite. Netuším, prečo si Facebook vybral túto cestu, ale funguje to.
Tento jednoduchý tutoriál bude pojednávať o základoch SQLite, aby vysvetlil, ako ho môžete použiť na interakciu s Osquery.
POZNÁMKA: V žiadnom prípade to nemá byť príručkou pre SQL alebo súvisiace jazyky. Ďalšie jazykové príručky nájdete v primárnej dokumentácii.
Výber konkrétnych záznamov z tabuľky
Pomocou základnej syntaxe SQLite môžeme pomocou príkazu SELECT vybrať konkrétne informácie z tabuľky:
VYBERTE pid, meno, cestu FROM procesov;Pridávanie funkcií SQL
Osquery tiež podporuje funkcie SQL, čo vám umožňuje vykonávať rôzne akcie s údajmi zhromaždenými z dotazov.
Napríklad funkcia počítania vám umožňuje zobraziť počet používateľov vo vašom systéme.
VYBERTE POČET (*) OD používateľov;Tento príkaz vráti celkový počet používateľov v systéme.
Schopnosť spoločnosti Osquery používať syntax SQL je obrovskou výhodou, ktorá vám môže pomôcť vytvoriť zložité súbory údajov, ktoré vám môžu poskytnúť podrobnejšiu analýzu systému. Vytvára tiež most, ktorý môžu vývojári SQL používajúci motory ako PostgreSQL, MySQL a ďalšie ľahko prispôsobiť.
https: // osquery.readthedocs.io / en / stable / úvod / sql /
Zábavný, vedľajší projekt
Keď preskúmate Osquery ďalej a experimentujete s ním, zistíte, že ide o komplexný a výkonný nástroj, ktorý uľahčuje vytváranie projektov špeciálne vyladených na sledovanie vašich systémov.
Kvôli rozsahu tohto tutoriálu a aby sme predišli mätúcim začiatočníkom, nebudeme sa venovať komplexným projektom. Ako už bolo spomenuté, tu je niekoľko nástrojov, ktoré môžete pomocou Osquery vytvoriť:
- Zbierajte denníky pomocou aplikácie Logstash
- Zostavte riadiaci panel monitora systému pomocou nástrojov Elasticsearch, Logstash a Kibana.
- Vybudujte s Kolide flotilu Osquery
https: // osquery.readthedocs.io / en / stable / deployment / log-aggregation /
https: // www.elastické.co / guide / en / beats / filebeat / 7.10 / filebeat-module-osquery.html
https: // github.com / fleetdm / fleet
Záver
V tomto tutoriáli sme sa pozreli na základy Osquery vrátane toho, ako ho používať na zhromažďovanie systémových informácií.
Táto príručka, aj keď nie je úplná, má za cieľ poskytnúť vám rýchly a priamy úvod do Osquery; v žiadnom prípade to nebola referenčná príručka.
Neváhajte a využite ďalšie zdroje na hlbšie pochopenie rôznych konceptov, o ktorých sme hovorili v tomto tutoriále.