گزارش تحلیلی از بدافزار یوروبورس
کد مطلب: 7855
تاریخ انتشار : چهارشنبه ۲۵ تير ۱۳۹۳ ساعت ۱۰:۴۴
 
اوروبوروس نماد مار یا اژدهایی است که دم خود را می‌‌بلعد. نام این بدافزار از مجموعه‌ای از متون در فایل‌درایورهای مختلف آمده است (Ur۰bUr()sGotyOu#). علاوه بر آن ارجاعات دیگری به مار، اژدهای باستانی در کد بدافزار نیز وجود دارد
گزارش تحلیلی از بدافزار یوروبورس
 
 
Share/Save/Bookmark
آزمایشگاه‌های امنیتی جی‌دیتا طی سال ۲۰۱۳ متوجه بدافزار یوروبروس شدند. به گزارش افتانا (پایگاه خبری امنیت فناوری اطلاعات)، پس از آنکه سه وجه جالب آن، یعنی استفاده از فایل سیستم های مجازی، پیچیدگی چارچوب،قابلیت های پیشرفته شبکه شناسایی شد، حال با عمق بیشتری به تحلیل این بدافزار پرداخته شده است که در ذیل آمده است؛

نام یوروبروس:
این نام ریشه مستقیم از واژه یونانی Ouroboros (Οὐροβόρος) دارد. اوروبوروس نماد مار یا اژدهایی است که دم خود را می‌‌بلعد. نام این بدافزار از مجموعه‌ای از متون در فایل‌درایورهای مختلف آمده است (Ur۰bUr()sGotyOu#).
علاوه بر آن ارجاعات دیگری به مار، اژدهای باستانی در کد بدافزار نیز وجود دارد. به عنوان مثال رشته‌های زیر:
 inj_snake_Win۳۲.dll
 inj_snake_Win۶۴.dll
 snake_alloc
 snake_free
 snake_modules_command

یک تصور جالب دیگر هم وجود دارد: هجی دقیق یوروبوروس را می‌توان در webcomic با نام Homestuck یافت. در این webcomic ، خواننده یا بازیگر به دو کد نیاز دارد تا اشیای جادویی مجازی دریافت کند( که جوجو نامیده می‌ شود). این دو کد در حقیقت uROBuROS وUrobUro هستند.می‌توان دریافت که ترتیب حروف بزرگ و کوچک با زنجیره ای مطابقت دارد که در کد بدافزار یافت می‌ شود.

چارچوب بدافزار جاسوسی:
چارچوب بدافزار جاسوسی در اصل از دو فایل تشکیل شده است:
*یک درایور (سیستم فایل)
*فایل سیستم مجازی (فایل .dat.)

ما متوجه شده ایم که چند نام برای درایور وجود دارد. مثلاUltra۳.sys, msw۳۲.sys, vstor۳۲.sys که در درایورهای ۳۲ و ۶۴ بیتی استفاده شدند. ممکن است درایورهای دوقلو به طور همزمان در یک سیستم نصب شود. فایلِ حاوی فایلِ سیستم مجازی یک نام تصادفی دارد که به دنبال آن ادامه .dat. آمده است.علاوه بر این موارد، فایل در همان دایرکتوری درایور قرار دارد. دایرکتوری نصب نیز تغییر می‌‌کند اما توانستیم الگوهای زیر را ردیابی کنیم:
 %SYSTEMROOT%\$Ntuninstall[Random_ID]$

تداوم بدافزار به دلیل خلق سرویسی است که به طور خودکار طی هر بار روشن‌شدن سیستم اجرا می‌ شود. این سرویس در نشانی زیر قرار دارد:
 HKLM\System\CurrentControlSet\Services\Ultra۳
بنابراین در درایور باید این اعمال را انجام داد:
فایل سیستمهای مجازی را رمزگشایی کرد
چند قلاب برای مخفی‌کردن فعالیتهای آن خلق کرد
تزریق لایبرری‌هابه یوزرلندها
ایجاد و مدیریت کانالهای ارتباطی

مخفی‌کردن فعالیتهای منفی با کمک قلاب‌ها:
به طور معمول یک بدافزار جاسوسی سعی می‌‌کند فعالیت هایش را از کاربر مخفی کند و یوربوروس هم همین کار را می‌‌کند. درایور از وصله های درون خطی برای انجام عملیات قلاب کردن استفاده می‌‌کند که راهی عادی برای انجام این وظیفه است. وصله‌بندی خطی به وسیله تعدیل آغاز عملیات سیستم هدف‌گیری شده انجام می‌ شود تا جریان اجرا را به سمت یک کد تخصصی اجرا کند ( قبل از آنکه به فعالیت اصلی برگردد).در نمونه کنونی وصله‌بندی خطی، دستورالعمل اختلال جدیدی(int ۰xc۳) را در آغاز عملیات قلاب‌کردن خلق می‌‌کند. با انجام این کار بدافزار، قابلیت بد دیگری به قابلیت‌های مشروعش اضافه می‌ کند.

قابلیت های اصلی قلاب کردن عبارتند از:
 ZwQueryKey(), ZwEnumerateKey(),
ZwCreateKey() and ZwSaveKey()
هدف اصلی آن مخفی کردن کلیدهای متداوم در بخش ثبت است:
in the registry
 ZwReadFile()
هدف آن مخفی کردن درایور و فایل سیستم های فایل است:
 ZwQuerySystemInformation()
هدف آن مخفی کردن دسته های بدافزار جاسوسی است
 ZwTerminateProcess()
هدف آن معدوم کرن کامل بدافزار جاسوسی طی فرایند خاموش شدن سیستم است.
 ObOpenObjectByName()
هدف آن مخفی کردن سیستم های فایل مجازی بدافزار جاسوسی است.

فایل سیستم‌های مجازی:
بدافزار جاسوسی یوروبورس از دو فایل‌سیستم مجازی استفاده می‌‌کند. نخست فایل سیستم NTFS و دیگری فایل سیستم FAT. آن ها به طور منطقه ای در ماشین مبتلا ذخیره شده اند. این یعنی کامپیوتر قربانی حاوی فایل کدگذاری شده است و در واقع میزبان یک فایل سیستم دیگر.

مهاجمان از فایل‌سیستم‌های مجازی به عنوان فضای کار استفاده می‌‌کنند. آن ها می‌توانند ابزارهای طرف سوم ، ابزارهای مربوط به فرایند پس از سواستفاده، فایل های موقت و خروجی دوتایی را ذخیره کنند. می‌توان از این طریق به فایل‌سیستم های مجازی دستگاه دسترسی یافت:
\Device\RawDisk۱ and \Device\RawDisk۲ and the volume \\.\Hd۱ and \\.\Hd۲. .

فایل سیستم NTFS:
رمزی که برای فایل سیستم به کار می‌ رود CAST-۱۲۸۱ نامیده می‌ شود. کلید رمزگذاری مربوطه نیز در درایور فایل تعبیه شده است. هنگام بازگشایی رمز، فایل سیستم مجازی یک حجم NTFS کلاسیک است که که به سادگی می‌ توان از طریق APIهای استاندارد سیستم فایل مایکروسافت به آن دسترسی یافت. طی تحلیل چند فایل را در فایل سیستم شناسایی کردیم:
متون bat که از سوی مهاجمان استفاده شده بود
فایل هایlog باخروجی اجرایی فایل bat

ابزارهای طرف سوم:
متن bat حاوی دستوراتی برای ردیابی «فایل سرور دور»، دستورات وضعیت شبکه برای دسترسی به اطلاعات آن ودستورات اطلاعات سیستم برای دسترسی به چشم‌انداز کامل از مشخصات سیستم هستند.فایل صف جالب‌ترین و پیچیده ترین بخشِ یک فایل سیستم مجازی است. هر پیام در صف، حاوی یک ID یگانه، یک نوع، و یک برچسب زمان و محتوا است. محتوا نیز با استفاده از الگوریتم CAST-۱۲۸کدگذاری شده و کلید مربوط به آن در پیام ذخیره شده است. این پیام ممکن است حاوی اطلاعات زیر باشد:

کلیدی برای بازگشایی رمز پیام‌های دیگر
مشخصات
فایل( یا لایبرری‌ که به یوزرلند کاربر تزریق شده است)

ابزارهای طرف سوم:
ابزارهای کلاسیک مربوط به «پس از بهره‌برداری»را پیدا کردیم که بسیاری از عاملان مختلف APT از آن استفاده می‌‌کنند. فهرست زیر چشم‌اندازی از ابزارهایی در فایل سیستم مجازی فراهم می‌‌کند:
*دامپر برای NTLM(مخلوط رمز عبور کاربر). این اطلاعات را می‌توان برای انجام حملات « عبور هش» به کار برد تا سیستمهای جدیدی در زیربنا را مبتلا کرد.
* ابزارهای جمع‌آوری اطلاعات برای دستیابی به اطلاعات در سیستم مبتلا
*ابزارهای RAR، برای خلق آرشیوی از اسناد دزدیده شده
*دزد اسناد مایکروسافت آفیس

لایبرری‌های تزریقی- کنترل فعالیت‌ها
درایور چند لایبرری به یوزرلند تزریق می‌ کند. این لایبرری‌ها به صورت رمزگذاری شده در فایل صف قرار دارند. از این فایل ها برای خلق نوعی پروکسی میان یوزرلند مرکزی و یوزرلند کاربر استفاده می‌ شود. درایور، دو لایبرری قابل ذکر دارد:
 inj_services_Win۳۲.dll
 inj_snake_Win۳۲.dll
اگر سیستم مبتلا ۶۴ بیتی باشد، ویندوز ۳۲ نصب شده جایگزین ویندوز ۶۴ می‌ شود. لایبرری ها بسیار بزرگ هستند ( بیش از ۱۵۰ قابلیت دارند) و حاوی ویژگی‌های مختلفی هستند. آن ها می‌ توانند فایل صف را از یوزرلند کاربر دستکاری کنند. در ادامه فهرستی از قابلیت‌های مخصوص مدیریت صف(qm) آمده است:
 qm_create()
 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()

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

پروتکل HTTP:
مهاجمان می‌توانند وب سایتی را برای خروج داده ها انتخاب کنند. بدافزار جاسوسی از درخواست‌های GETو POST و پروکسی های احراز هویت پشتیبانی می‌‌کند. URI اصلی http://%s/default.asp است اما قابل تشخیص. فایل رسانه این درخواست از فهرست زیر انتخاب می‌ شود:
• application/vnd.ms-powerpoint
• 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
(۱dM۳uu۴j۷Fw۴sjnbcwlDqet۴m۵Imnxl۱pzxI۶as۸۰cbLnmz۵۴cs۵Ldn۴ri۳do۵L۶gs۹۲۳HL۳۴x۲f
۵cvd۰fk۶c۱a۰s)

*استفاده از یک فایل همنام در مخزن :: winview.ocx
 درحقیقت یوروبوروس کنترل می‌‌کند آیا Agent.BTZ در سیستم مبتلا وجود دارد یا خیر. اگر این ویروس موجود باشد، یوروبوروس روی سیستم نصب نمی‌ شود.

* استفاده از زبان روسی در هر دو کد
در مقاله ای که سال ۲۰۱۱ رویترز منتشر کرد، نویسنده اشاره کرد دولت آمریکا معتقد است که ریشه این حمله در سازمان جاسوسی روسیه شکل گرفته است. ما نمونه هایی از یوروبوروس را با منبعی به زبان روسی یافتیم:

در صورتیکه یکی از خوانندگان این گزارش ابتلا به ویروس را به دلیل یوروبوروس بداند و به کمک نیاز داشته باشد یا بخواهد هر اطلاعاتی در این زمینه ارائه می‌‌کند، می‌تواند با این ایمیل تماس بگیرد:
intelligence@gdata.de

نتیجه گیری:

بدافزار جاسوسی یوروبوروس یکی از پیشرفته ترین انواع خود است که تاکنون بررسی شده است. قدیمی‌ ترین درایور شناسایی شده در ۲۰۱۱ میلادی کامپایل شده است که نشان می‌دهد حمله حداقل ۳ سال ناشناخته باقی مانده است.
سرمایه‌گذاری برای ایجاد یک چارچوب کامل مانند یوروبوروس بسیار زیاد است. تیم برنامه‌نویسی و طرحِ چنین چارچوبی واقعا ماهر هستند. هنوز معتقدیم تیم سازنده آن یک چارچوب کاری بسیار پیچیده‌تر ساخته است که همچنان ناشناخته باقی مانده است.

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

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

علاوه بر آن تصور می‌کنیم این چارچوب برای انجام خرابکاری‌های سایبری در دولت‌ها و شرکت‌های رده بالا ساخته شده اما به دلیل مدولاربودنش، به راحتی می‌توان ویژگی‌های جدیدی برای آن تعریف کرد و تا زمانی‌که ناشناخته بماند حملات بیشتری را با آن رخ می‌دهد.اشارات قدرتمندی وجود دارد که نشان می‌دهد گروه پشت [صحنه] یوروبوروس همان گروه پشت[صحنه] Agent.BTZ, است که بخشی از حملات به سازمان جاسوسی آمریکا در پایگاه های نظامی‌ آمریکا (۲۰۰۸ میلادی) را انجام داد.
اشارات قابل ذکر عبارتند از استفاده از کلیدهای رمزگذاری یکسان و وجود زبان روسی در هر دو.
اشارات فنی:
SHA۲۵۶: BF۱CFC۶۵B۷۸F۵۲۲۲D۳۵DC۳BD۲F۰A۸۷C۹۷۹۸BCE۵A۴۸۳۴۸۶۴۹DD۲۷۱CE۳۹۵۶۵۶۳۴۱
MD۵: ۳۲۰F۴E۶EE۴۲۱C۱۶۱۶BD۰۵۸E۷۳CFEA۲۸۲
Filesize: ۲۱۰۹۴۴
For further information contact intelligence@gdata.de
مرجع : واحد تحقیق و پژوهش شرکت رایان سامانه آرکا