Skip to content

About

Mini Home Project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NetSentinel

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.

Príprava prostredia

Pred samotným vytvorením aplikácie je potrebné využívať virtuálne prostredie venv v priečinku NetSentinel.

  • python3 -m venv venv
  • source venv/bin/activate
  • Vytvorte textový dokument touch requirements.txt, otvorte cez napr. nano requirements.txt a napíšte knižnicu scapy, requests a python-dotenv.
  • Teraz ju nainštalujte pip install -r requirements.txt.
  • Spustenie python3 main.py.

Príprava Discord servera

  • Vytvorte nový discord server, ktorý pomenujete napr. Raspberry Alerts.
  • Vytvorte Text roomku Alerts.
  • V rámci roomky Alerts prejdite do Edit channel -> Integrations -> Webhooks a vytvorte novy Webhook.
  • Vytvorte súbor .env a vložte do neho DISCORD_WEBHOOK_URL = URL_LINK_DC_ROOMKY.

Komunikácia s Raspberry Pi

  • 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.

Funkcie

  • Detekcia ARP Spoofingu
  • Detekcia port scanningu
  • Zoznam aktívnych zariadení v sieti
  • Detekcia ping floodu (ICMP)

Funkcia modulov

  • 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 -i môž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 podsiete ip a.
  • device_scanner.py - Zoznám aktuálnych zariadení na sieti.
  • ping_flood.py - Detekcia zahltenia požiadaviek typu ping v krátkom časovom intervale. Príklad otestovanie: ping -f <IP_RPI>.
  • firewall.py - Automatické zabanovanie IP v prípade detekcie útoku.

Využitý hardware

  • Raspberry Pi 3
  • Micro SD karta 16 GB
  • Napájací adapter 5V 2.5A micro USB

Obrázok 1 Raspberry Pi
Obrázok 1 Raspberry Pi 3

Grafický postup a testovanie

  • 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 3 a OS 32-bit.

Obrázok 2 RPi Imager
Obrázok 2 RPi Imager

  • Úvodná obrazovka v termináli na Raspberry Pi po spustení aplikácie.

Obrázok 3 Welcome in NetSentinel
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.

Obrázok 4 Monitoring
Obrázok 4 Monitoring

  • Test detekcie útoku ping flood, zobrazenie sieťovej prevádzky paketov za sekundu.

Obrázok 5 Detekcia útoku ping flood
Obrázok 5 Detekcia útoku ping flood

  • Blokovanie IP adresy v prípade trvania útoku viac ako 10 sekúnd.

Obrázok 6 Detekcia útoku ping flood
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
Obrázok 7 Discord notifikácie o podozrivej aktivite

Vylepšenia do budúcnosti

  • 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í.

Poznámky

  • Projekt slúži na vzdelávacie účely v oblasti kybernetickej bezpečnosti.

Autor: Marián Hlavačka

About

Mini Home Project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages