A zsarolóprogramok működésének megértése nem könnyű feladat. A kiberbiztonsági körökön kívül szinte lehetetlennek tűnhet, hogy felfogjuk azokat a bonyolultságokat, amelyek szükségesek ahhoz, hogy megvédjék és megakadályozzák, hogy a zsarolóprogramok kárt tegyenek az áldozatok eszközeiben vagy pénztárcáiban. Ez csak félelmetesebbé teszi az egészet, hisz amennyi „bűnőző” annyi programkód és kártevő létezik.
A „reflektorfényben a zsarolóprogramok” cikksorozatban törekszem arra, hogy bemutassam nektek a zsarolóprogramokat, azaz Ransomware-ket, azok különböző fertőzési szakaszait, elejétől a végéig. Legyen az a működési elvük, fizetési módok, titkosítási módszerek, fertőzési módszerek, eltávolításuk. Korábbi cikkemben bemutattam a fertőzési módszereket, most pedig következhet a működésük. Megnézzük mi van akkor, ha már sikerült megnyitni a fertőzött linket vagy fájlt és mi a célszerű megoldás ezen esetekben.
Hozzáférési jogok megszerzése
Több ezer zsarolóprogram létezik a világhálón és a számuk egyre csak nő. Megpróbálom elmagyarázni, hogy ezek a programok miként veszik át az irányítást a rendszer felett, viszont hozzá kell tennem: különbségek léteznek egyes változatok között. Általánosságban viszont elmondható, hogy a zsarolóprogramok futtatása után már sok esélyünk nincs a helyi és hálózati meghajtók adatbiztonságát nézve. Onnantól valószínű a program titkosít egyes fájlokat, mappákat.
Szakértői tipp: Elengedhetetlen, hogy fontos adataink folyamatosan mentésre kerüljenek egy külső merevlemezre vagy bármilyen leválasztható adattárolóra. Ha megtörtént a baj, akkor is a kellő fájljainkat biztonságban tudhatjuk. A zsarolóprogram futtatása után az adott gépre és hálózatra már ne csatlakoztassuk a külső merevlemezünket, mindaddig amíg nem „irtottuk” ki a káros programot és nem bizonyosodtunk meg róla, hogy továbbiakban már nem „fertőz” a hálózaton és hálózatra csatlakoztatott klienseken, szervereken (pl: NAS).
Vannak veszélyesebb zsarolóprogram változatok, mint a Locky és a DMA Locker ami titkosítja a feltérképezetlen, nem csatlakoztatott hálózati klienseket és szervereket is. Mindez persze másodpercek alatt megtörténik. Ezek a programok pedig arra törekszenek, hogy minél hamarabb átvegyék az irányítást az adott és hálózaton lévő minden kliens felett.
Zsarolóprogramok értelmetlen karakterekkel rejtőzködnek és támadnak
A zsarolóprogramok általában egy csomagolt, tömörített állományba vagy értelmetlen kódok (Obfuscation) mögé bújva rejtőzködnek.
Mit jelent az „értelmetlen, ködösített kód”, azaz Obfuscation: A programozók szándékosan „elfedik” a programkódjukat annak érdekében, hogy azok nehezen visszafejthetőek legyenek. A visszafejtés azért lehet előnyös a legtöbb ismeretlen program esetében, mivel így meg tudhatjuk miként működnek ezek, mit művelnek az adott környezetben, számítógépen. A programkód elfedése pedig úgy történik, hogy különböző elnevezést, változót és parancsot kicserélnek különböző értelmetlen szavakra, karakterekre. Ezt pedig kizárólag csak a program tudja visszafejteni futtatáskor. Ez megnehezíti a víruskereső szoftverek vírusdetektálását is, hiszen adott programból a laboratóriumi felderítésig valószínű egyáltalán nem tudják detektálni a káros programsorokat. Bővebben a Wikipedia-n is olvashattok róla.
De mit jelent ez élesben?
Először a zsarolóprogramot fejlesztő támadók elrejtik a programkódokat, hogy ne legyen szem előtt az, amit „művelni” szeretnének. Vegyünk példának egy vírusírtó szoftvert: Ha a zarolóprogramok pontosan úgy futnának, ahogy megírták őket, tehát nem lennének a kódjaik „elfedve”, akkor a biztonsági szoftver detektálná azokat és nem engedné lefutni a parancsokat, amit a kártévő program küld. De mi van akkor, ha az „elfedés” miatt a vírusírtó úgy gondolja, hogy ez egy tipikus ártalmatlan program?
Tehát a zsarolóprogram elsődleges célja, hogy észrevétlen maradjon a különböző védelmekkel szemben.
Ezen programok „feloldása” bonyolult folyamat. Első körben a biztonsági szakértők feltérképezik a programsorok elrejtésének menetét, majd azok feloldókodját megírják. Ezt követően értelmezik a már közel értelmezhető sorokat. A programsorokból tanulva pedig kitalálják, miként lehetne ezeket ártalmatlanítani és detektálni. Ugye ezen programok általában fájlokat titkosítanak, így azok visszanyerésén is dolgoznak a vírusvédelmi laborokban. pl: WannaCry esetében már számos fájlfeloldó program létezik. Tehát amit a program a vírus futtatásakor titkosított, azt már fel tudjuk oldani. Ehhez szeretném megjegyezni, hogy a titkosított fájlok is „el vannak fedve”, tehát hasonlóképp el lesznek rejtve, mint maga a zsarolóprogram.
Röviden: Az „elfedés” egy olyan folyamat, amely során a zsarolóprogramok különböző módokon módosítják a fájladatokat futtatás közben, így forráskódba nem olyan, mint az eredeti. Ez elrejti a program valódi célját, miközben lehetővé teszi a fájlban lévő program-parancsok végrehajtását.
Miután a fájl elindult a zsarolóprogramok kicsomagolják magukat a memóriába. Az „elfedés” lehetővé teszi, hogy az adott folyamatot többször is futtassa, akár több szálon. A kicsomagolt fájlok memóriába kerülve, majd futva létrehoznak újabb fájlokat a számítógépen és azok is futtatásra kerülnek. Ez egy láncfolyamat, ami egy pillanat alatt megtörténik.
Kikerülni vagy átvenni a felhasználói fiókok védelmét (UAC)
A felhasználói fiókok védelme (User Account Control - UAC) egy olyan biztonsági „intézkedés”, amelyet a Microsoft vezetett be a Windows Vista operációs rendszerrel. A „minimális jogosultság elve” alapján a Windows alapértelmezés szerint a számítógépen lévő összes alkalmazást az általános felhasználói jogosultságokra korlátozza. Ha egy alkalmazás magasabb jogosultságot kér (adminisztrátori), az alábbi előugró ablak jelenik meg a számítógépen és a folytatáshoz rendszergazdai jogosultsággal rendelkező felhasználónak vagy rendszergazdának kell megerősíteni.
Az ijesztő része az egésznek, az ahogyan működik a zsarolóvírus egyes esetekben: az UAC megkerülésével a zsarolóprogramok megakadályozzák ezt a felugró ablakot. Ezek után a programok magasabb jogosultságot szereznek maguknak, amellyel lehetővé teszik a további rendszerfájlok módosítását, anélkül, hogy azt mi szabad szemmel észrevennénk.
Hogy csinálja ezt pontosan?
Matt Nelson egy részletesebb cikket írt az Erebus-ról. Ez egy véletlenszerűen elnevezett mappába, majd fájlba másolja magát a felhasználó profiljában. Ezután módosítja a Windows regisztrációs adatbázisát, hogy a kevésbé védett „.msc” fájlokat eltérítse. Ezt úgy teszi, hogy futtatási programként magát teszi alapértelmezettnek. Ezzel például, ha van egy Windows-os, már rendszergazdaként futtatott folyamatunk, azok nagyobb valószínűséggel futtatnak egy „.msc” fájlt, vagy épp a program küld az adott folyamatnak futtatási kérést. A magasabb szintű folyamat pedig az „.msc” kiterjesztés segítségével a kártékony szoftvert fogja (.exe) elindítani, ezáltal megkerülve az felhasználói fiókok védelmét.
Az Eberus ezzel a legmagasabb jogosultsági szinten fut majd a számítógépen. Ez azt jelenti, hogy mindent megtehet a háttérben anélkül, hogy azt észlelnénk. Másrészt, ha ideáig eljutott, akkor már nem kell továbbiakban jogosultságot kérnie a rendszergazdától.
Matt Nelson elmagyarázza nekünk egy hosszú blogbejegyezésben, hogy miként történik ez a folyamat.
Zsarolóprogramok tükrözik a programkódot
A zsarolóprogramok folyamatos kísérletet tesznek arra, hogy állandóan a memóriában maradjanak és a merevlemezről se vesszenek el. Ezt tükrözéssel oldják meg, azaz több szálon másolják magukat további helyekre és mindezeket külön folyamatként elindítva. Így, ha egy folyamatot lelőnénk, akkor a többi újra elindítja azt, vagy éppen el is lett távolítva – újra létrehozza azt. Mindez biztosítja azt, hogy új fájlok másolása esetén azok is titkosításra kerülnek, illetve korábbi fájljaink is minél előbb titkosításra kerüljenek. No meg nem elhanyagolható a terjeszkedés további hálózatokra, kliensekre, szerverekre és meghajtókra.
Rendszerindításkori futtatás biztosítása
A futtatási parancsok felülírása, bejegyzése mind rendszerindításkor, mind ütemezett feladatok vagy folyamatok esetében a rendszer regisztrációs adatbázisában történik. Az esetek többségében rendszerindításkor a program futtatva lesz, még csökkentett módban is, hogy tovább tudjon „tevékenykedni”.
Ezt általában már módosított programok segítségével teszi vagy létrehoz magának egy „álcázott” hitelesített tanusítványt annak érdekében, hogy UAC megkérdezése nélkül el tudjon indulni rendszergazdai jogokkal operációs rendszer indulásakor. Ezzel pedig a felhasználó folyamatosan szeme elé kerülve, váltságdíjat követelve annak érdekében, hogy feloldást nyerjenek a fontos, de a zsarolóprogram által titkosított fájljaink. Egy példa a hasonló esetre.
Ütemezés feladatként
Ez ritkább, de mégis jelentős veszélyt hordozó megoldás. Itt beállítják a zsarolóprogramok maguknak, hogy rendszerindításkor és adott időközönként újra és újra lefuttassák a rosszindulatú programkódokat.
Vannak olyan programok, melyek egy adott futtatás alkalmával csak néhány fájlt titkosítanak. Élő példa erre is van, mégpedig a CTB Locker és CryLocker esetében.
Parancsikonokba és célmeghatókra rejtőzés
A rosszindulatú programfájl parancsikonja nem ritka esetben megtalálható az indítómappában. Ide azon parancsikonokat helyezhetjük, amelyeket szeretnénk, hogy a rendszert elindítva elinduljanak.
Számos esetben viszont már kifinomultabb, de hasonló módszerrel dolgoznak. Például a G-Data szakértői vettek észre erre utaló folyamatok, mégpedig egy parancsikonba rejtett programkódot (SPORA), amely terjeszkedni is tud. Képesek „féregként” tovább szaporodni. Esetenként eltérő lehet, de gyakori amikor a meghajtó gyökérkönyvtárába helyezik magukat értelmetlen karakterekkel ellátva. Ezek rendszerszinten rejtettek maradnak, így csak rendszergazdai hozzáféréssel – rendszerszintű alkalmazások elrejtésének feloldásával lehet megtekinteni. Ez a létrehozott fájl különböző parancsikonokat hoz létre az indítási mappába, hogy mindaddig futva maradjon, amíg nem takarítják le teljesen a számítógépről.
Ezek a fájlok, amelyek elhelyezésre kerülnek a meghajtókra, illetve különböző felhasználói mappákba (Pl: Appdata) folyamatosan futnak. Ezek általában valamilyen felülettel is rendelkeznek és egyszerűen nem hagyják, hogy a felhasználó bármiféleképpen bezárja azokat (lásd: WannaCry).
Zsarolóprogramok kommunikálása és adatok eltulajdonítása
Láttuk, hogyan működnek a zsarolóvírusok. Eljutottunk a program, rendszerbe épüléséig és váltságdíj követeléséig. A bűnözők a program segítségével különböző kiszolgálóval, ip címmel és weboldallal kommunikálnak. Gyakori, hogy ezeknél a domaineknél is értelmetlen karakterek (betű és szám) kombinációja látható. Ezek alatt pedig elhagyott (nem használt és kevésbé figyelt) szervereket használnak, amit C2-nek nevezünk. Ezeken az oldalakon kerül elhelyezésre a bűnözők által egy fizetési tranzakciót lebonyolító programkód. Itt a fertőzött számítógép tulajdonosa tudja majd kifizetni a váltságdíjat. Emellett ezeket a C2 szervereket használják még a férgek számítógépre juttatásához és adatok eltulajdonításához is.
Másik lehetőség egy tartományban generált algoritmus (DGA). Számos helyen alkalmazzák a DGA-t is. A program segítségével létrehoznak egy direkt domaint vagy egy domainhez tartozó aldomaint. A kártevő szerzőjének pedig küldeni fog egy értesítést, hogy sikerült ez a folyamat – ugye itt még csak direkt szerverrel kommunikálunk. A létrehozott aldomainen pedig bonyolítható a váltságdíj fizetése, illetve adatok feltöltése. Ezáltal pedig nyomon tudja követni a támadó az áldozatot. A DGA megnehezíti a fertőzött linkek azonosítását, mivel egy pillanat alatt létrehozható a domain vagy aldomain.
A kapcsolat folyamatos marad, mindaddig amíg „ki nem írtjuk a zsarolóprogramot”. Addig pedig számos információt küldenek a rendszerünkről a kiszolgálónak, beleértve a következőket:
- Operációs rendszer és verziója
- Számítógép neve
- Felhasználónév
- Ország, ahol tartózkodik
- Felhasználói azonosító
- Zsarolóprogram által generált titkosítási kulcs
- Néhány program által fontosnak vélt állomány
Továbbá a C2 szerver küldhet információkat a zsarolóprogramnak (tehát oda-vissza kommunikálnak), mint például:
- milyen titkosítási kulcsokat használjon (változatos legyen)
- a generált bitcoin címet
- Fizetési portál linkje
Bizonyos esetekben a C2 szerver arra is utasíthatja a zsarolóprogramot, hogy további rosszindulatú programokat töltsön és futtasson le, miután befejezte az adattitkosítási folyamatot. Ezek a programok lehetnek további zsarolóprogramok, amelyek rejtőzködni fognak egy ideig, viszont addig titkosítanak további fájlokat.
Eredeti fájlok törlése, hogy ne legyen visszaút
A zsarolóprogramok törlik a biztonsági másolatokat a titkosított fájlokról, illetve a Windows rendszervisszaállításokat is eltávolítják. Ezzel megakadályozva, hogy visszaszerezzük a fontos fájlokat.
A folyamat mindig CMD-n keresztül kerül futtatásra, mégpedig a „vssadmin.exe Delete Shadows /All /Quiet” paranccsal. Ehhez nyilván rendszergazdai hozzáférés szükséges, de erre már a program hozzáférést nyert, így minden bizonnyal sikeresen le is fut.
Megjelenik a felület és váltságdíj kerül követelésre
Megjelenik egy felület, melyen váltságdíj követelésére kerül sor. Ígéret szerint kifizetése után feloldják a titkosított fájlokat, de ne reménykedjünk, mert a legtöbb esetben ez nem történik meg. A váltságdíj általában változó értékű. A program felismeri, hogy egy magánszemélynél, kis-közép vállalkozásnál vagy nagyvállalatnál került futtatásra és azon a hálózaton belül mennyire tud terjeszkedni. A fájlok mennyiségétől és kiterjesztésétől is függ a váltságdíj mértéke.
Hazánkban nem egy helyen volt WannaCry fertőzés és irtásuk elég komplikált volt (eleinte). No meg kemény váltságdíjat követeltek.
Rekord váltságdíj Magyarországon: 4,5 millió forintot követelt a zsarolóvírus
Illetve, egy helyi híradóból:
Konklúzió
Figyeljünk minden egyes furcsa jelenségre, weboldalra, e-mailre és fájlra, mert évről évre egyre több meglepetést tudnak okozni a zsarolóprogramok. Remélem a cikk segítségével sikerült betekintést nyerni a zsarolóprogramok működésébe, mégpedig a rendszergazdai jogok megszerzése, megkerülése, a rendszerleíró bejegyzések létrehozása – módosítása, parancsikonok létrehozása – módosítása, kiszolgálóval való kommunikációig bezárólag.
Hozzászólások
-