T1547.006: Kernel Modules and Extensions
Adversaries may modify the kernel to automatically execute programs on system boot. Loadable Kernel Modules (LKMs) are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. For example, one type of module is the device driver, which allows the kernel to access hardware connected to the system.[1]
When used maliciously, LKMs can be a type of kernel-mode Rootkit that run with the highest operating system privilege (Ring 0).[2] Common features of LKM based rootkits include: hiding itself, selective hiding of files, processes and network activity, as well as log tampering, providing authenticated backdoors, and enabling root access to non-privileged users.[3]
Kernel extensions, also called kext, are used in macOS to load functionality onto a system similar to LKMs for Linux. Since the kernel is responsible for enforcing security and the kernel extensions run as apart of the kernel, kexts are not governed by macOS security policies. Kexts are loaded and unloaded through kextload and kextunload commands. Kexts need to be signed with a developer ID that is granted privileges by Apple allowing it to sign Kernel extensions. Developers without these privileges may still sign kexts but they will not load unless SIP is disabled. If SIP is enabled, the kext signature is verified before being added to the AuxKC.[4]
Since macOS Catalina 10.15, kernel extensions have been deprecated in favor of System Extensions. However, kexts are still allowed as "Legacy System Extensions" since there is no System Extension for Kernel Programming Interfaces.[5]
Adversaries can use LKMs and kexts to conduct Persistence and/or Privilege Escalation on a system. Examples have been found in the wild, and there are some relevant open source projects as well.[6][7][8][9][10][11][12][13]
Analyst context for executives and security teams
Kernel modules on Linux and kernel extensions on macOS run at the highest operating-system privilege. If an adversary can make one load at boot, the system may remain compromised while hiding files, processes, network activity, or logs. This matters because normal endpoint and SOC visibility can be weakened by the same component providing persistence or privilege escalation.
Executive priority
Treat this as a high-assurance endpoint integrity issue for Linux and macOS assets, especially servers, developer systems, and other machines where root or administrator misuse would threaten continuity or sensitive intellectual property. Leaders should ask whether privileged account controls, approved kernel/module inventories, macOS kernel-extension governance, and incident response procedures can prove what kernel code is allowed to run and what changed after a suspected compromise.
Technical view
This is ATT&CK T1547.006, a Linux/macOS sub-technique of Boot or Logon Autostart Execution used for persistence and privilege escalation. MITRE does not provide official detection text for this object, but the relationship set includes DET0450, a detection strategy for kernel modules and extensions autostart execution. SOC and IR teams should validate monitoring around loadable kernel modules, macOS kext activity via kextload/kextunload, boot-time module loading, privileged account use, and evidence of rootkit behavior such as hidden processes, files, network activity, or log tampering. Because kernel-mode code can interfere with visibility, host telemetry should be corroborated with trusted baselines, recovery images, and out-of-band evidence where available.
Likely telemetry
- Linux kernel module inventory and module load/unload evidence
- macOS kernel extension inventory and kextload/kextunload command activity
- Boot-time startup and system configuration evidence related to module or extension loading
- Privileged account activity, especially root or administrative actions preceding module changes
- Endpoint security and antimalware alerts related to rootkits or unauthorized kernel-level code
Detection direction
- Build and tune detections around new, unexpected, unsigned, deprecated, or policy-disallowed kernel modules/extensions on Linux and macOS.
- Compare observed modules/extensions against known-good baselines for each asset class; investigate drift on high-value systems first.
- Correlate kernel module or kext changes with privileged account activity and boot/logon persistence context from parent technique T1547.
- Account for false positives from legitimate device drivers, security tools, virtualization components, and approved legacy macOS system extensions.
- Do not rely only on local host logs; the technique description notes rootkit behaviors including hiding activity and log tampering, so corroboration is important during IR.
Mitigation priorities
- Prioritize privileged account management and least privilege for root/administrator access, consistent with M1026 and M1018.
- Restrict execution or loading of unauthorized code where feasible, consistent with M1038, including governance over approved kernel modules and macOS kernel extensions.
- Maintain antimalware/endpoint protection coverage for Linux and macOS, recognizing that kernel-mode threats may reduce local visibility and require layered validation.
- For macOS, manage kernel extension approval and legacy system extension use through policy and configuration processes supported by Apple platform guidance referenced by MITRE.
- Keep an asset-specific inventory of approved drivers, LKMs, and kexts so incident responders can quickly distinguish authorized operational components from suspicious additions.
Analyst notes and limits
Relationship context shows this technique is used by the Skidmap, Drovorub, and REPTILE software entries and by Operation CuckooBees. Those relationships support prioritizing detection engineering and IR playbooks for Linux/macOS kernel-level persistence, but they should not be treated as proof of activity in any local environment without telemetry.
MITRE provides no official detection text in the supplied object. The guidance above is derived from the official description, platforms, tactics, external references, and listed ATT&CK relationships only; local operating-system versions, management tooling, logging configuration, and approved driver/extension inventory are required to determine actual coverage.
Kernel Modules and Extensions
Adversaries may modify the kernel to automatically execute programs on system boot. Loadable Kernel Modules (LKMs) are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. For example, one type of module is the device driver, which allows the kernel to access hardware connected to the system.[1]
When used maliciously, LKMs can be a type of kernel-mode Rootkit that run with the highest operating system privilege (Ring 0).[2] Common features of LKM based rootkits include: hiding itself, selective hiding of files, processes and network activity, as well as log tampering, providing authenticated backdoors, and enabling root access to non-privileged users.[3]
Kernel extensions, also called kext, are used in macOS to load functionality onto a system similar to LKMs for Linux. Since the kernel is responsible for enforcing security and the kernel extensions run as apart of the kernel, kexts are not governed by macOS security policies. Kexts are loaded and unloaded through kextload and kextunload commands. Kexts need to be signed with a developer ID that is granted privileges by Apple allowing it to sign Kernel extensions. Developers without these privileges may still sign kexts but they will not load unless SIP is disabled. If SIP is enabled, the kext signature is verified before being added to the AuxKC.[4]
Since macOS Catalina 10.15, kernel extensions have been deprecated in favor of System Extensions. However, kexts are still allowed as "Legacy System Extensions" since there is no System Extension for Kernel Programming Interfaces.[5]
Adversaries can use LKMs and kexts to conduct Persistence and/or Privilege Escalation on a system. Examples have been found in the wild, and there are some relevant open source projects as well.[6][7][8][9][10][11][12][13]
How security teams should use this page
Treat this object as behavior context, not an attribution claim. Validate the related groups, software, data sources, and mitigations against official ATT&CK relationships and your own telemetry before making control-coverage decisions.
Related techniques
This mirrors the MITRE pattern of making group, software, campaign, and technique relationships scannable. Relationship notes come from mirrored ATT&CK relationship text when available.
| Domain | ID | Name | Relationship / procedure |
|---|---|---|---|
| Enterprise | T1547 | Boot or Logon Autostart Execution | This object subtechnique of Boot or Logon Autostart Execution. |
| Enterprise | T1215 | Kernel Modules and Extensions | Kernel Modules and Extensions revoked by this object. |
Groups, software, and campaigns
S0502: Drovorub
S0468: Skidmap
S1219: REPTILE
C0012: Operation CuckooBees
Operation CuckooBees was a cyber espionage campaign targeting technology and manufacturing companies in East Asia, Western Europe, and North America since at least 2019. Security researchers noted the goal of Operation CuckooBees, which was still ongoing as of May 2022, was likely the theft of proprietary information, research and development documents, source code, and blueprints for various technologies. Researchers assessed Operation CuckooBees was conducted by actors affiliated with Winnti Group, APT41, and BARIUM.[1]
All related ATT&CK context
Mitigation direction
Object version and sync metadata
The fields below describe the current mirrored snapshot. When Glexia retains multiple ATT&CK source imports, you can open the table to compare the same object across releases (hashes and MITRE timestamps). For MITRE’s own release notes and roadmap, see ATT&CK resources — Updates .
Imported snapshots across ATT&CK releases (1)
| Release | Bundle imported | Object version | Modified | Status | Raw hash |
|---|---|---|---|---|---|
| 19.1 | 1.4 | Current bundle | 7a77549b7a45… |
Mirrored ATT&CK source object
The raw object is retained through the mirrored ATT&CK source bundle and object hash. The raw endpoint returns the exact object from the mirrored bundle when available.
External references and citations
MITRE external references are preserved separately from Glexia analysis so citations remain traceable to their original source records.
-
[1]
Linux Kernel Programming
Pomerantz, O., Salzman, P.. (2003, April 4). The Linux Kernel Module Programming Guide. Retrieved April 6, 2018.
Open source URL -
[2]
Linux Kernel Module Programming Guide
Pomerantz, O., Salzman, P. (2003, April 4). Modules vs Programs. Retrieved November 17, 2024.
Open source URL -
[3]
iDefense Rootkit Overview
Chuvakin, A. (2003, February). An Overview of Rootkits. Retrieved September 12, 2024.
Open source URL -
[4]
System and kernel extensions in macOS
Apple. (n.d.). System and kernel extensions in macOS. Retrieved March 31, 2022.
Open source URL -
[5]
Apple Kernel Extension Deprecation
Apple. (n.d.). Deprecated Kernel Extensions and System Extension Alternatives. Retrieved November 4, 2020.
Open source URL -
[6]
Volatility Phalanx2
Case, A. (2012, October 10). Phalanx 2 Revealed: Using Volatility to Analyze an Advanced Linux Rootkit. Retrieved April 9, 2018.
Open source URL -
[7]
CrowdStrike Linux Rootkit
Kurtz, G. (2012, November 19). HTTP iframe Injecting Linux Rootkit. Retrieved December 21, 2017.
Open source URL -
[8]
GitHub Reptile
Augusto, I. (2018, March 8). Reptile - LMK Linux rootkit. Retrieved April 9, 2018.
Open source URL -
[9]
GitHub Diamorphine
Mello, V. (2018, March 8). Diamorphine - LMK rootkit for Linux Kernels 2.6.x/3.x/4.x (x86 and x86_64). Retrieved April 9, 2018.
Open source URL -
[10]
RSAC 2015 San Francisco Patrick Wardle
Wardle, P. (2015, April). Malware Persistence on OS X Yosemite. Retrieved April 6, 2018.
Open source URL -
[11]
Synack Secure Kernel Extension Broken
Wardle, P. (2017, September 8). High Sierra’s ‘Secure Kernel Extension Loading’ is Broken. Retrieved November 17, 2024.
Open source URL -
[12]
Securelist Ventir
Mikhail, K. (2014, October 16). The Ventir Trojan: assemble your MacOS spy. Retrieved April 6, 2018.
Open source URL -
[13]
Trend Micro Skidmap
Remillano, A., Urbanec, J. (2019, September 19). Skidmap Linux Malware Uses Rootkit Capabilities to Hide Cryptocurrency-Mining Payload. Retrieved June 4, 2020.
Open source URL -
[14]
Apple Developer Configuration Profile
Apple. (2019, May 3). Configuration Profile Reference. Retrieved September 23, 2021.
Open source URL -
[15]
Linux Loadable Kernel Module Insert and Remove LKMs
Henderson, B. (2006, September 24). How To Insert And Remove LKMs. Retrieved November 17, 2024.
Open source URL -
[16]
Purves Kextpocalypse 2
Richard Purves. (2017, November 9). MDM and the Kextpocalypse . Retrieved September 23, 2021.
Open source URL -
[17]
User Approved Kernel Extension Pike’s
Pikeralpha. (2017, August 29). User Approved Kernel Extension Loading…. Retrieved September 23, 2021.
Open source URL -
[18]
Wikipedia Loadable Kernel Module
Wikipedia. (2018, March 17). Loadable kernel module. Retrieved April 9, 2018.
Open source URL -
[19]
mitre-attack T1547.006Open source URL
Source: MITRE ATT&CK®. © 2026 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation. MITRE ATT&CK and ATT&CK are registered trademarks of The MITRE Corporation. Glexia is not affiliated with or endorsed by MITRE.