Ryuk je jednou z nejznámějších možností ransomwaru za posledních několik let. Od té doby, co se poprvé objevil v létě 2018, nasbíral
1. Obecné informace
Tento dokument obsahuje analýzu varianty ransomwaru Ryuk a také zavaděče odpovědného za načtení malwaru do systému.
Ransomware Ryuk se poprvé objevil v létě 2018. Jedním z rozdílů mezi Ryukem a jiným ransomwarem je, že je zaměřen na útoky na firemní prostředí.
V polovině roku 2019 napadly kyberzločinecké skupiny obrovské množství španělských společností používajících tento ransomware.
Rýže. 1: Výňatek z El Confidencial týkající se útoku ransomwaru Ryuk [1]
Rýže. 2: Výňatek z El País o útoku provedeném pomocí ransomwaru Ryuk [2]
Ryuk letos zaútočil na velké množství společností v různých zemích. Jak můžete vidět na níže uvedených číslech, nejvíce byly zasaženy Německo, Čína, Alžírsko a Indie.
Porovnáním počtu kybernetických útoků můžeme vidět, že Ryuk zasáhl miliony uživatelů a kompromitoval obrovské množství dat, což mělo za následek vážné ekonomické ztráty.
Rýže. 3: Ilustrace Ryukovy globální aktivity.
Rýže. 4: 16 zemí nejvíce postižených Ryukem
Rýže. 5: Počet uživatelů napadených ransomwarem Ryuk (v milionech)
Podle obvyklého principu fungování takových hrozeb tento ransomware po dokončení šifrování zobrazí oběti oznámení o výkupném, které musí být zaplaceno v bitcoinech na zadanou adresu, aby se obnovil přístup k zašifrovaným souborům.
Tento malware se od svého prvního uvedení změnil.
Varianta této hrozby analyzovaná v tomto dokumentu byla objevena při pokusu o útok v lednu 2020.
Kvůli své složitosti je tento malware často připisován organizovaným skupinám kyberzločinců, známým také jako skupiny APT.
Část kódu Ryuk má znatelnou podobnost s kódem a strukturou dalšího známého ransomwaru Hermes, se kterým sdílí řadu identických funkcí. To je důvod, proč byl Ryuk zpočátku napojen na severokorejskou skupinu Lazarus, která byla v té době podezřelá, že stojí za ransomwarem Hermes.
Služba Falcon X společnosti CrowdStrike následně poznamenala, že Ryuk byl ve skutečnosti vytvořen skupinou WIZARD SPIDER [4].
Existují určité důkazy na podporu tohoto předpokladu. Za prvé, tento ransomware byl inzerován na webu exploit.in, což je známý ruský trh s malwarem a byl dříve spojován s některými ruskými skupinami APT.
Tato skutečnost vylučuje teorii, že Ryuk mohl být vyvinut skupinou Lazarus APT, protože nesedí to se způsobem fungování skupiny.
Kromě toho byl Ryuk inzerován jako ransomware, který nebude fungovat na ruských, ukrajinských a běloruských systémech. Toto chování je určeno funkcí, která se nachází v některých verzích Ryuk, kde kontroluje jazyk systému, ve kterém je ransomware spuštěn, a zastavuje jeho spuštění, pokud má systém ruský, ukrajinský nebo běloruský jazyk. Nakonec odborná analýza stroje, který byl hacknut týmem WIZARD SPIDER, odhalila několik „artefaktů“, které byly údajně použity při vývoji Ryuku jako varianty Hermes ransomwaru.
Na druhou stranu odborníci Gabriela Nicolao a Luciano Martins navrhli, že ransomware mohl být vyvinut APT skupinou CryptoTech [5].
Vyplývá to ze skutečnosti, že několik měsíců před objevením Ryuka tato skupina zveřejnila na fóru téhož webu informaci, že vyvinula novou verzi ransomwaru Hermes.
Několik uživatelů fóra se zeptalo, zda CryptoTech skutečně vytvořil Ryuk. Skupina se poté bránila a uvedla, že má důkazy, že vyvinula 100 % ransomwaru.
2. Charakteristika
Začneme bootloaderem, jehož úkolem je identifikovat systém, na kterém se nachází, aby bylo možné spustit „správnou“ verzi ransomwaru Ryuk.
Hash bootloaderu je následující:
MD5 A73130B0E379A989CBA3D695A157A495
SHA256 EF231EE1A2481B7E627921468E79BB4369CCFAEB19A575748DD2B664ABC4F469
Jednou z vlastností tohoto downloaderu je, že neobsahuje žádná metadata, tzn. Tvůrci tohoto malwaru do něj nezahrnuli žádné informace.
Někdy obsahují chybná data, aby si uživatel myslel, že provozuje legitimní aplikaci. Jak však uvidíme později, pokud infekce nezahrnuje interakci uživatele (jako je tomu u tohoto ransomwaru), útočníci nepovažují za nutné používat metadata.
Rýže. 6: Ukázka metadat
Ukázka byla zkompilována ve 32bitovém formátu, takže může běžet na 32bitových i 64bitových systémech.
3. Vektor penetrace
Vzorek, který stahuje a spouští Ryuk, vstoupil do našeho systému prostřednictvím vzdáleného připojení a přístupové parametry byly získány prostřednictvím předběžného útoku RDP.
Rýže. 7: Registr útoků
Útočníkovi se podařilo vzdáleně přihlásit do systému. Poté vytvořil spustitelný soubor s naší ukázkou.
Tento spustitelný soubor byl před spuštěním zablokován antivirovým řešením.
Rýže. 8: Zámek vzoru
Rýže. 9: Zámek vzoru
Když byl škodlivý soubor zablokován, útočník se pokusil stáhnout zašifrovanou verzi spustitelného souboru, který byl také zablokován.
Rýže. 10: Sada vzorků, které se útočník pokusil spustit
Nakonec se pokusil stáhnout další škodlivý soubor přes šifrovanou konzoli
PowerShell k obejití antivirové ochrany. Byl ale také zablokován.
Rýže. 11: PowerShell se škodlivým obsahem je blokován
Rýže. 12: PowerShell se škodlivým obsahem je blokován
4. Nakladač
Když se spustí, zapíše do složky soubor ReadMe % Temp%, což je pro Ryuka typické. Tento soubor je výkupné obsahující e-mailovou adresu v doméně protonmail, která je v této rodině malwaru poměrně běžná: [chráněno e-mailem]
Rýže. 13: Poptávka po výkupném
Zatímco bootloader běží, můžete vidět, že spouští několik spustitelných souborů s náhodnými názvy. Jsou uloženy ve skryté složce VEŘEJNOST, ale pokud tato možnost není v operačním systému aktivní "Zobrazit skryté soubory a složky", pak zůstanou skryté. Navíc jsou tyto soubory 64bitové, na rozdíl od nadřazeného souboru, který je 32bitový.
Rýže. 14: Spustitelné soubory spuštěné ukázkou
Jak můžete vidět na obrázku výše, Ryuk spouští icacls.exe, který poslouží k úpravě všech ACL (Access control list), čímž zajistí přístup a úpravu příznaků.
Získá plný přístup všech uživatelů ke všem souborům na zařízení (/T) bez ohledu na chyby (/C) a bez zobrazení jakýchkoli zpráv (/Q).
Rýže. 15: Parametry spuštění icacls.exe spuštěného ukázkou
Je důležité si uvědomit, že Ryuk kontroluje, jakou verzi Windows používáte. Za tohle on
provádí kontrolu verze pomocí GetVersionExW, ve kterém kontroluje hodnotu příznaku lpVersionInformationoznačující, zda je aktuální verze systému Windows novější než Windows XP.
V závislosti na tom, zda používáte novější verzi než Windows XP, zavaděč zapíše do složky místního uživatele – v tomto případě do složky %Veřejnost%.
Rýže. 17: Kontrola verze operačního systému
Zapisovaný soubor je Ryuk. Poté jej spustí a předá svou vlastní adresu jako parametr.
Rýže. 18: Proveď Ryuka přes ShellExecute
První věc, kterou Ryuk udělá, je přijetí vstupních parametrů. Tentokrát existují dva vstupní parametry (samotný spustitelný soubor a adresa dropperu), které se používají k odstranění jeho vlastních stop.
Rýže. 19: Vytvoření procesu
Můžete také vidět, že jakmile spustí své spustitelné soubory, smaže se, takže nezanechá žádnou stopu své vlastní přítomnosti ve složce, kde byl spuštěn.
Rýže. 20: Smazání souboru
5. RYUK
5.1 Přítomnost
Ryuk se stejně jako ostatní malware snaží zůstat v systému co nejdéle. Jak je uvedeno výše, jedním ze způsobů, jak tohoto cíle dosáhnout, je tajně vytvářet a spouštět spustitelné soubory. Chcete-li to provést, nejběžnější praxí je změnit klíč registru CurrentVersionRun.
V tomto případě můžete vidět, že pro tento účel je spuštěn první soubor VWjRF.exe
(název souboru je vygenerován náhodně) se spustí cmd.exe.
Rýže. 21: Spouštění VWjRF.exe
Poté zadejte příkaz BĚH Se jménem"svchos". Pokud tedy chcete kdykoli zkontrolovat klíče registru, můžete tuto změnu snadno přehlédnout, vzhledem k podobnosti tohoto názvu se svchost. Díky tomuto klíči Ryuk zajišťuje svou přítomnost v systému. Pokud systém nemá dosud byl infikován, pak když restartujete systém, spustitelný soubor se pokusí znovu.
Rýže. 22: Ukázka zajišťuje přítomnost v klíči registru
Můžeme také vidět, že tento spustitelný soubor zastaví dvě služby:
"audioendpointbuilder“, který, jak jeho název napovídá, odpovídá systémovému zvuku,
Rýže. 23: Ukázka zastaví službu systémového zvuku
и Samss, což je služba správy účtu. Zastavení těchto dvou služeb je pro Ryuka charakteristické. V tomto případě, pokud je systém připojen k systému SIEM, ransomware se pokusí zastavit odesílání
Rýže. 24: Ukázka zastaví službu Samss
5.2 Oprávnění
Obecně řečeno, Ryuk začíná pohybem laterálně v rámci sítě nebo je spuštěn jiným malwarem jako např
Předtím, jako předehru procesu implementace, vidíme, jak proces provádí Vydávat se za sebe, což znamená, že obsah zabezpečení přístupového tokenu bude předán do streamu, kde bude okamžitě načten pomocí GetCurrentThread.
Rýže. 25: Call ImpersonateSelf
Potom uvidíme, že přiřadí přístupový token k vláknu. Také vidíme, že jedna z vlajek je Požadovaný přístup, který lze použít k řízení přístupu, který bude mít vlákno. V tomto případě by měla být hodnota, kterou edx obdrží TOKEN_ALL_ACESS nebo jinak - TOKEN_WRITE.
Rýže. 26: Vytvoření tokenu toku
Pak použije SeDebugPrivilege a provede volání k získání oprávnění k ladění ve vláknu, což má za následek PROCESS_ALL_ACCESS, bude mít přístup k jakémukoli požadovanému procesu. Nyní, vzhledem k tomu, že šifrátor již má připravený stream, zbývá pouze přejít do poslední fáze.
Rýže. 27: Volání funkce SeDebugPrivilege a eskalace oprávnění
Na jedné straně máme LookupPrivilegeValueW, který nám poskytuje potřebné informace o privilegiích, která chceme zvýšit.
Rýže. 28: Vyžádejte si informace o oprávněních pro eskalaci oprávnění
Na druhou stranu máme AdjustTokenPrivileges, což nám umožňuje získat potřebná práva k našemu streamu. V tomto případě je nejdůležitější NewState, jehož vlajka bude udělovat oprávnění.
Rýže. 29: Nastavení oprávnění pro token
5.3 Realizace
V této části si ukážeme, jak vzorek provádí proces implementace zmíněný dříve v této zprávě.
Hlavním cílem procesu implementace, stejně jako eskalace, je získat přístup k stínové kopie. K tomu potřebuje pracovat s vláknem s vyššími právy, než má místní uživatel. Jakmile taková zvýšená práva získá, odstraní kopie a provede změny v jiných procesech, aby se znemožnil návrat k dřívějšímu bodu obnovení v operačním systému.
Jak je u tohoto typu malwaru typické, používá CreateToolHelp32Snapshottakže pořídí snímek aktuálně běžících procesů a pokusí se k těmto procesům přistupovat pomocí OpenProcess. Jakmile získá přístup k procesu, otevře také token se svými informacemi, aby získal parametry procesu.
Rýže. 30: Načítání procesů z počítače
Můžeme dynamicky vidět, jak získává seznam běžících procesů v rutině 140002D9C pomocí CreateToolhelp32Snapshot. Po jejich obdržení prochází seznam a snaží se otevřít procesy jeden po druhém pomocí OpenProcess, dokud neuspěje. V tomto případě byl prvním procesem, který se mu podařilo otevřít "taskhost.exe".
Rýže. 31: Dynamicky provádějte proceduru pro získání procesu
Vidíme, že následně čte informace o tokenu procesu, takže volá OpenProcessToken s parametrem "20008"
Rýže. 32: Čtení informací o tokenu procesu
Také kontroluje, zda proces, do kterého bude vstřikován, není Csrss.exe, explorer.exe, lsaas.exe nebo že má soubor práv úřad NT.
Rýže. 33: Vyloučené procesy
Můžeme dynamicky vidět, jak nejprve provádí kontrolu pomocí informací o procesním tokenu 140002 9 DXNUMXC za účelem zjištění, zda účet, jehož práva jsou využívána k provedení procesu, je účtem NT AUTORITY.
Rýže. 34: Kontrola NT AUTHORITY
A později, mimo proceduru, zkontroluje, že tomu tak není csrss.exe, explorer.exe nebo lsaas.exe.
Rýže. 35: Kontrola NT AUTHORITY
Jakmile pořídí snímek procesů, otevře procesy a ověří, že žádný z nich není vyloučen, je připraven zapsat do paměti procesy, které budou vloženy.
K tomu nejprve rezervuje oblast v paměti (VirtualAllocEx), zapíše do něj (WriteProcessmemory) a vytvoří vlákno (CreateRemoteThread). Pro práci s těmito funkcemi využívá PIDs vybraných procesů, které dříve získal CreateToolhelp32Snapshot.
Rýže. 36: Kód pro vložení
Zde můžeme dynamicky sledovat, jak používá procesní PID k volání funkce VirtualAllocEx.
Rýže. 37: Zavolejte VirtualAllocEx
5.4 Šifrování
V této části se podíváme na šifrovací část této ukázky. Na následujícím obrázku můžete vidět dva podprogramy s názvem "LoadLibrary_EncodeString"a"Encode_Func“, které jsou zodpovědné za provádění postupu šifrování.
Rýže. 38: Postupy šifrování
Na začátku můžeme vidět, jak načítá řetězec, který bude později použit k deobfuskaci všeho, co je potřeba: importů, DLL, příkazů, souborů a CSP.
Rýže. 39: Deobfuskační obvod
Následující obrázek ukazuje první import, který deobfuskuje v registru R4. Loadlibrary. To bude později použito k načtení požadovaných knihoven DLL. Můžeme také vidět další řádek v registru R12, který se používá spolu s předchozím řádkem k provádění deobfuskace.
Rýže. 40: Dynamická deobfuskace
Pokračuje ve stahování příkazů, které spustí později, aby zakázal zálohování, body obnovení a režimy bezpečného spouštění.
Rýže. 41: Načítání příkazů
Poté načte umístění, kam umístí 3 soubory: Windows.bat, run.sct и start.bat.
Rýže. 42: Umístění souborů
Tyto 3 soubory se používají ke kontrole oprávnění, která má každé umístění. Pokud požadovaná oprávnění nejsou k dispozici, Ryuk zastaví provádění.
Pokračuje v načítání řádků odpovídajících třem souborům. První, DECRYPT_INFORMATION.html, obsahuje informace potřebné k obnovení souborů. Druhý, VEŘEJNOST, obsahuje veřejný klíč RSA.
Rýže. 43: Řádek DECRYPT INFORMACE.html
Třetí, UNIQUE_ID_DO_NOT_REMOVE, obsahuje šifrovaný klíč, který bude použit v další rutině k provedení šifrování.
Rýže. 44: Řádek UNIQUE ID NEODSTRAŇUJTE
Nakonec stáhne požadované knihovny spolu s požadovanými importy a CSP (Microsoft Enhanced RSA и Poskytovatel kryptografie AES).
Rýže. 45: Načítání knihoven
Po dokončení veškeré deobfuskace pokračuje v provádění akcí potřebných pro šifrování: výčet všech logických jednotek, spuštění toho, co bylo načteno v předchozí rutině, posílení přítomnosti v systému, vyvolání souboru RyukReadMe.html, šifrování, výčet všech síťových jednotek , přechod na detekovaná zařízení a jejich šifrování.
Všechno to začíná načítáním"cmd.exe“ a záznamy veřejného klíče RSA.
Rýže. 46: Příprava na šifrování
Pak využije všechny logické jednotky GetLogicalDrives a zakáže všechny zálohy, body obnovení a režimy bezpečného spouštění.
Rýže. 47: Deaktivace nástrojů pro obnovu
Poté posílí svou přítomnost v systému, jak jsme viděli výše, a zapíše první soubor RyukReadMe.html в TEMP.
Rýže. 48: Zveřejnění oznámení o výkupném
Na následujícím obrázku můžete vidět, jak vytvoří soubor, stáhne obsah a zapíše jej:
Rýže. 49: Načítání a zápis obsahu souboru
Aby mohl provádět stejné akce na všech zařízeních, používá
"icacls.exe“, jak jsme ukázali výše.
Rýže. 50: Použití icalcls.exe
A nakonec začne šifrovat soubory kromě „*.exe“, „*.dll“ souborů, systémových souborů a dalších umístění specifikovaných ve formě zašifrovaného bílého seznamu. K tomu používá importy: CryptAcquireContextW (kde je specifikováno použití AES a RSA), CryptDeriveKey, CryptGenKey, CryptDestroyKey atd. Také se pokouší rozšířit svůj dosah na objevená síťová zařízení pomocí WNetEnumResourceW a poté je zašifrovat.
Rýže. 51: Šifrování systémových souborů
6. Importy a odpovídající příznaky
Níže je uvedena tabulka se seznamem nejrelevantnějších importů a příznaků použitých ve vzorku:
7. MOV
reference
- usersPublicrun.sct
- Nabídka StartProgramyStartupstart.bat AppDataRoamingMicrosoftWindowsStart
- MenuProgramsStartupstart.bat
Technickou zprávu o ransomwaru Ryuk sestavili odborníci z antivirové laboratoře PandaLabs.
8. Odkazy
1. “Everis y Prisa Radio sufren un grave ciberataque que secuestra sus sistemas.”https://www. elconfidencial.com/tecnologia/2019-11-04/everis-la-ser-ciberataque-ransomware-15_2312019/, zveřejnění dne 04. 11. 2019.
2. „Un de origen ruso ataca a importantes empresas españolas.“ https: //elpais.com/tecnologia/2019/11/04/actualidad/1572897654_ 251312.html, Publicada el 04/11/2019
3. „Papír VB2019: Shinigamiho pomsta: dlouhý ocas malwaru Ryuk.“ https://securelist.com/story-of-the-year-2019-cities-under-ransomware-siege/95456/, Publicada el 11 /12/2019
4. „Lov velkých her s Ryukem: další lukrativní cílený ransomware.“ https://www. crowdstrike.com/blog/big-game-hunting-with-ryuk-another-lucrative-targeted-ransomware/, zveřejnění dne 10. 01. 2019.
5. „Papír VB2019: Shinigamiho pomsta: dlouhý chvost malwaru Ryuk.“ https://www. virusbulletin.com/virusbulletin/2019/10/ vb2019-paper-shinigamis-revenge-long-tail-r
Zdroj: www.habr.com