IBM X-Force menemukan Sheriff Backdoor baru yang digunakan untuk menarget Ukraina

Foto close up dari tangan mengetik di keyboard dengan tampilan monitor komputer

Penulis

Golo Mühr

Malware Reverse Engineer

IBM

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.

Temuan utama

  • Loader baru dan pintu belakang modular digunakan dalam serangan pada paruh pertama tahun 2024 yang menargetkan sektor pertahanan Ukraina.
  • Modul Sheriff Downloader mengunduh muatan dari ukr.net, portal berita populer di Ukraina, yang menunjukkan bahwa situs web tersebut kemungkinan telah dikompromi untuk memfasilitasi serangan.
  • Backdoor menggunakan API Dropbox untuk komunikasi perintah dan kontrol (C2) untuk memfasilitasi eksfiltrasi data terenkripsi
  • Sheriff dapat mengunduh dan mengelola beberapa modul, termasuk modul tangkapan layar yang ditemukan selama penyelidikan; perintah dan nilai konfigurasi diterima sebagai komentar dalam file ZIP.
  • X-Force mengidentifikasi kemiripan dengan CloudWizard APT dan Turla (ITG12), kelompok ancaman nexus Rusia yang menargetkan entitas Ukraina.

Tinjauan teknis

Selama penyelidikan, X-Force merekonstruksi rantai infeksi berikut:

Bagan yang menggambarkan rantai infeksi
Gbr 1: Rantai infek.si

Deputy loader

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

Local\WPnqv0hW\DZtdI.dll

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

Eksekusi hosting CLR cuplikan kode
Gbr. 2: Eksekusi hosting CLR

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 (";"). 

Pria menatap komputer

Perkuat intelijen keamanan Anda 


Tetap terdepan dalam menghadapi ancaman dengan berita dan insight tentang keamanan, AI, dan lainnya, setiap minggu di Buletin Think. 


Modul Pengunduh Sheriff

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:

Tangkapan layar sumber daya Sheriff Downloader
Gbr. 3: Sumber Daya Pengunduh Sheriff

Dengan menggunakan fungsi ini, sampel mencoba mengunduh file dari

http://ukr[.]net/8V3fDJ0U/RDZXVh

 

ke dalam folder

%APPDATA%\Xpgx2dAn\RDZXVh

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”.

Potensi kompromi dari ukr.net

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

Modul Utama Sheriff adalah x86 .NET DLL, yang sekali lagi berisi perpustakaan (dotnetzip.dll) dikemas ke dalam sumber daya menggunakan Costura.

Inisialisasi dan konfigurasi

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:

_symKey: "tkE7BqJ45HKwOes"
ConfName: "mInv.cfg"
ModulsFolder: "DxyVS1"
UploadLocalFolder: "gyTufW"
_defaultZipExt: "d7r"
refreshToken:
"sPfSlLkE3UcAAAAAAAAAAeUXe9lToajHac8y3w_9mmDptZKSU_Q0wdd4XSCZxfaU:yfw5e008wxkqbxg:ax6a2el8rf4cjo0"
_guid: "W5d2090860fd54c17809fb4da0b42b34d.test"
_asymPrivKey:
"MIICXAIBAAKBgQCuqWqUX60ArocW6V8zJN0vZ0CRAiY2jL+Ohjunh3p7wgac57Lwrmj0NIK80eLAO1zBIWEJZHH8vgapuLbv857SdG0Yw9iyGT2TLIIZH3ITrruJlxj62gMfKml2vRGK1jB4pnwZVTjc3zTO4Oko3Svy3PilTdyGMCp9FWf/ytex9QIDAQABAoGARTT79i6y7kI5ZOqzviAtREs1Wj/vxE2g2Wh22rrj3YXT+PgV/ygcjicAZrEDmAftiNkhCgey4uKo4Tc/xXRSyYlm8U2tNdv2YfC0mL04kUWRowoHZn6iTsm3D60ECSTfi9/WvkJEu2t8ufglGrWKd1atqmpbNl7BrA/+R9EDyUECQQDIWP1jxv6s2wueSov8T1J3tgQJJaazLYImdvCRLjUQ0iTpw12VfCkipATwnkST4NkGgGnAb6NxB4N9Qc5qOPb3AkEA3y3emkmA28f45TiP9WFjsqe+YYZUkL5zuotGP+IrkYvniefqCJSAyWtaN0gGQGjJEUEsVL5tIzewY9Z1/4AHcwJAc+2aYbvp7dep92QncE3t6Ds4Rpq0xQVWRC+asEdOiXcvyNw1MKRxoQvLl/fcsrzul6aCismOh37ThQ0pBaoErQJAdn2ZARtjUczjBXg5XlM9pn3O42J5hXvIX9NQEdzXuuenn51EsRd/JPFdLZqMzyeTERkkGz4bHaaUfP1BGszzpwJBAKF312U3h7fpzpMC10jI8F0M5aEOCgSax6EpW3aJEc6WZ7z4hvnZMpxtuGaEJE98kzpYuzzBJL+qOjmeCBoVS8I="
_asymPubKey:
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBT+7FB360l8kvgAmCUKYjWxcybjTJiq81x0s56g+rxdvxHOlayuYhSb7xJ2JKv/1k1LtnAT9rfhPLJQPvwMsVeeFUvIpc5+ovrIi3Ow0n8n3je1zSqpFRK488XZ9NMDkVSLLQKNcgOYox0eSXPmnTzvNffaFGVnm1EuimsnSjpQIDAQAB"

Tabel di bawah ini mencantumkan penjelasan untuk masing-masing argumen:

Nama

Penjelasan

  
_SymkeyKunci 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 ("; "):

  1. refreshToken
  2. Ukuran file ZIP maksimum untuk data yang dieksfiltrasi
  3. Ukuran file maksimum untuk data yang dieksfiltrasi sebelum kompresi
  4. URL yang digunakan untuk mengambil alamat IP publik korban
  5. Interval minimum (ms) yang digunakan untuk mengunduh dan mengunggah file
  6. Interval maksimum (ms) digunakan untuk mengunduh dan mengunggah file
[main];sPfSlLkE3UcAAAAAAAAAAeUXe9lToajHac8y3w_9mmDptZKSU_Q0wdd4XSCZxfaU:yfw5e008wxkqbxg:ax6a2el8rf4cjo0;220200960;209715200;https://api.ipify.org;30000;30000
[key];1024

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:

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\MicrosoftEdgeAutoLaunch_<REDACTED>

Kunci berisi perintah untuk menjalankan ekspor myFunc Deputy Loader:

"C:\WINDOWS\SysWOW64\rundll32.exe" "<LOCAL_APPDATA>\GRPRhuI4\T5CBy.dll",MyFunc

Dropbox C2

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:

https://api.dropbox.com/oauth2/token

Titik akhir API ini digunakan untuk mengelola file dan folder jarak jauh:

https://content.dropboxapi.com/2/files/upload
https://content.dropboxapi.com/2/files/upload_session/start
https://content.dropboxapi.com/2/files/upload_session/finish
https://content.dropboxapi.com/2/files/upload_session/append_v2
https://content.dropboxapi.com/2/files/download
https://api.dropboxapi.com/2/files/delete
https://api.dropboxapi.com/2/files/create_folder
https://api.dropboxapi.com/2/files/list_folder

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:

  1. File yang menggunakan "_defaultZipExt" .d7r yang di-hardcode sudah di-zip;
  2. File tanpa ekstensi sudah dienkripsi dan siap untuk diunggah; dan,
  3. Semua file lainnya masih dalam teks yang jelas.

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:

{
  "used": 0,
  "allocation": {
    ".tag": "individual",
    "allocated": 2147483648
  }
}

Akun Dropbox terkait menampilkan informasi berikut:

{
  "account_id": "dbid:AABLMHYTVufS0NLF_cnID1nm_-R9m1aj9ds",
  "name": {
    "given_name": "Poco",
    "surname": "Poco",
    "familiar_name": "Poco",
    "display_name": "Poco Poco",
    "abbreviated_name": "PP"
  },
  "email": "poco.m5.miui.13@gmail.com",
  "email_verified": true,
  "disabled": false,
  "country": "DE",
  "locale": "ru",
  "referral_link": "https://www.dropbox.com/referrals/AABf13Qzpq31wbsquudl7xfwagHIa8GgdZg?src=app9-5618657",
  "is_paired": false,
  "account_type": {
    ".tag": "basic"
  },
  "root_info": {
    ".tag": "user",
    "root_namespace_id": "2199102147",
    "home_namespace_id": "2199102147"
  }
}

Modul dan perintah Sheriff

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:

Header PK-ZIP berisi komentar di akhir file
Gbr. 4: Header PK-ZIP berisi komentar di akhir file

Komentar tersebut dipisahkan menjadi beberapa nilai melalui simbol pipa ("|") dan selanjutnya diuraikan menjadi subnilai yang dipisahkan oleh titik koma (";"). 

D|scr;ScreenShot.Shot;LoadDll;KillDll;ConfDll|0|0;None

Berikut ini adalah deskripsi nilai setelah parsing:

  1. Perintah: "D"
  2. ModInfo (bagian dari objek yang memelihara informasi tentang setiap modul selama eksekusi modul utama)
    1. Marker: "scr"
    2. NameSpace: "ScreenShot.Shot"
    3. LoadMethod: "LoadDll"
    4. KillMethod: "KillDll"
    5. ConfigMethod: "ConfDll"
  3. On/Off (jika file asli harus dihapus)
  4. NeedZip (jika modul mengharuskan hasilnya di-zip oleh modul utama); Compression (metode kompresi yang diinginkan, defaultnya adalah Deflate)

Sheriff menerima perintah berikut:

Perintah dan deskripsi

  • D — Mengurai ModInfo dari komentar dan, bergantung pada nilai On/Off, menghapus file asli setelah memuat rakitan .NET. Untuk memuat atau menonaktifkan modul (jika sudah dimuat), modul menggunakan nilai "loadMethod" dan "killMethod" masing-masing. "LoadMethod" mengambil "Marker", "UploadLocalFolder", dan "_defaultZipExt" sebagai argumen.
  • T — Mengurai ModInfo dari komentar, menghapus file asli, lalu mengeksekusi "LoadMethod". "LoadMethod" mengambil "Marker", "UploadLocalFolder", "LoadMethod", "KillMethod", dan "ConfigMethod" sebagai argumen.
  • E — Hanya menerima satu nilai (argumen perintah) setelah simbol pipa pertama (" | ") dan menjalankan fungsi "RunExeInMemory". File dalam arsip ZIP dijatuhkan ke jalur sementara sebagai %TMP%.exe dan dijalankan sebagai proses baru dengan argumen jika tersedia. File yang dijatuhkan tersebut serta file ZIP kemudian dihapus.
  • C — Mengurai file teks dalam ZIP, baris demi baris, yang dapat berisi daftar perintah khusus (lihat tabel kedua di bawah).
  • R — Memperbarui modul utama dengan mengganti nama file asli dan menuliskan muatan yang diunduh ke jalur aslinya. Bergantung pada hasilnya, salah satu dari dua pesan status akan diunggah: "MainModule berhasil diubah" atau "MainModule tidak diubah".

 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);
value1;
value2;...

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];
value1;
value2;...

Menyisipkan string lengkap ke dalam file konfigurasi. Perhatikan, "modname" identik dengan penanda modul.

{modname};
value1;
value2;...

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. 

Cuplikan kode yang menunjukkan perintah "suicide" modul utama Sheriff
Gbr. 5: Perintah "suicide" modul utama Sheriff

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. 

Modul tangkapan layar

Salah satu modul yang ditemukan selama investigasi adalah modul Tangkapan layar. Ketika modul dimuat, modul tersebut menerima argumen berikut dari modul utama:

  1. marker
  2. uploadPath
  3. defaultZip

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:

  1. ImageCount (jumlah tangkapan layar yang diambil sampai di-zip). Default = 25
  2. TimerCount (interval penghitung waktu, seberapa sering tangkapan layar berpotensi diambil). Default = 5 detik
  3. DefiniteShot (waktu maksimum hingga tangkapan layar pasti diambil). Default = 15 menit
  4. BMPQuality (parameter kualitas tangkapan layar/kompresi antara 0-100). Default = 25
  5. WindowsTitle (daftar judul jendela yang dipisahkan koma yang secara khusus ditargetkan untuk tangkapan layar).

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:

  1. Tangkapan layar terakhir telah diambil lebih dari 15 menit sebelumnya (DefiniteShot);
  2. Jendela latar depan berbeda dari terakhir kali tangkapan layar diambil; atau,
  3. Judul jendela latar depan cocok dengan salah satu string dalam daftar "WindowsTitle".

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 Tangkapan Layar Sheriff
Gbr. 6: Modul Tangkapan Layar Sheriff

Fungsi bunuh diri

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:

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

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:

SET loader="<loader.path>"
SET loadDll="<loadDll.path>"
:loop
IF EXIST %loader% del /F %loader%
IF EXIST %loader% goto loop
:loop1
IF EXIST %loadDll% del /F %loadDll%
IF EXIST %loadDll% goto loop1
rmdir /s /q "<loader.directory_name>"
rmdir /s /q "<loadDll.directory_name>"
(goto) 2>nul & del "%~f0"

Skrip di atas akan menghapus file dari Modul Pengunduh Sheriff dan Deputy Loader beserta direktori masing-masing, sebelum akhirnya menghapus dirinya sendiri. 

Teknik-teknik aktor ancaman yang serupa

Selama analisis, beberapa indikator awal mengarah pada aktor ancaman yang berbasis di Rusia, termasuk:

  • Deputi Loader dan Sheriff Downloader berisi sumber daya bahasa Rusia;
  • Lokal Rusia yang digunakan oleh akun Dropbox; dan,
  • Menargetkan Ukraina.

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:

  • Kazuar juga mempertahankan struktur folder yang sedikit mirip;
  • Meskipun berbeda, Kazuar juga menghasilkan GUID dan menggunakan nomor seri korban;
  • Kazuar juga mengimplementasikan pencatatan dan menggunakan enkripsi AES dan RSA;
  • Kazuar juga modular, meskipun tampaknya merujuk ke “plugin” alih-alih modul;
  • Kazuar juga menggunakan nilai interval maks dan min; dan,
  • Kazuar mendukung perintah yang serupa dengan Sheriff, termasuk “Suicide”, pengambilan tangkapan layar, eksekusi baris perintah, eksekusi biner, penghapusan file, eksfiltrasi, dan pembaruan diri.

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:

  • Backdoor modular dengan modul pengunduh, inti dan tangkapan layar;
  • Prikormka juga memelihara dua folder di %USERPROFILE%\AppData\Local\ untuk upload dan download;
  • Prikormka juga menggunakan ekstensi khusus untuk mengidentifikasi file yang dimaksudkan untuk dienkripsi dan dikompresi sebelum eksfiltrasi;
  • Modul tangkapan layar Prikormka menggunakan “.tgz” sebagai bagian dari ekstensi khusus, modul tangkapan layar Sheriff menggunakan “.tgr”; dan
  • Modul Prikormka mencantumkan “Siklus” sebagai salah satu fungsi ekspor yang diperlukan, yang serupa dengan kelas “MainCycle” yang digunakan oleh Modul Pengunduh Sheriff.

Kaspersky Labs kemudian mendokumentasikan tumpang tindih yang signifikan antara Prikormka dan CloudWizard APT. X-Force juga mencatat beberapa kesamaan antara Sheriff dan CloudWizard, termasuk:

  • Backdoor modular dengan modul utama mengelola konfigurasi dan C2 untuk setiap modul;
  • CloudWizard juga menggunakan AES dan RSA untuk mengenkripsi/mendekripsi ZIP sebelum/sesudah mengunggah dan mengunduh;
  • CloudWizard juga mendukung Dropbox sebagai mekanisme C2 dengan otentikasi OAuth;
  • Baik CloudWizard dan Sheriff berisi fungsi “GetSettings”/”get_Settings” untuk mengambil konfigurasi setiap modul;
  • Modul tangkapan layar CloudWizard dan Sheriff mendukung argumen "WindowsTitle", yang dibandingkan dengan judul jendela saat ini sebelum mengambil tangkapan layar;
  • CloudWizard, Prikormka dan Sheriff berbagi interval pengambilan tangkapan layar yang sama selama 15 menit; dan,
  • Modul daftar file CloudWizard dan Prikormka disebut "tree", yang merupakan nama yang digunakan Sheriff untuk eksfiltrasi daftar file.

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. 

Kesimpulan

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.

Rekomendasi

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:

  • Berburu lalu lintas yang tidak biasa dengan layanan penyelesaian IP publik seperti https://api.ipify[.]Org
  • Cari lalu lintas yang tidak biasa yang berkomunikasi dengan API Dropbox:
    • https://api.dropboxapi.com
    • https://content.dropboxapi.com
  • Instal dan konfigurasikan perangkat lunak keamanan titik akhir.
  • Perbarui aturan pemantauan keamanan jaringan yang relevan.

Lampiran teknis

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
c1cb43ef21ec1b401ad1d4239c0
a990670daa8d

SHA256

Modul Utama Terenkripsi “RDZXVh”

86b8d48df5787d57836276219
a9e3dbc0d7e56d68cf99b514a
ca55564f818182

SHA256

File Inisialisasi Sheriff “n5K3B”

8832fb7ef434a56f9d151d8e1eb
da94544a90a420fee0820b5b0
8d95224763f5

SHA256

Deputy Loader “t5cby.dll”

8c22326d08a6334181c06e25c6
df35032cd6916cfbe692d66fc8d
b3aa8b70e42

SHA256

Modul Tangkapan Layar Terenkripsi “dowtuxZmI”

8d4df90f4e7fc6d9d08d4b5a27
2037ee7c565def9df180ad1eb08
efe8d357bd4

SHA256

Modul Utama Sheriff “1Pr3v”

92b9ef4e81610487ea9df255fa83
a8e6c3bd2726ccdb909988e8c8
b919506289

SHA256

File Konfigurasi Sheriff “mInv.cfg”

e2b892533bd4135004778783b95
e833fca6ee740bf0a1cb2d5d1a44b
93fd7962

SHA256

File ZIP Modul Tangkapan Layar yang Didekripsi

ec84ae8db92a88109bc68baefc3b
0a9de8579129d7a5a431072f09fdc
b8c7862

SHA256

Modul Tangkapan Layar Sheriff “NeXSv”

f9e237a939b998fe071e0101904f7d
10cde6ce7b1cb4df1e7d345094af6b
048e

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.

Mixture of Experts | 12 Desember, episode 85

Decoding AI: Rangkuman Berita Mingguan

Bergabunglah dengan panel insinyur, peneliti, pemimpin produk, dan sosok kelas dunia lainnya selagi mereka mengupas tuntas tentang AI untuk menghadirkan berita dan insight terbaru seputar AI.

Solusi terkait
Layanan tanggap insiden

Meningkatkan program tanggap insiden organisasi Anda, meminimalkan dampak pelanggaran, dan tanggapan cepat terhadap insiden keamanan siber.

Jelajahi layanan respons insiden
Solusi pendeteksian dan respons ancaman

Gunakan solusi deteksi dan respons ancaman IBM untuk memperkuat keamanan Anda dan mempercepat deteksi ancaman.

Jelajahi solusi deteksi ancaman
Solusi IBM QRadar SOAR

Optimalkan proses pengambilan keputusan, tingkatkan efisiensi SOC, dan percepat respons insiden dengan solusi otomatisasi cerdas dan orkestrasi.

Jelajahi QRadar SOAR
Ambil langkah selanjutnya

Meningkatkan program tanggap insiden organisasi Anda, meminimalkan dampak pelanggaran, dan tanggapan cepat terhadap insiden keamanan siber.

  1. Jelajahi layanan respons insiden
  2. Pelajari lebih lanjut tentang IBM X-Force