Ang Ryuk ay isa sa mga pinakasikat na opsyon sa ransomware sa nakalipas na ilang taon. Dahil ito ay unang lumitaw sa tag-araw ng 2018, ito ay nakolekta
1. Pangkalahatang impormasyon
Ang dokumentong ito ay naglalaman ng pagsusuri ng variant ng Ryuk ransomware, pati na rin ang loader na responsable sa pag-load ng malware sa system.
Ang Ryuk ransomware ay unang lumitaw noong tag-araw ng 2018. Ang isa sa mga pagkakaiba sa pagitan ng Ryuk at iba pang ransomware ay ang layunin nito sa pag-atake sa mga corporate environment.
Noong kalagitnaan ng 2019, inatake ng mga cybercriminal group ang malaking bilang ng mga kumpanyang Espanyol gamit ang ransomware na ito.
kanin. 1: Sipi mula sa El Confidencial tungkol sa pag-atake ng Ryuk ransomware [1]
kanin. 2: Sipi mula sa El PaΓs tungkol sa isang pag-atake na ginawa gamit ang Ryuk ransomware [2]
Ngayong taon, sinalakay ni Ryuk ang isang malaking bilang ng mga kumpanya sa iba't ibang bansa. Tulad ng makikita mo sa mga figure sa ibaba, ang Germany, China, Algeria at India ang pinakamahirap na tinamaan.
Sa pamamagitan ng paghahambing sa bilang ng mga cyber attack, makikita natin na naapektuhan ni Ryuk ang milyun-milyong user at nakompromiso ang malaking halaga ng data, na nagreresulta sa matinding pagkalugi sa ekonomiya.
kanin. 3: Ilustrasyon ng pandaigdigang aktibidad ni Ryuk.
kanin. 4: 16 na bansa na pinakanaapektuhan ng Ryuk
kanin. 5: Bilang ng mga user na inatake ng Ryuk ransomware (sa milyun-milyon)
Ayon sa karaniwang prinsipyo ng pagpapatakbo ng naturang mga banta, ang ransomware na ito, pagkatapos makumpleto ang pag-encrypt, ay nagpapakita sa biktima ng isang abiso sa ransom na dapat bayaran sa bitcoins sa tinukoy na address upang maibalik ang access sa mga naka-encrypt na file.
Ang malware na ito ay nagbago mula noong una itong ipinakilala.
Ang variant ng bantang ito na nasuri sa dokumentong ito ay natuklasan sa isang pagtatangka ng pag-atake noong Enero 2020.
Dahil sa pagiging kumplikado nito, ang malware na ito ay kadalasang iniuugnay sa mga organisadong cybercriminal group, na kilala rin bilang mga APT group.
Ang bahagi ng Ryuk code ay may kapansin-pansing pagkakapareho sa code at istraktura ng isa pang kilalang ransomware, Hermes, kung saan sila ay nagbabahagi ng ilang magkakaparehong function. Ito ang dahilan kung bakit unang na-link si Ryuk sa North Korean group na Lazarus, na noong panahong iyon ay pinaghihinalaang nasa likod ng Hermes ransomware.
Ang serbisyo ng Falcon X ng CrowdStrike ay nabanggit na ang Ryuk ay sa katunayan ay nilikha ng grupong WIZARD SPIDER [4].
Mayroong ilang katibayan upang suportahan ang pagpapalagay na ito. Una, ang ransomware na ito ay na-advertise sa website na exploit.in, na isang kilalang Russian malware marketplace at dati nang nauugnay sa ilang Russian APT group.
Ang katotohanang ito ay nag-aalis ng teorya na si Ryuk ay maaaring binuo ng Lazarus APT group, dahil hindi ito akma sa paraan ng pagpapatakbo ng grupo.
Bilang karagdagan, si Ryuk ay na-advertise bilang isang ransomware na hindi gagana sa Russian, Ukrainian at Belarusian system. Ang pag-uugali na ito ay tinutukoy ng isang tampok na makikita sa ilang bersyon ng Ryuk, kung saan sinusuri nito ang wika ng system kung saan tumatakbo ang ransomware at pinipigilan itong tumakbo kung ang system ay may wikang Russian, Ukrainian o Belarusian. Sa wakas, ang isang ekspertong pagsusuri sa makina na na-hack ng WIZARD SPIDER team ay nagsiwalat ng ilang "artifact" na diumano'y ginamit sa pagbuo ng Ryuk bilang isang variant ng Hermes ransomware.
Sa kabilang banda, iminungkahi ng mga eksperto na sina Gabriela Nicolao at Luciano Martins na ang ransomware ay maaaring binuo ng APT group na CryptoTech [5].
Ito ay kasunod ng katotohanan na ilang buwan bago ang paglitaw ni Ryuk, ang grupong ito ay nag-post ng impormasyon sa forum ng parehong site na sila ay nakabuo ng isang bagong bersyon ng Hermes ransomware.
Ilang mga gumagamit ng forum ang nagtanong kung nilikha ba talaga ng CryptoTech si Ryuk. Pagkatapos ay ipinagtanggol ng grupo ang sarili at sinabing mayroon itong ebidensya na nakabuo sila ng 100% ng ransomware.
2. Katangian
Nagsisimula kami sa bootloader, na ang trabaho ay tukuyin ang system na ito ay naka-on upang ang "tama" na bersyon ng Ryuk ransomware ay mailunsad.
Ang bootloader hash ay ang mga sumusunod:
MD5 A73130B0E379A989CBA3D695A157A495
SHA256 EF231EE1A2481B7E627921468E79BB4369CCFAEB19A575748DD2B664ABC4F469
Isa sa mga tampok ng downloader na ito ay hindi ito naglalaman ng anumang metadata, i.e. Ang mga gumawa ng malware na ito ay hindi nagsama ng anumang impormasyon dito.
Minsan nagsasama sila ng maling data upang linlangin ang user na isipin na nagpapatakbo sila ng isang lehitimong application. Gayunpaman, tulad ng makikita natin sa ibang pagkakataon, kung ang impeksyon ay hindi nagsasangkot ng pakikipag-ugnayan ng gumagamit (tulad ng kaso sa ransomware na ito), hindi itinuturing ng mga umaatake na kinakailangang gumamit ng metadata.
kanin. 6: Sample na Meta Data
Ang sample ay pinagsama-sama sa 32-bit na format upang maaari itong tumakbo sa parehong 32-bit at 64-bit system.
3. Vektor ng pagtagos
Ang sample na nagda-download at nagpapatakbo ng Ryuk ay pumasok sa aming system sa pamamagitan ng isang malayuang koneksyon, at ang mga parameter ng pag-access ay nakuha sa pamamagitan ng isang paunang pag-atake ng RDP.
kanin. 7: Rehistro ng Pag-atake
Nagawa ng attacker na mag-log in sa system nang malayuan. Pagkatapos noon, gumawa siya ng executable file kasama ang aming sample.
Ang executable file na ito ay hinarangan ng isang antivirus solution bago tumakbo.
kanin. 8: Pattern lock
kanin. 9: Pattern lock
Kapag na-block ang malisyosong file, sinubukan ng attacker na mag-download ng naka-encrypt na bersyon ng executable file, na na-block din.
kanin. 10: Set ng mga sample na sinubukang patakbuhin ng attacker
Sa wakas, sinubukan niyang mag-download ng isa pang nakakahamak na file sa pamamagitan ng naka-encrypt na console
PowerShell upang i-bypass ang proteksyon ng antivirus. Pero nakaharang din siya.
kanin. 11: PowerShell na may naka-block na nakakahamak na nilalaman
kanin. 12: PowerShell na may naka-block na nakakahamak na nilalaman
4. Loader
Kapag nag-execute ito, nagsusulat ito ng ReadMe file sa folder % temp%, na tipikal para kay Ryuk. Ang file na ito ay isang ransom note na naglalaman ng email address sa protonmail domain, na karaniwan sa pamilya ng malware na ito: [protektado ng email]
kanin. 13: Paghingi ng Pantubos
Habang tumatakbo ang bootloader, makikita mong naglulunsad ito ng ilang mga executable na file na may mga random na pangalan. Ang mga ito ay naka-imbak sa isang nakatagong folder PUBLIC, ngunit kung ang opsyon ay hindi aktibo sa operating system "Ipakita ang mga nakatagong file at folder", pagkatapos ay mananatili silang nakatago. Bukod dito, ang mga file na ito ay 64-bit, hindi katulad ng parent file, na 32-bit.
kanin. 14: Mga executable na file na inilunsad ng sample
Tulad ng makikita mo sa larawan sa itaas, inilunsad ni Ryuk ang icacls.exe, na gagamitin upang baguhin ang lahat ng ACL (Mga listahan ng kontrol sa access), kaya tinitiyak ang pag-access at pagbabago ng mga flag.
Ito ay nakakakuha ng ganap na access sa ilalim ng lahat ng mga user sa lahat ng mga file sa device (/T) anuman ang mga error (/C) at nang hindi nagpapakita ng anumang mga mensahe (/Q).
kanin. 15: Mga parameter ng pagpapatupad ng icacls.exe na inilunsad ng sample
Mahalagang tandaan na sinusuri ni Ryuk kung aling bersyon ng Windows ang iyong pinapatakbo. Para dito siya
nagsasagawa ng pagsusuri ng bersyon gamit ang GetVersionExW, kung saan sinusuri nito ang halaga ng bandila lpVersionInformationna nagpapahiwatig kung ang kasalukuyang bersyon ng Windows ay mas bago kaysa sa Windows XP.
Depende sa kung nagpapatakbo ka ng isang bersyon sa ibang pagkakataon kaysa sa Windows XP, ang boot loader ay magsusulat sa lokal na folder ng user - sa kasong ito sa folder %Pampubliko%.
kanin. 17: Sinusuri ang bersyon ng operating system
Ang file na sinusulat ay Ryuk. Pagkatapos ay pinapatakbo ito, na ipinapasa ang sarili nitong address bilang isang parameter.
kanin. 18: I-execute si Ryuk sa pamamagitan ng ShellExecute
Ang unang bagay na ginagawa ni Ryuk ay tumanggap ng mga parameter ng input. Sa pagkakataong ito, mayroong dalawang input parameter (ang executable mismo at ang dropper address) na ginagamit upang alisin ang sarili nitong mga bakas.
kanin. 19: Paglikha ng Proseso
Maaari mo ring makita na kapag naipatakbo na nito ang mga executable nito, tinatanggal nito ang sarili nito, kaya hindi nag-iiwan ng bakas ng sarili nitong presensya sa folder kung saan ito pinaandar.
kanin. 20: Pagtanggal ng file
5. RYUK
5.1 Presensya
Si Ryuk, tulad ng ibang malware, ay sumusubok na manatili sa system hangga't maaari. Gaya ng ipinakita sa itaas, isang paraan upang makamit ang layuning ito ay ang palihim na gumawa at magpatakbo ng mga executable na file. Upang gawin ito, ang pinakakaraniwang kasanayan ay ang pagbabago ng registry key KasalukuyangVersionRun.
Sa kasong ito, makikita mo na para sa layuning ito ang unang file na ilulunsad VWjRF.exe
(Ang pangalan ng file ay random na nabuo) paglulunsad cmd.exe.
kanin. 21: Isinasagawa ang VWjRF.exe
Pagkatapos ay ipasok ang utos RUN may pangalan"svchos". Kaya, kung gusto mong suriin ang mga registry key anumang oras, madali mong makaligtaan ang pagbabagong ito, dahil sa pagkakapareho ng pangalang ito sa svchost. Salamat sa key na ito, tinitiyak ni Ryuk ang presensya nito sa system. Kung ang system ay wala yet been infected , tapos kapag na-reboot mo ang system, susubukan ulit ng executable.
kanin. 22: Tinitiyak ng sample ang presensya sa registry key
Makikita rin natin na ang executable na ito ay huminto sa dalawang serbisyo:
"audioendpointbuilder", na, gaya ng ipinahihiwatig ng pangalan nito, ay tumutugma sa audio ng system,
kanin. 23: Sample na huminto sa serbisyo ng system audio
ΠΈ Samss, na isang serbisyo sa pamamahala ng account. Ang pagtigil sa dalawang serbisyong ito ay isang katangian ni Ryuk. Sa kasong ito, kung nakakonekta ang system sa isang SIEM system, susubukan ng ransomware na ihinto ang pagpapadala sa
kanin. 24: Sample na huminto sa serbisyo ng Samss
5.2 Mga Pribilehiyo
Sa pangkalahatan, nagsisimula si Ryuk sa pamamagitan ng paglipat sa gilid sa loob ng network o ito ay inilunsad ng isa pang malware tulad ng
Bago pa man, bilang panimula sa proseso ng pagpapatupad, nakikita natin na isinasagawa niya ang proseso ImpersonateSelf, na nangangahulugan na ang mga nilalamang panseguridad ng access token ay ipapasa sa stream, kung saan ito ay agad na makukuha gamit ang GetCurrentThread.
kanin. 25: Tawagan ang ImpersonateSelf
Nakita namin na mag-uugnay ito ng access token sa isang thread. Nakikita rin natin na ang isa sa mga bandila ay DesiredAccess, na maaaring gamitin upang kontrolin ang access na magkakaroon ng thread. Sa kasong ito ang halaga na matatanggap ng edx ay dapat TOKEN_ALL_ACESS o kung hindi man - TOKEN_WRITE.
kanin. 26: Paglikha ng Flow Token
Tapos gagamitin niya SeDebugPrivilege at tatawag upang makakuha ng mga pahintulot sa Pag-debug sa thread, na nagreresulta sa PROCESS_ALL_ACCESS, maa-access niya ang anumang kinakailangang proseso. Ngayon, dahil mayroon nang nakahanda na stream ang encryptor, ang natitira na lang ay magpatuloy sa huling yugto.
kanin. 27: Pagtawag sa SeDebugPrivilege at Privilege Escalation Function
Sa isang banda, mayroon kaming LookupPrivilegeValueW, na nagbibigay sa amin ng kinakailangang impormasyon tungkol sa mga pribilehiyong gusto naming dagdagan.
kanin. 28: Humiling ng impormasyon tungkol sa mga pribilehiyo para sa pagtaas ng pribilehiyo
Sa kabilang banda, mayroon kami AdjustTokenPrivileges, na nagpapahintulot sa amin na makuha ang mga kinakailangang karapatan sa aming stream. Sa kasong ito, ang pinakamahalagang bagay ay NewState, na ang watawat ay magbibigay ng mga pribilehiyo.
kanin. 29: Pag-set up ng mga pahintulot para sa isang token
5.3 Pagpapatupad
Sa seksyong ito, ipapakita namin kung paano ginagawa ng sample ang proseso ng pagpapatupad na naunang nabanggit sa ulat na ito.
Ang pangunahing layunin ng proseso ng pagpapatupad, pati na rin ang pagdami, ay upang makakuha ng access sa mga kopya ng anino. Upang gawin ito, kailangan niyang magtrabaho sa isang thread na may mga karapatan na mas mataas kaysa sa mga lokal na gumagamit. Kapag nakakuha na ito ng mga matataas na karapatan, tatanggalin nito ang mga kopya at gagawa ng mga pagbabago sa iba pang mga proseso upang maging imposibleng bumalik sa naunang restore point sa operating system.
Tulad ng karaniwan sa ganitong uri ng malware, ginagamit nito CreateToolHelp32Snapshotkaya kailangan ng snapshot ng kasalukuyang tumatakbong mga proseso at sinusubukang i-access ang mga prosesong iyon gamit OpenProcess. Kapag nakakuha ito ng access sa proseso, magbubukas din ito ng token kasama ang impormasyon nito para makuha ang mga parameter ng proseso.
kanin. 30: Pagkuha ng mga proseso mula sa isang computer
Maaari naming dynamic na makita kung paano nito nakukuha ang listahan ng mga tumatakbong proseso sa nakagawiang 140002D9C gamit ang CreateToolhelp32Snapshot. Matapos matanggap ang mga ito, dumaan siya sa listahan, sinusubukang buksan ang mga proseso nang paisa-isa gamit ang OpenProcess hanggang sa magtagumpay siya. Sa kasong ito, ang unang proseso na nabuksan niya ay "taskhost.exe".
kanin. 31: Dynamically Magsagawa ng Pamamaraan upang Makakuha ng Proseso
Makikita natin na pagkatapos ay binabasa nito ang impormasyon ng token ng proseso, kaya tumatawag ito OpenProcessToken may parameter "20008"
kanin. 32: Basahin ang impormasyon ng token ng proseso
Sinusuri din nito na ang prosesong pagtutuunan nito ay hindi csrss.exe, explorer.exe, lsaas.exe o na siya ay may isang hanay ng mga karapatan awtoridad ng NT.
kanin. 33: Mga hindi kasamang proseso
Maaari naming dynamic na makita kung paano nito unang ginagawa ang pagsusuri gamit ang impormasyon ng token ng proseso sa 140002D9C upang malaman kung ang account na ang mga karapatan ay ginagamit upang magsagawa ng proseso ay isang account NT AUTHORITY.
kanin. 34: NT AUTHORITY check
At sa paglaon, sa labas ng pamamaraan, sinusuri niya na hindi ito csrss.exe, explorer.exe o lsaas.exe.
kanin. 35: NT AUTHORITY check
Kapag nakuha na niya ang isang snapshot ng mga proseso, binuksan ang mga proseso, at na-verify na wala sa mga ito ang ibinukod, handa na siyang isulat sa memorya ang mga prosesong ii-inject.
Upang gawin ito, inilalaan muna nito ang isang lugar sa memorya (VirtualAllocEx), nagsusulat dito (WriteProcessmemory) at lumikha ng isang thread (CreateRemoteThread). Upang gumana sa mga function na ito, ginagamit nito ang mga PID ng mga napiling proseso, na dati nitong nakuha gamit CreateToolhelp32Snapshot.
kanin. 36: I-embed ang code
Dito maaari naming dynamic na obserbahan kung paano ito ginagamit ang proseso ng PID upang tawagan ang function VirtualAllocEx.
kanin. 37: Tumawag sa VirtualAllocEx
5.4 Pag-encrypt
Sa seksyong ito, titingnan natin ang bahagi ng pag-encrypt ng sample na ito. Sa sumusunod na larawan ay makikita mo ang dalawang subroutine na tinatawag na "LoadLibrary_EncodeString"At"Encode_Func", na responsable para sa pagsasagawa ng pamamaraan ng pag-encrypt.
kanin. 38: Mga pamamaraan sa pag-encrypt
Sa simula ay makikita natin kung paano ito naglo-load ng string na gagamitin sa pag-deobfuscate ng lahat ng kailangan: mga import, DLL, command, file at CSP.
kanin. 39: Deobfuscation circuit
Ipinapakita ng sumusunod na figure ang unang import na na-deobfuscate nito sa register R4. Loadlibrary. Gagamitin ito sa ibang pagkakataon upang i-load ang mga kinakailangang DLL. Makakakita rin tayo ng isa pang linya sa register R12, na ginagamit kasama ng nakaraang linya para magsagawa ng deobfuscation.
kanin. 40: Dynamic na deobfuscation
Patuloy itong nagda-download ng mga utos na tatakbo sa ibang pagkakataon upang i-disable ang mga backup, i-restore ang mga point, at safe boot modes.
kanin. 41: Naglo-load ng mga utos
Pagkatapos ay nilo-load nito ang lokasyon kung saan ito magda-drop ng 3 file: Windows.bat, run.sct ΠΈ simulan.bat.
kanin. 42: Mga Lokasyon ng File
Ang 3 file na ito ay ginagamit upang suriin ang mga pribilehiyo na mayroon ang bawat lokasyon. Kung hindi magagamit ang mga kinakailangang pribilehiyo, itinigil ni Ryuk ang pagpapatupad.
Patuloy itong naglo-load ng mga linya na naaayon sa tatlong mga file. Una, DECRYPT_INFORMATION.html, ay naglalaman ng impormasyong kinakailangan upang mabawi ang mga file. Pangalawa, PUBLIC, naglalaman ng RSA public key.
kanin. 43: Line DECRYPT INFORMATION.html
pangatlo, UNIQUE_ID_DO_NOT_REMOVE, ay naglalaman ng naka-encrypt na key na gagamitin sa susunod na gawain upang maisagawa ang pag-encrypt.
kanin. 44: Line UNIQUE ID HUWAG TANGGALIN
Sa wakas, dina-download nito ang mga kinakailangang aklatan kasama ang mga kinakailangang import at CSP (Microsoft Enhanced RSA ΠΈ AES Cryptographic Provider).
kanin. 45: Naglo-load ng mga aklatan
Matapos makumpleto ang lahat ng deobfuscation, nagpapatuloy ito upang maisagawa ang mga aksyon na kinakailangan para sa pag-encrypt: pag-enumerate sa lahat ng mga lohikal na drive, pagpapatupad kung ano ang na-load sa nakaraang routine, pagpapalakas ng presensya sa system, paghahagis ng RyukReadMe.html file, pag-encrypt, pag-enumerate sa lahat ng mga drive ng network , paglipat sa mga natukoy na device at ang kanilang pag-encrypt.
Nagsisimula ang lahat sa paglo-load"cmd.exe" at mga rekord ng pampublikong key ng RSA.
kanin. 46: Paghahanda para sa pag-encrypt
Pagkatapos ay nakukuha nito ang lahat ng lohikal na drive gamit GetLogicalDrives at hindi pinapagana ang lahat ng backup, restore point at safe boot mode.
kanin. 47: Pag-deactivate ng mga tool sa pagbawi
Pagkatapos nito, pinalalakas nito ang presensya nito sa system, tulad ng nakita natin sa itaas, at isinulat ang unang file RyukReadMe.html Π² TEMP.
kanin. 48: Pag-publish ng abiso sa ransom
Sa sumusunod na larawan makikita mo kung paano ito lumilikha ng isang file, nagda-download ng nilalaman at nagsusulat nito:
kanin. 49: Naglo-load at nagsusulat ng mga nilalaman ng file
Para magawa ang parehong mga pagkilos sa lahat ng device, ginagamit niya
"icacls.exe", tulad ng ipinakita namin sa itaas.
kanin. 50: Paggamit ng icalcls.exe
At sa wakas, nagsisimula itong mag-encrypt ng mga file maliban sa "*.exe", "*.dll" na mga file, system file at iba pang mga lokasyon na tinukoy sa anyo ng isang naka-encrypt na puting listahan. Upang gawin ito, gumagamit ito ng mga pag-import: CryptoAcquireContextW (kung saan ang paggamit ng AES at RSA ay tinukoy), CryptDeriveKey, CryptGenKey, CryptDestroyKey atbp. Sinusubukan din nitong palawigin ang abot nito sa mga natuklasang network device gamit ang WNetEnumResourceW at pagkatapos ay i-encrypt ang mga ito.
kanin. 51: Pag-encrypt ng mga file ng system
6. Mga import at kaukulang bandila
Nasa ibaba ang isang talahanayan na naglilista ng mga pinakanauugnay na pag-import at flag na ginamit ng sample:
7. IOC
sanggunian
- usersPublicrun.sct
- Start MenuProgramsStartupstart.bat AppDataRoamingMicrosoftWindowsStart
- MenuProgramsStartupstart.bat
Ang isang teknikal na ulat sa Ryuk ransomware ay pinagsama-sama ng mga eksperto mula sa antivirus laboratoryo PandaLabs.
8. Mga link
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/, Publicada noong 04/11/2019.
2. βUn virus 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. βVB2019 paper: Shinigami's revenge: the long tail of the Ryuk malware.β https://securelist.com/story-of-the-year-2019-cities-under-ransomware-siege/95456/, Publicada el 11 /12/2019
4. βBig Game Hunting with Ryuk: Another LucrativebTargeted Ransomware.βhttps://www. crowdstrike.com/blog/big-game-hunting-with-ryuk-another-lucrative-targeted-ransomware/, Publicada noong 10/01/2019.
5. βVB2019 paper: Shinigami's revenge: the long tail of the Ryuk malware.β https://www. virusbulletin.com/virusbulletin/2019/10/ vb2019-paper-shinigamis-revenge-long-tail-r
Pinagmulan: www.habr.com