در اکتبر سال ۲۰۱۸ سیستم خودکار پیشگیری از نفوذ کسپرسکی (AEP) وجود یک حفره امنیتی در سیستم عامل ویندوز را تشخیص داد. در بررسی های بیشتر مشخص شد که این نقص درون ntoskrnl.exe قرار دارد. در تاریخ ۲۹ اکتبر سال ۲۰۱۸ این موضوع تحت عنوان یک گزارش به شرکت مایکروسافت ارائه گردید. شرکت مایکروسافت این موضوع را تائید کرد و کد CVE-2018-8611 را به آن اختصاص داد. این شرکت در ماه دسامبر اقدام به انتشار یک پچ نمود تا این مشکل را برطرف سازد.
این به عنوان سومین حفره امنیتی در سیستم عامل ویندوز است که از پائیز سال گذشته با فناوری های پیشرفته شرکت کسپرسکی کشف و گزارش شده است. برخلاف حفره های امنیتی win32k.sys (CVE-2018-8589 و CVE-2018-5483)، CVE-2018-8611 یک تهدید بسیار خطرناک محصوب می شود زیرا مستقیما با هسته مرکزی سیستم عامل (kernel) در ارتباط می باشد.
برای رهایی از این حفره امنیتی می توان از سندباکس مدرن مرورگرهای پیشرفته شامل Chrome و Edge استفاده کرد. سیستم فیلترینگ هیچ گاه اجازه ارتباط بسته های ورودی با سیستم ntoskrnl.exe را فراهم نمی کند.
دقیقا مانند CVE-2018-8589، شرکت کسپرسکی معتقد است که exploit هم از چند روش مختلف حمله از جمله FruityArmor و SandCat استفاده می کند. FruityArmor می تواند به صورت پیشرفته از SandCat APT استفاده کند که اخیرا کشف شده است. علاوه بر این ها، این exploit قادر است از قالب FinFisher / FinSpy استفاده کند.
شرکت کسپرسکی این نقص امنیتی را از طریق راه های زیر تشخیص داده است:
جهت دریافت آپدیت های مورد نظر به سایت مایکروسافت مراجعه کنید.
CVE-2018-8611 is a race condition that is present in the Kernel Transaction Manager due to improper processing of transacted file operations in kernel mode.
This vulnerability successfully bypasses modern process mitigation policies, such as Win32k System call Filtering that is used, among others, in the Microsoft Edge Sandbox and the Win32k Lockdown Policy employed in the Google Chrome Sandbox. Combined with a compromised renderer process, for example, this vulnerability can lead to a full Remote Command Execution exploit chain in the latest state-of-the-art web-browsers.
We have found multiple builds of exploit for this vulnerability. The latest build includes changes to reflect the latest versions of the Windows OS.
Similarly to CHAINSHOT, this exploit heavily relies on the use of C++ exception handling mechanisms with custom error codes.
To abuse this vulnerability exploit first creates a named pipe and opens it for read and write. Then it creates a pair of new transaction manager objects, resource manager objects, transaction objects and creates a big number of enlistment objects for what we will call “Transaction #2”. Enlistment is a special object that is used for association between a transaction and a resource manager. When the transaction state changes associated resource manager is notified by the KTM. After that it creates one more enlistment object only now it does so for “Transaction #1” and commits all the changes made during this transaction.
After all the initial preparations have been made exploit proceeds to the second part of vulnerability trigger. It creates multiple threads and binds them to a single CPU core. One of created threads calls NtQueryInformationResourceManagerin a loop, while second thread tries to execute NtRecoverResourceManager once. But the vulnerability itself is triggered in the third thread. This thread uses a trick of execution NtQueryInformationThread to obtain information on the latest executed syscall for the second thread. Successful execution of NtRecoverResourceManager will mean that race condition has occurred and further execution of WriteFile on previously created named pipe will lead to memory corruption.
As always, we provided Microsoft with a proof of concept for this vulnerability, along with source code. And it was later shared through Microsoft Active Protections Program (MAPP).
منبع: Kaspersky