Trojan Scan

Última versión Linux/BSD (1.6.0)
Versiones anteriores

Lea sobre Trojan Scan en este artículo:

CLI Magic: Trojan Scan
Trojan Scan is crafted in the finest Unix tradition […]
www.linux.com

Trojan Scan es un sencillo shell script que permite comprobar de forma simple pero relativamente efectiva la presencia de troyanos, rootkits y otro malware que pueda estar utilizando su servidor y red para fines no deseados (y posiblemente ilegales). Dado que este script es relativamente simple, no espere que los detecte todos, pero ayuda a encontrar estos programas en, por ejemplo, servidores compartidos. En esas máquinas muchos usuarios instalan multitud de aplicaciones. Estas aplicaciones pueden introducir nuevas vulnerabilidades que de otro modo no se detectarían, salvo por un administrador de sistemas muy alerta.

Funciona listando todos los procesos que utilizan Internet con el comando lsof (con las opciones -Pni). Esta lista se transforma a continuación en firmas con el formato <process_name>:<protocol>:<port_number_in>:<port_number_out>:<user>. Estas firmas se comparan con los procesos permitidos definidos en la configuración. Si se encuentran firmas de procesos en ejecución que no coinciden con las firmas permitidas, se envía un informe por correo electrónico que incluye la salida de ps, ls y, opcionalmente, lsof (véase también: lsof).

El script es relativamente fácil de usar:

  1. Instale en /etc/trojan-scan/trojan-scan.conf y /usr/local/sbin/trojan-scan.sh
    • Utilice lo siguiente para generar una configuración predeterminada:
        trojan-scan -C /etc/trojan-scan/trojan-scan.conf
      , o,
    • Configure la dirección de correo electrónico (RECIPIENTS), los procesos permitidos (ALLOWED), opcionalmente lsof MD5 (LSOF_MD5)
      en trojan-scan.conf, por ejemplo con:
          echo “LSOF_MD5=\”`md5 \`which /usr/sbin/lsof\` | egrep -o -iE \         ‘[0-9a-f]{32}’`\”” >> /etc/trojan-scan/trojan-scan.conf
  2. Compruebe, actualice y pruebe la configuración (use la opción -n para no enviar correos),
  3. Añada a crontab, por ejemplo con:
      */5 * * * * /usr/local/sbin/trojan-scan.sh -F
    Esto se ejecutará cada 5 minutos e incluirá un listado lsof completo en el informe por correo. (NB: dependiendo de la carga de su servidor puede ser necesario aumentar este intervalo.)

Ahora que el script admite configuración inbound/outbound, puede considerarse demasiado estricto, ya que requiere o bien indicar todos los programas que usan conexiones salientes (como consultas DNS, peticiones de páginas web o correo), o bien definir reglas que siempre permitan ciertas conexiones salientes designadas. Por ejemplo, para permitir que todos los usuarios y todos los procesos utilicen DNS, use la siguiente regla:
  ALLOWED=”$ALLOWED !@any@!:UDP:!@any@!:53:!@any@!”
Sin embargo, esto deja pasar cualquier malware que utilice el puerto UDP 53 para comunicarse.

Pruebe con:
  /usr/local/sbin/trojan-scan.sh -n

Otras opciones:

-d   modo depuración
-F   salida completa
-n   no enviar correo
-v   modo detallado
-x   depuración de shell
-C file   generar archivo de configuración predeterminado (use para stdout)
-f config   cargar configuración desde este archivo

Las rutas actuales de los programas utilizados (como lsof, sed, awk, etc.) se pueden sobrescribir en el archivo de configuración definiéndolas igual que en el archivo del programa (p. ej. SED=/usr/bin/sed).

Le agradeceríamos que nos avise si utiliza este programa, en info [replace-at] trojanscan [replace-dot] org.


Copyright (c) 2005,2007,2011,2013,2014 Derks.IT / Jeroen Derks

Licenciado bajo la Apache License, Versión 2.0 (la “Licencia”);
no puede utilizar este archivo salvo en cumplimiento de la Licencia.
Puede obtener una copia de la Licencia en

http://www.apache.org/licenses/LICENSE-2.0

Salvo que la legislación aplicable lo exija o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye “TAL CUAL”, SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, expresas o implícitas. Consulte la Licencia para conocer los permisos y limitaciones específicos bajo la misma.