A la recherche de code malwaillant avec LMD et Clamav

 

Quand on se retrouve face à un site hacké une des premières choses à faire est de retrouver les fichiers contenant du code malvaillant pour cela j'utilises deux outils libres : LMD et Clamav et des signatures à jour.

LMD : Linux Malware Detect

LMD c'est Linux Malware Detect, un scanner de malware pour plateformes Linux.

Site : https://www.rfxn.com/projects/linux-malware-detect/

L'installation est assez simple, on récupère le fichier tar.gz, on le décompresse et on lance l'installation :

# cd /opt ; wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
# tar xvzf maldetect-current.tar.gz
# cd maldetect-1.4.2 ; ./install.sh

Linux Malware Detect v1.4.2
(C) 2002-2013, R-fx Networks <proj@r-fx.org>
(C) 2013, Ryan MacDonald <ryan@r-fx.org>
inotifywait (C) 2007, Rohan McGovern <rohan@mcgovern.id.au>
This program may be freely redistributed under the terms of the GNU GPL

installation completed to /usr/local/maldetect
config file: /usr/local/maldetect/conf.maldet
exec file: /usr/local/maldetect/maldet
exec link: /usr/local/sbin/maldet
exec link: /usr/local/sbin/lmd
cron.daily: /etc/cron.daily/maldet

maldet(2519): {sigup} performing signature update check...
maldet(2519): {sigup} local signature set is version 201205035915
maldet(2519): {sigup} new signature set (2015042721507) available
maldet(2519): {sigup} downloaded http://cdn.rfxn.com/downloads/md5.dat
maldet(2519): {sigup} downloaded http://cdn.rfxn.com/downloads/hex.dat
maldet(2519): {sigup} downloaded http://cdn.rfxn.com/downloads/rfxn.ndb
maldet(2519): {sigup} downloaded http://cdn.rfxn.com/downloads/rfxn.hdb
maldet(2519): {sigup} downloaded http://cdn.rfxn.com/downloads/maldet-clean.tgz
maldet(2519): {sigup} signature set update completed
maldet(2519): {sigup} 10749 signatures (8838 MD5 / 1911 HEX)

Lors de l'installation les mises à jour des signatures sont faites reste plus qu'à tester.

# maldet --scan-all /root/repatester
Linux Malware Detect v1.4.2
(C) 2002-2013, R-fx Networks <proj@r-fx.org>
(C) 2013, Ryan MacDonald <ryan@r-fx.org>
inotifywait (C) 2007, Rohan McGovern <rohan@mcgovern.id.au>
This program may be freely redistributed under the terms of the GNU GPL v2

maldet(2665): {scan} signatures loaded: 10749 (8838 MD5 / 1911 HEX)
maldet(2665): {scan} building file list for /root/repatester, this might take awhile...
maldet(2665): {scan} file list completed, found 2445 files...
maldet(2665): {scan} 2445/2445 files scanned: 1 hits 0 cleaned
maldet(2665): {scan} scan completed on /root/repatester: files 2445, malware hits 1, cleaned hits 0
maldet(2665): {scan} scan report saved, to view run: maldet --report 042915-1628.2665
maldet(2665): {scan} quarantine is disabled! set quar_hits=1 in conf.maldet or to quarantine results run: maldet -q 042915-1628.2665

Cela semble assez faible : {scan} 2445/2445 files scanned: 1 hits 0 cleaned ; 1 seul fichier identifié sur 2445.

Pour lire le rapport :

# maldet --report 042915-1628.2665

malware detect scan report for debian7:
SCAN ID: 042915-1628.2665
TIME: avril 29 16:35:11 +0200
PATH: /root/repatester
TOTAL FILES: 2445
TOTAL HITS: 1
TOTAL CLEANED: 0

NOTE: quarantine is disabled! set quar_hits=1 in conf.maldet or to quarantine results run: maldet -q 042915-1628.2665
FILE HIT LIST:
{HEX}php.cmdshell.unclassed.357 : /root/repatester/wp-iduct.php
===============================================
Linux Malware Detect v1.4.2 < proj@rfxn.com >

Il est aussi disponible dans le fichier /usr/local/maldetect/sess/session.042915-1628.2665

 

Clamav

Pour augmnter le champ des recherches on va installer clamav. clamav est un antivirus opensource connu et reconnu, qui permet en plus des virus de chercher de reconnaitre des malware, des trojans, etc ...

Installation

Sous Debian on va installer les paquets nécessaires :

# apt-get install clamav-daemon clamav-freshclam

Puis on met à jour avec freshclam :

# freshclam
ClamAV update process started at Tue May 12 16:42:48 2015
main.cld is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
daily.cld is up to date (version: 20448, sigs: 1386255, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 254, sigs: 45, f-level: 63, builder: anvilleg)

 

Ajout de signatures

Pour augmenter la pertinence des analyses de clamv il faut rajouter des signatures, il existe plusieurs fournisseurs qui proposent des sigantures à des tarifs divers :

https://www.securiteinfo.com/services/improve-detection-rate-of-zero-day-malwares-for-clamav.shtml

https://www.atomicorp.com/wiki/index.php/Atomic_CLAMAV_Signatures

Il existe aussi un paquet Debian permettant d'avoir des signatures supplémentaires gratuitement :

# apt-get install clamav-unofficial-sigs

Pour mettre à jour :

# /usr/sbin/clamav-unofficial-sigs

ATTENTION : pour ne pas se faire bloquer, il ne faut pas mettre à jour plus d'une fois par jour.

 

On peut maintenant relancer un scan :

maldet(9769): {scan} scan completed on /root/repatester: files 2448, malware hits 58, cleaned hits 0

On passe de 1 à 58 fichiers identifiés comme potentiellement dangereux.

Si on analyse le rapport on y trouve des choses assez intéressantes :

{CAV}Php.Trojan.StopPost
{CAV}Sanesecurity.Malware.24797.PhpBot.MailPoet
...

 Pour finir

Il faut faire attention à une chose, ces outils peuvent donner des "faux positifs", c'est à dire des fichiers qui pourraient être identifiés comme contenant du code malveillant mais qui n'en contiennent pas. Il faut donc controller les fichiers après analyse.