Il mio server Linux è stato compromesso da un Rootkit? E’ presente un virus? Voglio monitorare il mio server da intrusioni?
Vediamo come è possibile monitorare e ripristinare la situazione:
Passo 1): Verifichiamo la presenza di un rootkit con due strumenti: chrootkit, rkhunter installabili tramite apt-get
- Chkrootkit: ottimo strumento open source progettato per aiutare gli amministratori di sistema nel compito di controllare periodicamente l’integrità e la sicurezza della proprie macchine UNIX/linux.
- Rkhunter: stesse caratteristiche del precedente ma personalmente sembra più efficace e dettagliato nelle risposte producendo un file di report su /var/log dove è possibile trovare i file o file cfg infettati. Prima di eseguire la scansione facciamo l’aggiornamento con l’opzione rkhunter –update
Passo 2): Una volta rilevati i file infetti si deve procedere al loro ripristino, se di sistema, o alla loro cancellazione se propri del rootkit.
Anche questa operazione apparentemente semplice può nascondere delle insidie introdotte dal rootkit stesso.
Infatti spesso i file sono marchiati con l’attributo immutabile per cui ogni operazione di chown o chmod risulta vana anche con l’account di root.
Naturalmente il flag immutabile non è visibile tramite una ls ma solo tramite il comando lsattr
Esempio:
ls
-rwxr-xr-x 1 122 postfix 33992 2011-04-07 17:36 top
… Il chmod o chown da root 🙁
chmod 777 top chmod: changing permissions of `top': Operation not permitted
chown root top chown: changing ownership of `top': Operation not permitted
/usr/bin# lsattr top s---ia-----------e- top
Rimuoviamo i seguenti flag tramite chattr
chattr -i top
chattr -a top
A questo punto il file è modificabile, cancellabile o sovrascrivibile con un originale.
Ovviamente, la validità di uno strumento come chkrootkit o rkhunter risiede in un utilizzo regolare, possibilmente schedulato.
Per ottenerne, ad esempio, i risultati una volta al giorno per email alle 5 am, si può inserire nel cron file di root (sotto Debian/Ubunti è /var/spool/cron/crontabs/root oppure crontab -e):
0 5 * * * (chkrootkit 2>&1 | mail -s "esito chkrootkit" user@example.com)
0 5 * * * (rkhunter --sk --rwo --check | mail -s "esito rkhunter" user@example.com)
quindi:
# /etc/init.d/cron restart
Passiamo ora ad un tool per il check della presenza di virus sulla nostra macchina linux; il classico ClamAV.
Nota positiva è che tale tool oltre ad effettuare la scansione può eseguire anche la rimozione degli elementi infetti.
Utilizzo di ClamAV:
- si esegue l’aggiornamento delle firme dei virus con il comando freshclam
- si esegue la scansione con il comando clamscan -r /mia-directory
- se si vuole eseguire la scansione e visualizzare solo i file infettati e emettere un suono clamscan -r –bell -i /
- per effettuare la rimozione dei file infetti si può applicare l’opzione –remove al comando clamscan
Anche ClamAvse schedulato regolarmente può notificarci nuove minacce via mail.
0 5 * * * (clamscan -r -i / | mail user@example.com)
Ora che abbiamo ripulito il nostro sistema verifichiamo se il nostro sistema linux è vulnerabile e adottiamo alcuni accorgimenti per renderlo sicuro.
Vediamo 10 consigli per rendere sicuro il nostro sistema ubuntu linux