Una de las cosas que más me llaman la atención son las técnicas de fingerprinting del dispositivo. Esos pequeños detalles que pueden ser utilizados para generar la huella digital de una conexión a Internet y poder después seguir las actividades de esa huella digital por toda la red y saber dónde y qué ha estado haciendo esa persona en contra de cualquier medida de privacidad que pudiera tenerse.
Normalmente esas huellas digitales se suelen generar a través del navegador de Internet, por lo que suelen conocer como WebBrowsing Fingerprinting. Sin embargo, muchas de las conexiones que se realizan contra servicios en Internet ya no se hacen mediante el navegador y por el contrario se hacen desde apps instaladas en el terminal smartphone del cliente, por lo que la mayoría de las técnicas de WebBrwosing Fingerprinting dejan de tener utilidad y hay que pensar en nuevas formas de hacer esa verificación de la huella a través de las apps y el smartphone.
La forma más evidente es usar los identificadores únicos de los terminales, tales como el UDID en los dispositivos Apple, el IMEI, o los ICC_ID. Pero como es conocido que pedir esos datos atentaría contra la privacidad de los usuarios del dispositivo, los sistemas operativos iOS de Apple o Android de Google tienen bloqueado por permisos el acceso a esos datos. En Apple, incluso, si se descubre que una app intenta acceder al UDID automáticamente se prohibe su publicación y se retira de la App Store, ya que esos datos - que alguna vez han sido filtrados - pueden ser utilizados para crear un provisioning profile con un troyano dirigido a un terminal concreto.
Pero como siempre, el estudio y el conocimiento avanza, e investigadores de las Universidades de Illionis, South Carolina y Zhejiang han publicado un curioso trabajo, titulado: "AccelPrint: Imperfections of Accelerometers Make Smartphones Trackable" que busca hacer la huella digital de un smartphone basándose en las imperfecciones que tienen los acelerómetros de los dispositivos.
Figura 1: AccelPrint, o como seguir smartphones por sus acelerómetros |
Los acelerómetros ya han sido protagonistas indiscutibles en otros trabajos de seguridad, como side channel para hacer de keylogger analizando las mediciones que se obtienen por medio de las vibraciones o usando el acelerómetro para robar el PIN o el patrón de acceso de un smartphone midiendo los movimientos en los ejes y usando machine learning. Si te gustan estos temas, tampoco debe faltar la lectura del trabajo de Pin Skimmer que analiza los movimientos tomando fotografías. Incluso la propia Apple ha patentado utilizar el acelerómetro para detectar robos, y el CEO de Amazon lo patentó para detectar caídas y sacar un airbag.
Figura 2: El airbag para teléfonos móviles patentado |
La idea de este trabajo en concreto es que, aunque los sistemas puedan bloquear el acceso al UDID, IMEI o ICC_ID, las apps no necesitan pedir permiso especial para acceder a los valores del acelerómetro y se pueden hacer mediciones de situaciones conocidas para conocer la huella digital, lo que permitiría a cualquier app saber cuándo un usuario se está conectando desde un dispositivo distinto, lo que podría significar simplemente un cambio de terminal o el robo de la credencial por parte de un atacante.
Figura 3: Acceder al IMEI, UDID o ICC_ID está prohibido, pero las apps acceden al acelerómetro |
Los valores que se obtienen de un acelerómetro no solo tienen que ver con el movimiento que se le dé, sino que afectan también valores como la carga del sistema operativo, el montaje del terminal, la carcasa protectora que se le pueda poner al dispositivo y, como no, las pequeñas imperfecciones que de fábrica puedan traer los chips. Saber el chip que hay instalado en algún dispositivo a veces es evidente, pues como paso en iPhone, un cambio de acelerómetro hizo que fallaran muchas apps instaladas en el sistema.
Para poder comprobar si era posible generar esa huella digital, los investigadores hicieron primero unas pruebas con los modelos de acelerómetros más comunes integrados en terminales iPhone, Samsung, etcétera, en un entorno sintético controlado con una placa Arduino, y después con un sistema de movimiento controlado también por un Arduino medir los valores que entregan los distintos acelerómetros para saber si es posible medir o no variaciones en ellos y hacer una huella digital.
Figura 4: A la izquierda la medición sintética a la derecha la medición en real |
Al final, las mediciones recibidas de seis acelerómetros, tratadas con un sistema de clasificación de datos para generar conjuntos descritos por un centro y un radio de dispersión que dejan a las claras cómo es posible reconocer cada uno de ellos en las diferentes mediciones.
Figura 5: Caracterización de los conjuntos de datos por diferentes acelerómetros |
La exactitud de las huellas digitales de los acelerómetros tiene puntos que solventar para poder automatizar un proceso de creación, pero si el cambio entre dispositivos muy diferentes en tamaño, carcasa, cargas y modelos, podría permitir saber si es el mismo en el que estaba antes el usuario de la app o no.
Por supuesto, a medida que mejoren las pruebas y se complementen el número de características que se midan a nivel de dispositivo, se acabará consiguiendo un conjunto de características similares al WebBrwosing Fingerprinting, para tener un Device Fingerprinting basado en apps.
Por supuesto, a medida que mejoren las pruebas y se complementen el número de características que se midan a nivel de dispositivo, se acabará consiguiendo un conjunto de características similares al WebBrwosing Fingerprinting, para tener un Device Fingerprinting basado en apps.
Saludos Malignos!
Muy bueno Chema. La verdad hubiese apostado a que hoy hablarías sobre el derecho al olvido...
ResponderEliminar