Archivo de la etiqueta: ataques

Envenenamiento de la memoria temporal del servidor DNS

En esta entrada veremos un tipo de ataque que busca redirigir a las víctimas a un servidor malicioso utilizando un ataque dirigido a sus servidores DNS (y no directamente a la víctima). La traducción al castellano de la expresión inglesa DNS cache poisoning vendría a ser envenenamiento de la memoria temporal del servidor DNS.

DNS logo

Fuente imagen: bleepingtech.com

Así, tal como su nombre indica, el atacante busca redirigir el tráfico de una víctima a servicios maliciosos de forma inadvertida usando para ello el sistema de resolución de nombres. Esta estrategia permite al atacante que los usuarios se conecten a un servicio malicioso que simula ser una web legítima (un banco, servicio de correo electrónico, etc.) de tal forma que cuando el usuario intenta acceder a su servicio en realidad está dando sus contraseñas al atacante.

Este ataque también permitiría a un atacante la gestión de un ataque de denegación de servicio (DoS) al impedir que los clientes que usen un servidor DNS concreto puedan llegar hasta el servicio atacado. Bastaría con proveer direcciones IP falsas de los nombres de dominio del servicio que se quiera atacar. Así el ataque DoS se limitaría a los usuarios que usen un determinado servidor DNS y no a toda la red en general: Si, por algún motivo, queremos que los usuarios de un operador telefónico concreto (Movistar, Vodafone, BritishTelecom, etc.) no accedan a un servicio concreto (Dropbox, PirateBay, Netflix, etc.) podríamos utilizar esta estrategia.

Funcionamiento del DNS cache poisoning

A continuación indicamos los pasos para realizar el ataque y cómo se aprovecha de las debilidades del protocolo DNS:

Funcionamiento del DNS cache poisoning.

Funcionamiento del DNS cache poisoning. Fuente imagen: NetworkWorld

  1. El atacante realiza a nuestro servidor DNS una solicitud recursiva para un dominio que es gestionado por un servidor DNS malicioso (loquesea.sitiomalicioso.com).
  2. Al ser una solicitud recursiva y no estar dentro de la memoria de nuestro servidor, éste busca el servidor propietario y resuelve el dominio solicitado.
  3. El servidor DNS malicioso no sólo le resuelve la solicitud inicial sino que, además, le envía información falseada de diferentes dominios legítimos (p.e. direcciones IP falsas para www.mibanco.com).
  4. Nuestro servidor guarda toda la nueva información en la memoria cache.
  5. Cuando un cliente legítimo quiere acceder a una página web (www.mibanco.com en nuestro ejemplo) realiza una consulta DNS normal.
  6. Nuestro servidor DNS consulta la memoria temporal y al ver que ya tiene almacenado ese dato le remite esa información falseada.
  7. El navegador del cliente se conecta a un sitio falseado, por lo que es posible que el atacante obtenga información del cliente (contraseñas, información privada, etc.).

Defensas frente al envenenamiento de memoria temporal en DNS

Veamos cuáles serían las defensas más prácticas frente a este tipo de ataque:

  • Si concienciamos al cliente (o le forzamos por políticas de empresa) a utilizar siempre que sea posible la navegación segura (https) este tipo de ataque fallaría  en el último punto ya que la página maliciosa no dispondría del certificado SSL de la web que intenta suplantar. Así el usuario se daría cuenta del problema por los avisos del navegador.
  • Aunque desactivar la memoria temporal DNS puede parecer una opción algo drástica, la verdad es que en instituciones pequeñas y medianas sería una estrategia factible.
  • Evitar la aceptación de volcado de información no solicitada por parte de nuestro servidor DNS. si nuestro DNS simplemente descarta la información extra (todo aquello que no estuviera en la consulta inicial – loquesea.sitiomalicioso.com en nuestro caso) no se sobrescribiría la memoria temporal. Esta estrategia puede hacer que nuestro sistema tarde más tiempo del habitual para actualizar los cambios legítimos que haya en los servicios web externos.
  • Configurar nuestro servidor DNS para que haga una consulta propia cada vez que recibe un volcado de información. Con esta estrategia el hecho de recibir un volcado de información haría que nuestro servidor consultase al servidor DNS legítimo la información y se actualizaría de una fuente oficial. Se trata de una solución que, aunque aumentando la carga de trabajo de nuestro servidor, permitiría mejorar los tiempos de actualizaciones legítimos mientras que evita este tipo de envenenamiento.
  • Activar DNSSec en nuestro servidor DNS permitiría detectar que el volcado de información no estaría correctamente firmado y por ello sería descartado. Esta opción requiere que el servidor DNS legítimo tenga también activadas las extensiones de seguridad.

Timo del príncipe nigeriano

Timo del príncipe nigeriano en acción :) Fuente original: Alberto Montt

Timo del príncipe nigeriano en acción 🙂
Fuente original: Alberto Montt

Se conoce como «El timo del príncipe nigeriano» a un intento de estafa que se popularizó a través de correos electrónicos no solicitados donde, se informaba al receptor de la muerte de un príncipe nigeriano, que había dejado parte de su herencia bloqueada en cuentas extranjeras, y se solicitaba al receptor del correo que se pusiera en contacto para gestionar cómo podía desbloquearse dicha cantidad quedándose, en agradecimiento, una comisión.

Procedimiento

El timador intercambia correos electrónicos hasta conseguir una cierta confianza con la víctima (envía fotos, capturas de pantalla, documentación escaneada, etc.) para posteriormente indicarle que hay un problema burocrático previo al envío de la cantidad de dinero acordad que debe resolverlo la víctima. Este problema burocrático implica una cantidad de dinero variable. Si aparece alguna suspicacia el estafador seguirá con la cadena de correos para mantener la confianza hasta que la víctima decida pagar esa cantidad para obtener el beneficio mayor.

Fuente imagen: NoticiasDot

Fuente imagen: NoticiasDot

Resumiendo:

  1. Recepción de un correo electrónico. Estos correos son enviados de forma masiva y, aunque los sistemas antispam bloquean la gran mayoría, llegan a la bandeja de entrada de la víctima.
  2. Recopilación de información. Una vez la víctima contesta al correo empieza la recopilación de información por parte de los estafadores para conocer el estado de la víctima (casado, hijos, capacidad económica, etc.). esta fase puede durar incluso semanas para dar confianza a la víctima.
  3. Primera solicitud de dinero. Los estafadores suelen solicitar un primer cobro de una cantidad no excesiva para probar el nivel de enganche de la víctima.
  4. Segunda petición de dinero. Si la víctima ha llegado a este punto los estafadores siguen complicando su historia para ofrecer una mayor recompensa a cambio de una inversión ya mayor (la cantidad dependerá de lo que estimen que pueden estafar según la información recopilada).
  5. Sucesivas peticiones. Si la víctima sigue enganchada seguirán intentando sacarle más dinero hasta que crean que ya no hay más posibilidades cuando, simplemente, desaparecerán.

Como se puede observar es una estafa laboriosa para los delincuentes (lleva semanas o incluso meses de comunicaciones) por lo que los primeros correos están escritos, de forma deliberada, con gran cantidad de faltas de ortografía, frases sin sentido y ausencia total de sintaxis. La idea es que tan sólo aquellas personas muy confiadas piquen el anzuelo ya que los estafadores no podrían gestionar la gran cantidad de posibles víctimas si estos primeros correos de contacto estuvieran bien elaborados.

Variantes del timo nigeriano

Con el tiempo este tipo de estafa ha ido variando las historias utilizadas para intentar atraer a nuevas víctimas, pero el procedimiento es el mismo: primero, desde un correo spam, se ofrece una oportunidad única (generalmente dinero); posteriormente se intercambian correos para conseguir dar confianza; y finalmente se solicita un adelanto económico.

Durante la segunda Guerra del Golfo la historia del príncipe nigeriano mutó a la de un comando estadounidense que había encontrado una gran cantidad de dinero en efectivo en el sótano de un palacio. Solicitaban ayuda para poder hacer una transferencia electrónica ya que, por motivos obvios, no podían mover el dinero físicamente. Hubo variantes, menos difundidas, de unidades militares de otros países que participaron en la guerra y en la etapa posterior.

¿y si no fuera un timo? Fuente imagen: Seemikdraw.com.au

¿y si no fuera un timo?
Fuente imagen: Seemikdraw.com.au

Otra variante del timo nigeriano, que ha ido en aumento en los últimos años, es la de un supuesto romance por Internet. Los estafadores contactan con la víctima por páginas de citas (usando fotos falsa de personas atractivas) para tras unos primeros chats para dar credibilidad solicitan una ayuda económica (bien sean 30€ para la compra de final de mes, o bien el valor de un supuesto billete para poderse encontrar en persona). La peor posibilidad de este timo es que los estafadores convenzan a la víctima a viajar al país de su supuesto romance (generalmente países del este de Europa o africanos) donde la víctima podría ser incluso secuestrada.


Si os queréis reír un rato en Internet podrás encontrar páginas y foros donde se alguien ha seguido la cadena de correos para ver hasta dónde llegaban 🙂

Denegación de servicio contra servidores DNS

DNS logo

Fuente imagen: bleepingtech.com

El sistema DNS (Domain Name Service) es el que nos facilita a los humanos el uso de los servicios de Internet ya que sería casi imposible que recordásemos las direcciones IP de nuestras páginas web, sistemas de almacenamiento en la nube, portales de vídeos, etc. Así pues cualquier servicio de Internet que utilicen usuarios humanos depende, aún sin ser consciente, de este sistema de conversión de texto humano a direcciones IP.

Este sistema de nombre se creó en un momento en el que las comunicaciones eran caras y poco fiables, por lo que una de las características de este sistema es la gran permanencia de la información publicada. Esto hace que un ataque que busque una denegación de servicio contra DNS de un servicio concreto a base de eliminar su información registrada en el sistema deba ser continúo y durar más de 24 o 48 horas. La dificultad de mantener durante tanto tiempo estos ataques ha hecho que no sean prácticos para conseguir evitar que un servicio esté disponible para todos sus clientes. Por este motivo este tipo de ataques se suelen utilizar cuando queremos que un objetivo concreto no tenga conexión al exterior: anulando los servidores DNS a los que consulta una persona podemos hacer que, en la práctica, pierda su conexión a Internet (al menos para los humanos, ya que la conexión sigue estando habilitada).

En este artículo veremos algunos ataques DoS contra los propios servidores DNS y en una próxima entrada definiremos las protecciones y defensas básicas para anular, si es posible, estos ataques. Ademas hay una familia de ataques espejo en el que utilizando peticiones malformadas podemos conseguir que los propios servidores DNS dejen fuera de servicio una tercera víctima, pero estos ya merecen otro artículo.

Peticiones múltiples de dominios inexistentes

Se trata del tipo de ataque más básico que consiste simplemente en enviar solicitudes de información sobre dominios no existentes. Al recibir la petición el servidor consultará con sus servidores de referencia gastando recursos en el proceso (memoria, ciclos de CPU, ancho de banda…). El hecho de utilizar nombre de dominio inexistentes es porque, a diferencia de un dominio existente, al no obtener una respuesta afirmativa en la primera petición a su servidor de referencia realizará otra a un segundo servidor, y luego otra tercera, hasta agotar todos los servidores de referencia que ha aprendido previamente. Esto hace que una única consulta de un dominio no existente implique un mayor consumo de recursos que varias legítimas.

Si se hace de forma rápida es posible llenar la caché del servidor DNS víctima con dominios no existentes (NXDOMAIN) haciendo que cualquier petición legítima tenga un procesamiento más lento aún y acelerando la denegación de servicio a los clientes válidos de este servidor.

Ataque de dominios fantasma

Para este esquema el atacante crea un dominio real con un servidor DNS real especialmente configurado para responder de forma incorrecta: ya sea muy lentamente o con información parcial. Así cuando el atacante realiza consultas DNS a la víctima se asegura que las peticiones de información llegan a un equipo que él controla.

¿Qué pasa cuando un equipo responde, por TCP, de forma lenta? Pues que el receptor debe esperar, reservando recursos para ello, hasta que la transmisión finalice. ¿Qué pasa cuando un servidor envía la información de forma desordenada? Pues que el receptor debe esperar a recibir los diferentes paquetes para reordenarlos y obtener la información, lo cual implica reserva de recursos. ¿Y si el servidor pide retransmisiones de paquetes? Pues lo mismo: más reserva de recursos para almacenar información.

Realizando múltiples peticiones al servidor DNS víctima para que resuelva información contra el servidor DNS que nosotros controlamos podemos hacer que se quede sin recursos y provocar una denegación de servicio a todos los clientes que consultan a ese servidor.

Ataque basado en subdominios aleatorios

Gráfico de un ataque por subdominios

Ejemplo de ataque por subdominio
Fuente imagen: Incapsula

Este tipo de ataque es una evolución de los dos anteriores. La idea es solicitar una gran cantidad de subdominios inexistentes de un dominio concreto. Aunque es posible realizarlo contra un dominio inexistente (cosa que puede ser interesante para intentar burlar defensas contra el ataque anteriormente explicado) generalmente se realiza contra nombres de dominio existentes, ya sean controlados por el atacante (con lo que sería una evolución del ataque al dominio fantasma) o bien contra páginas conocidas que tengan gran capacidad de respuesta (de forma que se sature antes nuestro servidor víctima) como pudiera ser Google, Microsoft, Amazon, etc.

Aunque no es imprescindible, en la práctica, debido a las defensas de los propios servidores es necesario realizar este tipo de ataque desde una botnet. Cada miembro de una botnet, de forma coordinada, solicita la resolución de un subdominio aleatorio (asjdhaskd.yahho.com, jhsgdhafasd.microsoft.com, 8ajsdalNDBY.apache.org ,etc.) que no existirá forzando al servidor a reservar recursos para su infructuosa resolución.