حملات علیه لاگگیری ETW (Event Tracing for Windows) در ویندوز
✍️روزبه نوروزی
اینETW یک مکانیزم لاگگیری کارآمد در ویندوز است که اطلاعات مفیدی درباره پردازشها، API Calls، و رفتارهای شبکهای ارائه میدهد. مهاجمان برای دور زدن ETW از تکنیکهای مختلفی استفاده میکنند که در ادامه بررسی میکنیم. 🚨 1. غیرفعالسازی ETW در زمان اجرا
🔹 مهاجمان میتوانند با تغییر برخی متغیرها یا استفاده از APIهای ویندوز، لاگگیری را غیرفعال کنند. 🔹 روش: تغییر مقدار EtwEventWrite در حافظه تا باعث از کار افتادن لاگگیری شود. 📌 نمونه کد (Patch کردن ETW در حافظه)
#include <windows.h> #include <stdio.h>
void DisableETW() { DWORD oldProtect; void* etwAddr = (void*)GetProcAddress(GetModuleHandleA("ntdll.dll"), "EtwEventWrite"); VirtualProtect(etwAddr, 1, PAGE_EXECUTE_READWRITE, &oldProtect); *(BYTE*)etwAddr = 0xC3; // تغییر اولین بایت به RET VirtualProtect(etwAddr, 1, oldProtect, &oldProtect); }
int main() { DisableETW(); printf("ETW Disabled!\n"); return 0; }
🔍 این کد اولین دستور EtwEventWrite را به RET (0xC3) تغییر میدهد و باعث غیرفعال شدن لاگگیری میشود. 🚨 2.انجام Hook کردن APIهای مربوط به ETW
🔹 مهاجمان میتوانند EtwEventWrite را Hook کرده و کاری کنند که هیچ رویدادی ثبت نشود. 🔹 این روش اغلب در Rootkitها و بدافزارهای پیشرفته استفاده میشود. 📌 انجامHook کردن EtwEventWrite با Detours
🔍 این کد مانع از ثبت هرگونه لاگ ETW میشود. 🚨 3. حذف رجیستری ETW Providers
🔹 مکانیزمETW از رجیستری برای ذخیره تنظیمات لاگگیری استفاده میکند. 🔹 مهاجمان میتوانند کلیدهای رجیستری مربوطه را حذف کنند تا ETW دیگر رویدادهای خاصی را ثبت نکند. 📌 دستور حذف Providerهای Sysmon از رجیستری
🔍 با این کار، لاگهای Sysmon در ETW غیرفعال میشوند. 🚨 4. استفاده از پردازشهای مجازی برای گمراه کردن ETW
🔹 بدافزارها میتوانند از Process Hollowing یا Doppelgänging استفاده کنند تا فرآیندهای مخرب از دید ETW پنهان بمانند. 🔹 این روشها باعث میشوند که پردازش واقعی چیزی به نظر برسد که نیست!
🔍 این روش دادههای ثبتشده در لاگ ETW را تغییر میدهد.
🔰 راهکارهای مقابله با حملات علیه ETW
✅ 1. مانیتورینگ Integrity NTDLL 🔹 ابزارهایی مثل Windows Defender ATP و Sysmon میتوانند تغییرات در ntdll.dll را شناسایی کنند. 🔹 راهکار: اجرای دستور Sysmon برای شناسایی تغییرات غیرمجاز در EtwEventWrite:
✅ 2. تشخیص Hookهای مشکوک با ابزارهای Memory Scanning 🔹 ابزارهایی مثل GMER و Volatility میتوانند Hookهای مشکوک روی EtwEventWrite را شناسایی کنند. 🔹 دستور Volatility برای بررسی تغییرات در EtwEventWrite