WebSocket

  • Posted on: 24 April 2017
  • By: ReYDeS

El protocolo WebSocket es relativamente una nueva tecnología, la cual desde la perspectiva de un navegador llegó con HTML 5. El protocolo tiene directa relación con HTTP y las aplicaciones web. Sin embargo, las implementaciones son en su mayoría exclusivamente empleadas para manejar aplicaciones web. Una de las capacidades clave de WebSocket permite al desarrollador iniciar comunicaciones bidireccionales sobre un sólo socket TCP. Esto es bueno cuando una aplicación necesita tiempo real o comunicaciones regulares. También ayuda a soportar aplicaciones pesadas del cliente, las cuales actualmente son desarrolladas.

Cuando se encuentra siendo utilizado WebSocket en una aplicación web, típicamente se ubica dentro de un archivo .js, aunque puede ser encontrado en una página HTML dentro de una etiqueta “script”. Se puede ver un nuevo objeto WebSocket siendo creado con un código similar al siguiente:

var connection = new WebSocket(‘ws:www. dominio. com/hola’,[‘soap’,’xmpp’];

Esto crea un objeto hablando hacia la funcion “hola” sobre “www. dominio. com”. También configura los protocolos soportados sobre la conexión, los cuales son SOAP y XMPP. El primero es un protocolo de servicio web, y el segundo es Jabber.

Se puede entonces luego ver una aplicación utilizar la función “send” para enviar un mensaje hacia el servidor WebSocket

connection.send(“Bienvenidos”);

Muchas de las herramientas actualmente utilizadas en pruebas de penetración web no entienden o manejan comunicación con WebSocket. Esto implica fallarán al interceptar o capturar esta ruta de comunicación, dejando brechas en las evaluaciones contra la aplicación web.

Se tienen dos herramientas disponibles actualmente para manejar esto. La primera es Wireshark, la cual captura tráfico de red en bruto. Se puede entonces intentar analizarlo. Esto es limitado pues mucha de la comunicación WebSocket frecuentemente está encriptado. Se puede también utilizar la herramienta de interceptación ZAP. Porque básicamente realiza un hombre en el medio (MiTM) del tráfico, no siendo la encriptación un problema.

Fuentes:

https://tools.ietf.org/html/rfc6455
https://www.wireshark.org/
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Curso de Informática Forense