“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
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
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
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
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).
VII JORNADAS STIC CCN-CERT
www.ccn-cert.cni.es
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.
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
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.
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” />
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
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.
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 ...
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 ?
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
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.
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!
VII JORNADAS STIC CCN-CERT
www.ccn-cert.cni.es
MORE)THEORICAL)IN)NATURE)...
VII JORNADAS STIC CCN-CERT
www.ccn-cert.cni.es
“login”:”346688X92X9”,”pw”:”xn8MFMH16ha46ROa6zNBLTecyRI=“
EXTRACCIÓN FÍSICA DEL PASSWORD
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
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
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
Top Related