Linux Malware Detect (LMD) es un scanner de malware para linux gratuíto que utiliza hashes de las bases de datos de CYMRU a partir de 30 paquetes de antivirus conocidos.
Es muy efectivo y además permite la monitorización en tiempo real.
Mas detalles aqui:
http://www.rfxn.com/projects/linux-malware-detect/
--------------
Instalación
---------------
# wget
http://www.rfxn.com/downloads/maldetect-current.tar.gz
# tar xfz maldetect-current.tar.gz
# cd maldetect-*
# sh install.sh
--------------
Configuración
--------------
se edita el archivo /usr/local/maldetect/conf.maldet
# nano /usr/local/maldetect/conf.maldet
--------------------------------
Configuración: parametros de interés
---------------------------------
# Avisar por email
email_alert=1
email_addr=”micorreo@midominio.com”
# Solo avisar del malware o en cambio enviarlo a cuarentena directamente. La primera ejecución es mejor el aviso para una foto y ver que pasa.
# Luego se puede poner a 1 y moverá los archivos (que se podrán recuperar si hace falta)
# [0 = alert only, 1 = move to quarantine & alert]
quar_hits=0
# Trata de limpiar el script afectado de funciones sospechosas. Si se quiere poner a 1 ha de estar activado el anterior para que funcione
# El escaneado es mas lento cuando se activan los modos de cuarentena o limpieza
# [0 = disabled, 1 = clean]
quar_clean=0
# Suspende la cuenta afectada, esto es muy util. En servidores con Cpanel se realiza automáticamente apareciendo el aviso de cuenta
# suspendida o cualquier aviso. Para Ubutu/Debian hacer: "sudo usermod -s /bin/false usuario" o editar el usuario dentro de /etc/passwd
# [0 = disabled, 1 = suspend account]
quar_susp=0
# Detecta si está Clamav instalado y realiza el escaneado hasta 4 veces más rápido. Si no se tiene poner a 0.
clamav_scan=1
# Establece la ruta a los espacios publicos de los usuarios. Por defecto para CentOS o Cpanel. Segun la distribucion
# cambiar a /var/www/htdocs
inotify_webdir=public_html
el resto de parámetros tiene otras opciones como permitir que los usuarios escaneen, etc. Pero por defecto esto es suficiente.
---------------------------------
Actualizar por primera vez:
---------------------------------
# maldet –update-ver
# maldet –update
.... y con esto ya está todo listo por defecto.
--------------------------
Algunas opciones manuales
--------------------------
escanea a un usuario concreto
# maldet -a /home/usuario/public_html
escanea el espacio web de todos los usuarios en /home:
# maldet -a /home/?/public_html
---------------------
un típico mail de LMD
---------------------
Código:
malware detect scan report for server.myhost.es:
SCAN ID: 040613-0402.9813
TIME: Apr 6 06:02:44 +0200
PATH: /home*/*/public_html
RANGE: 2 days
TOTAL FILES: 8406
TOTAL HITS: 1
TOTAL CLEANED: 0
NOTE: quarantine is disabled! set quar_hits=1 in conf.maldet or to quarantine results run: maldet -q 040613-0402.9813
FILE HIT LIST:
{HEX}php.cmdshell.unclassed.344 : /home/user1/public_html/dire2/images/upload/files/asphoto.php.pjpg
{HEX}php.nested.base64.513 : /home/user2/public_html/formulario.php
____
en "FILE HIT LIST:" está el listado de 2 malwares encontrados. En caso de tenerlo configurado para enviarlo directamente
a la cuarentena pero luego vemos que se trató de un error, se puede restaurar inmediatamente así:
restaurar un sólo archivo:
# maldet –restore /home/user2/public_html/formulario.php
restaurar aplicando el propietario del archivo:
#maldet --user user2 –restore /home/user2/public_html/formulario.php
esto restaura todo el listado de malware del ultimo escaneado usando el "SCAN ID" que viene en el email:
# maldet --restore 040613-0402.9813
---------------------
CRON DIARIO
---------------------
LMD crea un archivo /etc/cron.daily/maldet para que se ejecute diariamente
--------------------------------
MONITORIZACION EN TIEMPO REAL
--------------------------------
Una de las opciones mas potentes de LMD es el uso de Inotify para poder monitorear en tiempo en real. Puede no ser necesario en una máquina sin mucho riesgo,
o quizás solo interesa aplicarlo a determinados sitios. A gustos.
Pero el modo monitor no está por defecto. Lo que LMD hace por defecto es ejecutar el cron diario en donde se analizan los 2 ultimos dias de cambios en
los archivos. En cambio en el modo monitor, se miran las notificaciones de Inotify cada 30 segundos, se aplican cuarentenas, etc.. y luego se envia un email
diario. El tiempo de inotify se controla por la variable "inotify_stime=30" que viene por defecto
Para monitorear en tiempo real, creamos un archivo "maldet_mon.sh" con los directorios que queramos monitorear
# nano /scripts/maldet_mon.sh
/home
/tmp
/var/www/htdocs/
(etc...)
y guardamos (Ctrl+X) + Y
aplicamos permisos
#chmod 0755 /scripts/maldet_mon.sh
y luego ejecutamos:
# maldet --monitor /scripts/maldet_mon.sh
...y ya está monitoreando.
El modo monitor se ejecutaría así para un solo usuario o directorio:
# maldet --monitor /home/usuario2
y para acabar el monitoreo:
# maldet --kill
--------------------------------
No se reciben emails
--------------------------------
* hay que tener en cuenta que por defecto si LMD no encuentra nada, no envia emails de alerta.
* ejecutar "sh /etc/cron.daily/maldet" y luego mirar el fichero /usr/local/maldetect/event_log y los tiempos para ver si hace su trabajo
* poner un script p.ej: "soyunmalwaremumalo.php" en algun usuario y con este contenido:
php
eval(gzuncompress(base64_decode('eNqdWG2P4kYM/jOVuJOqi')
?>
y ahora volver a ejecutar "sh /etc/cron.daily/maldet" y entonces comprobar que llega el email
---------------------
VARIOS
---------------------
* si finalmente no se localiza por donde se mete el malware, ni LMD ni cualquier otra cosa serán efectivos 100%. Tras descubrir el malware
hay que ver los logs de apache y actualizar scripts o localizar el formulario, url, etc.. por donde se cuela.
** si hay muchos usuarios el escaneo pueden llevar su tiempo.
** si se quieren limpiar archivos y la cuarentena está deshabilitada, no limpiará
** LMD instala el ejecutable y las librerías de inotify dentro de /usr/local/maldetect/inotify y ya funciona perfectamente.
Si se quieren utilizar las propias de la distribución porque se tienen o cualquier otro motivo, se pueden sustituir sin problema
pero no hace falta.
** ese mismo directorio /usr/local/maldetect/ es donde reside el programa con todo lo que necesita. Dentro hay carpetas con el registro de las
sesiones, bases de datos, etc..
LMD tiene más opciones para la personalización. Más info:
http://configuracionpordefecto.com/i...re-detect-lmd/
http://www.rfxn.com/appdocs/README.maldetect