Menú

Nuevo Keylogger para Android basado en el movimiento de teléfono

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,etc., 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.
Para mejorar la exactitud de la inferencia, nosotros utilizamos un observación:  supongamos que la contraseña de bloqueo de la pantalla no cambia y el usuario siempre entra con las contraseñas correctamente, el usuario siempre entra la misma contraseña en cada entrada.Con esta observación, TapLogger divide las contraseñas en una secuencia de entradas individuales. Cada entrada corresponde a el caso de la pulsación en una posición fija de esta secuencia. TapLogger construye una tabla de distribución de inferencia para cada entrada en este secuencia. Por ejemplo, en la siguiente figura  el usuario entra en el mismas contraseñas “5, 7, 6, 0” durante 32 entradas :

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.