Linux Kernel Memory Forensics: Detecting Loadable Kernel Module (LKM) Rootkits with Volatility 3
Reconstructing hidden task_struct lists, syscall table hooks, and eBPF tracepoints from raw LiME memory captures
Live response tools executed on a compromised Linux host cannot be trusted when a ring-0 Loadable Kernel Module (LKM) or eBPF rootkit hooks getdents64(), tcp4_seq_show(), or unlinks its module structure from the global modules doubly linked list. This member-protected article walks through physical RAM acquisition via LiME, Intermediate Symbol File (ISF) generation with dwarf2json, and cross-view differential analysis in Volatility 3.
- Acquire forensically sound raw/LiME physical memory images while preserving SHA-256 chain of custody.
- Generate custom Volatility 3 DWARF Intermediate Symbol Files (ISF) for target Linux kernels.
- Cross-reference active radix/rbtree PID structures against doubly linked task_struct lists to expose unlinked processes.
Table of Contents
1. Volatile Memory Acquisition & Order of Volatility
In accordance with RFC 3227 (Guidelines for Evidence Collection and Archiving), system physical RAM must be captured prior to disk imaging or network isolation whenever kernel-level subversion is suspected. Userland utilities (ps, netstat, ss, lsmod) rely on kernel-exported /proc virtual filesystem structures and system calls (sys_getdents64) that are trivially filtered by ring-0 rootkits.
Login to continue reading this article
This full forensic study resource (477 words, complete concept breakdowns, worked examples, and reference notes) is available to Registered Members. Log in to unlock the full text and interactive Table of Contents.
Account authentication powered by Firebase Auth.