Join our Newsletter — 33% off our NHI Course

How do attackers use Kernel Modules and Extensions?

Attackers use Kernel Modules and Extensions to run code with high privilege inside the operating system kernel or to hide malicious activity. Unsigned or tampered modules can provide persistence, interception and defence evasion. Defenders should restrict loading of untrusted modules, monitor module changes and investigate unusual kernel-level behaviour.

How kernel modules and extensions become an attacker foothold

kernel modules and extensions sit at a privileged layer, so once an attacker can load one, they can shape what the operating system sees and does. That makes this technique useful for hiding processes, files, hooks and security tooling, while also creating a durable foothold that survives ordinary user-space cleanup. The core security issue is trust in code allowed to run inside the kernel.

Attackers usually get there by abusing weak module-signing policy, stolen administrative access, insecure update paths or a vulnerable driver or extension chain. Once loaded, the malicious component can intercept system calls, filter telemetry, tamper with integrity checks or protect follow-on payloads from inspection. Persistence Techniques Guide is the most direct internal navigation point for the broader persistence mechanisms that often accompany kernel-level abuse.

On macOS and Linux, the same logic applies even if the implementation differs: a kernel extension, loadable module or related low-level component can give the attacker deeper visibility and more control than a normal process ever gets. That is why this technique often pairs persistence with defence evasion and, in some cases, with credential interception or security product suppression. macOS Detection and Response Guide and Linux Detection and Response Guide both help readers connect kernel abuse to platform-specific telemetry and response.

What attackers gain from kernel-level control

Kernel-level execution is attractive because it changes the defender’s ground truth. A malicious module can hide itself from standard process, file and network views, modify security-relevant events before they are logged, and survive longer than a user-mode implant if removal procedures do not inspect the kernel path. That makes detection harder and containment more urgent once suspicious loading is observed.

It also gives attackers a platform for follow-on abuse, such as credential interception, access control tampering or protecting other malware components from scans and EDR actions. In practice, the module is rarely the whole campaign; it is often the layer that makes the rest of the campaign harder to see and easier to sustain. The most important analytical question is not just whether a module exists, but whether it can influence trust boundaries, telemetry integrity or security enforcement.

For defenders, the decisive clue is usually not a single indicator but a pattern: an unexpected module load, unusual kernel hooks, a change in signed-code posture, or behaviour that diverges from known-good driver and extension baselines. When those signals appear together, assume the attacker is using the kernel to mask another objective rather than treating the module as an isolated artifact.

How defenders limit the damage

The strongest control is to reduce who can load kernel code at all, then verify every approved path for signing, provenance and change control. That includes monitoring module and extension inventories, watching for drift in trusted drivers, and alerting on new or modified low-level components that do not match normal maintenance windows. External guidance on the control side is well covered by CISA cyber threat advisories, which helps teams align response with current threat patterns.

Defenders should also treat kernel telemetry as a high-value integrity signal rather than just another log source. If the kernel itself may be compromised, ordinary endpoint evidence can be incomplete or misleading, so validation from offline memory, secure boot state, known-good baselines and trusted management channels becomes more important. Where available, driver load integrity checks and module allowlisting are more useful than relying on after-the-fact cleanup.

MITRE D3FEND Guide is useful here because the defensive problem is really one of monitoring, hardening and evicting low-level persistence, not just spotting malware at the process layer.

Risk and Threat Considerations

Kernel modules and extensions create a high-impact failure mode because they can undermine both detection and trust at the same time. If an attacker controls that layer, they may be able to conceal persistence, blind monitoring and interfere with remediation, which means the compromise can outlive a normal incident-response playbook.

Failure mechanism: An attacker obtains the ability to load, replace or tamper with kernel code, then uses that privileged position to intercept security-relevant operations, suppress visibility or maintain persistence across reboots and cleanup attempts.

Impact: The environment may lose confidence in endpoint telemetry, remediation may miss the true root cause, and other attack stages can continue under cover of a trusted-looking operating system.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

MITRE ATT&CK and OWASP Non-Human Identity Top 10 address the attack and risk surface, while NIST SP 800-53 Rev 5, CIS Controls v8 and NIST CSF 2.0 set the governance and control requirements practitioners need to meet.

Framework Control / Reference Relevance
MITRE ATT&CK T1014 — Rootkit Kernel modules and extensions enable concealment and persistence through rootkit-like behavior.
Recommendation — Map suspicious kernel activity to T1014 and hunt for concealment, persistence and telemetry tampering.
NIST SP 800-53 Rev 5 SI-7 — Software, Firmware, and Information Integrity Kernel code integrity and unauthorized modification are central to this abuse pattern.
Recommendation — Enforce SI-7 checks on kernel code integrity, signing and unauthorized changes.
CIS Controls v8 CIS-4 — Secure Configuration of Enterprise Assets and Software Restricting kernel module loading depends on hardened configuration and approved software baselines.
Recommendation — Harden trusted module and extension baselines, and block unauthorized loading paths.
NIST CSF 2.0 PR.PS-04 — Platform Security Platform security covers controlling trusted code execution at the kernel layer.
Recommendation — Restrict kernel code loading and verify platform integrity continuously.
OWASP Non-Human Identity Top 10 NHI-06 — Insecure Cloud Deployment Configurations Low-level privileged components can be abused through weak deployment and trust configuration patterns.
Recommendation — Review privileged deployment settings that permit untrusted kernel components or extensions.

Practitioner Guidance

What to verify: Confirm the module or extension is expected, signed by a trusted source and consistent with the device’s build and maintenance history. If any of those checks fail, treat the host as potentially compromised rather than assuming it is merely misconfigured.

Decision rule: If a suspicious kernel component can persist or interfere with security controls, prioritise containment, integrity validation and module review before broad malware cleanup. Removing user-mode artifacts first can destroy evidence while leaving the kernel foothold intact.

What good looks like: Approved kernel components are inventory-managed, update-controlled and observable, while unauthorized loading attempts are blocked or immediately investigated. The team should be able to explain every kernel-level change and tie it to a change record or incident.

Practitioner takeaway: Kernel abuse is dangerous because it attacks the reliability of the defender’s view, so the response goal is not just removal, it is restoring trust in what the system is reporting.