Publicaciones

Las cabezas de la Hidra. Malware para dispositivos de redes

Los dispositivos de redes (routers, puntos de acceso y módems DSL) son parte integral de las modernas redes domésticas y de pequeñas empresas. Por lo general, estos dispositivos los proporciona el mismo proveedor de Internet o se adquieren para expandir la infraestructura de una red ya instalada, y quienes los manejan suelen ser personas sin conocimientos técnicos especiales. A menudo mal configurados y vulnerables, estos dispositivos son blanco fácil de ataques dirigidos a redes cuyo objetivo es permitir el acceso rápido y fácil de los ciberdelincuentes a la red y controlarla. Puede resultar sorprendente que estos aparentemente inofensivos aparatos sean capaces de albergar malware.

Introducción

Los principales asuntos de seguridad

El eslabón más débil en cualquier cadena de seguridad informática es el mismo usuario, y esto es también válido para las amenazas a los dispositivos de red. Es evidente que un administrador altamente capacitado y competente ofrece una sólida protección para la mayoría de las redes, mientras que uno sin la adecuada experiencia ni capacitación puede fácilmente exponer a los usuarios a serios riesgos. Las grandes corporaciones con cientos o miles de usuarios suelen contar con costosos equipos profesionales de red, y contratan a especialistas en redes cualificados y expertos. Sin embargo, las pequeñas empresas cuyas redes no tiene más de 15 usuarios difícilmente pueden permitirse equipos caros y menos contratar a profesionales en redes. Además, no podemos esperar que quienes tengan un router o módem en su red doméstica tengan conocimientos en administración de redes; sería como exigir que cada usuario de ordenador sea experto en informática. Los usuarios domésticos suelen asumir que todo funcionará como debe, confiando en la configuración por defecto de sus aparatos, sin consultar complejos manuales técnicos. Por lo tanto, los proveedores de redes y los fabricantes de hardware tienen que tener en cuenta sus responsabilidades en el mantenimiento de la seguridad de una red al momento de vender sus aparatos.

Los dispositivos pequeños y de fácil uso, que sólo necesitan enchufarse en la red, están ganando cada vez más popularidad. Pero, ¿cuán segura es su configuración por defecto? ¿Podemos usarlos sin modificar sus parámetros predefinidos y sentirnos seguros? Pues bien, en la mayoría de los casos la respuesta es no. Imaginemos que no cambias la contraseña predefinida de tu nuevo router. Esto podría significar un gran riesgo porque las contraseñas predefinidas suelen ser bastante conocidas, e incluso si no lo fueran, son bastante simples de adivinar o descifrar. Esta es la gran debilidad de los equipos para redes pequeñas, pero no es la única. A veces el fabricante permite la administración remota por defecto o incluso crea una cuenta administrativa oculta destinada al soporte técnico. Además, los routers domésticos más modernos son compatibles con dispositivos UPnP, lo que significa que en algunos casos permiten que las aplicaciones cambien los parámetros del router sin necesidad de autenticación alguna. Esto es suficiente para capturar los dispositivos de usuarios sin conocimientos técnicos o de profesionales descuidados.

Por desgracia, ni el usuario más cuidadoso puede estar seguro de que su equipo sea 100% confiable. Esto se debe a las numerosas vulnerabilidades en el firmware del dispositivo, especialmente en las interfaces para Internet, que tienden a ser blanco de ataques XSS y CSRF o víctimas de ardides para evitar la autenticación. Este problema no se acaba con los dispositivos de redes domésticas o de pequeñas empresas, sino que se agrava con conocidos exploits dirigidos a equipos profesionales de redes de varias marcas. Además, tanto los usuarios como los fabricantes no parecen haber tomado suficiente conciencia sobre la seguridad informática o no le dan la debida atención. Incluso para las fallas del firmware, que se reparan con facilidad, la publicación de las actualizaciones de los dispositivos de red suele ser lenta y, en último caso, no se realiza, y a los usuarios no les interesa o no saben cómo instalar estas actualizaciones. Si existen errores de implementación, es imposible eliminarlos sin hacer profundos cambios, de manera que la mayoría de estos defectos perduran por mucho tiempo.

Ataques: razones y consecuencias

Resumiendo el párrafo anterior, hay temas específicos en relación a los dispositivos de red:

  • Débiles contraseñas preasignadas / no hay obligación de cambiar las contraseñas
  • Insegura configuración por defecto
  • Vulnerabilidades en el firmware / errores en la implementación del servicio
  • Falta de conciencia en el usuario y en el fabricante / trivialización de los problemas

Todos estos aspectos hacen del router/módem un blanco fácil de los ciberdelincuentes. Pero, ¿por qué alguien querría atacar un dispositivo de red? La razón es siempre la misma: por dinero. El acceso al router permite un monitoreo permanente y transparente de la red, el robo de información, y el desvío de usuarios hacia sitios web maliciosos. Asimismo, estos dispositivos pueden ser un escondite perfecto para programas maliciosos, que pueden fácilmente volver a infectar los ordenadores conectados a la red o construir una extensa red zombi a partir de los dispositivos infectados.

Así que con lo anterior en mente, recordemos las posibles consecuencias de un acceso no autorizado a un router:

  • Captura del tráfico de red
  • La capacidad de espiar las conversaciones VoIP
  • El robo de llaves WEP/WPA
  • La posibilidad de cambiar la configuración de un dispositivo
    • Cambiar / reajustar contraseñas
    • Exponer una red interna a la WAN
    • El riesgo de abrir puertas traseras (puerto de reenvío)
    • El cambio de la configuración DNS (drive-by pharming)

La mayoría de estos temas están relacionados con los ataques dirigidos, pero no muchos saben que a menudo lo están también con los programas maliciosos. Actualmente, parece que lo que más les interesa a los ciberdelincuentes es el cambio de la configuración DNS y la creación de redes zombi capaces de lanzar ataques DDOS; pero hay muchas otras posibilidades, como el robo de valiosa información desde el tráfico, el ocultamiento de programas maliciosos dentro de la RAM del router o la propagación de ransomware. Como se dice, el cielo es el límite.

¡Cuida tu DNS!

El proceso de mapeo de direcciones URL a IP es crucial para la seguridad de los usuarios de Internet. Si estos parámetros se modifican con alevosía, conocidas y confiables URLs pueden quedar asociadas con direcciones IPs piratas, lo que podría dejar al usuario expuesto a phishing, exploits y otros sitios maliciosos. Este desvío pasa completamente inadvertido para el usuario: sólo ingresa la URL en su navegador y espera a ver el contenido esperado. Sólo se requiere un cambio malicioso; no es difícil imaginar las devastadoras consecuencias del daño causado por un servidor DNS envilecido.

El proceso de cambiar las asociaciones URL -> IP se conoce como pharming. Los primeros en usar este ataque fueron los troyanos que alteraban el archivo hosts de Windows. El segundo paso en la evolución de este método fue el cambio de direcciones DNS en el registro de Windows. En 2007 apareció un programa malicioso más sofisticado que usaba este vector de ataque, bajo la forma del troyano Zlob/DNSChanger. Además de modificar los parámetros del registro, este programa malicioso verificaba si el router estaba conectado a un ordenador infectado, en cuyo caso intentaba acceder por la fuerza forzando la contraseña y alterando los servidores DNS.

¿Cómo puede el usuario protegerse contra estos ataques? Bueno, en este caso la respuesta es simple:

  • Una solución de seguridad incorporada en las bases de datos evita que programas maliciosos infecten un ordenador y accedan al router
  • Es necesaria una sólida y única contraseña para la administración del router

La situación se torna más complicada cuando el ataque se realiza sin recurrir al malware instalado en el ordenador del usuario. Esto se dio a principios de este año, cuando se lanzó un ataque dirigido contra una compañía proveedora de Internet. Muchos módems de clientes quedaron comprometidos al cambiar sus parámetros DNS, probablemente a través de una cuenta administrativa oculta en cada dispositivo reservada originalmente para el soporte remoto. El ataque probablemente incluía algún tipo de componente de automatización que fue eliminado de los dispositivos después de que se aplicaron los cambios en el DNS. En estos casos, el usuario queda completamente indefenso. El proveedor de Internet debe garantizar la calidad del módem o router antes de entregarlo a sus clientes, especialmente en lo que se refiere a las contraseñas de acceso y al acceso remoto. Deben prohibirse por defecto las conexiones desde una WAN, y debe especificarse estrictamente cualquier dirección IP capaz de establecer una conexión remota.

La explotación de vulnerabilidades

Ataque CSRF y drive-by pharming

En pocas palabras, un CSRF/XSRF (Cross-Site Request Forgery) es un ataque de Internet en el que se realizan acciones sensibles en nombre de un usuario confiable sin que este se entere. Esto es posible porque el respectivo sitio no suele verificar una petición proveniente del navegador de un usuario autentificado, y la aplica de inmediato. El navegador de un usuario inducido a visitar sitios maliciosos con este tipo de peticiones incrustadas en su código en forma de HTML o JavaScript puede empezar a ejecutar acciones no iniciadas o deseadas por el usuario, como salir de un determinado sitio, enviar entradas a un determinado foro, cambiar sus preferencias, etc. El drive-by pharming no es más que un ataque CSRF dirigido contra los routers para cambiar sus parámetros DNS.

Esta técnica se describió en el documento prueba de concepto por investigadores de la Universidad de Indiana en el año 2006. El primer ataque drive-by pharming en Internet abierto ocurrió un año después en México y estaba dirigido a la vulnerabilidad CSRF de los routers 2Wire. Un mensaje de correo infectado con un exploit se envió a millones de usuarios con el objetivo de robar credenciales de cuentas bancarias online. Este exploit consistía en una petición a la interfaz web del router para cambiar la asociación IP de la URL www.banamex.com a otra dirección maliciosa. Cuando el usuario visitaba este sitio de banca online, se le desviaba a un sitio phishing. Por supuesto que este sitio era casi igual al sitio original, excepto por un campo adicional: NetKey. NetKey es un valor generado aleatoriamente para autorizar las transacciones online de este banco.


Figura 1: Petición CSRF


Figura 2: Sitio phishing (Fuente: blog.hispasec.com)

Similares ataques tuvieron lugar los meses siguiente, pero no todos los mensajes de correo eran maliciosos; a veces sucedía un ataque CSRF inmediatamente después de que el usuario activara el vínculo malicioso y se le reenviara al sitio malicioso.

Puesto que esta vulnerabilidad es un problema de implementación, no es posible que el usuario la elimine a menos que disponga de una actualización del firmware. Desde el punto de vista del fabricante, existen pocas soluciones disponibles para reparar este problema. Una de ellas es el uso de un token único enviado junto a la petición como un valor oculto.

UPnP: muy fácil de usar pero muy peligroso

El ataque recién mencionado sólo fue posible porque no se tenía una contraseña establecida para el router o porque el usuario se encontraba en la interfaz web cuando sucedió el ataque. Básicamente, significa que el usuario que establezca una contraseña sólida y única en sus dispositivos correrá menos riesgos. Pero, ¿y si existe un método que permite que los parámetros del router cambien sin ninguna autenticación?

UPnP o Universal Plug and Play, es una serie de protocolos que simplifican la cooperación entre los dispositivos de red, como PCs, impresoras, teléfonos, routers/módems y puntos de acceso, etc. Especifica las reglas sobre cómo estos dispositivos automáticamente se descubren el uno al otro y se comunican. Una vez que se conecta a la red, el dispositivo compatible con UPnP no requiere la intervención del usuario para establecer su configuración de funcionamiento. Muy ventajoso para el usuario sin conocimientos técnicos por su gran facilidad de uso, no lo es tanto desde el punto de vista de la seguridad. El Universal Plug and Play no ofrece ningún método de autenticación y por ende no requiere credenciales para realizar tareas administrativas, como la modificación de los parámetros fundamentales del dispositivo. Más aún, los modernos routers/módems son compatibles por defecto con UPnP.

Miremos de cerca el funcionamiento de UPnP:

  • Cada dispositivo de la red recibe una dirección IP, ya sea del protocolo DHCP (Dynamic Host Configuration Protocol ) o por autoasignación (dirección de vínculo local)
  • Un dispositivo recién conectado usa el protocolo SSDP (Simple Service Discovery Protocol) para anunciar los servicios que ofrece junto a la URL a través de la cual estos servicios están disponibles
  • El punto de control UPnP extrae la descripción del dispositivo desde esta URL (en formato XML)
  • Ahora el punto de control es capaz de someter peticiones válidas para los servicios ofrecidos por el dispositivo. Estos mensajes usan el protocolo SOAP (Simple Object Access Protocol) que funciona con el formato XML y los protocolos RPC y HTTP

Mensajes SOAP especialmente diseñados pueden pasar de un sitio malicioso al dispositivo a través de XmlHTTPRequest API en JavaScript o de la función navigateToURL en Flash. Mientras que la primera sólo puede usarse desde el interior de la red, siempre y cuando no esté en combinación con algún exploit de acceso remoto, la segunda permite la ejecución remota a petición.

Puesto que se trata de una grave implementación del problema relacionado con UPnP, y en menor medida con el diseño en formato Flash, no es fácil rectificarla ni para el usuario ni para el fabricante. Por supuesto, podríamos simplemente apagar UPnP y resolver el problema inmediatamente, pero esa sería una solución bastante primitiva. La configuración manual de cada dispositivo de la red y de cada aplicación que usa recursos de la red resultaría tediosa o incluso imposible en algunos casos. La única forma es volver a escribir la especificación UpnP para incluir un sólido método de autenticación. Una solución temporal que el usuario debe considerar es desactivar Flash en su navegador, aunque esto no garantiza al 100% que no haya otras formas de explotar las vulnerabilidades de UPnP sin recurrir a Flash.

SNMP: otra característica (oculta)

El protocolo Simple Network Management Protocol ofrece la administración centralizada de todos los dispositivos de la red. Aunque no siempre se implementa en dispositivos domésticos, vale la pena mencionar sus debilidades ya que se puede usar como un vector de ataques.

El protocolo SNMP consta de tres elementos:

  • El administrador, que es un ordenador administrativo
  • Los agentes software instalados en otros dispositivos de la red
  • La comunicación entre el administrador y los agentes software, más la extracción o modificación de los parámetros del dispositivo remoto; los tipos más importantes de mensajes son GetRequest, SetRequest, Response y Trap

Todos los mensajes contienen un elemento conocido como community string, que actúa como una especie de contraseña para asegurar que la comunicación sea confiable y para distinguir entre las autorizaciones lectura-escritura y sólo-lectura. Pero es aquí donde la protección SNMP llega a su límite. No se dispone de codificación, así que incluso el elemento community string se envía en texto sencillo. Además, las cadenas de caracteres por defecto son ampliamente conocidas y extremadamente débiles, pues tampoco se ejecuta un cambio de cadena de caracteres. Pero eso no es lo peor: muchos dispositivos son compatibles por defecto con el protocolo SNMP a pesar de que la mayoría de los usuarios ¡ni siquiera saben de la existencia de este protocolo! Es como una característica oculta que, en algunos casos, puede actuar como una puerta trasera. Estos elementos son suficientes para permitir un exitoso ataque a un router compatible con SNMP y un community string por defecto o débil.

Una vez que el atacante logra usar las peticiones SNMP en el router, tiene muchas posibilidades de obtener información y jugar con los parámetros de configuración del dispositivo. En algunos dispositivos, la modificación de sus parámetros fundamentales puede que no sea posible a través del protocolo SNMP, aunque esté habilitado el acceso a la escritura, pero un ataque de inyección de SNMP sí puede realizarse con éxito. Este tipo de ataque inyecta el código malicioso en las páginas HTML de la interfaz web para desviar silenciosamente a los usuarios hacia sitios phishing o infectados, o para realizar otras acciones, como ataques CSRF.


Figura 3: SNMP – si el community string tiene una configuración por defecto,
puede darse una inyección de código en la interfaz web del router

Una vez más, se trata de una cuestión de implementación, lo que significa que la seguridad SNMP no está en manos del usuario. Aunque la nueva versión de SNMP (SNMPv3) trata parcialmente estas inseguridades añadiendo codificaciones a los mensajes, sus diseñadores han decidido cambiar algunos elementos conceptuales, de manera que la versión ya no es ampliamente compatible con la mayoría de las marcas de hardware. Este es un problema importante e inmediato, especialmente si se trata de redes corporativas, y los fabricantes deben prestarle mucha atención ya que están poniendo en riesgo a sus clientes.

Si tienes pensado adquirir nuevos dispositivos de red para tu oficina y necesitas que sean compatibles con el protocolo SNMP, sería una buena idea buscar dispositivos compatibles con SNMPv3. En general, en el contexto de las pequeñas redes domésticas, SNMP ha quedado prácticamente descartado. Entonces, si tu router doméstico es compatible con el protocolo SNMP, lo mejor sería desactivarlo a menos que realmente lo necesites. En este caso, es absolutamente necesario cambiar la cadena de caracteres community string por una frase larga y que no aparezca en un diccionario.

Malware binario

Hydra: un prototipo de código abierto de malware para routers

El primer malware para routers que operaba automáticamente apareció en 2008, bajo la forma de una herramienta de código abierto. Era controlado por el protocolo IRC y su propósito principal era acceder a los routers por la fuerza para lanzar ataques DDoS. El acceso al router era posible mediante una lista incorporada de contraseñas por defecto o a través del uso de un exploit de evasión de la autenticación D-Link.


Figura 4: Parte del archivo Readme, distribuido con códigos Hydra

Antes de compilar el código, el remitente malicioso tenía que editar uno de los archivos de código para proporcionar la dirección URL al servidor C&C IRC y el vínculo para descargar el binario malicioso.

La herramienta se publicó en el blog del autor en abril de este año, pero había estado circulando en foros clandestinos desde el año 2008. Todos los posteriores programas maliciosos para MIPS detectados en Internet estaban basados, unos más, otros menos, en Hydra.

Psyb0t: el primer malware en Internet que apunta a la plataforma MIPS

Psyb0t es el primer malware binario que circula en Internet que infecta dispositivos de red. Lo descubrió el australiano Terry Baume en enero de 2009, cuando notó unos extraños intentos de ataque a los registros de su cortafuegos. Acaparó mayor atención en marzo del mismo año cuando una red zombi formada por routers infectados lanzó un ataque DDoS contra el sitio DroneBL.

Básicamente, Psyb0t es un robot IRC que se conecta con el servidor, se une al canal y analiza el asunto en busca de comandos. Cuando se lo descubrió y el robot estaba aún activo, el comando incluido en el asunto analizaba todos los dispositivos en la red e intentaba acceder a los routers/módems usando el nombre de usuario y contraseña por defecto; si no lo lograba, usaba una contraseña capturada a través de un conocido exploit para evasión de autentificaciones. Esto significaba que el malware se autopropagaba a través de la red, infectando a su paso a todos los dispositivos vulnerables. Aparte del código de propagación, el Psyb0t también contenía numerosos comandos para iniciar varios tipos de ataques DDoS, acceder por la fuerza a la contraseña del router, ejecutar comandos shell y acceder por la fuerza a otros servicios como MySQL, PHP MyAdmin, servidores FTP, archivos compartidos SMB, etc. Puesto que el firmware del router suele ser de sólo-lectura, Psyb0t reside exclusivamente en la memoria RAM y sólo reinicia los resultados en el equipo en proceso de desinfección. Sin embargo, los dispositivos vulnerables volverán a infectarse una y otra vez, a menos que se cambie la contraseña y/o se actualice el firmware con los parches necesarios.

Probablemente, la razón por la cual su creador desactivó este robot fue el creciente interés del público. El 22 de marzo de 2009, el autor cambió los comandos en el asunto del canal IRC para que los robots cancelaran sus procesos y se retiraran. También dejó un mensaje en el asunto afirmando que la red zombi alcanzó 80 mil equipos infectados y sugiriendo que sus fines eran de investigación, lo que resulta bastante dudoso.

Detalles técnicos

Psyb0t estaba diseñado para funcionar en sistemas Linux con la plataforma MIPSel, es decir, OpenWRT, DD-WRT, MontaVista Linux, VxWorks, etc.). MIPSel es una arquitectura RISC con codificación little endian y se usa principalmente en dispositivos incorporados. A diferencia de ARM, que es la principal plataforma para teléfonos y dispositivos móviles, MIPS/MIPSel se encuentra en el corazón de los más modernos equipos de red.

El binario en sí fue comprimido con UPX, aunque los encabezados se corrompieron para evitar su análisis. En realidad, es más bien un primitivo enmarañamiento que una verdadera técnica anti-reversión. Para descomprimirlo con el descompresor estándar UPX, sólo se necesita arreglar los encabezados insertando la cadena de caracteres que falta “UPX!” en los lugares adecuados.


Figura 5: Psyb0t – encabezado UPX corrompido

Algunas de las cadenas de caracteres dentro del archivo estaban enmarañadas con el fin de mantenerlas en secreto, al menos por un tiempo. Así aparecen algunas de estas cadenas de caracteres antes de su codificación:


Figura 6: Psyb0t – cadenas de caracteres codificadas

…y después:


Figura 7: Psyb0t – comandos decodificados

La rutina de decodificación es simple: se toma una llave específica, incrustada en el binario, y substrae cada byte de la llave de cada otro byte de la cadena de caracteres codificada.


Figura 8: Psyb0t – rutina de decodificación

Propagación

Lo primero que hace el robot después de unirse al canal IRC es verificar los comandos en el asunto. El comando más importante aquí es scan, o sus variantes: rscan, lscan y rlscan. Plantea una búsqueda de dispositivos de red en un rango determinado de direcciones e intenta acceder usando el nombre de usuario y contraseña por defecto (root/[Aa]dmin). Si el intento es infructuoso, el robot tratará de usar el código del exploit para recuperar la contraseña desde el archivo de configuración del dispositivo. Explota la vulnerabilidad de evasión de autenticación en la interfaz web enviando una petición especialmente elaborada a cgi-bin/firmwarecfg, que permite que el ciberdelincuente reciba todo el contenido del archivo de configuración, incluyendo la contraseña, en texto simple. Esta vulnerabilidad implica a varios dispositivos, entre los cuales están D-Link y Telecom, y aunque ya viene reparada en las nuevas versiones, los usuarios que tienen hardware antiguo siguen siendo vulnerables ante estos ataques.


Figura 9: Psyb0t – exploit para evadir la autenticación

Después de acceder al Shell, Psyb0t revisa la lista de procesos en ejecución en busca de su propio proceso. Si el router todavía no está infectado, Psyb0t usa wget o tftp para descargar su cuerpo desde el servidor y ejecutarlo. Enseguida procede a enviar un mensaje sobre el éxito del ataque al dueño de la red zombi y prosigue su cometido con el siguiente dispositivo.

“[+] R00TED ** [TIR] ** IP=%s Password=%s”
([TIR]significa dispositivos de Texas Instruments,[STR] significa dispositivos que usan BusyBox)

Lo primero que hace el nuevo proceso es crear un archivo de tamaño cero llamado udhcpc.mtx, cuya extension mtx probablemente sea la abreviación de mutex. A continuación decodifica ciertas cadenas de caracteres antes de desaparecer en segundo plano donde ejecuta los siguientes comandos:

/etc/firewall_start
iptables -A INPUT -p tcp –dport 23 -j DROP
rm -f /var/tmp/udhcpc.env

Crea una copia de resguardo del archivo /var/tmp/hosts, se conecta al servidor IRC protegido por contraseña y se une al canal #mipsel con un alias generado aleatoriamente y que consiste en el prefijo [NIP]- y nueve letras y números aleatorios. Si la respuesta desde el servidor es ERR_NOMOTD, el robot ajusta los modos del canal.


Figura 10: Psyb0t – en proceso de conexión al servidor IRC


Figura 11: Psyb0t – en proceso de unirse al canal IRC


Figura 12: Psyb0t – en proceso de ajustar los modos del canal

El robot ejecuta los comandos incluidos en el asunto y bucles del canal, a la espera de otros comandos que pueden enviarse en mensajes privados.

Comandos

Esta es una lista completa de los comandos que esta versión del robot es capaz de interpretar:


En la mayoría de los casos, los nombres de los comandos se explican por sí mismos. Tenemos algunos comandos relacionados con el protocolo IRC (login, logout, rejoin, silent, mode), comandos malware de autoadministración (kill, killall, exit, sleep, upgrade, wupgrade, ver, report, split, *sel) y comandos de adquisición de información del sistema (tlist, getip, getinfo, uptime, viri). Además, tiene la capacidad de descargar archivos adicionales (wget), de visitar ciertas páginas web (visit), de modificar el archivo hosts (spoof) y de ejecutar comandos del sistema. Sin embargo, es posible que los comandos más interesantes sean los relacionados con DDoS, usados por los ataques SYN, UDP y ICMP (*flood), además de varios comandos de análisis. Aparte del comando estándar de análisis y sus variaciones arriba descritas, existe un grupo de comandos que usan el nombre de la rutina incluido en el archivo, cuyos comandos ejecutan, cada uno, una determina acción: pscan activa el análisis de puertos, r00t intenta acceder por la fuerza a la contraseña, mientras que los comandos fscan, sql, pma y smb lanzan los mismos ataques contra los servidores FTP y SQL, el panel PHP MyAdmin y el protocolo SMB, respectivamente.


Figura 13: Psyb0t – contraseña usada para ataques por la fuerza

Uteltend: In nome di Chuck Norris

Aunque la red zombi Psyb0t se cerró a fines de marzo del año 2009, esto no significó el fin de la historia de malware para routers. Pocos meses después, en diciembre del mismo año, investigadores de la universidad Masaryk (República Checa) detectaron otro robot IRC para routers que en muchas formas se parecía a Psyb0t. El centro C&C de esta nueva red zombi estaba en Italia y las cadenas de caracteres y los nombres de funciones dentro de los binarios maliciosos también revelaban el origen italiano del código. El programa malicioso contenía el texto ‘’In nome di Chuck Norris”, una frase que aparece varias veces en el código, por lo que se bautizó a esta red con el nombre de “Chuck Norris”. La firma que Kaspersky Lab asignó a este programa malicioso es Trojan.Linux.Uteltend, que proviene de otra cadena de caracteres en el archivo (un comando usado para evitar que el servicio utelnetd se ejecute en un equipo infectado).


Figura 14: Chuck Norris – algunas cadenas de caracteres dentro del binario

Echemos primero un vistazo a las coincidencias entre los binarios Chuck Norris y Psyb0t:

  • La misma plataforma: Linux en dispositivos MIPSel
  • El mismo compresor: UPXM; algunas versiones tienen encabezados corrompidos, tal como ocurre con Psyb0t
  • Funcionalidad de robots IRC
  • El mismo método de codificación de la información más sensible
  • La misma forma de propagación
  • Uso del exploit de evasión de autenticación para los routers D-Link

Chuck Norris tiene más de un archivo. El binario principal ejecuta un análisis de puertos usando una herramienta de Linux conocida como pscan y una serie de direcciones IP tomadas del archivo ip.txt en el router, si existe, o de una lista codificada en el binario:


Figura 15: Chuck Norris – series de direcciones IP

Enseguida intenta un acceso forzado a cada uno de los dispositivos de la red mediante una serie de contraseñas por defecto. El comando que posteriormente ejecuta también se codifica y guarda:


Figura 16: Chuck Norris – decodificación de los comandos

El nombre del binario principal es syslgd e imita el nombre de un proceso legítimo de Linux: syslogd, que es responsable de los mensajes de acceso al sistema. Este es un intento, aunque muy primitivo, de camuflarse en el sistema. Además, este comando ocasiona que el malware trate de descargar el pequeño protocolo SSH servidor/cliente que se compila especialmente para la arquitectura MIPS. Entre otros componentes detectados en el servidor malicioso, había un binario con funcionalidad de robot IRC, detectado por Kaspersky Lab como Backdoor.Linux.IrcShell.c, y un troyano de Linux compilado para la arquitectura MIPS (Trojan.Linux.Small.e).

Tsunami: la nueva cabeza de la hydra

El centro C&C de Chuck Norris se cerró antes de que se publicara información sobre el mismo; sin embargo, la historia continúa. A principios de marzo del año 2010, aparece una nueva cabeza de la hydra en Latinoamérica, probablemente descendiente directa de la anterior. Este programa malicioso se clasificó como una variante de Backdoor.Linux.Tsunami, ya que compartía muchas de las distinguidas características asociadas con la herramienta DDoS de código abierto Linux Kaiten/Tsunami. Sin embargo, algunas partes de este código resultan muy similares a los binarios de Chuck Norris, como por ejemplo, la función de enmarañamiento de cadenas de caracteres y la llave de codificación. Además, algunas de las cadenas de caracteres y de las direcciones IP son idénticas.


Figura 17: Tsunami – nombre y contraseña del canal decodificador


Figura 18: Tsunami – dirección IP

Algo que no habíamos advertido en las anteriores versiones de x86 Tsunami (en realidad Chuck Norris), fueron los intentos para cambiar los parámetros DNS. En esta muestra en particular, el nombre de los servidores se ajustó a direcciones Open DNS, y se bloqueó una serie de puertos, del 22 al 80:


Figura 19: Tsunami – bloqueo de puertos, cambio de DNS

Los comandos del robot tsunami son de fácil lectura gracias a la ayuda incorporada en el mismo robot. La mayoría de estos comandos son comandos Kaiten renombrados o modificados:


Proceso de desinfección

Puesto que todos los binarios arriba mencionados residen solamente en la memoria RAM, resulta fácil desinfectar los dispositivos. Sin embargo, es muy posible que el router vuelva a infectarse al reiniciarse. Lo más importante para proteger el router es cambiar la contraseña, asegurar los parámetros del router y actualizar el firmware con las últimas versiones.

Conclusiones

¿No es todo esto más que un montón de ruído y pocas nueces?

En resumen, durante los últimos cuatro años, la plataforma MIPS ha sufrido unos cuantos ataques tipo drive-by pharming y un puñado de incidentes ocasionados por programas maliciosos. ¿No es esto poco en comparación a otras plataformas, incluso móviles? Entonces ¿por qué tanto lío? ¿Por qué el asunto sigue siendo tan importante?

En primer lugar, si hay algo que ya se ha inventado y que ya se ha visto circular en Internet más de una vez, es muy probable que vuelva a ocurrir una y otra vez, en especial si los ataques fueron rentables para los ciberdelincuentes. Como la historia nos recuerda, los inicios de los programas maliciosos para cada plataforma guardan similitudes. Por ejemplo, las cifras actuales de programas maliciosos para las plataformas móviles y 64-bit siguen siendo mínimas comparadas con las de los programas maliciosos x86; sin embargo, es innegable que crecen rápidamente y muy probablemente dominarán el mercado de programas maliciosos una vez que las antiguas arquitecturas desaparezcan.

Los ataques a través de dispositivos MIPS son relativamente nuevos y tienen un enorme potencial para causar daños significativos. Echemos una mirada a algunas de las razones por las que el malware para dispositivos de red podría convertirse en un grave problema:

  • Predominio. La mayoría de la gente tiene uno de estos dispositivos en su casa, ya sea un módem ADSL proporcionado por su proveedor de Internet, o un router Wi-Fi que les permite compartir su conexión Internet entre ordenadores de escritorio, portátiles, tabletas y otros dispositivos.
  • Sigilo. Los dispositivos de red son un lugar ideal de acecho para los programas maliciosos, ya que nadie presta atención a su protección. La instalación de malware en un router en lugar de un PC o Mac significa que las modernas soluciones antivirus para equipos de escritorio no lo detectarán.
  • Fácil acceso. Con muchas vulnerabilidades y falta de conocimiento entre la mayoría de los usuarios, los dispositivos MIPS son lo que los ciberdelincuentes estaban esperando.
  • Acceso constante. Los routers funcionan de forma casi permanente y rara vez necesitan reiniciarse o apagarse, lo que resulta ideal para los ciberpiratas.
  • Control constante. Al tomar el control de un router, el atacante puede monitorear de forma transparente todo el tráfico de una determinada red y buscar paquetes que contengan información confidencial.
  • Desvíos masivos DNS. Uno de los prospectos más lucrativos para los ciberdelincuentes: cambiar las direcciones IP de los servidores DNS da como resultado un desvío completamente transparente de todos los hosts de la red hacia sitios maliciosos o phishing.

Otro aspecto que vale la pena mencionar al hablar del alcance de la amenazas de los programas maliciosos para los dispositivos MIPS es que en realidad resulta muy difícil determinar la verdadera magnitud de la propagación de este malware. Hasta la fecha, los casos que se detectaron sucedieron de forma accidental cuando llegaron a afectar a los mismos analistas de seguridad. El usuario doméstico promedio con poco o ningún conocimiento sobre seguridad de redes no tiene posibilidad alguna de detectar por sí mismo estos programas maliciosos. Esto plantea la pregunta: ¿cuántas redes zombi de dispositivos MIPS siguen funcionando sin ser detectadas? Además, si el único propósito del ciberdelincuente es cambiar los parámetros DNS, no es necesario que el malware se ejecute constantemente en el dispositivo. Un proceso malicioso puede terminar tan pronto como haya realizado los cambios en la configuración, dejando al dispositivo sin aparente infección. Este enfoque dificultaría mucho más el proceso de rastreo de ataques. Parece un área de investigación muy interesante.

¿Qué se puede hacer para reducir el riesgo de seguridad?

Los usuarios deben asegurarse de usar sólidas contraseñas, de verificar sus parámetros de seguridad y de actualizar su firmware y todos sus programas de forma regular. Por el momento, eso es todo lo que pueden hacer; el resto está directamente en manos de los fabricantes, que son los únicos que pueden cambiar el diseño de estos dispositivos. El primer paso debe ser la implementación de contraseñas generadas aleatoriamente, por defecto, una sola para cada dispositivo. Algunos fabricantes ya están haciendo esto. Asimismo, algunos dispositivos más modernos cuentan con más parámetros de seguridad que sus predecesores y no permiten el acceso remoto con credenciales por defecto. Sin embargo, aún queda mucho por hacer. La implementación de dispositivos UPnP necesita repensarse, y sólo debe usarse la versión segura del protocolo SNMP. Se debe poner mucha atención en las vulnerabilidades del firmware y en su seguridad, de manera que a cada dispositivo se le aplique una rigurosa prueba de seguridad antes de su comercialización.

¿Qué nos depara el futuro?

Todos los programas maliciosos evolucionan y se multiplican, por lo que es de esperar que el malware para dispositivos MIPS siga el mismo camino. A continuación presento algunas de las predicciones que hice a medida que escribía este artículo:

  • Ataques a la plataforma ARM, ya que es la segunda plataforma más popular para dispositivos de red.
  • Ataques a los sistemas operativos de las principales marcas, ya que no todos los dispositivos funcionan con el sistema operativo Linux.
  • Firmware constantemente actualizado, pues los ciberdelincuentes son capaces de crear malware que no desaparece después del reinicio del aparato.
  • La adopción de malware para Linux/Unix, pues ya existen muchas herramientas hack, robots y puertas traseras de código abierto, que fácilmente pueden adaptarse a la plataforma de dispositivos MIPS.
  • Significativos avances en los exploits, puesto que existen muchas vulnerabilidades conocidas y sin parches, y probablemente existen muchas variedades desconocidas.
  • Técnicas avanzadas de enmarañamiento, una vez que el problema del malware para routers sea ampliamente conocido y comiencen a aparecer las adecuadas soluciones de seguridad.
  • Malware para múltiples plataformas, para mejorar la flexibilidad y efectividad de los ataques. Esto podría significar programas maliciosos con códigos para diferentes plataformas para routers o códigos que vuelvan a infectar a los PCs conectados a un router o a un router que funcione en un PC.

Como se dice, el cielo es el límite. Veamos cómo cambia la situación en los próximos años. Pero lo más importante es no adoptar una actitud pasiva ante esto, pues aún no es tarde para cambiar la forma en que evoluciona la seguridad para dispositivos de red.

Las cabezas de la Hidra. Malware para dispositivos de redes

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Informes

BlindEagle vuela alto en LATAM

Kaspersky proporciona información sobre la actividad y los TTPs del APT BlindEagle. Grupo que apunta a organizaciones e individuos en Colombia, Ecuador, Chile, Panamá y otros países de América Latina.

MosaicRegressor: acechando en las sombras de UEFI

Encontramos una imagen de firmware de la UEFI infectada con un implante malicioso, es el objeto de esta investigación. Hasta donde sabemos, este es el segundo caso conocido en que se ha detectado un firmware malicioso de la UEFI usado por un actor de amenazas.

Suscríbete a nuestros correos electrónicos semanales

Las investigaciones más recientes en tu bandeja de entrada