A fizetős szoftverek kalózkodása látszólag teljesen megállíthatatlan, szinte természeti jelenségnek tűnik. Az elmúlt évtizedekben a fejlesztők és kiadók minden tőlük telhetőt megtettek a szellemi tulajdonaik jogtalan használatának lehetetlenné tétele érdekében, azonban régóta nyilvánvaló, hogy kizárólag a részben ingyenes, reklámokkal vagy opcionális vásárlási lehetőségekkel felturbózott üzleti modellel lehetséges harcolni a kalózkodás ellen.
Először is nézzük, hogy mitől lehetetlen megakadályozni a programok „feltörését”, mit tesznek a crackerek. Elindításuk után a programok betöltődnek a rendszermemóriába, elkezdik futtatni a másolásvédelmet. A másolásvédelem bizonyos tényezők alapján megállapítja az alkalmazás jogtisztaságát, erre klasszikus példa az optikai korongokról futtatott játékok esetén az adathordozó egyes paramétereinek mérése. Ha jogtisztának tűnik a szoftver, akkor a másolásvédelem visszaküldi a zöld jelzést a fő logikának, indulhat maga az alkalmazás.
Sejthetően itt lépnek közbe a crackerek: a memóriában lévő program működését speciális programokkal vizsgálva megpróbálják visszafejteni az alkalmazás logikáját, majd manuálisan „átütnek” olyan elágazásokat benne, amelyek megakadályozhatnák a fő logikában, hogy a másolásvédelem hamisnak titulálhassa a kópiát. Egy nagyon egyszerű példa az efféle elágazásokra: HA eredeti a szoftver, AKKOR tedd ezt, KÜLÖNBEN tedd azt. A crackerek célja, hogy a program futtatásakor mindig az AKKOR ágban elhelyezett utasítások hajtódjanak végre, azaz a másolásvédelem ne mondhassa azt a logikának, hogy szerény véleménye szerint szerint illegális a másolat.
Vége a dalnak?
A márciusban megrendezésre szingapúri SyScan konferencián az Assured Information Security biztonsági cég egyik vezető kutatója a szakma lenyűgözésére készül. Jacob Torrey a HARES (Hardened Anti-Reverse Engineering System) nevű megoldásának lényege, hogy az általa védett program instrukciói a végrehajtásuk előtti utolsó pillanatokig titkosított formában vannak a rendszermemóriában.
IDA Pro: a crackerek svájci bicskája
A módszer az AMD és Intel processzorok Translation Lookaside Buffer (TLB) Split funkcionalitását kihasználva életképes. Maga a TLB egy gyorsítótár, amelyet a processzorok memóriakezelő egysége a virtuális címek fordításának gyorsítására használ. A split (felosztás) művelettel megoldható, hogy a futtatott programok adatai és instrukciói elkülönüljenek a gyorsítótárban, az instrukciók titkosítottak. A dekódolásukhoz szükséges kulcs a RAM helyett magában a processzorban kerül tárolásra.
A HARES brutálisan megnehezíti a futó programok logikájának megértését, ugyanis a crackeléshez használt eszközökkel csak az erősen titkosított instrukcióikat lehet kibányászni a rendszermemóriából. A megoldás nem tűnik támadhatatlannak, hiszen a dekódoló kulcsot valahogy fel kell juttatni a processzorba, azonban Torrey szerint erre a problémára is akad biztonságosnak titulálható módszer a tarsolyában, bár természetesen semmi sem tökéletes vagy támadhatatlan. A szakember állítása alapján a HARES alkalmazása csupán 2 százalékkal csökkenti a programok teljesítményét, azaz teljesen életszerű az „éles” környezetben való használata.
Rosszra is lehet használni
A szoftverfejlesztő cégek valószínűleg üdvrivalgással fogadják majd a HARES elérhetővé válását, azonban aggodalomra ad okot, hogy vissza lehet élni vele. Egyelőre nem világos, hogy a HARES mennyire nehezítheti meg a vírusvédelmi megoldások dolgát, azonban érzésünk szerint alaposan kibabrálhat a heurisztikus, proaktív védelmekkel. Nem csak a kártevők működésének tanulmányozását, de a szimpla felismerésüket is nagyon megnehezítheti.
„Képzeld milyen feladat lenne úgy fényt deríteni a Stuxnet működésére, hogy közben nem nézhetsz rá” – kommentálta Torrey a problémát. A helyzet komikuma, hogy a HARES kifejlesztése az Egyesült Államok Fejlett Védelmi Kutatási Projektek Ügynökségének (DARPA) anyagi támogatásával kezdődhetett meg.
Ti máris féltek a HARES-től, vagy inkább kivárjátok a komplett biztonsági szakma véleményét?
(Forrás: Wired | Nyitókép: Michael Pollak)