1 بدافزار PlugX
تیم تحقیقاتی و امنیتی Sekoia با انتشار گزارشی، از انتشار یک کرم رایانهای بسیار خطرناک با نام PlugX خبر داد. بدافزار PlugX نوعی Post-Exploitation RAT میباشد که پس از نفوذ به سیستم قربانی میتواند اعمال مخرب خود را انجام دهد. این کرم از طریق حافظههای USB انتشار یافته و ایران در لیست آلودهترین کشورها به این بدافزار میباشد. در ادامه برخی از نکات اولیه شناسایی شده درباره PlugX ذکر شده است:
• این بدافزار حدودا 4 سال قبل به تعداد زیادی دستگاه در سراسر دنیا حمله کرد و تاکنون حدود 90 هزار آدرس IP منحصر به فرد همچنان آلوده میباشند.
• در این بدافزار امکان ارسال دستور برای پاکسازی ایستگاههای کاری آلوده وجود دارد.
• در سال 2023 یک سرور C2 مربوط به این بدافزار با استفاده از تکنیک Sinkhole شناسایی شده است.
در ماه مارس سال 2023 میلادی شرکت امنیت سایبری Sophos گزارش داد: همه نمونههای PlugX با نشانی 45.142.166.112 (که توسط شرکت GreenCloud میزبانی میشود) ارتباط برقرار میکنند. لذا در ماه سپتامبر همان سال، شرکت امنیت سایبری Sekoia پس از درخواست از GreenCloud مالکیت این نشانی IP را به دست آورده و با راهاندازی یک کارگزار وب ساده تلاش کرد نقش کارگزار فرماندهی و کنترل (C&C) PlugX را ایفا کند. بررسیهای صورت گرفته توسط این شرکت نشان میدهد که روزانه بین 90 تا 100 هزار میزبان آلوده با نشانی IP یکتا از بیش از 170 کشور درخواستهایی را به این کارگزار وب ارسال میکنند. همانطور که در شکل زیر مشاهده میشود، در میان این کشورها، 15 کشور شامل نیجریه، هند، چین، ایران، اندونزی، بریتانیا، عراق و ایالات متحده آمریکا بیش از 80 درصد کل آلودگیها را به خود اختصاص دادهاند و درصد آلودگی میزبانها به تفکیک هر کشور در سوم ماه آوریل سال 2024 میلادی نمایش داده شده است.
میزان آلودگی به بدافزار PlugX در دنیا
1-1 تاریخچه بدافزار
• براساس اطلاعات منتشر شده توسط Trend-Micro، بدافزار PlugX از سال 2008 وجود داشته است.
• اولین مقالات و تحقیقات منتشر شده از بدافزار PlugX به سال 2012 برمیگردد.
• بدافزار PlugX از ابتدای شناسایی اولیه تاکنون بهروزرسانیهای بسیاری داشته و از بین رفتن آن دور از انتظار است.
• بدافزار PlugX از نسخه اصلی خودش تاکنون، عمدتأ دولتها و سازمانهای سیاسی را مورد هدف قرار داده و در مواردی به بخشهای خصوصی نفوذ کرده است.
• در سال 2016 یک آژانس گردشگری در ژاپن، نشت اطلاعات 7.93 میلیونی خود را تایید و سپس توسط Trelix عامل اصلی حمله، بدافزار PlugX شناسایی شد.
1-2 اهداف PlugX
کرم PlugX اولین بار در سال 2008 در سیستم تشخیص نفوذ چندین اپراتور مشاهده شد. به دلیل اینکه از سال 2018 به بعد تعداد نمونههای مشابهی از این بدافزار با قابلیتهای مختلف و متعدد کشف شدهاند، به نظر میرسد که کد منبع آن منتشر شده و توسط سودجویان در حال بهرهبرداری میباشد. آخرین نمونه بدافزاری کشف شده از PlugX سعی دارد با استفاده از فلشهای آلوده به دستگاهها نفوذ کند. دیگر اهداف اصلی PlugX عبارتند از:
• دور زدن Airgapها
• آلودهسازی شبکهها از راه دور (از طریق اینترنت) و سرقت دادهها
• اجرا و فراخوانی یک فایل DLL آلوده در پسزمینه
• ثبت کلید
• عکسبرداری از صفحه نمایش قربانی
• مدیریت پردازهها در ماشین قربانی
• راهاندازی مجدد ماشین قربانی
• کنترل از راه دور صفحه کلید
• انتقال اسناد PDF و Word از ماشین قربانی به پوشههای پنهان در دستگاه (درایو) USB
2 تحلیل نمونه بدافزار
براساس اطلاعات منتشر شده، نسخههای زیادی در طول چند سال اخیر تاکنون از بدافزار PlugX منتشر شده است و هریک با عملکرد و رفتار خاصی ظاهر شدهاند. مطابق با جدول زیر میتوان اطلاعات مربوط به IoCهای کشف شده از آخرین نسخه بدافزار را مشاهده نمود.
IoCهای بدافزار
2-1 تحلیل ایستا
تحلیل ایستای بدافزار PlugX با استفاده از تارنمای VirusTotal مطابق با شکل زیر قابل مشاهده میباشد. تقریبا تمامی موتورهای ضد ویروس، این فایل را مخرب شناسایی کردند.
تحلیل ایستای بدافزار با استفاده از VirusTotal
در جدول زیر نیز، اطلاعات اولیه بدافزار درج شده است:
اطلاعات اولیه بدافزار
بخشی از سورس کُد فایل اجرایی بدافزار PlugX توسط ابزارهای موجود استخراج شده است که در ادامه به بررسی قسمتهای مشکوک آن پرداخته خواهد شد. در حالت کلی تمامی فایلهای اجرایی در سیستمعامل ویندوز اجازه دارند از برخی کتابخانهها که بصورت فایل DLL وجود دارند، استفاده کنند. اگر برنامهای از کتابخانههای سطح پایین سیستمعامل استفاده کند، میتواند پتانسیل رفتار مشکوک یا فعالیت مخرب را داشته باشد. مطابق با شکل زیر، پس از دیکامپایل کردن فایل اجرایی بدافزار PlugX تعدادی DLL که دسترسیهای زیادی به فایل اجرایی میدهند نیز کشف شده است.
فایلهای DLL که دسترسی زیادی به بدافزار میدهند
مطابق با شکل زیر، دو متغیر محلی در بدنه تابع entry وجود دارد که مشخص نیست چه کاری قرار است انجام دهند.
متغیر با کاربرد نامشخص در بدنه کُد
همچنین در بخش اصلی کُد، همواره یک حلقه در حال اجرا است که در بین آن یک Sleep پنج ثانیهای وجود دارد. به نظر میرسد این فرایند جهت بررسی وجود حافظه USB جدید برای آلودهسازی آن باشد.
حلقه مشکوک همراه با Sleep
در ادامه کُد منبع بدافزار، تابعی وجود دارد که از آن، جهت تغییر مقادیر حافظه استفاده میشود. در حالت کلی این رفتار مشکوک محسوب میشود. زیرا با استفاده از این متدولوژی میتوان فعالیتهای مشکوک در حافظه را مخفی نمود.
تابع ناشناس جهت مخفیسازی فعالیتهای مشکوک
2-2 تحلیل پویا
تحلیل پویای بدافزار بخشی از فرایند اصلی شناسایی عوامل تخریب و علل رخداد میباشد. پس از طی این فرایند میتوان ارتباطات بدافزار و نحوه فعالیت آن را ثبت نمود. فرایند تحلیل پویا برای بدافزار PlugX در محیط ایزوله REMnux صورت گرفته است. براساس اطلاعات بدستآمده از تیم تحقیقاتی Sophos، این بدافزار از تکنیک DLL-Side-Loading جهت مخفیسازی فعالیتهای خود استفاده میکند. در این روش آلودهسازی سیستم قربانی از طریق فایل DLL رخ میدهد و بدافزار سعی میکند یک برنامه بیخطر و سالم را از طریق بارگیری یک DLL آلوده (به جای DLL اصلی) فریب دهد. با بارگیری فایل DLL آلوده، امکان اجرای کُدهای مخرب دلخواه توسط بدافزار به راحتی فراهم میشود. در شکل زیر میتوان یک معماری ساده از عملکرد روش DLL-Side-Loading را مشاهده نمود:
معماری روش DLL-Side-Loading
بدافزار PlugX از اولین نسخه آن تاکنون تغییرات زیادی داشته است. آخرین نسخه آن که در حال بررسی آن هستیم، از طریق فلشمموریها به سیستم افراد نفوذ و همچنین ساختاری مشابه با کرمهای کامپیوتری دارد. به عبارت دیگر خودش را به شکلهای مختلف به سیستمهای دیگر منتقل و به تدریج مانند یک ویروس به سایر سیستمها نیز سرایت میکند. در حالت کلی، PlugX با اتصال یک فلش مموری به سیستم آلوده سه جزء اصلی به حافظه USB اضافه میکند:
• یک Shortcut ویندوزی همنام با اسم حافظه USB (علت اصلی این عمل آن است که کاربر قربانی وقتی نامی مشابه با نام حافظه USB خود میبیند، فریب خورده و بر روی آن کلیک کند)
• سه فایل مجزا برای اجرای کُدهای مخرب:
o یک فایل اجرایی بی خطر (مانند Adobe-Acrobat)
o یک فایل مخرب DLL
o یک قطعه کُد باینری
• یک پوشه مخفی RECYCLER.BIN (بدافزار فایلهای گفته شده را درون این پوشه مخفی نگه میدارد.)
در ادامه تمامی فایلهای اصلی موجود بر روی حافظه USB درون یک پوشه منتقل میشود که نام آن معمولا فاصله غیر شکسته (non-breaking space character) است. برای پنهانسازی نام پوشه از کاراکتر یونیکد (Unicode) 00A0 استفاده میشود. بنابراین در فرایند بررسی بدافزار، چنانچه کُدی مبنی بر ایجاد پوشه با کُد 0xA0 مشاهده شود، بخشی از فعالیت مشکوک بدافزار را افشاء میکند.
پوشه با فاصله غیر شکسته
سپس بدافزار فایلهای مخرب خود را درون مسیر زیر کپی میکند:
%userprofile%/AvastSvcpCP/
هنگامی که کاربر قربانی دستگاه USB را باز میکند، تنها یک فایل میانبر به وی نمایش داده میشود. با کلیک بر روی این فایل میانبر، زنجیره آلودهسازی به بدافزار اجرا میشود. در این زنجیره، ابتدا بدافزار پنجره فعلی را بسته و پنجره جدیدی را باز میکند که محتویات قانونی در پوشه پنهان (پوشه با نام 00A0) را نمایش میدهد. سپس بدافزار، جهت ماندگاری، خود را به داخل میزبان قربانی منتقل و یک کلید رجیستری جدید در آدرس HKCU[…]\CurrentVersion\Run ایجاد میکند. در نهایت، مجددأ از میزبان قربانی اجرا و هر 30 ثانیه درگاههای USB را بررسی میکند و درصورت اتصال یک دستگاه USB جدید آن را بهطور خودکار آلوده میکند در شکل زیر میتوان ساختار یک حافظه آلوده به PlugX را در مقابل یک حافظه فلش سالم مشاهده نمود.
حافظه سالم در مقابل حافظه آلوده به PlugX
در برخی از نسخههای بدافزار PlugX USB جهت پنهانسازی مسیر فایلهای مخرب هم از کاراکتر یونیکد 00A0 استفاده میشود. در ادامه از یک فایل میانبر روی دستگاه USB که به یک فایل مخرب اشاره میکند، نمایش داده شده است. مطابق با شکل 10 کاراکتر یونیکد 00A0 (فضای خالی) در مسیر فایل مخرب با رنگ زرد مشخص شده است. فایل میانبر در یک ویرایشگر هگز نمایش داده شده است.
مثالی از یک فایل میانبر روی دستگاه USB که به فایل مخرب اشاره میکند
فایل میانبر در یک ویرایشگر هگز
در ادامه این بخش، مراحل آلودهسازی یک دستگاه (درایو) USB توسط بدافزار PlugX USB با جزئیات بیشتر شرح داده میشود:
1) ابتدا پوشه فایلهای مخرب روی دستگاه USB ایجاد میشود:
<usb volume>:\u00A0\u00A0\RECYCLER.BIN\files
برای مثال،
F:\ \ \RECYCLER.BIN\files
2) سپس یک فایل پنهان با نام desktop.ini در هر پوشه ایجاد میشود. این فایل که آیکون (Icon) پوشه را مشخص میکند، شامل دادههای زیر است:
[.ShellClassInfo]
IconResource=%systemroot%\system32\SHELL32.dll,7
سیستمعامل ویندوز از فایل Shell32.dll جهت بازیابی تصاویر آیکونهای فایلها، پوشهها و میانبرها استفاده میکند. این فایل حاوی فهرست آیکونها و یک شماره منحصربهفرد برای هر آیکون است. در مثال فوق، از آیکون درایو و عدد 7 استفاده شده است که در شکل زیر نمایش داده شده است.
نمایش آیکون درایو
استفاده از این آیکون باعث میشود که پوشهها هنگامی که در Windows Explorer ظاهر میشوند، بهصورت درایو نمایش داده شوند.
3) در زیرپوشه RECYLER.BIN از مسیر فایلهای مخرب، فایل پنهان desktop.ini ایجاد میشود. این فایل شامل دادههای زیر میباشد:
[.ShellClassInfo]
CLSID = {645FF040-5081-101B-9F08-00AA002F954E}
استفاده از این CLSID باعث میشود که Windows Explorer جهت نمایش پوشه RECYCLER.BIN از آیکون سطل زباله استفاده کند.
استفاده از آیکون سطل زباله جهت نمایش پوشه RECYCLER.BIN
4) در زیرپوشه files از مسیر فایلهای مخرب، سه فایل با پسوندهای .dat، .dll و .exe ذخیره میشود.
ذخیرهسازی سه فایل با پسوندهای .dat، .dll و .exe در زیرپوشه files از مسیر فایلهای مخرب
5) دستگاه USB آلوده، تنها شامل یک فایل با پسوند .lnk (فایل میانبر) است. سایر فایلها و پوشهها پنهان شدهاند. در شکل زیر، نام فایل میانبر TESTDRIVE میباشد که با نام دستگاه USB مطابقت دارد.
نمایش فایل میانبر در ریشه دستگاه USB آلوده
فایل میانبر مسئول آلودهکردن میزبان قربانی با هربار کلیک بر روی آن است. بهعنوان مثال، فایل میانبر در شکل فوق، شامل دادههای زیر است:
%comspec% /q /c " \ \RECYCLER.BIN\files\x32dbg.exe"
هنگامی که کاربر روی فایل میانبر کلیک میکند، برنامه x32dbg.exe، دستگاه قربانی را آلوده کرده و فایلها و پوشههای مجاز پنهانشده در دستگاه USB آلوده را به کاربر نمایش میدهد که منجر خواهد شد وی به اشتباه تصور کند همهچیز عادی است.
در شکل زیر میتوان لیست کتابخانههای ویندوزی که از این فایل بدافزار جهت پیادهسازی اعمال مخرب سوءاستفاده میکند را مشاهده نمود.
لیست کتابخانههای فراخوانی شده
در ادامه میتوان لیستی از موارد مشکوک در بدافزار را مشاهده نمود.
موارد مشکوک در بدافزار
همچنین در جدول زیر، توضیحات کاملتری از دستهبندی فعالیتهای مشکوک بدافزار ارائه شده است:
دستهبندی فعالیتهای مشکوک بدافزار
براساس اطلاعات بدست آمده، ارتباط بدافزار با یک سرور C2 کاملا مشهود است. به دلیل اینکه بسیاری از دسترسیهای مربوط به شبکه اینترنت از طریق بدافزار میسر شده و میتواند درخواستهای HTTP را ارسال/دریافت نماید. مطابق با شکل زیر، بیشترین سهم دسترسیها مربوط به Network، Execution و Security میباشد.
توزیع رفتارهای مشکوک بدافزار
روشهای تشخیص و شناسایی بدافزار PlugX
در این بخش از گزارش به بررسی روشهای تشخیص بدافزار PlugX خواهیم پرداخت. اطلاع از این روشها به مدیران فناوری اطلاعات، کارشناسان امنیت، کارشناسان فارنزیک و تحلیلگران بدافزار کمک خواهد کرد تا قبل از وقوع رخداد، پیشگیریهای لازم را انجام داده و یا در صورت وقوع رخداد بتوانند از آسیبهای احتمالی بیشتر جلوگیری نمایند. تشخیص بدافزار PlugX به دلیل وجود نسخههای مختلف، فعالیتهای متنوع، تکنیکهای ماندگاری و مخفیسازی خود در برابر سپرهای امنیتی، بسیار چالش برانگیز است. با این حال روشهایی برای شناسایی آن وجود دارد:
1. تجزیه و تحلیل رفتار: نظارت بر فعالیتهای غیرمعمول مانند اتصالات غیرمنتظره در شبکه، افزایش مصرف منابع سیستم و تغییرات غیرعادی در فایلسیستم
2. ارتباطات شبکه: در حالت کلی بدافزار PlugX سعی میکند رفتارهای مختلف و عجیبی را بر روی سیستم قربانی پیادهسازی کند و این کار تنها از طریق اتصال به یک سرور C2 امکان پذیر است. بنابراین شنود و مانیتورینگ ترافیک شبکه امری بسیار مهم در شناسایی بدافزار محسوب میشود.
3. صحت فایلها: بررسی یکپارچگی و صحت فایلهای موجود در سیستم میتواند تا حد زیادی به شناسایی بدافزار کمک کند. زیرا بدافزار با ایجاد تغییرات در فایلهای DLL و جایگزینی DLLهای آلوده با سالم، سعی بر مخفی ماندن دارد.
4. تشخیص با EDR: بهترین راه حل جهت شناسایی بدافزار استفاده از EDR میباشد. در حالت کلی EDR با تحلیل رفتار بدافزار میتواند IoCهای بدافزار را به راحتی کشف کند.
5. استفاده از Multi-AV: استفاده از ابزارهای Multi-AV میتواند کمک بسیار بزرگی به جلوگیری از آلوده شدن سیستمها در سازمان کند.
6. تحلیل حافظه: استفاده از ابزارهایی که رفتار حافظه را تحلیل میکنند میتواند کمک بزرگی به تشخیص بدافزار و رفتارهای مشکوک در سیستم کند.
7. تحلیل رجیستری ویندوز: با بررسی کلیدهای رجیستری ویندوز، دسترسیهایی که به آن وجود دارد و تغییرات اعمال شده در رجیستری به راحتی میتوان آلودگی به بدافزار را تشخیص داد. بعنوان مثال بدافزار PlugX با ایجاد یک کلید در رجیستری ویندوز سعی دارد دسترسی خود را با روشن شدن مجدد سیستم حفظ نماید. بنابراین استفاده از ابزارهای تحلیلگر رجیستری میتواند به راحتی بدافزار را شناسایی و رفتار مشکوک را اطلاع دهد.
8. نظارت بر فعالیتهای کاربر: به دلیل اینکه بدافزار به یک سرور C2 متصل است و اغلب فعالیتها از راه دور انجام میشوند، بهتر است که نظارت بیشتری بر کاربران سیستم صورت پذیرد.
3-1 قوانین YARA
در ادامه جهت شناسایی بدافزار، میتوان از قوانین نوشته شده به زبان YARA استفاده نمود:
rule apt_MustangPanda_PlugXWorm_lnk {
meta:
id = "bea0b6e6-0999-431d-8ea2-324aa7497657"
version = "1.0"
malware = "PlugXWorm"
intrusion_set = "MustangPanda"
description = "Detects PlugXWorm Malicious LNK"
source = "Sekoia.io"
classification = "TLP:WHITE"
strings:
$ = "RECYCLER.BIN\\1\\CEFHelper.exe" wide
condition:
uint32be(0) == 0x4c000000
and filesize < 2KB
and all of them
}
import "pe"
rule apt_MustangPanda_MaliciousDLL_random_exports {
meta:
id = "d14ae417-bc6f-40b1-a027-084522fce516"
version = "1.0"
intrusion_set = "MustangPanda"
description = "Detects malicious DLL used by MustangPanda"
source = "Sekoia.io"
classification = "TLP:WHITE"
strings:
$trait = { 66 89 55 FC }
condition:
pe.is_dll() and filesize < 100KB and
for any e in pe.export_details: (
$trait in (e.offset..e.offset+50)
and e.name matches /^[a-z]{10,}$/
)
and not pe.is_signed
}
توصیههای امنیتی
در بخش قبل، جهت حفظ داراییهای سازمان و جلوگیری از وقوع رخدادهای مخرب، مواردی پیشنهاد گردید، در این بخش از گزارش توصیههایی جهت انجام اقدامات پس از وقوع حادثه و پاسخگویی به آن ارائه میگردد:
1. بهروزرسانی منظم سیستمهایعامل، آنتیویروسها و نرمافزارها: اعمال بهروزرسانیهای امنیتی در سازمان یکی از بخشهای اصلی برقراری امنیت میباشد. بنابراین بهتر است تمامی سیستمهایعامل و آنتیویروسها همواره بهروزرسانی شوند.
2. آموزش به کارکنان و نیروی انسانی: در حالت کلی، اگر سازمانی حداکثر تدابیر امنیتی را رعایت کند اما نیروی انسانی مستقر در سازمان به استانداردهای امنیتی آشنا نباشد، سازمان به راحتی قابل نفوذ میباشد. بنابراین آموزش اقدامات امنیتی به نیروی انسانی یکی از اقدامات مهم در این زمینه به شمار میآید.
3. کنترل دسترسیهای ممتاز: محدودسازی دسترسیها در سازمان یکی از مهمترین اقداماتی است که میتوان انجام داد و اجرای این موارد با راهاندازی محصولات مبتنی بر فناوری PAM میسر است.
4. طرح واکنش به حادثه: استفاده از تیمهای پاسخگویی به حوادث امنیتی یکی از سازوکارهایی است که میتواند تا حد زیادی به امنیت فعلی سازمان کمک کند.
نتیجهگیری
در این گزارش یکی از آخرین نسخههای بدافزار PlugX مورد تحلیل و بررسی قرار گرفت. توصیه میشود در صورت نیاز به تحلیل مجدد بدافزار، آن را در یک محیط ایزوله و شبیهسازیشده مانند SandBox، بدون هیچگونه اتصال به محیط بیرون، اجرا و بررسی کرد.
منابع گزارش:
[1]Detection Methods of PlugX Malware | by Lokesh Jindal | Apr, 2024 | Medium
[2]https://blog.sekoia.io/unplugging-plugx-sinkholing-the-plugx-usb-worm-botnet
[3]MalwareBazaar | Download malware samples (abuse.ch)
[4]THREAT ANALYSIS REPORT: PlugX RAT Loader Evolution (cybereason.com)
[5]https://www.bleepingcomputer.com/news/security/researchers-sinkhole-plugx-malware-server-with-25-mi…
[6]Mike Harbison and Jen Miller-Osborn, Chinese PlugX malware hidden in your USB devices?, January 2023. [Online].
[7]Gabor Szappanos, A border-hopping PlugX USB worm takes its act on the road, March 2023. [Online].
[8]Felix Aimé, M. Charles and Sekoia TDR, Unplugging PlugX: Sinkholing the PlugX USB worm botnet, April 2024. [Online].
[9]Bill Toulas, Researchers sinkhole PlugX malware server with 2.5 million unique IPs, April 2024. [Online].
- 69