آروان‌کلاد

در اواخر اردیبهشت ماه سال جاری، شرکت مایکروسافت خبر از وصله شدن آسیب‎پذیری روی سرویس RDP ارایه کرد که می‎تواند منجر به اجرای دستور از راه دور یا RCE شود. این آسیب‌پذیری با نام CVE-2019-0708 در پایان سال گذشته‎ی میلادی و برای نسخه‎های Windows 2008 R2 ،Windows 2008 و Windows 2003 از نسخه‎های سرور ویندوز و نسخه‎های Windows 7 ،Windows Vista و Windows XP از نسخه‎های کلاینت ویندوز گزارش شد. چون سرویس RDP استفاده‎ی بسیاری در اینترنت دارد، آسیب‎پذیری با سطح critical severity، بسیار خطرناک به نظر می‎رسد.

از آنجا که تجربه‎ی آسیب‎پذیری‎هایی مانند EternalBlue روی سرویس SMB مایکروسافت باعث به وجود آمدن Wormها و Ransomware های مختلف مانند WannaCry شده بود، اکسپلویت آسیب‌پذیری سرویس RDP با نام BlueKeep برای CVE-2019-0708 تا ماه پیش به‌شکل عمومی انتشار نیافته بود و تنها روش تبدیل این آسیب‎پذیری به منع سرویس، در دسترس برخی افراد بود. اما در ماه گذشته برخی از اکسپلویت‌ پک‎ها شروع به انتشار اکسپلویت‎های اجرای دستور از راه دور برای این آسیب‎پذیری کردند. در نتیجه احتمال شیوع wormها و ransomwareهایی با استفاده از این آسیب‎پذیری بسیار بیش‎تر شده است. این آسیب‎پذیری قبل از تصدیق اصالت کاربر رخ می‎دهد که امکان به‎کارگیری این آسیب‎پذیری برای انتشار worm را ایجاد می‎کند. برای برطرف کردن این آسیب‎پذیری روی سرویس RDP باید سیستم‎عامل ویندوز خود را به‎روزرسانی کنید و از به‎روز شدن این وصله طبق جدول مایکروسافت و به‌طور خاص KB4499175 مطمین شوید؛ وگرنه، به‌راحتی در ماه‎های آینده مورد نفوذ قرار خواهید گرفت. برای بررسی این‎که سرویس شما آسیب‎پذیر است یا نه می‎توانید از این ابزار استفاده کنید.

 

توضیح فنی

پروتکل RDP امکان ایجاد ارتباط بین کلاینت و سرور را فراهم می‎کند. در شکل زیر می‎توانید ایجاد ارتباط مربوط به پروتکل RDP مایکروسافت را مشاهده کنید.

آسیب‎پذیری CVE-2019-0708

این ارتباط برای تبادل داده با استفاده از کانال‎های دو طرفه‎ی مجازی بین آن‌ها شکل می‎گیرد. در نسخه‎ی ویندوز 2000، 32 کانال مجازی ایستا (Static Virtual Channels(SVCs)) در RDP 5.1 ایجاد شد ولی به‌دلیل محدودیت این تعداد کانال‎ها، کانال‎های مجازی پویا ((Dynamic Virtual Channels (DVCs) که درون کانال‎های مجازی ایستا بودند، شکل گرفت. کانال‎های مجازی ایستا در ابتدای نشست ایجاد شده و تا انتهای آن باقی می‎مانند ولی در مقابل کانال‎های مجازی پویا براساس نیاز ایجاد و خاتمه پیدا می‎کنند.

وصله‎ی ارایه شده برای CVE-2019-0708، توابع IcaBindVirtualChannels_ و IcaRebindVirtualChannels_ در درایور مربوط به سرویس RDP با نام termdd.sys را که مرتبط با کانال‎های مجازی ایستا هستند، تغییر داده است که نشان‌دهنده‎ی وجود آسیب‎پذیری در این قسمت است. این آسیب‎پذیری به‎دلیل پیش‌فرض غلط سرویس RDP برای متصل کردن کانال مجازی ایستای MS_T120 به‎عنوان کانال مرجع به شماره‎ی 31 است. این کانال برای استفاده‎ی داخلی سرویس RDP با اجزای سیستم‎عامل تعبیه شده بود. اما در هنگام آغاز ارتباط، کلاینت می‎تواند کانال مجازی دیگری را با نام MS_T120 با شماره‎ای غیر از 31 معرفی کند که منجر به آسیب‎پذیری دسته‎ی heap corruption و Use After Free می‎شود. این آسیب‎پذیری که از دسته‎ی آسیب‎پذیری Use After Free است، اگر پس از بسته‎شدن کانال مجازی فرآیند Cleanup انجام نشود -که پیام دارای سایز اشتباه نباشد- می‎تواند منجر به اجرای دستور از راه دور شود.

CVE-2019-0708 - وصله‌ی CVE

ارسال پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *