
Use Driver Verifier with the new Code Integrity compatibility checks enabledĢ. There are four steps to verify driver compatibility:ġ. This will be patched soon, but is still compatible as Windows 10 will automatically strip the write permission (W) from the INIT section. Visual Studio 2013 currently marks the INIT section as RWX. To produce compatible drivers when using default settings. Section Alignment must be a multiple of 0x1000 (PAGE_SIZE). Use NX APIs/flags for memory allocation - NonPagedPoolNxĭon’t use sections that are both writable and executableĭon’t attempt to directly modify executable system memory Since memory pages and sections can never be writable and executable, the first step is to ensure a clear separation of data and code and not to attempt to directly modify code pages.

This means that kernel memory pages can never be Writable and Executable (W+X) and executable code cannot be directly modified. When using virtualization-based security to isolate Code Integrity, the only way kernel memory can become executable is through a Code Integrity verification.

Device Guard can use hardware technology and virtualization to isolate the Code Integrity (CI) decision-making function from the rest of the Windows operating system. That gives organizations the ability to lock down devices in a way that provides advanced malware protection against new and unknown malware variants as well as Advanced Persistent Threats (APTs). This post was last updated on February 8, 2018
