Baru-baru ini, X-Force Red merilis alat bernama Windows Fitur Hunter, yang mengidentifikasi target untuk pemuatan samping library tautan dinamis (DLL) pada sistem Windows menggunakan Frida. Untuk memberikan perspektif tindakan balasan defensif untuk pemuatan samping DLL, X-Force Incident Response telah merilis SideLoaderHunter, yang merupakan skrip profil sistem dan konfigurasi Sysmon yang dirancang untuk mengidentifikasi bukti pemuatan samping pada sistem Windows. Posting ini akan berbicara tentang mengapa IBM® X-Force menganggap alat ini diperlukan, menjelaskan fungsinya dan menganalisis beberapa contoh penggunaan.
Pada Microsoft Windows, program dapat menentukan pustaka mana yang dimuat pada waktu proses dengan menentukan jalur lengkap atau menggunakan mekanisme lain seperti manifes. Manifes program adalah file eksternal atau sumber daya tertanam dalam aplikasi yang digunakan untuk mengelola nama dan versi rakitan berdampingan bersama yang harus dimuat aplikasi saat dieksekusi. Manifes program dapat mencakup pengalihan DLL, nama file atau jalur lengkap. Jika manifes hanya mengacu pada nama file pustaka, itu dianggap sebagai referensi yang lemah dan rentan terhadap serangan pemuatan samping DLL.
Jika referensi lemah dibuat ke pustaka, Windows mencoba untuk menemukan DLL melalui urutan pencarian yang telah ditentukan sebelumnya. Lokasi pertama yang akan dicari Windows adalah direktori dari mana aplikasi dimuat.
Serangan pemuatan samping DLL adalah teknik permusuhan yang bertujuan untuk manfaatkan referensi pustaka yang lemah dan urutan pencarian Windows default dengan menempatkan file DLL berbahaya yang menyamar sebagai DLL yang sah pada sistem, yang akan secara otomatis dimuat oleh program yang sah.
Untuk informasi lebih lanjut mengenai pemuatan sisi DLL, lihat MITRE ATT& CK Technique T1574.002.
Buletin industri
Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.
Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM® kami untuk informasi lebih lanjut.
Pemuatan samping DLL bukanlah teknik baru, karena kerentanan pembajakan urutan pencarian di dalam Windows telah ada sejak Windows XP. X-Force telah mengamati pemuatan samping DLL yang digunakan oleh Trojan perbankan Metamorfo, yang menjatuhkan file MSI berbahaya yang mengekstrak biner yang ditandatangani dan DLL berbahaya untuk mengeksekusi pemuat malware tahap kedua. Karena urutan pencarian default yang dibangun ke dalam Windows, biner yang ditandatangani akan memuat DLL berbahaya dan melanjutkan aliran eksekusi berbahaya.
Meskipun bukan teknik paling umum yang dimanfaatkan oleh aktor ancaman, pemuatan samping DLL semakin banyak digunakan oleh operator ransomware, yang telah memanfaatkan pemuatan samping DLL untuk mengeksekusi payload ransomware untuk menghindari deteksi oleh produk keamanan.
Misalnya, operator ransomware REvil memanfaatkan kerentanan pemuatan samping DLL dalam Windows Defender yang dapat dieksekusi(MsMpEng.exe) untuk memuat DLL berbahaya bernama mpsvc.dll yang berisi payload ransomware.
X-Force belum mengamati banyak aktor ancaman atau malware yang mengganti binari atau modul yang ada pada sistem untuk menjalankan serangan pemuatan samping DLL karena ini dapat menyebabkan sistem mogok atau membuat kesalahan yang dapat menyebabkan deteksi.
Sebaliknya, aktor ancaman atau malware yang telah memanfaatkan pemuatan samping DLL biasanya mengandalkan dua perilaku sebelum melakukan serangan:
Contoh penggunaan pertama adalah metodologi deteksi yang cukup mudah. Sementara biner dapat ditandatangani, eksekusinya masih akan dianggap sebagai anomali dalam kumpulan data eksekusi program. Dalam contoh Metamorfo yang disebutkan sebelumnya, malware menanam utilitas dump memori Avast AVDump32.exe, berganti nama menjadi jesus.exe, yang memuat DLL berbahaya bernama dbghelp.dll.
Dalam contoh ini, identifikasi jesus.exe dilakukan dengan melakukan analisis frekuensi pada nama file yang direkam dalam kumpulan data eksekusi program.
Gambar 1: Analisis frekuensi pada nama biner dalam kumpulan data eksekusi program
Contoh penggunaan kedua bisa lebih sulit dideteksi karena biasanya memanfaatkan aplikasi standar tepercaya untuk mengeksekusi DLL berbahaya, yang membantu aktivitas berbahaya berbaur dengan data eksekusi program non-berbahaya. Ada peluang deteksi melalui analisis frekuensi dari jalur penuh biner dalam kumpulan data eksekusi program, tetapi tanpa pemfilteran apa pun, analisis ini terlalu tidak efisien.
Sebagai gantinya, kumpulan data eksekusi program dapat difilter hanya untuk menyertakan nama yang dapat dieksekusi yang berada di dalam System32 atau SysWOW64 secara default. Dalam hal ini, analisis akan dilakukan pada semua data eksekusi program yang terkait dengan eksekusi System32 atau SysWOW64 di mana jalur lengkap biner tidak cocok dengan default.
Untuk melakukan analisis ini, buat tabel pencarian dari eksekusi System32 dan SysWOW64 default dari sistem Windows, yang akan bertindak sebagai kumpulan data kontrol, yang dengannya pembela dapat mengidentifikasi anomali.
Skrip PowerShell berikut akan menghitung eksekusi dalam System32 dan SysWOW64 dan mengekspor hasil ke CSV.
Menggunakan sysbins.csv sebagai grup kontrol memungkinkan identifikasi eksekusi program dan memberikan bukti aplikasi Windows di luar direktori System32 atau SysWOW64 default mereka.
| $SysBinList = Get-ChildItem $env:SystemRoot\system32\ ,$env:SystemRoot\syswow64\ -Recurse -ErrorAction SilentlyContinue | Where-Object {($_.Extension -like “.exe”)} -ErrorAction SilentlyContinue | Select Name;$SysBinLobj = $SysBinList.Name | select -Unique | Select-Object @{Name=’Name’; Expression={$_}};$SysBinLobj | export-csv sysbins.csv -NoTypeInformation |
Gambar 2: Analisis frekuensi pada jalur lengkap biner System32
Penting untuk dicatat bahwa aktor ancaman dapat menghindari deteksi menggunakan pencocokan nama file dengan mengganti nama eksekusi biner, karena teknik side-loading akan tetap berjalan terlepas dari nama eksekusi tersebut.
Gambar 3: Side-loadside-loading mspaint.exe (berganti nama menjadi notmspaint.exe) dengan msftedit.dll
Salah satu cara untuk deteksi eksekusi yang diganti namanya adalah melalui pembuatan profil lebih lanjut dari nilai hash dari System32 dan SysWOW64 yang dapat dieksekusi pada mesin Windows atau mengumpulkan nama internal file yang dapat dieksekusi dari sistem target. Beberapa solusi pemantauan eksekusi proses seperti Sysmon akan menangkap nama internal yang dapat dieksekusi pada saat eksekusi. Selain itu, PowerShell memiliki kemampuan untuk menghitung nama file asli dari file yang dapat dieksekusi setelah diganti namanya.
Gambar 4: Mencantumkan atribut nama file asli di PowerShell
Skrip berikut akan menghitung daftar hash yang dapat dieksekusi di direktori System32 dan SysWOW64, yang juga dapat digunakan sebagai kumpulan data kontrol untuk mengidentifikasi eksekusi Windows standar di lokasi non-standar.
$binarray=@()$SysBinList = Get-ChildItem $env:SystemRoot\system32\,$env:SystemRoot foreach($bin in $SysBinList) { $binhash = Get-FileHash $bin.Nama lengkap -Algoritma SHA1 $binobject = New-Object psobject $binobject | Add-Member -MemberType NoteProperty -Name “Name” -Value $bin.Name $binobject | Add-Member -MemberType NoteProperty -Name “Hash” -Value $binhash.Hash $binarray += $binobject } $binarray | export-csv sysbinhash.csv -NoTypeInformation |
Gambar 5: Skrip PowerShell untuk mengumpulkan hash file
Namun, deteksi yang disebutkan di atas lebih efektif ketika ada data eksekusi proses terpusat dan kemampuan untuk menetapkan garis dasar aktivitas dari waktu ke waktu dalam suatu lingkungan. Itu sangat jarang terjadi selama penyelidikan.
Untuk mengatasi tantangan ini, X-Force menerapkan utilitas pengumpulan data untuk mengumpulkan metadata dari titik akhir dalam skala besar. Salah satu utilitas tersebut adalah SideLoadHunter, yang akan membuat profil titik akhir untuk DLL dan file yang dapat dieksekusi dalam profil pengguna, System32 dan SysWOW64. Setelah file yang dapat dieksekusi dan DLL telah diprofilkan, X-Force melakukan analisis komparatif untuk mengidentifikasi kemungkinan bukti pemuatan samping DLL melalui nama file, nilai hash, dan nama internal. Selain itu, artefak eksekusi program dianalisis untuk bukti eksekusi yang dimuat samping yang tidak lagi ada di disk. Alat ini telah dipindahkan ke PowerShell dan tersedia untuk diunduh di sini.
Fungsi utama SideLoadHunter adalah:
Gambar 6: Eksekusi Side-Loadhunter.ps1
Melalui riset lanjutan dari file yang dapat dieksekusi rentan terhadap pemuatan samping pada sistem Windows, X-Force telah mengidentifikasi daftar nama yang dapat dieksekusi dan DLL terkait yang dapat dimuat samping.
Daftar lengkap target beban samping dapat ditemukan di sini.
Untuk membantu deteksi real-time dari target beban samping ini, X-Force telah memigrasikan daftar beban samping yang diketahui ke dalam konfigurasi Sysmon yang bertujuan untuk mencatat beban modul untuk eksekusi dan DLL terkait.
Konfigurasi Sysmon dapat ditemukan di sini.
Gambar 7: Peristiwa Sysmon dari Side-Loadhunter.xml
Sementara malware dan musuh biasanya menargetkan eksekusi dalam direktori System32 dan SysWOW64 untuk pemuatan samping, potensi untuk memuat DLL ke dalam yang dapat dieksekusi tidak terbatas pada direktori tersebut. Misalnya, melalui upaya kolaboratif antara X-Force Incident Response dan X-Force Red, OneDriveStandaloneUpdater.exe yang dapat dieksekusi, yang ada dalam %userprofile%\appdata\local\Microsoft\OneDrive secara default pada sistem Windows 10, dapat dimuat secara samping melalui WofUtil.dll, yang berada di %windir%\ system32\ secara default.
Gambar 8: Side-Loading OneDriveStandaloneUpdater.exe dengan WofUtil.dll
X-Force saat ini sedang melakukan riset lebih lanjut untuk membuat daftar file yang dapat dieksekusi dan DLL yang lebih lengkap yang merupakan target untuk pemuatan samping, jadi pantau terus pembaruan di masa mendatang.