Rilevamento di rootkit Linux: Strumenti e tecniche

10 min di lettura - 16 maggio 2026

hero section cover
Indice
  • Rilevamento di rootkit 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à
  • Irrigidimento del 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 di rootkit Linux: Strumenti e tecniche per la sicurezza dei server

I rootkit consentono agli aggressori di accedere in modo 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, perché nessun singolo strumento è in grado di rilevare tutto.

Questo articolo illustra i principali tipi di rootkit per Linux, le modalità di scansione e le tecniche di monitoraggio avanzate che consentono di individuare 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 profondi, più sono difficili da trovare.

I rootkit in modalità utente operano a livello di applicazione (Ring 3). Dirottano il linking 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 vengono eseguiti nell'anello 0 e caricati come moduli caricabili del kernel (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 panico del kernel, che ironicamente lo 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 attaccano agli hook delle syscall, ai tracepoint o agli eventi LSM. Gli scanner LKM standard non li vedono. 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'interfaccia I/O asincrona io_uring per eseguire operazioni in batch, generando meno eventi syscall osservabili. RingReaper, un rootkit sperimentale, ha dimostrato come questo possa sostituire silenziosamente chiamate come read, write e connect eludendo gli strumenti EDR.

Tipo di rootkit Livello di privilegio Metodo di aggancio Difficoltà di rilevamento
Modalità utente Anello 3 (Utente) LD_PRELOAD, hijacking della libreria Moderato
Modo Kernel Anello 0 (Kernel) Tabella delle chiamate di sistema, LKM, aggancio in linea Elevato
basato su eBPF Anello 0 (Kernel) aggancio del 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 le scansioni rapide e rkhunter per i 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 anche le interfacce di rete promiscue e i registri cancellati. Dalla versione 0.59 (gennaio 2026), è in grado di identificare oltre 75 rootkit, worm e LKM, comprese le minacce più recenti come Linux BPFDoor, Syslogk e XZ Backdoor.

Eseguitelo dopo qualsiasi attività sospetta. Prestare attenzione agli avvisi del componente ifpromisc e agli avvisi relativi ai file lastlog o wtmp eliminati.

rkhunter

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

Impostatelo 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 giornaliere automatiche, impostare CRON_DAILY_RUN="true" in /etc/rkhunter.conf e usare --skip-keypress e --report-warnings-only per un output pulito. Esaminare i registri in /var/log/rkhunter.log e inserire nella whitelist i falsi positivi confermati.

Rilevare i 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. Gli strumenti standard come lsmod non li vedono, ma ci sono modi per individuarli.

Confrontate l'output di lsmod con gli elenchi di /sys/module/. Controllare i log di sistema per individuare messaggi sospetti del kernel:

# 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 essere individuati controllando /sys/module/diamorphine/coresize o esaminando gli avvisi del syslog.

Rilevamento avanzato: Monitoraggio del comportamento e controlli di integrità

Gli scanner statici hanno 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 solo eliminando le tabelle dei simboli. Affidarsi alle sole firme non è sufficiente.

Analisi del comportamento

Invece di chiedere "questo file corrisponde a un rootkit noto?", l'analisi del comportamento chiede "questo processo sta facendo qualcosa di insolito?" Monitorate questi segnali:

  • Utilizzare Auditd per osservare le chiamate di sistema init_module() e finit_module(), che caricano i moduli del kernel indipendentemente dal metodo.
  • Monitorare le chiamate kill() con segnali superiori a 31, che possono indicare una comunicazione rootkit nascosta.
  • Controllate /proc/sys/kernel/tainted per rilevare attività non autorizzate del modulo del kernel.
  • Verificare la presenza di file .so inaspettati in /tmp o /dev/shm.
  • Tracciate l'attività di eBPF, in particolare le chiamate bpf_probe_write_user. Strumenti come BCC possono tracciare le operazioni io_uring attraverso punti di tracciamento come sys_enter_io_uring_enter.

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

Monitoraggio dell'integrità dei file

AIDE (Advanced Intrusion Detection Environment) crea una linea di base di file di sistema affidabili e ne verifica le modifiche. Si inizializza con aide --init, quindi si programma aide --check tramite cron. Tiene traccia di checksum, permessi, proprietà e timestamp di file binari critici come /bin/login e /usr/bin/sshd.

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

Monitorate anche i meccanismi di persistenza. I rootkit spesso modificano /etc/ld.so.preload per iniettare oggetti condivisi, o 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 automatico con Auditd

Aggiungete queste regole a /etc/audit/rules.d/rootkit.rules per rilevare in tempo reale le 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

Combinare queste regole con gli aggiornamenti automatici di rkhunter. Impostare UPDATE_MIRRORS=1 e MIRRORS_MODE=0 nella configurazione ed eseguire rkhunter --propupd dopo gli aggiornamenti legittimi del sistema per aggiornare la linea di base.

Irrigidimento del server contro i rootkit

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

Mantenete il kernel e i pacchetti aggiornati. Gli aggressori sfruttano le vulnerabilità senza patch per aumentare i privilegi e distribuire rootkit basati su LKM o eBPF. Dopo aver applicato le patch, aggiornare le linee di base del rilevamento con rkhunter --propupd.

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

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

Segmentare la rete. L'isolamento di parti dell'infrastruttura limita i movimenti laterali in caso di compromissione di una macchina.

Verificate regolarmente. Strumenti come Lynis possono identificare gli errori di autorizzazione e di configurazione prima che gli aggressori li sfruttino.

Conclusione

I rootkit sono costruiti per nascondersi in piena vista. Quando i sintomi si manifestano, il sistema potrebbe essere già compromesso al di là di un facile recupero. Nessun singolo scanner è in grado di rilevare tutto e il rilevamento di base basato sulle firme è facile da eludere.

Una difesa pratica combina più livelli:

  • Scansioni regolari con chkrootkit e rkhunter per le minacce note
  • Regole Auditd e monitoraggio del comportamento per attività sospette del kernel
  • Monitoraggio dell'integrità dei file con AIDE per individuare modifiche non autorizzate
  • Strumenti di runtime come Tetragon o Falco per le minacce eBPF e io_uring
  • Controlli di accesso, patching 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. Esplorate le opzioni di server dedicati per creare un ambiente Linux protetto.

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
Lista di controllo per l'irrigidimento del server Linux

Lista di controllo per l'irrigidimento del server Linux

Lista di controllo passo-passo per rendere più sicuro un server Linux. Copre SSH, firewall, patch, permessi dei file, SELinux/AppArmor e registrazione degli audit

15 min di lettura - 8 maggio 2026

tutorial iperf3: Test della velocità di rete su Linux e Windows

10 min di lettura - 7 maggio 2026

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