Rombertik پیشگام بدافزارهای جدید
نسل جدید ویروسی‌ها با ویژگی خودنابودگری از راه رسیدند
25 ارديبهشت 1394
هرچه به سوی آینده پیش می‌رویم، فناوری‌های سخت‌افزاری و نرم‌افزاری بسیار قدرتمندتر از گذشته می‌شوند. اگر در گذشته تلاش‌ها برای مکانیزه کردن ادوات سخت‌افزاری بود، در دنیای امروز تلاش‌ها برای مکانیزه کردن برنامه‌ها است. نرم‌افزارها در تلاش هستند، فعالیت‌های روزمره خود را بدون نیاز به دخالت کاربران انجام دهند. ویروس‌ها نیز در حال حرکت به این سمت هستند.

دیسکی به ویروس آلوده می‌شود، کاربر آن‌را به سیستم خود متصل می‌کند، ویروس در حافظه بارگذاری می‌شود، فایل‌های راه‌انداز سیستم‌عامل (command.com) را برای مقیم شدن (Resident) در حافظه آلوده می‌سازد، در ادامه فایل‌های روی هارددیسک را غیرقابل استفاده می‌کند یا سکتور راه‌انداز دیسک را غیرقابل خواندن می‌سازد و تمام! این کل کاری بود که ویروس‌ها در گذشته انجام می‌دادند.

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

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

اما به تازگی ویروسی در دنیای کامپیوترها عرض‌اندام می‌کند که در حین بررسی می‌تواند خود را نابود سازد. به طور معمول، زمانی‌که بدافزار جدیدی شناسایی می‌شود، محققان امنیتی با استفاده از ابزارها و محصولات امنیتی اقدام به بررسی و تجزیه و تحلیل رفتارها و عملکرد ویروس می‌کنند. اما محققان امنیتی گونه‌ای از ویروس را شناسایی کرده‌‌اند که در حین بررسی با نرم‌افزارهای تجزیه و تحلیل خود را نابود می‌سازد. در تحقیقی که به تازگی توسط محققان امنیتی سیسکو انجام شده است، خبر از نسل جدیدی از ویروس‌ها می‌دهد. ویروس جدید که به اسم Rombertik شناخته شده است، به طرز شگفت‌آوری این توانایی را دارد تا از مکانیزم‌های تجزیه و تحلیل بگریزد. در فرآیند مهندسی معکوس انجام گرفته روی Rombertik، شناسایی شد که این ویروس از ویژگی چند لایه مبهم ضد تجزیه و تحلیل استفاده می‌کند. این ویژگی برای فرار از دست هر دو ابزار تجزیه و تحلیل استاتیک و پویا طراحی شده که دیباگ کردن آن را با مشکل همراه می‌سازد. Rombertik  این توانایی را دارد تا رکورد راه‌انداز اصلی ویندوز (MBR) را زمانی‌که یک نمونه از آن مورد شناسایی قرار گرفت، به طور کامل نابود ساخته و یک سیستم کامپیوتری را در یک حلقه بی‌پایان راه‌اندازی مجدد قرار دهد. بدافزار سعی می‌کند ابزارهای سندباکس مورد استفاده محققان را نیز گمراه کند. برای این منظور بدافزار می‌تواند چند بایت از داده‌ها را  960 میلیون بار در حافظه سیستم بنویسید. محقق امنیتی گراهام کلولی می‌گوید: «بدافزار خودتخریبی همچون Rombertik  یک گونه تقریبا نادر است، به دلیل این‌که که بدافزارهای امروزی سعی می‌کنند نگاه‌ها را به سوی خود جلب نکرده و به مدت‌های طولانی اقدام به سرقت اطلاعات کنند، اما این بدافزار دقیقا برعکس شیوه جاری عمل می‌کند.»

10 هزار ردپا از Rombertik

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

در این مثال، پیام توزیع شده از طرف Rombertik است و به نظر می‌رسد که از طرف کارگروه ویندوز ارسال شده است. هکرها سعی می‌کنند کاربر را متقاعد سازند تا سند ضمیمه شده را برای مشاهده ترازنامه‌های تجاری و این که آیا یکسان با کسب و کار آن‌ها است یا خیر باز کنند. اگر کاربر اقدام به دانلود و باز کردن فایل ضمیمه کند، در ادامه یک تصویر کوچک از سند را مشاهده می‌کند. در حالی که از آیکون  فایل به نظر می‌رسد این یک فایل PDF  است اما در واقع یک فایل محافظ صفحه‌نمایش اجرایی با پسوند SCR بوده که شامل Rombertik است. زمانی‌که کاربر روی این فایل اجرایی برای باز کردن آن کلیک می‌کند، Rombertik فرآیند به خطر انداختن سیستم را آغاز می‌کند.

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

تصویر زیر فرآیند مرحله به مرحله که Rombertik  سیستم هدف را به خطر می‌اندازد نشان می‌دهد.

تجزیه و تحلیل

از شروع کار، Rombertik از چند لایه مبهم ضد تجزیه و تحلیل استفاده می‌کند. از بررسی‌های مبهم و نه چندان واضحی که روی یک نمونه از این ویروس انجام شده است نشان می‌‌دهد، این ویروس از روش‌های مختلفی استفاده می‌کند. یک روش معمول شامل ارائه مقدار زیادی garbage code است که امکان مشاهده و تجزیه و تحلیل کد را سخت و غیرممکن کند. در این حالت، نسخه بسته‌بندی نشده یک نمونه Rombertik دارای حجم 28 کیلوبایت است، در حالی‌که نسخه بسته‌بندی شده آن 1264 کیلوبایت حجم دارد. بیش از 97 درصد از حجم فایل برای نشان دادن یک فایل قانونی است که شامل 75 تصویر و 8 هزار تابعی است که هرگز مورد استفاده قرار نمی‌گیرند. این بسته‌بندی کننده در تلاش برای بی اثر کردن شناسایی هر تابع به منظور تجزیه و تحلیل کردن آن، از کدها و داده‌های زائد زیادی استفاده می‌کند. 

در بررسی‌های گام به گام و محتاطانه‌ای که توسط سیسکو انجام شده است نشان می‌دهد، یک زیرمجموعه از این توابع واقعا مورد استفاده قرار می‌گیرند و مشخص شده است آن‌ها برای فرار از تکنیک سندباکس مورد استفاده قرار می‌گیرند. روش معمول برای فرار از سندباکس بی تحرک ماندن به مدت طولانی به منظور از دور خارج کردن سندباکس است، قبل از آن‌که بدافزار بیدار شده و شروع به فعالیت کند. در جواب به این شیوه، سندباکس‌های قدرتمند در شناسایی بدافزار زمانی‌که در حالت خواب قرار دارد برای یک مدت زمان طولانی نیز می‌توانند واکنش نشان دهند. Rombertik از رویکرد دیگری که وقفه اجرایی نام دارد، اما Rombertik را در حالت خواب قرار نمی‌دهد نیز استفاده می‌کند. برای حل این مشکل در ارتباط با سندباکس، Rombertik اقدام به نوشتن چند بایت به تعداد 960 میلیون بار می‌کند. این‌کار برای مصرف زمان مورد استفاده قرار می‌گیرد، شبیه به حالت خوابیدن، که همین موضوع معایبی را برای سندباکس و ابزارهای ردیابی برنامه‌ها به همراه می‌آورد. سندباکس ممکن است این توانایی را نداشته باشد که فورا تصمیم بگیرد که آیا برنامه در حال فریب دادن است یا واقعا نخوابیده است. عیب دیگری که این روش برای ابزارهای ردیابی به وجود می‌آورد سیل ردیابی‌هایی است که باید انجام دهد. اگر یک ابزار تجزیه و تحلیل‌گر اقدام به ثبت همه این 960 میلیون دستور‌العمل نوشته شده در حافظه کند، یک فایلی 100 گیگابایت ساخته می‌شود. حتی اگر محیط تجزیه و تحلیل توانایی مدیریت این فایل ثبت شده حجیم را داشته باشد، 25 دقیقه طول می‌کشد تا همه این داده‌ها روی یک هارددیسک معمولی نوشته شود. همین موضوع فرآیند تجزیه و تحلیل را با پیچیدگی همراه می‌سازد.

بعد از آن‌که این فرآیند انجام شد، ویروس اقدام به بررسی این موضوع می‌کند که آیا ابزارهای تجزیه و تحلیل اقدام به اصلاح روتین ZwGetWriteWatch کرده‌اند یا خیر. این‌کار با فراخوانی این تابع با آرگومان‌های نامعتبر انجام می‌شود. اگر این روتین هیچ مقدار خطایی را باز نگرداند، Rombertik خاتمه پیدا می‌کند. بعد از گذر موفقیت‌آمیز از این مرحله، Rombertik تابع ویندوزی OutputDebugString را 335 هزار بار برای فرار از مکانیزم‌های ضددیباگ فراخوانی می‌کند. در نهایت؛ یک تابع ضدتجزیه و تحلیل از درون بسته فراخوانی شده، نام‌کاربری، نام فایل و پردازه اجرایی را برای رشته‌ای شبیه به malwar ،sampl ،viru یا sandb مورد بررسی قرار می‌دهد. اگر هر کدام از این رشته‌ها شناسایی شد، باز کردن ویروس خاتمه می‌یابد. در این مرحله بررسی‌های ضدتجزیه و تحلیل مقدماتی و اولیه خاتمه می‌یابد. شکل‌های زیر کمک می‌کنند تا فرآیند پیچیده باز کردن کدها در مقایسه با همه کدهایی که در فرآیند ضدتجزیه و تحلیل مورد بررسی قرار می‌گیرند را مشاهده کنیم. 

بدافزار واقعی

زمانی‌که Rombertik اطمینان حاصل کرد همه فرآیندهای شناسایی را با موفقیت انجام داده است، کار واقعی خود را که همان سرقت داده‌ها است، آغاز می‌کند. Rombertik  پردازه‌های در حال اجرای کاربر را مورد بررسی قرار می‌دهد، برای اطمینان از این‌که یک مرورگر وب در حال اجرا باشد. اگر Rombertik  یک نمونه از فایرفاکس، کروم یا اینترنت اکسپلورر را شناسایی کند خود را درون یکی از پردازه‌های آن‌ها تزریق کرده و توابع API که برای اداره کردن داده‌های متنی است را درون آن‌ها پنهان می‌سازد. در ادامه ویروس می‌تواند داده‌های وارد شده توسط کاربر را بخواند و قبل از آن‌که این داده‌ها توسط مرورگر اقدام به رمزنگاری شده و روی پروتکل HTTPS ارسال شوند آن‌‌ها را به دست آورد. این تکنیک به بدافزار اجازه می‌دهد تا نام کاربری و گذرواژه وارد شده توسط کاربر روی هر سایتی را به دست آورد. Rombertik  هدفش جمع‌آوری اطلاعات درباره یک سایت خاص شبیه به بانک‌ها نیست، در عوض سعی می‌کند داده‌های حساس را برای هر سایتی به دست آورد. داده‌های جمع‌آوری شده بر مبنای کدینگ Base64 کدگذاری شده و به آدرس www.centozos.org.in/don1/gate.php روی پروتکل HTTP بدون هیچ رمزنگاری ارسال می‌شود.

در نهایت

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

برچسب: