viernes, 28 de septiembre de 2012

Vulnerabilidad de USSD en Android neutraliza la SIM y resetea teléfonos de algunas marcas

Ha salido a la luz la noticia de un error en Android que permite inutilizar totalmente la tarjeta SIM de un teléfono móvil, e incluso dependiendo de la marca, permite que el móvil sea reseteado sólo con visitar una página web maliciosa. El ataque puede consumarse con solo visitar una página web.

El lugar de presentación del error fue la última Ekoparty realizada en Buenos Aires por Ravi Borgaonkar (@raviborgaonkar). El error es la autoejecución de los comandos USSD en los dispositivos Android.

¿Qué es un USSD?

El USSD, acrónimo de 'Unstructured Supplementary Service Data', es un servicio que permite el envío de datos a través de redes móviles GSM de forma inmediata, muy similar al SMS. La diferencia es que no necesita de ningún intermediario como ocurre con los SMS, que precisan de un SMSC (Short Message Service Center) para almacenar el SMS de un terminal origen hasta que el terminal destino está disponible.

Cuando un usuario introduce un código USSD, la respuesta del servicio suele ser casi instantánea. Se hace uso de de USSD, por ejemplo, para realizar una consulta de saldo o conocer el IMEI del teléfono.

¿Cuál es el error?

El error se da por un fallo en la programación de Android, específicamente en los 'intents', que ejecutan automáticamente los tag que contienen USSDs sin la necesidad de que este sea validado por parte del usuario.

Ravi Borgaonkar se basa en el tag 'tel', un intent para notificar la acción de que se va a utilizar la llamada telefónica, perfectamente válido y definido en el W3C que da la capacidad de marcar números de teléfono, (no solamente a los teléfonos Android, sino a todas las plataformas disponibles, incluso a las más antiguas si disponen de un navegador web).

¿Cómo puede afectar este error al teléfono?

El error, tal y como explicó Ravi, se puede utilizar para enviar 10 veces el código PUK erróneo, y esto (documentado en el RFC de telefonía), deshabilitaría inmediatamente una tarjeta SIM. Dejaría a la víctima sin teléfono hasta que el operador facilitara otra tarjeta válida.

¿Como se puede aprovechar la vulnerabilidad?

El error puede ser aprovechado de forma remota simplemente accediendo a una página web. Se hace especialmente fácil a través de códigos QR, una URL acortada por un acortador de direcciones o simplemente a través de la ingeniería social. Los USSD pueden ser también introducidos a través de tecnología NFC (Near Field Communications).

¿Por qué afecta de forma especial a Samsung?

Además del ataque anteriormente descrito, Samsung es vulnerable a otro ataque adicional que permite que un dispositivo sea reseteado volviendo a sus valores de fábricas. Esto es debido a que Samsung dispone de un USSD 'especial' no documentado oficialmente que permite a devolver los parámetros del teléfono a los valores de fábrica. Se han usado a veces en algunos modelos para liberar los teléfonos de esta marca. Otras marcas podrían verse afectadas como HTC o Sony.

En concreto, el código para los Galaxy es el *2767*3855# y la vulnerabilidad puede ser explotable de forma directa con una simple visita a una página web que contenga el código de reseteo en la etiqueta 'tel', quedando de una forma similar a esta.

<iframe src="tel:*2767*3855%23" width="320" height="240"></iframe>

Para saber si se es vulnerable sin riesgos, se puede realizar la prueba con el código USSD universal para conocer el IMEI:

<iframe src="tel:*%2306%23"></iframe>

Para mitigar el error, Collin Mulliner ha desarrollado una pequeña aplicaciónpara Android llamada 'TelStop' que permite que estos USSD deban ser aceptados por parte del usuario antes de ser ejecutados.

El vídeo demostración de Ravi Borgaonkar:

Más información:

Some Android phones can be reset to factory default by clicking on links

TelStop de Collin Mulliner

Resetear un teléfono Samsung con solo visitar un enlace


Jose Ignacio Palacios
jipalacios@hispasec.com






5 comentarios:

  1. Muchas gracias por la referencia jose, esperemos que la gente se entere antes que sea demasiado tarde.

    ResponderEliminar
  2. Más bien sería, que la gente recapacite y no compren móviles con S.O. vulnerables a cualquier malware.

    ResponderEliminar
    Respuestas
    1. Como por ejemplo? Dime que S.O. no es vulnerable a Malware.

      Te dejo unos Links por si te valen:

      http://www.developer.nokia.com/Community/Wiki/Mobile_Malware

      http://support.apple.com/kb/ht4650

      http://www.v3.co.uk/v3-uk/news/2200614/blackberry-id-malware-targeting-rim-corporate-customers

      etc...

      Asi que, Apple, Nokia, Microsoft, RIM han sido afectados por Malware a que sistemas operativos te refieres?

      Eliminar
  3. Por cierto, parece que esta arreglado:

    http://gadgetian.com/41512/dirty-ussd-vulnerability-samsung-galaxy-s-iii-patched/

    ResponderEliminar
  4. Pues está bien saberlo...pero creo que esto deberia arreglarse con un parche no bajando una app...

    ResponderEliminar