Plataformas de mensajería y riesgos asociados: caso WhatsApp

  • 3,228 views
Uploaded on

VII Jornadas STIC CCN-CERT

VII Jornadas STIC CCN-CERT

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,228
On Slideshare
0
From Embeds
0
Number of Embeds
19

Actions

Shares
Downloads
7
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. VII Jornadas STIC CCN-CERT “La ciberseguridad, un factor estratégico nacional" 10 y 11 de diciembre 2013 © 2013 Centro Criptológico Nacional C/Argentona 20, 28023 MADRID
  • 2. VII JORNADAS STIC CCN-CERT Plataformas de mensajería y riesgos asociados: caso WhatsApp Jaime Sánchez (@segofensiva) Pablo San Emeterio (@psaneme) www.ccn-cert.cni.es
  • 3. VII JORNADAS STIC CCN-CERT ÍNDICE 1. QUIENES SOMOS 2. INTRODUCCIÓN 3. ERRORES DE SEGURIDAD 4. MEJORANDO EL SISTEMA DE CIFRADO 5. UTILIZANDO UNA PLATAFORMA PROPIA www.ccn-cert.cni.es
  • 4. VII JORNADAS STIC CCN-CERT 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 www.ccn-cert.cni.es
  • 5. VII JORNADAS STIC CCN-CERT - 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). www.ccn-cert.cni.es
  • 6. VII JORNADAS STIC CCN-CERT www.ccn-cert.cni.es
  • 7. VII JORNADAS STIC CCN-CERT - Más usuarios que Twitter, que posee 230 millones de usuarios activos, y que Instagram, que cuenta con 150 millones en su plataforma. www.ccn-cert.cni.es
  • 8. VII JORNADAS STIC CCN-CERT - 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 www.ccn-cert.cni.es
  • 9. VII JORNADAS STIC CCN-CERT - El 13 de Enero de 2012 la aplicación fue retirada 4 días de la App Store! ! - Aparición de Priyanka 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. www.ccn-cert.cni.es
  • 10. VII JORNADAS STIC CCN-CERT ! ! ! 57:41 01:02 => => WA 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 f8:01:9c => 0x9c => receipt_acks f8:03:e4:cb:0c => 0xe4 => w:profile:picture f8:03:b9:7c:ca => 0xb9 => status <stream:features> <message_acks enable=TRUE /> <receipt_acks /> <w:profile:picture type=ALL /> <status notification=TRUE /> </stream:features> 0x31 => enable 0xca => TRUE 0xcb => type 0x7c => notification 0x0c => all 0xca => TRUE 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” /> www.ccn-cert.cni.es
  • 11. VII JORNADAS STIC CCN-CERT - El acceso de un nuevo dipositivo se produce de la siguiente manera: CANAL HTTPS RECEPCIÓN CLAVE INTERCAMBIO CLAVE www.ccn-cert.cni.es
  • 12. VII JORNADAS STIC CCN-CERT - 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. www.ccn-cert.cni.es
  • 13. VII JORNADAS STIC CCN-CERT 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 ... www.ccn-cert.cni.es
  • 14. VII JORNADAS STIC CCN-CERT - 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 ? www.ccn-cert.cni.es
  • 15. VII JORNADAS STIC CCN-CERT c1 = m1 ⊕ k c2 = m2 ⊕ k m1 = c1 ⊕ k m2 = c2 ⊕ k REUSED KEY ATTACK c1 ⊕ c2 = m1 ⊕ m2 www.ccn-cert.cni.es
  • 16. VII JORNADAS STIC CCN-CERT - 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. www.ccn-cert.cni.es
  • 17. VII JORNADAS STIC CCN-CERT "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 Respuesta oficial a https://blog.thijsalkema.de/blog/2013/10/08/piercing-through-whatsapp-s-encryption/ inaccurate" the company said. WTF! www.ccn-cert.cni.es
  • 18. VII JORNADAS STIC CCN-CERT MORE)THEORICAL) IN)NATURE)... www.ccn-cert.cni.es
  • 19. VII JORNADAS STIC CCN-CERT EXTRACCIÓN FÍSICA DEL PASSWORD “login”:”346688X92X9”,”pw”:”xn8MFMH16ha46ROa6zNBLTecyRI=“ www.ccn-cert.cni.es
  • 20. VII JORNADAS STIC CCN-CERT - 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ÓN
 EN TIEMPO REAL www.ccn-cert.cni.es
  • 21. VII JORNADAS STIC CCN-CERT - 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 www.ccn-cert.cni.es
  • 22. VII JORNADAS STIC CCN-CERT Correos electrónicos • • • • • info@ccn-cert.cni.es ccn@cni.es sondas@ccn-cert.cni.es redsara@ccn-cert.cni.es organismo.certificacion@cni.es Páginas Web • www.ccn.cni.es • www.ccn-cert.cni.es • www.oc.ccn.cni.es Síguenos en Linked in www.ccn-cert.cni.es