Come ricercare malware e rootkit su Linux

Virus, malware, trojan e rootkit sono diventati negli ultimi tempi un argomento assai dibattuto sul web. Notizie che si diffondono riguardanti la scoperta di una nuova vulnerabilità o cronache di lunghi down e servizi indisponibili arrivano persino in televisione.

Siamo arrivati ad un punto che gli antivirus tradizionali, non sono al momento più sufficienti: vi sarà capitato probabilmente di trovare del malware in un sito web sul quale server è installato, configurato alla perfezione e in esecuzione ClamAV?

Se state leggendo questo articolo e ne proseguirete la lettura, probabilmente siete incappati in questa problematica. Spero che queste indicazioni possano esservi utili per risolvere i vostri problemi.

Come ricercare malware e rootkit su Linux

Classificare il malware non è affatto facile, ma in questo articolo proviamo a discernere due categorie. La prima categoria include i tradizionali virus e i rootkit (ossia quei tool che si insidiano nel sistema operativo), l’altra contiene gli script malevoli.

Per scoprire se il proprio server o pc, ospita i classici virus è sufficiente utilizzare un antivirus come ClamAV. Per installare ClamAV e attivare una scansione, vi rimando a questo articolo: http://www.valent-blog.eu/2007/04/02/clam-antivirus/

Per quanto concerne i rootkit, potete seguire quest’altra guida http://www.valent-blog.eu/2009/01/23/proteggersi-dai-rootkit/  nella quale viene mostrato come installare chkrootkit e Rootkit Hunter.

Nel seguito di questo articolo scopriremo come usare Lynis e LMD. Vediamo ora come utilizzare altri stumenti per la scansione del proprio sistema.

Lynis – uno strumento di security auditing

Lynis è l’erede del famoso Rootkit Hunter. Si tratta, come nel caso del precedessore, di uno strumento utilizzabile per l’analisi del sistema, dei software installati e delle configurazioni attive sul server.
A differenza di altri strumenti, Lynis si caratterizza per l’estrema semplicità: non è necessario mettere mano a complicati file di configurazione per poter procedere ad una scansione del sistema.

Se avete già scaricato una versione precedente del tool, potete scegliere di rimuovere il contenuto della cartella /usr/local/lynis con il comando:
rm -r /usr/local/lynis

Bene, ora vediamo come attivare Lynis sul server o computer.
Spostiamoci nella cartella dei file temporanei /tmp
cd /tmp

Scarichiamo l’ultima versione disponibile di Lynis
wget https://cisofy.com/files/lynis-2.2.0.tar.gz

Scompattiamo l’archivio in /usr/local/lynis
tar xvfz lynis-2.2.0.tar.gz -C /usr/local/

Creiamo un link simbolico (usate questo comando solo se non avete mai scaricato Lynis)
ln -s /usr/local/lynis/lynis /usr/local/bin/lynis

Ora per maggior sicurezza, facciamo fare un check a Lynis per capire se abbiamo l’ultima versione disponibile.

lynis update info

Se viene restituito che lo Status è Up-to-date, siamo OK.

Altrimenti procediamo alla cancellazione della cartella /usr/local/lynis e a seguire i passaggi precedenti.

A questo punto ci troviamo con Lynis attivo e pronto a fare una scansione del sistema.

Tutto è molto semplice: per lanciare una scansione interattiva (ossia con la necessità di premere INVIO di tanto in quanto) basta semplicemente lanciare il comando:

lynis audit system

Lynis

Durante l’attività, mediante scansione interattiva, sarà necessario premere il tasto INVIO per procedere oppure la combinazione di tasti CRTL e “C” per interrompere la scansione.

E’ possibile effettuare anche una scansione più rapida, aggiungendo il flag -Q oppure –quick

lynis audit system –quick

Il risultato della scansione può essere riesaminato in seguito nel file di log /var/log/lynis.log

 

Automatizzare con Lynis la scansione del sistema

Possiamo decidere di effettuare frequentemente delle scansioni del sistema e inviare i risultati di tali analisi ad una caselle di posta elettronica.

E’ opportuno accertarsi che sia disponibile il comando mail. Se digitando il comando:

whereis mail

Viene restituito nulla, allora mail non è disponibile; per disporre di questo comando si può installare il pacchetto mailutils

apt-get install mailutils

Fatto questo, è possibile creare un cronjob da usare per schedulare il lavoro.

Per aggiungere un cronjob, modifichiamo il crontab dell’utente root:

crontab -e

All’interno di questo file aggiungiamo in fondo la seguente riga:

0 3 * * * /usr/local/bin/lynis audit system –quick 2>&1 | mail -s “Analisi di Lynis” you@example.com
Questo cronjob verrà avviato tutti i giorni alle ore 3.00 e al termine della scansione invierà un messaggio di posta elettronica contenente il risultato a you@example.com, ovviamente quest’ultimo indirizzo andrà cambiato.

 

Linux Malware Detect (LMD) – analisi e monitoraggio web script

Linux Malware Detect (LMD) è uno scanner di malware per Linux progettato per individuare il software malevolo che si installa nelle cartelle contenti i file di un sito web.
E’ principalmente orientato alla ricerca di codice malevolo che viene iniettato in file php o js, questo codice solitamente non viene segnalato dai normali antivirus come problematico ma che può creare forti danni ad un sito web.
Tengo a precisare che l’uso di Linux Malware Detect (LMD)  non è così semplice ed immediato come Lynis.

Procediamo adesso a scaricare e installare il tool:

cd /tmp
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar -xvzf maldetect-current.tar.gz
cd maldetect-*
sudo ./install.sh

Una volta installato LMD, il tool può essere eseguito tramite il comando maldet.

Siccome Linux Malware Detect (LMD) è stato progettato per la scansione di file appartenenti a siti web è conveniente scansionare soltanto le cartelle che contengono tali file.
Per esempio se abbiamo un webserver con sistema operativo Debian o Ubuntu, questi file sono contenuto nella cartella /var/www e nelle sottocartelle

Quindi possiamo procedere a lanciare una scansione ad-hoc, usando questo comando:

maldet -a /var/www

Verso la parte finale dell’output del comando vi viene indicato il report in cui è stato il risultato della scansione.

 

Monitoraggio in tempo reale del malware con Linux Malware Detect

A differenza di altri tool, Linux Malware Detect consente di attivare un monitoraggio e analisi in backgroud dei file creati, modificatie spostati in backgroud. Il comportamento è simile a quello degli antivirus per Windows, il software rimane sempre in esecuzione sul server in attesa di poter analizzare file recenti.

Per potersi servire del monitoraggio in tempo reale, è necessario accertarsi di aver installato il pacchetto inotify-tools (più dipendenze) che contiene il comando inotifywait, richiesto da Linux Malware Detect. Se utilizzate una distribuzione Debian o Ubuntu:

apt-get install inotify-tools

Ora creiamo un file contenente la lista dei percorsi da analizzare in tempo reale:

nano /usr/local/maldetect/maldet-path.list

Inseriamo i percorsi uno per riga, es.:

/home?/?/public_html/
/var/www/clients/

Poi lanciamo il comando:

/usr/local/maldetect/maldet -m /usr/local/maldetect/maldet-path.list

Questo crerà un processo che rimarrà in esecuzione fino a che il server non verrà riavviato. Ciò comporta che il tool di monitoring di Linux Malware Detect vada avviato nuovamente ad ogni riavvio del sistema operativo.
Pertanto è suggerito inserire una riga nel file /etc/rc.local

echo “/usr/local/maldetect/maldet -m /usr/local/maldetect/maldet-path.list” >>/etc/rc.local

Anche per Linux Malware Detect è possibile pianificare una o più scansione che vengono eseguite in modo automatico e ricevere il risultato via email.
Verifichiamo la presenza del file /usr/local/maldetect/conf.maldet. Se il file non è presente creiamo un file di configurazione personalizzato

nano /usr/local/maldetect/conf.maldet

nel file inseriamo queste righe:

email_alert=”1″
email_addr=”you@domain.com”

sostituiamo you@domain.com con l’indirizzo di posta al quale vogliamo inviare il report delle analisi.

Se il file invece è già disponibile, modifichiami i parametri email_alert e email_addr mettendo 1, e l’indirizzo mail.

lmd

Linux Malware Detect si occuperà di fare la scansione in modo automatico di alcune cartelle contenenti file di siti web come /home?/?/public_html/,/var/www/html/,/usr/local/apache/htdocs/,/var/www/clients/ ed invierà regolarmente tutti i giorni un analisi fatta sui file creati o modificati negli ultimi 7 giorni.

Un pensiero riguardo “Come ricercare malware e rootkit su Linux

  1. Salvatore ha detto:

    Molto, molto interessante: argomento trattato in modo molto approfondito! Era ora che qualcuno scrivesse una guida del genere anche per Linux 🙂

I commenti sono chiusi.