Linux Kernel Rootkit Persistence

The FortiGuard Investigation of a Compromised Appliance

INCIDENT TYPE
Appliance compromise, kernel module rootkit, post-compromise persistence
AFFECTED SYSTEM
Ivanti appliance (CentOS Linux)
ASSESSMENT
Critical example of post-compromise kernel persistence

Executive Summary

FortiGuard Incident Response investigated a compromised Ivanti appliance (running CentOS Linux) in which attackers systematically deployed both a user-space implant and a highly sophisticated malicious Linux kernel module.

The kernel component, identified as sysinitd.ko, was installed alongside a user-space binary and explicitly configured for persistence through system boot files. FortiGuard's reverse engineering found that the kernel module intercepted inbound network traffic in real-time, communicated directly with the malicious user-space component, provided deep stealth, and effortlessly survived system restarts.

The Privilege Disconnect

The incident perfectly illustrates the absolute asymmetric advantage of kernel-level persistence. While traditional telemetry watches user space, the rootkit modifies the foundational fabric (the Linux Kernel) upon which that telemetry depends.

Initial Compromise and Installation

FortiGuard described the case as a follow-up investigation to a zero-day exploitation incident. After gaining initial access and obtaining arbitrary execution, the attackers executed an installation script that placed a paired set of malicious components directly onto the appliance's filesystem.

/usr/share/empty/
├── sysinitd.ko (kernel module)
└── sysinitd (user-space implant)

The Persistence Lifecycle

To guarantee the rootkit survived a reboot, the attackers appended execution commands to standard Linux initialization scripts: /etc/rc.local and /etc/rc.d/rc.local. This simple mechanism violently altered the boot behavior of the host.

THE BOOT INFECTION CYCLE
Initial Compromise
↓
Install Rootkit Files
↓
Register rc.local Persistence
↓
SYSTEM REBOOT
↓
Kernel Module Load (sysinitd.ko)
↓
ROOTKIT ACTIVE

Kernel-Level Network Interception

FortiGuard's analysis proved that the kernel module functioned essentially as a clandestine network bridge. It actively intercepted inbound network traffic before the standard Linux network stack processed it, identifying C2 instructions and tunneling them directly to the user-space component.

NETWORK PACKET
↓
LINUX KERNEL
sysinitd.ko (Rootkit)
Malicious Logic Interception
Normal Stack
Legitimate Processing
↓
USER-SPACE IMPLANT

The Asymmetric Advantage

A kernel module operates at a fundamentally different privilege tier than ordinary applications. A traditional application is forced to flow downward (Application → System Calls → Kernel). A kernel rootkit intercepts from below (Malicious Module → Kernel → Applications / Security Tools).

The rootkit completely redefines the environment in which the security tools operate.

Forensic Evidence

A brilliant component of FortiGuard's investigation was leveraging Linux audit logs. The attackers' shell commands were recorded as hexadecimal blobs in the audit records. FortiGuard decoded them and perfectly reconstructed the entire installation procedure.

This highlights a critical incident response boundary:

User-Space Evidence → Audit Logs → Rootkit Installation → Kernel-Level Blackout

Once the rootkit becomes active, the integrity of all subsequent user-space observations becomes inherently compromised.

Analyst Assessment

This incident is a textbook demonstration of the post-exploitation lifecycle.

Exploitation → System Access → Privilege → Kernel Module → Persistence → Network Interception → Long-Term Access

The original vulnerability and the kernel rootkit represent entirely different operational phases. Patching the initial vulnerability prevents a new compromise, but it absolutely does not remove kernel-level persistence from an already infected appliance.

Opsonance Point of View

This incident is the perfect validation of Opsonance's core runtime-security philosophy. A kernel module effortlessly survives application restarts, user-space termination, ordinary process inspection, and service reloads.

For Opsonance, the absolute true sequence of execution is:

APPLICATION ↓ PROCESS ↓ SYSCALL ↓ KERNEL ↓ NETWORK

A rootkit operating at the kernel layer cannot be treated as just another "suspicious process." It physically alters the fabric in which processes exist. That is precisely why Opsonance rejects treating the host as a black box and explicitly extends its visibility architecture directly toward the kernel.

Key Finding

CONCLUSION

The FortiGuard investigation definitively proves that kernel-level persistence completely alters the defender's fundamental task. The challenge shifts from detecting a malicious application to establishing the integrity and trustworthiness of the execution environment itself.

References