Rootkit

Adversaries may use rootkits to hide the presence of programs, files, network connections, services, drivers, and other system components. Rootkits are programs that hide the existence of malware by intercepting/hooking and modifying operating system API calls that supply system information. [1]

Rootkits or rootkit enabling functionality may reside at the user or kernel level in the operating system or lower, to include a hypervisor, Master Boot Record, or System Firmware. [2] Rootkits have been seen for Windows, Linux, and Mac OS X systems. [3] [4]

ID: T1014
Sub-techniques:  No sub-techniques
Tactic: Defense Evasion
Platforms: Linux, Windows, macOS
Permissions Required: Administrator, SYSTEM, root
Data Sources: BIOS, MBR, System calls
Defense Bypassed: Anti-virus, Application control, Application control by file name or path, File monitoring, Host intrusion prevention systems, Signature-based detection, System access controls
CAPEC ID: CAPEC-552
Version: 1.1
Created: 31 May 2017
Last Modified: 20 June 2020

Procedure Examples

Name Description
APT28

APT28 has used a UEFI (Unified Extensible Firmware Interface) rootkit known as LoJax.[20][13]

APT41

APT41 deployed rootkits on Linux systems.[21]

Hacking Team UEFI Rootkit

Hacking Team UEFI Rootkit is a UEFI BIOS rootkit developed by the company Hacking Team to persist remote access software on some targeted systems.[11]

HiddenWasp

HiddenWasp uses a rootkit to hook and implement functions on the system.[12]

HIDEDRV

HIDEDRV is a rootkit that hides certain operating system artifacts.[10]

Hikit

Hikit is a Rootkit that has been used by Axiom.[15] [16]

HTRAN

HTRAN can install a rootkit to hide network connections from the host OS.[5]

LoJax

LoJax is a UEFI BIOS rootkit deployed to persist remote access software on some targeted systems.[13]

PoisonIvy

PoisonIvy starts a rootkit from a malicious file dropped to disk.[6]

Ramsay

Ramsay has included a rootkit to evade defenses.[17]

Rocke

Rocke has modified /etc/ld.so.preload to hook libc functions in order to hide the installed dropper and mining software in process lists.[22]

Skidmap

Skidmap is a kernel-mode rootkit that has the ability to hook system calls to hide specific files and fake network and CPU-related statistics to make the CPU load of the infected machine always appear low.[18]

Umbreon

Umbreon hides from defenders by hooking libc function calls, hiding artifacts that would reveal its presence, such as the user account it creates to provide access and undermining strace, a tool often used to identify malware.[7]

Uroburos

Uroburos is a rootkit used by Turla.[9]

Winnti for Linux

Winnti for Linux has used a modified copy of the open-source userland rootkit Azazel, named libxselinux.so, to hide the malware's operations and network activity.[14]

Winnti Group

Winnti Group used a rootkit to modify typical server functionality.[19]

Zeroaccess

Zeroaccess is a kernel-mode rootkit.[8]

Mitigations

This type of attack technique cannot be easily mitigated with preventive controls since it is based on the abuse of system features.

Detection

Some rootkit protections may be built into anti-virus or operating system software. There are dedicated rootkit detection tools that look for specific types of rootkit behavior. Monitor for the existence of unrecognized DLLs, devices, services, and changes to the MBR. [2]

References