Un grupo de investigadores de la Universidad del Estado de Pennsylvania e IBM han desarrollado una prueba de concepto que consiste en un keylogger que obtiene sus datos a partir de los sensores de movimiento presentes en cualquier dispositivo Android.

Los sensores de movimiento son usados habitualmente en los móviles para determinar el comportamiento de la pantalla y programas según la posición y el movimiento del dispostivo físico. Consisten en acelerómetros, giroscopios y sensores de orientación. En principio, parece que esta información recopilada por el teléfono (velocidad, movimientos…) no puede llegar a ser relevante, y por eso actualmente no existe en Android ningún tipo de control de medida de seguridad sobre los datos que pueden ser obtenidos mediante estos métodos. Esto es lo que ha motivado la idea de crear un troyano basado en ellos. Además, en el caso de que este troyano fuese llevado a la práctica, los permisos requeridos a la hora de instalarse no levantarían apenas sospechas.

El troyano, que ha sido bautizado como TapLogger, debe ser entrenado previamente en dos frentes: cada dispositivo tiene su propio peso, proporciones de pantalla… variables que afectan a la forma de pulsar cada tecla y además, el troyano requiere un entrenamiento propio para cada usuario, porque existen diferencias entre la forma de pulsar de cada persona. Para acelerar el proceso de aprendizaje, el troyano simula ser un juego en el que hay que pulsar sobre diferentes imágenes para unir las parejas. La posición de los iconos a pulsar, está estratégicamente calculada para coincidir con la de las teclas del dispositivo. Para obtener unos datos más exactos, el keylogger escucha a los eventos Motion.Event.ACTION DOWN y Motion.Event.ACTION UP, que delimitarán el inicio y fin de la recogida de los datos de los
acelerómetros, que a continuación serán utilizados en el aprendizaje del algoritmo de la aplicación.

En la siguiente imagen obtenida del estudio de Zhi Xu, pueden verse los resultados inferidos tras 32 pulsaciones. Se encuentran en amarillo los botones pulsados, y, en cada botón, aparece el número de veces que el troyano ha inferido que ha sido pulsado cada uno.

Puede verse que hay ciertas teclas cuyo nivel de aciertos es menor, como es el caso del número 5, que se encuentra en una posición difícil de estudiar. Otras teclas, como la de borrado (‘del’) resultan también en bastantes falsos positivos. Debido a su poco uso, el algoritmo tiene problemas para detectar o descartar si ha sido pulsada o no. A la hora de deducir la contraseña, si de cada pulsación se toman las dos teclas con más probabilidad de haber sido pulsadas, y dependiendo de la longitud de la clave, se pueden llegar a obtener niveles de acierto del 60% al 92,5%. Estos valores aumentan hasta el 80%-100% si se toman las tres teclas con más probabilidad de haber sido pulsadas.

No es la primera vez que se diseña un troyano de estas características. En 2011 apareció TouchLogger, una aplicación para Android que tenía en cuenta un menor número de variables y no incluía entrenamiento, entre otras muchas diferencias. Más tarde, el mismo año, aparecería otra para iPhone, que hacía uso del acelerómetro y el giróscopo para averiguar qué palabras habían sido pulsadas en un teclado cercano teniendo en cuenta,a grandes rasgos, si se había pulsado una tecla “de la izquierda” del teclado o “de la derecha”.

Fuente: Hispasec
Autor: Javier Rascón Mesa
Reproducción realizada con autorización de la fuente

Image: Stuart Miles / FreeDigitalPhotos.net