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
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
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