یکی از مؤسسههای فعال در حوزه حملات سایبری، به شواهد جدیدی از یک حمله دست یافته است. به گزارش این مؤسسه، این حمله توسط یک گروه هکری ایرانی با عنوان “APT34” (که به آن OilRig هم گفته میشود) بر ضد یک هدف لبنانی اجرا شده است. در این حمله از در پشتی جدید با نام “SideTwist” استفاده شده است.
پس از افشای اطلاعات مربوط به ابزارهای مورد استفاده گروه APT34 در سال 1398، آنها در حال تغییر و به روزرسانی ابزارهای خود برای جلوگیری از تشخیص و ایجاد نسخههای جدیدی از بدافزارها هستند. هدف از ایجاد این بدافزارها نفوذ و ماندگاری بیشتر در سیستم قربانی است.
APT34 از زمان شروع حمله DNSpionage در سال 1398، با روشهایی مثل انتشار اسناد مربوط به فرصتهای شغلی که به صورت مستقیم از طریق شبکه اجتماعی لینکدین ارسال میشدند، اشخاص و نهادهای مختلف را هدف قرار میدادند. این حمله که از طریق لینکدین انجام می شد، در طول سال 1399 با عملیات HardPass ادامه یافت.
در حمله اخیر که فعالیت آن از اواخر سال 1399 شروع شده است، یک سند از لبنان (یکی از اهداف همیشگی ATP34) که در آن در خصوص فرصتهای شغلی توضیحاتی داده شده بود، به VirusTotal[1] ارسال گردید.
در این مطلب از فراست، به بررسی جدیدترین زنجیره آلودگی گروه هکری ایرانی APT34 پرداخته و این بدافزار را به طور کامل تحلیل میکنیم.
آلودگی اولیه
تحلیل اولیه ما با بررسی یک سند آلوده مایکروسافت Word به نام “Job-Details.doc” آغاز میشود. در شکل زیر، یک بخش از این فایل را مشاهده میکنید که با استفاده از ماکروها[2] به بدافزار آلوده شده است.
مجرمان سایبری تلاش کردهاند تا این فایل آلوده، در ظاهر سالم و بی خطر به نظر برسد. هنگامی که این فایل در سیستم قربانی اجرا شود، ماکروها به صورت خودکار در سیستم وی اجرا شده و اقدام به آلودگی رایانه کاربر می کنند.
عملکرد ماکروهای مخرب با [3]تونل زنی DNS
با وجود آنکه ماکروهای مخرب مورد استفاده در حملات APT34 به مرور زمان تغییر یافته و کاملتر شدهاند اما همچنان سبک و عملکرد منحصر به فرد این گروه در تمام بدافزارهایش حفظ شده است. از جمله اینکه:
- بررسی متصل بودن موس به سیستم (تکنیک ضد سندباکسینگ[4])
- جمع آوری اولیه اطلاعات از دستگاه مورد هدف و ارسال آنها به سرورهای فرماندهی و کنترل
- انتقال فایلهای اجرایی بر روی سیستم قربانی، با پسوند doc (که به exe تغییر میکنند.)
- زمانبندی یک کار (Task) در سیستم عامل ویندوز که فایل اجرایی را هر X دقیقه یک بار اجرا میکند.
در نمودار فراخوانی توابع ماکروی بالا مشاهده میشود که تعدادی فراخوانی از توابع Document_Open و Document_Close به تابع بیرونی DnsQuery صورت گرفته است. یکی از ویژگیهای بارز APT34 اجرای حمله تونل زنی DNS با استفاده از ابزارهای مختلف است. در حمله اخیری که توسط این گروه صورت گرفته نیز این کار حتی در مرحله اولیه مربوط به ماکروها انجام شده است.
پس از اجرای ماکروها از درخواستهای DNS برای ارسال اطلاعات به مهاجم، اطلاعرسانی درباره مرحله فعلی اجرا و ارسال یکسری اطلاعات هویتی قربانی استفاده میشود.
در این مرحله، مهاجم از سرویس تونل زنی DNS در سایت requestbin.net که امکان دسترسی عموم به آن وجود دارد استفاده کرده تا بتواند اطلاعات لازم را در رابطه با میزان پیشرفت آلودگی سیستم کسب کند. به این ترتیب اگر این سند در یک محیط با قابلیت سندباکسینگ باز شود، اطلاعات زیرساخت مورد استفاده مهاجم افشا نخواهد شد.
در عکس زیر، نمایش داده شده که پس از اجرای ماکروهای مخرب بر روی سیستم قربانی با مشخصات زیر، چه اطلاعاتی در سایت requesbin.net برای مهاجم قابل مشاهده است:
- User name: John
- Hostname: John-pc
دادههای کدگشایی شده که با استفاده از اطلاعات به دست آمده از رایانه هدف استخراج میشوند، به صورت زیر هستند:
پی لود مرحله دوم: در پشتی SideTwist
با وجود اینکه نوع در پشتی مورد استفاده در این حمله تاکنون در هیچ یک از عملیات های گروه APT34 مشاهده نشده است اما عملکردی ساده و مشابه با سایر درهای پشتی مورد استفاده این گروه یعنی DNSpionage ،TONEDEAF و TONEDEAF2.0 دارد.
عملکرد این در پشتی شامل دانلود، آپلود و اجرای فرمانهای پوسته است.
ماندگاری[5]
در این زنجیره آلودگی، ماندگاری بدافزار با استفاده از ماکروهای مرحله اول حاصل میشود و پی لود مرحله دوم به تنهایی فاقد سازوکارهای مربوط به ماندگاری است.
پس در واقع، ماندگاری در مرحله اول و زمانی که زمانبندی کار ثبت میشود، ایجاد میگردد. پی لود مرحله دو به طور میانگین یک فعالیت زمانبندی شده با عنوان “SystemFailureReporter” را هر 5 دقیقه یک بار اجرا می کند:
این در پشتی به سازوکار ماندگاری وابستگی زیادی دارد. چون هر زمان که راهاندازی شود فقط یک فرمان که توسط سرور فرماندهی و کنترل تعیین میشود را اجرا کرده و سپس بلافاصله غیرفعال میشود تا زمانی که دوباره بر اساس زمانبندی اجرا شود.
مقداردهی اولیه
کار در پشتی، با جمعآوری اطلاعات درباره سیستم قربانی و محاسبه شناسه 4 بایتی او بر اساس نام کاربری، نام رایانه و نام دامنه محیط هدف انجام میشود. در ارتباطات بعدی که بدافزار با مرکز فرماندهی و کنترل خود دارد از این شناسه استفاده میکند.
سپس بدافزار بررسی میکند که فایل update.xml که قرار بود در مرحله اول آلودگی ایجاد شود آیا واقعاً وجود دارد یا خیر؛ در غیر این صورت اجرای آن خاتمه یافته و با استفاده از تابع OutputDebugString پیام زیر را نمایش می دهد:
“Please install visual studio 2017 and try again”
همچنین از آنجا که وظیفه این تابع، نمایش اطلاعات خطایابی (دیباگ) در زمان اجرای فرایند عیب یابی برنامه است، پس این متن برای کاربر معمولی قابل مشاهده نخواهد بود.
ارتباط با مرکز فرماندهی و کنترل
ارتباط این در پشتی با سرور فرماندهی و کنترل (sarmsoftware[.]com) مبتنی بر پروتکل HTTP و بر اساس پورت 443 انجام شده و از پورت 80 نیز به عنوان ذخیره استفاده میشود.
این در پشتی برای ارتباطات خروجی و ورودی با سرورهای فرماندهی و کنترلش از دو روش مختلف استفاده میکند. البته تکنیک رمزنگاری مورد استفاده در هر دو روش مشابه است.
ارتباط درخواست فرمان
در پشتی مورد استفاده در این حمله، با کمک درخواست GET و نشانی زیر با سرور فرماندهی و کنترل ارتباط برقرار میکند:
sarmsoftware[.]com/search/{identifier}
پاسخ این درخواست در سورس کد صفحه زیر که شبیه به سایت Flickr طراحی شده، مخفی شده است:
همچنین پاسخها با کد HTML و در قالب زیر به در پشتی ارسال میشوند:
/*Encrypted_Message_Encoded_with_Base64*/
پس از کدگشایی و رمزگشایی رشته base64، محتوای آن در قالب متن ساده به صورت زیر است:
مفهوم هر کدام از قالبهای رمزنگاری شده به شرح زیر می باشد:
- Command Number یا شماره فرمان، عددی است که برای پیگیری فرمانهای اجرا شده از آن استفاده میشود. اگر این عدد هر مقداری به جز 1- داشته باشد، در پشتی باید به اجرای فرمان بر اساس شناسه فرمان ادامه دهد. در غیر این صورت هم آن را نادیده گرفته و اجرا خاتمه مییابد.
- Command ID یا شناسه فرمان که میتواند یکی از مقادیر زیر را داشته باشد:
- 101 – فرمان پوسته: فرمان پوسته که به آرگومان {Arg1} پیوست شده است، اجرا میشود.
- 102 – فایلی که در مسیر {Arg2} سرور است را دانلود نموده و آن را با نام {Arg1} بر روی سیستم ذخیره میکند.
- 103 – فایل {Arg1} را بر روی سرور بارگذاری میکند.
- 104 – فرمان پوسته (تکراری): فرمان پوسته پیوست شده در آرگومان {Arg1} را اجرا میکند.
ارتباط در رابطه با نتایج اجرای فرمان
پس از اجرای فرمان توسط در پشتی بر روی سیستم قربانی، نتیجه کار به سرور فرماندهی و کنترل و به همان نشانی قبلی ارسال میشود؛ فقط در اینجا به جای دستور GET از دستور POST استفاده میگردد:
sarmsoftware[.]com/search/{identifier}
قالب بدنه POST مثل یک [6]فرمان JSON ساده است که بر اساس شماره فرمان مشخص شده توسط سرور فرماندهی و کنترل و نتیجه اجرا ساخته میشود:
رمزنگاری ارتباطات
مهاجم از الگوریتم مولد اعداد شبه تصادفیِ [7] Mersenne Twister به عنوان پایه و اساس رمزنگاری ارتباطات استفاده میکند.
شیوه عملکرد این روش به این صورت است که 4 بایت اول هر پیام، رمزنگاری شده و برای رمزگشایی سایر بخشهای پیام از عبارت seed که مربوط به Mersenne Twister است، استفاده میشود.
با استفاده از کد پایتون زیر، ارتباطات رمزنگاری شده را میتوان رمزگشایی کرد:
def decode(msg):
bs=base64.b64decode(msg)
seed=int.from_bytes(bs[:4],byteorder=’big’)
rng = mersenne_rng(seed)
k=rng.get_random_number()
key=int.to_bytes(k,length=4,byteorder=’little’)
dec=””.join([chr(bs[i]^key[(i-4)%4]) for i in range(4,len(bs))])
return dec
انتساب
ماکروهای مخرب، در پشتی، روش هدفگیری و فنون مورد استفاده در این حمله همگی با سایر حملات منتسب به گروه APT34 همخوانی دارند.
شباهتهای سند
به جز شباهت تکنیکهای این حمله با عملیاتهای قبلی گروه APT34، در اینجا نیز از اسناد مربوط به فرصتهای شغلی برای تشویق قربانیان به اجرای ماکروهای مخرب استفاده شده است. البته شباهتهای دیگری هم مشاهده شده است. به عنوان مثال همچنان نام متغیر beacher در کدها مشاهده میشود:
علاوه بر این، عملکرد اصلی ماکروها با آنچه که در حملات قبلی گروه APT34 مشاهده شده بود، شباهت زیادی دارد. در ماکروهای مخرب برای گریز از شناسایی، از تابع MouseAvailable استفاده شده و یک کار هم زمانبندی میشود. بنابراین پی لود تعبیه شده در سند، توسط یک فعالیت زمانبندی شده اجرا میگردد.
شباهت در ارتباطات سرور فرماندهی و کنترل
درهای پشتی DNSpionage و TONEDEAF گروه APT34 به بازیابی فرامین از سرورها با جستجوی الگوهای خاص مخفی شده در محتوای HTML یک سایت جعلی، معروف هستند.
در این مورد، مهاجمان از صفحهای شبیه به صفحه سایت معروف Flickr استفاده کردهاند. در حملات قبلی نیز از صفحههایی شبیه به گیتهاب، ویکی پدیا و مایکروسافت استفاده شده بود.
سایر اطلاعات درباره APT34
اطلاعات و اسناد مختلفی توسط محققان بدافزار درباره این حمله در توئیتر منتشر شده است. مثلاً در اسناد منتشر شده مشاهده میشود که از سرویس تونل زنی DNS requestbin.net استفاده شده و در پشتی مبتنی بر دات نت به نام “Karkoff” که از سرورهای تبادل متصل به اینترنت جهت ارتباط با مهاجمان استفاده میکند به عنوان یکی از ابزارهای اصلی این گروه نام برده شده است.
با توجه به اینکه پیادهسازی Karkoff (MD5: ab25014c3d6f77ec5880c8f9728be968) شامل یک سرور مبادله و متعلق به دولت لبنان (mail.army.gov[.]lb) است؛ این موضوع میتواند نشان دهنده آلودگی شبکههای این دولت از مدتها پیش باشد.
نتیجه گیری
شرکت Check Point Sandblast[1] توانسته ضمن شناسایی این حمله جدید، با آن مقابله کرده و مانع از اجرای آن در همان مراحل اولیه حمله شود. اگرچه همانطور که پیشتر نیز اشاره شد این گروه راهکارهای قدیمی و روش عملکرد همیشگی خود را حفظ کرده ولی همواره در حال ایجاد و استفاده از ابزارهای جدید برای به حداقل رساندن امکان شناسایی ابزارهای خود توسط شرکتهای امنیتی است.
[1] این مؤسسه با حملات روز صفر و بدافزارهای ناشناخته مقابله میکند.
[1] یک تکنیک حمله که از پروتکل DNS برای انتقال دادههای رمزنگاری شده استفاده میکند.
[2] -Sandboxing این تکنیک به منظور تأمین امنیت دستگاه، بین برنامههای کاربردی و دیگر نرمافزارهای موجود در گوشی هوشمند یا تبلت، اصطلاحاً یک دیوار مجازی ایجاد میکند. این تکنیک توسط اندروید مورد استفاده قرار میگیرد.
[3] یک وب سایت رایگان برای بررسی فایلها از نظر آلوده بودن به بدافزارها میباشد.
[4] ماکروها تکه کدهای کوچکی هستند که با یک زبان برنامهنویسی که توانایی و امکانات کافی را برای نوشتن یک بدافزار دارد، نوشته میشوند. بدافزارهای ماکرو، آلودهکننده فایلها از جمله فایلهای Word هستند.
[5] Persistance
[6] یک قالب مبتنی بر متن است که امکان تبادل دادهها را بین برنامههای مختلف تسهیل میکند.
[7] اعداد شبه تصادفی در رمزنگاری اطلاعات رایانهای کاربرد زیادی دارند.