Mengetes Kerentanan DLL Side-Loading di Aplikasi Windows
Nah, meskipun masalah DLL side-loading ini salah satu “plague” paling umum di aplikasi Win32, dan Microsoft punya waktu lama banget buat ngatasin ini, ternyata developer masih harus ribet ngecek sendiri apakah aplikasinya rentan.
Misalnya, kamu mau cek apakah Rufus rentan side-loading. Caranya gampang, tinggal pakai ProcMon dengan filter berikut:
Process Name contains rufus
Operation is CreateFile
Result contains NAME NOT FOUND
Catatan: ProcMon itu lumayan berat karena monitoring real-time, jadi sebaiknya pause dulu sampai siap nge-run aplikasi.
Setelah ProcMon jalan, jalankan Rufus dan lihat setiap permintaan CreateFile untuk DLL di direktori aplikasi. Di Rufus 4.6, misalnya, muncul request untuk cfgmgr32.dll.
Nah, ini bahaya. Kalau seseorang bisa akses user kamu atau lokasi executable, mereka bisa menaruh cfgmgr32.dll jahat yang bisa nge-run kode dengan privilege lebih tinggi.
Iya sih, kalau orang itu udah punya akses user di Windows, mungkin mereka nggak perlu nunggu Rufus jalan buat nge-run kode, tapi tetap, Rufus seharusnya nggak boleh load DLL nggak dipercaya dari direktori aplikasi.
Masalah ini sebenarnya udah diperbaiki di Rufus 4.7. Tapi, sejujurnya, Microsoft sebenarnya bisa bikin fitur untuk developer supaya executable nggak pernah load DLL dari direktori aplikasi. Sayangnya, opsi ini dulu ada di SetDllDirectory() tapi sekarang agak misterius hilang dari dokumentasi resmi.
Jadi, nggak heran kalau banyak aplikasi Windows dianggap kurang aman.
Terima kasih juga buat EmperialX dan Shauryae1337 yang nge-report isu Rufus 4.6 dan ngenalin ProcMon buat ngecek kerentanan kayak gini.


<< Beranda