plataformas de mensajería y riesgos asociados: caso whatsapp

22
“La ciberseguridad, un factor estratégico nacional" 10 y 11 de diciembre 2013 © 2013 Centro Criptológico Nacional C/Argentona 20, 28023 MADRID VII Jornadas STIC CCN-CERT

Upload: jaime-sanchez

Post on 20-Aug-2015

3.473 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Plataformas de mensajería y riesgos asociados: caso WhatsApp

“La ciberseguridad, un factor estratégico nacional"

10 y 11 de diciembre 2013

© 2013 Centro Criptológico Nacional C/Argentona 20, 28023 MADRID

VII Jornadas STIC CCN-CERT

Page 2: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

Jaime Sánchez (@segofensiva) Pablo San Emeterio (@psaneme)

Plataformas de mensajería y riesgos asociados: caso WhatsApp

Page 3: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

1. QUIENES SOMOS2. INTRODUCCIÓN

ÍNDICE

3. ERRORES DE SEGURIDAD4. MEJORANDO EL SISTEMA DE CIFRADO5. UTILIZANDO UNA PLATAFORMA PROPIA

Page 4: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

JAIME SÁNCHEZ - Ingenierio Informático & Security Researcher!- Executive MBA, CISSP, CISA y CISM!- Ponente en Rootedcon, Nuit du Hack, BH Arsenal, Defcon, Derbycon, NoConName, DeepSec, BH Sao Paulo etc.!- Twitter : @segofensiva!- http://www.seguridadofensiva.com!

!PABLO SAN EMETERIO

- Ingeniero Informático!- Trabaja en el departamento I+D de Optenet!- Master de Seguridad y Auditoría por la UPM, CISA y CISM!- Ponente en Rootedcon, NoConName y CiberSeg!- Experiencia anterior investigando en WhatsApp!- Twitter : @psaneme

Page 5: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

- WhatsApp es una aplicación de mensajería multiplataforma que permite enviar y recibir mensajes a través Internet de manera gratuita.!!- Ha sustituido a los servicios tradicionales de mensajes cor tos o sistema de mensajería multimedia.!!- Disponible para los sistemas operativos iOS, Android, Windows Phone, BlackBerry OS y Symbian.!!- No existen versiones para Windows, Mac, Linux. Sin embargo existen emuladores para Android permiten el uso de WhatsApp en Windows, Mac o un Navegador web e implementaciones abiertas en python (Yowsup) y php (WhatsAPI).

Page 6: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

Page 7: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

- Más usuarios que Twitter, que posee 230 millones de usuarios activos, y que Instagram, que cuenta con 150 millones en su plataforma.

Page 8: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

- Mensajes en claro (WhatsApp Sniffer)!!- Password MD5 basado en IMEI o MAC del teléfono utilizado (espía y suplantación de usuarios)!!- Almacenamiento de cualquier contenido en sus servidores (virus, html etc.) :)!!- Almacenamiento en claro de la base de datos!!- WhatsApp Status: permitía cambiar el estado de cualquier usuario del que se conociera el número de teléfono

Page 9: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

- El 13 de Enero de 2012 la aplicación fue retirada 4 días de la App Store!!- Apar ición de Pr iyanka para Android

- WhatsApp Voyeur: Obtener datos del perfil de un usuario, sin necesidad de usar tu teléfono móvil!!- No se necesita autorización para enviar mensajes, por lo que cualquier usuario/bot puede enviarte spam.!!- Problemas actuales con el cifrado RC4!!- etc.

Page 10: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

57:41 => WA 01:02 => PROTOCOL VERSION 1.2 !f8:05:01:c8:ab:a5:fc:12:69:50:68:6f:6e:65:2d:32:2e:31:30:2e:32:2d:35:32:32:32:00:00 0x01 => stream:stream 0xc8 => to 0xab: s.whatsapp.net 0xa5 => resource 0xfc => String 12caracteres => iPhone-2.10.2-5222

<stream:stream to=”s.whatsapp.net” resource=”iPhone-2.10.2-5222” /> !f8:02:bb => 0xbb => stream:features f8:04 f8:03:70:31:ca => 0x70 => message_acks 0x31 => enable 0xca => TRUE f8:01:9c => 0x9c => receipt_acks f8:03:e4:cb:0c => 0xe4 => w:profile:picture 0xcb => type 0x0c => all f8:03:b9:7c:ca => 0xb9 => status 0x7c => notification 0xca => TRUE

<stream:features> <message_acks enable=TRUE /> <receipt_acks /> <w:profile:picture type=ALL /> <status notification=TRUE /> </stream:features> !

f8:08:10:6d:ec:da:fc:0b:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:X:e8:cf 0x10 => auth 0x6d => mechanism 0xec => WAUTH-1  user => 34XXXXXXXXX 0x31 => enable 0xe8 => xmlns 0xcf => urn:ietf:params:xml:ns:xmpp-sasl

<auth mechanism=”WAUTH-1” user=”XXXXXXXXXXX” xmlns=”urn:ietf:params:xml:ns:xmpp-sasl” />

Page 11: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

- El acceso de un nuevo dipositivo se produce de la siguiente manera:

CANAL HTTPS

INTERCAMBIO CLAVE

RECEPCIÓN CLAVE

Page 12: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

- Para acceder al sistema, el teléfono enviará:!<auth xmlns=“urn:ietf:params:xml:ns:xmpp-sasl" user="XXXXXXXXXXXX" mechanism="WAUTH-1" />!

!- El servidor responderá con un desafío:!

<challenge xmlns=“urn:ietf:params:xml:ns:xmppsasl"> YYYYYYYYYYYYYYYYYYYY </challenge>!

!- El cliente, para responder al desafío, generará una clave usando PKBDF2 (16 iteraciones) con:!! - El password recibido durante el registro!! - El desafío recibido como salt!!Utilizará SHA1 como función hash. Se utilizarán los 20 primeros bytes generados del tipo <numero teléfono> || <20 bytes de respuesta> || UNIX timestamp:!

<response xmlns=“urn:ietf:params:xml:ns:xmppsasl”>!ZZZZZZZZZZZZZ </response>!

!- A partir de este momento, los mensajes van cifrados.

Page 13: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

De los creadores de:! - Nunca corras con unas tijeras en la mano! - Nunca corras cerca de una piscina! - Nunca corras cerca de una piscina con unas tijeras en la mano !!Llega:

NUNCA utilices el mismo keystream de RC4 para cifrar dos mensajes diferentes ...

Page 14: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

- El algoritmo de cifrado utilizado por WhatsApp es RC4, diseñado por Ron Rivest de la RSA Security en 1987, utilizando la misma clave de cifrado en ambos sentidos.!!- Es el Stream Cipher más utilizado y fue excluído de los estandares de alta seguridad. Consiste en 2 algoritmos: Key Scheduling Algorithm (KSA) y Pseudo-Random Generation Algorithm (PRGA).

¿ Y dónde dices que está el problema ?

Page 15: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

c1 = m1 ⊕ k c2 = m2 ⊕ k

c1 ⊕ c2 = m1 ⊕ m2

m1 = c1 ⊕ k m2 = c2 ⊕ k

REUSED KEY ATTACK

Page 16: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

- Tenemos m1 ⊕ m2 (hemos eliminado k de la ecuación).!!- Utilizando Crib-Dragging:!

1) Deduciremos una palabra que aparezca en los mensajes!2) Codificamos esta palabra a hexadecimal!3) Haremos el XOR de ambos mensajes cifrados!4) Realizamos un XOR de la palabra en hexadecimal(paso 2) en cada posición del resultado del XOR de ambos textos cifrados(paso 3)!5) Cuando consideremos que el resultado anterior es texto legible, !consideramos la palabra válida y aumentamos nuestra búsqueda!6) Si el resultado no es texto legible, probamos con la siguiente posición.!

!- Es importante hacer un análisis en base al idioma!original de los mensajes en claro. !!- Gracias a un análisis de frecuencias, utilizaremos las!palabras más frecuentes para realizar nuestro ataque.

Page 17: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

"WhatsApp takes security seriously and is continually thinking of ways to improve our product. While we appreciate feedback, we're concerned that the blogger's story describes a scenario that is more theoretical in nature. Also stating that all conversations should be considered compromised is inaccurate" the company said. Respuesta oficial a https://blog.thijsalkema.de/blog/2013/10/08/piercing-through-whatsapp-s-encryption/

WTF!

Page 18: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

MORE)THEORICAL)IN)NATURE)...

Page 19: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

“login”:”346688X92X9”,”pw”:”xn8MFMH16ha46ROa6zNBLTecyRI=“

EXTRACCIÓN FÍSICA DEL PASSWORD

Page 20: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

- Hemos comprobado que el cifrado utilizado para salvaguardar la información y la privacidad de nuestras conversaciones es fácil de romper.!!- ¿ Qué podemos hacer ? Interceptaremos el mensaje de WhatsApp antes de que salga. Descifraremos el mensaje original con nuestra clave y le aplicaremos un algoritmo de cifrado, y después volveremos a cifrarlo con el algoritmo y clave original para no romper la aplicación.!!- Nuestro esquema de funcionamiento de ahora en adelante será:

MODIFICACIÓNEN TIEMPO REAL

Page 21: Plataformas de mensajería y riesgos asociados: caso WhatsApp

VII JORNADAS STIC CCN-CERT

www.ccn-cert.cni.es

- El anterior método nos permitirá cifrar nuestros mensajes para que otros atacantes capaces de interceptar nuestro tráfico no sean capaces de adivinar el contenido de los mensajes.!!- Pero, ¿ y si queremos que el tráfico directamente no pase por los servidores de WhatsApp ?

SERVIDOR DE MENSAJERÍA XMPP

Page 22: Plataformas de mensajería y riesgos asociados: caso WhatsApp

Síguenos en Linked in

VII JORNADAS STIC CCN-CERT

Correos electrónicos

[email protected][email protected][email protected][email protected][email protected]

• www.ccn.cni.es • www.ccn-cert.cni.es • www.oc.ccn.cni.es

Páginas Web

www.ccn-cert.cni.es