Toto je čtvrtá část série” lov s Splunk: základy”.
pomocí metadat a tstats rychle vytvořit situační povědomí
takže chceš lovit, co??? No, moje mladá padwo, vydrž. Jak mi jednou řekl Splunk Jedi, musíte nejprve jít pomalu, abyste šli rychle. Co tím myslím? No, pokud se vrhnete do lovu hrozeb a začnete indiskriminačně vázat SPL, riskujete, že ve vašem vyšetřování vytvoříte mezery. Jaké mezery by to mohly být? Jak jednou řekl moudrý muž, Poznej svou síť. Ve skutečnosti—v tomto případě-znáte svou síť a hostitele. Pro efektivní lov je klíčové porozumět údajům, které pro své hostitele máte a nemáte. Bez těchto znalostí riskujete předpoklady, které vedou ke špatným rozhodnutím při lovu hrozeb.
dnes se s vámi podělím o svou metodiku týkající se počátečního shromažďování informací a toho, jak používám příkazy metadat a tstats k pochopení dat, která mám k dispozici, když začnu lovit hrozby.
Začněme tím, že se podíváme na metadata. Příkaz metadat je generující příkaz, což znamená, že se jedná o první příkaz ve vyhledávání. Pro ty, kteří nejsou plně v rychlosti na Splunk, existují určitá pole, která jsou zapsána v době indexu. Tato pole jsou _time, source (kde událost vznikla; může to být souborová cesta nebo hodnota protokolu/portu), sourcetype (typ dat stroje) a host (název hostitele nebo IP, která generovala událost). Tato pole metadat (podívejte se, co jsem tam udělal?) lze vyhledávat a vracet s hodnotami, které zahrnují poprvé, Naposledy a počítat pro určitou hodnotu.
zde je několik příkladů.
můj manažer mě pověřil, abych začal lovit na základě některých nedávno shromážděných ukazatelů. Moje první myšlenka je vidět, že mám k dispozici datové sady, které se týkají doby, ve které lovím. Toto je rychlé vyhledávání, které bych mohl spustit, abych vyjmenoval sourcetypes v Splunk za posledních sedm dní.
jak můžete vidět, v posledních sedmi dnech jsem 5,162 FireEye události. Když dělám malou epochu, určím, že data poprvé zasáhla můj indexer 12. května 2017 v 2: 31: 00 GMT a naposledy to bylo vidět na mém indexeru 20.května 2017 22:01:12 GMT. Na základě časového rozsahu mého vyhledávání—bylo to od 13. května 22:00 GMT do 20. května 22:38:15 GMT—mám vysokou míru důvěry, že moje data FireEye jsou poměrně aktuální, ale pokud se moje vyšetřování vrátí do 12. května, nemám data FireEye, se kterými bych mohl pracovat, což by mohlo ovlivnit způsob, jakým přistupuji k této činnosti, nebo snížit mou důvěru v určení, kdy bylo něco poprvé vidět v mé síti.
Nyní, když vím, jaké typy dat mám v Splunk, podívejme se, kteří hostitelé odesílají data-mám aktuální data pro všechny své hostitele? Možná chci izolovat hostitele, kteří píší do konkrétního indexu. V tomto případě chci vidět všechny hostitele, kteří mají data v indexu “os”, protože vím, že data v tomto indexu budou pro mě důležitá při lovu.
příkaz metadata nemá mnoho možností, ale můžete zúžit vyhledávání na konkrétní indexy, vyhledávací vrstevníky nebo skupiny serverů a dokonce i typy zdrojů (jako jsem to udělal výše). Jakmile máte výsledek nastaven, můžete ohýbat svaly SPL na výsledky, abyste získali další informace. Možná budete chtít zlepšit situační povědomí před lovem a zkontrolovat, zda existují konkrétní hostitelé,kteří v minulosti neposlali data do Splunk 24 hodin.
v tomto vyhledávání jsem použil příkaz metadata k získání seznamu hostitelů. Pomocí příkazů eval, search a fieldformat jsem byl schopen filtrovat hostitele, kteří se nepřihlásili déle než 24 hodin, změnit časové hodnoty na něco uživatelsky přívětivějšího, než co jsem ukázal v prvním příkladu, a poté třídit a výstup v zobrazení tabulky, které lze rychle spotřebovat.
pár závěrečných myšlenek na metadata. Vyžaduje, aby byla funkce get_metadata spojena s rolí, kterou má uživatel před tím, než ji lze použít. (Zábavný fakt: věděli jste, že pod kapotou skutečně spustíte příkaz metadat, když kliknete na tlačítko shrnutí dat na domovské stránce vyhledávání?)
a teď za něco úplně jiného… (ne, opravdu ne).
dalším mocným, ale méně známým příkazem v Splunk je tstats. Příkaz tstats—kromě toho, že je schopen přeskočit vysoké budovy v jediné vazbě (ok, možná ne) – může produkovat výsledky vyhledávání oslepující rychlostí. Podobně jako metadata je tstats generujícím příkazem a pracuje na indexovaných polích (hostitel, zdroj, sourcetype a _time) i na datových modelech. Miluji datové modely stejně jako další chlap, ale v tomto příspěvku není dostatek místa na to, abychom o nich mohli mluvit, tak je uložte na jindy.
mezitím chci zlepšit své již zavedené situační povědomí a odpovědět na zásadní otázku při zahájení lovu-k jakým informacím mám přístup a mám nějaká slepá místa? Možná chci rychle získat pohled na mé události DNS.
mohu rychle vygenerovat celkový počet událostí za posledních sedm dní, kdy je sourcetype stream: dns a data jsou uložena v hlavním indexu. V tomto vyhledávání jsou data rozdělena podle _time a hostitele v 1hodinových intervalech. Stejně jako metadata-jakmile provedu intial search – mohu použít SPL k formátování dat, jak uznám za vhodné, v tomto případě pomocí příkazu xyseries a poté na něj použít graf oblasti, aby vygeneroval graf událostí pocházejících z hostitele, kde shromažďuji DNS. Je důležité si uvědomit, že použití tstats tímto způsobem není optimální pro více než hrstku hostitelů. Pokud hledáte tabulkový výstup a počty, žádné starosti—to může být vysoce efektivní. Pokus o graf příliš mnoho hostitelů může být velmi zaneprázdněn, takže je pro analytika obtížné rychle spotřebovat.
s tímto jemným varováním vytvoříme vyhledávání, abychom rychle identifikovali hostitele, kteří zaznamenávají více či méně dat, než by se normálně očekávalo. Umístění hranic na data—i když pochází z velkého počtu hostitelů-lze snadno provést.
pro toto vyhledávání, dívám se na hostitele, kteří se přihlašují do indexu “os”, a chci se ohlédnout za posledních sedm dní při vyřezávání času ve 3hodinových intervalech, abych našel střední počet událostí podle hostitele. Medián je jen jedna statistická možnost, kterou mohu použít; percentil a průměr jsou také k dispozici, takže použijte to, co považujete za vhodné. Pak jsem se ohlédl za minulostí 3 hodiny pro stejné informace. Chcete-li zjistit procentuální rozdíl mezi mediánem a aktuálním počtem, rozdělili jsme se, abychom získali procentuální hodnotu a filtrovali výsledky +/-5%. Třídění a přejmenování polí usnadňuje spotřebu, protože nyní mám své odlehlé hodnoty, stejně jako vytváření grafu, který ukazuje medián a aktuální objemy událostí zmapované spolu s procentním rozdílem.