در 13 مارس سال 2018 یک آسیب پذیری در خصوص سیستم احراز هویت CredSPP توسط شرکت مایکروسافت اعلام شد که در جهت رفع این آسیب پذیری یک بسته امنیتی با کد CVE-2018-0886 معرفی گردید. این بسته امنیتی از آسیب پذیری نوع Remote Code Execution بر روی سیستم عامل های ویندوز جلوگیری می کند. کسانیکه بسته امنیتی را بر روی سرورهای خود نصب کرده باشند در حین برقراری اتصال از راه دور با پیغام خطای زیر روبرو می شوند:
An Authentication error has occurred.
The function requested is not supported.
Remote computer: <servername>
This could be due to CredSSP encryption oracle remediation
این بسته بر روی سیستم عامل های زیر اعمال می گردد:
Windows Server 2016Windows Server 2012 R2 StandardWindows Server 2012 StandardWindows 8.1Windows 10Windows 7Windows 10 Version 1511Windows 10 Version 1607Windows 10 Version 1703Windows 10 version 1709Windows Server 2016Windows Server 2008 R2 StandardWindows Server 2008 FoundationWindows Server 2008 Enterprise without Hyper-VWindows Server 2008 Service Pack 2Windows Server 2008 DatacenterWindows Server 2008 for Itanium-Based SystemsWindows Server 2008 Datacenter without Hyper-VWindows Server 2008 EnterpriseWindows Server 2016 StandardWindows Server 2016 EssentialsWindows Server 2016 DatacenterWindows Server Datacenter CoreWindows Server Standard CoreWindows Vista Service Pack 2Windows Server 2008 R2 EnterpriseWindows Server 2008 R2 DatacenterWindows Web Server 2008 R2Windows 7 EnterpriseWindows 7 UltimateWindows 7 StarterWindows 7 Home PremiumWindows 7 ProfessionalWindows 7 Home BasicWindows Server 2008 R2 FoundationWindows Server 2008 R2 Service Pack 1Windows 7 Service Pack 1Windows Server 2012 EssentialsWindows Server 2012 DatacenterWindows Server 2012 FoundationWindows Server 2012 R2 DatacenterWindows Server 2012 R2 EssentialsWindows RT 8.1Windows Server 2012 R2 FoundationWindows 8.1 ProWindows 8.1 EnterpriseWindows Web Server 2008Windows Server 2008 Standard
اما CredSPP چیست؟ سیستم احراز هویت CredSPP یا Credential Security Support Provider protocol یک پروتکل جهت تایید درخواست های احراز هویت سایر برنامه ها می باشد. به طور مثال زمانیکه می خواهید اتصال ریموت به یک سیستم برقرار نمایید، درخواست هویت شما توسط CredSPP صحت سنجی می شود. این آسیب پذیری در نسخه ها Unpatched این پروتکل وجود دارند. هکری که بتواند این آسیب پذیری را به نفوذ تبدیل کند می تواند با باز ارسال درخواست احراز هویت قبلی کاربر که قبلا توسط این پروتکل تایید شده است، اقدام به اجرای کدهای مختلف از راه دور نماید.
بسته بروزرسانی رفع این ضعف امنیتی، با Patch کردن این پروتکل باعث رفع آسیب پذیری شده و پس از آن کاربرانی که می خواهند اتصال از راه دور به سیستم برقرار کنند می بایست یک Policy امنیتی بر روی سیستم خود اعمال کنند. این Policy هم از طریق Group Policy و هم از طریق رجیستری ویندوز امکانپذیر است. در صورت استفاده از Group Policy مراحل زیر را طی کنید:
Policy path: Computer Configuration -> Administrative Templates -> System -> Credentials Delegation
Setting name: Encryption Oracle Remediation
در این بخش گزینه های زیر وجود دارند. انتخاب گزینه Mitigated باعث حفظ سطح امنیتی و در عین حال برقراری امکان اتصال ریموت کاربرانی که از بسته امنیتی جهت رفع این خطا استفاده نکرده اند می شود:
Force updated clients (0) / Mitigated (1) / Vulnerable (2)
اما اگر از رجیستری می خواهید اقدام به رفع این مشکل نمایید مراحل زیر را طی نمایید:
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters
اگر دو کلید CredSPP و Parameters وجود نداشتند اقدام به ایجاد آنها نمایید. پس از آن یک DWORD با نام AllowEncryptionOracle ایجاد نمایید و مقدار آنرا برابر یکی از اعداد داخل پرانتز بالا نمایید. هر عدد معادل ارزشی است که در کنار آن نوشته شده است. جهت ایجاد شرایط از نوع Mitigated عدد 1 را در این DWORD به صورت Hexadecimal وارد نمایید.
نکته: این تغییر رجیستری نیازی به ریبوت ندارد.