Maldet (también conocido como LMD de las iniciales de Linux Malware Detect) es un detector de malware para entornos Linux compartidos, bajo licencia GNU GPLv2, que funciona desde el terminal.
Instalación
Podemos instalar Maldet de la siguiente manera:
1. Bajaremos el tarball de la página oficial:
[root@miServer tmp]# wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
2. Descomprimiremos e instalaremos
[root@miServer tmp]# tar -zxcvf maldetect-current.tar.gz
[root@miServer tmp]# cd maldetect-1.4.2/
[root@miServer tmp]# ./install.sh
3. Ya estaremos listos para usar Maldet
Configuración
Una vez instalado Maldet, podremos empezar a usarlo con la configuración que viene por defecto, o si lo preferimos, podremos ajustar algunos detalles modificando el fichero /usr/local/maldetect/conf.maldet, como por ejemplo:
- quar_hits: mover a cuarentena los hits (1) o únicamente informar (0)
- quar_clean: intentar limpiar las inyecciones de malware (requiere quar_hits a 1). 1 limpiar, 0 no hacer nada
- minfilesize / maxfilesize: tamaño mínimo y máximo que puede tener un fichero, para ser escaneado
- clamav_scan: Intenta detectar si se tiene ClamAV Antivirus instalado, y en caso afirmativo, lo usa para completar el escaneo, aun cuando continua usando la base de datos de firmas de LMD.
- public_scan: permite a usuarios no root ejecutar escaneos
Respecto a la cuarentena, para los escaneos ejecutados con usuarios no root, los ficheros movidos a cuarentena se moverán a:
/usr/local/maldetect/pub/username
En función del usuario que ejecuta el escaneo, pues, tendremos una ruta de cuarentena u otra. En cualquier caso, tras ejecutar una acción de cuarentena, maldet nos informará de la ubicación a la que se ha trasladado el fichero sospechoso.
Por cierto, resultan interesantes las opciones de correo electrónico, que servirán para enviar un mail con el informe del escaneo a una dirección concreta, en el caso de que en el escaneo se haya detectado algún fichero comprometido.
Primeros pasos con Maldet (LMD)
De las primeras cosas que podemos hacer, es actualizar la base de datos de definiciones de malware, con:
[root@miServer tmp]# maldet --update
Podremos hacer un escaneo total a partir de una ruta concreta, con:
[root@miServer tmp]# maldet --scan-all /path/to/folder
Al finalizar el escaneo, nos aparecerá un resumen con los resultados del escaneo:
maldet(28287): {scan} scan completed on /path/to/folder/: files 535, malware hits 2, cleaned hits 0
maldet(28287): {scan} scan report saved, to view run: maldet –report 022614-1124.28287
Si ejecutamos maldet con la opción –report seguido del id del informe, tal y como nos propone al finalizar un escaneo, podremos ver qué ficheros sospechosos se han detectado:
[root@miServer tmp]# maldet --report SCAN_ID
Podemos afinar un escaneo, escaneándo únicamente los ficheros modificados en los últimos X días, con:
[root@miServer tmp]# maldet --scan-recent /path/to/folder/ DIAS
Comentar que por defecto no viene habilitada la cuarentena de ficheros. Si ya hemos ejecutado un escaneo sin la opción de cuarentena, podremos mover los hits a cuarentena, indicándo el SCANID:
[root@miServer tmp]# maldet --quarantine SCAN_ID
Finalmente, decir que la opción –help de maldet, nos dará mucha más información sobre su uso:
[root@miServer tmp]# maldet --help
Ejemplo de escaneo
Un ejemplo de uso de Maldet, sería el siguiente:
1. En primer lugar, se ejecuta un escaneo completo con las opciones por defecto (sin cuarentena):
[root@miServer tmp]# maldet --scan-all /var/www/proyectoweb
2. El escaneo termina y devuelve varios hits, tal y como se puede ver en el resumen que muestra tras finalizar el escaneo:
maldet(21255): {scan} scan completed on /var/www/proyectoweb/: files 3824, malware hits 18, cleaned hits 0
maldet(21255): {scan} scan report saved, to view run: maldet --report 022614-1254.21255
maldet(21255): {scan} quarantine is disabled! set quar_hits=1 in conf.maldet or to quarantine results run: maldet -q 022614-1254.21255
3. Revisamos los ficheros indicándo el ID del escaneo
[root@miServer tmp]# maldet --report 022614-1254.21255
4. Forzamos la limpieza de los ficheros infectados. Esta instrucción será rápida y mostrará por pantalla si efectivamente se ha podido solucionar el problema en cada uno de los ficheros detectados (clean successful) o no (clean failed).
[root@miServer tmp]# maldet --clean 022614-1254.21255
5. Tras la limpieza, me he asegurado de que algunos ficheros se han limpiado, ejecutando un segundo escaneo que efectivamente, me ha devuelto menos hits:
[root@miServer tmp]# maldet --scan-all /var/www/proyectoweb
maldet(2876): {scan} 3824/3824 files scanned: 13 hits 0 cleaned
maldet(2876): {scan} scan completed on /var/www/proyectoweb/: files 3824, malware hits 13, cleaned hits 0
maldet(2876): {scan} scan report saved, to view run: maldet --report 022614-1304.2876
6. A continuación, forzamos la cuarentena de los ficheros que no se han podido limpiar:
[root@miServer tmp]# maldet --quarantine 022614-1304.2876
7. Finalmente, nos aseguramos de que efectivamente se han movido los ficheros a cuarentena:
[root@miServer tmp]# ls -la /usr/local/maldetect/quarantine/
Fuentes:
https://www.rfxn.com/appdocs/README.maldetect
http://www.tecmint.com/install-linux-malware-detect-lmd-in-rhel-centos-and-fedora/
http://blog.hostonnet.com/how-to-install-and-configure-maldet-linux-malware-detect-lmd
Foto por zidbits