Con la nuova versione di grsecurity
http://www.grsecurity.net/grsecurity-2.1.9-2.4.33.3-200609031224.patch.gz
è stato inserita una nuova voce: Runtime module disabling
Grsecurity è una suite di patch che permettono una gestione security oriented del kernel. Guide per la compilazione di un kernel+grsec ce ne sono a decine
CONFIG_GRKERNSEC_MODSTOP
Settando qeusta opzione a Y il sistema non permetterà nè agli utenti nè a root di abilitare o disabilitare moduli. In fase di boot verranno caricati i moduli necessati per il funzionamento, poichè l’opzione all’avvio è disabilitata
all’avvio della macchina sotto
/proc/sys/kernel/grsecurity
si troverà un file “disable_modules” con valore “0”
in questo modo si ha la possibilità di caricare tutti i moduli ancora
necessari come ad esempio quelli di iptables
una volta caricati i moduli necessari si può disabilitare in questo modo
echo "1" > /proc/sys/kernel/grsecurity/disable_modules
da questo momento in poi non è piu possibile aggiungerne o toglierne, non
è possibile nemmeno disabilitare l’opzione che inibisce l’inserimento
—————————–
kernel:/proc/sys/kernel/grsecurity# cat disable_modules
1
kernel:/proc/sys/kernel/grsecurity# echo “0” > disable_modules
kernel:/proc/sys/kernel/grsecurity# cat disable_modules
1
kernel:/proc/sys/kernel/grsecurity#
—————————-
se provo a caricare un nuovo modulo, sempre iptables ad esempio, otterrò un errore.
———————————————–
kernel:/proc/sys/kernel/grsecurity# iptables -nL
/lib/modules/2.4.33.3-grsecblindato/kernel/net/ipv4/netfilter/ip_tables.o:
create_module: Operation not permitted
/lib/modules/2.4.33.3-grsecblindato/kernel/net/ipv4/netfilter/ip_tables.o:
insmod /lib/modules/2.4.33.3-grsecblindato/kerneld
/lib/modules/2.4.33.3-grsecblindato/kernel/net/ipv4/netfilter/ip_tables.o:
insmod ip_tables failed
iptables v1.2.11: can’t initialize iptables table `filter’: iptables who?
(do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
———————————————–
una volta attivata l’opzione bisogna riavviare per aggiungere un modulo, disable_modules torna disabilitato cioè al valore 0
————————————————
kernel:/proc/sys/kernel/grsecurity# cat disable_modules
0
————————————————
Questa opzione dovrebbe proteggerci dalla maggior parte dei rootkit, bisogna tenere conto che bisognerebbe associare anche l’opzione per proteggere /dev/mem.
Esistono ancora semplici strade per bypassare questa protezione, basta ad esempio modificare uno degli script di init che vengono lanciati all’avvio: scrivendo una semplice riga “insmod rootkitexec” un attaccante al prossimo reboot troverà il rootkit già caricato in memoria pronto per essere usato. In questo caso ci viene in aiuto un tool come samhain che controlla periodicamente l’integrità dei file. Samhain può essere paragonato a un IDS, maggiori informazioni sul sito dell’autore Rainer Wichmann
Grsec http://www.grsecurity.net
Kernel http://kernel.org
Samhain http://la-samhna.de