۱- مقدمه
بدافزار رجین که بهتازگی ذهن تمامی مسئولین امنیتی در سراسر دنیا را به خود جلب نموده است، دارای پیچیدگیهای خاصی میباشد. به گونهای که به نظر میرسد توسط یک حکومت ایجاده شده و ممکن است برای مدت ۸ سال مورد استفاده قرار گرفته باشد. این بدافزار دارای اهداف متنوعی است که به طور خاص میتوان به شرکتهای مخابراتی در کشورهای مختلف از جمله ایران اشاره نمود.
این بدافزار با ماژولهای متفاوت سفارشی سازی شده برای سرقت انواع خاص اطلاعات، غالباً شرکتهای مخابراتی، کسب و کارهای کوچک و افراد شخصی را هدف قرار داده است. سیمانتِک حدود ۱۰۰ نهاد را در ۱۰ کشور کشف کرده است که توسط بدافزار رجین آلوده شدهاند که اغلب آنها در روسیه و عربستان صعودی قرار دارند. اما در مکزیک، ایرلند، هند، افغانستان، ایران، بلژیک، اتریش و پاکستان نیز مواردی از آلودگی به این بدافزار مشاهده شده است.
به گفته یک محقق امنیتی سیمانتِک به نام «لیام اومورچو»، نخستین نسخه Regin بین سالهای ۲۰۰۸ تا ۲۰۱۱ فعال شد. سیمانتِک تحلیل نسخه دیگری از Regin را که توسط یکی از مشتریان برای این شرکت ارسال شده بود حدود یک سال قبل آغاز کرد. اما شواهد و ادله جرمشناسانهای وجود دارد مبنی بر اینکه Regin از سال ۲۰۰۶ فعال بوده است. در حقیقت سیمانتِک نام Regin را برای این بدافزار انتخاب نکرده است. به گفته اومورچو این بدافزار توسط دیگرانی که در زمینه امنیت فعالیت مینمایند و پیش از این در مورد این بدافزار اطلاعاتی داشتهاند، به این نام نامیده شده است.
سیمانتِک حدود ۱۰۰ نهاد را در ۱۰ کشور کشف کرده است که توسط Regin آلوده شدهاند که اغلب آنها در روسیه و عربستان سعودی قرار دارند. اما در مکزیک، ایرلند، هند، افغانستان، ایران، بلژیک، اتریش و پاکستان نیز مواردی از آلودگی به این بدافزار مشاهده شده است.
Regin یک تروجان backdoor است که بسته به هدف، با گستره متنوعی از قابلیتها، سفارشیسازی میشود. به گفته سیمانتِک، تولید این بدافزار ماهها و حتی سالها زمان برده است و نویسندگان آن تمام سعی خود را برای پوشاندن ردپای این بدافزار کردهاند.
همچنین هنوز دقیقاً مشخص نیست که کاربران چگونه توسط Regin آلوده میشوند. به گفته اومورچو، سایمانتک فقط در مورد یک کامپیوتر کشف کرده است که از طریق یاهو مسنجر آلوده شده است. این احتمال وجود دارد که کاربر قربانی یک حمله مهندسی اجتماعی شده و بر روی لینکی که از طریق مسنجر ارسال شده است کلیک کرده باشد. اما احتمال بیشتری وجود دارد که کنترلکنندگان Regin از یک آسیبپذیری در مسنجر آگاه بوده و بدون نیاز به تعامل کاربر، سیستم وی را آلوده کرده باشند.
۲ - مراحل و ساختار کلی بدافزار
اگر بخواهیم روند کاری این بدافزار را مرحلهبندی نماییم، میتوان گفت که این بدافزار فعالیتهای خود را در ۶ مرحله انجام میدهد. اولین مرحله مربوط به نصب و پیکربندی سرویسهای داخلیست. سایر مراحل مربوط به payload های این بدافزار میباشد.
در مرحله اول نصب برروی درایور که ساده ترین قسمت برای خواندن کدها هست انجام میگیرد.تمامی مراحل بعد با رمزگذاری و روش های غیرمعمول مانند قسمتی از رجیستری یا در فایلهای EA ذخیره میشوند.
شکل ۱ - روند اجرایی این بدافزار
۳ - روند اجرایی این بدافزار
مرحله ۰ ((dropper
هنوز پاسخ کاملی در ارتباط با چگونگی ورود رجین به تارگت وجود ندارد. ولی احتمالاَ به محض ورود به سیستم اقدام به نصب مرحله اول میکند.
مرحه ۱
نقطه شروع حمله این مرحله میباشد. دو نوع فایل در این مرحله مشاهده شده که عبارتند از:
-usbclass.sys (version 1.0)
-adpu160.sys (version 2.0)
احتمال وجود فایل های دیگری که بین ۱.۰ و ۲.۰ باشد زیاد است.
این فایل ها همگی در سطح کرنل فعال هستند و مسئول راهاندازی مرحله دوم حمله میباشند. مرحله ۱ به راحتی این کار را با خواندن یا نوشتن در یک فایل EA انجام میدهد.اگر وجود نداشت به سراغ رجیستریها رفته و مرحله ۲ توسط رجیستریها نصب خواهد شد.
مرحله ۲
این مرحله نیز در سطح کرنل آغاز خواهد شد و به راحتی اقدام به نصب و اجرای مرحله ۳ میکند. و همانند مرحله اول این کار را در یک فایل EA یا رجیستری انجام میشود
مرحله ۲ در محل های زیر یافت میشود:
Registry subkey
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4F20E605-9452-4787-B793-
D0204917CA58}
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\RestoreList\VideoBase (possibly only in version
۲.۰)
این مرحله همچنین مسئول مخفی کردن بقایای مرحله اول میباشد و به همین دلیل شناسایی آن کار سختی است.
مرحله ۳
مرحله ۳ نیز در سطح کرنل انجام میشود و از نوع DLL است که همانند مراحل قبل به روش های معمول ذخیره سازی نمیگردد و در یک فایل EA یا بلاک رجیستری ذخیره میگردد
این مرحله در محلهای زیر یافت میشود:
Extended attribute
- %Windir%\system32
- %Windir%\system32\drivers
- Registry subkey
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4F20E605-9452-4787-B793-D0204917CA5A}
برای مرحله ۳ چند وظیفه مشخص شده که احتمال بروز خطا در این نظریه وجود دارد که عبارتند از:
- ارکستراسیون، یعنی تجزیه اطلاعات اضافی که درمرحله ۳ و بالاتر قابل شناسایی هستند.
- فشرده سازی و بلعکس
- رمزگشایی و رمز گذاری
- بازیابی حجم مورد نیاز برای بارگذاری اجزای مرحله ۴
در کل مرحله ۳ یک فایل دی ال ال هست که حاوی صدها نوع تابع برای کارهای مختلف میباشد.این مرحله بر خلاف مراحل قبل که تنها وظیفه ذخیره سازی را برای مرحله بعد را داشتند زمینه را برای اجرای مراحل بعد آماده میکند.جدول زیر نمونه ای از این توابع را نشان میدهد
Functionality |
Major |
Core |
۰۰۰۱h |
Compression, decompression |
۰۰۰Dh |
Encryption, decryption |
۰۰۰Fh |
EVFS handling |
۰۰۳Dh |
Container management |
۰۰۰۷h |
Log management |
۰۰۰Bh |
Loader |
۰۰۳۳h |
مرحله ۴:
فایل های مرحله ۴ که توسط مرحله ۳ بارگذاری شده شامل ماژول های پیلود چند هستهای میباشد و در دو محل EVFS با عنوان فایل های زیر ذخیره میشوند:
• %System%\config\SystemAudit.Evt
• %System%\config\SecurityAudit.Evt
معمولا ویروس رجین در پاکسازی مراحل ۴ و ۵ از کامپیوتر قربانی با شکست مواجه میشود.
مرحله ۵
شامل پیلودهای اصلی رجین است. پِیلودها با توجه به قربانی متفاوت خواهند بود به عنوان مثال:
- شنود ترافیک شبکه
- بازیابی اطلاعات از طریق کانالهای مختلف ارتباطی مثل پروتکلهای TCP، UDP، ICMP
- بازیابی و جمعآوری اطلاعات کامپیوتر
- سرقت پسوردها و کلمات حساس
- جمعآوری اطلاعات مربوط به پروسهها و حافظه در حال اجرا
- قابلیت بازیابی اطلاعاتی که از سیستم پاک شدهاند.
- کنترل و مشاهده کلیکهای mouse، عکسبرداری از صفحه در حال نمایش در سیستم کاربر و غیره.
۴ - تحلیل بدافزار(مرحله اول)
طراحی رجین نیز هم چون بدافزارهای پیچیدهی قبلی، از جمله flame و stuxnet، ماژولار و چند سطحی است. طراحی ماژولار به طراحان این بدافزارها اجازه میدهد تا به راحتی بتوانند بنا به هدف و قربانی خود حملههای خاص را صورت داده و اطلاعاتی خاص را جمع آوری و سرقت کنند.
این بدافزار در چند مرحله به اجرا در میآید که هر مرحله به نوعی پنهان شده و رمزنگاری شده است. روش غیرمتداولی که در روال اجرایی این بدافزار دیده میشود آغاز اجرای آن در سطح کرنل است.
تحلیل ارایه شده در ادامهی مطلب مربوط به ماژولهای مرحلهی یک اجرای بدافزار است. به طور کلی باید گفت روال اجرایی کلیهی فایلهای دیده شدهی مربوط به این مرحله به صورت کاربردی یکسان بوده و همگی آنها از روالی مشخص و همانند برخوردارند.
در ابتدا، کار با نشاندن آدرسهایی برای مدیریت استثناها آغاز میشود. برای این کار از فراخوانی _SEH_prolog استفاده شده است. در فاصلههای کوتاه از این فراخوانی با رخدادن یک استثنا آدرسهای مربوطه از درایور فراخوانی شده و به این وسیله به تنهی اصلی برنامه وارد خواهیم شد. در قدم اول بخشی از دیتای درایور که رمزشده است با الگوریتم نشان داده شده در گراف شکل ۱ رمزگشایی میشود.
شکل۲: الگوریتم رمزگشایی مربوط به دیتای اولیه
در شکلهای ۳ و ۴ میتوانید نمونهای از دیتای مورد نظر درایور را قبل و بعد از عملیات رمزگشایی مشاهده کنید.
شکل ۳: دیتای اولیه قبل از رمزگشایی
شکل ۴: دیتای اولیه بعد از رمزگشایی
همانطور که در شکلهای بالا مشخص است، بعد از عملیات رمزگشایی میتوان مسیر رجیستری و فایل مورد نظر بدافزار را به راحتی مشاهده کرد.
در مرحلهی بعد بدافزار اقدام به بازکردن دایرکتوری مورد نظر خود کرده و در صورت موفقیتآمیز بودن این کار اطلاعات مربوط به EA آن را از سیستم درخواست میکند. لیست آدرس دایرکتوریهای دیده شده در نمونههای موجود در انتهای این گزارش آمده است.
لازم به توضیح است که EA: Extended Attributes به نوعی تکنولوژی ارایه شده در فرمت فایلهای NTFS اطلاق میشود که هر فایل/ دایرکتوری را قادر میسازد علاوه بر ذخیره سازی دیتا در بخشهای معمول خود، از این بخش نیز برای ذخیره سازی اطلاعات با فرمت دلخواهش بهره ببرد. با استفاده از این نحوهی ذخیره سازی اطلاعات، رجین توانسته است تا درصد بالایی به پنهان سازی ماژولهای مرحلهی بعدش کمک کند. در شکل ۴ بخش مربوط به این فراخوانی را مشاهده میکنید.
شکل ۵: فراخوانی NtQueryInformationFile با کلاس FileEaInformation
بعد از این فراخوانی در صورتی که سایز EA دایرکتوری صفر نباشد (در واقع دایرکتوری دارای اطلاعات EA باشد) فراخوانی به NtQueryEaFile صورت گرفته و اطلاعات EA ذخیره شده در دایرکتوری خوانده میشود. لازم به توضیح است که اطلاعات در این بخش به صورت لیستوار نگه داری میشود. در واقع میتوان اطلاعات با حجم بزرگ را به بخشهای کوچکتر تقسیم کرده و در این قالب در فایل/دایرکتوری نگهداری کرد. اما در این بدافزار اطلاعات ذخیره شده در EA به صورت یکپارچه و در یک سلول از لیست EAها قرار میگیرد. در ادامه فرمت اطلاعات ذخیره شده در هر سلول از EA آمده است:
typedef struct _ FILE_FULL_EA_INFORMATION
{
۰x0:ULONG NextEntryOffset;
۰x4:BYTE Flags;
۰x5:BYTE EaNameLength;
۰x6:USHORT EaValueLength;
۰x8:CHAR EaName[1];
FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION;
}
از آنجایی که ممکن است دایرکتوری دارای سلولهای دیگری از EA نیز باشد که به کد بدافزار نامربوط است، لازم است به نوعی EA مربوط به رجین از سایرین تمیز داده شود. این کار به وسیلهی نام خاص این EA صورت میگیرد. نام خاص سلول مورد نظر بدافزار، EaName، “_”، کاراکتر آندرلاین: ۰x5F، و طول آن، EaNameLength، ۱ میباشد. بدافزار در صورت یافتن این سلول خاص، محتوای دیتای آن را خوانده و نگه میدارد. فرمت این دیتا به دلخواه بدافزار تعیین شده است و به گونهای است که چهار بایت دوم آن حاوی سایز کل محتوا میباشد. روال جستجوی سلول خاص بدافزار را در شکل ۵ میبینید.
شکل ۶: پیوستن اطلاعات خوانده شده از EA فایل
توجه داشته باشید که در پارامتر EaName علاوهبر EaName، دیتای ذخیره شده در EA دایرکتوری نیز وجود دارد. از آنجایی که در سلول خاص بدافزار سایز نام یک کاراکتر اسکی در نظر گرفته شده است، بنابراین دیتای ذخیره شده به فاصلهی دو بایت بعد از EaName، یعنی در اندیس ۰xA قرار خواهد داشت.
در قدم بعدی نوبت به رمزگشایی اطلاعات خوانده شده از 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
هش مربوط به فایلهای دیده شده در مرحلهی اول در لیست زیر آمده است.
۰۱c2f321b6bfdb9473c079b0797567ba
۰۶۶۶۵b96e293b23acc80451abb413e50
۱۸۷۰۴۴۵۹۶bc1328efa0ed636d8aa4a5c
۱c024e599ac055312a4ab75b3950040a
۲۶۲۹۷dc3cd0b688de3b846983c5385e5
۲c8b9d2885543d7ade3cae98225e263b
۴۷d0e8f9d7a6429920329207a32ecc2e
۴b6b86c7fec1c574706cecedf44abded
۶۶۶۲c390b2bbbd291ec7987388fc75d7
۷۴۴c07e886497f7b68f6f7fe57b7ab54
b269894f434657db2b15949641a67532
b29ca4f22ae7b7b25f79c1d4a421139d
b505d65721bb2453d5039a389113b566
ba7bb65634ce1e30c1e5415be3d1db1d
bfbe8c3ee78750c3a520480700e440f8
d240f06e98c8d3e647cbf4d442d79475
db405ad775ac887a337b02ea8b07fddc
ffb0b9b5b610191051a7bdf0806e1e47
فلوچارت کلی مرحله ۱ به شکل زیر است
همانگونه که گفته شد مرحله اول کار خود را با ذخیره سازی در EA آغاز میکند که در زیر کدهای آن مشاهده میشود
و اگر قادر به انجام آن نبود سراغ رجیستری ها میرود.
۵ - ویژگیهای بدافزار رجین:
سیستمهای تحت تاثیر
Microsoft Windows NT, 2000, XP, Vista, and 7
MD5 ها:
مرحله ۱، ۳۲ بیتی:
۰۶۶۶۵b96e293b23acc80451abb413e50
۱۸۷۰۴۴۵۹۶bc1328efa0ed636d8aa4a5c
۱c024e599ac055312a4ab75b3950040a
۲c8b9d2885543d7ade3cae98225e263b
۴b6b86c7fec1c574706cecedf44abded
۶۶۶۲c390b2bbbd291ec7987388fc75d7
b269894f434657db2b15949641a67532
b29ca4f22ae7b7b25f79c1d4a421139d
b505d65721bb2453d5039a389113b566
۲۶۲۹۷dc3cd0b688de3b846983c5385e5
ba7bb65634ce1e30c1e5415be3d1db1d
bfbe8c3ee78750c3a520480700e440f8
d240f06e98c8d3e647cbf4d442d79475
ffb0b9b5b610191051a7bdf0806e1e47
مرحله ۱، ۶۴ بیتی:
bddf5afbea2d0eed77f2ad4e9a4f044d
c053a0a3f1edcbbfc9b51bc640e808ce
e63422e458afdfe111bd0b87c1e9772c
مرحله ۲، ۳۲ بیتی:
۱۸d4898d82fcb290dfed2a9f70d66833
b9e4f9d32ce59e7c4daf6b237c330e25
مرحله ۲، ۶۴ بیتی:
d446b1ed24dad48311f287f3c65aeb80
مرحله ۳، ۳۲ بیتی:
۸۴۸۶ec3112e322f9f468bdea3005d7b5
da03648948475b2d0e3e2345d7a9bbbb
مرحله ۴، ۳۲ بیتی:
۱e4076caa08e41a5befc52efd74819ea
۶۸۲۹۷fde98e9c0c29cecc0ebf38bde95
۶cf5dc32e1f6959e7354e85101ec219a
۸۸۵dcd517faf9fac655b8da66315462d
a1d727340158ec0af81a845abd3963c1
مرحله ۴، ۶۴ بیتی:
de3547375fbf5f4cb4b14d53f413c503
لازم به ذکر است که مراحل ۲، ۳ و ۴ به صورت یک فایل واقعی روی دیسک سیستم آلودهشده ظاهر نمیشوند و این هَشها صرفاَ برای استفاده در آزمایشگاههای تحقیقاتی میباشند.
شاخههای رجیستری که برای ذخیره بدافزار در مراحل ۲ و ۳ مورد استفاده قرار میگیرند.
\REGISTRY\Machine\System\CurrentControlSet\Control\RestoreList
\REGISTRY\Machine\System\CurrentControlSet\Control\Class\{39399744-44FC-AD65-474B-E4DDF-8C7FB97}
\REGISTRY\Machine\System\CurrentControlSet\Control\Class\{3F90B1B4-58E2-251E-6FFE-4D38C5631A04}
\REGISTRY\Machine\System\CurrentControlSet\Control\Class\{4F20E605-9452-4787-B793-D0204917CA58}
\REGISTRY\Machine\System\CurrentControlSet\Control\Class\{9B9A8ADB-8864-4BC4-8AD5-B17DFDBB9F58}
۶ - مقابله با این بدافزار
راهکارهای ارائه شده برای مقابله با این بدافزار تاکنون
کاربران و ادمینهای شبکه برای مقابله با این بدافزار باید این کارها را انجام دهند:
- پیادهسازی و استفاده از نرمافزارهای آنتیویروس و بهروز رسانی پیدرپی این نرمافزارها
- بهروز رسانی سیستمعامل و تمامی نرمافزارهای مورد استفاده
- غیرفعالسازی Autorun برای CD/USB
- احتیاط در هنگام به اشتراکگذاری فایلها
سیمانتِک و نورتون این بدافزار را تحت عنوان Backdoor.Regin میشناسند. همچنین سیمانتِک پیشنهاد کرده است که برای از بین بردن ریسک از نرمافزار removal این شرکت به نام Norton Power Eraser (NPE) استفاده شود.
C&C IPs:
آدرسهای زیر باید در تنظیمات فایروال مسدود شوند چرا که با توجه به گزارشهایی که تاکنون دریافت شده است، سیستمهای قربانی اطلاعات خود را به این سرورها ارسال مینمودهاند.
۶۱.۶۷.۱۱۴.۷۳ Taiwan, Province Of China Taichung Chwbn
۲۰۲.۷۱.۱۴۴.۱۱۳ India Chetput Chennai Network Operations (team-m.co)
۲۰۳.۱۹۹.۸۹.۸۰ India Thane Internet Service Provider
۱۹۴.۱۸۳.۲۳۷.۱۴۵ Belgium Brussels Perceval S.a