Mini projekt pre zariadenie Raspberry Pi, ktorý funguje na princípe IDS/IPS. Aplikácia monitoruje podozrivú sieťovú aktivitu na Raspberry Pi, zobrazuje bezpečnostné alerty v termináli a zároveň ich odosiela ako notifikácie na Discord server pomocou webhooku.
V prípade identifikácie útoku, ktorý trvá viac ako 10 sekund sa automaticky na IP adresu aplikuje DENY firewall pravidlo.
Pred samotným vytvorením aplikácie je potrebné využívať virtuálne prostredie venv v priečinku NetSentinel.
python3 -m venv venvsource venv/bin/activate- Vytvorte textový dokument
touch requirements.txt, otvorte cez napr.nano requirements.txta napíšte knižnicuscapy,requestsapython-dotenv. - Teraz ju nainštalujte
pip install -r requirements.txt. - Spustenie
python3 main.py.
- Vytvorte nový discord server, ktorý pomenujete napr.
Raspberry Alerts. - Vytvorte Text roomku
Alerts. - V rámci roomky
Alertsprejdite doEdit channel->Integrations->Webhooksa vytvorte novy Webhook. - Vytvorte súbor
.enva vložte do nehoDISCORD_WEBHOOK_URL = URL_LINK_DC_ROOMKY.
- Keďže nepoužívame LCD displej ani monitor, potrebujeme mať aktívny port 22 (SSH), ku ktorému sa budeme pripájať pomocou nástroja
Putty. - Pre SSH prístup na RPi sme nastavili bezpečnostné opatrenia v konfiguračnom súbore SSH a tiež sme nakonfigurovali firewall tak, aby bol prístup povolený len z konkrétnych IP adries.
Detekcia ARP SpoofinguDetekcia port scanninguZoznam aktívnych zariadení v sietiDetekcia ping floodu (ICMP)
arp_spoofing.py- Ak zachytí ARP reply, kde sa MAC adresa líši od tej, ktorá bola pôvodne zaznamenaná pre danú IP, vyvolá alert – potenciálny ARP spoofing útok. Príklad použitia:arpspoof -i eth0 -t <IP_RPI> <IP_Gateway>, pričom-imôže byť aj napr.wlan0.scanner_detect.py- Detekcia skenovania zariadenia. Príklad použitia:nmap -sS -sV <sieťova_adresa/veľkost_podsiete>. Príkaz na zistenie podsieteip a.device_scanner.py- Zoznám aktuálnych zariadení na sieti.ping_flood.py- Detekcia zahltenia požiadaviek typupingv krátkom časovom intervale. Príklad otestovanie:ping -f <IP_RPI>.firewall.py- Automatické zabanovanie IP v prípade detekcie útoku.
Raspberry Pi 3Micro SD karta 16 GBNapájací adapter 5V 2.5A micro USB
- Ako prvé potrebujeme nainštalovať Raspberry Pi OS na SD kartu, prostredníctvom RPi Imageru, ktorý je dostupný na:
https://www.raspberrypi.com/software/ - Pre náš projekt sme zvolili zariadenie
RPi 3a OS32-bit.
- Úvodná obrazovka v termináli na Raspberry Pi po spustení aplikácie.
Obrázok 3 Welcome in NetSentinel
- Monitoring je aktívny a čaká na detekciu podozrivého správania. Zobrazuje Grafy pre sieťovú prevádzku ICMP, ARP a SYN paketov a rovnako ich počet za sekundu.
- Test detekcie útoku ping flood, zobrazenie sieťovej prevádzky paketov za sekundu.
Obrázok 5 Detekcia útoku ping flood
- Blokovanie IP adresy v prípade trvania útoku viac ako 10 sekúnd.
Obrázok 6 Blokovanie útoku ping flood
- Podozrivé správanie je odoslané do Discord roomky. Správa obsahuje IP adresu zariadenia, ktoré vykonáva podozrivú aktivitu a v prípade ARP útoku aj MAC adresu.
Obrázok 7 Discord notifikácie o podozrivej aktivite
- Zachytávanie podozrivej aktivity aj na iné zariadenia ako RPI, prostredníctvom WLAN adaptéru, ktorý umožňuje monitor mode (chipset
Atheros AR9271). - Pridanie 3.5″ LCD displeju pre vizuálne zobrazenie upozornení.
- Projekt slúži na vzdelávacie účely v oblasti kybernetickej bezpečnosti.