VOZ logo

Cómo funciona un ataque VoIP

ddos

Este mundo no es perfecto y por ese motivo existen personas que se aprovechan de descuidos, fallos y desconocimiento para ganar dinero pese al perjuicio de otros, incluso sin prestar atención al gran daño que producen estas acciones a las víctimas. Estamos hablando de los ataques VoIP que seguro, conocemos todos.

Después de tantos años en el mundo de la VoIP y comunicaciones en general, uno descubre que muchos amigos, clientes y conocidos ven impotentes como han sufrido ataques durante sus vacaciones, en navidad, un fin de semana cualquiera, o por la noche, causándoles un perjuicio económico bestial, no solo por tener una centralita con el puerto SIP abierto y disponible, si no por tener también gateways accesibles desde internet… fallos garrafales de seguridad que terminan con una factura telefónica inmensa y poniendo denuncias a la guardia civil aunque la cosa no pinta bien.

Existen muchos tipos de ataques: los provocados por personas ajenas o bien por personas conocidas y que están dentro de la red. Ataques de escucha de conversaciones, falsificación de cuentas, etc… pero en este artículo nos vamos a centrar en el que seguramente sea el más conocido de los ataques: el ataque remoto por millones de peticiones de llamada externa. Un día nos levantamos, vemos nuestro sistema y detectamos que no podemos realizar llamadas porque todos los canales están ocupados (o porque el operador no nos deja hacer más llamadas) y cuando miramos el registro de llamadas vemos cientos de miles de llamadas a números internacionales: China, Cuba, Albania, Pakistán, Congo, Rusia, etc… por poner unos ejemplos más característicos… tal y como anunciamos hace tiempo

Hace unos años, la figura del Phreaker venía a ser el de una persona joven que quería poder hablar por teléfono sin pagar por la llamada. El objetivo principal estaba claro: hablar. Hoy día, el objetivo es muy diferente: ganar dinero, pero ¿cómo lo hacen? Vamos a verlo.

El primer paso para recibir un ataque, es pensar que no lo vamos a recibir, que nuestro firewall costó un dineral y está perfectamente configurado por lo que es imposible que nos ataquen. Además, hemos bloqueado todos los puertos entrantes, así que, asunto solucionado. Mal comienzo: muchos routers incorporan un sistema llamado UPnP que abren el puerto 5060 de forma automática tras detectar un dispositivo como un teléfono o un gateway de la red interna. Incluso muchos de los routers que ofrecen los operadores incorporan sistemas que imposibilitan bloquear/cerrar esos puertos.

No obstante, si tenemos la necesidad de ofrecer cuentas remotas, tendremos que abrir puertos, incluso si estas cuentas están detrás de conexiones con direcciones IP dinámicas, prácticamente estamos a la merced de la configuración. Una buena configuración es más importante que un firewall.

ZombieAttackWUn ataque suele ser algo automático ejecutado por aplicaciones ejecutadas en servidores «zombies», por lo que bloquear una IP no suele tener el efecto deseado, al igual que contraatacar a la IP que nos está atacando… ya que recibiremos el mismo ataque desde otras direcciones IP unos minutos más tarde. Denunciar al responsable de la dirección IP atacante tampoco suele tener el resultado esperado y es muy difícil seguir el rastro al verdadero atacante. Conste en acta que soy de los que prefieren no bloquear los puertos VoIP y prestar más atención a la configuración, el problema de este sistema es que hay que conocer bastante bien toda la configuración para evitar daños a medio y largo plazo, pero conociendo un poco cómo funcionan los atacantes, podemos estar más tranquilos.

Para descubrir el motivo de estos ataques hay que conocer un poco el funcionamiento del negocio de algunos operadores y empresas de comunicaciones que consiguen beneficios creando «redes virtuales de abonados» y ajustando costes haciendo de pasarelas de llamadas entre varios operadores (esto puede parecer un poco complicado de entender, así que voy a explicarlo con un ejemplo simple)

 

Vamos a partir de un caso muy sencillo. Los operadores móviles en España: Movistar, Orange, Vodafone, Yoigo… todos estos operadores tiene varios millones de usuarios cada uno. Cada usuario dispone de uno o varios números y cada operador le cobra a sus usuarios cuando estos hacen llamadas (no se paga nada cuando se reciben llamadas)

– Juan (usuario de Movistar) quiere llamar a Pepe (usuario de Vodafone).
– Como Juan inicia la llamada, le pagará a Movistar un dinero en concepto de establecimiento y otro en función del tiempo que esté hablando.
– Movistar establecerá una conexión con la red de Vodafone y este enviará la llamada a Pepe.
– Vodafone le cobra a Movistar una cantidad pequeña de dinero por utilizar la red de Vodafone para poder enviar la llamada a su propio usuario Pepe.

Por lo tanto: Vodafone gana dinero por recibir una llamada y enviársela a su usuario a modo de ‘compensación‘ por el uso de la red.

Esto es así porque Movistar y Vodafone están conectados y pueden pasarse las llamadas entre ellas pero ¿qué ocurre cuando el destinatario es Paco que vive en Cuba?

El resultado es que los operadores deben pasar las llamadas de unos a otros hasta llegar a Paco en Cuba y luego:

– Movistar pagará a su proveedor AmericaTelecom,
– AmericaTelecom a su vez, pagará a CubaTel,
– CubaTel a la compañía de móviles CubaMobile de quien es usuario Paco

En resumen: en una llamada, hay varios operadores que ganan dinero, aunque sea ínfimo, casi simbólico, apenas una décima parte de un céntimo de euro o incluso menos (estamos hablando de cantidades ridículas: 0,0001€ por llamada). No es un negocio interesante ya que el beneficio es mínimo por cada llamada, pero cuando se hacen cientos de millones de llamadas (aunque sea de forma ilegal), y tanto el coste de la infraestructura como el gasto que supone recibir una llamada es prácticamente cero por no tener usuarios propios y dedicarse a transferir llamadas entre operadores, el negocio pasa a ser muy lucrativo.

Por supuesto, este ejemplo está simplificado para que se entienda mejor y existen muchas variantes, otros beneficiarios,… el tema se complica bastante y siempre hay alguien perjudicado (la víctima) y alguien beneficiado.

daleksEl objetivo final es conseguir tráfico para poder «cobrar» por cada llamada. Cuantas más llamadas, más dinero y para eso, se hace uso de aplicaciones que escanean redes, detectan servidores, explotan vulnerabilidades y hacen llamadas a destinatarios y lugares para poder hacer dinero. Para eso existen aplicaciones bastante complejas pero muy lucrativas que al funcionar casi de forma automática se consideran bots.

Cuando un bot hace un millón de llamadas en un fin de semana, ese millón de llamadas se transforma en unos pocos cientos de dólares de beneficio por «interconexión de llamadas«, quizá no hace falta descolgar la llamada, aunque si lo hace, el beneficio es aún mayor y más si cabe, si el número destino es un número ‘premium‘ con un alto coste de establecimiento. El beneficiario suele ser una de las empresas intermedias o incluso la empresa que recibe la llamada, aunque está lo suficientemente oculto como para que no haya pruebas acerca de quién se beneficia del ataque del bot.

El bot no se ejecuta únicamente en un sistema, si no en decenas de ellos de forma simultanea, por lo que es habitual que cuando detectemos un ataque procedente de una dirección IP, rápidamente recibamos otros tantos de muchas otras máquinas.

Vale, ya sabemos cómo ganan dinero, ahora ¿cómo funciona?

Lo primero que hacen es escanear rangos de IP de redes en busca de Servidores VoIP o Gateways con el puerto 5060 abierto, 5061, 5062, … un escaneo completo de este tipo tan solo requiere de 2 segundos por dirección IP, así que una vez que encontramos un servidor con ese puerto abierto, pasamos al siguiente paso. Con decenas de servidores zombies, es cuestión de tiempo encontrar algún servidor o gateway disponible.

Lo siguiente es probar a enviar una petición de llamada anónima a un número de teléfono de la red beneficiaria (por ejemplo, un número premium 902 remunerado pero de un país donde la empresa tenga acuerdos, por ejemplo: Namibia) Si el sistema devuelve Ringing, entonces estamos de enhorabuena… la llamada progresa y la red está ganando dinero, tras lo cual enviará «cientos» de peticiones simultaneas de la misma manera. Pero si el sistema devuelve un «Forbidden» o un «Declined», entonces el bot probará medidas más drásticas y pasará al siguiente paso.

El siguiente paso es el más duro, la búsqueda de una cuenta SIP vulnerable con la que registrarse y poder hacer llamadas utilizándola como pasarela. Para ello, empieza con un número: 100 y continúa hasta el 999999.

Por cada cuenta, el bot prueba diversas contraseñas:

Usuario: 100
Contraseña: 100
Contraseña: 0100
Contraseña: 00100
Contraseña: abc100
Contraseña: 000
Contraseña: 1234
Contraseña: 12345
Contraseña: pass100
…. y así… cientos de miles de pruebas más…

Si no hemos logrado encontrar la contraseña, el bot probará con el siguiente número: 101 y así, continuará hasta que encuentre una cuenta vulnerable, llegue a la cuenta 999999 o el servidor se quede sin ancho de banda y nuestro operador detecte un «ataque DOS» y nos desconecte temporalmente.

La ventaja de que el bot pueda hacer llamadas sin autentificar, es que «solo prueba cientos de llamadas«, mientras que si no puede hacer llamadas sin autentificar, intentará autentificarse por fuerza bruta y será mucho peor (más intentos, más ancho de banda, más carga de procesador o peores consecuencias si encuentra una cuenta vulnerable).

man in desperate pain-resized-600Si por desgracia encuentra una cuenta vulnerable (por ejemplo: 1000 y contraseña: pass1000) el procedimiento que sigue es muy llamativo:

El bot se registra como si fuera un softphone y empieza a hacer llamadas a números de países donde se encuentra la red beneficiada, a ser posible a números premium aunque si el número no descuelga, algún operador intermedio descolgará… y nos cobrará la llamada internacional, esto no suele ser legal, pero que es tremendamente difícil de detectar y mucho más difícil, de denunciar.

El bot detecta el número de canales salientes disponibles, de forma que envía 100 peticiones de llamada y cuenta el número de llamadas en progreso y cuantas han fallado, de esta forma, si recibe 60 llamadas en progreso, las llamadas irán de 60 en 60… para maximizar el número de llamadas por tiempo y minimizar el número de peticiones a realizar.

Las llamadas suelen hacerse por la noche o los fines de semana, básicamente cuando la detección es más difícil y de esta forma, se estima que los atacantes se encuentran en países con diferente zona horaria que coincide con nuestras horas de sueño. También es posible que ataquen de día, pero no es tan frecuente.

Seguramente estés pensando que después de leer esto (si has llegado hasta aquí) lo mejor es configurar un firewall y cerrarlo todo para prohibir cualquier acceso del exterior de tu red. Normal, muchas personas optan por esta opción, aunque es posible que depender al 100% de tu firewall no sea lo más recomendable. Ofrecer acceso remoto y redirigir las llamadas externas a un Hangup directo es otra posibilidad. Revisar la seguridad de tus cuentas SIP, forzar contraseñas duras, revisar los parámetros, etc… también es importante… hay muchas formas de prepararse para un ataque, lo importante es evitar huir y estar siempre alerta para ser capaz de detectar cuanto antes cualquier tipo de ataque y preparar las contramedidas necesarias para el caso que detectemos un ataque.

 

Anterior artículoNuevo softphone SIP para BlackBerry
Siguiente artículo 9421-9403OpenWebinars: Software Libre profesional