Térinformatika tanszék * Keresztmetszet – 2004. Nyugat-Magyarországi Egyetem, Geoinformatikai Főiskolai Kar, Székesfehérvár.
DIGITÁLIS UJJLENYOMAT AZ ADATBIZTONSÁGBAN Kottyán László Nyugat-Magyarországi Egyetem Geoinformatikai Főiskolai Kar Térinformatika Tanszék
ÖSSZEFOGLALÁS A számítógépes rendszerek védelme a betolakodók ellen fontos probléma. A betolakodók képesek a biztonsági hiányosságokat felderíteni, behatolni a rendszerekbe és befolyásolni azokat. A behatolás érzékelő módszerek egyike az állományok módosításának vizsgálata. A digitális ujjlenyomat segítségével az állományok megvizsgálhatók és a betolakodás ténye meghatározható.
ABSTRACT Nowdays it is an important problem to protect computer systems against intruders. Intruders are able to find out security gaps, intrude and influence the systems. One of the intrusion detection methods to check the modification of files. Digital fingerprint is an appropiate tool to check files and detect intrusion.
Az informatika fejlődésével és az internet terjedésével egyre fontosabbá válik a számítógépes rendszerek védelme az illetéktelen személyek ellen. A rendszerek elleni támadások elhárítására számos eszköz létezik, azonban a támadók megfelelő módszerek, eszközök segítségével felderítve a biztonsági hiányosságokat, képesek betörni a rendszerekbe, hogy saját érdekeiknek megfelelően kihasználják azokat. Ezért a védelmi eszközök mellett is fontos felkészülni arra, hogy a rendszer vizsgálatával felderíthető legyen, a rendszer illetéktelen személy befolyása alatt áll-e? A következőkben tekintsük át a behatolók tevékenységeit, módszereit és eszközeit (Shultze, 2002).
Kottyán László: Digitális ujjlenyomat az adatbiztonságban Térinformatika - 2004, NyME GEO, Székesfehérvár
1. CÉLPONT FELTÉRKÉPEZÉSE, INFORMÁCIÓGYŰJTÉS ÉS BETOLAKODÁS A betolakodó első feladata, hogy azonosítsa a kihasználandó rendszert. Port scannerek használatával meg tudja határozni, hogy melyik hoszt kapcsolódott az internetre, milyen TCP és UDP portok vannak nyitva és milyen operációs rendszer van rá telepítve. Ezután a betolakodó megpróbálja meghatározni a web-, ftp- és mailserverek verzióit, illetve a kapcsolataikat a TCP és UDP portokkal. Ez azért lehetséges, mert számos alkalmazás küld véletlenszerű adatokat a hálózaton, amelyekből a futó alkalmazásokat és a verzió információkat lehet azonosítani. Ha a behatoló képes valamely porton a hosthoz kapcsolódni, megkísérel a felhasználónevekről, utolsó belépési dátumokról, jelszómódosítás dátumairól, csoporttagságról információt szerezni, amelyekkel jogosult felhasználóként férhet hozzá a rendszerhez. Az információ gyűjtés irányulhat például a helyi Rendszergazda csoport tagjaira, a Backup (Biztonsági-másolat felelős) felhasználókra, esetleg a Vendég felhasználó jelszavára. Amennyiben az intrudernek nem sikerült jelszót szereznie, a social engineering (társadalom mérnökség) vagy a brute force attack (nyers erő támadás) módszerekhez folyamodhat. A social engineering lényege, hogy a felhasználókat félrevezetve, megfélemlítve, jóhiszeműségüket kihasználva vagy lefizetve, megszerezzék a szükséges adatokat. A brute force attack, hadviselés bármely alkalmazás vagy szolgáltatás ellen, amelyek felhasználói azonosítást végeznek. A brute force attack eszközök, felhasználói jelszó és felhasználónév párok kombinációit próbálgatva, bizonyos idő elteltével, sikeresen hozzáférhetnek a rendszerhez.
2. JOGOSULTSÁG KITERJESZTÉSE, BACKDOOR TELEPÍTÉSE, RENDSZER BEFOLYÁSOLÁSA Miután az intruder felhasználói hozzáférést nyert egy hosthoz, adminisztrátori jogosultságra kíván szert tenni. Ezt rendszerint a hozzáférhető információforrások áttekintésével kezdi el megvalósítani. Ezek a következők: o o o
batch (kötegelt) fájlok: felhasználó neveket, jelszavakat tartalmazhatnak, regisztrációs bejegyzések (registry keys): alkalmazások vagy felhasználók jelszavai, e-mailek, dokumentumok, amelyek szintén tartalmazhatnak értékes adatokat.
2
Kottyán László: Digitális ujjlenyomat az adatbiztonságban Térinformatika - 2004, NyME GEO, Székesfehérvár
Az úgynevezett statikus információk begyűjtése után a behatoló trójai programot helyezhet el a rendszerben. A trójai programok az alkalmazásokba, szolgáltatásokba írt kódrészletek, amelyek gyűjtik a felhasználói és jelszó adatokat, kiterjesztett jogosultsághoz juttathatják a behatolót, elrejtik tevékenységét és backdoorokat készítenek. A backdoor, azaz hátsó ajtó a betolakodónak lehetőséget nyújt a legrövidebb idő alatt, azonosítási procedúra nélkül, észrevétlenül visszatérni a rendszerbe. A betolakodó a megszerzett adminisztrátori jogosultsággal, telepített backdoorral képes tetszése szerint befolyásolni a rendszert.
3. TEVÉKENYSÉG ELREJTÉSE, ÁLLOMÁNYOK MÓDOSÍTÁSA A behatolók tevékenységüket igyekeznek elrejteni a felhasználók elől. Annak megállapítására, hogy egy rendszer illetéktelen személy befolyása alatt áll-e, a behatolás érzékelő eszközök alkalmasak. A betolakodó a tevékenysége közben nyomokat hagy maga után a rendszer állományaiban, illetve az árulkodó nyomok eltüntetésére tett kísérlete újabb nyomokat eredményezhet. A behatolás érzékelésének egyik módja az állományok vizsgálata arra vonatkozóan, hogy illetéktelen személy módosította-e azokat. Az operációs rendszerek állományai alapvetően két csoportba sorolhatók, változásuk, módosításuk szempontjából. Az egyik csoportba azok az állományok tartoznak, amelyeket a rendszergazda a telepítés alkalmával beállít és a rendszer frissítéséig nem módosít. Ide tartozak például a konfigurációs és a bináris állományok. A másik csoportba azok a fájlok tartoznak, amelyeknek egy esemény hatására gyakran módosulhat a tartalmuk. Tipikusan ilyen állományok a napló és a jelszó állományok. Azokat a fájlokat, amelyeket a behatolónak érdekében áll módosítani, mindkét csoportban megtaláljuk. Az alábbiak veszélyeztetettek a betolakodó részéről: felhasználói fiókok, csoportok, jogosultságok, konfigurációs beállítások, szolgáltatások, alkalmazások, jobok állományai, bináris és napló fájlok, osztott és rejtett állományok (CERT, 2000).
4. DIGITÁLIS UJJLENYOMAT Az első csoportba tartozó állományok esetében a módosításuk érzékelésére jó megoldás a hasító táblák alkalmazása. A hasító táblák dinamikus adathalmazokra alkalmazhatók, fix hosszúságú hasított értékeket, tárolnak, amelyeket egy hasító algoritmus generál a tetszőleges változó hosszúságú bemenő adatokból. Egy bemenő adatból a függvény mindig ugyanazt a hasító értéket generálja, így a bemenő értékek összehasonlíthatók.
3
Kottyán László: Digitális ujjlenyomat az adatbiztonságban Térinformatika - 2004, NyME GEO, Székesfehérvár
Az ún. message-digest (üzenetkivonatoló) algoritmusoknál is ezt az elvet alkalmazzák a gyakorlatban. Az RFC1321-es jelű dokumentumban megtalálható az „RSA Data Security, Inc. MD5 Message-Digest Algorithm” nevű algoritmus leírása, amely a következő: „Az algoritmus bemenetként tetszőleges hosszúságú üzenetet kap, amelyből egy 128 bites ujjlenyomatot vagy üzenetkivonatot készít. Feltételezhető, hogy számítási időigénye miatt lehetetlen két olyan üzenetet előállítani, amelyekből az algoritmus ugyanazt a kivonatot állítaná elő, vagy lehetetlen bármely olyan üzenetet előállítani, amely megfelel egy előre adott célkivonatnak.” Ha egy fájlra alkalmazzuk az MD5 algoritmust, akkor egy egyedi ujjlenyomatot kapunk. Ha a fájlban az adatok bármilyen módon megváltoznak, akkor megváltozik a fájl ujjlenyomata is. A bináris és konfigurációs állományok esetén, ez a megoldás azért hatékony, mert bármely alkalommal összehasonlítva az ujjlenyomatokat a rendszergazda képes észlelni azt a tényt, hogy a fájlok tartalma megváltozott. A második csoportba tartozó állományok esetén, mivel az állományok tartalma dinamikusan változik, ez a módszer nem alkalmazható. A logfájlok tartalmának változása nem utal arra, hogy behatoló módosította volna azokat. Ebben az esetben célszerű az állományok tulajdonságaiban történő változásokat vizsgálni. Például a hozzáférési jogosultság, tulajdonos és csoport azonosító, fájlrendszer eszközszám, Icsomópont szám vagy egyéb jellemzők változása, amely utalhat intruder tevékenységre.
5. BEHATOLÁS ÉRZÉKELÉS A digitális ujjlenyomat módszerét felhasználva az első csoportba tartozó, a Linux operációs rendszer konfigurációs és bináris állományai módosításának vizsgálatára kidolgoztam egy (Kottyán, 2003), a célra hatékonyan használható, eszközt, amelynek a Smart Intrusion Detection (SID) nevet adtam. Az elnevezés utal a program fürgeségére (a smart szó egyik jelentése: gyors, fürge), amely a hash technikának köszönhető. A hash táblákat a digitális ujjlenyomat készítésénél és a feldolgozott adatok tárolásánál is alkalmaztam. Célom az alábbi szempontok megvalósítása volt: o o o o o o o o
hatékony és megbízható algoritmus használata az állományok módosításának érzékeléséhez könnyen használható, grafikus felület elkészítése nagy számú állomány együttes vizsgálata a vizsgálatban résztvevő állományok kiválaszthatósága és a kiválasztás módosíthatósága a vizsgálat adatainak tárolása hatékony adatbázis műveleteket lehetővé tevő adatstruktúra jelentés készítése az elvégzett műveletekről naplózás
4
Kottyán László: Digitális ujjlenyomat az adatbiztonságban Térinformatika - 2004, NyME GEO, Székesfehérvár
o o
Linux operációs rendszer alatt működjön platformfüggetlen fejlesztőeszköz használata, a későbbi más operációs rendszerre való átültethetőség érdekében
A feladat megoldására a Perl programnyelvet választottam, mert ingyenes, hatékony a rendszergazdai feladatok megoldásában és számos perlmodul áll rendelkezésre. A legfontosabb felhasznált Perl modul a Digest::MD5, amely digitális ujjlenyomatokat állít elő. Az adatok tárolásához a Berkley DB adatbázist választottam, amely rendelkezik hash adatbázis típussal és a tie() mechanizmus segítségével egyszerűen csatolható a Perl hash adattípushoz. Gyors adatbázis műveleteket tesz lehetővé. Az eredeti vagy betolakodó által minden bizonnyal nem módosított állományt „tiszta állománynak”, a tiszta állományról készült digitális ujjlenyomatot „tiszta digitális ujjlenyomatnak” nevezem. A fájlnév kifejezés alatt a SID funkcióinak megvalósításával kapcsolatban, a gyökérkönyvtárból kezdődően megadott elérési utat és az állomány nevét értem. A Smart Intrusion Detection az állományok biztonságos használatának elősegítése érdekében a következő funkciókkal rendelkezik: 1. tiszta digitális ujjlenyomat készítés a megadott állományokról (célszerűen tiszta állományokról), a tiszta digitális lenyomat adatbázisban történő tárolása a fájlnevekkel együtt és az elvégzett műveletek jelentése 2. az állományok tisztaságának ellenőrzése az elkészített ujjlenyomat és a tiszta ujjlenyomat összehasonlítása által, az eredmény jelentése 3. a tiszta ujjlenyomat cseréje, jelentés 4. az adatbázis elemeinek törlése 5. naplózás 6. felhasználói segédlet A főprogram a sid.pl futtatható állomány. Első használatkor az adatbázis feltöltését a feltolt.pl állomány valósítja meg, amely egy lista állományból dolgozik. A napló bejegyzéseket a sidlog állomány tárolja. A SID két adatbázis állományt használ, a sid.db-t és a vizsgalat.db-t. Az adatbázis fájlok 640-es hozzáférési engedéllyel rendelkeznek. Mindegyik állomány Berkley DB DB_HASH típusú adatbázist tartalmaz. A sid.db állomány tartalmazza azt az adatbázist, amelyben a tiszta lenyomatok tárolódnak fájlnév – digitális lenyomat párokban, ahol a fájlnév a hash kulcsa és a lenyomat a hash értéke. A vizsgalat.db állomány az aktuálisan létrejött digitális lenyomatok fájlnév – digitális lenyomat párokban történő ideiglenes tárolását látja el. A súgó szövegét a sugo.pod állomány tárolja.
5
Kottyán László: Digitális ujjlenyomat az adatbiztonságban Térinformatika - 2004, NyME GEO, Székesfehérvár
Az alábbi menük biztosítják a felsorolt funkciókat: 1.1.
BEÁLLÍTÁS
A Beállítás menü lehetővé teszi a felhasználó számára, a 1. funkció és a 4. funkció használatát, azaz állományokról tiszta lenyomat készítését, tárolását, törlését, és az eredmény megtekintését. A főablak Beállítás menügombra kattintva megjelenik az aktív Felvétel, az inaktív Törlés és Jelentés oldalak (1. ábra).
1. ábra. Beállítás menü A Felvétel oldalon, egy beviteli mezőre kattintva beírható vagy kiválasztható a felveendő állomány, amelyről digitális ujjlenyomatot kívánunk készíteni. A Törlés oldalon a digitális lenyomatot eltávolíthatjuk a sid.db adatbázisból. A Felvétel és a Törlés műveletek eredménye a Jelentés oldalon tekinthető meg. Megoldandó feladat volt az üresen hagyott beviteli mezők, nem létező állománynevek, a már felvett állományok és az olvasásra meg nem nyitható állományok esetén indított műveletek kezelése. 1.2.
VIZSGÁLAT
A Vizsgálat menü lehetővé teszi a felhasználó számára a 2. funkció használatát, azaz az állományok tisztaságának ellenőrzését és az eredmény megtekintését. A kiválasztott állományokról egy új lenyomat készül a vizsgal.db adatbázisban, majd összehasonlításra kerül a sid.db adatbázisban tárolt tiszta lenyomatokkal. Csak az az állomány választahtó ki, amelyről már készült előzetesen tiszta lenyomat. Szükséges volt kezelni és jelenteni az alábbi eseteket a vizsgálat végrehajtásánál: a fájl nem található (tehát módosítva lett), nem választott ki fájlt a felhasználó, módosítva lett a fájl (nem egyezik meg az ujjlenyomat), nem nyitható meg az állomány.
6
Kottyán László: Digitális ujjlenyomat az adatbiztonságban Térinformatika - 2004, NyME GEO, Székesfehérvár
1.3.
FRISSÍTÉS
A Frissítés menü lehetővé teszi a felhasználó számára, a 3. funkció használatát, azaz a tiszta lenyomatok cseréjét és az eredmény megtekintését. A frissítés akkor szükséges, ha állomány csere történt a rendszerben, például jogosulatlan módosítás gyanúja miatt. A frissítés a sid.db állományban lévő ujjlenyomatot törli és létrehoz egy újat. A művelethez az adatbázisból készült állománylista teszi lehetővé a kiválasztást. Kezelendő eset, ha fájl nem található (tehát módosítva lett), ha nem választott ki fájlt a felhasználó, ha nem nyitható meg az állomány. 1.4.
NAPLÓ
A Napló menü lehetővé teszi a felhasználó számára, a 5. funkció használatát, azaz a sidlog állomány tartalmának megtekintését. Az állomány tartalmazza a műveletekhez tartozó bejegyzéseket amelyek a következő típusúak lehetnek: 1. L típusú: „L” kezdőbetűvel jelenik meg, normál log bejegyzés, tájékoztatás céljából, 2. A típusú: „A” kezdőbetűvel jelenik meg, ha az esemény alert log bejegyzés, azaz az állomány módosult, 3. ! típusú: „!” jellel kezdődik, ha az esemény figyelmeztetés, 4. !! típusú: „!!” jellel kezdődik, ha az esemény adatbázissal kapcsolatos figyelmeztetés. 1.5.
SÚGÓ
A Súgó menü lehetővé teszi a felhasználó számára, a 6. funkciót, azaz a felhasználói segédlet használatát. A sugo.pod fájl tartalma beolvasásra kerül. A sugo.pod-ban elhelyezett hyperlink hivatkozásokra kattintva, a kiválasztott dokumentumok betöltődnek és tartalmuk megtekinthető.
6. TOVÁBBI FEJLESZTÉSI LEHETŐSÉGEK o o
Dinamikusan változó állományok vizsgálata: a digitális lenyomat készítés úgy alkalmazható, ha az állományok jellemzőiből készítünk lenyomatot és ezt vizsgáljuk. A logfájlok rotálása: a logfájlok rotálására a (Blank-Edelman, 2002) irodalom említ eljárásokat. A rotálás lényege, hogy vagy egy adott idő után, vagy egy adott méret elérése esetén a logfájlt átnevezzük, pl.: sidlog.0 lesz a neve. A naplózás tovább folytatódik, úgy ,hogy keletkezik egy üres sidlog fájl. A következő fázisban ismétlődik a lépés, először sidlog0 sidlog1-re, majd sidlog sidlog0-ra változik és létrejön egy üres sidlog fájl. Ezek a fázisok addig ismétlődnek, amíg egy bizonyos határt el nem ér a logfájlok száma. Ekkor, a legrégibb fájl törlődik. A Perlben létezik modul erre a feladatra, a Logfile::Rotate, amely zárolja a logfájlt, és végrehajtja a rotálást. Ez azonban még nem elég, gondoskodni kell
7
Kottyán László: Digitális ujjlenyomat az adatbiztonságban Térinformatika - 2004, NyME GEO, Székesfehérvár
o
arról, hogy a megfelelő időben történjen meg a rotálás. A feladat megoldását úgy képzelem el, hogy a főprogram az indítását követően létrehoz egy rotáló folyamatot, amely figyeli a következő rotálás időpontját vagy a logfájl méretének növekedését, hogy a szükséges pillanatban végre tudja hajtani a műveletet. A naplófájl zárolása idejére vagy teljesen felfüggesztődne a naplózás, vagy egy ideiglenes pufferben tárolódnának a logok, hogy amint lehet az új, üres logfájlba íródjanak. Monitorozás: Ha hálózatos környezetben dolgozik a felhasználó akkor előfordulhat, hogy minden percben ki van téve betolakodói támadásoknak. Ebben az esetben az állományok vizsgálatára a SID-et meglehetős gyakorisággal kellene használni, amely nem praktikus megoldás. Ennek kiküszöbölésére, hasznos lehet a SID továbbfejlesztése oly módon, ha rendelkezik egy aktív résszel, amely folyamatosan a háttérben fut és időközönként automatikusan elvégzi a az állományok vizsgálatát. Ez a monitorozás kiterjeszthető úgy is, hogy több aktív, a háttérben futó folyamat indul el a hálózatban lévő különböző gépeken, és jelentést küld a rendszergazda gépén futó vezérlő folyamat számára. Mindkét esetben izgalmas feladat az ütemezés és a processzek közötti kommunikáció megvalósítása.
Irodalom 1. 2. 3. 4.
Kottyán L.: Diplomamunka, Miskolci Egyetem, Miskolc, 2003. Shultze, E.: Thinking like a hacker, 2002, Shavlik Technologies, http://shavlik.com CERT Coordination Center: Steps for Recovering from a Unix or NT System Compromise, 2000, http://www.cert.org D. N. Blank-Edelman: Perl rendszergazdáknak, Kossuth Kiadó, Budapest, 2002.
8
Kottyán László: Digitális ujjlenyomat az adatbiztonságban Térinformatika - 2004, NyME GEO, Székesfehérvár
CÍM
CONTACTS
Kottyán László Nyugat-Magyarországi Egyetem Geoinformatikai Főiskolai Kar Székesfehérvár. Pirosalma u. 1-3.
Laszlo Kottyan College of Geoinformatics, University of West Hungary Pirosalma u. 1-3. Szekesfehervar HUNGARY Tel. +36 22 516 553 Fax +36 22 516 521 Email:
[email protected]
Tel. 06 22 516 553 Fax 06 22 516 521 Email:
[email protected]
SZAKMAI ÉLETRAJZ
BIOGRAPHICAL NOTES
Okleveles mérnök-informatikus diplomámat a Miskolci Egyetemen, alkalmazásfejlesztő szakirányon szereztem. 2004. februártól a Nyugat-Magyarországi Egyetem Geoinformatikai Főiskolai Karán, a Térinformatikai tanszéken, mint tanszéki mérnök tevékenykedem. 2004. szeptemberétől Ph.D tanulmányokat folytatok, kutatási témám: Döntéstámogatás a birtokrendezésben.
I graduated from the University of Miskolc, having an M.Sc. in Information Engineering, specialisation of Software Engineering. From February 2004 I work at the Department of Geoinformation Science, College of Geoinformatics, University of West Hungary. From September 2004 I perform Ph.D. studies. My research project is Decision Support in Land Consolidation. .
9