|
Última versión Linux/BSD (1.6.0)
Versiones anteriores
Lea sobre Trojan Scan en este artículo:
|
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:
-
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
-
Compruebe, actualice y pruebe la configuración (use la opción
-n para no enviar correos),
-
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.
|