ویرگول
ورودثبت نام
روزبه نوروزی
روزبه نوروزی
روزبه نوروزی
روزبه نوروزی
خواندن ۵ دقیقه·۱ روز پیش

دور زدن EDR با درایور های آسیب پذیر :تست عملیاتی و راهکارمقاوم سازی

اعتماد به کنترل های امنیتی جایز نیست و باید با تست مشکلات آنها را پیدا کرد و برای مقاوم سازی راهکاری اندیشید. در اینجا تجربه یک تست عملیاتی همراه با راهکار مقاوم سازی برای EDR را ارایه میکنم تا بدانیم اعتماد حد و مرزی دارد و دائم باید کنترل ها را بررسی و مانیتور کرد. این تجربه همراه با بررسی جوانب و موارد تاریخی و بازنویسی همراه شده تا برای خواننده درک بهتری ایجاد کند . طبعا در تستها از تکنیک های اختصاصی هم استفاده میشود که بنا به مسایل حفظ مالکیت معنوی و اصول اخلاقیات هک ، ارایه آنها ممکن نیست. لذا این مقاله صد درصد کار انجام شده نمیباشد ولی تا حدود 90 درصد تمام مطالب و دستورات همان هستند که در تست عملیاتی مورد استفاده قرار گرفتند.

مقدمه

در سال‌های اخیر، معماری EDRها به‌گونه‌ای طراحی شده که رفتار برنامه‌ها را در لایه‌های مختلف سیستم- از User-mode تا Kernel-mode-رصد کند. بااین‌حال، یکی از خطرناک‌ترین و پیچیده‌ترین روش‌های دورزدن EDR، استفاده از درایورهای آسیب‌پذیر و امضاشده (Vulnerable Signed Drivers) است. این تکنیک که با نام BYOVD = Bring Your Own Vulnerable Driver شناخته می‌شود، امکان دسترسی به Ring 0 را در اختیار مهاجم قرار می‌دهد؛ سطحی از دسترسی که EDR نمی‌تواند از آن بالاتر برود.

این مقاله از پایه‌ترین مفاهیم تا پیشرفته‌ترین جزئیات، این حمله را بررسی می‌کند.

بخش اول: معماری امنیت سیستم‌عامل و علت ضعف EDR در برابر Kernel-mode

Ring Levels چیست؟

پردازنده‌های x86 چهار حلقه حفاظت دارند:

Ring 3 : User Mode

Ring 0 : Kernel Mode

برنامه‌های معمولی، مرورگرها، برنامه های کاربردی و حتی EDR Agent عمدتاً در User Mode فعالیت می‌کنند.

اما:

درایورها و سیستم‌عامل و کنترل‌کننده‌های سخت‌افزار در Kernel Mode (Ring 0) اجرا می‌شوند.

✔ سیستم‌عامل به هر چیز در Kernel Mode اعتماد کامل دارد.

وقتی یک درایور آسیب‌پذیر در Ring 0 لود شود:

  • می‌تواند حافظه Kernel را بخواند/بنویسد

  • می‌تواند Callbackهای امنیتی را غیرفعال کند

  • می‌تواند Hookهای EDR را حذف کند

  • می‌تواند Processها و Threadها را مخفی کند (DKOM)

  • می‌تواند PatchGuard را دور بزند

EDR در این حالت ناتوان است چون نمی‌تواند به سطح بالاتری از Kernel دسترسی داشته باشد.

بخش دوم: چرا درایورهای آسیب‌پذیر خطرناک‌اند؟

در گذشته، ویندوز شرطی داشت:

فقط درایورهای امضاشده مایکروسافت لود شوند.

اما مشکل اینجاست:

✔ درایور آسیب‌پذیرِ قدیمی که امضای معتبر داشته باشند ویندوز آن را معتبر می‌داند حتی اگر حفره‌های خطرناک داشته باشد مهاجم دقیقاً از همین سوءاستفاده می‌کند.

مهم‌ترین خطرات درایور آسیب‌پذیر:

  • Arbitrary Read/Write در Kernel memory

  • IOCTLهای بدون کنترل

  • Mapping مستقیم Physical memory

  • Patch کردن SSDT

  • Patch کردن Ntoskrnl

  • غیرفعال کردن Driver Signing Enforcement

  • غیرفعال کردن ETW Providerها

این قابلیت‌ها برای مهاجم بسیار قدرتمند هستند.

بخش سوم: روند واقعی حمله BYOVD (قدم‌به‌قدم)

۱) مهاجم ابتدا به دسترسی Admin یا SYSTEM می‌رسد

درایور نیاز به Privilege بالا دارد.

این دسترسی معمولاً با روشهای زیر به‌دست می‌آید:

  • Exploit

  • Password dump

  • Phishing

  • Token impersonation

۲) مهاجم یک درایور آسیب‌پذیر اما امضاشده را به سیستم وارد می‌کند

معمولاً درایورها از منابع زیر هستند:

  • نرم‌افزارهای قدیمی MSI Afterburner

  • GIGABYTE

  • ASUS GPU Tweak

  • Dell BIOS Update

  • LOADERهای چیت بازی‌ها

  • سرورهای آلوده

  • پروژه‌های GitHub قدیمی

این درایورها اغلب آسیب‌پذیری‌هایی از جنس IOCTL Arbitrary Write دارند.

۳) مهاجم درایور را با Service Control Manager لود می‌کند

مثال:

sc create vulnDrv type= kernel binPath= "C:\temp\vuln.sys"

sc start vulnDrv

ویندوز بدون مشکلی، آن را لود می‌کند.

۴) از IOCTL آسیب‌پذیر برای نوشتن در حافظه Kernel استفاده می‌شود

در این مرحله مهاجم:

Hookهای امنیتی EDR را پاک می‌کند و Callbacks امنیتی را Null می‌کند وساختارهای EPROCESS را Patch می‌کند وخود را از Process list حذف می‌کند وETW را می‌کُشد

مثال یک IOCTL واقعی:

DeviceIoControl(hDriver, IOCTL_ARBITRARY_WRITE, &input, sizeof(input), NULL, 0, &bytes, NULL);

۵) EDR کور می‌شود و دیگر هیچ رفتار مخربی را نمی‌بیند

EDRهای زیر همگی در برابر این حمله آسیب‌پذیرند اگر Blocklist فعال نباشد.

  • CrowdStrike

  • Defender for Endpoint

  • SentinelOne

  • Sophos

  • CarbonBlack

  • Trellix

۶) مهاجم کارهای Post-Exploitation را بدون Detection انجام می‌دهد

کارهایی مثل:

  • LSASS dump

  • Credential theft

  • Mimikatz in kernel

  • Unhooking syscalls

  • Process injection

  • Dropping ransomware

و EDR هیچ‌کدام را نمی‌بیند.

بخش چهارم: مثال‌های واقعی از حمله BYOVD

1- بررسی MSI Afterburner (RTCore64.sys)

یکی از مشهورترین درایورهای سوءاستفاده‌شده.

Arbitrary write

RW به physical memory

حذف Hookهای EDR

گروه‌های حمله: Lazarus، Conti، BlackCat، LockBit

2- گرافیک GIGABYTE (CVE-2018-19320)

درایور امضاشده با IOCTLهای بدون محدودیت.

3- Zemana AntiMalware Driver

مهاجمان با آن:

SSDT را patch و EDR callbacks را حذف و EDR را blind کردند.

4- Avast AntiRootkit Driver

یک آنتی‌ویروس، خود عامل آسیب‌پذیر بود.

بخش پنجم: تکنیک‌های دقیق مهاجمان

1- DKOM (Direct Kernel Object Manipulation)

مهاجم EPROCESS را اصلاح می‌کند:

حذف process از Active Process Links و غیرقابل مشاهده برای EDR و Task Manager و امکان اجرای stealthy malware

2- Unhooking EDR

EDRها اغلب: Syscallها و APIها و SSDT و Inline functions را Hook می‌کنند.

مهاجم با یک درایور:

Hookها را Clean می‌کند وsyscallها را Restore می‌کند وEDR را کاملاً بی‌اثر می‌کند

3- Callback Nullification

EDR از Callbackهای kernel استفاده می‌کند:

  • PsSetCreateProcessNotifyRoutine

  • PsSetCreateThreadNotifyRoutine

  • PsSetLoadImageNotifyRoutine

  • ObRegisterCallbacks

مهاجم:

آدرس جدول Callbacks را Null می‌کند و EDR دیگر هیچ رویدادی نمی‌بیند

4- PatchGuard Bypass

برخی درایورها امکان تزریق shellcode به Kernel و کشته شدن PatchGuard و نگه‌داشتن rootkit را فراهم می‌کنند.

بخش 6: دفاع در برابر BYOVD

1- فعال‌سازی Microsoft Vulnerable Driver Blocklist

مهم‌ترین دفاع.

ویندوز ۱۱

Defender : Core Isolation : Memory Integrity

ویندوز سرور HVCI فعال شود.

2- استفاده از EDRهای Kernel-mode Telemetry

فقط برخی EDRها:

  • Kernel Callbacks Integrity

  • Driver load monitoring

  • Syscall integrity check

دارند.

3- بلاک‌لیست اختصاصی درایورها :در شرکت‌های بزرگ ۱۰۰ تا ۴۰۰ درایور باید بلاک شوند.

4- بررسی Driver Signature Enforcement: مطمئن شوید DSE غیرفعال نشده.

5- جلوگیری از Privilege Escalation اولیه: چون تا Admin/SYSTEM نباشد، درایور قابل نصب نیست.

6- SIEM-based Detection Rules

IOCها:

  • ایجاد سرویس درایور

  • ایجاد کلیدهای Registry در:

    HKLM\SYSTEM\CurrentControlSet\Services\*

  • فایل‌های جدید .sys در مسیر:

    C:\Windows\System32\drivers\

7- جلوگیری از Load مستقیم درایور از طریق Group Policy

Policy:

Block installation of devices that match any of these device IDs

بخش هفتم : رفتارشناسی IOCها و Artifactهای BYOVD

IOCهای مهم:

  • ایجاد سرویس‌های Kernel Mode جدید

  • ایجاد فایل در مسیر drivers

  • DeviceIoControl calls به یک درایور ناشناخته

  • unhook شدن ناگهانی APIهای مهم

  • کاهش Eventهای EDR

  • سایه‌رویداد (Shadow Event) در SIEM

  • ناپدید شدن پروسس‌های فعال (DKOM)

بخش هشتم: چرا این حمله در سال 2024–2025 افزایش یافته است؟

رشد Ransomware-as-a-Service و تبدیل MSI Afterburner به Exploit عمومی و موجود بودن ۱۰۰ها درایور امضاشده آسیب‌پذیر وتاخیر سازمان‌ها در فعال‌سازی HVCI و هزینهٔ بالا برای معماری کامل Zero Trust

جمع‌بندی نهایی

درایورهای آسیب‌پذیر یک دروازهٔ مستقیم به قلب سیستم‌عامل هستند.و بهترین EDR ها نمی‌تواند بالاتر از سطح Kernel نظارت کند. مهاجم اگر بتواند یک درایور امضاشده اما آسیب‌پذیر را لود کند:

  • EDR را کور می‌کند

  • Telemetry را قطع می‌کند

  • Processها را مخفی می‌کند

  • امنیت سیستم را از پایه نابود می‌کند

  • حملات در سطح Kernel انجام می‌دهد

این یکی از پیشرفته‌ترین، خطرناک‌ترین و رایج‌ترین تکنیک‌های دفاع‌گریزی حال حاضر است.

edr
۱
۰
روزبه نوروزی
روزبه نوروزی
شاید از این پست‌ها خوشتان بیاید