پژوهشگران امنیتی متد جدیدی برای دور زدن ابزارهای Endpoint Detection and Response (EDR) در محیط ویندوز کشف کردهاند که از طریق تزریق کد به ساختارهای مقداردهی اولیه فرآیند (Process Initialization Structures) عمل میکند. این روش که Process Parameter Poisoning نامیده شده است، با بهرهبرداری از پارامترهای استارتآپ ویندوز، نیاز به استفاده از APIهای رایجی که توسط EDRها رصد میشوند را از بین میبرد.
مکانیسم حمله و نقاط ضعف شناسایی
به طور سنتی، ابزارهای امنیتی برای شناسایی Process Injection بر رصد توابع خاصی از Windows API مانند VirtualAllocEx()، WriteProcessMemory() و MapViewOfFile2() متکی هستند. در تکنیک جدید، عامل تهدید با ایجاد یک «فرآیند قربانی» (Sacrificial Process)، کد مخرب خود را مستقیماً در پارامترهایی قرار میدهد که ویندوز به طور خودکار به فرآیند جدید منتقل میکند. این اقدام باعث میشود عملیات تخصیص حافظه و نوشتن کد، خارج از دیدار نظارتی ابزارهای EDR قرار گیرد.
ترکیب با متدهای پیشرفته برای پنهانسازی کامل
در تحلیلهای انجام شده توسط شرکت Flashpoint، این تکنیک با استفاده از زبان Rust پیادهسازی شد. نتایج نشان داد که در حالت پایه، برخی سیستمهای XDR قادر به شناسایی مراحل بعدی Payload بودند، اما با ترکیب این روش با تکنیکهای زیر، شناسایی کاملاً غیرممکن شد:
- DLL Unhooking: بازگرداندن توابع کتابخانهای ویندوز که توسط نرمافزارهای امنیتی تغییر یافتهاند تا نظارت در User-mode دور زده شود.
- Blocking Non-Microsoft DLLs: اعمال پالیسی برای جلوگیری از بارگذاری DLLهای غیر مایکروسافتی که باعث میشود اجزای نظارتی ابزارهای امنیتی شخص ثالث نتوانند در حافظه بارگذاری شوند.
راهکارهای دفاعی و شناسایی
کارشناسان برای مقابله با این تهدید، چهار استراتژی شناسایی را پیشنهاد میکنند:
- بررسی پارامترهای فرآیند برای یافتن دادههای غیرعادی (Anomalous Data).
- رصد عملیات Thread Execution Hijacking.
- شناسایی کدهایی که از مکانهای غیرمعمول حافظه اجرا میشوند.
- مانیتورینگ تغییر مجوزهای حافظه به حالت Executable.
توصیه نهایی این است که تیمهای SOC به جای تکیه صرف بر فراخوانیهای API، بر رفتار واقعی فرآیندها (Behavioral Analysis) تمرکز کنند.