Skip to content

Commit c86b4f9

Browse files
committed
feat(scanrootkit): add discovered date, 41 modern signatures, expanded tests
Add 41 new signatures for modern (mostly 2019+) Linux rootkits and a few pre-2019 LD_PRELOAD/LKM rootkits previously missing from the rkhunter set: Adore-NG, Azazel, BEURK, BPFDoor, Boopkit, CDRThief, Cloud Snooper, Drovorub, Ebury 1.7/1.8, Father, HiddenWasp, Honey Pot Bears, Kaiji, Kobalos, LightBasin, Lightning Framework, LilyOfTheValley, Medusa, Migo, Nuk3Gh0st, OrBit, perfctl, PUMAKIT, Puszek, Pygmy Goat, Reptile, Reveng_rtkit, RotaJakiro, sedexp, Skidmap, spy/kisni, SSHdoor, Symbiote, Syslogk, TripleCross, Umbra, Umbreon, UNC3886, Winnti for Linux, Zendar, bedevil. Sourced from ESET malware-ioc, fkie-cad/linux- rootkit-iocs, Sandfly Security, Intezer, Elastic Security Labs, Mandiant, Sophos, NCSC UK and others. Add an optional `discovered` field (YYYY, YYYY-MM or YYYY-MM-DD) to the signature schema. The plugin renders the year next to the rootkit name in findings, e.g. "* CiNIK Worm (2002): /tmp/.cinik (File)". Populated for ~90 of the 162 signatures based on the chkrootkit changelog and vendor disclosure dates. Fix directory indicators not being detected. The plugin previously called lib.disk.file_exists() for both files and directories, but that helper returns False for directories, so directory-only signatures (e.g. KBeast /usr/_h4x_) silently never matched. Now uses os.path.isdir() for directory checks. Expand the unit test suite from 3 to 12 tests, covering directory detection, kernel symbol detection (with a substring negative test for the recently-fixed exact-match behavior), confidence-level handling, the new discovered field, broken YAML and missing-key error handling, and a confirmed+possible mix. Add blank lines between the summary, "Rootkits" and "Possible Rootkits" sections in the output for readability. Update README and the Icinga Director template to mention the new signature count and the discovered field, with a fresh usage example showing all three indicator types (File, Dir, Kernel Symbol) and the year-suffix rendering.
1 parent d00f8c5 commit c86b4f9

File tree

103 files changed

+880
-44
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+880
-44
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions

check-plugins/scanrootkit/README.md

Lines changed: 13 additions & 7 deletions
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Source: https://github.com/fkie-cad/linux-rootkit-iocs/blob/main/ioc-table.md
2+
# Source: https://github.com/stealth/adore-ng
3+
# Published: 2024 FKIE-CAD
4+
name: 'Adore-NG LKM rootkit'
5+
files: []
6+
dirs: []
7+
ksyms:
8+
- 'adore_cleanup'
9+
- 'adore_init'
10+
discovered: '2004'
11+
cl: 100

check-plugins/scanrootkit/assets/scanrootkit-ajakit.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ dirs:
1010
- '/dev/tux'
1111
- '/lib/.libgh-gh'
1212
ksyms: []
13+
discovered: '2003'

check-plugins/scanrootkit/assets/scanrootkit-akit.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,4 @@ dirs:
2323
- '/usr/doc/.spool'
2424
- '/usr/lib/kterm'
2525
ksyms: []
26+
discovered: '2001'

check-plugins/scanrootkit/assets/scanrootkit-apacheworm.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ files:
33
- '/bin/.log'
44
dirs: []
55
ksyms: []
6+
discovered: '2002'

check-plugins/scanrootkit/assets/scanrootkit-ark.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ files:
88
dirs:
99
- '/dev/ptyxx'
1010
ksyms: []
11+
discovered: '2000'
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Source: https://github.com/fkie-cad/linux-rootkit-iocs/blob/main/ioc-table.md
2+
# Source: https://github.com/chokepoint/azazel
3+
# Published: 2024 FKIE-CAD
4+
name: 'Azazel userland LD_PRELOAD rootkit'
5+
files:
6+
- '/lib/libselinux.so'
7+
dirs: []
8+
ksyms: []
9+
discovered: '2014'
10+
cl: 75

check-plugins/scanrootkit/assets/scanrootkit-beastkit.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ files:
1212
dirs:
1313
- '/lib/ldd.so/bktools'
1414
ksyms: []
15+
discovered: '2002'
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Source: https://github.com/fkie-cad/linux-rootkit-iocs/blob/main/ioc-table.md
2+
# Published: 2022 fkie-cad (upstream: bedevil/bdvl GitHub)
3+
name: 'bedevil (bdvl) userland LD_PRELOAD rootkit'
4+
files: []
5+
dirs: []
6+
ksyms:
7+
- 'forge_maps'
8+
- 'forge_numamaps'
9+
- 'forge_smaps'
10+
- 'magicusr'
11+
- 'pathtracked'
12+
discovered: '2018'
13+
cl: 100

0 commit comments

Comments
 (0)