Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Luis Delgado - XMPP, algo más que chat [RootedCON 2012]

13,224 views

Published on

La ponencia consistirá en mostrar la importancia de la seguridad en servicios que utilicen XMPP (en muchos casos olvidada o en un segundo plano), mostrando para ello una breve introducción al protocolo y dos casos reales (Google y Tuenti).

  • Be the first to comment

  • Be the first to like this

Luis Delgado - XMPP, algo más que chat [RootedCON 2012]

  1. 1. XMPP, algo más que chat Luis Delgado @ldelgadoj
  2. 2. Índice1. Introducción2. Estructura3. Seguridad4. Tuenti5. Google6. Conclusiones 2
  3. 3. Introducción• 1998: Jeremie Miller -> Jabber• 2000: Envío de draft al GD IETF -> IMPP -> Expira sin contribuciones• 2002: Segundo intento -> IETF -> XMPP• 2004: Se establecen 4 RFC’s (core, …) 3
  4. 4. Estructura• Conexiones TCP de larga duración -> BOSH (HTTP-Bind) -> Connection Manager• Intercambio asíncrono de información (id)• XML Stream• XML Stanza 4
  5. 5. XML Stanza - Message• Uso: enviar mensajes de una entidad a otra• Tipos: normal, chat, groupchat, headline, error <message to=x2@domain.com type=chat xml:lang=es> <subject>SUBJECT</subject> <body>BODY</body> </message> 5
  6. 6. XML Stanza - Presence• Forma básica de broadcast entre una entidad y todos sus subscriptores• Se puede enviar a un único usuario con el atributo TO <presence to=x2@domain.com type=suscribe/> <presence to=x1@domain.com type=suscribed/> 6
  7. 7. XML Stanza - IQ• Uso: pedir información a otra entidad/servidor• Tipos: get, set, result, error• Extensiones en XMPP <iq type=’get’> <iq from=’x1@domain.com’ <query xmlns=’jabber:iq:roster’/> to ‘x1@domain.com’ </iq> type=’set’> <query xmlns=’jabber:iq:roster’> <item jid=’x2@domain.com’/> </query> </iq> 7
  8. 8. Seguridad• Pilar importante del protocolo (&Privacidad)• Pocas vulnerabilidades conocidas (1999+)• ¿A qué nos enfrentamos? -> rogue servers, address spoofing, DoS, spam, phising, leaks, logging, code issues…• Veamoslo más en detalle 8
  9. 9. Seguridad (II)• Comunicación cifrada (TLS - SSL) client<->server & server<->server end-to-end encryption (PGP)• Autenticación e identidad parámetro ‘from’ verificación del dominio (dialback) set de caracteres unicode (a<->a) 9
  10. 10. Seguridad (III)• Spam sistema de subscripción (presences) $$ -> no es rentable limite envíos/tiempo (cuentas+ -> captcha)• Al final… -> Implementación del protocolo (auth, tls) -> Configuración de los servidores (presence) 10
  11. 11. 11
  12. 12. Tuenti - Chat• Cadena de conexión -> Mismo SID que Web/API -> ¿httponly? -> Permite elegir el recurso• Configuración aplicación android -> Libería SMACK -> accept-all 12
  13. 13. Tuenti - TuTráfico en la red social gratuito-> Tunelización a través de XMPP 14
  14. 14. Tuenti - Tu (II)¿Es realmente interesante? -> Algunas cifras 15
  15. 15. Tuenti – Tu (III)• Otras opciones ya conocidas: -> FaceCat (Facebook NetCat) -> Google Spreadsheet (IMPORTDATA) -> Facebook (Debug->Echo->URL) -> (…) 16
  16. 16. Google Talk• Tres vectores de ataque -> Dispositivos android -> Formato móvil -> Aplicación de escritorio• ¿A qué nos enfrentamos? 17
  17. 17. Google Talk (II)• Cadena de conexión vulnerable -> ¿One-Time Token? -> Timeout -> PLAIN mechanism -> TLS required -> ¿really?• Extensiones XMPP -> Contactos -> Feed emails• Añadir un contacto -> ¿añade a contactos? 18
  18. 18. Google Talk (II)• Cadena de conexión vulnerable -> ¿One-Time Token? -> Timeout -> PLAIN mechanism -> TLS required -> ¿really?• Extensiones XMPP -> Contactos -> Feed emails• Añadir un contacto -> ¿añade a contactos? 20
  19. 19. Google Talk (II)• Cadena de conexión vulnerable -> ¿One-Time Token? -> Timeout -> PLAIN mechanism -> TLS required -> ¿really?• Extensiones XMPP -> Contactos -> Feed emails• Añadir un contacto -> ¿añade a contactos? 22
  20. 20. Google Talk (II)• Cadena de conexión vulnerable -> ¿One-Time Token? -> Timeout -> PLAIN mechanism -> TLS required -> ¿really?• Extensiones XMPP -> Contactos -> Feed emails• Añadir un contacto -> ¿añade a contactos? 24
  21. 21. Google Talk (III)• Aplicación GtalkGateway -> Demo• Actualización… ¿vulnerable?• Muchos más servicios 25
  22. 22. 27
  23. 23. ¿Preguntas? 28

×