گزارش آزمایشگاه تحلیل بدافزار پادویش

تحلیل عملکرد بدافزار رجین

طراحی رجین ماژولار و چند سطحی ست. طراحی ماژولار به طراحان این بدافزارها اجازه می‌دهد تا به راحتی بتوانند بنا به هدف و قربانی خود حمله‌های خاص را صورت داده و اطلاعاتی خاص را جمع آوری و سرقت کنند.
کد خبر: ۷۴۵۴۱۲
تحلیل عملکرد بدافزار رجین

به گزارش جام جم کلیک: طراحی رجین نیز هم چون بدافزارهای پیچیده‌ی قبلی، از جمله flame و stuxnet، ماژولار و چند سطحی ست. طراحی ماژولار به طراحان این بدافزارها اجازه می‌دهد تا به راحتی بتوانند بنا به هدف و قربانی خود حمله‌های خاص را صورت داده و اطلاعاتی خاص را جمع آوری و سرقت کنند.

این بدافزار در چند مرحله به اجرا در می‌آید که هر مرحله به نوعی پنهان شده و رمزنگاری شده است. روش غیر متداولی که در روال اجرایی این بدافزار دیده می‌شود آغاز اجرای آن در سطح کرنل است.

تحلیل ارایه شده در ادامه‌ی مطلب مربوط به ماژول‌های مرحله‌ی یک اجرای بدافزار است. به طور کلی باید گفت روال اجرایی کلیه‌ی فایل‌های دیده شده‌ی مربوط به این مرحله به صورت کاربردی یکسان بوده و همگی آنها از روالی مشخص و همانند برخوردارند.

بدافزار رجین (Regin) نوعی بدافزار درب پشتی است که در رده‌ی بدافزارهای با پیچیدگی بالا قرار می‌گیرد. تکنیک‌های استفاده شده در این بدافزار از جمله نادرترین تکنیک‌های به کار رفته در بدافزارهای فضای مجازی است. رجین برای نگه داری برخی از ماژول‌های خود به جای استفاده از روش‌های معمول ذخیره‌سازی فایل، از روش‌های پیشرفته‌ای همچون ذخیره‌سازی در NTFS EA و رجیستری بهره برده است. رجین با مجموعه‌ی گسترده‌ای از توانایی‌ها و کاربردهای پیاده‌سازی شده است که هر یک بنا به هدف مورد حمله به کار گرفته می‌شوند؛ این موضوع به طراحانش این امکان را می‌دهد تا به راحتی به نظارت، جاسوسی و سرقت اطلاعات از سازمان‌های دولتی، سازمان‌های مادر، بنگاه‌های تجاری و تحقیقاتی و افراد خاص بپردازند. پیچیدگی، سازمان‌دهی مناسب و هدفمند بودن طراحی این بدافزار نشان می‌دهد که پیاده‌سازی آن نیازمند صرف زمان و برخورداری از منابع قابل توجهی بوده است و این امر نشانگر این مطلب است که فرآیند طراحی و پیاده‌ سازی رجین از حمایت مالی منابع قدرتمند برخوردار بوده است.

در ابتدا، کار با نشاندن آدرس‌هایی برای مدیریت استثناها آغاز می‌شود. برای این کار از فراخوانی _SEH_prolog استفاده شده است. در فاصله‌های کوتاه از این فراخوانی با رخدادن یک استثنا آدرس‌های مربوطه از درایور فراخوانی شده و به این وسیله به تنه‌ی اصلی برنامه وارد خواهیم شد. در قدم اول بخشی از دیتای درایور که رمزشده است با الگوریتم نشان داده شده در گراف شکل ۱ رمز گشایی می‌شود.

شکل۱: الگوریتم رمزگشایی مربوط به دیتای اولیه

در شکل‌های ۲ و ۳ می‌توانید نمونه‌ای از دیتای مورد نظر درایور را قبل و بعد از عملیات رمزگشایی مشاهده کنید.

شکل ۲: دیتای اولیه قبل از رمزگشایی

شکل ۳: دیتای اولیه بعد از رمزگشایی

همان طور که در شکل‌های بالا مشخص است، بعد از عملیات رمزگشایی می‌توان مسیر رجیستری و فایل مورد نظر بدافزار را به راحتی مشاهده کرد.

در مرحله‌ی بعد بدافزار اقدام به بازکردن دایرکتوری مورد نظر خود کرده و در صورت موفقیت آمیز بودن این کار اطلاعات مربوط به EA آن را از سیستم درخواست می‌کند. لیست آدرس دایرکتوری‌های دیده شده در نمونه‌های موجود در انتهای این گزارش آمده است.

لازم به توضیح است که EA: Extended Attributes به نوعی تکنولوژی ارایه شده در فرمت فایلهای NTFS اطلاق می‌شود که هر فایل/دایرکتوری را قادر می‌سازد علاوه بر ذخیره سازی دیتا در بخش‌های معمول خود، از این بخش نیز برای ذخیره سازی اطلاعات با فرمت دلخواهش بهره ببرد. با استفاده از این نحوه‌ی ذخیره سازی اطلاعات، رجین توانسته است تا درصد بالایی به پنهان سازی ماژول‌‌های مرحله‌ی بعدش کمک کند. در شکل ۴ بخش مربوط به این فراخوانی را مشاهده می‌کنید.

شکل ۴: فراخوانی NtQueryInformationFile با کلاس FileEaInformation

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

typedef struct _ FILE_FULL_EA_INFORMATION

}

0x0:ULONG NextEntryOffset;

0x4:BYTE Flags;

0x5:BYTE EaNameLength;

0x6:USHORT EaValueLength;

0x8:CHAR EaName[1];

{ FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION;

از آنجایی که ممکن است دایرکتوری دارای سلول‌های دیگری از EA نیز باشد که به کد بدافزار نامربوط است لازم است به نوعی EA مربوط به رجین از سایرین تمیز داده شود. این کار به وسیله‌ی نام خاص این EA صورت می‌گیرد. نام خاص سلول مورد نظر بدافزار، EaName، “_”، کاراکتر آندرلاین: 0x5F، و طول آن، EaNameLength، ۱ می‌باشد. بدافزار در صورت یافتن این سلول خاص، محتوای دیتای آن را خوانده و نگه می‌دارد. فرمت این دیتا به دلخواه بدافزار تعیین شده است و به گونه‌ای ست که چهار بایت دوم آن حاوی سایز کل محتوا می‌باشد. روال جستجوی سلول خاص بدافزار را در شکل ۵ می‌بینید.

شکل ۵: پیوستن اطلاعات خوانده شده از EA فایل

توجه داشته باشید که در پارامتر EaName علاوه بر EaName، دیتای ذخیره شده در EA دایرکتوری نیز وجود دارد . از آنجایی که در سلول خاص بدافزار سایز نام یک کاراکتر اسکی در نظر گرفته شده است، بنابراین دیتای ذخیره شده به فاصله‌ی دو بایت بعد از EaName، یعنی در اندیس 0xA قرار خواهد داشت.

در قدم بعدی نوبت به رمزگشایی اطلاعات خوانده شده از EA دایرکتوری می‌رسد. قبل از ورود به این بخش فرض می‌کنیم اطلاعات در EA دایرکتوری مورد نظر وجود نداشته باشد. در این صورت است که درایور سعی می‌کند اطلاعات مورد نظرش را از مسیر رجیستری خاص اش بخواند. در صورت وجود این کلید، مقدار پارامتر خاص بدافزار از آن خوانده می‌شود. مسیر رجیستری و پارامتر درخواست شده‌ی بدافزار در تمامی نمونه درایورهای دیده شده در آزمایشگاه بدافزار پادویش یکی از موارد زیر بوده است.

:Registry Addresses

HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Control|Class|{4F20E605-9452-4787-B793-D0204917CA58}
HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Control|Class|{0B9398E1-C079-454F-BADC-E22B0D9A21BD}
| REGISTRY | Machine | System | CurrentControlSet|Control|Class|{34881914-8A3E-45AB-AD5B-33BB091F40A9

:Registry Value Names
Class
EnumPropPages
ClassPath

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

شکل ۶: رمزگشایی دیتای موجود در EA فایل و یا رجیستری

نکته‌های که ادامه‌ی تحلیل را از این مرحله به بعد دشوار می‌کند این است که در کلیه‌ی ماژول‌های مرحله‌ی اول فرض شده است ماژول رمز شده‌ی مرحله‌ی دوم در EA دایرکتوری و یا رجیستری خاص بدافزار ذخیره شده است. چنانچه این اطلاعات در دسترس نباشد از طریق ماژول‌های مرحله‌ی یک ایجاد نخواهد شد! بنابراین بدیهی به نظر می‌رسد که ذخیره‌ی این اطلاعات در موارد گفته شده از طریقی ویژه در سیستم‌های خاص بدافزار صورت گرفته است. حدس زده می‌شود که این کار از طریق انواع اکسپلویت­‌ها و یا دسترسی راه دور به سیستم‌های قربانی صورت گرفته باشد.

با این تفاسیر برای تحلیل سایر مراحل نیاز است تعدادی از سیستم‌های آلوده شناسایی شده و اطلاعات ذخیره شده در آنها جمع آوری گردد در صورت دریافت اطلاعات بیشتر گزارش خواهیم داد.

لیست آدرس دایرکتوری‌های مرجع در هنگام خواندن اطلاعات EA:


C:|Windows | Temp
Windows | fonts
Windows
Windows | repair
Windows | msapps
Windows | Cursors5

هش مربوط به فایل‌های دیده شده در مرحله‌ی اول در لیست زیر آمده است.

01c2f321b6bfdb9473c079b0797567ba

06665b96e293b23acc80451abb413e50

187044596bc1328efa0ed636d8aa4a5c

1c024e599ac055312a4ab75b3950040a

26297dc3cd0b688de3b846983c5385e5

2c8b9d2885543d7ade3cae98225e263b

47d0e8f9d7a6429920329207a32ecc2e

4b6b86c7fec1c574706cecedf44abded

6662c390b2bbbd291ec7987388fc75d7

744c07e886497f7b68f6f7fe57b7ab54

b269894f434657db2b15949641a67532

b29ca4f22ae7b7b25f79c1d4a421139d

b505d65721bb2453d5039a389113b566

ba7bb65634ce1e30c1e5415be3d1db1d

bfbe8c3ee78750c3a520480700e440f8

d240f06e98c8d3e647cbf4d442d79475

db405ad775ac887a337b02ea8b07fddc

ffb0b9b5b610191051a7bdf0806e1e47

منبع: پادویش

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها