آزمایشگاههای امنیتی جیدیتا طی سال ۲۰۱۳ متوجه بدافزار یوروبروس شد. پس از آنکه سه وجه جالب را شناسایی کردیم، تصمیم گرفتیم با عمق بیشتری تحقیق کنیم:
استفاده از فایل سیستمهای مجازی
پیچیدگی چارچوب
قابلیتهای پیشرفته شبکه
نام یوروبروس:
این نام ریشه مستقیم از واژه یونانی Ouroboros (Οὐροβόρος) دارد. اوروبوروس نماد مار یا اژدهایی است که دم خود را میبلعد. نام این بدافزار از مجموعهای از متون در فایلدرایورهای مختلف آمده است (Ur0bUr()sGotyOu#).
علاوه بر آن ارجاعات دیگری به مار، اژدهای باستانی در کد بدافزار نیز وجود دارد. به عنوان مثال رشتههای زیر:
inj_snake_Win64.dll
snake_alloc
snake_free
snake_modules_command
یک تصور جالب دیگر هم وجود دارد: هجی دقیق یوروبوروس را میتوان در webcomic با نام Homestuck یافت. در این webcomic ، خواننده یا بازیگر به دو کد نیاز دارد تا اشیای جادویی مجازی دریافت کند( که جوجو نامیده می شود). این دو کد در حقیقت uROBuROS وUrobUro هستند.
میتوان دریافت که ترتیب حروف بزرگ و کوچک با زنجیره ای مطابقت دارد که در کد بدافزار یافت می شود.
چارچوب بدافزار جاسوسی:
چارچوب بدافزار جاسوسی در اصل از دو فایل تشکیل شده است:
*یک درایور (سیستم فایل)
*فایل سیستم مجازی (فایل .dat.)
ما متوجه شده ایم که چند نام برای درایور وجود دارد. مثلاUltra3.sys, msw32.sys, vstor32.sys که در درایورهای ۳۲ و ۶۴ بیتی استفاده شدند. ممکن است درایورهای دوقلو به طور همزمان در یک سیستم نصب شود. فایلِ حاوی فایلِ سیستم مجازی یک نام تصادفی دارد که به دنبال آن ادامه .dat. آمده است.
علاوه بر این موارد، فایل در همان دایرکتوری درایور قرار دارد. دایرکتوری نصب نیز تغییر میکند اما توانستیم الگوهای زیر را ردیابی کنیم:
%SYSTEMROOT%\$Ntuninstall[Random_ID]$
تداوم بدافزار به دلیل خلق سرویسی است که به طور خودکار طی هر بار روشنشدن سیستم اجرا می شود. این سرویس در نشانی زیر قرار دارد:
HKLM\System\CurrentControlSet\Services\Ultra3
بنابراین در درایور باید این اعمال را انجام داد:
فایل سیستمهای مجازی را رمزگشایی کرد
چند قلاب برای مخفیکردن فعالیتهای آن خلق کرد
تزریق لایبرریها[۱] به یوزرلندها[۲]
ایجاد و مدیریت کانالهای ارتباطی
مخفیکردن فعالیتهای منفی با کمک قلابها[۳]:
به طور معمول یک بدافزار جاسوسی سعی میکند فعالیتهایش را از کاربر مخفی کند و یوربوروس هم همین کار را میکند. درایور از وصله های درون خطی برای انجام عملیات قلاب کردن استفاده میکند که راهی عادی برای انجام این وظیفه است. وصلهبندی خطی به وسیله تعدیل آغاز عملیات سیستم هدفگیری شده انجام می شود تا جریان اجرا را به سمت یک کد تخصصی اجرا کند ( قبل از آنکه به فعالیت اصلی برگردد).
در نمونه کنونی وصلهبندی خطی، دستورالعمل اختلال جدیدی(int 0xc3) را در آغاز عملیات قلابکردن خلق میکند. با انجام این کار بدافزار ، قابلیت بد دیگری به قابلیتهای مشروعش اضافه می کند.
قابلیتهای اصلی قلاب کردن عبارتند از:
ZwCreateKey() and ZwSaveKey()
هدف اصلی آن مخفی کردن کلیدهای متداوم در بخش registry است:
ZwReadFile()
هدف آن مخفی کردن درایور و فایل سیستمهای فایل است:
ZwQuerySystemInformation()
هدف آن مخفی کردن دسته های بدافزار جاسوسی است
ZwTerminateProcess()
هدف آن معدوم کرن کامل بدافزار جاسوسی طی فرایند خاموش شدن سیستم است.
ObOpenObjectByName()
هدف آن مخفی کردن سیستمهای فایل مجازی بدافزار جاسوسی است.
فایل سیستمهای مجازی:
بدافزار جاسوسی یوروبورس از دو فایلسیستم مجازی استفاده میکند. نخست فایل سیستم NTFS و دیگری فایل سیستم FAT .
آنها به طور منطقه ای در ماشین مبتلا ذخیره شده اند. این یعنی کامپیوتر قربانی حاوی فایل کدگذاری شده است و در واقع میزبان یک فایل سیستم دیگر.
مهاجمان از فایلسیستمهای مجازی به عنوان فضای کار استفاده میکنند. آنها میتوانند ابزارهای طرف سوم ، ابزارهای مربوط به فرایند پس از سواستفاده، فایلهای موقت و خروجی دوتایی را ذخیره کنند. میتوان از این طریق به فایلسیستمهای مجازی دستگاه دسترسی یافت:
\Device\RawDisk1 and \Device\RawDisk2 and the volume \\.\Hd1 and \\.\Hd2. .
فایل سیستم NTFS
رمزی که برای فایل سیستم به کار می رود CAST-1281 نامیده می شود. کلید رمزگذاری مربوطه نیز در درایور فایل تعبیه شده است. هنگام بازگشایی رمز، فایل سیستم مجازی یک حجم NTFS کلاسیک است که که به سادگی می توان از طریق APIهای استاندارد سیستم فایل مایکروسافت به آن دسترسی یافت. طی تحلیل چند فایل را در فایل سیستم شناسایی کردیم:
متون bat که از سوی مهاجمان استفاده شده بود
فایلهایlog باخروجی اجرایی فایل bat
ابزارهای طرف سوم:
متن bat حاوی دستوراتی برای ردیابی «فایل سرور دور[۴]»، دستورات وضعیت شبکه برای دسترسی به اطلاعات آن ودستورات اطلاعات سیستم برای دسترسی به چشمانداز کامل از مشخصات سیستم هستند.
فایل صف جالبترین و پیچیده ترین بخشِ یک فایل سیستم مجازی است. هر پیام در صف، حاوی یک ID یگانه، یک نوع، و یک برچسب زمان و محتوا است. محتوا نیز با استفاده از الگوریتم CAST-128کدگذاری شده و کلید مربوط به آن در پیام ذخیره شده است. این پیام ممکن است حاوی اطلاعات زیر باشد:
کلیدی برای بازگشایی رمز پیامهای دیگر
مشخصات
فایل( یا لایبرری که به یوزرلند کاربر تزریق شده است)
….
ابزارهای طرف سوم:
ابزارهای کلاسیک مربوط به «پس از بهرهبرداری[۵]»را پیدا کردیم که بسیاری از عاملان مختلف APT از آن استفاده میکنند. فهرست زیر چشماندازی از ابزارهایی در فایل سیستم مجازی فراهم میکند:
*دامپر برای NTLM(مخلوط رمز عبور کاربر). این اطلاعات را میتوان برای انجام حملات « عبور هش[۶]» به کار برد تا سیستمهای جدیدی در زیربنا را مبتلا کرد.
* ابزارهای جمعآوری اطلاعات برای دستیابی به اطلاعات در سیستم مبتلا
*ابزارهای RAR، برای خلق آرشیوی از اسناد دزدیده شده
*دزد اسناد مایکروسافت آفیس
۰۰۰
لایبرریهای تزریقی[۷]- کنترل فعالیتها
درایور چند لایبرری به یوزرلند تزریق می کند. این لایبرریها به صورت رمزگذاری شده در فایل صف قرار دارند. از این فایلها برای خلق نوعی پروکسی میان یوزرلند مرکزی و یوزرلند کاربر استفاده می شود. درایور، دو لایبرری قابل ذکر دارد:
inj_snake_Win32.dll
اگر سیستم مبتلا ۶۴ بیتی باشد، ویندوز ۳۲ نصب شده جایگزین ویندوز ۶۴ می شود. لایبرری ها بسیار بزرگ هستند ( بیش از ۱۵۰ قابلیت دارند) و حاوی ویژگیهای مختلفی هستند. آنها می توانند فایل صف را از یوزرلند کاربر دستکاری کنند. در ادامه فهرستی از قابلیتهای مخصوص مدیریت صف(qm) آمده است:
qm_enum()
qm_find_first()
qm_free()
qm_move()
qm_pop()
qm_push()
qm_read()
qm_read_hdr()
qm_reset_len()
qm_rm()
qm_rm_list()
qm_set_dates()
qm_set_parem()
qm_write()
لایبرری های قابلیت خلق و مدیریت pcap3 را دارند . هدف این ویژگی تولید تصویری از ترافیک شبکه است.
لایبرری ها همچنین برای بیرون کشیدن اطلاعات از دنیای خارجی به کار می روند. ما چند پروتکل پیدا کردیم که این وظیفه را انجام میدادند. به طور کلی مشخصات مورد نیاز برای هر پروتکل در فایل صف ذخیره میشود و در خود لایبرری نیست.
پروتکل HTTP:
مهاجمان میتوانند وب سایتی را برای خروج داده ها انتخاب کنند. بدافزار جاسوسی از درخواستهای GETو POST و پروکسی های احراز هویت پشتیبانی میکند. URI اصلی http://%s/default.asp است اما قابل تشخیص. فایل رسانه این درخواست از فهرست زیر انتخاب می شود:
• application/vnd.ms-excel
• application/msword
• image/gif
• image/x-bitmap
• image/jpeg
• image/pjpeg
• application/x-shockwave-flash
• or */*
۳
*پروتکل ICMP
مهاجمان می توانند با استفاده از ICMP داده ها را خارج کنند.
*پروتکل SMTP
مهاجمان می توانند فایلها را به وسیله ایمیل خارج کنند.
*پایپ نامگذاریشده[۸]
مهاجمان میتوانند از پایپ با نام مایکروسافت برای برقراری ارتباط با ماشین مبتلا استفاده کنند.
این مورد را میتوان در فصل آتی توضیح داد.
طرح انتخابی برنامه نویسان واقعا کارآمد است: مهاجمان برای اضافه کردن پروتکل و قابلیت جدید نیازی به کامپایل مجدد( یا نصب مجدد) کد بدافزار ندارند. آنها فقط باید لایبرری را انطباق دهند و جایگزین لایبرری در فایل صف کنند. استفاده از لایبرری به مدولاریبودن منجر میشود.
قابلیتهای شبکه
با توجه به پروتکلهای توضیح داده شده، مهاجم حتی می تواند قربانیان را از طریقی غیرمرتبط با اینترنت هدفگیری کند. شکل زیر نشاندهدهنده یک طرح شبکه است که در ۲۰۱۳ کشف شد:
ماشین هدف گرفته شدهA به داده های حساس دسترسی دارد مانند سرور. بدافزار جاسوسی نصب شده روی سیستم یک مایکروسافت باز میکند که پایپ نام دارد و منتظر ارتباط می ماند.
این ماشین را میتوان « جاسوسی شده» نامید. ماشین دوم B یک ماشین دفتری با قابلیت ارتباط به اینترنت است. بدافزار به سیستم A مرتبط می شود و برای این کار از پایپ کمک میگیرد و ماشین را از راه دور فعال میکند. در نهایت ماشینB می تواند تمام دادههای دریافتی از ماشین A را به اینترنت منتقل کند. این ماشین B را میتوان گره پروکسی نامید.
این طرح «همتا به همتا» واقعا کارآمد، قابل قیاس و ماندگار است. در صورتیکه گره پروکسی موجود نباشد یا یافت نشود، مهاجمان می توانند از یک سیستم مبتلای دیگر استفاده کنند. مزیت برای مهاجمان:
حتی اگر متخصص امنیتی متوجه یک گره جاسوسی شده شود، نمی تواند به آسانی گره پروکسی را شناسایی کند زیرا این گره منفعل است. علاوه برآن تحلیلگر به طور خودکار دستور و کنترل URLرا ندارد. در صورت عکسالعمل تصادفی این طرح بسیار پیچیده تر از آن است که درک شود و محدودکردن این بدافزار نیز سخت است.
قربانیان و تخصیص:
به دلیل پیچیدگی بدافزار یوروبوروس تخمین می زنیم این طرح طوری طراحی شده باشد که موسسات دولتی، موسسات تحقیقاتی یا شرکتهایی با اطلاعات حساس و اهداف ردهبالا را در نظر بگیرد.
در این خصوص متوجه برخی اطلاعات منفی شدیم که یوروبوروس را به حملات سایبری علیه آمریکا مرتبط می کرد. این حملات در ۲۰۰۸ انجام شدند ، به خصوص کرمی که به نام Agent.BTZ توجهات را به خود جلب کرد. طی این برنامه در ۲۰۰۸ یک فلش یو اس بی عمدا در پارکینگ وزارت دفاع آمریکا گم شد. این یو اس بی حاوی کدهای ویروسی بود و شبکه ارتش را مبتلا کرد.
آنچه در ادامه می آید سبب می شود آنچه را که طی تحلیل کشف کردیم با حملات ۲۰۰۸ مرتبط باشد:
استفاده از یک کلید در یوروبوروس و Agent.BTZ
۵cvd0fk6c1a0s)
*استفاده از یک فایل همنام در مخزن :: winview.ocx
* درحقیقت یوروبوروس کنترل میکند آیا Agent.BTZ در سیستم مبتلا وجود دارد یا خیر. اگر این ویروس موجود باشد، یوروبوروس روی سیستم نصب نمی شود.
* استفاده از زبان روسی در هر دو کد
در مقاله ای که سال ۲۰۱۱ رویترز منتشر کرد، نویسنده اشاره کرد دولت آمریکا معتقد است که ریشه این حمله در سازمان جاسوسی روسیه شکل گرفته است. ما نمونه هایی از یوروبوروس را با منبعی به زبان روسی یافتیم:
در صورتیکه یکی از خوانندگان این گزارش ابتلا به ویروس را به دلیل یوروبوروس بداند و به کمک نیاز داشته باشد یا بخواهد هر اطلاعاتی در این زمینه ارائه میکند، میتواند با این ایمیل تماس بگیرد:
intelligence@gdata.de
نتیجه گیری:
بدافزار جاسوسی یوروبوروس یکی از پیشرفته ترین انواع خود است که تاکنون بررسی شده است. قدیمی ترین درایور شناسایی شده در ۲۰۱۱ میلادی کامپایل شده است که نشان میدهد حمله حداقل ۳ سال ناشناخته باقی مانده است.
سرمایهگذاری برای ایجاد یک چارچوب کامل مانند یوروبوروس بسیار زیاد است. تیم برنامهنویسی و طرحِ چنین چارچوبی واقعا ماهر هستند. هنوز معتقدیم تیم سازنده آن یک چارچوب کاری بسیار پیچیدهتر ساخته است که همچنان ناشناخته باقی مانده است.
طرح اصلی آن بسیار حرفهای است در حقیقت مهاجمان از درایور و فایل سیستم مجازی در دوفایل جداگانه استفاده میکنند که فقط در کنار هم فعال هستند و به این ترتیب تحلیل بسیار پیچیدهتر می شود. تحلیلگر باید دو جزء را داشته باشد تا بتواند به درستی چارچوب را تحلیل کند.
درایور حاوی تمام قابلیتهای لازم و فایل سیستم را به تنهایی نمی توان رمزگشایی کرد.
طرح شبکه بسیار کارآمد است و به سختی میتوان گره های منفعل را کنترل کرد زیرا فرد نمی تواند رابطه میان ماشینهای مختلف مبتلا را به سرعت شناسایی کند.
این نوع نرمافزار دزدی داده بسیار گرانتر از آن است که به عنوان نرم افزار جاسوسی استفاده شود. تصور میکنیم مهاجمان چارچوب یوروبوروس را برای اهداف خاص و حیاتی استفاده میکنند. به همین دلیل است که بدافزار سالها پس از ابتلا کشف شد.
علاوه بر آن تصور میکنیم این چارچوب برای انجام خرابکاریهای سایبری در دولتها و شرکتهای رده بالا ساخته شده اما به دلیل مدولاربودنش، به راحتی میتوان ویژگیهای جدیدی برای آن تعریف کرد و تا زمانیکه ناشناخته بماند حملات بیشتری را با آن رخ میدهد.
اشارات قدرتمندی وجود دارد که نشان میدهد گروه پشت [صحنه] یوروبوروس همان گروه پشت[صحنه] Agent.BTZ, است که بخشی از حملات به سازمان جاسوسی آمریکا در پایگاههای نظامی آمریکا (۲۰۰۸ میلادی) را انجام داد.
اشارات قابل ذکر عبارتند از استفاده از کلیدهای رمزگذاری یکسان و وجود زبان روسی در هر دو.
اشارات فنی:
MD5: 320F4E6EE421C1616BD058E73CFEA282
Filesize: 210944
For further information contact intelligence@gdata.de[۱]-libraries
[۲] – Users land
[۳] – the hooks
[۴] – remote file server
[۵] – post-exploitation
[۶] – pass the hash
[۷] -Injected libraries
[۸] -Named pipe