jueves, junio 02, 2011

Suplantación de aplicaciones en Android <=2.3.3

A raíz de algunos estudios previos en los que se monitorizaban los datos transmitidos por dispositivos Android, un grupo de investigadores de la Universidad de Ulm ha estudiado la viabilidad de realizar ataques de suplantación en determinados servicios de Google utilizados por dispositivos Android.

El estudio se ha centrado en el protocolo ClientLogin de Google, orientado a facilitar el acceso de las aplicaciones a los servicios de google de una cuenta. Este acceso se basa en una identificación inicial con las credenciales de la cuenta de google, y la generación de un token de acceso temporal a dichos servicios.


Figura 1: Arquitectura ClientLogin

Algunas de las ventajas de este sistema de tokens son el rendimiento y la seguridad, como indica la página de google:


Figura 2: Ventajas descritas por Google

Es cierto que el sistema es en general más seguro, pero dicha seguridad puede verse afectada por dos factores:

• El tiempo de validez de dicho token: cuanto mayor sea menos veces me tendré que volver a autenticar con mis credenciales, pero menos seguro será puesto que este token no va asociado a ninguna sesión o dispositivo en concreto (si un atacante se hace con él, podrá suplantarnos). En nuestro caso, la validez del token puede ser de hasta dos semanas:


Figura 3: Explicación de token en documentación

• La forma de transmitir nuestro token: si se envía cifrado, se reducirán las posibilidades de que sea interceptado por un atacante. En nuestro caso, si bien la autenticación de las credenciales se hace de forma cifrada, Android envía los tokens en claro en cada petición. Esto, al igual que ocurrió con las cookies de Facebook, se convierte en un grave problema en redes inseguras; si consideramos posibles escenarios como Hot-Spots que están a la orden del día, y tenemos en cuenta que muchos de los dispositivos Android tienen configurada una sincronización automática periódica, facilita enormemente el ataque.

Ejemplos de aplicaciones nativas que funcionan de esta forma son el calendario, los contactos, y los álbumes de Picasa, de forma que un atacante podría ganar acceso de lectura y escritura a estos tres componentes de nuestra cuenta.


Figura 4: Captura de aplicaciones Android accediendo a aplicaciones


Figura 5: Captura de tokens

Google recomienda en su documentación revocar estos tokens cuando la aplicación haya terminado, pero en la práctica no parece ser así ya que las pruebas realizadas en el estudio indican una validez del token de 14 días para el calendario. Según se comenta también en dicho artículo, Google ha corregido esto en Android 2.3.4/3.0 realizando el envío del token en https (aunque sólo para los contactos y el calendario, en Picasa se sigue enviando en claro). No obstante, los dispositivos Android del mercado con versiones inferiores a 2.3.4/3.0 representan el 99,7% del total.

Android, además, intenta conectarse por defecto a cualquier red inalámbrica que recuerde (en base a su SSID, no su MAC) y si la sincronización automática está activada, intentará la sincronización de servicios. Un atacante podría simplemente usar nombres de puntos de acceso comunes para intentar capturar tokens a mayor escala.

Por último, las implicaciones de esta amenaza no pasan sólo por la pérdida de privacidad de nuestros datos, sino porque el atacante pueda realizar modificaciones en los mismos, como cambiar alguna dirección de correo con la esperanza de capturar información sensible.

Autor: Kabracity

miércoles, junio 01, 2011

Tuenti Security Issues (I de V)

************************************************************************************************
- Tuenti Security Issues (I de V)
- Tuenti Security Issues (II de V)
- Tuenti Security Issues (III de V)
- Tuenti Security Issues (IV de V)
- Tuenti Security Issues (V de V)
************************************************************************************************

Tuenti es una red social que tiene el honor de ser una de las startups tecnológicas españolas que más éxito están teniendo. A día de hoy cuenta con una cuota de uso entre jóvenes altísima, y es la más popular aquí en España, con diferencia, en rangos de edad de menores de 30 años – como es mi caso -.

Sin embargo, como dijo el tío Ben, todo gran poder conlleva una gran responsabilidad, por lo que debido a que son el punto de acceso principal de los jóvenes españoles, deben tener especial cuidado contra los depredadores y atacantes.

Sé de buena tinta que se toman los bugs de seguridad bastante en serio, tras la experiencia que tuvimos con un bug de XSS que permitía hacer Hijacking, aunque también tienen cosas que pueden ser mejoradas, por eso me decidí a pedir contribuciones por twitter de fallos y debilidades en el sistema de Tuenti que ellos conozcan porque ya se los hayan notificado, y que deban ser mejorados.

Me consta que muchas de estos issues están en el roadmap de Tuenti y que los tienen en el ToDo para dejar una plataforma más segura. Sin embargo, a día de hoy todavía están aquí. Vamos con la primera parte del artículo con lo que a primera vista cualquiera puede notar.

Issue 1: La página de login bajo HTTP

Una de las cosas que deben ser tenidas en cuenta es que hay que evitar los puentes HTTP-HTTP-s en las páginas donde un usuario debe introducir sus credenciales de acceso. Hay que tener en cuenta que un atacante podría realizar una ataque Man in the Middle para hacer un ataque SSLStrip, es decir, en el que se quitan todos los links HTTP-s entre la víctima y el atacante y robar las credenciales.



Figura 1: Puente http/http-s en el formulario de login

Al estar entregado el formulario bajo HTTP, la victima jamás recibiría una alerta de seguridad si hay un mitm con sslstrip. Es por eso que es necesario que las credenciales se introduzcan bajo formularios entregados con HTTP-s y que no mezcle contenido mixto HTTP y HTTP-s en la misma página.

UPDATE: Ahora la página va sobre HTTPs para mejorar esta debilidad.
UPDATE: Ahora la identificación de la cuenta permite poner Latch en Tuenti

Issue 2: La página de login bajo HTTP… quieras o no

En muchas aplicaciones web, la página de login se entrega por defecto bajo HTTP, pero los usuarios más avanzados y preocupados por la seguridad, solicitan el acceso bajo HTTP-s forzando manualmente la URL o utilizando extensiones de los navegadores que eviten las redirecciones a HTTP. Sin embargo, con Tuenti es imposible, porque si se solicita la página bajo HTTP-s siempre obliga a autenticarse bajo HTTP.



Olvidate por tanto, de utilizar extensiones para forzar el uso de HTTP-s en las conexiones con HTTPS Everywhere, Force-TLS o KB SSL Enforcer.

UPDATE: Ahora va siempre bajo HTTPs

 Issue 3: Certificado digital sin validación extendida

Los certificados digitales que compran las organizaciones pueden obtenerse con procesos automáticos o mediante la validación extendida de personas. La validación extendida ayuda a garantizar a un usuario que el certificado no ha sido obtenido mediante un proceso automático que, como demostró Moxie Marlinspike, con el bug del null byte, pueden ser susceptibles de fallar.

UPDATE: Ahora el certificado es de validación extendida

Issue 4: Certificado digital con cifrados débiles

A la hora de generar un certificado digital, se pueden elegir los algoritmos que se van a permitir en los túneles SSL. En este caso, los algoritmos que permite son algunos inseguros y deberían deshabilitarse para evitar ataques de crackeo offline de las conexiones, además de establecerse una prioridad de uso.



Figura 2: Cifrados permitidos, sin preferencia por el servidor

UPDATE: Ahora los nuevos certificados tienen subsanadas estas debilidades

Issue 5: TLS-Renegotiation gap, SSL Resumption y PCI-Compliant

Cuando se realiza el análisis de Qualys para certificados digitales, llama la atención la baja nota que se obtiene con este tipo de certificados y, especialmente, en la parte de negociación de claves. Esto es así porque han anulado la Renegociación TLS para evitar el bug de TLS-Renogation en lugar de parchearlo, está anulado, que es un workaround bastante criticado porque deja en manos del cliente definir el nivel de seguridad del servidor manualmente.



Figura 3: Calficación obtenida en el test Qualys

En segundo lugar, aparece una nota negativa porque el certificado no está hacieno uso de los IDS para reutilizar datos de sesiones exitosas, lo que haría que el rendimeinto de las conexiones fuera mucho más alto.



Figura 4: Issues en el certificado digital

Así, mirando las características en total del certificado, como se puede ver, no pasaría una auditoría PCI, aunque hay que decir que Tuenti no está obligado a pasarla.

UPDATE: Ahora los nuevos certificados tienen subsanadas estas debilidades

Estos 5 Issues no son bugs de seguridad en Tuenti, sino puntos que deben mejorarse para aplicar los principios de Mínimo Punto Exposición, Mínimo Privilegio Posible y Defensa en Profundidad, fundamentales en los procesos de Hardening de Sistemas.

Saludos Malignos!

************************************************************************************************
- Tuenti Security Issues (I de V)
- Tuenti Security Issues (II de V)
- Tuenti Security Issues (III de V)
- Tuenti Security Issues (IV de V)
- Tuenti Security Issues (V de V)
************************************************************************************************

Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares