تکنولوژی

حملات Fileless و تزریق در حافظه؛ دشمن مخفی EDRها | تحلیل پیشرفته تهدید

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

در دو بخش قبل از سری مقالات راهنمای جامع دور زدن EDR توسط بدافزارها، به معرفی جامع EDR، ضرورت استفاده از آن، ضعف‌های پایه‌ای EDRها و همچنین در بخش دوم به معرفی تکنیک خطرناک BYOVD پرداختیم. اما حالا وارد یکی از پیشرفته‌ترین، مخفیانه‌ترین و موفق‌ترین روش‌های عبور از EDR می‌شویم: حملات حافظه‌ای و Fileless .

در این تکنیک، مهاجم حتی نیازی به ایجاد فایل روی دیسک ندارد؛ کد مخرب مستقیماً وارد حافظه سیستم می‌شود و در دل فرآیندهای قانونی اجرا می‌گردد — دقیقاً جایی که بسیاری از EDRها هنوز کور هستند.

🔸 مفهوم حملات تزریق حافظه و Fileless

در تکنیک‌های Fileless :

✔️ بدافزار هیچ فایل قابل مشاهده‌ای روی دیسک ایجاد نمی‌کند

✔️ کد مخرب به‌صورت مستقیم در RAM (حافظه سیستم) تزریق و اجرا می‌شود

✔️ این حملات معمولاً از ابزارهایی مثل PowerShell، WMI یا DLL Injection برای تزریق استفاده می‌کنند

🎯 دلیل محبوبیت این تکنیک‌ها:

بسیاری از EDRها هنوز روی مانیتورینگ فایل‌ها تمرکز دارند و حافظه را به‌صورت زنده اسکن نمی‌کنند. این یعنی مهاجم درون سیستم است، اما دیده نمی‌شود.

🔸 رایج‌ترین روش‌های تزریق کد در حافظه

تکنیک

توضیح

Reflective DLL Injection

بارگذاری DLL در حافظه بدون ذخیره‌سازی روی دیسک

Process Hollowing

تزریق کد درون یک فرایند قانونی (مثلاً explorer.exe) و جایگزینی حافظه آن

Shellcode Injection

بارگذاری Shellcode رمزنگاری‌شده یا مبهم (Obfuscated) در RAM

Thread Hijacking

ربودن Threadهای فرایند قانونی و اجرای کد مخرب از طریق آن‌ها

AtomBombing

سوءاستفاده از Windows Atom Tables برای تزریق کد بدون شناسایی APIهای کلاسیک

 

📌  بیشتر این تکنیک‌ها در MITRE ATT&CK تحت دسته‌بندی‌های:

T1055 (Process Injection)✔️

T1055.012 (Process Hollowing)✔️

T1055.001 (DLL Injection)✔️
قرار دارند.

🔸  چرا این تکنیک‌ها موفق‌اند؟

 بدون نیاز به فایل؛ هیچ رد پایی روی دیسک نیست
 دور زدن EDRهایی که به Signature و رفتار فایل متکی هستند
 اجرای کد در فضای پردازش قانونی (trusted process) مثل svchost.exe
 استفاده از رمزنگاری و Obfuscation برای سخت‌تر شدن تحلیل حافظه

🔸 نمونه‌های واقعی از حملات In-Memory

بدافزار / گروه

تکنیک استفاده‌شده

شرح حمله

Cobalt Strike

Reflective DLL Injection

بارگذاری کامل Agent در حافظه و ارتباط مستقیم با سرور فرمان (C2)

Emotet

Process Hollowing, Thread Injection

استفاده از فرایندهای قانونی برای حمله فیشینگ و بقا

QakBot

In-memory Shellcode Execution

تزریق Shellcode رمزنگاری‌شده برای عبور از EDR و حفظ دسترسی

 

📎  این بدافزارها در بسیاری از گزارش‌های CrowdStrike و Elastic Threat Intelligence تحلیل شده‌اند و در حملات واقعی استفاده شده‌اند.

🔸 ابزارها و فریم‌ورک‌های مرتبط:

✔️ Cobalt Strike

✔️ Metasploit Framework

✔️ Donut Tool (تولید کننده Shellcode بدون فایل)

✔️ SharpShooter (Obfuscated Shellcode delivery)

✔️PowerShell Empire (حملات Fileless تحت PowerShell)

🔍 چرا EDRها در برابر حملات حافظه‌ای (In-Memory) آسیب‌پذیر هستند؟

حملات مبتنی بر حافظه یکی از نقاط کور ابزارهای امنیتی سنتی محسوب می‌شوند. دلایل اصلی ضعف EDR در برابر این تکنیک‌ها عبارت‌اند از:

🔸 ۱. تمرکز سنتی روی فایل و دیسک، نه حافظه

بسیاری از EDRهای قدیمی‌تر طراحی شده‌اند تا فایل‌های روی دیسک را اسکن و تحلیل کنند. بنابراین:

✔️ رفتارهای مشکوکی که هیچ فایلی ایجاد نمی‌کنند (مانند بارگذاری Shellcode در حافظه) از دید آن‌ها پنهان می‌ماند

✔️ چون حمله‌ای در دیسک یا Log Event کلاسیک رخ نمی‌دهد، سیستم امنیتی اصلاً چیزی برای واکنش نمی‌بیند

🔸 ۲. Memory Scanning غیرفعال یا فقط در حالت On-Demand

قابلیت اسکن حافظه (Memory Scanning) در بسیاری از EDRها یا اصلاً فعال نیست یا فقط به‌صورت دستی (On-Demand) اجرا می‌شود.

در نتیجه:

  • تهدیدی که در لحظه تزریق و اجرا می‌شود ممکن است هرگز شناسایی نشود
  • حتی EDRهایی که این ویژگی را دارند، در حالت پیش‌فرض معمولاً آن را غیرفعال نگه می‌دارند (برای کاهش بار سیستم یا به دلیل خطاهای کاذب زیاد)

🔸 ۳. استفاده از رمزنگاری، فشرده‌سازی و Obfuscation در Shellcodeها

مهاجمان به‌راحتی از تکنیک‌های پیچیده‌سازی برای مخفی‌سازی کد مخرب خود استفاده می‌کنند:

Shellcode✔️ها با الگوریتم‌های ساده (XOR، AES) رمزنگاری یا با encoding مثل Base64 پنهان می‌شوند

✔️این Shellcodeها تنها در آخرین لحظه، در حافظه سیستم بازگشایی می‌شوند

✔️بنابراین، تا قبل از اجرای واقعی، هیچ محتوای قابل تحلیل یا signature خاصی وجود ندارد که EDR آن را شناسایی کند

🔸 ۴. اجرای کد در فرایندهای قابل‌اعتماد (Trusted Processes)

مهاجمان اغلب کد خود را داخل فرایندهایی تزریق می‌کنند که سیستم و EDR آن‌ها را به‌طور پیش‌فرض «اعتماد‌شده» می‌دانند، مثل:

explorer.exe

svchost.exe

rundll32.exe

wmiprvse.exe

از آن‌جایی که این فرایندها همیشه در سیستم فعال‌اند و نقش حیاتی دارند، EDR  به‌سختی می‌تواند تفاوت بین فعالیت عادی و تزریق کد را تشخیص دهد؛ مگر با تحلیل رفتاری بسیار دقیق.

🔸 ۵. ناتوانی در مانیتورینگ APIهای سطح پایین حافظه (Low-level Memory APIs)

مهاجمان برای تزریق و اجرای کد در حافظه از توابع سیستمی سطح پایین استفاده می‌کنند؛ مثل:

VirtualAllocEx✔️

NtWriteVirtualMemory✔️

CreateRemoteThread✔️

بسیاری از EDRها:

✔️ این APIها را به‌طور پیش‌فرض ثبت نمی‌کنند

✔️ یا فقط در شرایط خاص (مانند فعال‌سازی Hunting Mode یا Custom Rules) آن‌ها را مانیتور می‌کنند

درنتیجه، مهاجم می‌تواند با چند API call ساده، بدون جلب توجه، یک حمله کاملاً Fileless انجام دهد.

اقدامات پیشگیرانه و مدیریتی

اقدام

شرح

فعال‌سازی Memory Scanning مداوم

فعال‌سازی Real-Time Memory Scan در EDR (بسیاری از سازمان‌ها آن را غیرفعال نگه می‌دارند)

مانیتورینگ APIهای مشکوک

بررسی مداوم VirtualAllocEx, NtWriteVirtualMemory, CreateRemoteThread و مشابه

تقویت SIEM با لاگ‌های حافظه

جمع‌آوری رویدادهای حافظه و تزریق در SIEM برای تحلیل بلادرنگ

محدودسازی اجرای اسکریپت

اعمال سیاست سختگیرانه روی PowerShell، WMI، Rundll32 و … با AppLocker یا WDAC

Threat Hunting دوره‌ای روی حافظه

اجرای ممیزی عمیق روی حافظه سیستم‌ها برای یافتن Shellcodeهای مشکوک (مثلاً با Volatility یا PE-Sieve)

 

🧠  نکته کلیدی برای مدیران امنیت:

اگر EDR شما حافظه را اسکن نمی‌کند، شما تنها نیمی از میدان نبرد را می‌بینید.
در برابر حملات Fileless، Blind Defense هیچ شانسی ندارد.

 جمع‌بندی این بخش:

حملات تزریق در حافظه و Fileless :

✔️ هیچ فایلی ایجاد نمی‌کنند

✔️ به‌صورت کامل در حافظه اجرا می‌شوند

✔️ با سطح بالای پنهان‌کاری، بسیاری از EDRها را فریب می‌دهند

برای مقابله با آن‌ها، باید از EDRهایی استفاده کرد که Memory Scanning واقعی و Behavior Monitoring سطح بالا داشته باشند و باید تیم امنیت همیشه آماده شکار تهدید در حافظه باشد.

 ادامه مسیر:

در بخش بعدی، به سراغ یکی از جذاب‌ترین تکنیک‌های دور زدن EDR می‌رویم:
استفاده از ابزارهای قانونی ویندوز، یعنی تکنیک معروف LOLBins

مطالعه بخش چهارم: وقتی ابزارهای قانونی سلاح مهاجمان می‌شوند (LOLBins)
 

کلمات کلیدی: |

تمام حقوق سایت برای سلام دیجی و نويسندگان آن محفوظ می باشد