Összefoglaló
Az angliai székhelyű kiberbiztonsági kutatásokkal foglalkozó NCC Group biztonsági kutatói 2020. május végén fedezték fel a WastedLocker zsarolóvírust, amelyet az EvilCorp néven ismert kiberbűnözői csoport fejlesztett ki. Az EvilCorp. már 2011 óta fenyegetést jelent, elsősorban cégekre (fő célpontok a fájlszerverek, a különböző adatbázis szolgáltatások, virtuális gépek és felhő alapú munkakörnyezetek), legutóbbi áldozatuk a Garmin vállalat.
A zsarolóvírus elnevezése az általa létrehozott fájlnévből származik, a WastedLocker az általa kódolt fájlok végére az áldozat nevének rövidítéséből és a “wasted” szóból álló kiegészítést fűzi. Ez a fajta névképzés már a BitPaymer zsarolóvírusnál is megjelent, azonban itt egyes betűket számokkal helyettesítettek. A zsaroló üzenet, illetve a kapcsolattartásra felhasznált e-mail címek is mutatnak némi hasonlóságot, azonban technikai szempontból a két zsarolóvírusnak nincsenek közös vonásai. A legújabb zsarolóvírus trendekkel szemben a WastedLocker nem folytat adatlopást, hogy azok kiszivárogtatásával is fenyegesse áldozatát.
Leírás
A WastedLocker terjesztése a SocGholish nevű hamis frissítési keretrendszerrel történik, bár újabban csak egy egyedi CobaltStrike loader telepítését valósítják meg a általa. A SocGholish segítségével a támadók rendszerinformációk széles köréhez férhetnek hozzá, mivel a káros kód a böngésző felhasználói jogosultsága alatt fut. Az összegyűjtött adatokat elküldésre kerülnek a SocGholish szervernek, ahonnan a loader letölti a támadáshoz szükséges további futtatható állományokat.
A CobaltStrike payloadok két különböző típusú PowerShell szkriptbe van beágyazva. Az első típus kifejezetten 64 bites, Windows alapú rendszerekre készült. A letöltött payload base64 kódolással van ellátva, dekódolásához egy előre beállított karakterlánc és a letöltött állomány első 16 bájtja által meghatározott kulcs szükséges. A szkript feladata ezen futtatható állomány dekódolása, majd végrehajtása. A második szkript egyszerűbb felépítésű, csupán két base64 alapú állományt tartalmaz, amelyek a CobaltStrike loader letöltését és injektálását végzik. Ez utóbbi esetben a loader megkísérli felfedezni, hogy telepítve van-e a CrowdStrike védelmi megoldás. Amennyiben a C:Program FileCrowdStrike mappa létezik, akkor a Windows FreeConsole API funkció csak a payload betöltése után kerül meghívásra.
A WastedLocker egy egyedi kódolóval (CryptOne) van védve. Ez a kódoló viszonylag egyszerű és már korábban is alkalmazták más rosszindulatú programcsaládok ─ például a NetWalker, Zloader, Smokeloader ─ védelmére. A kódoló célja, hogy az aktuális káros kódot úgynevezett szemét kód (junk code) közé rejtse, ezzel is nehezítve a felderítést. A kódolónak több variánsa is létezik, ám ezek felépítésükben és működésükben alapvetően megegyeznek.
Első lépésben néhány registry kulcs meglétének ellenőrzése történik meg. Ezek a rendszerleíró kulcsok a UCOMIEnumConnections Interface-re és a IActiveScriptParseProcedure32-re vonatkoznak, ezeknek a kulcsoknak a hiányában a kódoló végtelen hurokba kerül, illetve megszakad a lefutása. A registry kulcsok meglétének sikeres ellenőrzése után meghívja a memóriába a VirtualAlloc API-t. Ezen a memóriaterületen kerülnek összekapcsolásra az egyes adattömbök, majd hajtódik végre azok dekódolása egy XOR logikai művelet alapján. Ez a dekódolt kód lesz a felelős a tényleges hasznos teher visszafejtéséért. Visszafejtés előtt az adattartalom egy másik pufferbe kerül, ahol a fent leírt módon egy XOR logikai művelet segítségével dekódolódik. Ezt követően futhat le a tényleges káros kód.
A titkosítási eljárás előtt a WastedLocker végrehajt néhány ─ a megfelelő működéshez szükséges ─ folyamatot. Először dekódolása a’.bss’-ben tárolt karakterláncokat, majd kiszámítja azok ’DWORD’ értékét. Ennek a későbbi titkosítási folyamatban van szerepe. Ezen felül létrehoz egy “lck-log” naplófájlt és egy kivételkezelő folyamatot is. Ha a végrehajtási folyamat nem rendszergazdai jogokkal történik, vagy a támadott gép legalább Windows Vistát használ, akkor magasabb jogosultságot kísérel szerezni a UAC bypass módszer segítségével.
A WastedLocker az alábbi parancssori paramétereket támogatja:
- -r
- Biztonsági másolatok (Shadow copy) törlése.
- Futtatható ransomware állomány másolása a %windir%system32 könyvtárba, hozzáférési engedélyek alaphelyzetbe állítása.
- Folyamatok létrehozása és futtatása.
- -s
- Folyamatokhoz kapcsolódó bejegyzések létrehozása.
- -p
- Fájlok titkosítása egy adott könyvtárban, majd a titkosítás folytatása az adott meghajtó többi állományával.
- -f
- Fájlok titkosítása egy adott könyvtárban.
Érdemes megjegyezni, hogy a ransomware az első két paraméter (-r; -s) hibája esetén is lefut, azonban ekkor további módosításokat hajt végre a rendszerleíró kulcsban (SoftwareMicrosoftWindowsCurrentVersionInternet SettingsZoneMap):
NÉV | Módosítás |
ProxyBypass | Kulcs törlése |
IntranetName | Kulcs törlése |
UNCAsIntranet | Kulcs érték átállítása 0-ra |
AutoDetect | Kulcs érték átállítása 1-re |
A tényleges titkosítási folyamat során a ransomware nemcsak a helyi meghajtót támadja, hanem az elérhető hálózati, valamint az eltávolítható adathordozókat is. A WastedLocker rendelkezik egy olyan listával, amely a titkosítás alól mentesített könyvtárakat és kiterjesztéseket tartalmazza, továbbá a 10 bájtnál kisebb fájlok sem kerülnek kódolásra. A nagyméretű állományok 64 MB-os darabokban kerülnek kódolásra. Minden állomány egy kiindulási vektor és egy AES kulcs segítségével kerül titkosításra. Az AES kulcsot és a kiindulási vektort egy előre beágyazott 4096 bites RSA kulcs segítségével kerül kódolásra. Az RSA-val titkosított kimenet base64-be konvertálódik, majd bekerül a ransom note fájlba. Minden egyes titkosított fájlhoz létrehozásra kerül egy saját ransom note. Ez utóbbi viselkedés meglehetősen ritka, legutóbb a BitPaymer és a DoppePaymer alkalmazta ezt a megoldást.
A titkosított fájlok új elnevezése az áldozat nevének rövidítése, összekapcsolva a “wasted” szóval. A titkosítási folyamat végén frissítésre kerül az “lck-log” fájl a támadott fájlok, sikeres titkosítások, valamint a hozzáférési problémák miatt nem titkosított fájlok számával.
A titkosításból kizárt kiterjesztések és könyvtárak listája:
*ntldr | *.ani | *.bin | *.com | *.dat | *.dll | *.hlp | *icns |
*.386 | *.bak | *.cab | *.cpl | *.diagcab | *.dry | *.hta | *.ics |
*.adv | *.bat | *.cmd | *.cur | *.diagcfg | *.exe | *.icl | *.idx |
*.ini | *.key | *.lnk | *.mod | *.msc | *.msi | *.msp | *.msstyles |
*.msu | *.nls | *.nomedia | *.ocx | *.ps1 | *.rom | *.rtp | *.scr |
*.sdi | *.shs | *.sys | *.theme | *.themepack | *.wim | *.wpx | *bootmgr |
*grldr | *$recycle.bin* | *appdata* | *bin* | *boot* | *caches* | *dev* | *etc* |
*initdr* | *lib* | *programdata* | *run* | *sbin* | *sys* | *system volume information* | *usersall users* |
*var* | *vmlinuz* | *webcache* | *windowsapps* | c:program files (x86)* | c:program files* | c:programdata* | c:recovery* |
c:users %USERNAME%
appdata localtemp* |
c:users %USERNAME%
appdataroaming* |
c:windows* |
A WastedLocker magas fokú rejtőzési képességekkel rendelkezik, amely során a Windows belső működését használja ki a felfedezés elkerülésére. Általánosságban elmondható, hogy a vírusvédelmi eszközök folyamatosan figyelik az operációs rendszerhez kapcsolódó fájlok megszokottól eltérő viselkedését, például az ismeretlen folyamatok által végrehajtott fájlműveleteket. Ezt megkerülendő, a WastedLocker a Windows Cache-ben működik, nem pedig a merevlemezen lévő eredetiből. A WastedLocker a fájlokat a gyorsítótárba olvassa, illetve módosítja. Többszöri módosítás után pedig a Windows automatikusan felülírja az eredeti fájlt a módosított, gyorsítótárban lévő változattal. Mivel ezeket a módosításokat a Windows maga kezdeményezi, ezért a vírusvédelmi szoftver azokat automatikusan legitimnek tekinti és nem vizsgálja.
Megoldás
Védekezési javaslatok:
- Megelőző megoldásként javasolt a jelszóházirend szigorítása.
- Tartsa naprakészen az operációs rendszert, a telepített alkalmazásokat és az alkalmazott vírusvédelmi megoldásokat.
- Legyen elővigyázatos a gyanús csatolmányt tartalmazó e-mailekkel szemben, azokat lehetőség szerint ne nyissa meg.
- Blokkolja az összes URL- és IP-alapú IoC-t a tűzfalon, az IDS-en, a web-átjáróknál, az útválasztóknál.
- Az ismeretlen fájlokat és gyanús e-mail csatolmányokat ellenőrizheti a Virustotal oldalra feltöltve. (Érzékeny vagy bizalmas információkat tartalmazó dokumentumok feltöltése nem javasolt!)
- A zsarolóvírusokról hasznos információkat az NBSZ NKI weboldalán találhat.
Támadás típusa
RansomwareHatás
Loss of availability (Elérhetőség elvesztése)Loss of integrity (Sértetlenség elvesztése)
Hivatkozások
Egyéb referencia: research.nccgroup.com
Egyéb referencia: labs.sentinelone.com
Egyéb referencia: securelist.com
Egyéb referencia: news.sophos.com
Egyéb referencia: www.ehackingnews.com
Egyéb referencia: nki.gov.hu
Indikátorok
CobaltStrike C&C domain:
- adsmarketart.com
- advancedanalysis.be
- advertstv.com
- amazingdonutco.com
- cofeedback.com
- consultane.com
- dns.proactiveads.be
- mwebsoft.com
- rostraffic.com
- traffichi.com
- typiconsult.com
- websitelistbuilder.com
CobaltStrike SHA256 hash:
- 2f72550c99a297558235caa97d025054f70a276283998d9686c282612ebdbea0
- 389f2000a22e839ddafb28d9cf522b0b71e303e0ae89e5fc2cd5b53ae9256848
- 3dfb4e7ca12b7176a0cf12edce288b26a970339e6529a0b2dad7114bba0e16c3
- 714e0ed61b0ae779af573dce32cbc4d70d23ca6cfe117b63f53ed3627d121feb
- 810576224c148d673f47409a34bd8c7f743295d536f6d8e95f22ac278852a45f
- 83710bbb9d8d1cf68b425f52f2fb29d5ebbbd05952b60fb3f09e609dfcf1976c
- 91e18e5e048b39dfc8d250ae54471249d59c637e7a85981ab0c81cf5a4b8482d
- adabf8c1798432b766260ac42ccdd78e0a4712384618a2fc2e3695ff975b0246
- b0354649de6183d455a454956c008eb4dec093141af5866cc9ba7b314789844d
- bc1c5fecadc752001826b736810713a86cfa64979b3420ab63fe97ba7407f068
- c781c56d8c8daedbed9a15fb2ece165b96fdda1a85d3beeba6bb3bc23e917c90
- c7cde31daa7f5d0923f9c7591378b4992765eac12efa75c1baaaefa5f6bdb2b6
- f093b0006ef5ac52aa1d51fee705aa3b7b10a6af2acb4019b7bc16da4cabb5a1
WastedLocker SHA256 hash:
- ed0632acb266a4ec3f51dd803c8025bccd654e53c64eb613e203c590897079b3
- e3bf41de3a7edf556d43b6196652aa036e48a602bb3f7c98af9dae992222a8eb
- bcdac1a2b67e2b47f8129814dca3bcf7d55404757eb09f1c3103f57da3153ec8
- aa05e7a187ddec2e11fc1c9eafe61408d085b0ab6cd12caeaf531c9dca129772
- 9056ec1ee8d1b0124110e9798700e473fb7c31bc0656d9fc83ed0ac241746064
- 8897db876553f942b2eb4005f8475a232bafb82a50ca7761a621842e894a3d80
- 887aac61771af200f7e58bf0d02cb96d9befa11deda4e448f0a700ccb186ce9d
- 97a1e14988672f7381d54e70785994ed45c2efe3da37e07be251a627f25078a7
- 85f391ecd480711401f6da2f371156f995dd5cff7580f37791e79e62b91fd9eb
- 7a45a4ae68992e5be784b4a6da7acd98dc28281fe238f22c1f7c1d85a90d144a
- 5cd04805f9753ca08b82e88c27bf5426d1d356bb26b281885573051048911367
WastedLocker SHA1 hash:
- 9292fa66c917bfa47e8012d302a69bec48e9b98c
- be59c867da75e2a66b8c2519e950254f817cd4ad
- 70c0d6b0a8485df01ed893a7919009f099591083
- 4fed7eae00bfa21938e49f33b7c6794fd7d0750c
- 763d356d30e81d1cd15f6bc6a31f96181edb0b8f
- e13f75f25f5830008a4830a75c8ccacb22cebe7b
- b99090009cf758fa7551b197990494768cd58687
- 809fbd450e1a484a5af4ec05c345b2a7072723e7
- e62d3a4fe0da1b1b8e9bcff3148becd6d02bcb07
- 91b2bf44b1f9282c09f07f16631deaa3ad9d956d
- f25f0b369a355f30f5e11ac11a7f644bcfefd963
VHO:Trojan-Ransom.Win32.Wasted.d hash:
- 2CC4534B0DD0E1C8D5B89644274A10C1 (MD5)
- 735EE2C15C0B7172F65D39F0FD33B9186EE69653 (SHA-1)
- 905EA119AD8D3E54CD228C458A1B5681ABC1F35DF782977A23812EC4EFA0288A (SHA-256)