Evolving Threat Landscape: The Rise of Linux Rootkits
In recent years, the cybersecurity landscape has witnessed a pivotal shift with the rapid adoption of Linux in critical domains such as cloud infrastructure, containerization, and Internet of Things (IoT) devices. Historically, rootkits targeting Linux have garnered less attention compared to their Windows counterparts, but this is changing as attackers adapt to evolving technologies and defensive measures.
Over the past two decades, Linux rootkits have undergone significant transformations. Initially, early threats predominantly utilized userland shared object injections or Loadable Kernel Modules (LKMs), which were relatively easier to detect. However, as security measures have improved, modern threat actors have innovated by developing advanced techniques that allow them to hide in plain sight within the system.
Recent studies by security researchers, particularly from Elastic, have highlighted how the latest generation of Linux rootkits harnesses legitimate and sophisticated kernel interfaces, notably extended Berkeley Packet Filter (eBPF) and io_uring. These techniques enable attackers to achieve unprecedented levels of stealth, persistence, and evasion against contemporary Endpoint Detection and Response (EDR) systems.
The evolution of Linux rootkits is a direct response to the enhanced defensive strategies employed by enterprises, which increasingly implement measures like Secure Boot, module signing, and stringent kernel lockdown policies. Such defenses have made traditional kernel-space rootkits more vulnerable to detection and easier for standard security tools to block. In light of this, attackers are now focusing their efforts on kernel features designed for performance and tracing, ingeniously transforming them into potent tools for subverting operating systems.
The Shift to eBPF for Undetectable Execution
The extended Berkeley Packet Filter (eBPF) was originally created as a tool for safe packet filtering and kernel tracing. Since its introduction in Linux kernel version 4.8, it has evolved into a flexible in-kernel virtual machine. This transition permits developers to execute bytecode securely within the kernel without the need for loading custom modules or altering the kernel’s source code. Alarmingly, malicious actors have recognized that eBPF can be weaponized to attach hidden code to various kernel elements such as system call hooks, tracepoints, or Linux Security Module (LSM) events.
Because eBPF rootkits do not involve traditional kernel module loading, they remain effectively invisible to commonly used LKM scanners, such as rkhunter or chkrootkit. Additionally, they can bypass Secure Boot provisions, as they do not necessitate loading out-of-tree kernels. Noteworthy examples of this method include proof-of-concept tools like TripleCross, which injects eBPF programs to intercept system calls like execve, and Boopkit, a covert command-and-control solution that utilizes eBPF exclusively.
These stealthy rootkits execute high-privilege programs capable of manipulating process execution, concealing files, and filtering network traffic, all while leaving minimal trace on the system.
Exploiting io_uring for Evasion
In addition to utilizing eBPF for stealth tactics, attackers are leveraging the io_uring interface to further enhance evasion capabilities. Introduced in Linux 5.1, io_uring is a high-performance asynchronous I/O mechanism that allows applications to streamline numerous system operations via shared memory rings. While originally designed to decrease the performance overhead associated with system calls, threat actors have identified how this batching feature lends itself to evading detection.
By employing the io_uring_enter function, malicious rootkits can process multiple file, network, and memory operations simultaneously, generating significantly fewer observable system call events. Traditional EDR solutions and monitoring tools, which typically depend on intercepting individual system calls to identify anomalies, often fall short against this tactic. Experimental rootkits like RingReaper exemplify how attackers can use io_uring to stealthily substitute common system calls like read, write, and connect, altering the visibility of potential threats.
By submitting a vast queue of operations directly into the kernel, attackers can effectively suppress the telemetry noise that security teams rely on for detecting malicious activities. As Linux continues to gain traction in contemporary enterprise and cloud architectures, the emergence of these sophisticated, living-off-the-land techniques underscores the urgent need for security teams to devise new low-level monitoring strategies.
In summary, as the threat landscape continues to evolve, organizations must remain vigilant and adapt to these advanced tactics employed by malicious actors. The shift toward using built-in kernel features such as eBPF and io_uring for covert rootkit operations illustrates the need for enhanced security measures to tackle the sophisticated challenges posed by modern cybersecurity threats.

