Ci sono due approcci per difendere il sistema contro i root-kit a mezzo LKM: la difesa preventiva e quella reattiva. Il lavoro di ricerca può essere semplice e indolore, o difficile e faticoso, a seconda dell'approccio.
10.4.2.1. Difesa preventiva
Il vantaggio di questo tipo di difesa è che in primo luogo previene danni al sistema. Una siffatta strategia consiste nel motto arrivateci per primi, cioè, caricare un LKM atto a proteggere il sistema da altri LKM malevoli. Una seconda strategia è quella di rimuovere completamente la possibilità che il kernel possa caricare dei moduli. Notate, comunque, che esistono rootkit che potrebbero funzionare anche in questo caso, ce ne sono alcuni che manomettono direttamente /dev/kmem
(la memoria del kernel) per non essere scoperti.
Debian GNU/Linux ha alcuni pacchetti che possono essere utilizzati per realizzare una difesa preventiva:
lcap - A user friendly interface to remove
capabilities (kernel-based access control) in the kernel, making the system more secure. For example, executing
lcap CAP_SYS_MODULE
will remove module loading capabilities (even for the root user).
There is some (old) information on capabilities at Jon Corbet's
http://lwn.net/1999/1202/kernel.php3 section on LWN (dated December 1999).
Se non avete affatto bisogno di molte delle caratteristiche del kernel sul vostro sistema GNU/Linux, potete disabilitare il supporto ai moduli caricabili durante la fase di configurazione del kernel stesso. Per disabilitare questo supporto, impostate CONFIG_MODULES=n durante la fase di configurazione per la compilazione del vostro kernel, oppure nel file .config
. Questo annullerà i tentativi dei root-kit LKM, ma perderete questa potente caratteristica del kernel Linux. Inoltre, disabilitare il supporto per i moduli caricabili a volte potrebbe appesantire troppo il kernel, rendendo il supporto ai moduli indispensabile.
10.4.2.2. Difesa reattiva
Il vantaggio di una difesa reattiva è che non sovraccarica le risorse del sistema. Funziona confrontando la tabella delle chiamate di sistema con una copia sicura in un file del disco, System.map
. Ovviamente, una difesa reattiva si limiterà ad avvisare l'amministratore di sistema dopo che il sistema è già stato compromesso.
Detection of some root-kits in Debian can be accomplished with the
chkrootkit package. The
http://www.chkrootkit.org program checks for signs of several known root-kits on the target system, but is not a definitive test.