چطور بدافزار میتونه فایل خودش رو از آنتی ویروس مخفی کنه یک راهکار
---هدف بدافزار:
جلوگیری از اینکه آنتیویروس بتونه:
* فایل مخرب رو باز کنه (مثلاً برای اسکن) * اطلاعات فایل رو بخونه یا حتی ببینه
1. آنتیویروس سعی میکنه فایل رو باز کنه
برنامه آنتیویروس (در User Mode) تابع CreateFile() رو صدا میزنه این تابع در نهایت یک System Call مثل NtCreateFile یا NtOpenFile رو فعال میکنه.
2.و System Call به کرنل میره و از طریق SSDT
ویندوز نگاه میکنه: آدرس تابع NtCreateFile کجاست؟ از جدول SSDT میره و آدرس اصلی تابع رو اجرا میکنه.
3. بدافزار SSDT رو Hook میکنه
بدافزار (که خودش یک درایور یا روتکیت کرنلیه) قبل از این که آنتیویروس فایل رو باز کنه، ریدایرکت رو انجام میده
4. تابع تقلبی (Hooked) چیکار میکنه؟
وقتی آنتیویروس سعی کنه فایل my_malware.exe رو باز کنه:
* به جای اجرای NtCreateFile اصلی، * به MyMaliciousNtCreateFile هدایت میشه، * اونجا بدافزار بررسی میکنه که آیا فایل مخرب خودش قراره باز شه؟ * اگه بله ؛تظاهر به خطا و آنتیویروس فکر میکنه فایل وجود نداره یا مجوز دسترسی نداره.
ملاحظات مهم:
1. برای انجام این کار، بدافزار باید در کرنل اجرا بشه یعنی یا از طریق درایور مخرب (.sys) یا با اکسپلویت کرنل.
2. مایکروسافت بعد از ویندوز XP/Vista محدودیتهایی گذاشت و SSDT Hooking تو نسخههای جدید سختتر شده (مثل استفاده از PatchGuard در ویندوز 10 و 11).
3. این تکنیک با EMET، HVCI و سایر تکنولوژیهای محافظتی شناسایی میشه.
جمعبندی ساده:
* بدافزار درایور خودش رو لود میکنه. * جدول SSDT رو دستکاری میکنه. * به جای اجرای توابع کرنلی واقعی، تابع تقلبی خودش رو اجرا میکنه. * بسته به شرایط، جلوی دسترسی آنتیویروس به فایل، پروسس یا منابع رو میگیره.