IBM X-Force menemukan Sheriff Backdoor baru yang digunakan untuk menarget Ukraina
IBM® X-Force menemukan seperangkat malware yang sebelumnya tidak dikenal (backdoor Sheriff) yang digunakan dalam serangan spionase siber terhadap entitas di sektor pertahanan Ukraina pada paruh pertama tahun 2024. Aktor ancaman tersebut memanfaatkan portal berita populer di Ukraina, ukr.net, untuk meng-host backdoor Sheriff. Backdoor modular ini dapat menjalankan perintah yang diarahkan oleh aktor, mengambil tangkapan layar, dan secara tersembunyi melakukan eksfiltrasi data korban menggunakan API penyimpanan cloud Dropbox. Selama penyelidikan, X-Force mengidentifikasi aktivitas ancaman yang serupa dengan CloudWizard APT dan Turla (alias ITG12), keduanya merupakan kelompok ancaman nexus Rusia yang menargetkan entitas di Ukraina.
Selama penyelidikan, X-Force merekonstruksi rantai infeksi berikut:
Sampel yang dianalisis merupakan DLL x86 yang berisi satu ekspor tunggal bernama "MyFunc". Berisi jalur relatif yang di-hardcode menuju Sheriff Downloader Module DLL dalam sumber daya berbahasa Rusia dengan nama "LoaderPath". Jalur yang di-hardcode adalah
yang digabungkan dengan jalur berikut: “%USERPROFILE%\AppData\”.
DLL tersebut kemudian menggunakan API CLRCreateInstance untuk menghosting Common Language Runtime (CLR) .NET. Fungsi Sheriff Downloader Module DLL Loader.MainCycle.Run dijalankan melalui metode ExecuteInDefaultAppDomain.
Teknik ini baru-baru ini dijelaskan dalam postingan blog oleh X-Force sebagai teknik red team.
Deputy Loader juga menyediakan jalur kedua DLL sebagai argumen yang dipisahkan oleh titik koma (";").
Modul Sheriff Downloader adalah x86 .NET DLL, yang berisi perpustakaan (dotnetzip.dll) dikemas ke dalam sumber daya menggunakan Fody Costura.
Kelas "MainCycle" memuat fungsi utama "Run", yang dimulai dengan mengambil empat nilai yang disimpan dalam sumber daya biner berbahasa Rusia:
Dengan menggunakan fungsi ini, sampel mencoba mengunduh file dari
ke dalam folder
Jika file sudah ada, perilaku unduhan dilewati, dan malware bertindak sebagai loader saja.
Selanjutnya, modul tersebut mendekripsi muatan menggunakan pustaka “SymmetricCrypt” yang diimplementasikan secara khusus serta kata sandi “BS7imxwRXueassn”. Algoritme tersebut tampaknya identik dengan enkripsi AES bawaan .NET (https://gist.github.com/jbtule/4336842#file-aesthenhmac-cs).
File ZIP yang dihasilkan diekstraksi di dalam memori, memperlihatkan sedikitnya dua file yang diurutkan berdasarkan ukuran file. Akhirnya, file pertama (Modul Utama Sheriff) dimuat secara reflektif sebagai rakitan .NET dan memanggil metode “MainClass.Run”. File terakhir (Sheriff Init File) dibaca baris demi baris dan diberikan ke rakitan yang dieksekusi sebagai argumen objek daftar, bersama dengan jalur DLL Deputy Loader, DLL Sheriff Downloader, serta payload yang diunduh “RDZXVH”.
URL unduhan tersebut segera memunculkan kekhawatiran, karena host ukr.net menempati peringkat ke-4 sebagai situs web yang paling banyak dikunjungi di Ukraina menurut Semrush. Ukr.net juga berperan sebagai Penyedia Layanan Internet (ISP), penyedia email populer, dan menjadi host salah satu portal berita terbesar di Ukraina, dengan lebih dari 100 juta kunjungan per bulan. Meskipun ukr.net tampaknya juga menyediakan layanan hosting, umumnya tidak memungkinkan bagi pengguna untuk meng-host file di direktori root arbitrer pada server web utama. Karena itu, sangat mungkin aktor ancaman telah mengompromi ukr.net untuk memasang payload backdoor Sheriff yang terenkripsi pada awal Maret 2024.
Pada saat penyelidikan berlangsung, payload tidak tersedia, dan X-Force tidak dapat menemukan muatan berbahaya lain yang di-hosting di ukr.net. Ada kemungkinan bahwa akses aktor ancaman bersifat terbatas dalam ruang lingkup, hanya tersedia untuk jangka waktu singkat, atau sengaja digunakan secara hemat. Akses aktor ancaman ke portal berita terbesar di Ukraina akan menempatkan mereka pada posisi untuk melakukan berbagai serangan berdampak tinggi dan beroperasi dengan tingkat pengaburan yang lebih tinggi. Dalam insiden khusus ini, aktor ancaman kemungkinan memanfaatkan domain tepercaya untuk memasang malware tanpa menimbulkan kecurigaan.
Modul Utama Sheriff adalah x86 .NET DLL, yang sekali lagi berisi perpustakaan (dotnetzip.dll) dikemas ke dalam sumber daya menggunakan Costura.
Saat pertama kali dijalankan, fungsi "Run" di kelas utama dimulai dengan membaca argumen yang diterima sebagai daftar dari file inisialisasi Sheriff. Fungsi ini menetapkan nilai-nilai berikut:
Tabel di bawah ini mencantumkan penjelasan untuk masing-masing argumen:
Nama | Penjelasan |
| _Symkey | Kunci AES digunakan untuk mendekripsi konfigurasi |
ConfName | Nama file dari file konfigurasi |
ModulsFolder | Nama folder yang digunakan untuk mengunduh modul lebih lanjut |
UploadFolder Lokal | Nama folder yang digunakan untuk mengeksfiltrasi data |
_defaultZipExt | Ekstensi default digunakan untuk mengidentifikasi file ZIP |
refreshToken | Token penyegaran OAuth untuk otentikasi dengan Dropbox API |
_guid | String digunakan bersama dengan Nomor Seri sebagai ID korban |
_asymPrivKey | Kunci pribadi RSA digunakan untuk mendekripsi modul yang diunduh |
_asymPubKey | Kunci publik RSA digunakan untuk mengenkripsi data sebelum eksfiltrasi |
Kunci asimetris berasal dari dua set kunci yang berbeda, sehingga mencegah dekripsi data eksfiltrasi selama penyelidikan.
Selanjutnya, Sheriff membuat folder unggahan dan unduhan lokal. Jika belum ada, file konfigurasi mlvn.cfg akan ditulis saat Modul Utama Sheriff pertama kali dijalankan. Setelah itu, file tersebut dapat dibaca dan dimodifikasi untuk mempertahankan konfigurasi yang terpisah bagi setiap modul. File konfigurasi yang telah didekripsi memuat nilai-nilai berikut untuk modul "utama", yang dipisahkan oleh titik koma ("; "):
Tidak ada modul "key" yang ditemukan selama penyelidikan. Modul ini kemungkinan bertanggung jawab untuk menetapkan persistensi bagi Deputy Loader DLL, yang menuliskan kunci registri berikut:
Kunci berisi perintah untuk menjalankan ekspor myFunc Deputy Loader:
Komunikasi perintah dan kendali dikelola melalui kelas "DbApiV2", yang memanfaatkan API Dropbox untuk membuat, menemukan, mengunduh, mengunggah, memindahkan, dan mengurai file serta folder jarak jauh di Dropbox. Solusi ini menggunakan token penyegaran untuk memperoleh token akses sementara guna melakukan autentikasi melalui URL berikut:
Titik akhir API ini digunakan untuk mengelola file dan folder jarak jauh:
Sebelum mencoba mengunduh file, Modul Utama Sheriff mengunggah pesan log yang memuat alamat IP publik korban serta daftar modul yang telah dimuat. Log tersebut dienkripsi menggunakan XOR dengan ID korban, yang terdiri atas GUID (dari argumen atau dibuat secara acak) dan nomor seri. Setelah dienkripsi, log tersebut diunggah ke folder Dropbox yang dinamai sesuai ID korban.
Semua file diambil dari folder Dropbox di /<victim_id>/Dow/ dan diunduh ke "ModulsFolder" lokal yang dikodekan secara hardcode sebagai "/DxyVS1". Setelah diunduh, semua file langsung dihapus dari Dropbox. Selanjutnya, kita akan membahas bagaimana file-file yang diunduh ditangani oleh modul utama.
Proses upload dimulai dengan menghitung semua file lokal di "UploadLocalFolder", yang dalam kasus ini di-hardcode sebagai "/gyTufW". Bergantung pada ekstensi masing-masing, file-file tersebut kemudian dikelompokkan ke dalam tiga kategori:
Fungsi "PreparingForUpload" kemudian akan mengompresi semua file teks yang tampak jelas ke dalam file ZIP baru. Semua file ZIP tersebut kemudian dienkripsi menggunakan kunci AES yang dibuat secara acak, yang selanjutnya dienkripsi dengan kunci RSA publik dan digabungkan bersama file yang telah dienkripsi. Selama eksekusi, fungsi ini menghapus semua file yang tersisa dari folder hingga hanya menyisakan file yang telah dikompresi dan sepenuhnya dienkripsi. Ini kemudian diunggah ke folder Dropbox di /<victim_id>/Up/ sementara salinan lokalnya dihapus.
Baik fungsi upload dan download dijalankan secara asinkron dan dijalankan dengan timer hardcode hingga 30 detik dalam sampel yang dianalisis.
Pada saat penyelidikan berlangsung, akun Dropbox tersebut tidak lagi meng-host file apa pun, seperti yang terlihat dari penggunaan ruang:
Akun Dropbox terkait menampilkan informasi berikut:
Tugas modul utama Sheriff adalah berperan sebagai orkestra yang meluncurkan dan mengelola berbagai modul. Modul-modul ini dapat diunduh melalui proses yang telah dijelaskan di atas, dan salah satunya ditemukan selama penyelidikan (“./DxyVS1/dowtuxZml”).
Fungsi "LoadModuls" melakukan iterasi pada file yang diunduh dan mendekripsinya menggunakan kunci privat RSA serta kunci AES yang dihasilkan. File ZIP yang telah didekripsi memuat string komentar yang digunakan untuk mengurai modul:
Komentar tersebut dipisahkan menjadi beberapa nilai melalui simbol pipa ("|") dan selanjutnya diuraikan menjadi subnilai yang dipisahkan oleh titik koma (";").
Berikut ini adalah deskripsi nilai setelah parsing:
Sheriff menerima perintah berikut:
Perintah dan deskripsi
Tabel kedua merinci daftar perintah yang dapat dibaca sebagai file teks menggunakan perintah " C ":
Pola perintah | Deskripsi |
(tree) <path_1> <path_2> ... | Mengunggah file dari daftar jalur yang ditentukan. |
(treedel) <path_1> <path_2> ... | Menghapus file dari daftar jalur yang ditentukan dan mengunggah pesan log “File telah dihapus: <number_of_files>” |
(cmd); | Mengeksekusi setiap nilai sebagai perintah terpisah dalam proses baru “cmd.exe /c <value>“, membaca stdout dan stderr, dan mengunggahnya sebagai file terenkripsi RSA ke Dropbox. |
[modname]; | Menyisipkan string lengkap ke dalam file konfigurasi. Perhatikan, "modname" identik dengan penanda modul. |
{modname}; | Jika “modname” adalah “Suicide”, Sheriff akan membunuh semua modul, menghapus semua file, dan menjalankan skrip pembersihan. Jika "modname" cocok dengan modul yang dimuat, "KillMethod" akan dipanggil dan menghapus file yang sesuai. |
Setelah semua modul dimuat, fungsi "Run" pada modul utama akan menelusuri setiap modul yang telah dimuat dan memanggil "ConfigMethod", yang menyediakan pengaturan modul yang sesuai sebagaimana diuraikan dari file konfigurasi asli. Hal ini memungkinkan operator untuk dengan mudah memperbarui berbagai konfigurasi modul saat modul tersebut sedang berjalan.
Salah satu modul yang ditemukan selama investigasi adalah modul Tangkapan layar. Ketika modul dimuat, modul tersebut menerima argumen berikut dari modul utama:
Modul tersebut masih memuat nilai default "tgr" untuk "defaultZip", yang kemudian diganti pada saat dijalankan. Dengan menggunakan modul "configMethod", modul utama juga dapat menentukan nilai konfigurasi berikut:
Setelah dimulai, modul akan memeriksa setiap 5 detik (TimerCount) apakah ia dapat mengambil tangkapan layar. Untuk mengambil tangkapan layar, salah satu kondisi berikut harus terpenuhi:
Selama setiap tangkapan, jika jumlah tangkapan mencapai "ImageCount", tangkapan layar yang ada akan ditambahkan ke file ZIP yang diformat sebagai {0:yyyy.MM.dd_HH.mm.ss}.jpg menggunakan objek "DateTime" dari tangkapan layar tersebut.
Nama file ZIP diformat sebagai {0:yyyy.MM.dd_HH.mm.ss.ffff}.<defaultZip> menggunakan objek "DateTime" saat ZIP dibuat. File ZIP tersebut juga diberi komentar yang berisi penanda modul ("scr"), seperti yang ditunjukkan pada tangkapan layar di bawah ini.
Modul utama Sheriff juga menyertakan fungsi Suicide (Bunuh Diri), yang dapat dipanggil dari jarak jauh. Fungsi ini menghentikan semua aktivitas unduhan dan unggahan, lalu melakukan iterasi pada setiap modul untuk memanggil "killMethod" yang sesuai. Kemudian fungsi tersebut melanjutkan dengan menghapus seluruh direktori yang berisi modul utama serta folder global di Dropbox yang digunakan untuk komunikasi C2. Selanjutnya, fungsi tersebut mencari jalur DLL pemuat tahap pertama (Deputy Loader) dalam subkunci registri di bawah ini:
Setiap subkunci yang berisi jalur kemudian dihapus.
Akhirnya, Sheriff menyisipkan jalur "loader" (Sheriff Downloader Module) dan "loadDll" (Deputy Loader) ke dalam file BAT berikut, meletakkannya ke %TMP%, lalu mengeksekusinya:
Skrip di atas akan menghapus file dari Modul Pengunduh Sheriff dan Deputy Loader beserta direktori masing-masing, sebelum akhirnya menghapus dirinya sendiri.
Selama analisis, beberapa indikator awal mengarah pada aktor ancaman yang berbasis di Rusia, termasuk:
X-Force menilai bahwa Sheriff backdoor sangat mungkin merupakan alat yang dirancang untuk spionase siber dan pengumpulan intelijen, bukan untuk kejahatan dunia maya yang bermotif finansial. Malware ini berfokus pada eksfiltrasi data dan pengambilan tangkapan layar, sambil mempertahankan profil rendah yang dirancang untuk memungkinkan kompromi jangka panjang. Malware ini dikembangkan dengan niat jelas untuk tetap sebisa mungkin tidak terdeteksi, memastikan bahwa komunikasi serta sebagian besar artefak yang ditulis ke disk tetap dalam keadaan terenkripsi. Komunikasi jaringan dipertahankan secara tersembunyi melalui penyalahgunaan Dropbox API yang sah, serta ukr.net, situs web populer di Ukraina yang dimanfaatkan untuk melakukan pemasangan malware. Sheriff juga menggunakan beberapa fungsi penghancuran diri untuk menghapus jejaknya setelah eksekusi. Akhirnya, kode yang tertata dengan baik, struktur folder, implementasi modular, pencatatan, fungsionalitas yang luas, serta kemampuan konfigurasi menunjukkan tingkat kecanggihan yang meningkat, selaras dengan ekspektasi terhadap kelompok yang disponsori negara.
Investigasi juga mengungkapkan beberapa tumpang tindih minor dengan kampanye yang sebelumnya telah didokumentasikan dan dikaitkan dengan kelompok aktor ancaman nexus Rusia yang dikenal sebagai Turla (alias ITG12). Misalnya, backdoor Kazuar.NET dari grup tersebut menunjukkan beberapa kesamaan dengan Sheriff, termasuk:
Terlihat bahwa backdoor Crutch, yang dikaitkan dengan Turla oleh ESET, juga menggunakan API Dropbox untuk komunikasi C2 dengan cara yang mirip dengan Sheriff, meskipun tidak berbasis .NET.
Penelitian lebih lanjut juga mengungkapkan tumpang tindih antara Sheriff dan backdoor Operation Groundbait’s Prikormka, termasuk:
Kaspersky Labs kemudian mendokumentasikan tumpang tindih yang signifikan antara Prikormka dan CloudWizard APT. X-Force juga mencatat beberapa kesamaan antara Sheriff dan CloudWizard, termasuk:
X-Force meyakini bahwa Sheriff backdoor digunakan sebagai bagian dari operasi yang bersifat terarah. Malware ini kemungkinan terkait dengan CloudWizard APT yang berafiliasi dengan Rusia, yang sebelumnya telah diketahui menargetkan entitas di Ukraina. Ada kemungkinan terdapat keterkaitan tingkat rendah dengan klaster ancaman Turla (ITG12) karena adanya tumpang tindih minor dalam TTP dan malware.
Sheriff backdoor dan penggunaannya dalam operasi spionase siber yang dijelaskan dalam laporan ini menunjukkan sejumlah fitur yang menarik. Pertama, Sheriff backdoor merupakan alat spionase modular yang dirancang dengan baik dan memungkinkan akses jangka panjang ke lingkungan korban. Kedua, struktur modular serta fitur penghancuran diri menyoroti kekhawatiran para pengembang terhadap kemungkinan deteksi dan analisis terhadap perkakas mereka. Selain itu, kemampuan untuk memasang malware di ukr.net juga menunjukkan kecanggihan kemampuan aktor ancaman.
X-Force merekomendasikan agar individu dan entitas yang terkait dengan pemerintah, militer, atau sektor pertahanan Ukraina tetap berada dalam kondisi keamanan defensif yang tinggi dan:
Untuk membuat atribusi lebih transparan dan mendorong lebih banyak kolaborasi di antara para peneliti, sampel tersebut diunggah ke VirusTotal oleh IBM X-Force.
Indikator | Jenis Indikator | Konteks |
60f20be29cafea3402c8cb396 | SHA256 | Modul Utama Terenkripsi “RDZXVh” |
86b8d48df5787d57836276219 | SHA256 | File Inisialisasi Sheriff “n5K3B” |
8832fb7ef434a56f9d151d8e1eb | SHA256 | Deputy Loader “t5cby.dll” |
8c22326d08a6334181c06e25c6 | SHA256 | Modul Tangkapan Layar Terenkripsi “dowtuxZmI” |
8d4df90f4e7fc6d9d08d4b5a27 | SHA256 | Modul Utama Sheriff “1Pr3v” |
92b9ef4e81610487ea9df255fa83 | SHA256 | File Konfigurasi Sheriff “mInv.cfg” |
e2b892533bd4135004778783b95 | SHA256 | File ZIP Modul Tangkapan Layar yang Didekripsi |
ec84ae8db92a88109bc68baefc3b | SHA256 | Modul Tangkapan Layar Sheriff “NeXSv” |
f9e237a939b998fe071e0101904f7d | SHA256 | Modul Pengunduh Sheriff “DZtdI.dll” |
http://ukr[.]net/8V3fDJ0U/RDZXV | URL | URL Unduhan Sheriff. Ingat, ukr.net adalah situs web yang sah. |
https://api.ipify[.]org | URL | Layanan yang sah digunakan untuk menentukan alamat IP publik, sering disalahgunakan oleh penulis malware. |
IBM X-Force Premier Threat Intelligence kini terintegrasi dengan OpenCTI, menyediakan intelijen ancaman yang dapat ditindaklanjuti mengenai aktivitas ancaman ini dan berbagai aktivitas lainnya. Dapatkan insight mengenai pelaku ancaman, malware, serta risiko di tingkat industri. Instal OpenCTI Connector untuk meningkatkan deteksi dan respons yang memperkuat keamanan siber Anda dengan keahlian IBM X-Force. Tetaplah menjadi yang terdepan—integrasikan hari ini.