Ryuk ialah salah satu pilihan perisian tebusan yang paling terkenal dalam beberapa tahun kebelakangan ini. Sejak pertama kali muncul pada musim panas 2018, ia telah dikumpulkan
1. maklumat am
Dokumen ini mengandungi analisis varian ransomware Ryuk, serta pemuat yang bertanggungjawab untuk memuatkan perisian hasad ke dalam sistem.
Perisian tebusan Ryuk pertama kali muncul pada musim panas 2018. Salah satu perbezaan antara Ryuk dan perisian tebusan lain ialah ia bertujuan untuk menyerang persekitaran korporat.
Pada pertengahan 2019, kumpulan penjenayah siber menyerang sejumlah besar syarikat Sepanyol menggunakan perisian tebusan ini.
nasi. 1: Petikan dari El Confidencial mengenai serangan ransomware Ryuk [1]
nasi. 2: Petikan dari El PaΓs tentang serangan yang dilakukan menggunakan perisian tebusan Ryuk [2]
Tahun ini, Ryuk telah menyerang sejumlah besar syarikat di pelbagai negara. Seperti yang anda lihat dalam rajah di bawah, Jerman, China, Algeria dan India adalah yang paling teruk terjejas.
Dengan membandingkan bilangan serangan siber, kita dapat melihat bahawa Ryuk telah menjejaskan berjuta-juta pengguna dan menjejaskan sejumlah besar data, mengakibatkan kerugian ekonomi yang teruk.
nasi. 3: Ilustrasi aktiviti global Ryuk.
nasi. 4: 16 negara yang paling terjejas oleh Ryuk
nasi. 5: Bilangan pengguna yang diserang oleh perisian tebusan Ryuk (dalam berjuta-juta)
Mengikut prinsip operasi biasa bagi ancaman sedemikian, perisian tebusan ini, selepas penyulitan selesai, menunjukkan kepada mangsa pemberitahuan tebusan yang mesti dibayar dalam bitcoin ke alamat yang ditentukan untuk memulihkan akses kepada fail yang disulitkan.
Malware ini telah berubah sejak ia mula diperkenalkan.
Varian ancaman ini yang dianalisis dalam dokumen ini ditemui semasa percubaan serangan pada Januari 2020.
Disebabkan kerumitannya, perisian hasad ini sering dikaitkan dengan kumpulan penjenayah siber terancang, juga dikenali sebagai kumpulan APT.
Sebahagian daripada kod Ryuk mempunyai persamaan yang ketara dengan kod dan struktur perisian tebusan terkenal lain, Hermes, yang mana mereka berkongsi beberapa fungsi yang sama. Inilah sebabnya mengapa Ryuk pada mulanya dikaitkan dengan kumpulan Korea Utara Lazarus, yang pada masa itu disyaki berada di belakang perisian tebusan Hermes.
Perkhidmatan Falcon X CrowdStrike kemudiannya menyatakan bahawa Ryuk sebenarnya dicipta oleh kumpulan WIZARD SPIDER [4].
Terdapat beberapa bukti untuk menyokong andaian ini. Pertama, perisian tebusan ini telah diiklankan di laman web exploit.in, yang merupakan pasaran perisian hasad Rusia yang terkenal dan sebelum ini telah dikaitkan dengan beberapa kumpulan APT Rusia.
Fakta ini menolak teori bahawa Ryuk boleh dibangunkan oleh kumpulan APT Lazarus, kerana ia tidak sesuai dengan cara kumpulan itu beroperasi.
Selain itu, Ryuk telah diiklankan sebagai perisian tebusan yang tidak akan berfungsi pada sistem Rusia, Ukraine dan Belarus. Tingkah laku ini ditentukan oleh ciri yang terdapat dalam beberapa versi Ryuk, di mana ia menyemak bahasa sistem yang perisian tebusan dijalankan dan menghentikannya daripada berjalan jika sistem itu mempunyai bahasa Rusia, Ukraine atau Belarus. Akhirnya, analisis pakar mesin yang digodam oleh pasukan WIZARD SPIDER mendedahkan beberapa "artifak" yang didakwa digunakan dalam pembangunan Ryuk sebagai varian perisian tebusan Hermes.
Sebaliknya, pakar Gabriela Nicolao dan Luciano Martins mencadangkan bahawa perisian tebusan itu mungkin telah dibangunkan oleh kumpulan APT CryptoTech [5].
Ini berikutan fakta bahawa beberapa bulan sebelum kemunculan Ryuk, kumpulan ini menyiarkan maklumat di forum tapak yang sama bahawa mereka telah membangunkan versi baharu perisian tebusan Hermes.
Beberapa pengguna forum mempersoalkan sama ada CryptoTech benar-benar mencipta Ryuk. Kumpulan itu kemudian mempertahankan diri dan menyatakan bahawa ia mempunyai bukti bahawa mereka telah membangunkan 100% perisian tebusan.
2. Ciri-ciri
Kami bermula dengan pemuat but, yang tugasnya adalah untuk mengenal pasti sistem yang dihidupkan supaya versi "betul" bagi perisian tebusan Ryuk boleh dilancarkan.
Cincang pemuat but adalah seperti berikut:
MD5 A73130B0E379A989CBA3D695A157A495
SHA256 EF231EE1A2481B7E627921468E79BB4369CCFAEB19A575748DD2B664ABC4F469
Salah satu ciri pemuat turun ini ialah ia tidak mengandungi sebarang metadata, i.e. Pencipta perisian hasad ini tidak memasukkan sebarang maklumat di dalamnya.
Kadang-kadang mereka memasukkan data yang salah untuk menipu pengguna agar berfikir mereka menjalankan aplikasi yang sah. Walau bagaimanapun, seperti yang akan kita lihat kemudian, jika jangkitan tidak melibatkan interaksi pengguna (seperti yang berlaku dengan perisian tebusan ini), maka penyerang tidak menganggap perlu menggunakan metadata.
nasi. 6: Contoh Data Meta
Sampel telah disusun dalam format 32-bit supaya ia boleh dijalankan pada kedua-dua sistem 32-bit dan 64-bit.
3. Vektor penembusan
Sampel yang memuat turun dan menjalankan Ryuk memasuki sistem kami melalui sambungan jauh, dan parameter akses diperoleh melalui serangan RDP awal.
nasi. 7: Daftar Serangan
Penyerang berjaya log masuk ke sistem dari jauh. Selepas itu, dia mencipta fail boleh laku dengan sampel kami.
Fail boleh laku ini telah disekat oleh penyelesaian antivirus sebelum dijalankan.
nasi. 8: Kunci corak
nasi. 9: Kunci corak
Apabila fail berniat jahat itu disekat, penyerang cuba memuat turun versi yang disulitkan bagi fail boleh laku, yang juga telah disekat.
nasi. 10: Set sampel yang cuba dijalankan oleh penyerang
Akhirnya, dia cuba memuat turun fail berniat jahat lain melalui konsol yang disulitkan
PowerShell untuk memintas perlindungan antivirus. Tetapi dia juga disekat.
nasi. 11: PowerShell dengan kandungan berniat jahat disekat
nasi. 12: PowerShell dengan kandungan berniat jahat disekat
4. Pemuat
Apabila ia dilaksanakan, ia menulis fail ReadMe ke folder % temp%, yang tipikal untuk Ryuk. Fail ini ialah nota tebusan yang mengandungi alamat e-mel dalam domain protonmail, yang agak biasa dalam keluarga perisian hasad ini: [e-mel dilindungi]
nasi. 13: Permintaan Tebusan
Semasa pemuat but berjalan, anda dapat melihat bahawa ia melancarkan beberapa fail boleh laku dengan nama rawak. Mereka disimpan dalam folder tersembunyi PUBLIC, tetapi jika pilihan tidak aktif dalam sistem pengendalian "Tunjukkan fail dan folder tersembunyi", maka mereka akan tetap tersembunyi. Selain itu, fail ini adalah 64-bit, tidak seperti fail induk, iaitu 32-bit.
nasi. 14: Fail boleh laku yang dilancarkan oleh sampel
Seperti yang anda lihat dalam imej di atas, Ryuk melancarkan icacls.exe, yang akan digunakan untuk mengubah suai semua ACL (senarai kawalan akses), dengan itu memastikan akses dan pengubahsuaian bendera.
Ia mendapat akses penuh di bawah semua pengguna kepada semua fail pada peranti (/T) tanpa mengira ralat (/C) dan tanpa menunjukkan sebarang mesej (/Q).
nasi. 15: Parameter pelaksanaan icacls.exe yang dilancarkan oleh sampel
Adalah penting untuk ambil perhatian bahawa Ryuk menyemak versi Windows yang anda jalankan. Untuk ini dia
melakukan semakan versi menggunakan GetVersionExW, di mana ia menyemak nilai bendera lpVersionInformationmenunjukkan sama ada versi Windows semasa adalah lebih baharu daripada Windows XP.
Bergantung pada sama ada anda menjalankan versi lewat daripada Windows XP, pemuat but akan menulis ke folder pengguna setempat - dalam kes ini ke folder %Awam%.
nasi. 17: Menyemak versi sistem pengendalian
Fail yang sedang ditulis ialah Ryuk. Ia kemudian menjalankannya, menghantar alamatnya sendiri sebagai parameter.
nasi. 18: Laksanakan Ryuk melalui ShellExecute
Perkara pertama yang Ryuk lakukan ialah menerima parameter input. Kali ini terdapat dua parameter input (boleh laku itu sendiri dan alamat penitis) yang digunakan untuk mengalih keluar jejaknya sendiri.
nasi. 19: Mencipta Proses
Anda juga boleh melihat bahawa apabila ia telah menjalankan boleh lakunya, ia memadamkan dirinya sendiri, dengan itu tidak meninggalkan kesan kehadirannya sendiri dalam folder tempat ia dilaksanakan.
nasi. 20: Memadam fail
5. RYUK
5.1 Kehadiran
Ryuk, seperti perisian hasad lain, cuba kekal pada sistem selama mungkin. Seperti yang ditunjukkan di atas, satu cara untuk mencapai matlamat ini adalah dengan membuat dan menjalankan fail boleh laku secara rahsia. Untuk melakukan ini, amalan yang paling biasa ialah menukar kunci pendaftaran CurrentVersionRun.
Dalam kes ini, anda boleh melihat bahawa untuk tujuan ini fail pertama yang akan dilancarkan VWjRF.exe
(nama fail dijana secara rawak) dilancarkan cmd.exe.
nasi. 21: Melaksanakan VWjRF.exe
Kemudian masukkan arahan RUN dengan nama "svchos". Oleh itu, jika anda ingin menyemak kunci pendaftaran pada bila-bila masa, anda boleh terlepas perubahan ini dengan mudah, memandangkan persamaan nama ini dengan svchost. Terima kasih kepada kunci ini, Ryuk memastikan kehadirannya dalam sistem. Jika sistem tidak belum dijangkiti , maka apabila anda but semula sistem, boleh laku akan mencuba lagi.
nasi. 22: Sampel memastikan kehadiran dalam kunci pendaftaran
Kami juga dapat melihat bahawa boleh laku ini menghentikan dua perkhidmatan:
"audioendpointbuilder", yang, seperti namanya, sepadan dengan audio sistem,
nasi. 23: Sampel menghentikan perkhidmatan audio sistem
ΠΈ Samss, yang merupakan perkhidmatan pengurusan akaun. Menghentikan dua perkhidmatan ini adalah ciri Ryuk. Dalam kes ini, jika sistem disambungkan kepada sistem SIEM, perisian tebusan cuba berhenti menghantarnya
nasi. 24: Sampel menghentikan perkhidmatan Samss
5.2 Keistimewaan
Secara umumnya, Ryuk bermula dengan bergerak ke sisi dalam rangkaian atau ia dilancarkan oleh perisian hasad lain seperti
Sebelum ini, sebagai mukadimah kepada proses pelaksanaan, kita lihat beliau menjalankan proses tersebut ImpersonateSelf, yang bermaksud bahawa kandungan keselamatan token akses akan dihantar ke strim, di mana ia akan segera diambil menggunakan GetCurrentThread.
nasi. 25: Panggil ImpersonateSelf
Kami kemudian melihat bahawa ia akan mengaitkan token akses dengan benang. Kami juga melihat bahawa salah satu bendera adalah DesiredAccess, yang boleh digunakan untuk mengawal akses yang akan dimiliki oleh urutan itu. Dalam kes ini, nilai yang akan diterima edx adalah TOKEN_ALL_ACESS atau sebaliknya - TOKEN_WRITE.
nasi. 26: Mencipta Token Aliran
Kemudian dia akan menggunakan SeDebugPrivilege dan akan membuat panggilan untuk mendapatkan kebenaran Nyahpepijat pada urutan, menghasilkan PROCESS_ALL_ACCESS, dia akan dapat mengakses sebarang proses yang diperlukan. Sekarang, memandangkan penyulitan sudah mempunyai aliran yang disediakan, yang tinggal hanyalah untuk meneruskan ke peringkat akhir.
nasi. 27: Memanggil SeDebugPrivilege dan Fungsi Peningkatan Privilege
Di satu pihak, kami mempunyai LookupPrivilegeValueW, yang memberikan kami maklumat yang diperlukan tentang keistimewaan yang ingin kami tingkatkan.
nasi. 28: Minta maklumat tentang keistimewaan untuk peningkatan keistimewaan
Sebaliknya, kita ada AdjustTokenPrivileges, yang membolehkan kami mendapatkan hak yang diperlukan untuk aliran kami. Dalam kes ini, perkara yang paling penting ialah NewState, yang benderanya akan memberikan keistimewaan.
nasi. 29: Menyediakan kebenaran untuk token
5.3 Perlaksanaan
Dalam bahagian ini, kami akan menunjukkan cara sampel melaksanakan proses pelaksanaan yang dinyatakan sebelum ini dalam laporan ini.
Matlamat utama proses pelaksanaan, serta peningkatan, adalah untuk mendapatkan akses kepada salinan bayangan. Untuk melakukan ini, dia perlu bekerja dengan benang dengan hak yang lebih tinggi daripada pengguna tempatan. Sebaik sahaja ia mendapat hak yang tinggi itu, ia akan memadamkan salinan dan membuat perubahan pada proses lain untuk menjadikannya mustahil untuk kembali ke titik pemulihan yang lebih awal dalam sistem pengendalian.
Seperti biasa dengan jenis perisian hasad ini, ia menggunakan CreateToolHelp32Snapshotjadi ia mengambil gambar proses yang sedang berjalan dan cuba mengakses proses tersebut menggunakan Proses Terbuka. Sebaik sahaja ia mendapat akses kepada proses, ia juga membuka token dengan maklumatnya untuk mendapatkan parameter proses.
nasi. 30: Mendapatkan semula proses daripada komputer
Kita boleh melihat secara dinamik cara ia mendapat senarai proses yang sedang berjalan dalam rutin 140002D9C menggunakan CreateToolhelp32Snapshot. Selepas menerimanya, dia pergi melalui senarai, cuba membuka proses satu demi satu menggunakan OpenProcess sehingga dia berjaya. Dalam kes ini, proses pertama yang dia dapat buka ialah "taskhost.exe".
nasi. 31: Laksanakan Prosedur Secara Dinamik untuk Mendapatkan Proses
Kita dapat melihat bahawa ia kemudiannya membaca maklumat token proses, jadi ia memanggil OpenProcessToken dengan parameter "20008"
nasi. 32: Baca maklumat token proses
Ia juga menyemak bahawa proses yang akan disuntik ke dalamnya tidak Csrss.exe-, explorer.exe, lsaas.exe atau bahawa dia mempunyai satu set hak pihak berkuasa NT.
nasi. 33: Proses yang dikecualikan
Kita boleh melihat secara dinamik cara ia mula-mula melakukan semakan menggunakan maklumat token proses dalam 140002D9C untuk mengetahui sama ada akaun yang haknya digunakan untuk melaksanakan proses adalah akaun NT AUTHORITY.
nasi. 34: NT AUTHORITY semak
Dan kemudian, di luar prosedur, dia menyemak bahawa ini tidak csrss.exe, explorer.exe atau lsaas.exe.
nasi. 35: NT AUTHORITY semak
Sebaik sahaja dia telah mengambil gambar proses, membuka proses dan mengesahkan bahawa tiada satu pun daripada mereka dikecualikan, dia bersedia untuk menulis kepada ingatan proses yang akan disuntik.
Untuk melakukan ini, ia mula-mula menyimpan kawasan dalam ingatan (VirtualAllocEx), menulis ke dalamnya (WriteProcessmemory) dan mencipta benang (CreateRemoteThread). Untuk bekerja dengan fungsi ini, ia menggunakan PID proses yang dipilih, yang sebelum ini diperolehinya BuatToolhelp32Snapshot.
nasi. 36: Benamkan kod
Di sini kita boleh memerhati secara dinamik bagaimana ia menggunakan proses PID untuk memanggil fungsi tersebut VirtualAllocEx.
nasi. 37: Panggil VirtualAllocEx
5.4 Penyulitan
Dalam bahagian ini, kita akan melihat bahagian penyulitan sampel ini. Dalam gambar berikut anda boleh melihat dua subrutin yang dipanggil "LoadLibrary_EncodeString"dan"Encode_Func", yang bertanggungjawab untuk melaksanakan prosedur penyulitan.
nasi. 38: Prosedur penyulitan
Pada mulanya kita dapat melihat bagaimana ia memuatkan rentetan yang kemudiannya akan digunakan untuk menyahkelirukan semua yang diperlukan: import, DLL, arahan, fail dan CSP.
nasi. 39: Litar penyahkeliruan
Rajah berikut menunjukkan import pertama yang dinyahkelirukannya dalam daftar R4. Beban perpustakaan. Ini akan digunakan kemudian untuk memuatkan DLL yang diperlukan. Kita juga boleh melihat baris lain dalam daftar R12, yang digunakan bersama dengan baris sebelumnya untuk melakukan penyahkeliruan.
nasi. 40: Nyahkeliruan dinamik
Ia terus memuat turun arahan yang akan dijalankan kemudian untuk melumpuhkan sandaran, memulihkan titik dan mod but selamat.
nasi. 41: Memuatkan arahan
Kemudian ia memuatkan lokasi di mana ia akan menjatuhkan 3 fail: Windows.bat, run.sct ΠΈ mulakan.bat.
nasi. 42: Lokasi Fail
3 fail ini digunakan untuk menyemak keistimewaan yang ada pada setiap lokasi. Jika keistimewaan yang diperlukan tidak tersedia, Ryuk menghentikan pelaksanaan.
Ia terus memuatkan baris yang sepadan dengan tiga fail. pertama, DECRYPT_INFORMATION.html, mengandungi maklumat yang diperlukan untuk memulihkan fail. Kedua, PUBLIC, mengandungi kunci awam RSA.
nasi. 43: Baris DECRYPT INFORMATION.html
ketiga, UNIQUE_ID_JANGAN_BUANG, mengandungi kunci yang disulitkan yang akan digunakan dalam rutin seterusnya untuk melaksanakan penyulitan.
nasi. 44: Baris ID UNIK JANGAN KELUARKAN
Akhir sekali, ia memuat turun perpustakaan yang diperlukan bersama dengan import dan CSP yang diperlukan (Microsoft Enhanced RSA ΠΈ Pembekal Kriptografi AES).
nasi. 45: Memuatkan perpustakaan
Selepas semua penyahkeliruan selesai, ia meneruskan untuk melaksanakan tindakan yang diperlukan untuk penyulitan: menghitung semua pemacu logik, melaksanakan apa yang dimuatkan dalam rutin sebelumnya, mengukuhkan kehadiran dalam sistem, membuang fail RyukReadMe.html, penyulitan, menghitung semua pemacu rangkaian , peralihan kepada peranti yang dikesan dan penyulitannya.
Semuanya bermula dengan memuatkan"cmd.exe" dan rekod kunci awam RSA.
nasi. 46: Bersedia untuk penyulitan
Kemudian ia mendapat semua pemacu logik menggunakan GetLogicalDrives dan melumpuhkan semua sandaran, memulihkan titik dan mod but selamat.
nasi. 47: Menyahaktifkan alatan pemulihan
Selepas itu, ia menguatkan kehadirannya dalam sistem, seperti yang kita lihat di atas, dan menulis fail pertama RyukReadMe.html Π² TEMP.
nasi. 48: Menerbitkan notis tebusan
Dalam gambar berikut anda boleh melihat cara ia mencipta fail, memuat turun kandungan dan menulisnya:
nasi. 49: Memuatkan dan menulis kandungan fail
Untuk dapat melakukan tindakan yang sama pada semua peranti, dia menggunakan
"icacls.exe", seperti yang kami tunjukkan di atas.
nasi. 50: Menggunakan icalcls.exe
Dan akhirnya, ia mula menyulitkan fail kecuali untuk fail "*.exe", "*.dll", fail sistem dan lokasi lain yang dinyatakan dalam bentuk senarai putih yang disulitkan. Untuk melakukan ini, ia menggunakan import: CryptAcquireContextW (di mana penggunaan AES dan RSA ditentukan), CryptDeriveKey, CryptGenKey, CryptDestroyKey dan lain-lain. Ia juga cuba meluaskan jangkauannya kepada peranti rangkaian yang ditemui menggunakan WNetEnumResourceW dan kemudian menyulitkannya.
nasi. 51: Menyulitkan fail sistem
6. Import dan bendera yang sepadan
Di bawah ialah jadual yang menyenaraikan import dan bendera yang paling berkaitan yang digunakan oleh sampel:
7. IOC
rujukan
- usersPublicrun.sct
- Start MenuProgramsStartupstart.bat AppDataRoamingMicrosoftWindowsStart
- MenuProgramsStartupstart.bat
Laporan teknikal mengenai perisian tebusan Ryuk telah disusun oleh pakar dari makmal antivirus PandaLabs.
8. Pautan
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 el 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. βKertas VB2019: Balas dendam Shinigami: ekor panjang perisian hasad Ryuk.β https://securelist.com/story-of-the-year-2019-cities-under-ransomware-siege/95456/, Publicada el 11 /12/2019
4. "Memburu Permainan Besar dengan Ryuk: Satu Lagi Perisian Tebusan Bersasaran Beruntung."https://www. crowdstrike.com/blog/big-game-hunting-with-ryuk-another-lucrative-targeted-ransomware/, Diterbitkan pada 10/01/2019.
5. βKertas VB2019: Balas dendam Shinigami: ekor panjang malware Ryuk.β https://www. virusbulletin.com/virusbulletin/2019/10/ vb2019-paper-shinigamis-revenge-long-tail-r
Sumber: www.habr.com