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
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.
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”
I commenti sono chiusi.
Molto, molto interessante: argomento trattato in modo molto approfondito! Era ora che qualcuno scrivesse una guida del genere anche per Linux 🙂