LoadLibrary، لایه ای برای بارگذاری DLL های ویندوز در برنامه های لینوکس

تاویس اورماندی (تاویس اورمندییک محقق امنیتی در گوگل که در حال توسعه این پروژه است بارگذاری، با هدف انتقال DLL های کامپایل شده برای ویندوز برای استفاده در برنامه های لینوکس. این پروژه یک کتابخانه لایه ارائه می کند که با آن می توانید یک فایل DLL را با فرمت PE/COFF بارگذاری کنید و توابع تعریف شده در آن را فراخوانی کنید. بوت لودر PE/COFF بر اساس کد است بسته بندی. کد پروژه توزیع شده توسط تحت مجوز GPLv2.

LoadLibrary بارگذاری کتابخانه در حافظه و وارد کردن نمادهای موجود را انجام می دهد و برنامه لینوکس را با یک API به سبک dlopen ارائه می دهد. کد افزونه را می توان با استفاده از gdb، ASAN و Valgrind اشکال زدایی کرد. امکان تنظیم کد اجرایی در حین اجرا با اتصال هوک ها و اعمال وصله ها (runtime patching) وجود دارد. پشتیبانی از مدیریت استثنا و بازگشایی برای C++.

هدف این پروژه سازماندهی تست فازی توزیع شده مقیاس پذیر و کارآمد کتابخانه های DLL در یک محیط مبتنی بر لینوکس است. در ویندوز، تست فازی و پوشش خیلی کارآمد نیست و اغلب نیاز به اجرای یک نمونه مجازی مجزا از ویندوز دارد، به ویژه زمانی که سعی می‌کنید محصولات پیچیده‌ای مانند نرم‌افزار آنتی‌ویروس را که هسته و فضای کاربر را در بر می‌گیرند، تجزیه و تحلیل کنید. با استفاده از LoadLibrary، محققان گوگل به دنبال آسیب‌پذیری‌ها در کدک‌های ویدیویی، اسکنرهای ویروس، کتابخانه‌های فشرده‌سازی داده‌ها، رمزگشاهای تصویر و غیره هستند.

به عنوان مثال، با کمک LoadLibrary توانستیم موتور آنتی ویروس Windows Defender را برای اجرا در لینوکس پورت کنیم. مطالعه mpengine.dll، که اساس Windows Defender را تشکیل می‌دهد، امکان تجزیه و تحلیل تعداد زیادی از پردازنده‌های پیچیده را برای فرمت‌های مختلف، شبیه‌سازهای سیستم فایل و مفسرهای زبان که به طور بالقوه بردارهایی را برای ممکن است حملات.

LoadLibrary نیز برای شناسایی استفاده شد آسیب پذیری از راه دور در بسته آنتی ویروس Avast. هنگام مطالعه DLL از این آنتی ویروس، مشخص شد که فرآیند اسکن ممتاز کلیدی شامل یک مفسر جاوا اسکریپت کامل است که برای شبیه سازی اجرای کد جاوا اسکریپت شخص ثالث استفاده می شود. این فرآیند در یک محیط sandbox ایزوله نیست، امتیازات را بازنشانی نمی کند، و داده های خارجی تایید نشده از سیستم فایل و ترافیک شبکه رهگیری شده را تجزیه و تحلیل می کند. از آنجایی که هر گونه آسیب پذیری در این فرآیند پیچیده و محافظت نشده می تواند به طور بالقوه منجر به به خطر انداختن کل سیستم از راه دور شود، یک پوسته ویژه بر اساس LoadLibrary ایجاد شد. avscript برای تجزیه و تحلیل آسیب پذیری ها در اسکنر آنتی ویروس Avast در یک محیط مبتنی بر لینوکس.

منبع: opennet.ru

اضافه کردن نظر