Maldet o Linux Malware Detect (LMD) es un escáner de malware para Linux de aplicaciones web diseñado principalmente para CentOS. Puede configurarse en modo monitor (detecta en tiempo real que aparece malware en el disco duro, nos avisará y realizará la acción que hayamos configurado) o sin este tipo de modo.
Comencemos con la instalación:
# wget http://www.rfxn.com/downloads/maldetect-current.tar.gz # tar xfz maldetect-current.tar.gz # cd maldetect-*
Ahora procedemos a instalarlo:
# sh install.sh Linux Malware Detect v1.4.1 (C) 2002-2011, R-fx Networks <proj@r-fx.org> (C) 2011, 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(4992): {sigup} performing signature update check... maldet(4992): {sigup} local signature set is version 201205035915 maldet(4992): {sigup} new signature set (201301184527) available maldet(4992): {sigup} downloaded http://www.rfxn.com/downloads/md5.dat maldet(4992): {sigup} downloaded http://www.rfxn.com/downloads/hex.dat maldet(4992): {sigup} downloaded http://www.rfxn.com/downloads/rfxn.ndb maldet(4992): {sigup} downloaded http://www.rfxn.com/downloads/rfxn.hdb maldet(4992): {sigup} downloaded http://www.rfxn.com/downloads/maldet-clean.tgz maldet(4992): {sigup} signature set update completed maldet(4992): {sigup} 10589 signatures (8721 MD5 / 1868 HEX)
Comprobamos y actualizamos a la ultima versión instalada de programa y de signatures:
# maldet --update-ver # maldet --update
Pasemos a configurarlo. Para ello editamos el fichero de configuración /usr/local/maldetect/conf.maldet:
# Definimos que avise por email # [0 = disabled, 1 = enabled] email_alert=1 # Indicamos emails que recibiran las alertas (separados por coma) # [ values are comma (,) spaced ] email_addr="micorreo@midominio.com" # La acción que se realizará cuando se detecte malware. Prefiero que avise, para ello indicamos el valor a 0 # [0 = alert only, 1 = move to quarantine & alert] quar_hits=0 # Limpiar el script PHP de funciones tipo base64_decode o eval # [0 = disabled, 1 = clean] quar_clean=1 #Esta es la raíz html / web para los usuarios en relación con homedir, cuando # Esta opción está activada, monitorizará la ruta a partir de ella # [ clear option to default monitor entire user homedir ] inotify_webdir=public_html # Prioridad que se le dará al proceso que irá escanenado los ficheros creados o modificados en tiempo real # [ -19 = high prio , 19 = low prio, default = 10 ] inotify_nice=10
Ya tenemos todo listo para empezar a usar Maldet. Podemos realizar un escaneo manual:
# Escaneo de todos los public_html del servidor maldet -a /home/?/public_html
También podemos ejecutar un escaneo solo de los ficheros recientes con:
# Escaneo de los ficheros con menos de 5 días de antiguedad # maldet -r /home/?/public_html 5
Se puede enviar a la cuarentena todos los ficheros encontrados en un SCANID una vez realizado el escaner, suponiendo que en la configuración no tuvieras puesto que se envíe a cuarentena automaticamente..
maldet --quarantine SCANID
De manera similar a lo anterior, si desea intentar una limpieza en todos los resultados de malware de una exploración anterior que no tenía la función activada:
# maldet --clean SCANID
De manera individual, si tiene un archivo que fue puesto en cuarentena por un falso positivo o que simplemente desea restaurar:
# maldet --restore fichero.php.2384 # maldet --restore /usr/local/maldetect/quarantine/fichero.php.2384
Obtener la lista de reportes realizados:
# maldet --report list
O incluso puede ver el último reporte:
# maldet --report
Todos ellos están almacenador en la ruta /usr/local/maldetect/sess/. Por otro lado, si consideramos que algún Malware lo tenemos, podemos enviarlo al autor para que lo incluya en la base de datos de Maldet de la siguiente forma:
# maldet -c fichero_malware_no_detectado.php
Por otro lado, antes he hablado del modo monitor. Podemos activarlo de dos maneras:
maldet --monitor users
que monitorizará el directorio definido en la variable inotify_webdir de la configuración, en cada home del usuario users
maldet --monitor /home,/tmp,/var/www/vhosts
que monitorizaría la lista de paths separados por comas.
En ambos casos para ver el log del monitor de la siguiente forma:
tail -f /usr/local/maldetect/inotify/inotify_log
Si queremos matar todos los procesos de monitorización, podemos ejecutar:
maldet -k
En el modo no es monitor y por defecto, cuando se instala se introducen unas entradas en el cron.daily para realizar escaneos diarios /etc/cron.daily/maldet