Trója ostromának tizedik évében Odüsszeusz cselhez folyamodott: egy falovat...
Trója ostromának tizedik évében Odüsszeusz cselhez folyamodott: egy falovat készített, amelynek bendőjébe görög harcosok bújtak, a hadsereg többi része elvonult. A trójaiak ajándéknak tekintették a falovat, és bevontatták a várba. Éjjel a falóba rejtőzött harcosok kimásztak, majd megnyitották az utat a többi görög harcos részére…
A történet ugyanígy néz ki a számítógépek világában is: a támadó egy ügyes trükkel eléri, hogy az áldozat egy általa készített kódot futtasson a gépén, ez a kód pedig, a görög „elit alakulathoz” hasonlóan, bármilyen más támadást pofonegyszerűvé tesz. A trójaiakkal kapcsolatban három dolgot kell megvizsgálnunk: 1) hogyan lehet bejuttatni a trójait; 2) hogyan tudja észrevétlenül ellátni a feladatát; 3) milyen támadásoknak nyit utat.
Bejutás
A klasszikus módszer, ami az eredeti mítoszhoz is jól illik, hogy valamilyen internetről letölthető vagy kéz alatt terjedő hasznos kis program tartalmazza a kártékony kódot. Ilyenekkel találkozhatunk ingyenes képernyőkímélők, „hasznos” alkalmazások vagy warez oldalakról letöltött programocskák formájában. Ez a fajta terjesztési módszer, a természetéből fakadóan nem célzott, azaz nem egy kiszemelt áldozat gépe fölött lehet vele megszerezni az uralmat, hanem sok ismeretlen áldozatot szed.
Hogyan védekezzünk?
Elcsépelt ugyan, de „csak megbízható forrásból származó programokat futtassunk”. Ha ingyenes programokat töltünk le a netről, több forrásból is ellenőrizzük - ha a fájlméretek különböznek, biztosan baj van. A digitális aláírás garantálja, hogy az aláíró után senki más nem kontárkodott bele a programba, bár ettől még lehet kártékony a program. Viszont a sérült digitális aláírás mindenképpen bajt jelent. Néha nem is kell a felhasználót rávenni programok futtatására, ugyanis elképzelhető, hogy programhiba folytán automatikusan lefut egy alapvetően ártalmatlan fájlba ágyazott kártékony kód. Ezeket a réseket a legtöbb szoftvergyártó, amint teheti, kijavítja, de mindig is lesznek felfedezetlen hibák, és mindig vannak felelőtlen felhasználók, akik nem telepítik a frissítéseket. Illusztrációképpen álljon itt néhány példa már betömött résekre.
Az áldozat kap egy HTML formátumú e-mailt, amelynek – kevéssé ismert funkció (!) – háttérzenéje is van. A levelezőprogram megkéri az operációs rendszert, hogy futtassa le a háttérzenét. Az operációs rendszer végrehajtja a futtatás parancsot, de nem ellenőrzi, hogy a háttérzene nem zene, hanem egy program.
Az áldozat kap egy dokumentumot, amelyben van makró (a makró bármire képes, amire egy program), de nem olyan formátumban, ahogy szabvány szerint lennie kellene. A dokumentumot megnyitó program nem találja a makró bejegyzést, ezért nem is kérdezi meg a felhasználót, hogy szeretne-e makrókat futtatni – a dokumentum korlátozás nélkül nyílik meg. Megnyitás közben viszont a szándékosan sérült formátumú dokumentumban a program mégis felismeri a makrót és futtatja.
Az MP3 formátumú zenefájlban el lehet tárolni az előadót, a címet stb. Ezt a mezőt a támadó olyan hosszúra írja, hogy amikor az egyik adott lejátszó-program beolvassa a memóriába, a saját programkódját is felülírja vele (úgynevezett buffer overrun), és máris fut az áldozat gépén az MP3 fájlba rejtett kártékony kód.
A támadó egy weblapot készít, amelynek egyik szövegrészlete egy kacifántos hivatkozáson keresztül egy másik fájlból származik. A hivatkozott dokumentum igazából egy futtatható állomány, és a kiszolgáló ezt jelzi is a válaszüzenet fejlécében (mime-type). A böngésző a hivatkozott dokumentumot betölti abból a célból, hogy kiírja a tartalmat a fő dokumentumba – de mivel a kiszolgáló futtatható állománynak jelezte, a betöltéskor lefuttatja.
Hogyan védekezzünk?
Mindig telepítsük fel a legújabb frissítéseket minden programunkhoz! Ettől még valószínűleg maradnak felfedezetlen biztonsági rések a rendszerünkön, de legalább a jól ismert hibáknak nem esünk áldozatul. A dokumentum jellegű állományoknál is ügyeljünk a megbízható forrásra, és ne nyissunk meg olyat, amire nincs szükségünk.
Amikor a kollega támad
Nézzünk néhány módszert, amellyel egy cégen belüli támadó (elkeseredett alkalmazott vagy beférkőzött hacker) csempészi a trójai programot munkatársai gépére.
A legegyszerűbb: belerejti valamelyik közösen használt megosztáson lévő fájlba, és ráveszi az áldozatokat, hogy futtassák.
A trójait automatikusan futtatandóként becsempészi az áldozat felhasználói profiljába vagy gépére.
A támadó új nyomtatót telepít fel a gépére, és ráveszi az áldozatot, hogy csatlakozzon hozzá hálózaton keresztül. Ilyenkor a kényelem érdekében az áldozat gépe automatikusan a támadó gépéről szerzi be az illesztőprogramot…
A támadó a lebukás veszélye nélkül „elveszít” egy pendrive-ot az irodában. Az áldozat meg szeretné tudni, hogy kié az eszköz, és beteszi a gépébe, a pendrive-on beállított automatikus lejátszás pedig telepíti a trójait.
Ha a rendszergazda elővigyázatosságból letiltotta az automatikus lejátszást, akkor is jó esélyei vannak a támadónak: például elhelyez egy „önarckép” vagy hasonló izgalmas nevű futtatható állományt. Az állomány futtatáskor telepíti a trójait, majd ír egy hibaüzenetet, hogy az állomány sérült, és formázza a pendrive-ot.
Hogyan védekezzünk?
Legyünk mindig szkeptikusak! A jóhiszeműség és kíváncsiság a két legjobban kihasználható emberi tulajdonság.
Fuss, de senki se lásson!
A görög „elit alakulat” igencsak kínos szituációba került volna, ha a faló bevontatása közben lebuknak, és az akció sem lett volna sikeres, ha nem tudnak csendben kilopódzni a bejutás utáni éjjel, és nem tudják értesíteni a sereg kint maradt részét, hogy szabad a pálya.
Ugyanígy van ez a modern trójai falovak esetében is. Feltűnésmentesen kell futniuk és kommunikálniuk. A „közönségdíjas” trójai falovak rövid pályafutásra vannak kárhoztatva, ugyanis ezek hamar bekerülnek a víruskereső programok adatbázisaiba. Tehát egy jó víruskereső kevés esélyt hagy a nagy tömegben, klasszikus módon terjesztett trójai falovaknak. Ugyancsak csökken az esélyük az amatőr hackereknek, akik egy netről leszedett „trójai falovat gyártó program” nagy piros gombját megnyomva szeretnének támadásba lendülni (ilyen támadók a játékból hackelő tizenéves ún. script kiddy-k és a kevéssé képzett, de csalásra készülő alkalmazottak).
Az igazán dörzsölt hackerek viszont a saját trójai falovukat fogják becsempészni, amiket a vírusirtó programok nem ismernek, mert nem elterjedtek. Saját trójait nem nehéz írni.
Ezer módja van annak, hogy egy rosszindulatú kódot elrejtsenek, és úgy állítsák be a rendszert, hogy az minden egyes induláskor futtassa az említett kódot. A trójaik detektálásban segíthet a böngészőbővítmények, alapértelmezett sablonok és bővítmények ellenőrzése, továbbá a Sysinternals gyűjtemény Autoruns programja, de a dörzsölt hackerek ellen gyakorlatilag esélytelenek vagyunk. Az elrejtésnél például nem elég csak arra gondolni, hogy a támadó olyan helyre és olyan névvel helyezi el a programot, hogy ne legyen feltűnő. Az NTFS „alternate streams”, kevéssé ismert funkciójával valóban láthatatlan fájlokat lehet létrehozni egyszerű felhasználóként. Rendszergazdai jogokkal pedig akár root-kitet is telepíthet a támadó: ekkor magát az operációs rendszert úgy módosítja, hogy „illetéktelen” szemlélő ne tudja elérni az elrejtendő kártevőt, se a fájlrendszerben, se a memóriában.
A másik érdekes kérdés a trójai kommunikációja a támadóval. Mivel egyre több gép rendelkezik folyamatos, szélessávú internetkapcsolattal, a támadónak elég egy minimális, hátsó kaput biztosító trójait írnia, ami csak szorgosan „bejelentkezik”, és vár a következő parancsra. Ha valamilyen támadást akar indítani a hacker, elég közvetlenül a végrehajtás előtt letölteni a támadás programját. Ennél a pontnál talán megörül a Kedves Olvasó: hiszen ha a vírusirtó nem is fedezi fel a trójait, majd a tűzfal megfogja a kommunikációt! Sajnos erről szó sincs. ActiveX segítségével tetszőleges program el tud indítani és vezérelni egy rejtett Internet Explorer ablakot. Ez az Internet Explorer letölthet weblapokat, kitölthet webes űrlapokat, tehát a trójai rajta keresztül párbeszédet folytathat a támadóval. Ez egy teljesen legitim kommunikáció a vállalati tűzfal szemszögéből, sőt, még a felhasználó gépén futó alkalmazás tűzfal sem fog gyanút, hiszen maga az Internet Explorer kommunikál a támadó által üzemeltetett honlappal. Ha a szorgos rendszergazda véletlenül figyelné a proxy kiszolgáló statisztikáit, gyanút foghatna, hogy miért nézi meg minden alkalmazott pontosan ötpercenként ugyanazt a weboldalt. A dörzsölt hacker elejét veheti ennek azzal, hogy a trójai falovak véletlenszerű időpontokban kommunikálnak, akkor, amikor a felhasználó egyébként is netezik.
A támadó másik feladata, hogy a kommunikációhoz használt honlap címe ne legyen gyanús az előzmények és a proxy kapcsolatok között. Ehhez frekventált domaint érdemes használmi, például blog site-okét, ingyenes tárhelyekét. Ha egy iwiw adatlapra, vagy egy Google által becache-elt lapra rejti az üzeneteket, szinte lehetetlen észrevenni. Egyébként nem a weblap az egyetlen jó módja a kommunikációnak, például chat vagy e-mail csatornákba is elrejtheti a kommunikációt a támadó.
Támadások
A cégek általában tudják, hogy mekkora a veszítenivalójuk, ha egy trójai bejut a munkaállomásaikra. A legbelső berkekbe jutva ellophatják az üzleti titoknak számító adatokat, rombolhatnak, tranzakciókat indíthatnak el – bármit, amivel csalni, lopni, zsarolni lehet. Persze lehet, hogy egy trójai csak olyan gépre jut el, vagy olyan felhasználó nevében fut, amellyel ezek a csalások nem kivitelezhetők – ám egy támadónak már ez is siker, mert egy lépcsőfokkal beljebb került, így új, másfajta támadások válnak kivitelezhetővé.
És mi a helyzet az otthoni felhasználóval, aki gyakran emlegeti:„Mit kezdene egy támadó az én gépemmel?”
Nos, immár az otthoni felhasználók adatai is egyre értékesebbek. Egyre többen élnek az internetes banki ügyintézés kényelmével, így egy sikeres támadás közvetlen forintokra váltható. Ha egy cég távmunkát is támogat, akkor valószínűleg a hackereknek az otthoni felhasználók jelentik a legkönnyebb behatolási pontot. Persze a legtöbb felhasználó csak nem kritikus szolgáltatásokat használ a saját gépén (pl. ingyenes e-mail, blog, iwiw), ahol a bejelentkezési adatok ellopásával legfeljebb csak kellemetlenséget tud okozni a támadó, de nyeresége nem lesz belőle. Viszont a legtöbb felhasználó csak néhány fajta jelszót használ egész életében – tehát egy ellopott iwiw jelszó potenciálisan bejárást ad a céges felhasználói fiókhoz. Az ilyen szolgáltatások közül az iwiw azért kiemelten veszélyes, mert a valós nevüket és gyakran a munkahelyüket is feltüntetik a felhasználók, így a cég, és a névből képzett céges felhasználónév is egyből a támadó rendelkezésére áll. Már a második világháborúban az enigma feltörésénél is kihasználták a német tisztek felelőtlen jelszókezelését. Nem véletlen, hogy manapság egyre több cég áll át jelszó helyett token vagy intelligens kártya alapú hitelesítésre.
Az otthoni felhasználók gépein is egyre több bizalmas adat van. A legelterjedtebb talán az adóbevallás, de ezen kívül szerződések, leltárok, beszkennelt iratok is ülnek a gépeken. „Végre összeírtam egy doksiba az összes PIN-kódot”, mondja büszkén a családapa. Valószínűleg egy hackernek sincs ideje sok száz ismeretlen áldozat minden dokumentumát végignézni, de egy kiszemelt áldozat (rivális stb.) esetében kincseket találhat. Másfelől pedig nem kerül semmibe olyan trójait írni, ami automatikusan keres izgalmas nevű/tartalmú dokumentumokat (bankkártyaszám, szerződés, PIN-kód stb.), és csak akkor értesíti a támadót, ha valami érdekes akadt horogra.
Ha a megtámadott gépeken nincs is semmilyen adat, jelszó, ami a támadót érdekelhetné, maga a gép akkor is értékes lehet.
„Persze, persze, elhisszük, hogy nem Ön próbálta meg feltörni a Pentagon hálózatát, de mégiscsak az Ön IP címéről indították a támadást…” A támadók elemi érdeke, hogy ne legyenek visszakövethetők. Ezért nem a saját gépükről indítják a támadást, hanem például egy ismeretlen „kisember” gépéről, ahol trójai fut. Komoly célpontok elleni támadások után kutatva általában fel lehet göngyölíteni az ügyet, és a nyomok elvezetnek a kisember gépéig – de mivel ott nincs olyan szintű naplózás, mint az áldozatnál volt, a nyomok megszakadnak. Tehát a kisember gépén futó trójait lehet ugródeszkának használni, ami a támadó valódi kilétét elfedi. Ha a támadó több ilyen ugródeszkát tesz egymás mögé, szinte lehetetlen megtalálni (persze mindez a hacker részéről nagy türelmet igényel). Az interneten való anonim tevékenykedés nemcsak a hackereknek jöhet jól, hanem mindenfajta szervezett bűnözőcsoportnak, akik nem szeretnék, hogy a hatóságok által lehallgatott kommunikáció elvezessen hozzájuk.
Vannak olyan támadások, amelyekhez sok számítógép kell. A DoS (Denial of Service – szolgáltatás lebénítás) lényege, hogy a kiszemelt áldozathoz annyi haszontalan kérést juttatunk el, hogy végül nem tudja ellátni a feladatát. (A való életben az oktatásban találkozhatunk ilyennel: okoskodó hallgatók kérdései miatt nem halad az előadás). A támadásnál az egyik alapvető feltétel, hogy a támadó rendelkezésére nagyobb sávszélesség álljon, mint amennyi az áldozatnak van, így hálózati szinten „bele tudja fojtani” a kérésekbe. Kifinomultabb a támadás, ha hibás kéréseket, vagy szándékosan lezáratlan kapcsolatfelvételeket indítunk, ekkor a szolgáltatáshoz rendelt memóriaterületet és egyéb erőforrásokat is eldugíthatjuk. Haa szolgáltatás nincs ilyen terhelésre felkészítve, akár le is fagyhat az áldozat gépe.
Ha a DoS támadást csak egyetlen gépről indítják, akkor valószínűleg nem lesz elég nagy a támadó sávszélessége, ráadásul az áldozat el tudja különíteni a támadó gépéről érkezett kéréseket a hasznos kérésektől, így a támadást egy okos tűzfal automatikusan felismeri és kivédi. (A való életben: „Igen kolléga, majd a szünetben megbeszéljük.”). Ha viszont nagyon sok számítógép összehangoltan indítja a támadást (DDoS – distributed, elosztott), akkor nagyon nehéz felismerni és kiszűrni a haszontalan kéréseket. A DDoS támadásokhoz a hackerek „zombi gépeket” használnak, amelyeken trójai falovak várják az utasítást. Egyes hackereknek tízezres méretű zombi hadseregeik vannak, amelyeket bérbe adnak támadásokhoz. Akár egy kisebb ország teljes internet hálózatát is le lehet bénítani ilyen módon. A zombi számítógépek mellesleg spamek kiküldésére is kiválóan alkalmasak.
Konklúzió
A trójai falovak veszedelmes fegyverek, amelyek a felhasználó vagy a fejlesztők hibájából is a gépünkre kerülhetnek. Ha már ott vannak, igyekeznek észrevétlenül működni és kommunikálni a támadóval. Az áldozat teljesen kiszolgáltatottá válik, az adatai, jelszavai és szolgáltatásai is veszélyben vannak. Azok a gépek is potenciális célpontok, amelyeken semmilyen értékes adat nincs – ugródeszkaként vagy zombi hadseregek részeként más támadások kivitelezéséhez is fel lehet használni őket.
A trójaiak bejutása ellen megfelelő szkepticizmussal és a szoftverek rendszeres frissítésével védekezhetünk. A bejutott trójaik detektálásában a friss vírusirtók és a rendszerünk indítási fájljainak, előzményeinek rendszeres vizsgálata segíthet. De biztonságban sosem érezhetjük magunkat!
Ilyen és ehhez hasonló témákról is szó lesz majd a NetAcademia Oktatóközpont április 24-i, Ethical Hacking konferenciáján, amelynek célja, hogy a résztvevők megismerjék és megértsék azokat a leggyakoribb támadásokat, amelyekről a hírekben hallanak.