Rootkit T1014

Tactic: Stealth

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.

Events covered

3 catalog events are tagged with this technique by at least one rule.

Authoring guide

Patterns shared across the 30 rules above: which fields they filter on, what specific values they look for, and what they exclude. The catalog normalizes field names across vendors so Sigma's Image, Elastic's process.name, and Splunk's process_name collapse into one row. Each rule contributes at most once per row.

Fields filtered most (31 distinct)

The fields most rules look at when detecting this technique. The How column shows the operators authors use (eq, wildcard, regex_match, match) and how often each appears. Sample values are concrete examples to start from, not an exhaustive list.

FieldRulesHowSample values
host.os.type22eq 22
EventType19eq 11, in 8exec, ProcessRollup2, exec_event, creation, loaded-kernel-module
process_name16eq 11, in 4, starts_with 3kernel, kmod, kworker, bash, bpftool
event.type11eq 11start, change, creation
process.args8eq 6, starts_with 3, contains 2, in 2, wildcard 1.ko, link, --bytes, --decode, --exec
data_stream.dataset4eq 4system.syslog, fim.event
event.category4eq 4process, file, network
CommandLine3contains 2, in 1, wildcard 1 enp0s3 , filter , qdisc , */home/*/.ssh/*, *list*
Image3ends_with 1, is_not_null 1, starts_with 1/dev/shm/, /sudo, /tmp/, /var/tmp/
TargetFilename3wildcard 2, in 1*.backup_ld.so, *.boot.sh, *.logpam, /boot/efi/efi/*/grub.cfg, /boot/grub/grub.cfg
auditd.data.syscall3in 2, eq 1finit_module, init_module, kill
message3eq 3bpf_probe_write_user, loading out-of-tree module taints kernel., module verification failed: signature and/or required...
user.id3eq 2, ne 10
EventID2eq 26, 7045
parent_process_name2eq 1, in 1bash, csh, dash, kthreadd

Top indicator values (403 distinct)

Specific (field, operator, value) combinations the rules check for, ranked by how many rules under this technique use each one. The Corpus reach column counts how many rules across the entire catalog (any technique) check the same combination. High numbers point to widely-used indicators that are likely noisy on their own; combine them with another condition for useful signal. Blank means the combination is specific to rules under this technique. Click a value to expand the rules under this technique that use it.

FieldKindValueRules (here)Corpus reach
event.typeeq
start
9606
EventTypein
ProcessRollup2
6117
EventTypein
exec
6171
EventTypein
exec_event
5139
EventTypein
executed
588
EventTypein
process_started
574
EventTypein
start
5134
EventTypeeq
exec
3171
EventTypeeq
loaded-kernel-module
22
data_stream.dataseteq
system.syslog
35
process_nameeq
kernel
36
process_nameeq
kmod
34
process_nameeq
bpftool
22
process_namestarts_with
kworker
34
TargetFilenamewildcard
/etc/modprobe.d/*
22
TargetFilenamewildcard
/etc/modules
22
TargetFilenamewildcard
/etc/modules-load.d/*
22
TargetFilenamewildcard
/run/modules-load.d/*
22
TargetFilenamewildcard
/usr/lib/modprobe.d/*
22
TargetFilenamewildcard
/usr/lib/modules-load.d/*
22
TargetFilenamewildcard
/usr/local/lib/modules-load.d/*
22
auditd.data.syscallin
finit_module
22
auditd.data.syscallin
init_module
22
event.categoryeq
process
2128
process.argscontains
.ko
22
process.argseq
insmod
22
process.argseq
link
22
process.argseq
modprobe
22
process.argsstarts_with
/boot/
23
process.parent.argsstarts_with
/boot/
22

Exclusions (272 distinct)

Field/operator/value combinations excluded by rules under this technique (top-level not() clauses), sorted by how many rules exclude each. These are the false-positive paths the community has learned to filter out. A new rule that ignores the high-count entries here will likely fire on the same noisy paths. Click a value to expand the rules under this technique that exclude it.

FieldKindValueRules excluding
Imagestarts_with
/snap/
2
Imagestarts_with
/tmp/newroot/
2
file.extensionin
dpkg-remove
2
process_namein
umount
2
CommandLinecontains
/bin/ps
1
CommandLinecontains
/usr/bin/find
1
CommandLinecontains
/usr/bin/grep
1
CommandLinecontains
ds_agent
1
CommandLinecontains
gitlabrunner
1
CommandLinecontains
nagios
1
CommandLinecontains
omsagent
1
CommandLinecontains
pgrep
1
CommandLineeq
sh -c /bin/true
1
CurrentDirectoryeq
/tmp/newroot
1
CurrentDirectoryin
/opt/ds_agent
1

Rules under this technique

Every rule in the catalog tagged with this technique, grouped by vendor. Click a rule title for its full predicates, exclusions, and indicators.

Platform (all)
Domain (all)

Sigma 2 rules

Elastic 22 rules

Splunk 5 rules

Panther 1 rule