Komponenty a architektúra Molocha
- Autor : Tomáš Mokoš
Komponenty
Moloch sa skladá z troch komponentov:
- Elasticsearch – Je vyhľadávacia databáza, ktorá poháňa Moloch. Je založená na Apache. Žiadosti prijíma pomocou HTTP a výsledky vracia vo formáte JSON , čo je formát výmeny dát. Má automatické delenie dát do viacerých databáz pri viacerých uzloch (angl. database sharding). Je rýchla a škálovateľná.
- Capture – Je aplikácia naprogramovaná v jazyku C, ktorá monitoruje sieťovú prevádzku v reálnom čase, zapisuje PCAP súbory na disk. Alternatívne môže byť zavolaná z príkazového riadku pre manuálny import PCAP súborov na analýzu a archiváciu. Analyzuje rôzne protokoly 3. až 7. vrstvy, vytvára SPI dáta, ktoré posiela do clusteru Elasticsearchu z dôvodu indexovania.
- Viewer – Je aplikácia „node.js“ , čo je udalostne riadená Javascript platforma zo strany servera, založená na Google Chrome Javascripte, pričom má vlastnú HTTP a JSON komunikáciu. Beží na každom zariadení s Capture modulom a poskytuje webové rozhranie pre prehľadávanie, zobrazovanie a exportovanie PCAP súborov. GUI/API volania sú vykonávané pomocou URI, takže je možná integrácia so systémami pre správu bezpečnostných informácií a udalostí (SIEM), konzolami alebo príkazovým riadkom pre získanie PCAP súborov alebo spojení podľa voľby.
Architektúra
Všetky komponenty sa môžu nachádzať a pracovať na rovnakom uzle, avšak pri väčších dátových tokoch to nie je odporúčané. Či sa jedná o väčší dátový tok je možné zistiť pokiaľ dopytovanie trvá príliš dlho, vtedy je dobré prejsť na Multinode architektúru. Jednotlivé komponenty majú odlišné požiadavky. Capture potrebuje veľké množstvo diskového priestoru pre prijaté PCAP súbory. Elasticsearch naopak potrebuje veľké množstvo pamäte RAM pre indexovanie a rýchle vyhľadávanie. Avšak Viewer je z nich najmenší a nemá vysoké nároky, preto sa môže nachádzať kdekoľvek.
Moloch je možné jednoducho škálovať na viacero uzlov pre Capture a Elasticsearch komponenty. Jeden alebo viacero inštancií Capture môže bežať na jednom alebo viacerých uzloch, pričom budú odosielať dáta do databázy Elasticsearch. Taktiež jedna alebo viacero databáz Elasticsearchu môže bežať na jednom alebo viacerých uzloch pre zvýšenie kapacity pamäte RAM dostupnej pre indexovanie. Tento druh architektúry je preto najviac odporúčaný pre zachytávanie a indexovanie dátového toku v reálnom čase.
Odporúčame nasadiť Molocha za rozhranie so zrkadlenou prevádzkou, vnašom prípade Cisco SPAN port. Viac informácií o port mirroringu nájdete tu.
Zdroje
- CRZP Komplexný systém pre detekciu útokov a archiváciu dát – Moloch