Menu Zavrieť

Kategória: Moloch

Moloch/Arkime – Inštalácia systému

Inštalácia systému Moloch/Arkime

  • Autor : Miroslav Kohútik
  • Testovaná verzia : 5.0.0
  • Operačný systém : Ubuntu 22.04

Inštalácia Molocha nie je triviálna, preto sme pripravili tento návod ako nasadiť systém Moloch v cloudovom prostredí.

Príprava pred inštaláciou

Pred inštaláciou samotného Molocha musíme nainštalovať databázu Elasticsearch a vykonať nasledovné zmeny v konfigurácii operačného systému.

Moloch – Cyber Defense Monitoring Course Suite

Cyber Defence Monitoring Course Suite (CDMCS)

  • Autor : Tomáš Mokoš, Marek Brodec
  • Operačný systém : Ubuntu 16.04
  • Verzia Elasticsearch : 5.5.1
  • Verzia Suricata : 4.0.1

Tento článok je zastaraný, použite novšie návody uvedené nižšie.

Inštalácia Suricaty

Prepojenie Molocha/Arkime so Suricatou

Moloch/Arkime – Inštalácia

Graf

Elasticsearch

Elasticsearch je open source nástroj, ktorého primárnym účelom je efektívne a urýchlené fulltextové vyhľadávanie v množstve ním indexovaných dát. Jeho najčastejším použitím je prehľadávanie databázy dokumentov.

Stiahnutie Molochom aktuálne podporovanej verzie Elasticsearch.

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.deb 

Rozbalenie archívu spojené s inštaláciou

sudo dpkg -i elasticsearch-5.5.1.deb 

Suricata

Suricata je veľmi rýchly, robustný a neustále rozvíjajúci sa free open source detekčný nástroj. Je schopný jednak detekovať narušenie vniknutia v reálnom čase, vykonávať prevenciu vniknutí ale i monitorovať bezpečnosť siete a spracovávať pcap súbory offline.

Nastavenie premennej v ktorej bude uložené číslo nami inštalovanej verzie.

VER=4.0.1 

Stiahnutie a rozbalenie inštalačného balíka.

wget http://www.openinfosecfoundation.org/download/suricata-$VER.tar.gz 
tar -xvzf "suricata-$VER.tar.gz" 

Inštalácia a konfigurácia

./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var 
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var 

V tejto chvíli máme na výber jednu z nasledujúcich možností:

  • Vytvoriť a nastaviť len všetky nevyhnutné priečinky a konfiguračný súbor suricata.yaml.
./configure && make && make install-conf 
  • Automaticky stiahne a nastaví posledné dostupné pravidlá pre Suricatu, podľa ktorých sú vyhodnocované pakety za hrozbu.
./configure && make && make install-rules 
  • Je kombinácia oboch predchádzajúcich možností. Všetky potrebné súbory sú vytvorené, nakonfigurované a sú stiahnuté a aktivované posledné dostupné pravidla pre vyhodnocovanie hrozieb
./configure && make && make install-full 
  • Úprava konfiguračného súboru pre naše potreby. Nasledujúce riadky budú pridané na koniec súboru. Zahŕňajú nastavenie zapisovania do eve.json logov , definovanie rozhrania na ktorom bude pracovať suricata enp7s0f0 a cesta k predvoleným pravidlám /usr/local/etc/suricata/rules.
cat >> /usr/local/etc/suricata/suricata.yaml <<EOF 
stats: 
  enabled: no 
outputs: 
  - fast: 
      enabled: no 
  - eve-log: 
      enabled: yes 
      filename: eve.json 
      types: 
        - alert: 
            tagged-packets: no 
            xff: 
              enabled: no 
af-packet: 
  - interface: enp7s0f0 
    cluster-id: 98 
    cluster-type: cluster_flow 
    defrag: yes 
default-rule-path: /usr/local/etc/suricata/rules 
sensor-name: moloch-singlehost 
EOF 

GeoLite

Je free databáza obsahujúca databázu pridelených IP adries spolu s uvedením krajiny poprípade mesta organizácie, ktorej bola pridelená konkrétna IP adresa poprípade rozsah adries. Databáza IP adries je aktualizovaná vždy prvý utorok v mesiaci.

Stiahnutie archívov a rozbalenie databázy

echo "$(date) installing GeoLite2" 
[[ -f 'GeoLite2-City.mmdb.gz' ]] || wget -q  -4 http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz 
mkdir -p /usr/local/share/GeoIP 
gunzip GeoLite2-City.mmdb.gz --stdout > /usr/local/share/GeoIP/GeoLite2-City.mmdb 

Evebox

EveBox je webové rozhranie poskytujúce nástroje pre manažment alertov a udalostí generovaných IDS detekčným nástrojom Suricata. Tento nástroj úzko spolupracuje s Elasticsearchom. Jeho sekundárnou úlohou je prepojenie logov Suricaty s Elasticsearchom.

Stiahnutie inštalačného balíka najnovšej verzie Evebox.

wget -q -4 https://evebox.org/files/development/evebox-latest-amd64.deb 

Rozbalenie archívu spojené s inštaláciou

dpkg -i evebox-latest-amd64.deb 

Nastavenie URL adresy pre prístup k Elasticsearchu, premennej ELASTICSEARCH_INDEX, ktorá pri svojom zavolaní bude indexovať dáta do Elasticsearchu pod názvom indexov suricata a posledným parametrom je pridanie absolútnej cesty súboru z ktorého sú načítavané alerty a udalostí Suricaty.

cat >/usr/local/etc/default/evebox <<EOF 
ELASTICSEARCH_URL="-e http://localhost:9200" 
ELASTICSEARCH_INDEX="--index suricata" 
SURICATA_EVE="--end /var/log/suricata/eve.json" 
EOF 

Vytvorenie súboru služby vďaka, ktorému je možné proces spustenia Evebox Servera spustiť len zavolaním názvu tejto služby bez potreby dodefinovania súborov a ďalších nevyhnutných možností zakaždým.

cat > /lib/systemd/system/evebox.service <<EOF 
[Unit] 
Description=EveBox Server 
[Service] 
ExecStart=/usr/bin/evebox \$ELASTICSEARCH_URL \$ELASTICSEARCH_INDEX \$CONFIG \$EVEBOX_OPTS 
EnvironmentFile=-/usr/local/etc/default/evebox 
[Install] 
WantedBy=multi-user.target 
EOF 

Rovnaký zámer ako v predošlom kroku ale pre spustenie procesu Eveboxu, ktorý bude importovať alerty zo Suricata logov.

cat > /lib/systemd/system/evebox-esimport.service <<EOF 
[Unit] 
Description=EveBox-EsImport 
[Service] 
ExecStart=/usr/bin/evebox esimport \$ELASTICSEARCH_URL \$ELASTICSEARCH_INDEX \$SURICATA_EVE 
EnvironmentFile/usr/local/etc/default/evebox 
[Install] 
WantedBy=multi-user.target 
EOF 

Zaradenie služby konfigurovanej v predošlých súboroch medzi služby.

systemctl enable evebox-esimport 
systemctl enable evebox 

Príkazy pre spustenie, pozastavenie,reštart služieb prípadne zistenie služby.

systemctl start|restart|stop|status evebox-esimport 
systemctl start|restart|stop|status evebox 
Pri akejkoľvek zmene v konfiguračnom súbore služby je nutné reloadovať daemon a znovu zaradiť medzi služby. 
systemctl deamon-reload 
systemctl enable .... 

Moloch

Pridanie repozitárov a inštalácia JAVA.

add-apt-repository ppa:webupd8team/java 
apt-get update 
apt-get -y install oracle-java8-installer 

Inštalácia nevyhnutných balíčkov pre chod Molocha.

apt-get install wget curl libpcre3-dev uuid-dev libmagic-dev pkg-config g++ flex bison zlib1g-dev libffi-dev gettext libgeoip-dev make libjson-perl libbz2-dev libwww-perl libpng-dev xz-utils libffi-dev 

Stiahnutie inštalačného balíčka pre Ubuntu 16.04

wget https://files.molo.ch/builds/ubuntu-16.04/moloch_0.20.1-1_amd64.deb 

Rozbalenie balíčka spojené so samotnou inštaláciou

dpkg -i moloch_0.20.1-1_amd64.deb 

Spustenie konfigurácie. Keďže sme Elasticsearch inštalovali osobitne pri konfigurácií nepovolíme inštaláciu Elasticsearch Dema.

sudo ./data/moloch/bin/Configure 

Inštalácia pokračuje spustením Elasticsearchu a počiatočnej incializácie databázy

systemctl start elasticsearch.service 
/data/moloch/db/db.pl http://127.0.0.1:9200 init 
/data/moloch/db/db.pl http://127.0.0.1:9200 upgrade 

Pridanie používateľa pre prístup k webovému grafickému prostrediu.

/data/moloch/bin/moloch_add_user.sh admin user password –admin 

Vytvorenie konfiguračného súboru súčastí wiseService a nastavenie parametrov jednak samotnej služby a rovnako aj pre Suricatu(IP adresa pre prístup k Eveboxu, polia ktoré budú v Molochu zobrazvané, atď…)

cd /data/moloch/etc/ 
cp /data/moloch/wiseService/wiseService.ini.sample /data/moloch/etcwise.ini 
cat > /data/moloch/etc/wise.ini <<EOF 
[wiseService] 
port=8081 
[suricata] 
evBox=http://127.0.0.1:5636 
fields=severity;category;signature;flow_id;_id 
mustHaveTags=escalated 
mustNotHaveTags=archived 
EOF 

Vytvorenie symbolickej linky v priečinku wiseService odkazujúcej na konfiguračný súbor vytvorený v predošlom kroku.

cd /data/moloch/wiseService/ 
ln -s /data/moloch/etc/wise.ini wiseService.ini 

Spustenie musí prebiehať priamo z priečinku wiseService

node /data/moloch/bin/node wiseService.js -c wiseService.ini 

Kibana

Stiahnutie a rozbalenie archívu, je nutné vybrať verziu podporovanú pre inštalovanú verziu Elasticsearchu.

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.3-amd64.deb 
dpkg -i kibana-5.5.3-amd64.deb 

Spustenie služby

service kibana start 
service kibana status 

Konfiguračný súbor je umiestnenie

cat /etc/kibana/kibana.yml 

Pre prístup cez web je nevyhnutné povoliť komunikáciu na čísle portu Kibanu štandardne je to port 5601.

iptables -A INPUT -m udp -p udp --dport 5601 -j ACCEPT 
iptables -A INPUT -m tcp -p tcp --dport 5601 -j ACCEPT 

Pre náhľad do Elasticsearchu je možné využívať služby poskytované Kibanou. V prvom kroku je nutné nastaviť ktoré indexy chceme prehľadávať. Ako index pattern je nutné nastaviť pre molocha všetko čo začína „session-“ a pre suricatu „suricata-“. Tieto nastavenia je možné meniť na karte Management.

Kibana

Zdroje

CDMCS Cyber Defence Monitoring Course Suite

Prepojenie Moloch-Suricata

Prepojenie Moloch-Suricata

  • Autori : Tomáš Mokoš, Miroslav Kohútik

V tomto článku si ukážeme ako prepojiť nástroj na odchytávanie sieťovej prevádzky Moloch s nástrojom na detekciu narušenia bezpečnosti Suricata.

Návody na inštaláciu Molocha a Suricaty môžete nájsť tu a tu.

Nástroj Moloch archivuje sieťovú prevádzku, ku ktorej následne umožňuje rýchly a prehľadný prístup, avšak sám o sebe neposkytuje bezpečnostné opatrenia pre prevádzku, ktorú sleduje. Na druhej strane, IDS Suricata dozerá na sledovanú prevádzku a vytvára značky, ktoré informujú o bezpečnostných hrozbách, ale nedisponuje grafickým rozhraním na ich zobrazenie.

Od verzie 1.5 (vydanej 16.7.2018), Moloch podporuje plugin pre import alertov, ktoré generuje Suricata. Suricata spolu s Molochom musia byť spustené na tom istom zariadení. Dáta, ktoré vygenerovala Suricata sú prístupné vo webovom rozhraní Molocha v záložkách Sessions a SPI View. Všetky spojenia, ktoré obsahujú dáta Suricaty je možné nájsť dotazom suricata.signature == EXISTS! vo vyhľadávacom poli Molocha. Toto riešenie nezahŕňa žiadne špeciálne používateľské rozhranie pre Suricatu v Molochu, iba pridáva nové polia do dát vygenerovaných Molochom. Na pridanie pluginu je potrebné upraviť konfiguračný súbor Molocha, pridať v ňom suricata.so do zoznamu pluginov a špecifikovať cestu k súboru eve.json, do ktorého Suricata zapisuje alerty.

Do konfiguračného súboru Molocha, ktorý sa nachádza v /data/moloch/etc/config.ini pridáme nasledujúce riadky:

pluginsDir=/data/moloch/plugins
plugins= suricata.so;
suricataAlertFile=/var/log/suricata/eve.json
suricataExpireMinutes=60

Následne nám v záložkách sessions a SPI view pribudne položka Suricata.
Suricata sessions

Suricata SPI View

Zdroj:

Moloch – Komponenty a architektúra

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.

MolochS

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.

MolochM

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

Moloch upgrade

Moloch Upgrade

  • Autori: Tomáš Mokoš, Miroslav Kohútik

Upgrade Molocha na najnovšiu verziu nie je možný z akejkoľvek verzie. Pri niektorých starších verziách vyžaduje postupnú inštaláciu novších verzií v presnom poradí.

Upgrade na Moloch 1.1.0

Najstaršia verzia Molocha, ktorú sme mali nasadenú bola verzia 0.50.
Upgrade Molocha z verzie 0.50 na verziu 1.0 a vyššie vyžaduje, vzhľadom na veľké zmeny vo verzii 1.0, reindexovanie všetkých session dát. Reindexovanie sa deje na pozadí  po upgrade a preto trvá iba chvíľu, kým je server znova online.

Medzi veľké zmeny patria najmä:

  • Všetky názvy polí boli premenované a analyzované polia boli vymazané.
  • Kódy krajín boli skrátené z 3 znakov na 2 znaky.
  • Značky, ktoré boli pridané pred verziou 0.14.1 nebudú premigrované.
  • Plná podpora IPv6 pomocou Elasticsearch IP type.

Stiahneme balíček s verziou 1.1.0

Priradíme mu práva:

chmod +x moloch_1.1.0-1_amd64.deb

Vypneme všetky súčasti molocha:

service molochcapture stop
service molochviewer stop

Nainštalujeme Moloch v1.1.0:

dpkg -i moloch_1.1.0-1_amd64.deb

Na všetkých uzloch spustíme /data/moloch/bin/moloch_update_geo.sh , ktorý nám stiahne a aktualizuje nové mmdb style maxmind súbory.

Spustíme db.pl http://localhost:9200 upgrade , pre upgrade databázy.

Zapneme súčasti Molocha:

service molochcapture start
service molochviewer start

Pokiaľ vznikne problém a súčasti budú mať problém sa spustiť, je potrebné skontrolovať logy capture a viewera nachádzajúce sa v /data/moloch/logs/capture.log a /data/moloch/logs/viewer.log.

Upgrade na Moloch 1.5.3 a vyššie

Pre upgrade na Moloch 1.5 a vyššie musíme najprv upgradovať Moloch na verziu 1.0 alebo 1.1 (1.1.1 je odporúčaná). Taktiež, všetky reindexovacie operácie musia byť dokončené.

Vypneme capture a viewer:

service molochcapture stop
service molochviewer stop

Stiahneme balíček s verziou 1.5.3

Priradíme mu práva a rozbalíme ho:

chmod +x moloch_1.5.3-1_amd64.deb
dpkg -i moloch_1.5.3-1_amd64.deb

Pre clean inštaláciu spustíme:

/data/moloch/db.pl http://localhost:9200 init

Ak chceme len upgrade:

/data/moloch/db.pl http://localhost:9200 upgrade

Ak sme sa rozhodli pre clean inštaláciu, musíme znovu pridať používateľa, pretože ho init script vymaže:

/data/moloch/bin/moloch_add_user.sh admin "Admin User" THEPASSWORD --admin

Spustenie offline monitoringu priečinku:

exec /data/moloch/bin/moloch-capture -c /data/moloch/etc/config.ini --host moloch3 -m -R /data/moloch/monitor/

Spustenie viewera:

service molochviewer start

Pokiaľ majú súčasti problém sa spustiť je potrebné prezrieť logy:

/data/moloch/logs/capture.log
/data/moloch/logs/viewer.log

Zdroj:
Moloch FAQ – Upgrading Moloch

Moloch – Inštalácia systému

Inštalácia systému Moloch

  • Autori : Tomáš Mokoš, Marek Brodec
  • Testovaná verzia : 0.20.0
  • Operačný systém : Ubuntu 14.04.5

Poznámka: tento článok je zastaralý, pre aktuálnejšiu verziu navštívte Moloch v1.7.0– Inštalácia systému

Inštalácia systému nie je triviálna, preto sme pripravili nasledovný návod ako sfunkčniť systém v cloudovom prostredí. Keďže sa serveru prideľuje IP adresa dynamicky pomocou DHCP, nie je potrebné meniť konfiguračný súbor interface-ou.

Na začiatok je potrebné pridať repozitáre pre balíček Java a následne ho nainštalovať.

add-apt-repository ppa:webupd8team/java 
apt-get install oracle-java8-installer 

Nainštalujeme potrebné balíčky.

apt-get install wget curl libpcre3-dev uuid-dev libmagic-dev pkg-config g++ flex bison zlib1g-dev libffi-dev gettext libgeoip-dev make libjson-perl libbz2-dev libwww-perl libpng-dev xz-utils libffi-dev 

Je potrebné stiahnuť si Node.js pričom doporučujeme verziu 6.x vzhľadom na to, že verzia 8.x nie je v súčasnosti podporovaná.

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash – 
sudo apt-get install -y nodejs 

Stiahneme a nainštalujeme Elasticsearch.

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.3.deb
sudo dpkg -i elasticsearch-5.5.3.deb

Nakopírujeme si Moloch na náš server.

git clone https://github.com/aol/moloch.git 

Využijeme inštaláciu pomocou dostupného skriptu.

./easybutton-build.sh 

V predchádzajúcich verziách bolo potrebné upraviť pravidlá firewallu.

iptables -A INPUT -m tcp -p tcp --dport 8005 -j ACCEPT 
iptables -A INPUT -m udp -p udp --dport 8005 -j ACCEPT 
iptables -A OUTPUT -m tcp -p tcp --sport 8005 -j ACCEPT 
iptables -A OUTPUT -m udp -p udp --sport 8005 -j ACCEPT 
iptables -A INPUT -m tcp -p tcp --dport 9200 -j ACCEPT 
iptables -A INPUT -m udp -p udp --dport 9200 -j ACCEPT 
sudo su -c 'iptables-save > /etc/iptables/rules.v4' 

Pomocou nasledujúcich príkazov sa doinštalujú ďalšie potrebné súbory pre Capture hosta a nakonfiguruje sa interface, na ktorom bude systém počúvať. Pri Elasticsearch sa volí no, vzhľadom na to, že sme si ho nainštalovali predtým a Elasticsearch, ktorý poskytuje tento skript je len v demo verzii.

make install 
make config 

Presunieme sa do adresára s Viewer-om, aktualizujeme Node.js a spustíme skript na vytvorenie účtu pre webové rozhranie.

cd /data/moloch/viewer 
npm update 
/data/moloch/bin/moloch_add_user.sh admin "Admin User" PASSWORD --admin 

Následne vytvoríme symbolickú linku v adresári s Viewer-om.

ln -sf /usr/bin/nodejs node 

Spustíme jednotlivé komponenty.

service elasticsearch start 
service molochcapture start
service molochviewer start

Pokiaľ sme všetko urobili správne mali by sme byť schopní pripojiť sa na webové rozhranie na adrese http://IPADDRESSOFINTERFACE:8005

Zdroje:

  • Github Informácie o systéme Moloch

Moloch – Možnosti použitia Molocha

Možnosti použitia Molocha

  • Autor : Tomáš Mokoš

Nástroj Moloch poskytuje rôzne príklady využitia, pričom ale množina môže byť pre jednotlivých používateľov aj širšia, pokiaľ nájdu pre Molocha aj iné uplatnenie, ako je tu uvedené.

  • DOS útoky – Analyzovanie spojení, ktoré sú podozrivé ako útoky pre odopretie služby.
  • Geolokácia – Identifikovanie krajiny pri spojení.
  • Access Intelligence – Pomáha analyzovať oprávnený/neoprávnený prístup k systémovým zdrojom, aplikáciám, serverom, prevádzkovaniu systému a funkcií. Môžeme tiež vykonať hĺbkovú analýzu pomocou značkovania (angl. taging) konkrétneho systému, aplikácie alebo služby, ktoré sú spustené v sieti.
  • Využitie portov pri spojeniach – množstvo spojení, ktoré boli spojené s konkrétnym portom.
  • Využitie URL pri spojeniach – množstvo spojení, ktoré boli spojené s konkrétnou URL pomocou dopytov.
  • Objemy dát

Na príklade ukážeme využitie Molocha pri analýze CICIDS 2017 datasetu, kde postupne analyzujeme DDoS Hulk útok.
Najskôr si prefiltrujeme prevádzku, kde pomocou filtra tags == CICIDS2017_WEDNESDAY && ip.dst == 192.168.10.50 získamé toky s cieľovou adresou webservera zo dňa útoku.

Moloch1

Násladne v záložke SPI Graph môžeme vidieť nastavením SPI Graph na ip.src zdrojové IP adresy, ktoré komunikovali s týmto webserverom.
Ako môžeme vidieť IP adresa 172.16.0.1 generovala z 85268 relácií práve 84315, z čoho môžeme usúdiť, že táto adresa predstavuje útočníka.

Moloch2

V záložke SPI View vidíme, že komunikácia neprichádzala iba z jedného portu ale bolo ich niekoľko tisíciek a takmer všetky mierili na port 80.
Ďalej vidíme, že drvivá väčšina komunikácia bola smerovaná na rôzne URI z čoho môžeme usúdiť, že to bol útok Hulk vzhľadom na to, že je charakteristický generovaním náhodných random URI, čím spôsobí vyťaženie zdrojov web servera a tým jeho nedostupnosť.
Moloch3
Moloch4

Sources

Zdroje

      • CRZP Komplexný systém pre detekciu útokov a archiváciu dát – Moloch

       

Moloch – Popis nástrojov pre sledovanie zaťaženia systému

Popis nástrojov pre sledovanie zaťaženia systému

  • Autor : Tomáš Mokoš, Marek Brodec

Nload

Verzia : 0.7.4

Je konzolová aplikácia ktorá monitoruje sieťovú pre vádzku a rýchlosť toku v reálnom čase. Získané štatistiky zobrazuje v dvoch grafoch(1 pre uplink a 1 pre downlink). Poskytuje podrobnejšie informácie o celkovom množstve prenesených dát a priemernej, aktuálnej, minimálnej a maximálnej rýchlosti. Toto rozšírenie sme používali v najjednoduchšom režime nload interface, existuje však mnoho rozšírení zobrazení a doplňujúcej konfigurácie pomocou rôznych prepínačov o ktorých sa je možné dočítať v man page aplikácie $ man nload.

Inštalácia:

  • stiahnutie balíčka
apt-get install nload 

Použitie:

  • spustenie nástroja na rozhraní enp0s9
nload enp0s9 

Ukončenie: Ctrl+c alebo „q“

NLoad

Iftop

Verzia : 1.25

Iftop je aplikácia, ktorá monitoruje sieťovú prevádzku na pomenovanom rozhraní alebo na prvom rozhraní ktoré nie je špecifikované a zobrazuje tabuľku s aktuálnymi informáciami o toku v pároch teda zdrojová vs cieľová komunikácia. Opäť je možné použiť rôzne rozšírujúce možností a filtre pre požadované siete a podobne. O týchto možnostiach je možné dočítať sa v manuálovej stránke k nástroju $ man iftop.

Inštalácia:

  • stiahnutie balíčka
apt-get install iftop 

Použitie:

  • spustenie nástroja s počúvaním na rozhraní enp0s9 v promiskuitnom režime (-p) , pretože monitorujeme rozhranie ktorým prichádza zrkadlená prevádzka, a teda chceme aby sme sledovali aj pakety, ktorých cieľová adresa nie je naša IP adresa poprípade broadcast.
iftop -i enp0s9 -p  

Iftop

Bigdesk

Verzia : 2.5.0

Bigdesk je najjednoduchší dostupný plugin, ktorý veľmi uľahčuje sledovanie toho čo aktuálne Elasticsearch robí.

Inštalácia pluginu pozostávala z viacerých krokov:

  • presun do inštalačného priečinka elasticsearchu
cd /data/moloch/elasticsearch-2.4.0/bin  
  • inštalácia samotného pluginu s ignorovaním pravidiel prístupu užívateľov(-b) a zobrazením priebehu inštalácie na terminál(-v)
./plugin install https://github.com/lukas-vlcek/bigdesk/archive/master.zip -v -b 
  • prístup k danému pluginu pomocou IP adresy a portu na ktorých je v závislostí od konfigurácie spustený Elasticsearch klaster(cluster).

http://IP_adresa:číslo_portu/_plugin/bigdesk/

Ukážka grafov na ktorej je možné vidieť počet alokovaných GB RAM pamäte pre Elasticsearch a počet aktuálne využívaných GB za obdobie posledných 5 min. Toto obdobie je možné meniť v intervale od 10 sekúnd po max 1hodinu, rovnako je možné určiť interval aktualizácie informácií zaradených do grafu od 1 po 30 sekúnd.

Bigdesk1

V nasledujúcej ukážke je možné vidieť využitie procesora a RAM pamäte.V tomto prípade sa jedna o zaťaženie celkové, spôsobené všetkými bežiacimi procesmi nie len procesom Elasticsearch inštancie. Keďže swapovanie sme pri inštalácií Molocha vypli graf je prázdny.

Bigdesk2

V poslednej ukážke môžeme vidieť rôzne štatistiky prehľadávania a indexovania v dátach jednak v počtoch ale tiež v časových jednotkách.

Bigdesk3

Head

Verzia : 0.1.3

Head je front end Web API, ktoré umožňuje prehliadanie, vyhľadávanie a interakciu s klastrom Elasticsearch. Umožňuje jednak pohľad na stav elasticsearchu ale tiež prácu s jednotlivými dennými dávkami indexov.

Inštalácia pluginu ma viacero alternatív, uvediem dve najpoužívanejšie:

  • stiahnutie inštalačného repozitára pluginu
git clone git://github.com/mobz/elasticsearch-head.git 
  • presun do inštalačného priečinka
cd elasticsearch-head  
  • spustenie inštalácie
npm install 
  • spustenie pluginu
npm run start  
  • prístup k danému pluginu pomocou IP adresy a portu na ktorých je v závislostí od konfigurácie spustený Elasticsearch klaster(cluster).

http://IP_adresa:číslo_portu/_plugin/head/

alebo

  • spustenie inštalácie samotného pluginu
sh /data/moloch/elasticsearch-2.4.0/bin/plugin install mobz/elasticsearch-head 
  • prístup k danému pluginu pomocou IP adresy a portu na ktorých je v závislostí od konfigurácie spustený Elasticsearch klaster(cluster).

http://IP_adresa:číslo_portu/_plugin/head/

Head

Bigdesk a Elasticsearch Head pluginy nie sú funkčné od Elasticsearch verzie 5.x, kvôli zmenám v architektúre Elasticsearch databázy.

Zdroje

  • Report Projekt 1-2 – Marek Brodec

Moloch – Web interface specification

Web interface specification

  • Author : Tomáš Mokoš

Viewer is a feature of Moloch that makes processing of captured data easier with the use of web browser GUI. Viewer offers access to numerous services, most notably :

  • Sessions
  • SPI View
  • SPI Graph
  • Connections
  • Upload
  • Files
  • Users
  • Stats

Sessions

Main tab illustrated below contains:

  • Search field – here you can enter different search filtering rules. Being similar to Wireshark, it enables, for example, to search results containing source/destination IP address (ip.dst== X.X.X.X && ip.src== X.X.X.X), port(port.dst 80 || port.src 80), web URL (http.uri == www.foo.com), time of delivery, etc.
  • Country map – results are cross referenced with GeoIP database and the number of occurrences from a given country is displayed on a map using shades of the color purple.
  • Occurrence frequency chart – this bar chart represents traffic in a given time period. the y-axis can be set to represent number of sessions, packets or bytes of data.

Okno vyhladavania

  • Record window – displays individual connections and their parameters, including times of beginning and end of session, source and destination IP addresses, source and destination port, packet count and session size in bytes. After unpacking, the session can be exported to a PCAP file, where you can add your own tag and see detailed information about the nature and origin of the packet. A DNS request is Illustrated below

Okno zaznamov

SPI View

SPI (Session Profile Information) View is used to take a deeper look at connection metrics. Instead of writing queries manually, queries can be expanded by clicking on the respective actions in SPI view, which adds the requested item to a query by using AND or AND NOT operators. This tab also provides a quick view of occurrence frequency of all items requested the user. Furthermore, SPI view also offers a quick summary of monitored IP addresses in a given time period, HTTP response codes, IRC NICKs/channels, etc.

SPI View

SPI Graph

SPI Graph provides user with visualization of any given item contained in SPI View. This tab is very useful for displaying activity for a type of SPI, as well as in-depth analysis. Illustration below displays the demand for HTTP with http.method view selected. Displayed bar charts represent the amount of sessions/packets/databytes captured. To the right of each chart, after clicking View Map button, a map containing origins of the sessions is displayed. Methods GET, POST, HEAD OPTIONS and CONNECT are also displayed below. Maximum number of charts displayed can be set by the Max Elements field, with the default value being 20 and the maximum value being 500. Charts can also be sorted by number of sessions or by name. Moloch also offers a refresh rate setting from 5 to 60 seconds.

SPI Graph

Connections

Connections tab provides user with a tree graph rooted in a source or destination node of user’s own selection. Illustration below displays relations between source IP address and destination IP address and port, with 500 sessions displayed using the query size setting. Minimum query size is 100 and maximum size is 100000. Furthermore, minimum number of connections can be set to values from 1(like in the case below) to 5. Node dist defines the distance of nodes in pixels. Any node in the graph can be moved after clicking the Unlock button. Source nodes are marked in violet and destination nodes are marked in yellow. By clicking a node, information about the node is displayed: Type (source/destination), Links (number of connected nodes), number of sessions, bytes, databytes and packets. Nodes can also be hidden by clicking Hide Node. This tab is appropriate for users who prefer node data analysis over visualization.

Connections

Upload

This tab is used to import PCAP files selected by clicking on Search button and clicking upload. Tags (separated by commas) can be appended to the imported packets, however, this option must be enabled in data/moloch/etc/config.ini. The Upload option is in experimental state and can be enabled by the following command

/data/moloch/bin/moloch-capture --copy -n {NODE} -r {TMPFILE} 

NODE is the node name, TMPFILE is the file to be imported, CONFIG is the configuration file and TAGS are the tags to be appended.

Files

Files tab displays the table of archived PCAP files. Details include: file number, node, file name, whether the file is locked, upload date and file size. File size (in GB) is defined in data/moloch/etc/config.ini using the maxFileSizeG parameter. If a file is locked, Moloch cannot delete it and it must be deleted manually.

Users

Users tab defines access rights to individual users. It allows to add/remove user accounts and to edit their passwords.

Stats

Stats tab provides visual representation and table display of metrics for each node. Other display options can also be used:

Packets/Sec Sessions/Sec Active TCP Sessions Total Dropped/Sec Free Space (MB)
Free Space (%) Fragments Queue Active UDP Sessions Input Dropped/Sec Bytes/Sec
Memory Active Fragments Active ICMP Sessions Active Sessions Bits/Sec
ES Queue Overload Dropped/Sec Disk Queue CPU Memory (%)
Waiting Queue Fragments Dropped/Sec Closing Queue Packet Queue ES Dropped/Sec

Statistics for each node display: current time on the node, number of sessions, remaining free storage, CPU usage, RAM usage, number of packets in queue, number of packets per second, number of bytes per second, number of lost packets per second, number of packets dropped due to congestion and number of packets dropped by Elasticsearch per second. Charts depicting visualization of these stats can be displayed by clicking the plus(+) icon. Elasticsearch statistics contain number of files saved under unique ID, HDD size, Heap size, OS usage, CPU usage, bytes read per second, bytes written per second and number of searches per second.

  • CRZP Komplexný systém pre detekciu útokov a archiváciu dát – Moloch
  • Report Projekt 1-2 – Marek Brodec

Moloch – Port-Mirror

Port-Mirror

  • Autor : Tomáš Mokoš, Marek Brodec

Port-Mirror alebo zrkadlenie portov sa používa na sieťovom prepínači pre posielanie kópií sieťových paketov, ktoré je možné vidieť na jednom porte prepínača (alebo celej VLAN) pre monitorovanie siete pripojenej na inom porte prepínača. Port-Mirror sa bežne používa pre sieťové zariadenia, ktoré vyžadujú monitorovanie prevádzky v sieti, ako je napríklad systém detekcie narušenia, pasívna sonda alebo technológie real user management (RUM), ktorý sa používa na podporu riadenia výkonu aplikácií (APM).

V našom prípade nám katedra poskytla prepínač Cisco Catalyst 2960, ktorý sme nakonfigurovali tak, aby nám všetky dátové toky prechádzajúce rozhraním, ku ktorému sú pripojené zariadenia v laboratórií ďalej k Internetu, boli odzrkadlené na rozhranie, na ktorom je pripojený náš server so systémom Moloch. Z toho vyplýva, že aktuálne monitorujeme a archivujeme všetku prevádzku, ktorá prichádza alebo odchádza z laboratórií katedry.

Switch(config)#monitor session 1 source fa0/1 both  

– Určuje interface zdroja fa 0/1 a parameter both určuje oba smery.

Switch(config)#monitor session 1 destination interface fa0/24 

– Určuje cieľové rozhranie, na ktoré bude prevádzka zrkadlená.

Port-Mirror

Zdroje

  • CRZP Komplexný systém pre detekciu útokov a archiváciu dát – Moloch