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.