A Snort IDS konfigurálása és szabályok létrehozása

A Snort egy nyílt forráskódú behatolásjelző rendszer, amelyet Linux rendszereken használhat. Ebben a bemutatóban a Snort IDS alapvető konfigurációját tekintjük át, és megtanítjuk, hogyan hozzunk létre szabályokat a különböző típusú tevékenységek észlelésére a rendszerben.

Ez a bemutató a következő hálózatot fogja használni: 10.0.0.0/24. Szerkessze az /etc/snort/snort fájlt.conf fájlt, és a $HOME_NET mellett lévő “any”-t helyettesítse a hálózati információval, ahogy az alábbi példaképen látható:

Alternatívaként meghatározhat konkrét IP-címeket is a megfigyeléshez, vesszővel elválasztva, ahogy az ezen a képernyőképen látható:

Most pedig kezdjük el, és futtassuk ezt a parancsot a parancssorban:

# snort -d -l /var/log/snort/ -h 10.0.0.0.0/24 -A console -c /etc/snort/snort.conf

Hol:
d= utasítja a snortot az adatok megjelenítésére
l= meghatározza a naplók könyvtárát
h= megadja a megfigyelendő hálózatot
A= utasítja a snortot, hogy a konzolra írja ki a figyelmeztetéseket
c= megadja a snortnak a konfigurációs fájlt

Elindít egy gyors keresést egy másik eszközről az nmap segítségével:

És lássuk mi történik a snort konzolon:

A snort észlelte a szkennelést, most szintén egy másik eszközről támadjunk DoS-t a hping3 segítségével

# hping3 -c 10000 -d 120 -S -w 64 -p 21 –flood –rand-source 10.0.0.3

A Snortot megjelenítő eszköz az itt látható módon rossz forgalmat észlel:

Mivel utasítottuk a Snortot a naplók mentésére, a futtatással kiolvashatjuk azokat:

# snort -r

Elvezetés a Snort szabályaihoz

A Snort NIDS üzemmódja az /etc/snort/snort-ban megadott szabályok alapján működik.conf fájlban meghatározott szabályok.

A snort.conf fájlban találhatunk kommentált és kommentálatlan szabályokat, ahogy az alábbiakban látható:

A szabályok elérési útvonala általában /etc/snort/rules , ott találjuk a szabályfájlokat:

Lássuk a backdoors elleni szabályokat:

A backdoor támadások kivédésére több szabály is van, meglepő módon van egy szabály a NetBus ellen, egy trójai faló ellen, ami pár évtizede vált népszerűvé, nézzük meg és elmagyarázom a részeit és a működését:

alert tcp $HOME_NET 20034 -> $EXTERNAL_NET any (msg: “BACKDOOR NetBus Pro 2.0 connection
established”; flow:from_server,established;
flowbits:isset,backdoor.netbus_2.connect; content: “BN|10 00 02 00|”; depth:6; content:”|
05 00|”; depth:2; offset:8; classtype:misc-activity; sid:115; rev:9;)

Ez a szabály utasítja a snortot, hogy riasszon a 20034-es porton lévő TCP-kapcsolatokról, amelyek egy külső hálózat bármely forrásához továbbítanak.

-> = megadja a forgalom irányát, ebben az esetben a mi védett hálózatunkból egy külső hálózatba

msg = utasítja a riasztást, hogy a megjelenítéskor egy adott üzenetet is tartalmazzon

content = a csomagon belüli konkrét tartalom keresése. Ez tartalmazhat szöveget, ha a ” ” között van, vagy bináris adatokat, ha a | | között van
depth = az elemzés intenzitása, a fenti szabályban két különböző paramétert látunk két különböző tartalomhoz
offset = megmondja a Snortnak, hogy az egyes csomagok kezdőbájtját kezdje el keresni a tartalmat
classtype = megmondja, hogy a Snort milyen típusú támadásra figyelmeztet

sid:115 = a szabály azonosítója

A saját szabályunk létrehozása

Most létrehozunk egy új szabályt a bejövő SSH kapcsolatokról való értesítéshez. Nyissuk meg az /etc/snort/rules/yourrule állományt.rules, és belülről illesszük be a következő szöveget:

alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg: “SSH incoming”;
flow:stateless; flags:S+; sid:100006927; rev:1;)

Megmondjuk a Snortnak, hogy bármilyen külső forrásból az ssh portunkra (ebben az esetben az alapértelmezett portra) érkező tcp kapcsolatról riasszon, beleértve az “SSH INCOMING” szöveges üzenetet, ahol a stateless utasítja a Snortot, hogy figyelmen kívül hagyja a kapcsolat állapotát.

Most hozzá kell adnunk a létrehozott szabályt az /etc/snort/snort.conf fájlunkhoz. Nyissuk meg a config fájlt egy szerkesztőprogramban, és keressük meg a #7-et, ami a szabályokat tartalmazó rész. A fenti képhez hasonlóan adjunk hozzá egy megjegyzés nélküli szabályt a következővel:

include $RULE_PATH/yourrule.rules

A “yourrule.rules” helyett állítsd be a fájlnevedet, az én esetemben ez a test3.rules volt.

Ha ez megvan, futtasd újra a Snortot, és nézd meg, mi történik.

#snort -d -l /var/log/snort/ -h 10.0.0.0.0/24 -A console -c /etc/snort/snort.conf

ssh-t az eszközödre egy másik eszközről, és nézd meg, mi történik:

Láthatod, hogy az SSH bejövetelt észlelte.

Ezzel a leckével remélem, tudod, hogyan kell alapvető szabályokat készíteni és használni őket a rendszeren való tevékenység észlelésére. Lásd még a Hogyan állítsuk be a Snortot és kezdjük el használni, és ugyanez a bemutató spanyolul is elérhető a Linux.lat.

oldalon.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.