Fallo en la criptografía e implementación Java de las tarjetas SIM permite su clonación remota

lunes, 22 de julio de 2013

Otra interesante presentación en la Black Hat de Las Vegas será la de Karsten Nohl, que demostrará cómo se puede tener total acceso a una tarjeta SIM de varios operados solamente enviando un mensaje SMS y aprovechando fallos de seguridad Java en la implementación del software de la tarjeta SIM.

Las tarjetas SIM pueden ser actualizadas por la operadora a través de SMS. Estos son mensajes cifrados e "invisibles" que interpreta la tarjeta y sirven para enviar órdenes a Java Card, que el software que suelen ejecutar las SIM. Una cadena de errores permite obtener total acceso a los dispositivos:
  • El atacante envía un SMS cifrado falsificando el número de la operadora. El teléfono lo interpreta como real e intenta descifrarlo. La falta de autenticación de remitente en los SMS es algo que ya ha traído algún que otro problema a muchos usuarios.
  • La tarjeta, como no puede descifrar el mensaje, devuelve por SMS un código de error al atacante, cifrado. Este código devuelto solo se da en un cuarto de los casos de tarjetas estudiadas. El resto ignora el mensaje falso.
  • Aunque podían usar AES, o TripleDES, este mensaje cifrado suele estarlo con DES de 56 bits. Algo que puede romper un ordenador corriente hoy en día en cuestión de pocos minutos con ayuda de tablas rainbow.
  • Con esta información, el atacante ya puede hacerse pasar totalmente por la operadora y enviar mensajes que la tarjeta interpretará como actualizaciones. El atacante envía entonces instrucciones para que la tarjeta descargue applets con funcionalidades que la Java Card interpretará. Los applets, restringidos en la máquina virtual, ya permiten bastantes acciones en la tarjeta como para que sea preocupante su ejecución.
    Fuente: http://www.oracle.com/technetwork/java/javacard/javacard1-139251.html
  • Pero obviamente no acaba aquí. También han encontrado que la implementación de la sandbox en la máquina virtual es deficiente en al menos dos grandes fabricantes de SIM, lo que permite salirse y tomar total control del software que controla la tarjeta. Esto significa, "rootkitear" la SIM en sus entrañas, independientemente del teléfono.
En resumen, gracias a esta combinación de errores (básicos y evitables), parece que lo más grave es que (dadas estas circunstancias que dependen de la operadora y el fabricante de la tarjeta) se podría clonar una tarjeta en remoto en cuestión de minutos y solo sabiendo su número, puesto que un atacante tendría capacidad para acceder a toda su información.

Sin embargo, a pesar de la gravedad del problema, no todas las tarjetas son vulnerables. Nohl (que ya ha destapado otros problemas en las tarjetas SIM en años anteriores) afirma que de 1000 tarjetas comprobadas en dos años, solo una de cada cuatro es vulnerable. También concluye que es poco probable que los atacantes reales estén aprovechando este fallo.


Sabremos más detalles en la Black Hat.

2 comentarios: