Skype. Algunas consideraciones sobre Skype y Bloqueo de tráfico usando Wireshark / Snort. Parte 1

A estas alturas ya todos sabemos qué es Skype. No voy a descubrir nada nuevo sobre este software para realizar llamadas (voz), chat, etc, a través de internet desde un PC a otro PC.

Logo skype

Solo comentar, como peqeño resúmen, que hace uso de VoIP gracias a la tecnología P2P (algo vimos aquí sobre detectar P2P en nuestra red ) y usa cifrado fuerte para las comunicaciones. Sobre la Seguridad dice Skype:

Skype usa AES (el Estándar de Cifrado Avanzado), también conocido como Rijndel, que también es usado por organizaciones estadounidenses de gobierno para proteger la información sensible. Skype usa el cifrado de 256 bit, que tiene un total de 1.1 x 10E77 llaves posibles, para cifrar los datos activamente en cada llamada de Skype o en cada mensaje instantáneo. Skype usa 1536 a 2048 bit RSA (Algorithm for Public-Key Encryption) para negociar llaves simétricas AES. Las llaves de usuario público son certificadas por el servidor Skype en la conexión.

Es decir, que en principio, descifrar una conversación Skype es algo prácticamente imposible. Además, el software o protocolo de seguridad de Skype es propietario, cerrado y secreto.

En este artículo nos centraremos en como bloquear Skype , así como algunas consideraciones sobre este software. Eso sí, haciendo uso de las herramientas de captura de tráfico como Wireshark, y Snort en todo lo que nos sea posible. Además no servirá para bloquear otros tipos de tráfico usando la misma «técnica».

NOTA: Iré actualizando con soluciones de bloqueo avanzadas de distintos dispositivos hardare.

Relacionado:  Skype. Algunas consideraciones sobre Skype. Información almacenada en el usuaro. Análisis forense.

Para llegar a donde queremos, que menos que saber un poco, muy brevemente, algo sobre la arquitectura Skype. Por ejemplo que su red tiene tres tipos de hosts:

  • Nodo. cualquier host cliente
  • Super-Nodo. host con IP pública con grandes recursos de ancho de banda, procesamiento y memoria. sirven para lagestión de directorios de usuarios, datos de nodos, etc. Cualquier Nodo se puede converti, si tiene estos recursos mencionados, en Super-Nodo, siempre y cuando no estén detrás de un proxy o firewall/cortafuegos.
  • Skype Login Server.host servidor único y solo este es centralizado. Se encarga de la autentificación de usuarios, almacenamiento de usuarios / contraseñas y que los usuarios sean únicos.

¿ Como interactúan entre ellos?. Cada host Nodo o cliente debe conectar con un host Super-Nodo y registrarse/autentificarse en el  Skype Login Server. Aunque existe un solo servidor central Skype Login Server para las funciones que acabo de comentar, todo el tráfico, información, etc se realiza de forma descentralizada.

Como se inicia la conexión, el proceso de conexión, conexión a Super-Nodos y Skype Login Server, búsqueda de contactos, establecimiento de llamada, obtención de certificado, cifrado y muchos otros aspectos, no entran en el objetivo de este artículo. Para otro.. ya veremos. Son procesos complicados.

¿ Qué puertos usa ?. Skype usa puertos TCP y UDP. La numeración del puerto suele ser, por defecto, alta para las conexiones entrantes. Si en nuestro cortafuegos o firewall, tenemos bloqueados los puertos que usa Skype, este intentará acceder a los puertos 80 y/o 443.También puede usar proxies HTTP / SOCKS5, con lo que habrá que indicarle Servidor y Puerto y, en su caso, usuario / contraseña.

Esto ya nos  da una pista de como bloquear Skype en una red local:

  • El usuario no tiene acceso a internet.  Solucionado.
  • El usuario tiene acceso pero solo a determinados puertos o servicios. Los podría usar Skype.
  • El usuario solo tienen acceso a los puertos 80 y/o 443. Los usa Skype.

¿ Eso es todo ?. Pues no. Lo normal es que los usuarios tengan acceso a internet, y, sobre todo, necesitan el puerto 80 y para algunos servicios 443, con lo cual, de momento no hemos avanzado gran cosa.

¿ Entonces como bloqueamos Skype ?. Independientemente de que algunos cortafuegos o firewalls tengan ya implememtados algunos filtros para Skype, que no lo se, vamos a usar Wireshark para buscar alguna firma identificativa de Skype, patrón o característica única que nos sirva para crear un filtro o política para nuestro cortafuegos.

Capturando el tráfico Skype.

NOTA: Vamos a realizar un estudio no demasiado profundo. Eso lo dejaremos para otra entrega. Se trata de dar una serie de pistas, consideraciones sobtre el bloqueo de este tipo de software.

Nuestro escenario es el siguiente. Un host cliente Skype con salida a internet a través de un cortafuegos sin ningún tipo de restricción a puertos TCP / UDP. Un host cliente remoto cualquiera. Skype está ya instalado y no es la primera vez. De ser el primer uso la captura cambia en algunos aspectos.

NOTA: Bajo otros escenarios, como por ejemplo, habilitar solo el puerto 443, las capturas cambian. Podemos, además, obtener mucha información sobre las transacciones SSL.

captura parte trafico skype con wireshark

Lo primero que observamos es una peticion DNS. Un Standard Query request A para resolver ui.skype.com. A lo que se responde con un Standard query response A 204.xxx.xxx.158.

Ya tenemos la primera pista. Skype conecta con un servidor ui.skype.com.

Vemos, a continuación, un establecimiento de conexión a tres bandas. Entre el Nodo host cliente con el servidor ui.skype.com.

Una vez establecida la conexión se realiza una petición HTTP GET. Si realizamos un Follow TCP Stream desde Wireshark, veremos:

GET /ui/0/3.8.32.115/es/getlatestversion?ver=3.8.32.115&uhash=1540f7874177b01d4df58ee305d933e23 HTTP/1.1

User-Agent:

Host: ui.skype.com

Cache-Control: no-cache

A lo que se responde:


HTTP/1.1 200 OK

Date: Tue, 10 Nov 2009 17:11:56 GMT

Server: Apache

Cache-control: no-cache, must revalidate

Pragma: no-cache

Expires: 0

Set-Cookie: SC=CC=:CCY=:LC=es:TM=1257873116:TS=1257873116:TZ=:VER=0/3.8.32.115/0; expires=Wed, 10-Nov-10 17:11:56 GMT; path=/; domain=.skype.com;

Content-Length: 8

Connection: close

Content-Type: text/html; charset=utf-8

Content-Language: en

2.0.32.0

Pues ya lo tenemos bastante más claro.

  • GET /ui/0/3.8.32.115/es/getlatestversion
  • Host: ui.skype.com

En cada una de las conexiones realizadas con Skype, estos dos patrones, por poner dos ejemplos, se repiten. Aunque no exactamente, ya que la numeración marcada en rojo es la versión del cliente y, lógicamente, puede cambiar.

¿ Algo más que nos pueda servir ?. Bueno, tenemos también un número de puerto UDP:

captura wireshark udp skype

Se trata del puerto 59907, Pero no nos sirve de mucho. Este puerto es configurable desde Opciones de Skype.

De todas formas ya tenemos suficiente para esta primera aproximación
a la  identificación del tráfico de Skype.

Creación de regla Snort para detectar el uso de Skype. 

De no tener políticas que impidan la instalación de programas en las máquinas de nuestros usuarios, podríamos, por ejemplo, crear una regla Snort tal como esta:

alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:»Uso de GET para nueva version Skype»; flow:to_server,established;
uricontent:»/ui/»; uricontent:»/getnewestversion»; content:»Host|3A|
ui.skype.com»; classtype:policy-violation; rev:1;)

Esta regla nos generará una alerta, pero no bloqueará tráfico alguno.

Creación filtro y/o reglas para firewall cortafuegos.

Podríamos crear una regla que denegara el acceso si se accede a una URL que contenga  getlatestversion. Pero no, Skype sigue funcionando.Bueno pues denegamos mediante una regla el acceso al host ui.skype.com, e incluso detallamos la IP de dicho host. Pero cuando abrimos Skype y capturámos su tráfico vemos que sigue igual. A Skype no le importa mucho no acceder al host ui.skype.com, al parecer, solo le serive para descargar, si es el caso, la última versión del programa. En nuestra nueva captura ya no aparece:

GET /ui/0/3.8.32.115/es/getlatestversion?ver=3.8.32.115&uhash=1540f7874177b01d4df58ee305d933e23 HTTP/1.1

User-Agent:

Host: ui.skype.com

Cache-Control: no-cache

Pero ya digo, no nos sirve. Tampoco podemos bloquear por puertos porque no tienen ningún puerto predefinido ni servicios. Puede usar TCP , UDP, 443, 80, etc. El único puerto que tiene predefinido para las conexiones entrantes lo puede manipular el usuario en el cliente.

Inpeccionar los paquetes en busca de firmas que denoten, por ejemplo, el uso de SSL por parte de Skype, ya no vale. Antes, en versiones anteriores, el handshake SSL/TLS era facilmente identificable mediante la firma |16 03 01 00| (Client Hello) y |17 03 01 00| (Server Hello), ahora esto ya no nos vale. Todo la información transferida por Skype está cifrada.

En la captura, más adelante, podemos ver (probadlo) que se usa mucho el protocolo UDP para muchas conexiones, transferencias de voz, etc. Podríamos bloquear el uso de UDP, ya que no afecta significativamente al uso de internet. Pues bien, tras unos momentos en los que Skype inicia, inicia sesión en el  Skype Login Server,etc, vemos que no encuentra ninguno de nuestros contactos. Parece que va todo bien. Pero, cuando Skype ve que no puede usar UDP por defecto para estas tareas, usa TCP, con lo cual la opción de bloquear UDP no nos sirve de nada.

¿ Bloqueamos SSDP?

Skype usa SSDP para el descubrimiento de dispositivos UPnP. Esto lo realiza enviando 4 paquetes a la dirección Multicast 239.255.255.250 al puerto, por defecto, 1900. Pues bien, tanto si desahabilitamos el servicio en el host cliente, como si denegamos en nuestro firewall el acceso al puerto 1900 UDP o a la dirección multicast  239.255.255.250, el resultado es el mismo. Skype se «adapta» y no le afecta. Hay routers que pueden no ser PnP.

NAT Port Mapping Protocol

Como vemos en esta serie de paquetes capturados:

wireshark. NAT Port Mapping Protocol nat-pm skype.

Skype usa NAT-PMP que le permitere mantener una conexión abierta con el exterior de nuestra red de forma persistente. Aunque se le pueda bloquear su uso, Skype puede usar los Super Nodos para esta tarea. En la versions 4.x creo que se puede deshabilitar el uso de NAT-PMP.

Como bloquear de forma efectiva el uso de Skype.

En un entrono de empresa, hay varias formas de bloquear el uso de Skype.

  • Se impide el acceso total a internet y a partir de ahí se da salida solo a los servicios y/o protocolos necesarios.
  • Se impide el acceso acceso total a internet excepto a servicios necesarios (IMAP, SMTP,…) y se da salida solo a una serie de sitios que establezaca la empresa para sus usuarios. Sería una especie de lista blanca de acceso.
  • Uso de políticas de seguridad en la empresa. Dependiendo del tipo de usuario, uso de directorio activo o grupo de trabajo:
  • Usuarios sin permiso de instalación de software. Esto no es válido si los usuarios pueden ejecutar un Skype portable a través de USB o lectos CD/DVD.
  • Políticas de restricción de software en directivas de seguridad local. Se crea una regla para impedir el uso de Skype.exe.
  • En un entorno de Directorio Activo, podemos especificar una restricción al uso de Skype.exe.

Existen algunos dispositivos Hardware que son capaces de detectar el tráfico de red Skype. No los he probado. Incluso algún firewall avanzados de hardware que puede bloquear Skype, pero las técnicas de «evasión» que usa Skype casi siempre va por delante. Además, la inspección del contenido de paquetes es practicamente imposible, debido a que toda la transferencia de información suscentible de usarse para bloquear, está cifrada.

Relacionado: Wireshark. Tshark. Detectando tráfico P2P en nuestra red.

Relacionado:  Skype. Algunas consideraciones sobre Skype. Información almacenada en el usuaro. Análisis forense.

—————————————————————————–

En la siguiente entrega estudiaremos de forma más profunda como funciona Skype e iremos descubriendo más aspectos muy interesantes sobre este software.

También veremos las capturas realizadas bajo otros escenarios como, por ejemplo, dehabilitar todos los puertos y servicios y habilitar solo el puerto 443. Vremos como cambia la captura y la cantidad de datos que podemos obtener, sobre todo las transacciones SSL.

——————————————————————————-

Esta entrada fue publicada en Seguridad y redes, Skype, Snort, Wireshark . Tshark y etiquetada , , , , , , , , , , . Guarda el enlace permanente.

26 respuestas a Skype. Algunas consideraciones sobre Skype y Bloqueo de tráfico usando Wireshark / Snort. Parte 1

  1. Efrain dijo:

    Genial tu aporte!
    Ahora, una simple pregunta:
    Soy jefe de sistemas, y digamos que dentro de mi organizacion tengo usuarios principiantes en estas aplicaciones.
    Yo utilizo un router D-link DIR-320, y puedo bloquear rangos de IP a diferentes puertos.
    En definitiva, Skype utiliza el puerto 59907 por defecto?
    Sé que se podría configurar manualmente, pero te repito, son usuarios de conocimientos básicos.
    Gracias una vez mas, espero tu respuesta.
    Un saludo!

  2. Alfon dijo:

    Gracias por el comentario Efrain. Pues sí, es el puerto por defecto. El usuario lo puede modificar, pero no sirve de mucho. Si está «capado» el puerto especificado, usará otro, el que sea.

  3. John dijo:

    Mi comentario es algo tardío y es posible que nadie lo vea. igual lo dejo por si acaso lo analizan.
    muy breve:
    Si dejamos HABILITADO el puerto default de Skype (59907) de tal modo que el programa no requiera buscar otras opciones.
    Luego, usando este puerto como identificador del tgráfico Skype, ESTABLECER algún control de ancho de banda que restrinja este tráfico de tal modo que permita una moderada cantidad de conexiones tales que no tenga un efecto significativo en nuestra Red.
    Si alguien lo lee, ¿qué les parece, creen posible que esto pueda usarse para controlar el impacto de Skype en nuestra Red?

  4. Alfon dijo:

    El problema John es que usuario siempre podrá cambiar el puerto.

  5. Oscar dijo:

    Que tal, espero que esten bien, mi pregunta es la siguiente: como puedo desbloquear el skype? en el entorno de trabajo que estoy han implementado el wesense el cual ya no me deja conectarme a skype, ¿tienen forma de desbloquearlo?
    muchas gracias saludos

  6. Oscar dijo:

    Que tal, espero que esten bien, mi pregunta es la siguiente: como puedo desbloquear el skype? en el entorno de trabajo que estoy han implementado el wesense el cual ya no me deja conectarme a skype, ¿tienen forma de desbloquearlo?
    muchas gracias saludos

  7. unocualquiera dijo:

    Una cosa.
    ¿Porque esta obsesión enfermiza de los responsables de sistemas de las empresas con prohibir el uso de Internet?
    Me recuerda a la misma enfermiza fiebre de bloqueo de uso del teléfono que se dió años atrás.
    A veces creo que el problema es que los departamentos de TI necesitan bloquear todo para demostrar a los directivos, que suelen tener más de 50 años y han crecido en un mundo sin informatica, que los del departamento de TI tienen la «sarten por el mango» y que sin ellos no se puede vivir.
    Lo mejor, sería si acaso desconectar el Router, asi seguro que no usa nadie internet. Ah! y apagar los ordenadores, porque asi no hay virus…¿ridiculo, no?
    La informatica en la empresa es un medio, no un fín. Es una herramienta. Si yo me compro una alicate muy buena, y la meto en el cajón y no la uso, no la perderé, pero no tendrá sentido, dado que es una herramienta y su fin no es estar guardada para que nadie la toque. Pues la Informática es lo mismo.
    Los Usuarios necesitan internet, comunicarse, y hacer su uso. Por eso las empresas lo tienen, por eso estais trabajando allí, y no en un centro de cáculo de alguna universidad, como no hace demasiados años….
    Así que menos restricciones, menos passwords, y menos mandangas…Ah!, eso si y menos directorio activo, que todos sabeis que si un hacker (vuestro terror favorito para espantar al directivo de turno), se hace con una contraseña con privilegios, entra hasta en la cocina.
    Y eso no se lo explicais al Directivo que os aprueba la compra de mas licencias de Servdores 2008 de Microsoft..
    Os lo callais como putas.
    Ademas de que todos sabeis que el agujero de seguridad más grande en cualquier empresa está en los directivos de TI, que tienen cuentas con privilegios y hacen lo que les da la real gana con el sistema. Y con sus PC.
    Así que menos cuentos y menos Microsoft….
    Reflexionemos.

    • ANONIMOUS dijo:

      se q es tarde, pero para todo el que piense de esta manera: Redes Sociales = Perdida de productividad.

      • Nico dijo:

        Totalmente de acuerdo! Si no se bloquean ciertos servicios (Messenger, Skype, Facebbok, Tweeter), los usuarios se la pasan todo el día con todo esto y nada de trabajar! Es mas barato bloquear que poner un guardia de seguridad atrás de cada uno controlando que hacen y que no 😉

  8. Alfon dijo:

    Hola unocualquiera
    No se trata de nada enfermizo. Las políticas de seguridad no las establecen los administradores de sistemas / seguridad, en todo caso, las llevan a cabo. Muchas empresas dejan abierto el acceso a internet pero no quieren que sus empleados se dediquen a lo que no deben, una empresa es para trabajar, y el uso de interent es para el trabajo, alguna consulta personal, algún periódico y poco más. Es normal que las empresas quieran establecer un uso lógico y ordenado de internet por sus empleados. En otros casos empleados con más conocimiento intentan saltarse / se saltan las medidas de seguridad, y entonces hay que poner pedidas. Esta entrada y otras similares, también sirven, con este pretexto, para parender como funcionan los programas y protocolos.
    En fin, que cada empresa, trabajo, ect, es un mundo y necesita políticas diferentes, unas más restrictivas y otra menos.. todo depende.
    Y sobre las cuentas con privilegios, AD, etc… pues supongo que hay gente pató.. y este mundo también.
    Saludos,

  9. Enrique dijo:

    Hola.
    Skype se puede bloquear mediante algunas reglas en FW de capa 7. http://www.carbonwind.net/Firewalls/BlockingSkypewithPfsenseandSnort/BlockingSkypewithPfsenseandSnort.htm
    De echo las rules estan por ahi, pero se puede bloquear la naturaleza p2p que tiene skype.
    Muchos FW baratos comerciales ya lo han implementado ejemplo sonicwall,cisco asa, fortinet, etc

  10. joan flores dijo:

    quiero bloquear la tranferencia de archivo a traves de skype, me explico mejor, que los usuario puedan usar el skype completo pero solo quiero bloquear la transferencia de archivo,
    se puede hacer por el fortinet..?

  11. Patt dijo:

    Hola tengo una pregunta ojala me puedan ayudar, en mi empresa trabajamos con el fortinet 110C y el skype si esta permitido el problema es que estan bloqueadas las herramientas P2P y al parecer esto no nos permite agregar contactos dentro de skype, ¿Como puedo habilitar está opción sin habilitar las alicaciones P2P?

  12. Alberto Aru dijo:

    ¿cómo podemos integrarlo a Jabber?

  13. Anselmo dijo:

    Que tal buen dia, como le puedo hacer para permitir que los usuarios utilicen skype solo como mensajero, es decir solo restringir el uso de video y voz. muchas gracias de antemano

  14. Alan dijo:

    Muchas gracias Alfon. Administro ASDM en una empresa y denegué todas las direcciones de red que indicaste. Hice varias pruebas y no hubo caso que Skype pudiera conectar al usuario 🙂

    • Alan dijo:

      En realidad las direcciones que bloqueé las saqué de otra parte, pero para el que las necesite, son estas:
      111.221.74.0/24
      111.221.77.0/24
      157.55.130.0/24
      157.55.235.0/24
      157.55.56.0/24
      157.56.52.0/24
      194.165.188.0/24
      195.46.253.0/24
      213.199.179.0/24
      63.245.217.0/24
      64.4.23.0/24
      65.55.223.0/24
      Bloqueando todas esas direcciones de red, por lo menos a mi me funcionó, y se inhabilitó Skype de forma eficaz, colocando que bloqueara la IP, y no algún puerto específico, ya que el usuario puede cambiar el puerto y saltarse el firewall.

  15. vico dijo:

    bloquee el acceso de internet a skype por error y ahora no me funciona,como podría hacer para que me volviera a funcionar?gracias

  16. JACK dijo:

    bueno al leer toda los comentarios realmente estoy de acuerdo con uno de ke el internet es un medio de comunicacion y el hecho de ke un trabajador navegue en el internet eso no kiere decir ke va ha dejar de hacer sus responsabilidades,cada kien cuida mucho su trabajo, yo digo kke el intenrnet debes ser un poco mas libre almenos las redes sociales no, los profesionales de sistema no saben es estar en el trabajo 8 horas a12 horas bueno estresa y todos lo dias , y ke les cuesta ke algn trabajdor se distraiga un poco yo ma digo ke todo esto es egoismo y miserabilidad de la personas , creo ke las personas del mundo enves de volverse mas bueno se vuelven mas egoistas .

  17. Pingback: TNV. Herramienta gráfica de visualización e interpretación de tráfico de red. | Seguridad y Redes

  18. German Paul dijo:

    si en el «supernodo» existe la posibilidad de generar entradas de dns estaticas (funcionalidad que casi todos los routers tienen), se podria referir al subominio ui.skype.com a una direccion IP no valida para skype, de esta forma cuando el terminal consulte por esta direccion nunca referiria a la verdadera y quedaria bloqueado

  19. Sebastian dijo:

    Estimado:

    Excelente info, en mi caso necesito lo contrario utilizo un router mikrotik y tengo reglas de filtrado en lo cual permito el acceso a pocas paginas.
    Pero debo permitir la utilizacion de Skype y TeamViewer. La consulte es que IP, puertos y protocolo debería permitir para que funciones el Skype?

    Muchas Gracias.

Replica a Alfon Cancelar la respuesta