Gerdab.IR | گرداب

بررسی کامل بدافزار Dino

تاریخ انتشار : ۲۴ تير ۱۳۹۴

در این مقاله سعی شده است تمامی اطلاعات مربوط به بدافزار Dino تحلیل شود.

به گزارش گرداب به نقل از سایبربان بدافزار Dino توسط گروه هک مزرعه حیوانات ساخته‌شده است. این گروه در کارنامه خود، توسعه بدافزارهای دیگری مانند Casper، Bunny و Babar را دارد. این بدافزار به دلیل ویژگی‌های خاصی خودش و چندین نکته کوچک، نشان می‌دهد، دارای توسعه‌دهندگان فرانسوی است.

مزرعه حیوانات گروه هکری هستند که اولین بار توسط اسلایدهای منتشرشده از اسنودن شناخته شدند. در این اسلایدها قیدشده است که این گروه فرانسوی هستند. البته با پیام‌های خطایی که بدافزار می‌دهد این موضوع کاملاً فهمیده می‌شود.

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

لیست ماژول‌ها

بدافزار Dino با زبان C++ و ماژولار نوشته‌شده است. نام ماژول‌های استفاده‌شده که در فایل باینری بدافزار موجود است، در جدول زیر آمده است:

بررسی کامل بدافزار Dino

ساختار داده

بدافزار Dino دارای ساختار داده توسعه‌یافته توسط گروه مزرعه حیوانات بانام DataStore است. بدین ترتیب که تمامی ماژول‌های آن داده‌های خود را در این ساختار ذخیره می‌کنند. این نحوه ساختار یکی از ویژگی‌های اصلی در بررسی بدافزار Dino است.

DataStore یک چارچوب کلی از کلیدها با فرمت رشته، تا مقادیری با فرمت‌های مختلف مانند integer می‌شود. پیاده‌سازی این چارچوب توسط یک جدول هش صورت گرفته است. به این معنی که برای به دست آوردن یک مقدار مربوط به یک کلید خاص، ابتدا باید هش کلید محاسبه شود، سپس محل دقیق مقدار، از سطل داده (مدل سطلی به‌منظور ذخیره داده استفاده‌شده است) برداشته شود.

طول هش Dino یک بایت است که توسط چند سری مختلف XOR که بر روی کلید انجام می‌شود، به دست می‌آید. هر سطل داده، دارای یک لیست ارتباط است که شامل کلید/مقدار می‌شود. کد دریافت مقدار در شکل زیر نمایش داده‌شده است.

بررسی کامل بدافزار Dino

در آخر نیز، داده‌ها به‌صورت سریالی که با DxSx شروع می‌شوند، در خروجی قرار می‌گیرند. ماژول PSM این داده‌ها رمزنگاری کرده و ذخیره می‌کند. کلید رمزنگاری استفاده‌شده مقدار PsmIsANiceM0du1eWith0SugarInside است.

تنظیمات

تنظیمات Dino در انتهای فایل باینری آن و در یک فایل زیپ قرار دارد. در هنگام اجرا این فایل در ماژول CORE قرار می‌گیرد. با استفاده از دستور conf –l CORE می‌توان محتویات این فایل را مشاهده کرد.

بررسی کامل بدافزار Dino

درحالی‌که نام بیشتر کلیدها، معرف خود هستند، بهتر است موارد زیر بیان شود:

reclD: فایل‌های باینری گروه مزرعه حیوانات شامل ID می‌شود. این ID در این نمونه برابر 11173-01-PRS است که نشان‌دهنده سامانه هدف است. در نمونه‌های دیگر بدافزار این گروه مانند Casper و Babar نیز چنین ساختاری وجود دارد. البته منظور از PRS هنوز نامشخص است.

ComServer: این‌ها کلیدهایی هستند که دارای آدرس سرورهای C&C هستند. همه این آدرس‌ها در هنگام بررسی بدافزار خاموش شدند. این سرورهای C&C در اصل سایت‌های آلوده‌ای بودند که در ظاهر سایت‌های معتبر ظاهرشده بودند.

Version: این هم کد نسخه Dino است که در اینجا 1.2 است. یک پوشه بانام din12 هم در آدرس سرور C&C وجود دارد که نشان از صحت این موضوع است. هم‌چنین نسخه 1.3 نیز مشاهده‌شده است.
BD_Keys و CC_Keys شامل کلیدهای رمزنگاری می‌شوند که برای رمزنگاری ارتباط با سرور C&C به کار می‌روند. مقادیر آن‌ها با MAGICBOX شروع می‌شود.

دستورها (Commands)

دستورهای زیر توسط بدافزار Dino قابل‌اجرا هستند. نام این دستورها توسط خود توسعه‌دهندگان انتخاب‌شده‌اند.

بررسی کامل بدافزار Dino

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

بررسی کامل بدافزار Dino

دستورهای بالا در به‌منظور جمع‌آوری اطلاعات از سامانه هدف اجرا می‌شوند. این دستورها توسط ماژول CMDEXEC مدیریت می‌شوند. هم‌چنین این دستورها در ماژول CMDEXECQ به‌صورت یک صف ذخیره می‌شوند. در آخر نتیجه نهایی به سرور C&C ارسال می‌شود.

بررسی RamFS:

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

ساختار

محتویات ramFS به‌صورت رمزنگاری‌شده در تنظیمات Dino توسط کلید xT0rvwz ذخیره‌شده‌اند و کلید RC4 آن نیز توسط tr4qa589 ذخیره‌شده‌اند. هنگامی‌که فایل سیستمی رمزنگاری شد، در حافظه ذخیره‌شده و یک لیست ارتباط که هرکدام  512 بایت هستند، ایجاد می‌شود. این لیست توسط الگوریتم RC4 رمزنگاری‌شده است.

همان‌طور که تاکنون بررسی شد، بدافزار سعی در رمزنگاری همه‌چیز دارد و هنگام نیاز فایلی را رمزگشایی می‌کند. این عمل باعث سخت شدن ردگیری این بدافزار می‌شود.

برخی از ویژگی‌های سطح بالای این فایل سیستمی عبارت‌اند از:

رمزنگاری نام فایل‌ها به همراه محتویات

اعمال محدودیت طول 260 کاراکتر برای نام فایل‌ها

پس از رمزنگاری، محتویات فایل به قسمت‌های 540 بایتی تقسیم می‌شود.

هیچ فراداده‌ای (Metadata) به همراه فایل‌ها موجود نیست. فراداده اطلاعات خاصی هستند که در توضیح یک داده به کار می‌روند. ازجمله: فرمت داده، مقیاس داده، موقعیت و مختصات جغرافیائی محدوده اطلاعات، تهیه‌کننده، سازمان تهیه‌کننده، تاریخ تهیه، میزان دقت اطلاعات، نرم‌افزار و روش تهیه اطلاعات، آدرس و مشخصات تهیه‌کننده اطلاعات، نوع سطح دسترسی و میزان امنیت اطلاعات و …

دستورهای موجود در ramFS

در جدول زیر لیست دستورهای موجود در ramFS آورده شده‌اند:

بررسی کامل بدافزار Dino

دلیل استفاده از ramFS

در بدافزار Dino، وظیفه ramFS، ایجاد محل ذخیره داده به‌صورت امن است. هم‌چنین ramFS دارای یک فایل خاص بانام cleaner است که دستورهای لازم به‌منظور پاک‌سازی بدافزار از سامانه قربانی رادار است. دستور پاک کردن بدافزار killBD است.
کد زیر نحوه اجرای فایل cleaner را نمایش می‌دهد. ابتدا به‌منظور پاک‌سازی، نام فایل از تنظیمات Dino بانام a.ini دریافت می‌شود. سپس کلید رمزنگاری بازیابی شده و ramFS رمزگشایی می‌شود. در آخر فایل در حافظه بارشده و پاک می‌شود. پیام‌های خطای موجود در کد، کاملاً هدف از این کد را نشان می‌دهد.



بررسی کامل بدافزار Dino

بررسی مدیریت وظایف شبه cron:

دستورهای cronadd، cronlist و crondel همان دستورهای add، فهرست و remove هستند که در ماژول CRONTAB وجود دارند.
مدیریت وظایف در بدافزار Dino شبیه نسخه یونیکسی آن یعنی cron است. به‌طور مثال شکل زیر خروجی دستور cronlist را نمایش می‌دهد که یک دستور بیدارباش در تاریخ 7 آوریل  2015 و ساعت 15:44 است.

بررسی کامل بدافزار Dino

همان‌طور که ملاحظه می‌شود، هر دستور با یک ID مشخص می‌شود که از عدد 0xC0 آغاز می‌شود. Count تعداد اجرای دستور را نمایش می‌دهد. Visibility هم گزارش به سرور C&C را مشخص می‌کند. اگر حالت آن Silent باشد، گزارش نخواهد شد.

دلایل ارتباط Dino به گروه مزرعه حیوانات

میزان کدهای مشابه میان Dino و بدافزارهای خاص گروه مزرعه حیوانات نشان از توسعه‌دهندگان مشترک است. برخی موارد مشترک در زیر آورده شده است:

در ابتدای اجرای Dino، نام پردازش فعلی بانام پردازش‌های دیگر موجود در Sanbox مقایسه می‌شود. این عمل بسیار شبیه آنچه در Bunny  و برخی از دیگر بدافزارهای مزرعه حیوانات اتفاق می‌افتد، است.

بررسی کامل بدافزار Dino

به‌منظور مخفی ساختن برخی توابع API، بدافزار Dino از هش استفاده می‌کند. الگوریتم هش استفاده‌شده مشابه Casper است.

فایل سیستمی ramFS در چندین بدافزار مزرعه حیوانات مشابه شده است.

خروجی دستور sysinfo بدافزار Dino مشابه نسخه به‌روز شده beacon از بدافزار SNOWBALL است که باعث کشف بدافزار Babar شد.

بررسی کامل بدافزار Dino


بررسی کامل بدافزار Dino

زبان فرانسوی توسعه‌دهندگان

فایل‌های باینری بدافزار Dino، دارای منبعی است که کد زبان آن 1036 است. کد 1036 یا فرمت هرگز آن 0x40c نشانگر زبان فرانسوی است.
فایل‌های باینری Dino به‌طور ایستا به کتابخانه GnuMP مرتبط شده‌اند که به‌منظور تغییر عددهای بزرگ در الگوریتم‌های رمزنگاری استفاده می‌شود. کد GnuMP در Dino شامل مسیر فایل‌هایی می‌شود که از سامانه هکرها به‌دست‌آمده است.

بررسی کامل بدافزار Dino

کلمه arithmetique معادل فرانسوی arithmetic است.

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

بررسی کامل بدافزار Dino

در سال 2014 کسپرسکی 3 آسیب‌پذیری Zero-day را در حمله گروه‌های هک شناسایی کرد که دو Zero-day توسط گروه هک مزرعه حیوانات استفاده می‌شد. بدافزارهای شناخته‌شده این گروه دارای وجه مشترک‌های زیر هستند:

بررسی کامل بدافزار Dino

در اینجا توضیح کوتاهی در مورد بدافزارها بیان می‌شود:

Bunny: یک تروجان مربوط به سال 2011 که از آسیب‌پذیری Zero-day فرمت PDF استفاده می‌کرد.
Dino: یک بدافزار جاسوسی کامل
Babar: پیچیده‌ترین بدافزار گروه مزرعه حیوانات
NBot: بدافزاری باقابلیت ایجاد بات به‌منظور پیاده‌سازی حمله‌های اختلال سرویس توزیع‌شده
Tafacalou: بدافزاری برای دانلود Dino یا Babar
Casper: بدافزاری که اخیراً برای دانلود دیگر بدافزارهای گروه مزرعه حیوانات استفاده می‌شود.
در تصویر زیر زمان‌های مختلف فعالیت بدافزارهای گروه هک مزرعه حیوانات آورده شده است.

بررسی کامل بدافزار Dino

در شکل زیر هم بیشترین قربانیان بدافزار Tafacalou نشان داده‌شده‌اند. این بدافزار به‌منظور دانلود دیگر بدافزارهای گروه مزرعه حیوانات به کار می‌رود و نامی با ریشه فرانسوی است.

بررسی کامل بدافزار Dino