درس تحلیل بدافزار
کتاب Evasive malware
ماجرای بدافزار فایلنویس بدون API!
سناریو:
یه تیم امنیتی یه فایل exe پیدا میکنه روی یه سیستم آلوده. عجیبیش اینه که:
هیچ ترافیکی به بیرون نداره.
هیچ API مشکوکی (مثل WriteFile, CreateFile, WinExec, یا VirtualAlloc) هم توش دیده نمیشه!
اما داره فایل مخرب تولید میکنه و بهنوعی خودش رو کپی میکنه تو مسیرهای دیگه و درایورها رو آلوده میکنه.
خب پس چطور داره فایل مینویسه؟!
وقتی فایل رو دیساسمبل میکنیم، یه چیز عجیب میبینیم:
هیچکدوم از توابع استاندارد ویندوز استفاده نشده.
بلکه چه کاری انجام شده ؟
1. مستقیم به حافظهی کرنل و توابع NT دسترسی گرفته
بدافزار از طریق جدول SSDT (System Service Descriptor Table) رفته سراغ NtWriteFile، NtCreateFile و… بدون اینکه از نسخههای user-mode استفاده کنه!
این یعنی kernel32.dll یا ntdll.dll رو Bypass کرده. تحلیلگرهای عادی که فقط API Call ها رو نگاه میکنن، چیزی نمیبینن!
2. استفاده از Shellcode پیچیده با Obfuscation بالا
بخشی از عملکرد بدافزار به شکل شِلکد رمز شده توی پشته (stack) تزریق میشه،
و بعد با اجرای دستی jump به آدرس رمزگشاییشده، کد اجرا میشه.
بدافزار هیچ ردپایی در حافظه عادی سیستمعامل نمیذاره.
3. ارتباط بدون استفاده از Winsock یا WinINet
برای ارتباط با سرور C2، بدافزار از درایورهای سطح پایین مثل NDIS.sys و tcpip.sys استفاده میکنه!
یعنی حتی فایروال ویندوز هم نمیفهمه این برنامه داره به اینترنت وصل میشه!
نکته پایان درس :
تحلیلگرهایی که فقط APIهای معمولی رو بررسی میکنن، اصلاً متوجه نمیشن این بدافزار چیکار میکنه.
اینجاست که تحلیل کرنل، درک معماری ویندوز و تسلط روی دیساسمبلی واقعاً معنی پیدا میکنه.
#آکادمی_روزبه