- English
- Magyar
1. „Ki őrzi az őrzőket?” - Terminálforgalom tartalmi feldolgozása és ellenőrzése alkalmazásszintű tűzfalakon
Az alkalmazásszintű tűzfaltechnológiának egyik nagy előnye, hogy segítségével részletes információkat kapunk nem csak a kapcsolat kezdő- és végpontjáról, de az átvitt protokollban továbbított üzenetekről is. A Zorp tűzfalrendszer több adminisztratív, terminálforgalmat átvivő protokoll szűrésére is alkalmas, azokat az egyes billentyűleütések szintjéig képes kibontani.
A szakdolgozó feladata lehet ezen technológia felhasználásával az áthaladó terminálforgalom tartalmi szűrésének megvalósítása: megvizsgálni, milyen problémák adódhatnak és mikre adható így megoldás, elemezni és megtalálni, milyen megközelítés alkalmazható (whitelist v. blacklist, heurisztikák) a szűrésre, majd elkészíteni egy működő implementációt.
2. Adatvédelem a naplózásban: logüzenetek anonimizálása
Egy rendszerben születő naplóüzenetek gyakran tartalmazhatnak szenzitív, bizalmas adatokat -- elegendő csak a banki adatbázisszerverekre vagy egészségügyi rendszerekre gondolnunk -- de még egyszerűbb esetekben is rengeteg információt rögzítenek a felhasználók tevékenységéről.
Magyarországon, de Európa más országaiban is szigorú szabályozások vonatkoznak az állampolgárokról gyűjtött adatokra, azok kezelésére, és ez sok esetben kötelezettséget jelent a naplóüzenetek kezelésére is és általában az adatok megőrizhetőségének idejét is korlátozza. Más szempontokból azonban fontos lehet hosszabb időn keresztül megőrizni a naplóüzeneteket, ezért szükséges megoldani, hogy azokból a személyes adatnak minősíthető üzenetek az eredeti tartalom minél csekélyebb torzításával eltávolíthatóak lehessenek.
Ezen folyamat során több problémával is szembesülhetünk, melyek elemzése-megoldása adhatja egy diplomamunka gerincét:
- Effektíven szükséges megtalálnunk egyáltalán az eltüntetendő adatot és azt megfelelőképp el kell tudnunk távolítani.
- Ki kell építenünk egy rendszert, ami az anonimizálás folyamatát kezelni tudja (pl. bizonyos idő után kiszedi a személyes adatokat, bizonyos idő után teljesen töröl stb.).
- Szükséges lehet olyan módon eltávolítani az adatokat, hogy statisztikai eloszlásuk ennek ellenére még mindig elemezhető legyen.
- Biztosítani kell, hogy az anonimizálás olyan módon történik, hogy abból az egyes személyeket bizonyos fixpontok alapján nem lehet visszakövetni. A téma adatbázisok területén jelentős irodalommal rendelkezik, ezt lehetne naplóüzenetek terén is alkalmazni.
3. Digitális aláírás a naplózásban: a syslog-sign protokoll
A naplóüzenet-kezelés egy fontos problémája az üzenetek integritásának biztosítása tárolásuk és továbbításuk során. A letárolt naplófájlok és két pont közti továbbítás integritásának megóvására léteznek kész eszközök (syslog-ng logstore-formátuma, SSL-lel védett kapcsolat stb.), azonban egy teljes naplóstrukturán történő logfeldolgozás és -továbbítás esetén korántsem ilyen egyszerű a helyzet.
A legnagyobb probléma ugyanis az, hogy hálózaton való átküldéskor és tároláskor alkalmazott integritásvédelmi megoldások azt garantálják, hogy egy naplóinfrastruktúrában két pont között a hálózaton illetve az egy adott helyen letárolt logüzenetek nem változtak meg - arra vonatkozóan viszont nincs információnk, hogy mi történt a köztes pontokon. Egy teljes infrastruktúrában teljesen legitim feladata lehet egy relay-nek, hogy változtasson a rajta átfolyó üzenethalmazon: szortírozza őket, elnyomja a duplikált üzeneteket, szűrje ki a kevésbé fontosabbakat stb.. Nagyon fontos viszont, hogy ezek a változtatások visszakövethetőek legyenek, hogy tudjuk, pontosan milyen beállítások mellett kaptunk egy adott üzenetet.
Erre a problémára ad megoldást a syslog-sign szabványtervezet. A megoldás az IETF syslog protokollban megteremtett strukturált mezőket használja fel arra, hogy a hitelesítéssel kapcsolatos információkat továbbítsa. Alapvetően két típusú plusz üzenetet hoz be: az aláírást, amiben egyben autentikál több korábban beérkezett üzenetet és az aláíráshoz felhasznált tanúsítványokat közlő-továbbító Payload illetve Certificate Block-okat. Az aláírásblokkok korábbi logüzenetek hash-eit és az azokon számolt aláírást tartalmazzák több kiegészítő információval együtt, ami lehetővé teszi a különféle visszajátszásos és man-in-the-middle támadások detektálását. A protokoll használatával lehetővé válik, hogy akár egy alapvetően nem biztonságos syslog-infrastruktúrán keresztül tudjunk küldeni naplóüzeneteket, amiket előtte aláírunk úgy, hogy aztán a túlsó oldalon ellenőrizni tudjuk integritásukat.
Bár a protokoll még csak draft-változatban van, a jelenlegi tervezet elemzése, egy referencia-megoldás kidolgozása a syslog-ng-hez és ez alapján vizsgálatok elvégzése alapjául szolgálhat egy szakdolgozatnak.
4. A káoszban is van rendszer: összetett események felismerése, korreláció-keresés naplóüzenetekben
A naplóüzenetek sokszor nem magukban, önállóan érdekesek, hanem összefüggéseikben: egy esemény gyakran több különböző rendszerben vált ki üzeneteket. Ezen összefüggések online és offline módon történő felismerésével jelentős mennyiségű plusz információt nyerhetünk ki, eseményeket jelezhetünk előre, rendszerhibákat vagy támadásokat előzhetünk meg.
A téma hatalmas irodalommal rendelkezik, ennek áttanulmányozása és összegzése adhatja egy szakdolgozat-téma alapját. Ezen alapulva lehetséges a piacon megtalálható korrelációs eszközök (SIEM és egyebek) elemzése, majd az elérhető eszközök segítségével egy syslog-ng-n alapuló megoldás kidolgozása.
5. Naplóüzenetek szövegelemzése és effektív tokenizálása
Több naplóüzenet-feldolgozó feladat (indexelés kereséshez, patterngenerálás stb.) első lépése a logok "szavakra" darabolása. Ez azonban nem triviális feladat, lévén a beszélt szöveggel ellentétben egy naplóüzenet logikai blokkjai nem mindig a szóközökkel elválasztott szavak (pl.: "User logged in, name='gyp',source_ip='10.10.1.2'"). Több elválasztó karakter felvétele a listába sem oldja meg a problémát, lévén például a pont vagy a kettőspont egy mondatban tényleg szóhatárt jelölhet, míg egy IP- illetve MAC-cím esetén egyben kell kezelnünk a blokkot. Előre ismert üzenetfajták esetén a syslog-ng db-parser megoldása lehetővé teszi az ilyen elkülönítést, egyes blokkok kivágását, de ismeretlen üzenetek esetén a probléma nem megoldott.
A szakdolgozó feladata lehet egy effektív, alacsony teljesítményigényű, nagy mennyiségű adatra is alkalmazható eljárás kidolgozása és implementálása, ami előzetes információk nélkül képes egy, az egyszerű előre megadott elválasztó-karaktekterek mentén történő vágásnál intelligensebb üzenetdarabolást megvalósítani.
6. Backtrace a logban: többszörös naplóüzenetek kezelése
Bár több alkalmazás rutinszerűen ad ki magából több sorba tördelt naplóüzeneteket (egyik leggyakoribb példaként említhetőek a Tomcat server backtrace-ei), mégis, a többsoros logok kezelése a naplózás "mostohagyermeke". Változó a kezelésük, néhol soronként egy-egy üzenetetbe tördelődnek, néhol egyetlen, sortörés-karaktereket tartalmazó logba kerülnek bele. Az előbbi megoldás problémája, hogy könnyen elveszíthetjük az összetartozó információk közti kapcsolatot, az utóbbié, hogy kezelésük több ponton problémás, hálózati protokollok illetve naplókezelő alkalmazások nem kezelik tökéletesen az ilyen "rendetlen" üzeneteket.
A szakdolgozó feladata lehet a probléma körbejárása, a legfontosabb use case-ek azonosítása, majd egy eljárás kidolgozása és implementálása, amivel ezek megfelelő módon kezelhetőek.
7. Naplóüzenetek kezelése statisztikai eszközökkel: üzenetminta-előállítás klaszteranalízis segítségével
A naplókezelésben az egyik legkritikusabb probléma a születő hatalmas adatmennyiség azonnali illetve későbbi feldolgozása, melyet különösen nehézzé tesz, ha a naplóüzenetet egyszerű strukturálatlan szövegként jelenik meg. Bár léteznek naplózó technikák, melyekkel strukturált üzeneteket továbbíthatunk – megkönnyítve a későbbi feldolgozást –, ezek használata többnyire körülményes és csak szűk területeken terjedtek el, a jellemző naplózási forma még mindig az egyszerű szöveges üzenet. A syslog-ng-hez készült "patternize" néven egy, a klaszteranalízis technikáján alapuló megoldás. Ez a syslog-ng-hez használható minta-adatbázist képes előállítani egy naplóüzenet-halmaz alapján, melynek segítségével effektíven csoportokba tudjuk sorolni az üzeneteket időigényes kézi feldolgozás nélkül, ezzel jelentősen megkönnyítve a későbbi naplókezelést.
Ez a megoldás azonban még nagyon gyerekcipőben jár és egy szakdolgozó feladataként több ponton elképzelhető a bővítése.
Az egyik lehetséges irány a felhasznált klaszteranalizáló algoritmus javítása, lecserélése. A jelenleg használt algoritmus Risto Vaarandi SLCT programjához kifejlesztett megoldás, azonban léteznek más klaszterező algoritmusok is, melyek alkalmazhatóak lehetnek naplóüzenet-jellegű adathalmaz csoportosítására. A szakdolgozó feladata lehet ezek irodalmának áttekintése, egy vagy több egyéb algoritmus implementálása és a létező keretrendszerbe történő beillesztése és az eredmények összehasonlítása, vizsgálata.
Egy másik lehetséges, akár az előzővel együtt is megvalósítható irány a megoldás jelenlegi problémáinak azonosítása és javítása. Gondok vannak az üzenetdarabolással, a memóriahasználattal (jelenleg a teljes adathalmazt be kell olvasnia a memóriába, ami limitálja a használhatóságot), és ide érthető az egyes pontokon alkalmazható többszálúsítás megvalósítása is.
