OWNED: Servidor en desarrollo
Empecemos por el principio, las máquinas de desarrollo no están abiertas "al público", son tan solo eso, máquinas con código en pre-producción en las que trabaja el equipo de desarrollo con lo que la seguridad está bastante descuidada (aún sabiendo que el 90% de los ataques provienen desde dentro, yo me fío de mis compañeros).
Con bastantes frentes abiertos, la verdad ni se me ocurrió repasar todos esos puntos que debería haber repasado -si, entono el mea culpa- antes de abrir el equipo a La Red para que un compañero pudiera acceder desde remoto.
Resultado: a las 4 horas el equipo había sido comprometido por un intruso, se había instalado un emech y, a través de IRC, se controlaba la máquina.
¿Cómo me entero?, la buena costumbre que tiene uno de leer logs y pegarle un repaso visual a todas las herramientas de monitorización que hay en cada máquina. Había conexiones abiertas a varios servidores de IRC:
bash 13666 root 1u IPv4 1160909 TCP 192.168.22.12:48391->208.83.20.130:ircd (ESTABLISHED) bash 13666 root 4u IPv4 1160915 TCP 192.168.22.12:54876->194.109.20.90:ircd (ESTABLISHED) bash 13666 root 7u IPv4 1158474 TCP 192.168.22.12:44264->208.83.20.130:ircd (ESTABLISHED)Viendo el pid (13666) compruebo que hay un bash bastante sospechoso saliendo de /dev/shm/.a/.oracle... así que poco más puedo hacer que parar ese proceso, desconectar la red y hacer algo de análisis forense.
El emech estaba bastante avanzado, se cargó el crontab y en su lugar había algo tal que:
* * * * * /dev/shm/.a/.oracle/update >/dev/null 2>&1Osea que intentaba conectar permanentemente al IRC desde donde -presumiblemente- se controlaba la máquina. Todavía estoy sacando conclusiones de esta experiencia por lo que tampoco diré mucho más.
Así que tened mucho cuidado a la hora de abrir vuestras máquinas a La Gran Red (y más en fin de año), porque los scripts no entienden de vacaciones.
Comentarios
Así que formateé y reinstalación, preferí ser algo paranoico a que se me escapase algo y dejar el boquete en la empresa. Desde aquella, todos los servicios menos FTP en puertos no estándar, cuentas de FTP sin acceso SSH y filtros para "blacklistear" los bots de ataque por diccionario a los X intentos de conexión.
Aun conservo por ahí una imagen del disco juakeado, pero no creo que lo revise. Lo malo de estos juankeos "tan cutres" es que te hacen ser más precavido pero ofrecen poca diversión xP
Al final lo de echar ojo a /tmp, /var/tmp y /dev/shm es buena idea. Tuviste suerte que fuera un script kiddie sin más, porque ese [i]toolkit[/i] nos lo instalaron por web (estaba en el crontab de apache, por ejemplo).
En mi caso lo descubri por que utilizaron la maquina para un ataque DOS (o eso parecia) y un proceso perl se comia todo el ancho de banda disponible en el server. Tras matar el proceso perl (mal hecho, lo se, pero era eso o me apagaban la maquina en el ISP) e investigar un poco, descubri donde estaba todo el petate.
Roundcube fuera (por supuesto) y por si las moscas algo de limpieza (facil por que estaba limitado al user www) y cambio de todas las claves de los usuarios del sistema (por si las moscas).
En cuanto al acceso, VPN esta bien, si no quieres tanto lio, tuneles SSH y a correr; o si usas *BSD monta PF y authpf y filtras con un simple acceso SSH los puertos abiertos a cada usuario, echa un ojo aqui: http://www.openbsd.org/faq/pf/authpf.html yo lo uso para autenticar a usuarios para que puedan conectar a Inet a traves de mis aps wifi y para que los desarrolladores puedan acceder al TRAC en los servers de desarrollo.