LoadLibrary, lapisan untuk memuat DLL Windows ke dalam aplikasi Linux

Tavis Ormandy (Tavis ormandy), seorang peneliti keamanan di Google yang mengembangkan proyek tersebut Perpustakaan Load, ditujukan untuk mem-porting DLL yang dikompilasi untuk Windows untuk digunakan dalam aplikasi Linux. Proyek ini menyediakan perpustakaan lapisan yang dengannya Anda dapat memuat file DLL dalam format PE/COFF dan memanggil fungsi yang ditentukan di dalamnya. Bootloader PE/COFF didasarkan pada kode ndiswrapper. Kode proyek didistribusikan oleh berlisensi di bawah GPLv2.

LoadLibrary menangani pemuatan perpustakaan ke dalam memori dan mengimpor simbol yang ada, menyediakan aplikasi Linux dengan API gaya dlopen. Kode plugin dapat di-debug menggunakan gdb, ASAN, dan Valgrind. Dimungkinkan untuk menyesuaikan kode yang dapat dieksekusi selama eksekusi dengan menghubungkan kait dan menerapkan tambalan (patch runtime). Mendukung penanganan pengecualian dan pelepasan untuk C++.

Tujuan dari proyek ini adalah untuk mengatur pengujian fuzzing terdistribusi perpustakaan DLL yang skalabel dan efisien di lingkungan berbasis Linux. Di Windows, pengujian fuzzing dan cakupan tidak terlalu efisien dan sering kali memerlukan pengoperasian Windows virtual yang terpisah, terutama saat mencoba menganalisis produk kompleks seperti perangkat lunak antivirus yang menjangkau kernel dan ruang pengguna. Dengan menggunakan LoadLibrary, peneliti Google mencari kerentanan dalam codec video, pemindai virus, perpustakaan dekompresi data, decoder gambar, dll.

Misalnya, dengan bantuan LoadLibrary kami dapat mem-porting mesin antivirus Windows Defender agar dapat dijalankan di Linux. Studi tentang mpengine.dll, yang menjadi dasar Windows Defender, memungkinkan untuk menganalisis sejumlah besar prosesor canggih untuk berbagai format, emulator sistem file, dan penerjemah bahasa yang berpotensi menyediakan vektor untuk mungkin serangan.

LoadLibrary juga digunakan untuk mengidentifikasi kerentanan jarak jauh dalam paket antivirus Avast. Saat mempelajari DLL dari antivirus ini, terungkap bahwa proses pemindaian dengan hak istimewa utama mencakup penerjemah JavaScript lengkap yang digunakan untuk meniru eksekusi kode JavaScript pihak ketiga. Proses ini tidak terisolasi di lingkungan sandbox, tidak mengatur ulang hak istimewa, dan menganalisis data eksternal yang belum diverifikasi dari sistem file dan lalu lintas jaringan yang dicegat. Karena kerentanan apa pun dalam proses yang kompleks dan tidak terlindungi ini berpotensi menyebabkan kompromi jarak jauh pada keseluruhan sistem, shell khusus dikembangkan berdasarkan LoadLibrary skrip tambahan untuk menganalisis kerentanan pada pemindai antivirus Avast di lingkungan berbasis Linux.

Sumber: opennet.ru

Tambah komentar