Bevezetés

Bár a hálózati behatolásjelző rendszerek korai típusai egészen az 1980-as évek elejéig nyúlnak vissza, az IDS koncepciója akkor lendült fel, amikor Martin Roesch megalkotta ingyenes és nyílt forráskódú IDS rendszerét, a SNORT-ot. Könnyű felépítésének és rugalmas telepítési lehetőségeinek köszönhetően a Snort felhasználói bázisa a következő években gyorsan nőtt (jelenleg 400 000-re).

2001-ben Martin Roesch megalapította a Sourcefire (2013-ban a Cisco által felvásárolt) céget egy SNORT-on alapuló kereskedelmi IDS-termék számára. A SNORT eredeti, ingyenes és nyílt forráskódú változata azonban továbbra is elérhető maradt, és még mindig széles körben használják a hálózatokban világszerte. Időközben néhány versenytárs is teret nyert a nyílt forráskódú IDS-ek területén, leginkább a Suricata IDS.

Melyek a fő különbségek közöttük, és mit várhatunk a jövőben a SNORT-tól?

Szabályok

Egy IDS-megoldás csak annyira jó, mint a rendelkezésre álló szabályok, amelyeket a megfigyelt forgalomra alkalmazni tud. A Snort mindig is nagy közösségi támogatást élvezett, és ez egy jelentős, rendszeresen frissített szabálykészletet eredményezett. A szabályok szintaxisa meglehetősen egyszerű, és a program felépítése lehetővé teszi, hogy bárki testreszabott szabályokat alkalmazzon az IDS-ében, vagy megossza azokat a közösséggel.

Néhány kereskedelmi fél is fejleszt SNORT szabályokat, amelyeket havi vagy éves díj ellenében lehet megvásárolni. Néhány példa erre a Talos SO/VRT szabályai (egy hónap után ingyenesen kiadható) és a CrowdStrikes Threat Intelligence Services.

A Suricata ugyanazokat a szabályokat használhatja, mint a SNORT. Sok, de nem minden VRT szabály továbbra is működik. A Suricata saját szabályrendszerrel rendelkezik, amelyet kezdetben fizető előfizetők számára adtak ki, de 30-60 nap után szabadon elérhető: Emerging Threats. Ezek a Suricata-szabályok jobban kihasználják a Suricata által kínált további funkciókat, mint például a port-agnosztikus protokollérzékelés és az automatikus fájlfelismerés és fájlkivonatolás.

Alkalmazásérzékelés

A Snort létezésének kezdete óta azt mondják, hogy a Snort nem “alkalmazás-tudatos”. Egyszerűen csak megnézi a szabályainak megfelelő forgalmat, és egyezés esetén intézkedik (riasztás, dobás stb.). Az előfeldolgozók segítenek abban, hogy a forgalmat olyan használható formátumra alakítják, amelyre a szabályok alkalmazhatók: például dekompressziót és dekódolást végeznek, de a Snortnak nem volt szüksége arra, hogy megértse, milyen alkalmazás generálta az adatokat.

Az üzleti követelmények azonban idővel megváltoztak, és a piachoz való alkalmazkodás érdekében a Snort 2014-ben bevezette az OpenAppID-t a 2.9.7-es verziójában. Az OpenAppID lehetővé teszi az alkalmazások észlelését az úgynevezett Layer 7 Detectorok segítségével. Bár egy ismert alkalmazás létezése nem mindig jelent közvetlen biztonsági incidenst (például a Dropbox használata), lehetővé teszi a hálózaton belüli létezés jobb megértését. Nemcsak a korábban ismeretlen alkalmazások találhatók meg, hanem a forgalmukat is el lehet dobni vagy riasztani lehet az AppID összekapcsolásával egy hagyományos SNORT IDS/IPS szabállyal.

A Suricata kissé másképp működik ezen a téren. Támogatja az alkalmazásszintű észlelési szabályokat, és például a protokollok alapján képes azonosítani a nem szabványos portokon zajló HTTP- vagy SSH-forgalmat. Ezután ezekre az észlelésekre protokollspecifikus naplóbeállításokat is alkalmaz.

Nincs igazán jobb vagy rosszabb termék ezen a téren, ez igazából attól függ, hogy mit keres az adott vállalkozás, és melyik rendszer tölti ki legjobban az észlelési hiányosságokat. Mivel mindkettő teljesen nyílt forráskódú, a tesztkörnyezet beállítása viszonylag gyors és olcsó.

Multithreading

A Suricata egyik fő előnye, hogy jóval később fejlesztették ki, mint a Snortot. Ez azt jelenti, hogy sokkal több olyan funkcióval rendelkezik, amelyek manapság gyakorlatilag kihagyhatatlanok. Az egyik ilyen funkció a többszálúság támogatása.

A hálózati forgalom növekedését az évek során szorosan követte az IDS-eszközökkel szembeni feldolgozási igény (másodpercenkénti csomagokban mérve). Szerencsére a Suricata már alapból támogatja a többszálú feldolgozást. A Snort azonban nem támogatja a többszálú feldolgozást. Nem számít, hány magot tartalmaz egy CPU, a Snort csak egyetlen magot vagy szálat használ.

Létezik egy meglehetősen bonyolult megoldás: több SNORT egyszálas példány futtatása, amelyek mind ugyanabba a naplóba táplálkoznak. A folyamat kezeléséhez szükséges többletköltségek (AutoFP) és a magas hardverköltségek miatt azonban ez a beállítás ritkán fordul elő termelési környezetben. A SNORT3 támogatni fogja a többszálú futást, de még mindig az Alpha fázisban van, és Snort++ néven fut. Természetesen nem tanácsos egy Alpha-stádiumú terméket termelési környezetben használni. A többszálúság kétségtelenül erős érv a Suricata mellett a Snort helyett.

Fájlkivonás

A Suricata támogatja a fájlkivonást. Ez egy hihetetlenül hasznos funkció, amely lehetővé teszi a kiválasztott fájlok automatikus kinyerését, amint egy “filestore” opciót tartalmazó szabály aktiválódik. Lehetőség van például az összes .pdf fájl vagy az összes egypixeles .png fájl kinyerésére és egy előre beállított mappában való tárolására a további kézi elemzéshez, a VirusTotal kereséshez vagy akár az automatikus homokdobozoláshoz.

Alternatívák

Míg a Snort és a Suricata minden bizonnyal a legnépszerűbb nyílt forráskódú behatolásérzékelő rendszerek, van néhány alternatíva. A korábban említett frissített SNORT3 kiadás nagyon ígéretesnek tűnik a többszálúság támogatásával, a szolgáltatások azonosításával és egy egyszerűbb szabálynyelvvel. Ez már évek óta fejlesztés alatt áll. Az alfa fázis azonban 2014-re nyúlik vissza, és a sorozatgyártású verzió megjelenési dátuma még nem került meghatározásra.

A hagyományos IDS/IPS megoldásoknak is vannak alternatívái, de ezek néha kissé eltérően működhetnek. A Bro Network Security Monitor (ma már Zeek néven ismert) például inkább anomália-felismerő rendszer. Míg a Snort és a Suricata hagyományos IDS-aláírásokkal dolgozik, a Bro/Zeek szkripteket használ a forgalom elemzéséhez.

A Bro/Zeek jelentős előnye, hogy ezek a szkriptek lehetővé teszik a különböző rendszerek közötti, nagymértékben automatizált munkafolyamatokat is, egy olyan megközelítést, amely a régi “pass or drop” műveleteknél sokkal részletesebb döntéseket tesz lehetővé. A konfigurálása azonban meglehetősen bonyolulttá válhat.

Következtetés

Már több jó nyílt forráskódú IDS lehetőség is létezik. Különbségeik miatt azonban nem minden megoldás működik minden környezetben. A legjobb termékek kiválasztásánál figyelembe kell venni, hogy milyen más, esetlegesen egymást átfedő biztonsági termékek vannak már forgalomban, milyen típusú forgalom halad át a hálózaton, mekkora a forgalom mennyisége és a rendelkezésre álló informatikai személyzet képzettsége.

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

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