پدرخوانده Stuxnet
یک شنبه 2 فروردین 1394 11:36 AM
جالب ترین کشف در زمان شناسایی Stuxnet در سال ۲۰۱۰، نقطه ضعف امنیتی LNK بود که بعدها به نقطه ضعف Stuxnet معروف شد. بررسی های بیشتر نشان داد که فایلی با نام fanny.bmp که در آن زمان توسط بسیاری از شرکتهای ضدبدافزار بعنوان عضوی از خانواده بدافزارهای Zlob طبقه بندی می شد، حداقل از سال ۲۰۰۸ از این ضعف امنیتی بهره می برده است.
عملکرد این فایل تا همین چندی پیش، از دید کارشناسان امنیتی و شرکتهای تولیدکننده ضدویروس مخفی مانده بود. اما بدنبال کشف عملیات Equation و ساخت فرمولی برای شناسایی بدافزارهای این عملیات، نکته جالبی مشاهده گردید. فرمول شناسایی بدافزارهای عملیات Equation، فایل fanny.bmp را نیز شناسایی می کرد. این بدان معنی بود که fanny.bmp همان فایل مورد استفاده عملیات Equation، حداقل در سال ۲۰۰۸، بوده است.
علاوه بر نقطه ضعف LNK، فایل fanny از نقطه ضعف دیگری با شناسه CVE-2009-1124 نیز استفاده می کرد که در زمان شناسایی fanny همچنان ناشناخته بود. نسخه های اولیه بدافزار Stuxnet نیز همچون fanny از این نقطه ضعف برای بالا بردن حق دسترسی از کاربر عادی به کاربر Administrator استفاده می کردند. اگر زمان پیدایش و انتشار بدافزار Stuxnet را سال ۲۰۰۹ در نظر بگیریم مشخص می شود fanny حداقل یکسال قبل از Stuxnet از این نقاط ضعف که هر دو در زمان خود ناشناخته بودند، استفاده می کرده است. ضمن اینکه بدافزار Flame نیز از نقطه ضعف CVE-2009-1124 بهره می برده و یکی از نقاط اتصال میان Stuxnet و Flame محسوب می شود.
با این حال روش پیاده سازی بهره جوی ( Exploit یا برنامه سوءاستفادهکننده) این نقطه ضعف در fanny متفاوت است. در حالی که بهره جوی موجود در Stuxnet نسخه خاصی از سیستم عامل را هدف قرار می دهد، بهره جوی fanny، با ساختاری بسیار پیچیده تر، دامنه گسترده تری از سیستمهای عامل از NT 4.0 گرفته تا Vista/2008 را می تواند آلوده کند.
وجود این نقاط ضعف تنها شباهتهای موجود میان Stuxnet و fanny نیست. بررسی کدها نشان می دهد که برنامه نویسان هر دو بدافزار، از یک دستورالعمل کدنویسی مشترک پیروی می کرده اند. برای نمونه استفاده از اعداد طولانی در کنار فراخوانی هر تابع که بنظر می رسد از آنها برای رفع اشکال و رصد خطاها استفاده می شده است.
fanny چیست؟
یک کرم USB و مجهز به درب پشتی (Backdoor) است که از نقطه ضعف LNK برای اجرا شدن در زمان اتصال حافظه USB به دستگاه، حتی در صورت غیرفعال بودن بخش Autorun، سواستفاده می کند. fanny قادر است دسترسی کاربر عادی را به Administrator ارتقا دهد و ماجولهای بیشتری را نصب کند. تلاش می کند به سرور فرماندهی متصل شده و در صورت وجود اجزای جدید، آنها را دریافت و نصب کند. در صورت عدم امکان برقراری ارتباط با سرور فرماندهی، با دست درازی به ساختار FAT حافظه USB از آن برای انتقال فرامین استفاده می کند.
در حالت عادی، محتوای حافظه USB را می توان با Windows Explorer مشاهده کرد. تصاویر زیر، کپی و سپس مخفی شدن فایلهای مخرب بدافزار fanny را بر روی حافظه USB نشان می دهند.
بخش اصلی fanny یک فایل DLL با نام dll_installer.dll و درهمساز ۰a209ac0de4ac033f31d6ba9191a8f7a است. دارای دو قسمت، یکی برای نصب و دیگری برای عزل (Uninstall) بدافزار است. همچنین حاوی بخش پیکربندی رمز شده با الگوریتم XOR است. بخش پیکربندی نیز خود حاوی فرمانی برای گسترش بر روی سیستم فعلی، نشانی های سرور فرماندهی و مسیرهایی که از آنها برای نصب اجزای بدافزار استفاده شده است، می باشد.
با اجرا شدن فایل، Mutexهای زیر بررسی می شوند که در آن InstanceNum عددی با طول یک بایت است که از بخش پیکربندی فایل خوانده می شود.
Global\RPCMutex
Global\RPCMutex <InstanceNum>
وجود هر یک از Mutexهای مذکور، در حال اجرا بودن نمونه دیگری از همان کد را بر روی سیستم نشان می دهد. بنظر می رسد از این عدد برای تشخیص نگارش بدافزار استفاده می شود و بدین ترتیب دو نمونه از بدافزار با یک نگارش بر روی یک سیستم اجرا نمی شوند.
بخش پیکربندی یک بایت مهم دیگر هم دارد. این بایت شمارنده ای است که در صورت اجرای موفقیت آمیز عملیات آلودگی، بطور معکوس شروع به شمارش می کند. زمانی که شمارنده به مقدار حداقل می رسد فایلهای مرتبط با بدافزار از روی حافظه USB پاک و انتشار آن متوقف می شود. با این روش حمله کنندگان مدت زمان اجرای عملیات را کوتاه تر کرده اند.
اگر نام فایل اجرا شده fanny.bmp باشد، بدافزار خود را از روی حافظه USB اجرا می کند. در صورتی که کاربر اجازه نصب برنامه بر روی سیستم را نداشته باشد با سواستفاده از نقطه ضعف CVE-2009-1124 حق دسترسی او را به Administrator ارتقا می دهد. در صورت موفقیت آمیز بودن اجرا، با سرور فرماندهی که نشانی آن در بخش پیکربندی ذخیره شده است ارتباط برقرار می کند.
با برقرار شدن ارتباط، سرور یک نشانی رمز شده با استفاده از الگوریتم XOR را به بدافزار ارسال می کند که احتمالاً مسیر دریافت نگارش جدید بدافزار است.
بدافزار بدنبال فایلی با نام fanny.bmp در ریشه درایوها می گردد و این جستجو را از درایو D: آغاز می کند. پس از یافتن فایل آن را با نامهای comhost.dll و mscorwin.dll در پوشه System32 کپی می کند.
دلیل ایجاد دو کپی از فایل بدافزار، اعمال تغییر بر روی بخش پیکربندی است. بدین ترتیب بدافزار بخش پیکربندی یکی از فایلها (comhost.dll) را تغییر و فایل دیگر (mscorwin.dll) را برای استفاده های آتی دست نخورده نگاه می دارد.
همچنین همه فایلهای LNK را از حافظه USB به پوشه System32 کپی می کند تا از آنها برای آلوده ساختن سایر حافظه های USB متصل استفاده کند. دلیل وجود بیش از یک فایل LNK، ناشناس بودن حرف مربوط به درایو USB جدید از دید بدافزار است. بنابراین بدافزار از چندین LNK که هر یک به یکی از درایوهای رایج، همچون D و E اشاره می کنند، استفاده می کند. این روش بعدها در Stuxnet تغییر کرد با بهره گیری از توابع مدرن تر تکامل یافت.
برای اجرا شدن در هر بار راه اندازی سیستم، بدافزار مقدار (Value) زیر را در Registry ایجاد می کند.
HKLM\System\CurrentControlSet\Control\MediaResources\acm\ECELP4\Driver
این روش نامعمول تضمین می کند که بدافزار در فضای آدرس هر پروسه از جمله پروسه های حیاتی همچون lsass.exe و services با دسترسی SYSTEM فراخوانی شود. زمانی که بدافزار فراخوانی می شود در مسیر فوق مقادیر دیگری که با filter شروع شده اند را بررسی می کند. این مقادیر نشان می دهند هر بخش بدافزار به کدام پروسه تزریق شده اند.
بخش “درب پشتی USB”
یکی دیگر از بخش های بدافزار، agentcpd.dll نام دارد. این یک درب پشتی پیشرفته است که از آن بعنوان یک ابزار شناسایی کامپیوترها در شبکه های غیرمتصل به اینترنت استفاده می شده است. با اتصال حافظه USB به دستگاه آلوده، این بخش با دست درازی به سیستم فایل FAT، فضایی حدود یک مگابایت از آن را بنحوی جدا می کند که سیستم عامل آن را خراب شده در نظر بگیرد و نه تنها در سیستم عامل Windows که در سیستمهای عامل Linux و Mac OS نیز قابل مشاهده نباشد. بدافزار از این فضای یک مگابایتی برای انتقال فرامین و داده ها استفاده می کرده است.
بخش “درب پشتی Windows”
بخش درب پشتی بدافزار فایلی با نام shelldoc.dll است که در پروسه Windows Explorer تزریق می شود. وظیفه این درب پشتی، مخفی ساختن فایلهای مرتبط با بدافزار در هنگام اجرا شدن در Windows Explorer است.
برای مثال اگر کاربر پوشه System32 را باز کند با حالتی مشابه شکل زیر روبرو می شود:
همانطور که در شکل نشان داده شده است علاوه بر فایلهای مرتبط با بدافزار، برخی پوشه های استاندارد نیز در این مسیر نمایش داده می شوند که احتمالاً ناشی از وجود اشکال در فایل بدافزار باشد.
بخش درب پشتی بدافزار، مجموعه کدهایی دارد که در نگاه اول چندان با دیگر قسمت های حرفه ای بدافزار هماهنگی ندارد. این مجموعه کدها مقادیر ثابتی می گیرند، مقداری تصادفی را تولید می کنند و در نهایت مسیر فایل اجرایی فعلی را به مقدار زیر در Registry تزریق می کنند و با این کار باعث می شود که فایل با هر راه اندازی سیستم، اجرا شود.
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
شاید در نگاه اول به نظر برسد که این بدافزار حرفه ای از روشی سنتی برای اجرای خودکار خود استفاده کرده است. اما هدف از این حرکت زیرکانه، سریع شناسایی شدن توسط ابزارهای محیط های قرنطینه امن (Sandbox) و سیستمهای شناسایی خودکار است.
به نظر می رسد این بدافزار آنقدر برای گردانندگانش اهمیت داشته که اجرا نشدنش را به شناسایی کاملش ترجیح دهند. روش مزبور و روش انتشار از طریق حافظه های USB همگی سبب شد که بدافزار در سال ۲۰۰۸ بعنوان یک بدافزار رایج عادی در گروه Zlob شناسایی شود و توانایی های آن تا قبل از کشف عملیات Equation مخفی باقی بماند.
منبع: فسا-پسا
.تفکر از تخصص مهمتر است📌