V centru Oracle Cloud Infrastructure (OCI) Threat Intelligence Center využíváme interní signály, jako jsou protokoly, telemetrie, metadata a další, ke generování informací a vytváření důležitých bezpečnostních přehledů. Tyto poznatky poskytujeme bezpečnostním vyšetřovatelům i obchodním a technickým lídrům společnosti Oracle, aby bylo možné podniknout kroky. OCI Threat Intelligence Center je bezpečnostní skupina OCI pro výzkum hrozeb, která sleduje všechny hrozby, které by mohly ovlivnit OCI a její zákazníky, a poskytuje o nich užitečné informace.
V tomto článku se nedostáváme do jemné granularity našich procesů pro shromažďování a analýzu informací. Spíše je to o neutuchajícím zaměření našeho týmu na řešení malých problémů, které se v měřítku stávají většími a problematičtějšími. Překvapivě mohou malé neefektivity ve zpracování protokolů vybuchnout a způsobit velké, neočekávané neefektivity v cloudovém měřítku. V tomto případě mluvíme o zdánlivě skromném dvojtečku „:“ v názvech souborů, které brání včasnému a efektivnímu vyšetřování hrozeb ve velkém měřítku.
Při čtení tohoto článku získáte přehled o tom, jak vyšetřovatelé společnosti Oracle využívají OCI DataFlows, pomíjivé řešení Apache Spark™ od společnosti OCI bez serveru, které dokáže číst/zapisovat data z/do úložiště OCI Object pro účelnou analýzu protokolů. Zatímco techniky používané při vyšetřování hrozeb jsou zajímavé, analýza protokolů je společným základem mnoha aplikací. Když někdo řekne „Digital Forensics and Incident Response“ (DFIR), pod krytem má na mysli „analýzu protokolu“. Tato malá dvojtečka „:“ může způsobit rozptýlení, když jste vyšetřovatel, který se jednoduše snaží dokončit vyšetřování. K vyřešení problému s tlustým střevem pomocí analýzy protokolů má nyní OCI řešení přizpůsobené metodě, o které blogují laboratoře Totango. Naším cílem je pomoci čtenářům zvýšit efektivitu jejich cloudu prostřednictvím efektivnější analýzy protokolů ve velkém měřítku.
Zmenšení velkých dat (big data)
Protokoly jsou často vyčerpáním z aplikací vytvořených pro vývojáře k ladění problémů se službami. I když jste si prošli problémy s jejich centralizací, mohou obsahovat jen kousky informací, které se bezprostředně týkají vašeho úkolu. Bezpečnost je pro společnosti prioritou, ale nemůžete uniknout finanční realitě, která nutí bezpečnostní týmy pracovat nákladově efektivním způsobem. Bezpečnostní lídři často čelí problému vyvažování rozpočtových omezení a zároveň nenarušují schopnosti vyšetřovatelů. Pokud vaše společnost již funguje v hyperškálovém měřítku, ale vaše týmy se potýkají s výzvou, jak udržet efektivní přehled o tom všem, zajistíte, aby toto měřítko fungovalo ve váš prospěch.
Vysokoúrovňový tok na obrázku 1 ukazuje, čeho se snažíme dosáhnout: vzít naši velkou datovou sadu nezpracovaných protokolů a zpracovat ji natolik, aby se snížila na menší objem, což z ní činí použitelnější podmnožinu relevantních informací. S exponenciálním růstem dat protokolů v posledním desetiletí jsme byli svědky většího tlaku na efektivitu ukládání a používání protokolů. Přijetí LogSlash společností FoxIO a CLP společnosti Uber demonstrují touhu odvětví po větší efektivitě snížením objemu protokolů a zvýšením použitelnosti a oba tyto přístupy doporučujeme vyzkoušet.
Metodou, kterou mnoho řešení používá, je agregace protokolů, jako je funkce „seskupit podle“ přítomná ve většině jazyků pro manipulaci s daty. Usnadňuje podrobnou kontrolu nad tím, jaké informace se ztratí na úkor celkového snížení objemu. I v našem vlastním bezpečnostním týmu hraje generování agregovaných dat roli při snižování latence a nákladů na zpracování. Tam, kde se teorie setkává s praxí, je často problémem. Příliš mnoho agregace a ztratíte věrnost. Příliš málo a přijdete o rozpočet.
Obrázek 1: Nezpracované protokoly jsou zpracovány a převedeny na agregovanou datovou sadu, která snižuje objem dat
Dále diskutujeme metodu vytvořenou OCI, která vyvažuje věrnost a náklady.
OCI Data Flow k záchraně
Tým Threat Intelligence Center zvolil Data Flow with Object Storage, protože to bylo nejúčinnější řešení, které škáluje a minimalizuje provozní režii. Data Flow provozuje Apache Spark™ pomíjivým způsobem, což znamená, že za něj platíte pouze tehdy, když běží. Komprimovaná data a nekomprimovanou zmenšenou datovou sadu můžete uchovávat v Object Storage, kde je to levné. Protože je to v Object Storage, můžete nakonfigurovat automatický životní cyklus nebo zásady uchovávání tak, aby vyhovovaly vašim potřebám. Můžete také uchovávat data v rámci regionu, ve kterém již existovala, což vám může pomoci dodržovat a řešit problémy s dodržováním předpisů a suverenitou dat.
Zatímco proces OCI, který popisujeme v tomto článku, můžete přizpůsobit jakémukoli typu protokolu, náš bezpečnostní tým pracuje s protokoly auditu OCI. Pokud si nejste vědomi toho, co jsou protokoly auditu OCI, můžete se dozvědět více o obsahu protokolů událostí auditu nebo o tom, jak je lze použít ke sledování vašich prostředků pronájmu OCI.
Ve výchozím nastavení jsou protokoly auditu OCI uloženy po dobu 365 dní, ale můžete změnit nastavení uchovávání. Oracle Service Connector Hub můžete použít k přesunutí protokolů do vámi zvoleného cíle, jako je OCI Object Storage. OCI vám také nabízí možnost hromadně exportovat protokoly, kde se přidávají do skupin ve vašem pronájmu.
V našem příkladu, jak je znázorněno na obrázku 2, začneme spuštěním aplikace OCI Data Flow v jedné oblasti s protokoly rozmístěnými do více různých nájemních vztahů ve více segmentech Object Storage. Oba sektory OCI Object Storage i aplikace OCI Data Flow jsou regionálními zdroji, což znamená, že datový tok nebo sektor Object Storage se stejným názvem v jiné oblasti OCI je odlišná entita.
Obrázek 2: Tři nájemní smlouvy OCI s více skupinami protokolů v Object Storage jsou zpracovávány pomocí OCI Data Flow.
Než se pustíme do procesu toku dat, proberme problém tlustého střeva, na který pravděpodobně během tohoto procesu narazíte.
Řešení the colon problem
Při práci s Apache Spark™ a řešeními cloud Object Storage se téměř určitě musíte vypořádat s dvojtečkami. Dvojtečky se často objevují ve formátech názvů souborů protokolu, konkrétně v časových razítkách, jako je HH:MM. Systém souborů Hadoop (HDFS), který Apache Spark™ používá, považuje dvojtečky za neplatný znak. Tato úvaha je v rozporu s OCI a dalšími systémy Object Storage, které rozpoznávají dvojtečky jen jako další znak. Tento problém může být náročný při práci s Apache Spark a byl to problém, na který lidé upozornili. Týmy Apache Spark™ a Hadoop o tom obdržely následující vstupenky:
- Spark nemůže načíst soubory s COLON(:) char, pokud není zadaná úplná cesta
- Ukládání objektů: podpora dvojtečky v cestě k objektu
- Cesta by měla podporovat tlusté střevo
- fs.Globber zalomí dvojtečku v souboru; nepoužívá zpracování cesty pro dvojtečky
- Cesta by měla zpracovat všechny znaky
Jak již bylo zmíněno, typickým řešením je vytvoření třídy přepisu souborového systému, jak je uvedeno v příkladu laboratoří Totango. Řešení jsme přenesli tak, aby fungovalo v kontextu OCI s dvojtečkami a zástupnými znaky pomocí třídy OCI ColonFileSystem. Ukázku tohoto přístupu v praxi můžete vidět v demo skriptu PySpark. Další podrobnosti o kódu naleznete v našem repozitáři Github pro tento blog otic-blog-colon-dataflows. Tým Oracle požádal o pomoc s implementací OCI Big Data, což je jedna z výhod práce v Oracle. Odborníci jsou často ochotni a schopni vám vyjít vstříc.
Toto řešení přepíše výchozí třídu souborového systému konektoru OCI HDFS, aby nyní akceptovalo zástupné znaky a dvojtečky. Vytvořený a zahrnutý v archive.zip, můžete na něj odkazovat v následujícím skriptu PySpark:
spark._jsc.hadoopConfiguration().set('fs.oci.impl', 'com.oracle.bmc.hdfs.ColonFilesystem')
Další možnosti řešení problémů s colon problems
Pokud jste četli předchozí část a možná si myslíte, že celá ta „závislost na třídě souborového systému dvojtečky“ je hodně práce, ale přesto chcete používat OCI DataFlows, vyhodnotili jsme některé alternativní možnosti:
- Požádejte výrobce protokolu, aby změnil formát názvu a odstranil dvojtečku u zdroje.
- Použijte operaci rozhraní API pro přejmenování úložiště objektů OCI: Skvělé, pokud máte oprávnění ke čtení a zápisu do bloku a počet objektů je malý.
- Pomocí operace rozhraní API pro kopírování objektů OCI Object Storage a úpravou názvu souboru odstraňte dvojtečku.
- Zkopírujte protokoly pomocí instance Compute a před opětovným nahráním do úložiště objektů OCI upravte název.
- Použijte jiné řešení, které zkopíruje a upraví název souboru a odstraní dvojtečku.
I když tyto možnosti zní jednoduše, nemusí být praktické pro různé problémy, jako jsou oprávnění, a některé se zhoršují s měřítkem. Provádění operací na milionech nebo miliardách objektů zabere spoustu nákladů na API, výpočty a úložiště.
Změna formátu názvu protokolu je jednoznačně nejlepším způsobem, jak negovat nutnost neustále provádět jakákoli náhradní řešení, ale není to vždy možnost a může mít vedlejší účinky na systémy, které využívají protokoly. Také to nemusí být možné, pokud neřídíte zdroj protokolů. I když provedete změnu ve formátování názvu protokolu, stále musíte změnit název dříve zapsaných objektů alespoň jednou. Proto tyto možnosti ve výrobě nedoporučujeme, jsou však dobrými možnostmi pro váš počáteční vývoj v malém měřítku, kde nezáleží na ceně/efektivitě.
Vytvoření aplikace OCI Data Flow
OCI Data Flow je pomíjivá služba Apache Spark™ bez serveru, která vám ušetří problémy s budováním a údržbou vlastního clusteru Apache Spark™. Může se škálovat podle vašich požadavků na výkon, snadno číst protokoly z jednoho segmentu Object Storage a výstupy výsledků zpět do jiného segmentu Object Storage. Pokud jste ještě nikdy nespouštěli úlohu OCI Data Flow, postupujte podle průvodce OCI Data Flow, který vám může pomoci nastavit všechny požadované zásady. Máme také několik vzorových skriptů toku dat, které vám pomohou.
Datové toky se skládají z aplikace a spuštěných entit. Aplikace je statická entita na vysoké úrovni, kde se provádí konfigurace, zatímco běhy jsou jednotlivá zadání úlohy pro danou aplikaci. Chcete-li vytvořit vlastní, přejděte do části Tok dat v konzole Oracle Cloud Console a výběrem možnosti Vytvořit aplikaci otevřete okno pro vytvoření. Máte různé možnosti spuštění toku dat, včetně dávkových úloh, streamování a relací. V našem příkladu spouštíme dávkovou úlohu, takže zaškrtávací políčko streamování můžete nechat nezaškrtnuté.
V konfiguraci prostředků pro váš datový tok můžete vybrat tvary ovladače a spouštěče pro datové toky OCI, které se liší v závislosti na vašem pronájmu. Další informace o limitech služeb naleznete v tématu Limity služeb. OCI podporuje použití různých typů tvarů, včetně x86, tvarů ARM a flexibilních tvarů, kde si můžete vybrat OCPU a úrovně paměti. Pokyny, jak optimalizovat velikost datového toku, naleznete v části Dimenzování aplikace toku dat.
Zatímco skripty Spark můžete psát v různých jazycích, jako je Scala a Java, my používáme verzi Python3, PySpark. Jako argumenty bere počáteční a koncové datum, které přechází do odeslání běhu datového toku. Můžete také povolit skriptu, aby zahrnoval všechna data v bucketu. Skript kombinuje více objektů do jednoho datového rámce Spark.
Aby tento skript fungoval, musíte také zabalit závislost přepsání třídy souborového systému OCI HDFS. OCI poskytuje obecný průvodce závislostmi na balení. Po zabalení jsou závislosti seskupeny do jednoho souboru archive.zip, který můžete nahrát do bloku Object Storage a cestu uvedenou v možnostech spark-submit nebo v textovém poli „Archive URI“ aplikace Data Flow zobrazené v obrázek 3.
Obrázek 3: Určení cesty k závislosti archive.zip
Směrem k celkovému řešení
Po spuštění aplikace Data Flow a získání agregovaných výsledků jsou možnosti neomezené. Nejen, že náš bezpečnostní tým sklidil výhody tohoto optimalizovaného řešení agregace, ale několik týmů napříč OCI jej využilo ke zjednodušení analýzy protokolů a ušetřilo náklady na zpracování a latenci. Chcete-li vytvořit plně nativní řešení OCI, Oracle nabízí řadu řešení, jako je funkce prohledávání protokolů OCI nebo vám umožňuje vybudovat datové jezero pomocí sady nástrojů pro vědu o datech. Jedním z řešení, které doporučujeme, je načtení výsledného výstupu přímo do instance Autonomous Database. Tuto úlohu můžete provést pomocí balíčku DBMS_CLOUD protože data jsou již v Object Storage. Další informace naleznete v tématu Procesy popsané v tématu Vytváření a správa dělených externích tabulek právě bylo jednoduché nebo Jednoduchý export-import pomocí DBMS_CLOUD a nástroje Data Load Tool v Data Studiu. Pro složitější případy použití, kdy chcete použít Autonomní databázi, doporučujeme použít OCI PLSQL SDK. Tato metoda vám umožňuje spouštět další běhy OCI Data Flow z databáze jako součást vašeho pracovního postupu zpracování dat.
Další výhodou použití Autonomous Database je snadné sestavení aplikace pro prezentaci vašich dat pomocí Oracle Application Express (APEX). APEX vám umožňuje vytvářet vlastní nástroje kolem vašich nyní omezených datových sad a rychle je dostat do rukou lidí, kteří je potřebují, i když nejsou obeznámeni s SQL. Použití APEX demokratizuje přístup k vašim datům, protože prostředí s nízkým kódem umožňuje členům týmu, kteří se nespecializují na vývoj uživatelského rozhraní, vytvářet webové aplikace. Obrázek 4 ukazuje dřívější architekturu dat rozprostřených mezi více nájemců a ukazuje, jak můžete na svém řešení stavět a usnadnit zákazníkům přístup k vašim datovým produktům.
Obrázek 4: End-to-end architektura datového potrubí využívající OCI Data Flow
Stojí za námahu
Procesy, kterých se tento příspěvek dotkl, vedly k mnoha úspěšným výsledkům bezpečnostních šetření společnosti Oracle a udržely krok s tempem a rozsahem cloudu. Výhody OCI Data Flow přesahují oblast zabezpečení, protože tyto metody můžete použít na jakýkoli typ analýzy dat pro jakýkoli účel. Zvažte následující klíčové výsledky:
- Pozorované snížení objemu o 99,997 % při zachování věrnosti, kterou jsme potřebovali pro vyšetřování, na kterém jsme pracovali.
- Úchvatná škála pro jednotlivé běhy OCI Data Flow. V jednom příkladu datový tok nabitý dostatečnými zdroji zpracoval více než 20 TB komprimovaných protokolů a vydal 15 GB agregovaných dat.
- I když to tento příspěvek nepokrývá, streamování a relace OCI Data Flow umožňují ještě větší flexibilitu, když chcete pracovat s daty blíže reálnému času, nikoli v dávkách.
- V některých případech zjišťujeme, že pomáhá odstranit hluk, který jinak zakrývá klíčové vodítko, aby bylo vyšetřování uzavřeno.
Zdroj: Oracle