Annak érdekében, hogy ez az oktatóanyag tömör legyen, nem merülünk el az ELK verem „mit” és „hogyan” mélyén. Ehelyett gyorsan és egyértelműen megvitatjuk, hogyan kell használni az Osquery-vel. Azt is feltételezzük, hogy Ön rendelkezik az SQL ismeretekkel - a mellékelt útmutató ellenére).
Mi az Osquery?
A Facebook által kifejlesztett Osquery egy többplatformos, nyílt forráskódú eszköz, amelyet SQL-alapú lekérdezések segítségével lekérdeznek és figyelhetnek a rendszerekre.
Az Osquery kölcsönhatásba léphet a rendszerrel, és részletes információkat gyűjthet, például memóriahasználatot, futó folyamatokat, betöltött kernelmodulokat, hardvereseményeket, hálózati kapcsolatokat stb. Az eszköz minden rendszeren fut, beleértve a Windows, Linux, Mac és BSD fájlokat.
Az Osquery használatával SQL-lekérdezéseket hozhat létre, amelyek információkat jelenítenek meg a rendszerről, és ezeket az információkat felhasználhatja az összegyűjtött adatok megfigyelésére és elemzésére.
Az Osquery telepítése a Debian rendszerekre
Az Osquery telepítése a Debian rendszerekre nagyon egyszerű, és bár ez nem érhető el a fő Debian repókban, hozzáadása meglehetősen egyszerű.
Nézzük meg az első módszert, amellyel telepítheti az Osquery-t a Debianra:
Az első és legegyszerűbb lépés a deb telepítő letöltése a főoldalról:
https: // pkg.reszkető.io / deb / osquery_4.6.0-1.linux_amd64.deb
wget https: // pkg.reszkető.io / deb / osquery_4.6.0-1.linux_amd64.debsudo dpkg -i osquery_4.6.0-1.linux_amd64.deb
A fenti módszert javasoljuk, mivel a deb csomagok nagyon kevés függőséggel rendelkeznek a legtöbb Debian disztribúciótól. Ha azonban hozzá akarsz adni az apt-hoz, használd a következő módszert.
Írja be a következő parancsokat az Osquery telepítéséhez a tárakból.
export OSQUERY_KEY = 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80Bsudo apt-key adv --keyserver hkp: // kulcsszerver.ubuntu.com: 80 --recv-keys $ OSQUERY_KEY
sudo add-apt-repository 'deb [arch = amd64] https: // pkg.reszkető.io / deb deb main '
sudo apt-get frissítés
sudo apt-get install osquery
Az Osquery használata a Debian 10-en
Mielőtt mélyen elmélyedne az automatizált szkriptek építésében és az ELK verem használatával foglalkozna, beszéljünk néhány egyszerű Osquery használatról a helyi rendszeren.
Az Osquery három fő összetevővel rendelkezik, amelyekkel interakcióba léphet az API-val.
Osquery: Az első komponens az osqueryi, egy interaktív shell munkamenet. Az osqueryi mód teljesen önálló, és nem igényel interakciót az Osquery-Osquery démonnal. Az osqueryi mód használatával interaktív módon végrehajthat SQL lekérdezéseket, és felfedezheti az aktuális rendszert, hasonlóan az SQL shellhez.
JEGYZET: Az Osquery tiszteletben tartja a felhasználói tereket, és ha a shellt normál felhasználói módként futtatja, akkor nem lesz hozzáférése a privilegizált táblákhoz.
Osqueryd: A másik komponens az osqueryd, az Osquery démon a lekérdezések ütemezésére és az állapotváltozások hátterében történő rögzítésére szolgál. A démon úgy működik, hogy összesíti az adott időkereten belül végrehajtott lekérdezési eredményeket, és naplókat generál, amelyek minden lekérdezés állapotváltozását összehasonlítják.
Osqueryctl: A harmadik komponens az Osqueryctl, egy segítő szkript, amelyet a telepítés konfigurációjának tesztelésére használnak. Használhatja Osquery szolgáltatáskezelőként is, amely lehetővé teszi a szolgáltatás elindítását és leállítását.
A dobozon kívül az Osquery nem más, mint egy egyszerű eszköz a rendszerrel kapcsolatos információk lekérdezésére. Ha azonban a lekérdezéseket jól szortírozott és összesített adatok készítéséhez kombinálja, az több lesz, mint egy lekérdező eszköz.
A továbbjutáshoz kezdjük az alapokkal, hogy megértsük a működését:
Az első lépés a segítség kérése a paranccsal:
sudo osqueryd --helpEz a parancs megjeleníti az Osquery démon súgóját, a héjban használható argumentumok listájával.
A következő és az Osquery-vel való kommunikáció legegyszerűbb módja az osqueryi munkamenet használata. Például, ha argumentum nélkül hajtja végre az osqueryi parancsot, akkor egy SQL-szerű héjba esik:
sudo osqueryiAz osqueryi shellben parancsokat és SQL szintaxist futtathat, hogy kiválassza a rendszerre vonatkozó információkat.
A súgó mód megtekintéséhez az osqueryi shellben használja a következő parancsot:
osquery> .SegítségA parancs végrehajtásának segítséget kell megjelenítenie az Osquery munkamenet kapcsán.
Mivel az Osquery egy relációs adatbázis-leképező a rendszeréhez, rendelkezik egy táblázatok listájával, amelyek segítségével információkat választhat ki az SQLite Queries használatával.
JEGYZET: Az Osquery lekérdezések SQLite-alapúak. Hivatkozhat a dokumentációjára, ha az Osquery nem nyújt elegendő információt:
https: // www.sqlite.org / index.html
Az osqueryi shellben használja a következő parancsot:
osquery> .táblázatokEz a parancs felsorolja a rendelkezésre álló rendszerinformációkat tartalmazó táblákat.
Innen kiválaszthatja az elérhető sémákból az információkat. Tekintse meg például a DNS-megoldókkal kapcsolatos információkat.
SELECT * FROM dns_resolvers;A lekérdezett sémától függően sok hajónyi információt kap, és ennek értelmezéséhez szükség lehet SQL-lekérdezések kombinációjára.
Az Osquery táblázatokról és sémákról a következő forrásból tudhat meg többet:
https: // osquery.io / schema / 4.6.0 /
Egy alapvető SQL útmutató
Az Osquery úgy működik, hogy SQLite szintaxis lekérdezésekkel gyűjt információkat a rendszerről. Fogalmam sincs, miért választotta a Facebook ezt az útvonalat, de működik.
Ez az egyszerű bemutató az SQLite alapjait tárgyalja, hogy elmagyarázza, hogyan használhatja az Osquery-vel való interakcióra.
JEGYZET: Ez semmiképpen nem jelent útmutatót az SQL-hez vagy a kapcsolódó nyelvekhez. További nyelvspecifikus útmutatásokat az elsődleges dokumentációban talál.
Konkrét bejegyzések kiválasztása egy táblázatból
Az alapvető SQLite szintaxis használatával kiválaszthatunk egy adott információt a táblázatból a SELECT utasítás segítségével, az ábra szerint:
SELECT pid, név, elérési út FROM folyamatokból;SQL függvények hozzáadása
Az Osquery támogatja az SQL funkciókat is, lehetővé téve a műveletek végrehajtását a lekérdezésekből összegyűjtött adatokkal.
Például a számlálás funkció lehetővé teszi, hogy megtekinthesse a rendszer felhasználói számát.
SELECT COUNT (*) FROM felhasználóktól;Ez a parancs visszaadja a rendszer összes felhasználójának számát.
Az Osquery képessége az SQL szintaxis használatára óriási előny, amely segíthet olyan összetett adatkészletek felépítésében, amelyek alaposabb elemzést nyújthatnak a rendszerről. Ez egy hidat is létrehoz, amelyet az olyan motorok, mint a PostgreSQL, a MySQL és mások használó SQL-fejlesztők könnyedén alkalmazkodhatnak.
https: // osquery.readthedocs.io / hu / stabil / bevezetés / sql /
Szórakoztató, mellékprojekt
Ha tovább vizsgálja az Osquery-t és kísérletezik vele, rájön, hogy ez egy átfogó és hatékony eszköz, amely megkönnyíti a projektek létrehozását, kifejezetten a rendszerei nyomon követésére.
A bemutató terjedelme miatt, és a kezdők megzavarásának elkerülése érdekében nem fogunk elmélyülni összetett projektekben. Említettem, hogy íme néhány eszköz, amelyeket az Osquery segítségével felépíthet:
- Gyűjtse össze a naplókat a Logstash segítségével
- Készítsen egy rendszerfigyelő irányítópultot az Elasticsearch, a Logstash és a Kibana használatával.
- Építsd az Osquery flottát a Kolide-szal
https: // osquery.readthedocs.io / hu / stabil / telepítés / log-aggregation /
https: // www.rugalmas.co / guide / hu / beats / filebeat / 7.10 / filebeat-module-osquery.html
https: // github.com / fleetdm / flotta
Következtetés
Ebben az oktatóanyagban megvizsgáltuk az Osquery alapjait, beleértve azt is, hogyan lehet használni a rendszerinformációk gyűjtésére.
Noha nem teljes körű, ennek az útmutatónak az a célja, hogy gyors és egyértelmű bevezetést nyújtson Önnek az Osquery-hez; korántsem volt referencia útmutató.
Nyugodtan használjon más erőforrásokat, hogy jobban megismerje a jelen oktatóanyagban tárgyalt különböző fogalmakat.