El malware es un tipo de software cuya función es la de evitar que el ordenador sobre el que se ejecuta no funcione correctamente, aunque también se utiliza para realizar tareas sin que el usuario del equipo sea consciente.
El malware engloba aplicaciones como spyware, virus, adware y demás programas. Algunos pueden robar datos del ordenador del usuario que se suponen que deben ser privados, como pueden ser datos personales o cuentas bancarias. Como usuario podrías pensar que no necesitas instalar programas contra aplicaciones malware por el hecho de no almacenar datos importantes. El caso es que en otras ocasiones, el malware se utiliza para ejecutar aplicaciones que envían spam a otros servidores o para realizar ataques DDos a algún servidor de internet.
Vamos a explicar cómo instalar y configurar Linux Malware Detect, aplicación también conocida con los nombres LMD o MalDet. Instalaremos LMD junto con ClamAV, que es un antivirus para RHEL, CentOS y Fedora. Concretamente, este tutorial será válido para todas las versiones de CentOS 6 y CentOS 7, así como para las versiones 6 y 7 de RHEL y también para Fedora a partir de la versión 12.
En principio, LMD está pensado para ser utilizado en equipos utilizados como servidores web, especialmente para aquellos funcionando en entornos hosting multiusuario. De todos modos, sacarás partido a LMD sea cual sea el uso que le des a tu equipo.
Contenidos
Instalando LMD en CentOS, RHEL y Fedora
LMD no está disponible en ningún repositorio online, pero podrás descargarlo como un archivo TAR.GZ desde la propia web del programa. El archivo contiene el código fuente de la última versión. Podemos descargarlo mediante el siguiente comando:
# wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
Lo siguiente que haremos será descomprimir el archivo en el directorio al que deseamos extraer los contenidos del mismo. El directorio que se descomprimirá se llamará maldetect-1.5 debido a que es la última versión a la hora de redactar este artículo, pero podrá ser cualquier otra versión. Tras descomprimir el archivo buscamos el directorio recién descomprimido.
# tar -xvf maldetect-current.tar.gz # ls -l | grep maldetect
Al entrar en el directorio encontraremos varios archivos y entre ellos el script de instalación, que se llama install.sh.
# cd maldetect-1.5 # ls
El script de instalación contiene muy pocas líneas de texto, pero además de instalar LMD también realiza un escaneo inicial para comprobar si el directorio de instalación ya existe para así evitar errores. Dependiendo de si existe o no, creará o no el directorio, que será /usr/local/maldetect. Vamos allá con la instalación:
# ./install.sh
Tras completar la instalación, se agregará un cron que se ejecutará diariamente para escanear el sistema y en especial los servidores web. Este detector de malware está especialmente pensado para comprobar también los archivos de los distintos paneles de hosting como CPanel o Vesta. El archivo cron.daily se agregará al directorio /etc/cron.daily.
Cómo configurar Linux Malware Detect
El archivo de configuración de LMD se encuentra en el directorio /usr/local/maldetect/conf.maldet. Las opciones están comentadas dentro del propio archivo para hacer que la configuración sea más sencilla. Si estás perdido, siempre puedes utilizar el archivo de ayuda que se encuentra en el directorio /usr/local/src/maldetect-1.5/README.
El archivo de configuración se divide en diferentes partes: Alertas de email, opciones de cuarentena de los archivos, opciones de escaneo, opciones de monitorización y análisis estadísticos. Vamos a ver algunas de estas opciones de LMD:
- email_alert: Podemos poner esta variable a uno (1) para recibir emails con los resultados de los escaneos o a cero (0) para no recibirlos.
- email_subj: Sirve para definir el asunto del email que LMD nos enviará en caso de haber activado la opción email_alert. El texto ha de ir entre comillas dobles. Por ejemplo: email_subj: «Aqui va el asunto».
- email_ddr: Sirve para escribir la dirección a la que nos será enviado el email de los resultados. Al igual que antes, debe estar activada la opción email_alert. Por ejemplo: email_addr: miemail@gmail.com.
- quar_hits: Sirve para definir la acción a realizar cuando se encuentra algún tipo de malware. Con el valor cero (0) solamente se nos enviará una alerta, pero con el valor a uno (1), LMD moverá los archivos detectados como malware a la carpeta de cuarentena y, además, nos enviará una alerta.
- quar_clean: Sirve para eliminar automáticamente las cadenas detectadas como malware dentro de los scripts. Es útil para eliminar las inyecciones de código cuando por ejemplo nos hackean una cuenta de hosting. Este tipo de cadenas contienen muchos caracteres que permiten que o bien el archivo pueda funcionar como ejecutable o bien que contenga una funcionalidad extra cuyo código se encuentra encriptado como dicha cadena. Los posibles valores son de nuevo uno (1) o cero (0). Es necesario que la opción quar_hits esté activada.
- quar-susp: Esta opción permitirá suspender a los usuarios que son propietarios de los archivos detectados como malware. Útil para que el malware afecte lo menos posible a otros usuarios del servidor y, en especial, útil cuando algún script comienza a evitar spam, evitando así que nuestro servidor pase a entrar en alguna lista negra. Es necesario que la opición quar_hits esté activada.
- clamav_scan: Si ponemos esta variable a uno (1), LMD intentará detectar la presencia del antivirus ClamAV para utilizarlo como motor de escaneo. De este modo, LMD funcionará varias veces más rápido, realizando también análisis más efectivos.
Vamos a ver un ejemplo de cómo debería ser el archivo de configuración, que por cierto, se encuentra en la siguiente ruta:
# cat /usr/local/maldetect/conf.maldet
Los contenidos del archivo podrían ser los siguientes:
email_alert=1 email_addr=miemail@gmail.com email_subj="Alertas detectadas en el servidor $HOSTNAME - a fecha $(date +%Y-%m-%d)" quar_hits=1 quar_clean=1 quar_susp=1 clam_av=1
Vamos ahora a testear LMD.
Ejecutando Linux Malware Detect
Para escanear un directorio, que por ejemplo puede ser el directorio /var/www, tendremos que ejecutar:
# maldet --scan-all /var/www/
Si por ejemplo, solamente queremos analizar los archivos PHP, podemos acotar la búsqueda a los archivos con extensión PHP:
# maldet --scan-all /var/www/*.php
Los resultados del escaneo se guardarán un archivo que se nos indicará al final del análisis mediante algo así como:
{scan} scan report saved, to view run: maldet –report [SCANID].
Si el código SCANID que nos indican es por ejemplo 020616-0921.4525 (la primera parte es la fecha), podremos ver el informa mediante el siguiente comando:
# maldet --report 020616-0921.4525
Al final del archivo que se nos muestre estarán los archivos en cuarentena bajo el título FILE HIT LIST. Se nos mostrará tanto directorio como la localización del archivo tras ser movido a cuarentena para así evitar que siga haciendo daño al sistema.
Testeando Linux Malware Detect
Vamos a probar LMD, o también el combo LMD – ClamAV en caso de que también lo tengamos instalado y además hayamos activado la opción clam_av en el archivo de configuración como ya hemos visto.
A modo de testeo usaremos algunos archivos de ejemplo que serán detectados como malware, aunque en absoluto son dañinos para vuestro sistema. Por ejemplo, vamos a descargar los archivos en la carpeta /var/www/html, que comúnmente se utiliza para el contenido de los servidores web.
# cd /var/www/html # wget http://www.eicar.org/download/eicar.com # wget http://www.eicar.org/download/eicar.com.txt # wget http://www.eicar.org/download/eicar_com.zip
Cuando tengamos los archivos descargados, podemos ejecutar un escaneo del directorio:
# maldet --scan-all /var/www/
En caso de que nos de un error de que no se encuentra el comando; algo sí como «bash: maldet: command not found», tendremos que agregar /usr/local/sbin al PATH. Es decir, tendremos que ejecutar:
# export PATH=$PATH:/usr/local/sbin
Cuando logremos ejecutar maldet, se iniciará el escaneado de los archivos y al final del mismo podremos ver algo así como:
{HEX}EICAR.TEST.10 : /var/www/html/eicar.com => /usr/local/maldetect/quarantine/eicar.com.30134 {HEX}EICAR.TEST.10 : /var/www/html/eicar.com.txt => /usr/local/maldetect/quarantine/eicar.com.txt.2946 {HEX}EICAR.TEST.10 : /var/www/html/eicar.com.zip => /usr/local/maldetect/quarantine/eicar.com.zip.7995
En este caso, LMD ha encontrado tres archivos malware. Si comprobamos los archivos del directorio de cuarentena, podremos ver que los archivos detectados como malware están ahí.
# cd /usr/local/maldetect/quarantine/ # ls -l
Ahora podemos eliminar los archivos para siempre o intentar arreglarlos. Para eliminarlos todos a la vez hacemos:
# rm -rf /usr/local/maldetect/quarantine/*
Asegurándonos de que el Cron de LMD está activado
LMD necesita ser integrado mediante un cron. Linux Malware Detect debería estar en el crontab, algo que podemos consultar ejecutando lo siguiente como usuario root:
# crontab -e
En caso de que maldet no esté presente, podemos agregarlo al cron agregando las siguientes variables
PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ SHELL=/bin/bash
Así podremos tener una idea más clara de lo que ocurre.
Recomendaciones adicionales
La única recomendación consiste en leerse la documentación, que se encontrará en el archivo README que está en el interior del archivo comprimido con Linux Malware Detect que nos hemos descargado. Esto es todo.
Hola
¿El ClamAV lo tienes instalado previamente, No?