ترفندهای ضدتحلیل مورد استفاده بدافزارها
در اواخر دهه 80 میلادی، برنامه های مخرب بسیار معدودی، موسوم به ویروس، شروع به ظهور کردند. مقابله با اکثر آنها برای شرکتهای نوپای تولیدکننده ضدویروس چندان دشوار نبود. تنها کافی بود کدهای فایل بررسی شده و مشخصه های بخشهای مخرب آن در بانک دادههای ضدویروس ثبت و نگهداری شود.
اما در سالهای بعد، ابتکارات ویروسنویسان سبب شد شرکتهای تولیدکننده ضدویروس علاوه بر شناسایی مشخصه ها و امضای یکتای ویروسها، از روشهای کشف و مقابله دیگری نیز در نرمافزارهای امنیتی خود استفاده کنند. در واکنش، ویروس نویسان نیز اقدام به ابداع روش هایی برای مقابله با روش های جدید شناسایی ضدویروسها کردند. در اغلب این روشها، سعی بر این است که ضدویروس قادر به تجزیه و تحلیل عملکرد و رفتار ویروس نباشد تا نتواند اقدامات ویروس را پیش بینی کرده و مانع از انجام آنها شود. بعد از این همه سال، این چرخه همچنان ادامه دارد.
بطور کلی میتوان روشهای ضدتحلیل و ضدشناسایی ویروسهای مدرن را به گروههای زیر تقسیمبندی کرد:
- استفاده از کدهای چندریختی (Polymorphism): در این روش هر گونه از ویروس با دیگر گونه های آن ویروس متفاوت است. برای شناسایی یک ویروس با کلید تصادفی 32 بیتی به 4 میلیارد (232) امضای ضدویروس نیاز است.
- نهانکاری (Stealth): در این حالت ویروس سیستم عامل را وادار میکند تا فایلهای مخرب را پاک نشان دهد.
- روتکیت (Rootkit): روتکیتها با نفوذ به هسته (Kernel) سیستم عامل، خود را از چشم ضدویروس و کاربر مخفی نگاه میدارند.
- تونلزنی (Tunnelling): در این روش، ویروس اقدامات مخرب را بهنحوی انجام میدهد که بتواند سیاستهای محدودسازی ضدویروس را دور بزند. برای مثال، اگر قاعدهای، نوشتن بر روی فایلهای اجرایی را مسدود کرده باشد، ویروس بر روی فایل BAK تغییرات مخرب خود را اعمال کرده و سپس پسوند آن را به EXE تغییر میدهد.
- طعمه (Decoy): در این حالت، ویروس کدهای مخرب خود را در درون فایلهایی سالم، بیخطر و با عناوینی جذاب جاسازی میکند. در برخی موارد نیز ویروس پس از آنکه اقدامات مخرب خود را بر روی دستگاه اعمال کرد، فایلهای سالم را جایگزین فایلهای مخرب خود میکند.
- ضدضدویروس (Anti-anti-virus): ویروس با شناسایی ضدویروس بر روی دستگاه قربانی، با روشهایی همچون متوقف ساختن پروسههای آن و یا درگیر کردن آن با دادههای جعلی سعی در از کاراندازی ضدویروس میکند. در بعضی مواقع نیز، خرابکاری خود را تا زمان یافتن فرصتی مناسب به تأخیر میاندازد.
یکی از روشهای ضدتحلیل برخی ویروس ها، عدم انجام اعمال خرابکارانه بر روی ماشینهای مجازی است. تحلیلگران ویروس، معمولاً، ویروس را بر روی یک ماشین مجازی اجرا و فعالیتهای آن را رصد میکنند. بنابراین اگر تحلیلگر ویروس متوجه ترفند ویروس نشود، فعالیتهای غیرمخرب فایل بر روی ماشین مجازی را نشانهای از بیخطر و سالم بودن آن خواهد دانست.
مقابله با این روش، بکارگیری روشهای ضدضدضدویروس است. برای نمونه، میتوان تنظیمات ماشین مجازی را بهنحوی تغییر داد که تشخیص مجازی بودن ماشین برای بدافزار دشوار شود و یا بجای ماشینهای مجازی، بررسی فایلهای مشکوک بر روی ماشین های فیزیکی انجام شود.
آزمایشگاههای شرکت ضدویروس Sophos به تازگی اعلام کرده است که بدافزار Dyreza – که با هدایت و عبور دادن ترافیک بین کاربر و سایتهای بانکداری از طریق مرکز کنترل و فرماندهی خود، رمزگذاری SSL این ترافیکها را دور میزند – پیش از شروع فعالیت خود از سیستم عامل درباره پردازنده دستگاه سوال میکند. در صورتی که دستگاه دارای پردازنده تک-هسته ای باشد، ویروس علاقهای از خود نشان نداده و اجرا نمیشود!
امروزه کمتر کامپیوتر مجازی و یا فیزیکی را می توان یافت که دارای پردازنده تک-هسته ای باشد، مگر در دستگاه های بسیار قدیمی و یا دستگاه هایی که برای یک کار خاص ساخته و استفاده می شوند. ویروس Dyreza نیز بر همین اساس و با تفکر اینکه این نوع دستگاهها می توانند ابزار کارشناسان شرکتهای ضدویروس باشند، از خیر آلوده ساختن آنها می گذرد.
هر چند عدم اجرای ویروس ها بر روی ماشینهای مجازی کار را برای تحلیلگران و آزمایشگاههای ویروس دشوار میسازد، اما حداقل سرورهایی که در بسترهای مجازی خدمات میدهند از گزند این بدافزارها در امان میمانند.