WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP...
Transcript of WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP...
![Page 1: WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP Tiempo real ... web, en comparación con Ajax y Comet • Tanto el servidor como el](https://reader030.fdocuments.in/reader030/viewer/2022013021/5f139ee2da802b35e53d275e/html5/thumbnails/1.jpg)
OWASP AppSec Latam 2014
www.segu-info.com.ar 1
Lic. Cristian Borghello, CISSP – CSSK – [email protected]
@SeguInfo
WebSockets con ZAP
• Licenciado en Sistemas UTN desde 2000
• Desarrollador desde los 8 años
• CISSP (Certified Information Systems Security
Professional) desde 2008
• Microsoft MVP Security (Most Valuable
Professional) desde 2010
• CCSK (Certificate Cloud Security Knowledge)
desde 2014
• Creador y Director de Segu-Info
• Consultor independiente en Seguridad de la
Información
Sobre Cristian Borghello
![Page 2: WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP Tiempo real ... web, en comparación con Ajax y Comet • Tanto el servidor como el](https://reader030.fdocuments.in/reader030/viewer/2022013021/5f139ee2da802b35e53d275e/html5/thumbnails/2.jpg)
OWASP AppSec Latam 2014
www.segu-info.com.ar 2
WEB 1.0HTML
WEB 2.0LAMP
Tiempo realAsincronía
Historia de la Web
http://slides.html5rocks.com/#title-slide
• Diseñando para transferir “documentos”
• Comunicación bi-direccional
• Comunicación half-dúplex (TCP es full-
dúplex)
• Cada requerimiento envía y recibe
cabeceras
• Las cabeceras agregan
sobrecarga
El protocolo HTTP es…
Leeeeeento
![Page 3: WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP Tiempo real ... web, en comparación con Ajax y Comet • Tanto el servidor como el](https://reader030.fdocuments.in/reader030/viewer/2022013021/5f139ee2da802b35e53d275e/html5/thumbnails/3.jpg)
OWASP AppSec Latam 2014
www.segu-info.com.ar 3
Estudio
del
objetivo
Servidor Web
Petición
Navegador Web
Respuesta
Pull (método tradicional)
![Page 4: WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP Tiempo real ... web, en comparación con Ajax y Comet • Tanto el servidor como el](https://reader030.fdocuments.in/reader030/viewer/2022013021/5f139ee2da802b35e53d275e/html5/thumbnails/4.jpg)
OWASP AppSec Latam 2014
www.segu-info.com.ar 4
Datos
Push (lo que necesitamos)
Evento
![Page 5: WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP Tiempo real ... web, en comparación con Ajax y Comet • Tanto el servidor como el](https://reader030.fdocuments.in/reader030/viewer/2022013021/5f139ee2da802b35e53d275e/html5/thumbnails/5.jpg)
OWASP AppSec Latam 2014
www.segu-info.com.ar 5
Petición 1
Respuesta 1
Ajax (Polling)
Petición 2
Respuesta 2
Petición 3
Respuesta 3
Petición N
Respuesta N
En XMLHttpRequest (XHR) en realizan peticiones
HTTP y los datos son transferidos vía XML, JSON…
¡Pero sigue siendo exceso de HTTP!
Petición
Respuesta 1
Comet (Long Polling)
Respuesta N
Alex Russell de www.DojoToolkit.org definió la técnica
Dojo es el primer Framework que implementa Comet
COMET
Petición
Comet usa AJAX con una petición prolongada
¡Pero sigue siendo exceso de HTTP!
![Page 6: WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP Tiempo real ... web, en comparación con Ajax y Comet • Tanto el servidor como el](https://reader030.fdocuments.in/reader030/viewer/2022013021/5f139ee2da802b35e53d275e/html5/thumbnails/6.jpg)
OWASP AppSec Latam 2014
www.segu-info.com.ar 6
Petición
Respuesta 1
Streaming(Loooong Polling)
Respuesta N
Respuesta 2
![Page 7: WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP Tiempo real ... web, en comparación con Ajax y Comet • Tanto el servidor como el](https://reader030.fdocuments.in/reader030/viewer/2022013021/5f139ee2da802b35e53d275e/html5/thumbnails/7.jpg)
OWASP AppSec Latam 2014
www.segu-info.com.ar 7
WebSocket (I)
• La especificación WebSocket (RFC 6455) es parte
de la iniciativa de HTML5
• WebSockets define una API que permite a las
páginas web, la comunicación en dos vías con un
host
• WebSocket define un canal de comunicación de
texto full-duplex y bidereccional que opera a
través de un solo conector TCP/HTTP
• WebSockets proporcionan una enorme reducción
de tráfico de redhttp://websocket.org/
http://socket.io/
http://pusher.com/
WebSocket (II)
• WebSocket simplifica la complejidad en la
administración de conexiones
• Representa la evolución en la comunicación
web, en comparación con Ajax y Comet
• Tanto el servidor como el cliente pueden
enviar datos en cualquier momento, y al
mismo tiempo
• Sólo los datos son enviados, sin sobrecarga de
cabeceras HTTP, lo que reduce drásticamente
el ancho de banda
• Baja latencia entre el cliente y el servidor
![Page 8: WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP Tiempo real ... web, en comparación con Ajax y Comet • Tanto el servidor como el](https://reader030.fdocuments.in/reader030/viewer/2022013021/5f139ee2da802b35e53d275e/html5/thumbnails/8.jpg)
OWASP AppSec Latam 2014
www.segu-info.com.ar 8
Reducción de Tráfico
http://refcardz.dzone.com/refcardz/html5-websocket
WebSocket (III)
• Para conectarse desde un cliente, se crea una
instancia WebSocket a través de la dirección
ws://... (80) o wss://... (443)
• La nueva conexión se establece a través de un
“Upgrade” del protocolo HTTP durante el
handshake del cliente y el servidor y sobre la
misma conexión de TCP/IP existente
![Page 9: WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP Tiempo real ... web, en comparación con Ajax y Comet • Tanto el servidor como el](https://reader030.fdocuments.in/reader030/viewer/2022013021/5f139ee2da802b35e53d275e/html5/thumbnails/9.jpg)
OWASP AppSec Latam 2014
www.segu-info.com.ar 9
Petición
Frame 1
WebSocket
Frame 2
Frame N
WebSocket
![Page 10: WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP Tiempo real ... web, en comparación con Ajax y Comet • Tanto el servidor como el](https://reader030.fdocuments.in/reader030/viewer/2022013021/5f139ee2da802b35e53d275e/html5/thumbnails/10.jpg)
OWASP AppSec Latam 2014
www.segu-info.com.ar 10
GET ws://segu-info.com.ar/ HTTP/1.1
Host: segu-info.com.ar
Connection: Upgrade
Sec-WebSocket-Key: uRovscZjNol/umbTt5uKmw==
Upgrade: WebSocket
Sec-WebSocket-Version: 13
Origin: http://segu-info.com.ar
Re
qu
est
HTTP/1.1 101 WebSocket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Accept: rLHCkw/SKsO9GAH/ZSFhBATDKrU=
Access-Control-Allow-Origin: http://segu-info.com.ar
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type
Re
spo
nse
HandShake
Implementaciones en Servidor
PHPRachet – http://socketo.me
Node.jshttp://socket.io/
https://github.com/Worlize/WebSocket-Node
https://github.com/einaros/ws
Java http://www.eclipse.org/jetty/
Rubyhttp://github.com/igrigorik/em-websocket
Python http://code.google.com/p/pywebsocket/
https://github.com/facebook/tornado
.NEThttp://git.warmcat.com/cgi-
bin/cgit/libwebsockets/
http://superwebsocket.codeplex.com/
http://msdn.microsoft.com/en-
us/library/system.net.websockets(v=vs.11
0).aspx
![Page 11: WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP Tiempo real ... web, en comparación con Ajax y Comet • Tanto el servidor como el](https://reader030.fdocuments.in/reader030/viewer/2022013021/5f139ee2da802b35e53d275e/html5/thumbnails/11.jpg)
OWASP AppSec Latam 2014
www.segu-info.com.ar 11
WebSocket en Chrome
![Page 12: WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP Tiempo real ... web, en comparación con Ajax y Comet • Tanto el servidor como el](https://reader030.fdocuments.in/reader030/viewer/2022013021/5f139ee2da802b35e53d275e/html5/thumbnails/12.jpg)
OWASP AppSec Latam 2014
www.segu-info.com.ar 12
WebSocket en ZAP
• El Proxy OWASP ZAP es una herramienta fácil
de usar y permite la búsqueda de
vulnerabilidades en aplicaciones web
• ZAP ofrece escáneres automáticos, así como
conjunto de herramientas que permiten
encontrar vulnerabilidades de seguridad
• ZAP es era el único* Proxy que permite análisis
de WebSocket
* Ya no. Acaba de publicarse BURP 1.5.21 y 1.6
http://releases.portswigger.net/2014/01/v1521.html
WebSocket en ZAP
![Page 13: WebSocketscon ZAP - OWASP › ... › OWASP-Borghello-WebSocket.pdf · WEB 1.0 HTML WEB 2.0 LAMP Tiempo real ... web, en comparación con Ajax y Comet • Tanto el servidor como el](https://reader030.fdocuments.in/reader030/viewer/2022013021/5f139ee2da802b35e53d275e/html5/thumbnails/13.jpg)
OWASP AppSec Latam 2014
www.segu-info.com.ar 13
¿Quiénes lo soportan?
http://caniuse.com/#feat=websockets
Lic. Cristian Borghello
www.segu-info.com.ar
@SeguInfo
GRACIAS!