Rilevamento di rootkit Linux: Strumenti e tecniche

10 min di lettura - 16 maggio 2026

hero section cover
Indice
  • Rilevamento dei rootkit su Linux: strumenti e tecniche per la sicurezza dei server
  • Tipi di rootkit Linux
  • Scansione con chkrootkit e rkhunter
  • Rilevamento avanzato: monitoraggio del comportamento e controlli di integrità
  • Rafforzare il server contro i rootkit
  • Conclusione
Condividi

Come rilevare e prevenire i rootkit di Linux utilizzando chkrootkit, rkhunter, Auditd, AIDE e il monitoraggio comportamentale sui vostri server.

Rilevamento dei rootkit su Linux: strumenti e tecniche per la sicurezza dei server

I rootkit offrono agli aggressori un accesso persistente e nascosto ai sistemi Linux. Manipolano le operazioni del kernel, nascondono file e processi ed eludono gli strumenti di sicurezza standard. Alcuni sono rimasti inosservati per anni. Il loro rilevamento richiede un approccio a più livelli, poiché nessun singolo strumento è in grado di rilevarli tutti.

Questo post tratta i principali tipi di rootkit Linux, come eseguire la scansione per individuarli e le tecniche di monitoraggio avanzate che rilevano ciò che gli scanner di base non riescono a individuare.


Tipi di rootkit Linux

I rootkit operano a diversi livelli di privilegio e, più sono nascosti, più sono difficili da individuare.

I rootkit in modalità utente girano a livello di applicazione (Ring 3). Dirottano il collegamento dinamico utilizzando LD_PRELOAD per iniettare librerie dannose che intercettano le funzioni standard della libreria C come readdir o fopen, nascondendo file e processi agli strumenti userland.

I rootkit in modalità kernel girano a Ring 0 caricandosi come Loadable Kernel Modules (LKM). Intercettano le chiamate di sistema, manipolano la memoria del kernel e nascondono la propria presenza. Poiché sono legati a versioni specifiche del kernel, una configurazione errata può causare un kernel panic, il che, ironicamente, li espone.

I rootkit basati su eBPF sfruttano il sottosistema Extended Berkeley Packet Filter per funzionare nello spazio del kernel senza caricare un modulo tradizionale. Si agganciano a hook di syscall, tracepoint o eventi LSM. Gli scanner LKM standard non li rilevano. Boopkit è un noto proof of concept che crea un canale C2 nascosto utilizzando questo approccio.

I rootkit basati su io_uring sono la variante più recente. Utilizzano l' io_uring interfaccia I/O asincrona per le operazioni in batch, generando un numero minore di eventi di syscall osservabili. RingReaper, un rootkit sperimentale, ha dimostrato come questo possa sostituire silenziosamente chiamate come read, writee connect eludendo al contempo gli strumenti EDR.

Tipo di rootkit Livello di privilegio Metodo di aggancio Difficoltà di rilevamento
Modalità utente Anello 3 (Utente) LD_PRELOAD, dirottamento delle librerie Moderata
Modalità kernel Anello 0 (Kernel) Tabella delle chiamate di sistema, LKM, hooking inline Elevato
Basato su eBPF Anello 0 (Kernel) Collegamento programma eBPF Molto alto
Basato su io_uring Utente/Kernel Batching I/O asincrono Molto alto

Scansione con chkrootkit e rkhunter

Due strumenti costituiscono la base per il rilevamento dei rootkit sui server Linux: chkrootkit per scansioni rapide e rkhunter per controlli più approfonditi.

chkrootkit

chkrootkit è uno script di shell che controlla i file binari critici del sistema (ls, ps, netstat, sshd, ifconfig) alla ricerca di segni di manomissione. Rileva inoltre interfacce di rete in modalità promiscua e log cancellati. A partire dalla versione 0.59 (gennaio 2026), è in grado di identificare oltre 75 rootkit, worm e LKM, incluse minacce più recenti come Linux BPFDoor, Syslogk e XZ Backdoor.

Eseguilo dopo qualsiasi attività sospetta. Presta attenzione agli avvisi del ifpromisc componente e agli avvisi relativi ai lastlog o wtmp .

rkhunter

rkhunter va oltre. Confronta gli hash SHA-1 dei binari di sistema con valori noti come validi, monitora i permessi dei file e i file nascosti, controlla le configurazioni di avvio ed esegue analisi del kernel e della rete.

Configuratelo correttamente fin dall'inizio:

# Establish a baseline after a clean install or update
rkhunter --propupd
 
# Update rootkit definitions
rkhunter --update
 
# Run a full scan (use --novl on production servers to reduce I/O)
rkhunter --check --enable all

Per le scansioni automatiche giornaliere, imposta CRON_DAILY_RUN="true" in /etc/rkhunter.conf e usa --skip-keypress e --report-warnings-only per un output pulito. Controlla i log su /var/log/rkhunter.log e inserisci nella whitelist i falsi positivi confermati.

Rilevamento dei rootkit LKM

I rootkit LKM sono particolarmente pericolosi perché operano come estensioni del kernel, intercettando le chiamate di sistema e nascondendo i processi a livello del kernel. Strumenti standard come lsmod non li rilevano, ma ci sono modi per individuarli.

Confronta lsmod l'output con /sys/module/ elenchi. Controlla i log di sistema alla ricerca di messaggi del kernel sospetti:

# Look for out-of-tree module warnings
sudo dmesg | grep "loading out-of-tree module taints kernel"
 
# Check for module verification failures
grep "module verification failed" /var/log/syslog
 
# Run chkrootkit's LKM-specific check
sudo chkrootkit lkm

Anche i rootkit che si nascondono da lsmod e /proc/modules (come Diamorphine) possono comunque essere individuati controllando /sys/module/diamorphine/coresize o esaminando gli avvisi di syslog.

Rilevamento avanzato: monitoraggio del comportamento e controlli di integrità

Gli scanner statici presentano una debolezza fondamentale. In un esperimento del 2026, l'aggiunta di un singolo byte nullo a un binario rootkit, una modifica che non influisce sulla funzionalità, ha ridotto drasticamente i tassi di rilevamento. I rilevamenti di Diamorphine sono scesi da 33/66 a 8/64 semplicemente rimuovendo le tabelle dei simboli. Affidarsi alle sole firme non è sufficiente.

Analisi comportamentale

Invece di chiedersi "questo file corrisponde a un rootkit noto?", l'analisi comportamentale si chiede "questo processo sta facendo qualcosa di insolito?". Monitorate questi segnali:

  • Utilizza Auditd per monitorare init_module() e finit_module() le chiamate di sistema, che caricano i moduli del kernel indipendentemente dal metodo.
  • Monitorare kill() le chiamate con segnali superiori a 31, che possono indicare una comunicazione rootkit nascosta.
  • Controlla /proc/sys/kernel/tainted la presenza di attività non autorizzate dei moduli del kernel.
  • Presta attenzione a file .so file in /tmp o /dev/shm.
  • Monitorare l'attività eBPF, in particolare le bpf_probe_write_user chiamate. Strumenti come BCC possono tracciare le operazioni io_uring attraverso tracepoint come sys_enter_io_uring_enter.

Per i rootkit eBPF e io_uring in particolare, strumenti di monitoraggio del runtime come Tetragon, Falco e Tracee possono osservare l’attività all’interno del kernel in tempo reale.

Monitoraggio dell'integrità dei file

AIDE (Advanced Intrusion Detection Environment) crea una linea di base dei file di sistema attendibili e verifica la presenza di modifiche. Inizializzare con aide --init, quindi pianificare aide --check tramite cron. Tiene traccia di checksum, permessi, proprietà e timestamp su binari critici come /bin/login e /usr/bin/sshd.

Per la verifica a livello di pacchetto, debsums (Debian/Ubuntu) oppure rpm -Va (RHEL/CentOS) possono confermare l’integrità dei file di sistema. Per ottenere risultati più affidabili, avviate il sistema da un supporto di ripristino attendibile e ispezionate il filesystem offline, poiché i rootkit possono manomettere i rapporti del kernel in esecuzione.

Monitorare anche i meccanismi di persistenza. I rootkit spesso modificano /etc/ld.so.preload per iniettare oggetti condivisi, oppure alterano .bashrc e .profile. Le modifiche legittime a questi file sono rare, quindi gli avvisi in questo caso hanno un elevato rapporto segnale/rumore.

Monitoraggio automatizzato con Auditd

Aggiungere queste regole a /etc/audit/rules.d/rootkit.rules per il rilevamento in tempo reale di attività sospette del kernel:

# Detect unauthorized kernel module loading
-a always,exit -F arch=b64 -S finit_module -S init_module
 
# Catch unusual high-range kill signals
-a always,exit -F arch=b64 -S kill -F a1>=32

Combinale con gli aggiornamenti automatici di rkhunter. Imposta UPDATE_MIRRORS=1 e MIRRORS_MODE=0 nella configurazione, quindi esegui rkhunter --propupd dopo gli aggiornamenti legittimi del sistema per aggiornare la baseline.

Rafforzare il server contro i rootkit

Il rilevamento è importante, ma la prevenzione è meglio. La maggior parte dei rootkit richiede privilegi elevati per l'installazione, quindi ridurre la superficie di attacco fa davvero la differenza.

Mantieni aggiornati il kernel e i pacchetti. Gli aggressori sfruttano le vulnerabilità non corrette per elevare i privilegi e distribuire rootkit basati su LKM o eBPF. Dopo l'applicazione delle patch, aggiorna le tue linee guida di rilevamento con rkhunter --propupd.

Applicare il principio del privilegio minimo. Non concedere agli utenti o ai processi più accesso di quello necessario. Utilizzare SELinux o AppArmor per i controlli di accesso obbligatori che bloccano le azioni non autorizzate anche se un processo è compromesso.

Disabilita il caricamento dei moduli del kernel dopo l’avvio. Sui server dedicati, puoi prevenire completamente i rootkit LKM bloccando il caricamento dei moduli dopo l’avvio del sistema. Questo non è possibile sull’hosting condiviso, il che è uno dei motivi per cui gli ambienti dedicati o VPS offrono una sicurezza maggiore.

Segmentate la vostra rete. Isolare parti della vostra infrastruttura limita il movimento laterale se una macchina viene compromessa.

Eseguite controlli regolari. Strumenti come Lynis possono identificare errori di autorizzazione e configurazioni errate prima che gli aggressori ne approfittino.

Conclusione

I rootkit sono progettati per nascondersi in bella vista. Quando i sintomi si manifestano, il sistema potrebbe essere già compromesso al punto da non poter essere facilmente ripristinato. Nessuno scanner è in grado di rilevare tutto e il rilevamento di base basato sulle firme è facile da eludere.

Una difesa efficace combina più livelli:

  • Scansioni regolari con chkrootkit e rkhunter per le minacce note
  • Regole di auditd e monitoraggio del comportamento per attività sospette del kernel
  • Monitoraggio dell'integrità dei file con AIDE per rilevare modifiche non autorizzate
  • Strumenti di runtime come Tetragon o Falco per minacce eBPF e io_uring
  • Controlli di accesso rafforzati, patch e segmentazione della rete per ridurre la superficie di attacco

Automatizzate ciò che potete, mantenete aggiornate le baseline e partite da un'installazione pulita del sistema operativo di cui vi fidate.

FDC Servers offre hosting dedicato e VPS con accesso root completo e configurazioni del kernel personalizzabili. Esplora le opzioni di server dedicati per creare un ambiente Linux rinforzato.

background image
Il vostro server sta frenando la vostra crescita?

Stanchi di implementazioni lente o di limiti di larghezza di banda? FDC Servers offre potenza dedicata istantanea, portata globale e piani flessibili costruiti per qualsiasi scala.

Aggiorna ora

Blog

In primo piano questa settimana

Altri articoli
Controllo del traffico (tc) di Linux: una guida pratica

Controllo del traffico (tc) di Linux: una guida pratica

Controllare la larghezza di banda, assegnare priorità al traffico e modellare l'ingresso e l'uscita su Linux con tc. Configurazione di HTB, IFB, DSCP e fq_codel per server reali.

12 min di lettura - 5 giugno 2026

Perché è importante avere un VPS potente e senza contatore

7 min di lettura - 9 maggio 2025

Altri articoli
background image

Avete domande o avete bisogno di una soluzione personalizzata?

icon

Opzioni flessibili

icon

Portata globale

icon

Distribuzione immediata

icon

Opzioni flessibili

icon

Portata globale

icon

Distribuzione immediata