A WannaCry zsarolóprogramok megjelenése és elterjedése számos kérdést vetett fel azzal kapcsolatban, hogy miként működnek a zsarolóprogramok, és mit lehet tenni ellene. Továbbá hogyan jut be a rendszerbe, mit csinál, ha már jelen van? A Reflektorfényben a zsarolóprogramok sorozatban próbálom feltárni a különböző szakaszaiban egy zsarolóprogramok támadását. Ebben a cikkben a titkosítási módszerekről ejtek szót.
A zsarolóprogram fertőzés egyik leggyorsabb tevékenysége, hogy az összes személyes fájlok titkosítva legyen, amelyet tovább nem vagyunk képesek elérni. A titkosítás alkalmazásával a bűnöző fenyegetése hitelessé válik és a rosszindulatú programok szerzőinek küldheti az adatait, amihez persze csak a bűnöző férhet hozzá a saját feloldó szkriptjével. A titkosítási módszerek alkalmazása egyre kifinomultabb, ez pedig megnehezíti a vírusirtó laborok feladatát.
Ha még nem olvastál a cikksorozatból egyet részt sem, érdemes utánanézned a fertőzési módszereknek és a működésüknek.
Röviden a titkosításról és elemzéséről
A titkosítás olyan technika, amelyek megakadályozzák, hogy harmadik felek vagy a nyilvánosság a nem kívánt adatokat olvasni tudja. Titkosításkor egy általános szöveget átalakítunk egy titkosított szöveggé, amelyet csak mi vagy maga a program ismer. Ezzel elfedve az üzenet tartalmát.
A titkosítás 4 fő célkitűzése
- Titkosság: csak a küldő és a címzett értheti meg az üzenetet,
- Sértetlenség: az üzenet nem szerkeszthető a módosítás észlelése nélkül, ha módosult az üzenet, azt jelezni kell valamilyen formában
- Feladó üzenet megtagadása: a feladó nem tagadhatja meg (vonhatja vissza) az üzenet létrehozása és elküldése után
- Hitelesítés: a feladó és a címzett azonosítják egymást, majd kommunikálnak egymással
A modern világban a titkosítás számos ágat érint, legyen az a
- matematika
- számítástechnika
- elektrotechnika
- katonai kommunikáció
- elektronikus kereskedelem
- bankkártyák
- ATM automaták
- különböző jelszavak
Alapvetően bármit érinthet, ahol a biztonságos kommunikáció elengedhetetlen.
A titkosítási rendszerek tanulmányozásaként definiált „titkosítási analízis”, amelynek célja a hiányosságok felkutatása és a titkosított üzenetek tartalmának visszaszerzése. Ez a titkosítási analízis a 90-es évektől kezdődően alakult ki, annak ellenére, hogy a „Cryptanalysis” (titkosítási analízis) szó csak az 1920-as években született. Hazánkban a Magyar Tudományos Akadémia helyesírási tanácsadó és megfelelő szókereső szerint egyelőre a „Cryptanalysis” szóra nem mond semmit, így mi titkosítási analízisnek nevezzük.
A titkosítási analízis döntő szerepet játszott a második világháború alatt, hogy megfejtse az Enigma gépekkel biztosított német hírszerzés üzeneteit, amely titkosítatlan szimmetrikus kulcsot használt mind az üzenet feladójához, mind a címzetthez.
Azóta a számítási teljesítmény megjelenése és robbanásszerű növekedése egyre összetettebb titkosítási módszereket lehetőségét terítette elénk, amelyeket nem csak az e-mail üzenetek és a webes felületek biztosítására használnak, hanem sajnos a számítógépes bűnözők zsarolóprogramokkal váltságdíj követelésére és személyes fájlok titkosítására is.
Titkosítási módszerek: Szimmetrikus vagy aszimmetrikus
A titkosítási módszerek hihetetlenül bonyolulttá váltak mostanra. Talán Julius cézár idején használták legkorábban a helyettesítő rejtjeleket, ahol az egyszerű szöveges betűket egyszerűen felváltják más betűk. Ők eltolták az ABC sorrendet és ezáltal teljesen értelmetlen szavak voltak az üzenetben, amit kizárólag a feladó és a címzett értett meg.
Mivel az egyszerű szöveg szerkezete megegyezik a titkosított üzenettel, az értelmetlen szavak elemzése után könnyű kiszúrni, hogy azonos sorrendben követik egymást a karakterek. Már csak a sorrendeltolás mértékét kellett meghatározni. Julius cézár idején több évbe telt, mire az ellenség sikeresen tudta értelmezni az üzenetet.
Szimmetrikus titkosítás: Gyors, de sebezhető
A fenti titkosítás egy egyszerű példa arra, hogyan működik a szimmetrikus titkosítás: mind a feladó, mind a címzett ugyanazt a rögzített számú pozíciót eltolja. Ez a pozíciószám a "feloldókulcs". Ezért elengedhetetlen, hogy a kulcs titokban maradjon.
A szimmetrikus titkosításnak két fő típusa van:
- Blokk rejtjelek
- Folyamatos rejtjelek
Ahogy a neve is mutatja, a blokk rejtjelek úgy működnek, hogy ugyanazt a kulcsot használva titkosítják blokkokat. Maga az üzenet a hosszától függően több blokkra oszlik és a kiszámítható adatok hozzáfűzése egy teljes blokkra terjed ki a titkosítási folyamat. A leggyakoribb blokk rejtjelekkel az AES és blowfish esetében találkozhatunk. Az előbbit számos zsarolóvírusban alkalmazzák.
A folyamatos rejtjelek titkosítják minden egyes kommunikációban létrejövő szöveg számjegyeit (általában bit formájában), véletlenszerű kulcs segítségével. Ez azt jelenti, hogy eltérő kulcsot használnak az egyes bitekhez. A "kizáró diszjunkció, kizáró vagy" matematikai eszköz (röviden XOR), egyesíti a kettőt a rejtjel létrehozásához. Ezek közé tartozik az RC4 és a Salsa20.
A szimmetrikus titkosítási módszereket az alacsony számítási követelmény jellemzi, melyhez csak egy kulcsot használnak az üzenet titkosításához és visszafejtéséhez.
Ez azonban egy fontos kérdést vet fel: hogyan lehet titokban elküldeni a kulcsot anélkül, hogy bárki hozzáférhetne és elolvasná a szimmetrikus tiktosítási módszerrel kódolt üzenetet.
Aszimmetrikus titkosítás: Biztonságos, de lassú
Az aszimmetrikus titkosítás, más néven nyilvános kulcsú titkosítás, a következőket alkalmazza: egy nyilvános és egy privát álló kulcspárt használ.
A nyilvános kulcs széles körben terjeszthető, míg a személyes kulcs csak a kulcspár tulajdonosának birtokában van. A nyilvános kulccsal titkosított üzeneteket csak a személyes kulccsal lehet visszafejteni, míg a személyes kulccsal titkosított üzeneteket csak a nyilvános kulccsal lehet visszafejteni.
Ennek eredményeképpen az aszimmetrikus titkosítási algoritmusok nem csak az üzenetek titkosítását és visszafejtését teszik lehetővé, hanem az üzenet hitelesítését is, mivel csak a személyes kulcs tulajdonosa hozhat létre egy nyilvános kulccsal visszafejthethető üzenetet.
A legtöbb aszimmetrikus titkosítási rendszer alapja általában egy olyan algoritmus, amely számítási nagy számítási teljesítményt igényel. Ma leggyakrabban használt:
- diffie-Hellman-Merkle
- RSA
- Elliptic Curve Cryptography
Az ArsTechnica részletesen kitér és mélyre nyúló cikket ad nekünk ezzel kapcsolatban. Teljes mértékben belemegy részletekbe a matematikai alapoktól kezdve.
A lényeg, hogy az aszimmetrikus megoldás lehetővé a megosztott kulcs nélküli viszonylag biztonságos titkosítást. Ugyanakkor nagy számítási igénye miatt a nagy adatmennyiség esetén megvalósíthatatlanná válhat.
Tekintettel arra, hogy mindkét titkosítási típusnak megvannak az előnyei és hátrányai, a legtöbb implementáció (beleértve a zsarolóprogramok alkotóit is) a következők kombinációját fogja használni:
szimmetrikus titkosítás egy véletlenszerűen generált kulccsal, amelyet általában „munkamenetkulcsnak” neveznek a tényleges üzenet vagy fájlok titkosításához, majd egy aszimmetrikus algoritmust a használt munkamenetkulcs titkosításához.
Titkosítási kifejezések segédlet
- Üzenet: A titkosítással védeni kívánt adat. Ez lehet szöveg, mint egy tényleges üzenetben vagy egy fájl
- Egyszerű szöveg: A titkosítatlan üzenet
- Rejtjelezés: A titkosított üzenet
- Kulcs: Az az összetevő, amelyet egy titkosítási algoritmus használ az egyszerű szöveg titkosítássá történő bekapcsolásához, és fordítva.
- Blokk rejtjelek: eltolt blokkokban történő titkosítás.
- Folyamatos rejtjelek: véletlenszerű betűjelek használata biteknél a titkosításhoz.
- Szimmetrikus titkosítás: Ugyanaz a kulcs az üzenetek titkosítására és visszafejtésére szolgál.
- Aszimmetrikus titkosítás: Különböző kulcsokat használnak az üzenetek titkosításához és visszafejtéséhez.
CryptoLocker, azaz a zsarolóprogramok titkosítási módszere
A zsarolóprogram „fejlesztői” számos különböző titkosítást használnak céljaik elérésére. Most bepillantást mutatok egyes módszerekre, melyet szélesebb körökben CryptoLocker-ként is neveznek.
A CryptoLocker nem az első titkosító zsarolóprogram, de ez feltétlenül az első széles körben elterjedt fájlokat is titkosítő zsarolóprogram. Ráadásul ez már óriási médiafelhajtást is kapott. A CryptoLocker 256 bites AES szimmetrikus titkosítást használ a tényleges fájltitkosításhoz, és aszimmetrikus RSA titkosítást a kommunikációhoz és szimmetrikus kulcsot a munkamenet védelméhez.
Nem meglepő, hogy a CryptoLocker működése sok más zsarolóvírus program alapjaivá vált, hiszen az elterjedés mértéke óriási volt és rendkívül hatékonynak bizonyultak a bűnözők számára. Megnézzük, hogyan használja a program a titkosítást a fájlokra, ezzel a felhasználó elől zárolva azokat.
Biztonságos kommunikáció létrehozása
Amikor a rendszer megfertőzödik a CryptoLocker programmal elindul az RSA (=aszimmetrikus) nyilvános kulcs generálás, amelyet a zsarolóprogram azért hoz létre, hogy egy biztonságos csatornát létesítsen a parancsot futtató program és küldő (illetve ellenőrző) szerver. A zsarolóprogramok az összes kommunikációt ezen a csatornán kezeli, legyen az a programot fejlesztő bűnöző és program közötti kapcsolat, a fizetési kommunikáció, a tevékenységutasítások és minden egyéb, amit a szoftvernek el kell küldenie vagy éppen meg kell tennie a fertőzött gépen. A nyilvános kulcsú titkosítás használata ebben az esetben két fő „előnnyel” jár:
- A hálózati kommunikációt figyelő rendszerek nem fogják látni, hogy a CryptoLocker és a kiszolgáló között milyen kommunikáció és adatfolyam történik. Egy elemző kizárólag csak „mindenféle” összemosott karaktert fog látni, amelyet nem lehet azonnal értelmezni.
- A rosszindulatú programok szerzői nem csak elrejteni akarják az üzeneteket a kíváncsiskodó szemek elől, hanem biztosítani, hogy valóban senki ne férjen hozzá és a biztonsági szakértők is minél nehezebben, illetve minél később tudják ezeket értelmezni.
Érdemes megjegyezni: Minden nyilvános kulcs csak a megfelelő személyes kulccsal titkosított üzeneteket fejthet vissza, amelyekhez jelen esetben a zsarolóprogram szerzője férhet hozzá.
A fájlok titkosítása
A kommunikáció során a CryptoLocker egy második RSA nyilvános kulcsot kér a kiszolgálótól, amely kizárólag az áldozat számára készül. Ezután továbbmegy és létrehoz egy 256 bites AES munkamenet kulcsot, amelyet az áldozat fájljainak titkosítására fog használni. Mint már említettem az RSA-hoz hasonló aszimmetrikus titkosítás nem alkalmas nagy mennyiségű adat közvetlen titkosítására, mivel viszonylag lassú a szimmetrikus testvéréhez képest. Ezért sokkal hatékonyabb egy szimmetrikus algoritmus, például az AES használata a felhasználói adatok nagy részének titkosításához.
A megosztott kulcs biztonságossá tétele
Utolsó lépésként a CryptoLocker titkosítja a 256 bites AES kulcsokat, aszimmetrikus RSA nyilvános kulccsal, és a titkosított fájladatokkal együtt tárolja a kommunikációs szerveren vagy magában a számítógép memóriájában.
Miután a titkosítási folyamat befejeződik, a zsarolóprogram törli az AES munkamenetkulcsot a memóriából, ügyelve arra, hogy sehol ne maradjon nyomkövetés. Csak az áldozat személyes kulcsa (amelyet kizárólag a kártevő szerzője szerverén tárolnak) képes visszafejteni az AES munkamenetkulcsot a titkosított fájlokból és visszaállítani a fájlokat, miután az áldozatok kifizették a program és bűnöző által követelt váltságdíjat.
A zsarolóprogramok az aszimmetrikus és szimmetrikus titkosítás előnyeit kihasználva másodpercek alatt, nem pedig órákon belül zárolják az áldozat fájljait. A bűnözők kifizetése nélkül a fájlok visszaszerzése szinte lehetetlen feladat.
A titkosítás megértése segít a zsarolóprogramok elleni küzdelemben
A zsarolóprogramok titkosításának elemzése hihetetlenül összetett feladat. Ebben a cikkben is csak éppen érintettünk néhány titkosítási folyamatot, de ezeket alkalmazzák az esetek többségében. A vírusvédelmi cégek laborjaiban naponta dolgoznak több zsarolóprogram által zárolt állományok visszafejtésén. Ha sikerül megoldást találniuk és a visszafejtési kulcsot, majd folyamatot megalkotniuk, akkor az adott zsarolóprogram által zárolt összes fájl visszanyerhető lehet.
Találkoztam több szerencsés esettel, például a CryptoDefense „személyében”, mikor a zsarolóvírus a programkönyvtárban tárolta a visszafejtési kulcsokat. Ezzel pedig a biztonsági szakértők pillanatok alatt képesek voltak egy visszafejtő szoftvert készíteni. Persze ezek ritka esetek, hiszen a bűnözők sem azt szeretnék, hogy a váltságdíj kifizetése nélkül visszanyert a fájljaidat.
Cryptolocker is rendkívül bonyolult titkosítási megoldást használ, amely a laborokban dolgozó biztonsági szakértők feladatát bonyolítja meg, mert azok rendkívül nehezen lesznek feltörhetők, visszanyerhetők.
Amit ajánlok
Mindenki vigyázzon, mert a zsarolóprogramok talán az egyetlen legrosszabb vírusok, amelyek léteznek, hiszen a személyes fájljainkat sem kímélik. Érdemes egy, akár ingyenes vírusirtó szoftvert alkalmazni a gépen. No meg ne feledkezzünk meg a cikksorozat további részéről sem, amely segítségével tudunk védekezni ezen bűnözők által kreált programok ellen.
Hozzászólások
-