یک خطای برنامهنویسی ۱۷ ساله در هسته مایکروسافت ویندوز کشف شده است که میتواند از شناسایی شدن بدافزارها توسط بعضی از نرمافزارهای امنیتی در زمان اجرا و در هنگام بارگیری در حافظه سیستم جلوگیری کند.
این مشکل امنیتی که توسط Omri Misgav، محقق امنیتی شرکت enSilo کشف شده است در روال هسته PsSetLoadImageNotifyRoutine قرار دارد که ظاهراً بر روی تمامی نسخههای ویندوز از ویندوز ۲۰۰۰ به بعد تأثیرگذار است[۱].
ویندوز بر پایه API تولید شده است که همان PsSetLoadImageNotifyRoutine است که به برنامهها کمک میکند تا اگر یک ماژول جدید در حافظه بارگیری شود، آن را ردیابی کنند. بعد از رجیستر شدن، این برنامه در هر بار که یک ماژول در حافظه بارگیری شود، یک پیغام هشدار دریافت میکند. این پیغام شامل مسیر ماژول مربوطه بر روی دیسک است.
بااینحال، Misgav متوجه شد که به دلیل رفتار ذخیرهسازی همراه با روشی که درایور یک فایل سیستمی، نام یک فایل را نگه میدارد و یک خطای برنامهنویسی شدید، این تابع همیشه مسیر صحیح ماژولهای بارگیری شده را بازنمیگرداند.
مشکل اینجاست که به نظر میرسد برای وصله کردن این مشکل مایکروسافت هیچ برنامهای نداشته و این مشکل را بهعنوان یک آسیبپذیری امنیتی در نظر نگرفته است.
Tal Liberman، رئیس تیم تحقیقاتی شرکت enSilo دراینباره میگوید[۲]: “این اشکال میتواند پیامدهای امنیتی را برای کسانی که از وجود آن آگاهی ندارند داشته باشد. ما اعتقاد داریم که اگر مایکروسافت برنامهریزی برای حل این اشکال نداشته باشد، باید حداقل بهصراحت به توسعهدهندگان در این مورد هشدار دهد.”
این محققان بر این باورند که این اشکال برنامهنویسی میتواند ازلحاظ تئوری توسط نویسندگان بدافزارها مورداستفاده قرارگرفته تا سیستم تشخیص در آنتیویروسها را دور بزنند و از یک سری عملیات بر روی فایل استفاده کرده تا موتور پویشگر را گولزده تا فایلهای اشتباه را بررسی کند.
بنابراین، اگر تشخیص نقطه پایان و محصولات پاسخ شما به این API متکی باشند، باید از آن استفاده نکنید یا باید راهکارهایی را که توسط این محققان تعیینشده برای غلبه بر خطای موجود پیادهسازی کنید.
در یک گزارش جداگانه، Misgav به توسعهدهندگان نرمافزار پیشنهاد داده است تا از یک Windows API دیگر به نام FltGetFileNameInformationUnsafe استفاده کنند که برای بررسی صلاحیت مسیر ماژول، از پارامترشی فایل موردنظر استفاده میکند.
اگر این فایل وجود داشته باشد، این امکان وجود دارد که توسط این روش تأیید کنیم که شی فایل که در حافظه بارگذاری شده است، درواقع همان فایل است که روی دیسک قرار دارد.
برای کسب اطلاعات فنی بیشتر شما میتوانید به گزارش منتشرشده توسط شرکت enSilo مراجعه کنید[۳].
در یک گزارش جداگانه، محققان امنیتی در شرکت Check Point در ارتباط با یک روش حمله جدید گزارش دادهاند که Bashware نامیده شده و از subsystem لینوکس که برپایه ویندوز است سوءاستفاده کرده تا از تشخیص داده شدن بدافزارها توسط بیشتر نرمافزارهای امنیتی جلوگیری کند[۴].
منابع
[۱]https://breakingmalware.com/documentation/windows-pssetloadimagenotifyroutine-callbacks-good-bad-unclear-part-1
[۲] https://msdn.microsoft.com/en-us/library/windows/hardware/mt764088(v=vs.85).aspx
[۳]https://breakingmalware.com/documentation/windows-pssetloadimagenotifyroutine-callbacks-good-bad-unclear-part-2
[۴] http://thehackernews.com/2017/09/windows-10-linux-evade-malware.html
[۵] http://thehackernews.com/2017/09/windows-kernel-malware.html
ثبت ديدگاه