استفاده از آسیبپذیری بدافزار Emotet علیه آن
خلاصه: بسیاری از آسیبپذیریها، خبر خوبی برای مهاجمان و خبر بدی برای همه ما هستند. با این وجود، بدافزار نیز نرمافزاری است که میتواند آسیبپذیری داشته باشد. همانطور که مهاجمان می توانند از نقصهای نرم افزارهای قانونی در حملات مخرب خود استفاده کنند؛ مدافعان نیز میتوانند از روشهای مهندسی معکوس برای کشف آسیبپذیری بدافزارها استفاده کرده و برای شکست بدافزارِ هدف از آسیبپذیری آن استفاده کنند.
بدافزار Emotet ، کد بدخواه شناختهشدهای است که در حملات باتنتی نظیر کمپین اسپم شناور و حملات باج افزار استفاده میشود. این بدافزار، دارای نقصی است که برای محققان امنیت سایبری امکان فعال کردن سوئیچ kill را فراهم میکند تا به این ترتیب از آلودگی بدافزار به مدت شش ماه جلوگیری کنند.
از زمان اولین شناسایی این بدافزار در سال 2014، بدافزار Emotet از گونه اولیه خود به عنوان یک بدافزار بانکی به یک بدافزار همهکاره تکامل یافته است که بسته به نوع استقرار در سیستم قربانی قادر است به عنوان بارگذار (downloader)، سارق اطلاعات و بات هرزنامه عمل کند.
اوایل ماه فوریه ، ویژگی جدیدی به Emotet اضافه شد که بدافزار با سوءاستفاده از دستگاههای تسخیرشده، قربانیان تازهای که به شبکه های Wi-Fi مجاور متصل هستند؛ شناسایی و تسخیر میکرد. ویژگی جدید، با استفاده از نام فایل سیستم exe یا dll از فهرست system32 ، نامی برای ذخیره بدافزار در هر سیستم انتخاب میکرد. این تغییر به خودی خود سرراست بود: نام فایل را با یک کلید XOR رمز کرده و پس از آن در مقدار رجیستری ویندوز روی شماره سریال قربانی، ذخیره شد. این ویژگی پاشنه آشیل و نقطه آسیبپذیر بدافزار شد و پیش از آنکه نویسندگان بدافزار Emotet ، آسیب پذیری بدافزار خود را وصله کنند؛ سوئیچ kill بین 6 فوریه تا 6 آگوست 2020 به مدت 182 روز قابلبهرهبرداری بود.
نسخه اول kill - switch توسط Binary Defence حدود 37 ساعت پس از پردهبرداری Emotet از تغییرات فوق بصورت زنده ساخته و اجرا شد. این نسخه، یک اسکریپت PowerShell را به کار میگرفت تا کلید رجیستری هر قربانی را تولید و مقدار آن را تهی(null) کند. به این ترتیب ، هنگامی که بدافزار رجیستری را برای نام فایل جستجو میکند؛ exe خالی یا «.exe» را بار کرده و بنابراین بدافزار بر سیستم هدف اجرا نمیشود.
EmoCrash علیه Emotet
در نسخه جدید kill-switch با نام EmoCrash، از آسیب پذیری سرریز بافر در روال نصب بدافزار برای تخریب آن در مراحل نصب، استفاده و از این طریق از آلودگی کاربران جلوگیری میشود. در نسخه جدید به جای تنظیم مجدد مقدار رجیستری ، اسکریپت با شناسایی معماری سیستم برای تولید مقدار نصب رجیستری برای شماره سریال حجم کاربر کار و از آن برای ذخیره بافر 832 بایتی استفاده میکند.
سرریز بافر تمام آن چیزی بود که برای تخریب Emotet لازم بود. نکته جالب توجه آن است که این مکانیزم حتّی میتوانست قبل از آلودگی مستقر شود. در این نسخه دو لاگ تخریب با شناسه رویداد 1000 و 1001 وجود دارند که برای شناسایی نقاط انتهایی با باینری های Emotet ازکارافتاده و مرده پس از استقرار killswitch و راه اندازی مجدد رایانه استفاده میشوند.
در این پروژه، Binary Defense با تیم های واکنش اضطراری رایانه (CERTs) و تیم Cymru برای توزیع اسکریپت EmoCrash در سازمان های مستعد، همکاری دارند.