Cross-Site WebSocket Hijacking

cross-site-websocket-hijacking

Debido a que los WebSockets no están restringidos por una política de mismo origen, un atacante puede iniciar fácilmente una solicitud WebSocket de una página web maliciosa dirigida al ws:// o wss:// de una URL de la aplicación atacada. Debido al hecho de que esta solicitud es una solicitud regular de HTTP(S), los navegadores envían las cookies y las cabeceras HTTP de autenticación junto, incluso entre distintos sitios.

Esto permite al atacante obtener las cookies o autentificación HTTP enviadas desde el navegador durante la fase de actualización handshake/upgrade del WebSocket.

 

Solución

 

Compruebe el encabezado de origen de la solicitud handshake de WebSocket en el servidor.

Utilice Tokens individuales aleatorios para las sesiones (como CSRF-Tokens) sobre la solicitud handshake y verifiquelos en el servidor.

Estas protecciones simples pero eficaces deben utilizarse tan pronto como se utilicen WebSockets dentro de una aplicación web.

Si puede deje de integrar la autenticación en el protocolo WebSocket.