Microsoft this week announced Kernel Data Protection (KDP), new technology that aims to protect the Windows kernel and drivers from data corruption attacks.
Such attacks can result in modifications to system security policies, privilege escalation, and security attestation tampering, among others, and Microsoft’s KDP aims to prevent them through virtualization-based security (VBS).
KDP includes a set of APIs through which some kernel memory is marked as read-only and cannot be modified. By preventing the tampering with policy data structures, for example, KDP can mitigate attacks where malicious, unsigned drivers are installed on the system.
Making kernel memory read-only can be used to mitigate attacks on Windows kernel, security products, inbox components, and third-party drivers, and can also result in improved performance and reliability, while driving adoption to virtualization-based security.
KDP builds upon the technology included by default in Secured-core PCs and adds another layer of protection for configuration data.
In Windows 10, KDP is implemented in two parts, namely static KDP, where software running in kernel mode can protect a section of its own image, and dynamic KDP, where kernel-mode software can “allocate and release read-only memory from a ‘secure pool’,” Microsoft says.
Already included in the latest Windows 10 Insider Build, the KDP (both dynamic and static) does not work with executable pages, since protection to those is provided by hypervisor-protected code integrity (HVCI).
“Both static KDP and dynamic KDP rely on the physical memory being protected by the SLAT [second-level address translation] in the hypervisor. When a processor supports the SLAT, it uses another layer for memory address translation,” the tech company explains.
Microsoft also reveals that the technology has been implemented into Windows Defender System Guard, where it ensures that there is a single active connection between the attestation broker and the attestation driver, and into Cl.dll, the code integrity engine in Windows, to protect internal policy state after initialization.
“These are just a few examples of how useful protecting kernel and driver memory as read-only can be for the security and integrity of the system. As KDP is adopted more broadly, we expect to be able to expand the scope of protection as we look to protect against data corruption attacks more broadly,” Microsoft notes.