Las piezas de repuesto de smartphones en el punto de mira de la seguridad

miércoles, 30 de agosto de 2017

Imagen 1. Prototipo de pantalla táctil “maliciosa” utilizado en las pruebas. Fuente.

Cambiar un componente de un smartphone es algo muy habitual hoy en día. Un ejemplo serían los lectores NFC, sensores de orientación y sobre todo pantallas táctiles que están fabricados por terceras empresas e integran el código fuente de los controladores originales, para que puedan ser reconocidos por el sistema operativo como componentes válidos o auténticos.

Investigadores de la Universidad de Negev han publicado este paper donde señalan que manipular estos componentes (más concretamente realizan la prueba con pantallas táctiles) y de esta forma, podrían conseguir realizar ataques tomando el control total del dispositivo. Es muy frecuente que una pantalla táctil de un dispositivo se rompa y sea reemplazada por un repuesto que podría estar manipulado previamente y por lo tanto tener un origen un tanto dudoso debido a la gran cantidad de servicios (legales e ilegales) que se ofrecen a repararlos. Los fabricantes de estos componentes de repuesto, como ya hemos comentado antes, obtienen el código fuente directamente de los vendedores originales y este código se integra y se modifica en el sistema con algunos cambios mínimos. Por otro lado, la arquitectura actual permite que el dispositivo (en este caso pantalla táctil) se comunique con la CPU del smartphone (a través del driver OEM integrado en el mismo) directamente a través de un bus I2C, como se puede apreciar en el siguiente gráfico:

Imagen 2. Esquema de comunicación entre la placa base del dispositivo y la pantalla táctil. Fuente

Debido a esta arquitectura de drivers, sería posible ejecutar código directamente pasando por encima de cualquier cifrado o protección que tuviera el sistema operativo, ya que las instrucciones son enviadas directamente a la CPU y ejecutadas sin ningún tipo de control permitiendo ejecutar un ataque del tipo fileless. Por lo tanto, no dejará ninguna huella, no podrá ser detectado por ningún antivirus e incluso puede sobrevivir a futuras actualizaciones de firmware del dispositivo.

Para la prueba de concepto, los investigadores utilizaron dos pantallas táctiles que incluían el controlador Synaptics S3718 y Atmel T641 (los más comunes en este tipo de dispositivos). El primer paso fue separar la pantalla táctil de la placa controladora (donde estaban los antes mencionados controladores) para acceder a los conectores. A su vez, en una placa veroboard prepararon una plataforma basada en Arduino utilizando un microcontrolador  ATmega328, el cual sería el encargado del ataque chip-in-the-middle. Este microcontrolador será el encargado de monitorizar todos los eventos realizados sobre la pantalla táctil que llamaron touch logging y también para generar estos eventos exactamente igual que un usuario real tocando directamente sobre la pantalla (pero a más velocidad, en concreto será capaz de hacer 60 toques en la pantalla por segundo) designado como touch injection

Vídeo 1: instalación del software malicioso usando touch injection

El software instalado en este microcontrolador para realizar el ataque se centra en mapear el teclado virtual que aparece en la pantalla de estos dispositivos, detectarlos y en base a patrones programados (trigger events) ejecutar las tareas asignadas para el ataque (como, por ejemplo, detectar que se ha escrito una URL concreta y modificarla por otra distinta).

Además, utilizando las técnicas que ya hemos mencionado, combinadas con otro ataque, esta vez enfocado a explotar vulnerabilidades en el dispositivo controlador del sistema operativo del dispositivo atacado, lograron la ejecución de código arbitrario dentro del contexto del kernel. Como parte del proceso de arranque del dispositivo, el gestor del controlador realiza varias peticiones de funcionalidad directamente al controlador de la pantalla táctil. En ese proceso de arranque se podría provocar un ataque usando un heap overflow incrementando el número de interrupciones disponibles provocando el error.

Video 2. Ejemplo del uso de touch injection tomando una foto y enviándola por email

Finalmente, el ataque realizado comprometía completamente el Smartphone, utilizando una combinación de eventos de la pantalla táctil más los exploits en los drivers. Utilizando el ataque touch injection antes mencionado, se descargaba desde Google Play una aplicación en teoría inocente, pero una vez reiniciado el Smartphone se activaba el exploit del kernel

Una vez arrancado del smartphone, la aplicación instalada toma el control total del dispositivo. Para acabar el ataque, se fuerza un último reinicio y el teléfono aparentemente mostraría un funcionamiento normal pero realmente el control de sistema es total por parte de los atacantes. Toda la secuencia de ataque está resumida en el siguiente gráfico:

Imagen 3. Esquema de la secuencia del ataque. Fuente

Esta investigación y prueba de concepto demuestra que, más allá del ataque enfocado en una pantalla táctil de repuesto, existe una comunicación directa con algunos componentes del sistema con dichas piezas que tienen acceso directo a la CPU y al kernel del sistema operativo (acceso total). Los diseñadores de estos sistemas operativos deberían tener en cuenta esta vulnerabilidad e intentar crear alguna forma de tener más control en el canal de comunicación entre estos periféricos y la CPU.

Debido al gran mercado existente de recambio de componentes fabricados por terceras empresas para smartphones y tablets (sobre todo pantallas, ya que prácticamente un 50% de los usuarios tienen una pantalla táctil no oficial debido a una sustitución por rotura), es un detalle para tener en cuenta en un futuro muy cercano.  Aunque el ataque se ha realizado en dispositivos Android, esto no significa que técnicas similares se puedan aplicar a dispositivos con iOS de Apple o incluso más allá en otro tipo de dispositivos distintos a los smartphones.
Fran Ramírez
Investigador de ElevenPaths y escritor del libro “Microhistorias: anécdotas y curiosidades de la Informática” 





No hay comentarios:

Publicar un comentario