Desde hace algún tiempo venía comentando por aquí, que hay ciertas personas (por llamarlas de alguna forma) que aprovechan alguna configuración incorrecta, algo que se dejó de la mano de algún interfaz web y no se ha comprobado que es correcto, o simplemente el descuido de alguna modificación al ir a hacer alguna prueba, para hacer llamadas a costa de nuestros sistemas. Ya hablamos de esto en el artículo “La VoIP mal configurada llama a Cuba“.

Tras conocer un par de casos críticos y dolorosos, se me ocurrió hacer una pequeña utilidad, una herramienta básica, sencilla algo rápido pero útil que permitiese a cualquiera saber si su sistema SIP conectado a Internet, tiene una configuración que permita realizar este tipo de ataques, de forma que indicando los parámetros mínimos, podremos saber qué respondería el servidor en caso de ataque.

Esta herramienta lo único que hace es enviar al servidor indicado, un paquete INVITE un poco “tuneado” de forma que la herramienta “simulará” a un atacante intentando utilizar nuestro servidor para hacer una llamada, pero en lugar de a algún país extraño, será a nuestro móvil. Si conseguimos hacer una llamada (y recibirla), entonces es que algo no va bien y tendremos que revisar la configuración.

Para aquellos interesados en verificar que su configuración es segura, os recomiendo apuntar esta web en los favoritos y hacer las pruebas correctas para aseguraros que estais a salvo de los ataques de estos “personajes”.

http://www.sinologic.net/proyectos/asterisk/checkSecurity/

Antes de nada, agradecer a mi colega Iñaki Baz por sus consejos a la hora de generar el INVITE  ;D

Hay que tener en cuenta que si el resultado del test es Trying, significa que la llamada se está procesando y por lo tanto debemos revisar la configuración para evitar este resultado.

Para aquellos que no sepan bien de qué estamos hablando, explicaré que ciertas “personas” que, cansados de hacer algo productivo, pasan su tiempo libre fastidiando a otros y de paso se sacan un dinerillo. Aquellos que  se dedican a este negocio lo tienen bien estudiado, utilizan bots programados para escanear redes enteras buscando puertos UDP que respondan a peticiones SIP y una vez encontrado algún sistema que responda lo añaden a una lista de “candidatos” que es la carne de cañón que más tarde utilizan otros bots encargados de lanzar cientos de llamadas a países “exóticos” (telefónicamente hablando) es decir, lugares cuya tarifa más barata no baje del 1,20€ por llamada, como Cuba por poner un ejemplo aunque hay otros países que cumplen esta norma. Por desgracia, el pobre “primo” que sufre esa cantidad de llamadas luego le pasa factura (nunca mejor dicho) y cuando esta asciende a un número de 4 ó 5 cifras y terminado en el símbolo del euro (€) el “primo” se pone la etiqueta en la frente y prepara el papel para llorar a gusto.

No es común que a alguien le pase esto, no obstante, ya había oído algunos comentarios, había visto varios intentos extraños en mi propio Asterisk y empecé a sospechar. Uno viene de administrar sistemas Linux y la paranoia sobre la seguridad es una enfermedad necesaria pero agotadora de la que ya me curé, no obstante cuando uno lee que ha perdido 15.000€ en llamadas a Malasia, Cuba, Nigeria, o cualquier otro país, uno siempre se queda de piedra y la paranoia siempre vuelve. Luego, las preguntas de rigor… ¿quien paga esa factura? ¿a quién se denuncia? ¿cómo puedo saber si me puede pasar a mí? Lo cierto es que uno nunca cree que le vaya a ocurrir, hasta que ocurre y luego empiezan los problemas.

Por suerte apenas conozco a personas que hayan sufrido ataques de este tipo con éxito (por lo menos, que yo haya oído) pero es cierto que cada vez hay más y siempre hay algún pobre al que han cogido desprevenido con un sistema perdido, estable, que funcionaba día y noche sin quejarse y en una tarde ha hecho más de 20.000 llamadas a través de un primario a algún país “exótico”.

Estoy convencido que esta herramienta será útil a muchos compañeros que han instalado bastantes Asterisk.

Así que, para todos aquellos que ya os han asustado con algún intento, aquí teneis:

http://www.sinologic.net/proyectos/asterisk/checkSecurity/

Cualquier crítica, sugerencia o mejora no dudes en decirlo en los comentarios.

Nota: Para a todos aquellos que os aparezca Trying u otro mensaje de color Rojo, recordad que hace poco escribimos varios consejos sobre cómo mejorar la seguridad de vuestro Asterisk en este artículo:
http://blog.sinologic.net/2009-02/la-voip-mal-configurada-llama-a-cuba/

9 Comentarios

  • Que currazo, y muy útil. Tuve un susto no hace mucho con un ataque de este tipo y una utilidad así viene muy bien para hacer un test rápido.

  • Aupa Elio!

    Enhorabuena! Tiene muy buena pinta!

    Unas preguntillas que me surgen 😉

    – Vas ha publicar las fuentes?
    – Podrías describir mejor qué es lo que se considera inseguro? Me refiero a qué códigos de respuesta.
    – He visto que soporta poner IPs y nombres de dominio, pero no resuelve SRV, molaría añadir eso 🙂

    Lo dicho, muy bueno! 🙂

  • Estupendo post, lo he probado y todo ha salido bien

  • Aupa Saúl!

    Sobre lo de publicar las fuentes, no hay mucho que publicar, la página únicamente envía el paquete udp que aparece cuando activas el debug, mediante un comando de PHP, la verdad es que no puede ser más tonto. Pero la ventaja es hacer la prueba desde un ordenador que esté en Internet, ya que hacerlo en local no cumple su objetivo que es ver si alguien puede hacer una llamada a costa de tu sistema.

    Sobre lo de Qué se considera inseguro. Tampoco me he querido mojar ahí, la web únicamente obtiene la primera línea que devuelve el sistema “SIP/2.0 + codigo” de manera que mientras no devuelva un Trying, indicativo que está procesando la llamada, creo que todo va bien. Hay gente que permite recibir llamadas desde fuera siempre y cuando sean números o nombre de usuarios SIP definidos dentro,… en fín, evito hacer interpretaciones, si pones tu móvil y recibes la llamada, es que tienes un problema, ese es el objetivo de la herramienta.

    Sobre lo de resolver SRV, estaría bien, aunque como he dicho, la web se basa en enviar un paquete sip mediante un comando PHP, tan simple como eso, la función no resuelve SRV y me extrañaba que resolviera host+domains, pero al parecer lo hace. Doy por sentado que si alguien ha configurado un SRV y tal, el tema de la seguridad ya lo tiene controlado.

    Nada, cualquier comentario es bien recibido… miraré lo del SRV, aunque no sé yo si los bots que envían esa cantidad de llamadas, resolverían SRV. 😀

    Apuntado queda…

  • Muy buena herramienta, muchas gracias por su aporte, para los que les da positivo, verificar en el sip.conf el parámetro

    allowguest=no

    Saludos
    Juan

  • […] titulo del Articulo es : Comprueba ahora si tu Asterisk es vulnerable a los ataques , lectura obligada pienso yo , para todos los que estamos inmersos en estos […]

  • UNA APLICACION ESTUPENDA!!, despues de probar un par de servidores, cuando crei que estaba todo bien, el ultimo que pruebo ERROR!!, y era que habia copiado una linea de mas en el extensions.conf en el contexto del guest user y permitia salida a numeros externos, ya lo arregle MUY BUEN APORTE!
    GRACIAS desde Argentina

  • Buenos días, mi servidor responde a las llamadas con el mensaje “ss-noservice” seguido por “congestion”. ¿Se puede considerar entonces que mi servidor es seguro o no?

    • Yo no consideraría seguro un servidor hasta que esté desconectado, apagado y sin teclado ni monitor…

      El tester únicamente prueba si alguien sin autentificar puede hacer llamadas a través de tí, aunque los bots intentan registrarse y por fuerza bruta terminan consiguiéndolo por lo que ante la duda, evitaría poner el 5060 público.

Archivos

© 2014 Sinologic, inc. All rights reserved.

Menú

Redes sociales