GhostHook

آسیب‌پذیری‌هایی در سیستم حفاظت هسته مایکروسافت یا PatchGurad کشف شده است که به مهاجمان اجازه می‌دهد تا rootkitهایی بر روی کامپیوترهایی که از آخرین و ایمن‌ترین نسخه سیستم‌عامل ویندوز یعنی ویندوز ۱۰ استفاده می‌کنند، مستقر کنند.

محققین در شرکت CyberArk Labs نوعی روش حمله جدید را پیاده‌سازی کردند که می‌تواند به مهاجمان اجازه دهد تا به‌طور کامل PatchGuard را دور بزنند و یک کد هسته مخرب  یا همان rootkit را در سطح هسته پیاده‌سازی کنند.

PatchGuard یا حفاظت از وصله شدن هسته(۱) یک ابزار طراحی‌شده است تا از وصله شدن هسته‌ی نسخه‌های ۶۴ بیتی سیستم‌عامل ویندوز جلوگیری کند تا از این طریق مهاجمان نتوانند rootkit ها یا کدهای مخرب را در سطح دسترسی هسته اجرا کنند.

این حمله که GhostHook نامیده شده است نوعی حمله طراحی‌شده توسط CyberArk Labs است[۱] که در حقیقت اولین نوع از حملاتی است که فن‌آوری دفاعی را برای دور زدن PatchGuard خنثی می‌کند. گرچه این حمله نیاز دارد تا مهاجم بر روی سیستم در حال خطر حضور داشته باشد و کد موردنظر را در هسته اجرا کند.

بنابراین اساساً این حمله نوعی حمله بهره‌برداری ثانویه(۲) است.

محققان CyberArk می‌گویند: “آسیب‌پذیری GhostHook نه نوعی آسیب‌پذیری افزایش سطح دسترسی و نه نوعی روش بهره‌برداری است. این روش برای یک سناریوی بهره‌برداری ثانویه طراحی‌شده است که مهاجم بتواند کنترلی بیش از میزان اجازه داده شده داشته باشد. ازآنجاکه کد هسته مخرب یا rootkitها اغلب در پی ماندگاری دائم در قلمرو غیردوستانه(۳) هستند، فن‌آوری نهان‌کاری نقشی اساسی را در این میان بازی می‌کند.”

اجرای Rootkit در سطح هسته در ویندوز ۱۰

سناریوی این حمله شامل استفاده اولیه از یک بهره‌بردار یا بدافزار است تا سیستم مورد هدف را در معرض خطر قرار دهد و سپس GhostHook را به‌صورت دائمی و مخفیانه بر روی کامپیوتر دارای سیستم‌عامل ویندوز ۱۰ و از نوع ۶۴ بیتی پیاده‌سازی کند.

هنگامی‌که سیستم موردنظر در معرض خطر قرار گیرد، یک مهاجم می‌تواند یک rootkit را در هسته دستگاهی که در معرض خطر قرارگرفته پیاده‌سازی کند که کاملاً برای آنتی‌ویروس‌ها و دیگر محصولات امنیتی غیرقابل تشخیص است و همچنین برای PatchGaurd شرکت مایکروسافت نیز غیرقابل مشاهده است.

PatchGurad

شرکت CyberArk اعتقاد دارد که برطرف کردن این مشکل توسط شرکت مایکروسافت کار سختی خواهد بود چراکه این روش از سخت‌افزار برای به دست گرفتن کنترل ساختارهای حیاتی هسته استفاده می‌کند.

GhostHook در حقیقت از ضعف پیاده‌سازی Intel PT توسط مایکروسافت بهره‌برداری می‌کند.

حمله GhostHook در حقیقت PatchGaurd را توسط استفاده از ضعف در پیاده‌سازی یک ویژگی نسبتاً جدید در پردازنده‌‌های اینتل به نام Intel PT یا ردیابی پردازنده(۴) توسط مایکروسافت، دور می‌زند. این عمل در حقیقت در مرحله‌ای انجام می‌شود که Intel PT در حال ارتباط با سیستم‌عامل است.

Intel PT که ماه‌ها پس از PatchGuard منتشر شده است در حقیقت شاخص‌های امنیتی را فعال می‌کند تا دستوراتی را که در پردازنده اجرا می‌شوند را مونیتور و دنبال کنند. این امر به این دلیل انجام می‌شود که بهره‌بردارها، بدافزارها یا کدها قبل از دستیابی به سیستم‌عامل اصلی شناسایی شوند.

اگرچه این تکنولوژی را می‌توان به‌منظور اهداف قانونی نیز مورد سوءاستفاده قرار داد و مهاجمان همچنین می‌توانند از مکانیزم اخطار buffer-is-going-full بهره برده تا کنترل اجرای رشته‌ها(۵) را در دست گیرند.

محققان می‌گویند: “چگونه ما می‌توانیم به این آسیب‌پذیری از طریق Intel PT دسترسی داشته باشیم؟ با اختصاص دادن یک بافر بسیار کوچک برای بسته‌های PT. از این طریق، فضای بافر پردازنده به‌سرعت به اتمام می‌رسد و به نگه‌دارنده(۶) PMI تغیر مکان می‌دهد. نگه‌دارنده PMI بخشی از کدی است که توسط ما کنترل شده و hook را اجرا می‌کند.”

روش‌های hooking که هم بی‌خطر (مانند راه‌حل‌های امنیت نرم‌افزار، برنامه‌های سیستمی و ابزارهایی برای برنامه‌نویسی) و هم مخرب (مانند rootkitها) هستند، می‌توانند کنترل تمامی سیستم‌عامل یا کنترل بخشی از یک نرم‌افزار را در اختیار مهاجمان قرار دهند.

مایکروسافت در حال حاضر هیچ‌گونه قصدی برای انتشار وصله مناسب برای برطرف کردن این آسیب‌پذیری ندارد.

مایکروسافت، GhostHook را به‌عنوان یک تهدید جدی مدنظر قرار نداده است و به شرکت امنیتی مذکور گفته است که به نظر نمی‌رسد هیچ‌گونه وصله اضطراری برای برطرف کردن این مشکل مورد نیاز باشد اما این موضوع را در نسخه‌های بعدی ویندوز مدنظر قرار خواهد داد.

سخنگوی مایکروسافت دراین‌باره گفته است: “تیم مهندسی، آنالیز خود را بر روی این گزارش به اتمام رسانده‌اند و تشخیص داده‌اند که این آسیب‌پذیری از قبل نیازمند اجرای کد هسته بر روی سیستم توسط مهاجم است. بنابراین، این آسیب‌پذیری در حال حاضر نیازمند به‌روزرسانی امنیتی برای برطرف شدن نیست و در نسخه‌های آتی ویندوز مدنظر قرار می‌گیرد. این پرونده ازنظر ما بسته شده است.”

در جوابیه این گزارش همچنین مایکروسافت یک بیانیه منتشر کرده است که در اینجا آورده شده است:

“این روش نیازمند این است که یک مهاجم از قبل سیستم مورد هدف را به‌طور کامل در معرض خطر قرار داده باشد. ما به مشتریان خود پیشنهاد می‌دهیم تا در عادت‌های وب‌گردی آنلاین خود (برای مثال کلیک کردن بر روی لینک یک صفحه وب به‌خصوص، باز کردن فایل‌های ناشناخته  یا تأیید انتقال فایل) جانب احتیاط را رعایت کنند.”

بااین‌حال، شرکت CyberArk از پاسخ مایکروسافت ناامید شده است و گفته است که مایکروسافت باید این مطلب را درک کند که PatchGuard جزئی از هسته است که به همین دلیل نباید در هیچ حالتی دور زده شود.

منابع

[۱]https://www.cyberark.com/threat-research-blog/ghosthook-bypassing-patchguard-processor-trace-based-hooking

[۲] http://thehackernews.com/2017/06/ghosthook-windows-10-hacking.html


(۱) Kernel Patch Protection
(۲) post-exploitation
(۳) unfriendly territory
(۴) Processor Trace
(۵) thread
(۶) handler