پیرو اخبار منتشر شده در مورد آسیب پذیری ارتباطات Remote ویندوز سرورهای مایکروسافت که در خبرهای پیشین بررسی گردید محققان به این نتیجه رسیدند که Microsoft Windows RDP میتواند به یک مهاجم اجازه دور زدن صفحه قفل در Remote Sessionها را بدهد. پس از قفل شدن ریموت Session ویندوز، ویندوز از کاربر برای ادامه استفاده از Session، تایید هویت می خواهد و در واقع قفل شدن Session میتواند همانند Sessionهای Local سیستم، از طریق RDP نیز اتفاق بیفتد.
CWE-288: آسیبپذیری احراز هویت (CVE-2019-9510)
از نسخه 1803 ویندوز 10 که در آوریل 2018 منتشر شد و همچنین ویندوز سرور 2019، مدیریت Sessionهای RDP به گونهای تغییر کرده است که میتواند موجب رفتار غیرمنتظره در رابطه با قفل شدن Session شود.
اگر اختلالی در شبکه موجب قطع اتصال موقت RDP شود، پس از اتصال مجدد به صورت اتوماتیک، RDP Session بدون در نظر گرفتن اینکه سیستم Remote به چه حالتی رها شده بود، به حالت قفل نشده بازگردانده میشود. برای مثال مراحل زیر را در نظر بگیرید:
- کاربر با استفاده از RDP به Windows 10 1803 یا Server 2019 و یا نسخههای جدیدتر به صورت Remote متصل میشود.
- کاربر Session دسکتاپ Remote را قفل میکند.
- کاربر محدوده فیزیکی سیستمی را که به عنوان یک Client RDP مورد استفاده است را ترک میکند.
در این هنگام، مهاجم میتواند اتصال شبکه سیستم Client RDP را قطع کند. هنگامی که اتصال به اینترنت برقرار میشود، نرمافزار RDP Client به طور خودکار مجددا به سیستم Remote متصل خواهد شد. اما به سبب این آسیبپذیری، RDP Session مجددا به جای نمایش یک صفحه ورود به سیستم، به دسکتاپ وارد شده و بدون قفل بازگردانده میشود. این بدین معناست که سیستم Remote بدون نیاز به وارد کردن هیچگونه Credentialی باز میشود. سیستمهای احراز هویت دو مرحلهای که با صفحه ورود ویندوز ادغام میشوند، مانند Duo Security MFA، ممکن است توسط این مکانیزم دور زده شوند. گمان میشود که دیگر راهکارهای MFA که روی صفحه ورود ویندوز تاثیر میگذارند نیز دارای همین مشکل هستند. هر صفحهی ورودی که توسط یک سازمان اجرا میشود نیز دور زده خواهد شد.
لازم به ذکر است که این آسیبپذیری مربوط به عملکرد قفل صفحه نمایش مایکروسافت هنگام استفاده از RDP میباشد و در زمانی که هیچ راهکار MFAای نیز نصب نشده باشد، وجود دارد. در حالی که تولیدکنندههای محصولات MFA تحت تاثیر این آسیبپذیری قرار میگیرند، شرکتهای تولیدکننده نرمافزارهای MFA لزوما به علت وابسته بودن به صفحه قفل ویندوز مقصر نیستند.
در گذشته بیان شده بود که این آسیبپذیری به احراز هویت سطح شبکه (Network Level Authentication و یا به اختصار NLA) نیاز دارد. ما از آن زمان تاکنون بهاین نتیجه رسیدهایم که این رفتار به فعال بودن و یا نبودن NLA بستگی ندارد. این اطلاعات با بیانیه مایکروسافت که پیش از مطلع شدن ما در مورد این موضوع ارائه شده است در تضاد است.
تاثیرات آسیبپذیری RDP و راه حل آن
با متوقف کردن اتصال شبکه یک سیستم، مهاجمی با دسترسی به سیستمی که به عنوان Client Windows RDP مورد استفاده قرار میگیرد، میتواند به سیستم Remote متصل دسترسی پیدا کند، صرف نظر از اینکه سیستم Remote قفل شده باشد یا خیر. موسسهی CERT/CC در حال حاضر از راهحلی عملی برای این مشکل آگاه نیست. لطفا راهحلهای جایگزین زیر را در نظر بگیرید.
غیر فعال کردن اتصال مجدد RDP
Microsoft RDP از یک ویژگی به نام اتصال مجدد خودکار، که اجازه میدهد تا یک Client به یک Session موجود، پس از یک قطعی کوتاه مدت شبکه بدون نیاز به ارسال مجدد Credentialهای کاربر به سرور مجددا متصل شود، پشتیبانی میکند. این قابلیت اتصال مجدد خودکار، که در رابطه با این آسیبپذیری مورد استفاده قرار میگیرد، میتواند به مهاجم اجازهی ایجاد یک Session دسکتاپ بدون نیاز به ارائه Credentialهای کاربر، بدهد. قابلیت اتصال مجدد خودکار را میتوان در Windows Group Policy با غیرفعال کردن کلید زیر غیرفعال کرد:
Local Computer -> Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Connections -> Automatic reconnection
حفاظت از دسترسی به سیستمهای RDP Client
اگر سیستمی دارید که به عنوان یک RDP Client استفاده میشود، مطمئن شوید که سیستم محلی را، بجای سیستم Remote قفل میکنید. حتی اگر سیستم محلی اطلاعات باارزشی نداشته باشد، محافظت از Session فعال RDP فقط توسط محدود کردن دسترسی به سیستم Client ممکن خواهد بود. قفل کردن سیستم Remote توسط RDP محافظتی را ارائه نمیکند.
قطع اتصال Sessionهای RDP به جای قفل کردن آنها
از آنجا که قفل کردن Sessionهای Remote RDP هیچ حفاظت مؤثری را فراهم نمیکند، Sessionهای RDP باید به جای قفل شدن قطع شوند. این امر Session فعلی را باطل کرده، که مانع متصل شدن مجدد خودکار RDP بدون احراز هویت میشود.