SNARE: építsünk Behatolás Jelző Rendszert Linuxra - step-by-step tutorial ;)

Ez a tutorial végigvezet azon a folyamaton, hogy hogyan építsünk a SNARE eszköz segítségével, egy hasznos, könnyen használható powerful IDS rendszert a Linux szerverünkre (munkaállomásunkra). A tutorial segít a teleptésben, ismereteti a rendszer alapjait. A tutorial képekkel illusztrált. Nem csak expert felhasználóknak ajánlott ;)



A Behatolás Jelző Rendszerek (Intrusion Detection System - IDS) nem új dolgok a nap alatt. A Solaris operációs rendszer tartalmaz egy BSM (Basic Security Module) nevű modult, amely lehetővé teszi, hogy aprólékos-szintű kernel logolást végezzünk. Ez a dolog mostantól elérhető Linuxra is.

A SNARE egy új, host-alapú IDS, amelyet kimondottan Linuxra terveztek. Kristy Westphal kipróbálta a SNARE-t, és a tesztek során talált egy kiváló plug-in-t, amellyel nagyszerűen lehet a kernel eseményeket auditálni Linux operációs rendszer alatt.

A SNARE ingyenes, free, könnyű telepíteni és könnyű beállítani.SNARE - amely a System iNtrusion Analysis and Reporting Environment szavakból áll össze, az InterSect Alliance, egy ausztrál IT biztonsági cég által készített alkalmazás. A weboldaluk szerint (http://www.intersectalliance.com/projects/Snare) a cég azért kezdte el a SNARE projectet, hogy "kibővítsék a Linux operációs rendszer biztonságát azzal, hogy egy széleskörű logolási képességet adnak hozzá". Szerintük azért nem használnak szélesebb körben Linuxot az IT területen, mert hiányzik belőle egy széleskörű logoló eszköz. Ezt készítették el ők. Készítettek egy 'auditd' nevű programot, amely nem más mint egy dinamikusan betölthető kernel modul, és amely daemonkét (is) fut.

Jobban kifejezve azt, hogy mit értenek 'széleskörű logoló eszközön':

- logolja a megnyitott és elfogadott hálózati kapcsolatokat

- logolja a könyvtárak olvasását/írását

- figyeli a felhasználók azonosságát és csoportját

- és figyeli a programok használatát/azok megváltoztatását

Függően attól, hogy hogyan van konfigurálva a SNARE, detektálni tudjuk, ha a támadó megállított egy kulcsfontosságú programot, ha a root felhasználóra váltott, vagy ha fileokat installált a kulcsfontosságú könyvtárakba. Továbbá a SNARE képes logolni a file rendszer hívásokat, amely lehet read/write, megnyitás, átnevezés, képes észlelni ha a 'chroot', vagy a 'reboot' programokat futtatta valaki, vagy 'mkdir' és 'mknod' került felhasználásra.

Telepítés:

Azzal, hogy egy host-alapú IDS-t (Intrusion Detection System) telepítünk a rendszerre, az nem jelenti azt, hogy az egész rendszer védve van mindentől. A cikk feltételezi, hogy a rendszer amelyre a SNARE telepítésre kerül, az megfelelően van telepítve, a nem szükséges szervizek nem futnak rajta, a legutolsó biztonsági patchek is fel vannak telepítve, a file permissziók jól be vannak állítva, stb.

A SNARE telepítéséhez szükséges csomagokat megtalálod a project weboldalán itt. A SNARE két részben érkezik: van a core csomag és a hozzá kezelőszervként adott GUI (grafikus interfész). A stuff .rmp csomagokban megtalálható a weboldalon Red Hat 7.1 és Red Hat 7.2 rendszerekehez, de ott találhatjuk a forráskódot is. Ez a cikk a forrásból telepítést mutatja be. Letöltjük a legutolsó friss verziót amely a cikk írásának pillanatban a 0.9 névre hallgat. Ez két gzippelt tar filet jelent, a snare-0.9.tar.gz, és a snare-core-0.9.tar.gz.

Először a core csomagot kell telepíteni, tehát:

gunzip snare-core-0.9.tar.gz

aztán

tar xvf snare-core-0.9.tar

A SNARE egy kicsi terjesztés, a dokumentációt a weboldalukon keresd. A SNARE daemont egyszerűen le lehet fordítani:

make clean && make && make install

így egy friss példányt kapunk belőle (ajánlott így csinalni). Az auditd daemon /usr/sbin könyvtárba fog települni, az audit start/stop script helye a /etc/init.d könyvtár. Egy symlinket készítünk a /etc/rc2.d könyvtárba S98audit néven, amely a /etc/init.d/audit scriptre mutat. Innentől kezdve automatikusan indul a daemon a rendszer indításakor, vagy kézzel is indíthatjuk: belépünk a /etc/init.d könyvtárba és kiadjuk az alábbi parancsot:

./audit start

A GUI fordításához nem ajánlom, hogy a standard lépéseket kövesd, amelyek le vannak írva az INSTALL fileban. Helyette csináljuk a következőt:

Lépjünk be a snare-0.9 könyvtárba, és adjuk ki a következő parancsokat:

./autogen.sh

./make

./make install

A GUI fileok a /usr/local/share könyvtárba települnek. Így teljes a GUI telepítése, akár el is lehet indítani a

snare &

paranccsal.

snare gui

Egy kép a GUI-ról

Konfiguráció:

Miután a SNARE feltelepült és fut, konfiguálni kell. Mint ahogy a syslog daemon konfigurációs fileja a syslog.conf, ennek a konfigurációs fileja az audit.conf. Ennek a helye a /etc/audit könyvtár. Javaslom, hogy ezt a filet, csak a GUI-n keresztül editáljuk, mert akkor biztos hogy megfelelően lesz formázva. Hogy beállítsuk a filet, menjünk a 'Setup, Audit Configuration' menübe. Itt meg tudunk változtatni néhány paramétert:

AuditType - alapból ez "Objective"; a többi elérhető opció az "Event"

HostID - Meg tudod határozni, hogy mely távoli host logfilejai jelenjenek meg

Objectives - Az auditálás finomságát lehet itt állítani

Events - Az összes lehetséges kernel hívás tudjuk auditálni

Output - Ahova tárolni szeretnéd a log fileokat; az alapértelmezés a /var/log/audit/audit.log

A SNARE képes a kernel vagy objective logolásra, de nem egy időben.

Új objective szabályt (rule), az 'Add an Objective' gombbal lehet megtenni.

snare config

Audit objective szerkesztése

Ez a lépés öt részre bontható:

- Magas szintű konfiguráció

- Szűrő (filter) amellyel auditálni akarsz, regexp-ek használhatók

- Hogyan akarsz auditálni egy eseményt: sikeres vagy sikertelen, sikeres és sikertelen filter

- Hogyan akarod auditálni a felhasználók eseményeit, összes felhasználó, csak kiválasztott felhasználó, stb.

- Milyen riasztási szintre van szükségünk, stb.

A riasztási szintek a Critical-tól a Clear-ig állíthatók. A Clear csak annyit jelez, hogy valami történt (jó vagy rossz). Ha valami történik, azt szín jelöléssel hozza a SNARE a tudtunkra: valami 'jó' történt akkor egy zöld pont jelenik meg. A figyelmeztetés sárga pont, a prioritásos események narancs, míg a kritikus események piros ponttal kerülnek kijelzésre.

Objective loggolás:

Az alap beállításban az alábbiak vannak beállítva: olvasás, írás, vagy létrehozás a /etc/shadow filera nézve; írás vagy létrehozás a /etc/passwd filera nézve; és olvasás, írás, vagy létrehozás az audit fileokra nézve. Továbbá, monitorozás a fileok, könyvtárak beállításaira: /sbin, /usr/sbin, /bin, és /usr/bin könyvtárak; a su program felhasználása; új kapcsolatok elfogadása; a newgrp program használata; változások a /etc és /var/log könyvtárakra; és megnyitása valamely kimenő hálózati kapcsolatnak.

Event (Kernel) logolás:

Mielőtt a kernel logoláshoz folyamodunk, ellenőrizzük mennyi szabad diszk hely áll rendelkezésünkre, mert nagyon bőbeszédű lehet.

Mit tudunk logolni?

Erőforrások hozzáférése és biztonsága, parancs végrehajtás, erőforrás (resource) létrehozás és törlés. Az erőforrás hozzáférés és biztonság tartalmazza az olyan hívások logolását mint: setuid, open, rename, chmod, és a chown. A parancs végrehajtás logolás tartalmazza a chroot, reboot, és a socket hívásokat. Az erőforrás létrehozás és törlés logolás tartalmazza a symlink, create_module, és mknod figyelését.

A SNARE nem egy tipikus host-alapú IDS, a legtöbb ilyen IDS olyan elven működik, hogy MD5 checksumot készít a kulcsfontosságú fileokról, amelyet egy adatbázisban tárol. A teljesen feltelepített _még nem használt!!!!_ rendszeren lefuttatjuk az ilyen IDS programot (pl. TripWire) amely egy snapshotot készít a rendszerről. Fontos hogy egy még nem használt rendszerről készítsük a snapshotot, mert ha már egy backdooros rendszerről készítjük, az már semmit nem ér. A következő lépés az auditálásnál, hogy újra futtatjuk az IDS-t, és a program a különbségeket jelzi ki az eredeti snapshot és a most általunk futtatott program logja között. Tulajdonképpen a checksum változásokat figyeli.

A SNARE más. A SNARE egy kiváló eszköz arra, hogy egy hasznos 'otthon-készített' csapda-rendszert építsünk (honeypot). Természetesen a daemont át tudjuk nevezni, így a tapasztaltabb felhasználók se tudják azt elsőre kiszúrni a rendszeren. Ilyenkor természetesen újra kell konfigurálni az eszközt.


Előnyök és hátrányok:

A SNARE-nek nem sok hátránya van. De meg kell említeni, hogy az alkalmazás képes némi CPU-t és memóriát felemészteni. Ez függ a megfigyelt események számától természetesen. Mindenesetre ezzel számolni kell. A második az, hogy csak a korszerű kernelekkel működik. Én azt hiszem, hogy ez a kettő dolog megbocsátható, hiszen aki ilyen eszközt telepít, az számol azzal, hogy bizonyos erőforrásokat kell allokálni erre a célra (diszk terület, cpu idő, memória), és feltételezzük, hogy egy komolyabb rendszeren nem futtat már 2.0.x kernelt sehol.

Az előnyök: egy nagyszerű eszköz a túlterhelt rendszeradminisztrátorok kezében. Hihetetlenül egyszerű a telepításe, a beállítása. Miután az IDS rendszer be van állítva, fut és működik, nincs vele más dolgunk, mint a logfileokat betömörítve eljuttatssuk egy másik gépre, ahol azokat elemezhetjük. Ezt könnyedén lehet automatizálni. Jól konfigurálható, portolható, könnyedén használható.

Bővebb információ a SNARE-ról:

http://www.intersectalliance.com/projects/Snare

Információ a Solaris BSM-ről:

Auditing in the Solaris 8 Operating Environment

és még egy olvasmány:

Implementing C2 Auditing in the Solaris Environment



Az eredeti cikk itt jelent meg.