LoadLibrary, lapisan untuk memuatkan Windows DLL ke dalam aplikasi Linux

Tavis Ormandy (Tavis ormandy), seorang penyelidik keselamatan di Google yang sedang membangunkan projek itu Beban perpustakaan, bertujuan untuk mengalihkan DLL yang disusun untuk Windows untuk digunakan dalam aplikasi Linux. Projek ini menyediakan perpustakaan lapisan yang mana anda boleh memuatkan fail DLL dalam format PE/COFF dan memanggil fungsi yang ditakrifkan di dalamnya. Pemuat but PE/COFF adalah berdasarkan kod ndiswrapper. Kod projek diedarkan oleh dilesenkan di bawah GPLv2.

LoadLibrary menguruskan memuatkan perpustakaan ke dalam memori dan mengimport simbol sedia ada, menyediakan aplikasi Linux dengan API gaya dlopen. Kod pemalam boleh dinyahpepijat menggunakan gdb, ASAN dan Valgrind. Adalah mungkin untuk melaraskan kod boleh laku semasa pelaksanaan dengan menyambung cangkuk dan menggunakan tampalan (tampalan masa jalan). Menyokong pengendalian pengecualian dan pelepasan untuk C++.

Matlamat projek ini adalah untuk mengatur ujian kabur teragih yang boleh skala dan cekap bagi perpustakaan DLL dalam persekitaran berasaskan Linux. Pada Windows, ujian fuzzing dan liputan tidak begitu cekap dan selalunya memerlukan menjalankan instance maya berasingan bagi Windows, terutamanya apabila cuba menganalisis produk kompleks seperti perisian antivirus yang merentangi kernel dan ruang pengguna. Menggunakan LoadLibrary, penyelidik Google sedang mencari kelemahan dalam codec video, pengimbas virus, perpustakaan penyahmampatan data, penyahkod imej, dsb.

Contohnya, dengan bantuan LoadLibrary kami dapat mengalihkan enjin antivirus Windows Defender untuk dijalankan pada Linux. Kajian mpengine.dll, yang membentuk asas Windows Defender, memungkinkan untuk menganalisis sejumlah besar pemproses canggih untuk pelbagai format, emulator sistem fail dan penterjemah bahasa yang berpotensi menyediakan vektor untuk mungkin serang.

LoadLibrary juga digunakan untuk mengenal pasti kelemahan jauh dalam pakej antivirus Avast. Apabila mengkaji DLL daripada antivirus ini, ia telah mendedahkan bahawa proses pengimbasan keistimewaan utama termasuk penterjemah JavaScript sepenuhnya yang digunakan untuk meniru pelaksanaan kod JavaScript pihak ketiga. Proses ini tidak diasingkan dalam persekitaran kotak pasir, tidak menetapkan semula keistimewaan dan menganalisis data luaran yang tidak disahkan daripada sistem fail dan trafik rangkaian yang dipintas. Memandangkan sebarang kelemahan dalam proses yang kompleks dan tidak dilindungi ini berpotensi membawa kepada kompromi jauh keseluruhan sistem, shell khas telah dibangunkan berdasarkan LoadLibrary avscript untuk menganalisis kelemahan dalam pengimbas antivirus Avast dalam persekitaran berasaskan Linux.

Sumber: opennet.ru

Tambah komen