Di cosa stiamo parlando? Alcuni di voi sicuramente sapranno che cosa sono i rootkit, per quelli che non lo sanno i rootkit sono delle “collezioni” di software utilizzate per amministrare una macchina linux senza possedere i privilegi di amministratore.
Solitamente vengono utilizzate dagli intrusi di un sistema, ad esempio un utente malevolo che riesce a sfruttare la vulnerabilità di un utente non privilegiato, potrebbe utilizzare un rootkit per procedere poi a una privilege escalation per diventare amministratore della macchina.
Per difendersi da questo tipo di utilizzi, la cosa migliore è cercare di tenere sempre aggiornato il sistema, soprattutto se si tratta di server online con accesso pubblico, quello di cui voglio occuparmi ora, non è tanto questo aspetto, ma è quello di controllare se la nostra macchina è stata “infettata” da un rootkit o meno.
A questo scopo ho iniziato ad utilizzare il programma rkhunter, che serve a controllare tramite degli hash, se i nostri file di sistema importanti sono stati in qualche modo modificati.
L’installazione in ubuntu si fa un semplice
apt-get install rkhunter
o
aptitude install rkhunter
Una volta installato il programma, procediamo con l’aggiornamento delle definizioni con il comando
rkhunter --update
ottenendo come output una cosa simile a:
[ Rootkit Hunter version 1.3.0 ]
Checking rkhunter data files...
Checking file mirrors.dat [ No update ]
Checking file programs_bad.dat [ No update ]
Checking file backdoorports.dat [ No update ]
Checking file suspscan.dat [ No update ]
Checking file i18n/cn [ No update ]
Checking file i18n/en [ No update ]
Checking file i18n/zh [ No update ]
Checking file i18n/zhutf [ No update ]
Ora facciamo partire la nostra prima scannata con il comando
rkhunter -c
questo metodo di scan ha una modalità interattiva, ad ogni particolare tipologia di scan dovrete premere enter, alla fine otterrete una tabella riassuntiva come quella seguente
System checks summary
=====================
File properties checks...
Files checked: 127
Suspect files: 0
Rootkit checks...
Rootkits checked : 110
Possible rootkits: 0
Applications checks...
Applications checked: 6
Suspect applications: 0
The system checks took: 3 minutes and 44 seconds
All results have been written to the logfile (/var/log/rkhunter.log)
One or more warnings have been found while checking the system.
Please check the log file (/var/log/rkhunter.log)
Per ottenere uno scan non intereattivo aggiungete l’opzione -sk alla fine
rkhunter -c -sk
Fra i vari report rkhunter vi segnalerà che avete abilitato l’accesso root via ssh, che di norma non è il massimo della siscurezza e vi darà un segnale di errore tipo questo
Checking for allowed root login... Watch out Root login possible. Possible risk!
info: "PermitRootLogin yes" found in file /etc/ssh/sshd_config
Hint: See logfile for more information about this issue
Se sapete cosa state facendo, per eliminarlo basta editare /etc/rkhunter.conf
e cambiate la riga da ALLOW_SSH_ROOT_USER=no a ALLOW_SSH_ROOT_USER=yes
Una volta che avete lanciato il primo scan e tutto è corretto e non vi sono state segnalazioni strane, lanciate il comando
rkhunter –propupd
Questo comando, aggiorna le tabelle hash dei vostri file, di modo che se vengono modificati in qualche modo verrete notificati al riguardo. Quando farete degli update che aggiornano i file interessato da rkhunter, noterete che vi verrà notificato il fatto che tali file sono cambiati. Solitamente quando fate gli aggiornamenti, se tutto è corretto, dovreste eseguire questo comando dopo l’aggiornamento, di modo che le tabelle hash per i check verranno aggiornate con i nuovi eseguibili e non riceverete (giustamente), notifiche al riguardo.
Saluti

Sono un po’ scettico riguardo la sua effettiva utilità… Se non lo installi con il sistema pulito, non collegato alla rete, ci sarà sempre il rischio che siamo già stati compromessi senza possibilità di capirlo (salvo analisi complesse e approfondite), giusto?
E poi, anche installandolo col sistema pulito, se il sistema viene violato e l’intruso lancia il comando rkhunter –propupd, con un po’ di pulizia dei log, vanifica completamente il lavoro fatto… O no?
Infatti prima di fare il –propupd tu lo lanci e vedi cosa ti dice, io l’ho provato su alcuni sistemi “infetti” e ha beccato tutto quanto subito, una volta ripulito il tutto e riesguito il check, puoi lanciarlo con il –-propupd.
E’ chiaro che anche nell’ipotesi in cui un eventuale “haXor” faccia come dici ti fotte, però a quel punto sta meno a disinstallarlo
Ad ogni modo, forse dovevo sottolinearlo meglio, questo non è assolutamente un sistema infallibile, è solo una tool in più che può tornare utile in taluni casi.
Se chi ti buca è un coglionazzo ti assicuro che non farà nulla di quel che ci aspettiamo noi
Ad ogni modo il sistema migliore per difendersi è sempre quello di tenere il sistema aggiornato ed eventualmente cambiare le password ogni tot tempo.
rumblerumble
piu’ si va avanti e piu’ , per me, si ha una sensazione di falsa sicurezza
un utente admin puo’ far danni ‘fisici’ ai programmi/sistemi, ma il problema sono le informazioni dell’utente che sta usando il pc!!!
una frazione di codice di alcuni programmi (da poco piu’ di 1,5mega, uno tra l’altro discusso in questo blog, ma alleggerito per far solo danni potrebbe essere molto piu’ piccolo), possono fornire tutte le info di un’utente: dalla carta di credito al nome dell’amante e li non si tratta di ‘formattare’
non parlate di os/antivirus/router/firewall: aime’ funziona apparentemente su tutto, pur non essendo un ‘rootkit’, e senza diritti di admin (ovviamente se contenuto nel codice di un soft installato)
Scusa non ho capito il senso del discorso..
In merito consiglio la lettura anche di questo articolo:
http://www.work4net.it/2008/05/10-strumenti-immancabili-per-la-sicurezza-di-un-sistema-linux.html