12/02/2024 | News release | Distributed by Public on 12/02/2024 11:59
BYOVD Background
BYOVD involves adversaries writing to disk and loading a legitimate, but vulnerable, driver to access the kernel of an operating system. This allows them to evade detection mechanisms and manipulate the system at a deep level, often bypassing protections like EDR. For the exploitation to succeed, attackers must first ensure the driver is brought on the target system. This is followed by the initiation of a privileged process to load the driver, setting the stage for further malicious activities.
Historically, code execution within the Windows kernel had virtually no restrictions, permitting unrestricted memory access. However, this landscape changed with the introduction of Microsoft's security initiatives like PatchGuard and virtualization-based security (VBS) with hypervisor-protected code integrity (HVCI), which have established new protective barriers. Nevertheless, the kernel continues to be an attractive target for malicious actors due to the powerful privileges it offers.
To safeguard the kernel, Windows 64-bit operating systems enforce a requirement that all drivers must be digitally signed to be loaded, a security measure facilitated by the Code Integrity () module known as Driver Signature Enforcement (DSE). This requirement significantly challenges malicious entities attempting to execute inside the kernel space, compelling them to seek alternative methods.
In response to these stringent security measures, adversaries have developed the BYOVD strategy to gain kernel access. Once the driver is in place, it becomes a target for exploitation, enabling attackers to leverage its vulnerabilities to achieve a range of malicious objectives, underscoring the ongoing cat-and-mouse game between security defenders and adversaries in the realm of kernel security.
Some adversary objectives include:
Vulnerable, Weaponizable and Malicious Drivers
To aid detection development, CrowdStrike categorizes abused drivers into three classes: vulnerable, weaponizable and malicious. The former two categories fall under the BYOVD attack chain.
Vulnerable drivers are legitimate drivers with a software flaw that allows attackers to exploit them to perform actions beyond their intended functionality. For example, a flaw could include arbitrary reading and writing of kernel memory in the context of the driver. This would allow loading of a second malicious unsigned driver, bypassing Windows code signing restrictions.