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".
Más información:
TapLogger
Georgia Tech Turns iPhone Into spiPhone
TouchLogger: Inferring Keystrokes On Touch
Screen From Smartphone Motion TouchLogger
Javier Rascón Mesa
No hay comentarios:
Publicar un comentario