Menu Zavrieť

Kategória: Sieťová bezpečnosť

Dataset KIS 2019

Dataset KIS 2019

  • Autori : Jana Uramová, Tomáš Mokoš, Patrik Rodina, Peter Seemann, Miroslav Kohútik

Tento článok popisuje sieťový dataset KIS 2019. Ak máte zájuem o prístup k tomuto datasetu, kontaktujte nás na e-mailovej adrese dataset[AT]kis.fri.uniza.sk.

Dataset KIS 2019 bol vytvorený ako súčasť diplomovej práce Tomáša Mokoša na Katedre Informačných Sietí na Fakulte Riadenia a Informatiky Žilinskej Univerzity v Žiline.

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=/usr/local/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:

Scirius CE – Inštalácia

Scirius CE – Inštalácia

  • Autor: Miroslav Kohútik
  • Operačný systém : Ubuntu 16.04

Scirius Community Edition je webové rozhranie určené pre správu Suricata pravidiel. Stará sa o súbor rules a aktualizácie s ním spojených súborov.

V tomto návode si ukážeme ako nainštalovať Scirius Community Edition na Operačnom systéme Ubuntu 16.04.
Pred tým než začneme inštalovať Scirius CE, musíme mať nainštalovaný IDS Suricata. Návod na inštaláciu Suricaty sa nachádza tu.

Nainštalujeme si manažéra pre python balíčky a hlavičkové súbory pre jazyk python

sudo apt-get install python-pip python-dev

Stiahneme si Scirius repozitár z GitHubu

git clone https://github.com/StamusNetworks/scirius.git

Presunieme sa do priečinku, ktorý sme práve stiahli a nainštalujeme z neho potrebné závislosti

cd scirius
sudo pip install -r requirements.txt

Stiahneme si modul na monitorovanie zmien v súborovom systéme pyinotify. Tento modul je potrebný pre reštartovanie Suricaty cez Scirius

sudo pip install pyinotify

Stiahneme si modul Gitdb na čítanie a zapisovanie do git repozitárov

sudo pip install gitdb

Nainštalujeme si npm

sudo apt-get install npm

Stiahneme si webpack verziu 3.11

sudo npm install -g npm@latest webpack@3.11

Nainštalujeme Scirius

npm install

Predošlý príkaz vytvoril priečinok pre Hunt komponent sciriusu. Presunieme sa do priečinka hunt, nainštalujeme ho a pripravíme ho na použitie

cd hunt
npm install
npm run build

Spustenie Sciriusu

Z priečinku scirius inicializujeme Django databázu

python manage.py migrate

Vytvoríme účet pre superusera

python manage.py createsuperuser

Pred spustením aplikácie musíme najprv vytvoriť balíčky modulov tým, že spustíme webpack (tento krok je potrebné zopakovať po každej aktualizácii kódu)

sudo webpack

Ak chceme spustiť Scirius tak, aby bol prístupný iba na lokálnom zariadení na adrese localhost:8000

sudo python manage.py runserver

Ak chceme aby Scirius počúval na adrese, ktorá je prístupná z vonkajšej siete, musíme ju pridať do zoznamu ALLOWED_HOSTS v súbore settings.py. Následne môžeme spustiť Scirius príkazom

python manage.py runserver x.x.x.x:8000

Zdroj:

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 v1.7.0 – Inštalácia systému

Inštalácia systému Moloch

  • Autor : Miroslav Kohútik
  • Testovaná verzia : 1.7.0
  • Operačný systém : Ubuntu 16.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 – 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