Maldet – Linux Malware Detect

Introducción

En el día a día en el trabajo vas descubriendo cosas y de software que puede facilitar mucho la tarea del administrador de sistemas. Una de esas herramientas que he encontrado es maldet (Linux Malware Detect) la cual te ahorra en mucho tiempo buscar y analizar posibles trazas de malware, detección de SHELLs, etc…

En este caso diremos que es una herramienta que no está paquetizada, pero que el software viene con un instalador que nos permitirá instalarlo de manera cómoda.

El programa en sí veremos que desde 2013 no se actualiz, pero eso no quiere decir que la herramienta pierda eficacia. Esto es debido a que las firmas o el cómo detecta el posible malware sí que se sigue actualizando hoy en día. De hecho obtiene los resultados de 4 fuentes:

  • Network Edge IPS: Debido a que el creador trabaja con IPS (Detector de instrusos) recibe las firmas las clasifica y las empaqueta para este software.
  • Comunity Data: Información obtenida de distintas webs como pueden ser clean-mx o malwaredomainlist.
  • ClamAV: Detecciones en MD5/HEX actualizadas por este motor de antivirus. Mejora el rendimiento de maldet si está instalado en el servidor.
  • User Submission: Aportaciones de los propios usuarios.

Instalando Maldet

Lo primero que haremos será bajar el paquete a nuestro servidor para proceder con su instalación

mkdir maldet && cd maldet
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz

Ahora descomprimimos e instalamos el script a través de su install.sh

tar xvzf maldetect-current.tar.gz
cd maldetect-1.4.2
./install.sh

El resultado del comando es el siguiente:

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(4869): {sigup} performing signature update check...
maldet(4869): {sigup} local signature set is version 201205035915
maldet(4869): {sigup} new signature set (2015073130861) available
maldet(4869): {sigup} downloaded http://cdn.rfxn.com/downloads/md5.dat
maldet(4869): {sigup} downloaded http://cdn.rfxn.com/downloads/hex.dat
maldet(4869): {sigup} downloaded http://cdn.rfxn.com/downloads/rfxn.ndb
maldet(4869): {sigup} downloaded http://cdn.rfxn.com/downloads/rfxn.hdb
maldet(4869): {sigup} downloaded http://cdn.rfxn.com/downloads/maldet-clean.tgz
maldet(4869): {sigup} signature set update completed
maldet(4869): {sigup} 10795 signatures (8882 MD5 / 1913 HEX)

Como hemos podido observar en el log nos dice donde está el ejecutable, los ficheros, la configuración y habilitado un cron. Además de todo ello descarga la actualización de las firmas de las distintas páginas webs.

Configuración de Maldet

En este punto vamos a tratar sobre la configuración de nuestro maldet, es decir vamos a trabajar con el fichero «/usr/local/maldetect/conf.maldet».

Parámetros importantes que vamos a configurar:

  • email_alert=1 : Si queremos alertas en nuestra dirección de correo lo habilitaremos.
  • email_addr=»email@ejemplo.com» : El email donde llegaran las alertas.
  • email_ignore_clean=0 : Ignora el reporte si todos los elementos se han podido limpiar. A mí personalmente me gusta saber si se ha limpiado algo y el qué.
  • quar_hits=0 : Me alertará antes de actuar, en el caso de que queramos que nos envíe el fichero a cuarentena de manera automática tendríamos que poner el parámetro en 1.
  • quar_clean=1 : Intenta limpiar las inyecciones de código de manera automática.

Existen otros parámetros que nos indica la cantidad de subdirectorios, si se utiliza el motor de análisis de clamav, etc…

Aunque me repita … es recomendable usar el motor o tener instalado el ClamAV. El rendimiento es mucho mayor que sin tenerlo isntalado.

Otra cosa a tener en cuenta es donde guarda los logs: /usr/local/maldetect/event_log

Crontab de Maldet

Al instalar el maldet por defecto nos instala una tarea programada para que se ejecute de manera diaria. Vamos a realizar una serie de puntos que realiza este trabajo ayudandonos en nuestro día a día.

  • Nos limpia cada 14 días la cuarentena, sesiones y tmp.
  • Actualizará nuestras firmas.
  • Actualizará el software en el caso de que sea necesario.
  • Buscará en zonas donde los paneles (Plesk, Cpanel, Directadmin, Webmin …) suelen guardar sus webs.

En resumen nos ayuda bastante ya que está todo configurado para un escaneo diario y nos lo envíe directamente al correo el reporte.

Comandos de Maldet

A continuación os vamos a detallar una lista de comandos básicos para analizar nuestros sitios webs.

Actualizar el programa y sus firmas (recordad que el crontab lo hace cada día)

maldet -d && maldet -u

Ejecutar escaneo de un directorio

maldet -a /ruta/web

Escanearemos en segundo plano (-b) todos los ficheros que en el sistema sean /home/*/public_* (Usa el interrogante como caracter comodin)

maldet -b --scan-all /home?/?/public_?

Listado de los distintos reportes que hayamos realizado

maldet --report list

Muestra un listado del reporte seleccionado

maldet --report SCANID

Conclusión

La verdad que me ha sorprendido para bien el uso y manejo de este comando o aplicación. Nos ahorra bastante tiempo a la hora de analizar que webs pueden tener o no problemas. Intenta limpiar el malware y tenemos la posibilidad de que nos lo alerte o directamente mandarlo a cuarentena para evitar los posibles problemas de seguridad.

Recomiendo el uso del comando y que se revise los posibles falsos positivos de este programa.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *