Un nuevo programa para su pelotón, le guste o no


Resumen ejecutivo

El McAfee Equipo de investigación avanzada de amenazas (ATR) se compromete a descubrir problemas de seguridad tanto en software como en hardware para ayudar a los desarrolladores a ofrecer productos más seguros para empresas y consumidores. Como investigadores de seguridad, sAlgo que siempre intentamos establecer antes de mirar un objetivo es cuál es nuestro alcance debería ser. Más específicamente, a menudo asumimos tecnologías bien examinadas como la red apilars o la capa del sistema operativos son sólidos y, en cambio, centramos nuestra atención en las capas de la aplicación o el software es decir específico a a objetivo. Si ese enfoque es integral a veces no importa; y es lo que decidimos hacer para este proyecto también, pasando por alto el SO Android sí mismo y con un centrarse en el pelotón código e implementaciones. Durante nuestra investigación proceso, nosotros descubierto una falla en el proceso de arranque verificado de Android (AVB), que inicialmente estaba fuera de alcance, que dejó al Peloton vulnerable.

Para aquellos que no están familiarizados con Peloton, es una marca que ha combinado equipos de ejercicio de alta gama con tecnología de vanguardia. Sus productos están equipados con una tableta grande que interactúa con los componentes de la máquina de ejercicios, además de proporcionar una forma de asistir a clases de entrenamiento virtual a través de Internet. "Bajo el capó" de este exterior brillante, sin embargo, es una tableta Android estándar, y este enfoque de alta tecnología para el equipo de ejercicio no ha pasado desapercibido. Dejando a un lado los contratiempos de marketing viral, Peloton ha llamado la atención recientemente con respecto a las preocupaciones sobre la privacidad y la seguridad de sus productos. Entonces, decidimos echar un vistazo por nosotros mismos y compramos una Pelton Bike +.

Intentando hacer una copia de seguridad

Una de las primeras cosas que solemos intentar hacer al iniciar un nuevo proyecto, especialmente cuando dichos proyectos involucran grandes gastos como el Peloton, es tratar de encontrar una manera de tener un respaldo o a volcado del sistema que podría usarse si alguna vez se necesita una recuperación. No todas de nuestro técnicas de investigación mantener el dispositivo en un estado prístino (seríamos malos hackers si lo hicieran), y tener la capacidad de restaurar el dispositivo a su ajuste de fábricas es una red de seguridad que intentamos implementar on nuestro objetivos.

Porque estamos trabajando con un dispositivo Android normal con solo las personalizaciones de Peloton ejecutándose en la capa de aplicación, muchos de los procesos usó volver arriba un teléfono Android también trabajaría con la pelotonorte. Es común en el Escena de ROM personalizada de Android usar un Recuperacion personalizada imagen que te permiteser a realizar volcados de memoria flash completos de cada dividir y provides un método para restaurarlos más tarde. En tales comunidades, a menudo además va sin decir eso el dispositivo debe primero ser desbloqueado para realizar cualquiera de estos pasos. Si bien el sistema operativo Android permite a los usuarios actualizar estas particiones críticas, existen restricciones que típicamente evitar que un atacante obtenga acceso al sistema en ejecución "actualmente". Si un atacante pudo tener en sus manos un dispositivo Android con el objetivo de instalando un rootkit, tendrían que pasar por algunos obstáculos. El primer paso que necesitaría un atacante para llevar es a permitir "Fabricante Original de Equipo (OEM) Desbloqueo ”, que es una configuración del modo de usuario dentro del menú de“ opciones de desarrollador ”. Incluso con acceso físico al cargador de arranque, un atacante no podría "desbloquear" el dispositivo Android a menos que se marque esta configuración. Esta opción suele estar protegida por la contraseña del usuario, ALFILER, o bloqueo biométrico del teléfono, evitando que un atacante acceda a él fácilmente. La segunda medida de seguridad implementada es que, incluso con la configuración "Desbloqueo OEM" activada, se emiten comandos al gestor de arranque para realizar el desbloqueo. primero causas todos los datos en la Dispositivo Android, incluidas aplicaciones, archivos, contraseñas, etc., que se borrarán. De esta manera, incluso si un atacante obtuvo acceso a la Dispositivo Android de una víctima desprevenida, no podrían instalar un rootkit o modificar el kernel existente sin eliminar todos los datos, cual ambos evitan que los datos personales caigan en la mano del atacantes y hace evidente que el dispositivo ha sido manipulado.

Para este esfuerzo de investigación, wmi resistió el impulso para desbloquear el Pelotón, como allí están formas para aplicaciones para consultar el estado de desbloqueo de un dispositivo dentro de Android, y nosotros quería asegurarnos de que las vulnerabilidades que encontráramos no fueran el resultado de que el dispositivo se comportara de manera diferente debido a que estaba desbloqueado. Thesas discrepancias que surgen de nuestra investigación son por lo general identificado por tener dos objetivo dispositivos: uno para servir como el control y el otro para servir como el dispositivo de prueba. Desafortunadamente, solo teníamos un pelotón jugar con. Otro problema Washingtones eso el hardware Peloton no es muy común y los desarrolladores del citado imágenes de recuperación personalizadas, como Proyecto de recuperación de Team Win (TWRP), no cree imágenes para todos los dispositivos, solo la mayoría los comunes. Entonces, El método fácil de realizar una copia de seguridad no solo requeriría desbloquear el dispositivo, sino también intentar crear uno propio. personalizado recuperación imagen.

Esto nos dejó como en un cruce de caminoss. WPodríamos desbloquear el gestor de arranque y rootear el dispositivo, otorgándonos acceso al destello memoria bloquear dispositivos (crudo interfaces a las particiones flash) internamente, que nos permitiría para crear y restaurar copias de seguridad según sea necesario. Sin emabargo, como se mencionó anteriormente, esto dejaría la bicicleta en un estado reconocible de "alteración". Alternativamente, podríamos intentar capturar uno de la Bike's Por el aire (OTA) actualizaciones para usar como a respaldo, pero nosotros todavía necesitaría "desbloquear" el dispositivo para en realidad parpadea la OTA imagen a mano. Ambas cosas las opciones eran menos que ideales, así que mantuvimos buscando otras soluciones.

Arranque verificado de Android PAGproceso

Así como Secure Boot proporciona un mecanismo de seguridad para iniciar correctamente el sistema operativo en PC con Windows, Android ha implementado medidas para controlar el proceso de inicio, llamadas Android Verified Boot (AVB). Según la documentación de Android, AVB "requiere la verificación criptográfica de todo el código ejecutable y los datos que forman parte de la versión de Android que se inicia antes de su uso. Esto incluye el kernel (cargado desde la partición de arranque), el árbol de dispositivos (cargado desde la dtbo partición), partición del sistema, partición del proveedor, etc."

La Peloton Bike + se envía con la configuración predeterminada de "Verity Mode" establecida en verdadero, así como "Dispositivo desbloqueado" y "Dispositivo crítico desbloqueado" establecidos en falso, cual es destinado a prevenir la carga de imágenes de arranque modificadas y proporcionar una forma de determinar si el dispositivo ha sido manipulado. Esto información estaba verificado ejecutando fastboot oem device-info en el pelotón, como se demuestra en Figura 1.

Figura 1: Información del dispositivo OEM que muestra el modo de verdad y el estado desbloqueado.

Para aclarar, a El proceso de arranque de Android simplificado puede ser visualizado como sigue:


Figura 2: Proceso de arranque de Android simplificado

Si código modificado es encontrado en cualquiera de los etapas en Figura 2, el proceso de arranque debe abortar o, si el dispositivo es desbloqueado, advertir al usuario que las imágenes no están verificadas y dar la opción al usuario de abortar el arranque.

Dado que nosotros definido nuestro alcance de este proyecto para no incluir el proceso de arranque de Android como parte de nuestra investigación y verificando que Peloton tiene intentó para usar la seguridad medidas proporcionado por Android, nosotros de nuevo nos encontramos debatiendo si una copia de seguridad fuera posible.

En más nuevo Androide lanzamientos, incluido el Peloton, la método de actualización usa Android Actualizaciones continuas del sistema (A / B). Este método de actualización no se necesita máss la partición de "recuperación", forzando usuarios que deseen utilizar una recuperación personalizada para utilizar el fastboot boot mando wque descargará y arrancará el imagen. Esta es una bota temporal que no "flash "o alterar cualquiera de las particiones flash del dispositivo y volverá a la anterior imagen de arranque al reiniciar. Desde esta opción permite que se modifique el código ejecutado, solo está disponible cuando el dispositivo está en un estado desbloqueado y se equivocará con un mensaje declarando "Desbloquee el dispositivo para habilitar este comando," If aintentado en un dispositivo bloqueado.

Tsu es una buena implementación de seguridad porque si esto el mando fue siempre permitido, sería muy similar al proceso de arranque desde un USB en vivo en su PC, waquí yTu puedes iniciar sesión como usuario root y tener control total sobre el subyacente sistema y componentes.

Arranque METROodiado Coda

Aquí es donde nuestra suerte o tal vez ingenuidad trabajó para nuestro ventaja. Conducido por nuestra renuencia a desbloquear el dispositivo y nuestro deseo de hacer una copia de seguridad, nosotros intentó arrancar una imagen de recuperación TWRP genérica sólo para ver que pasaba. La imagen terminó dejándonos en una pantalla negra, y desde cada uno La imagen de recuperación debe contener un pequeño núcleo con los controladores correctos para la pantalla, digitalizador táctil, y otro dispositivohardware específico, esto era ser – estar esperado. Que Wno lo hicimos suponer, sin emabargo, Fue por es a pasar el fastboot boot mando. Si bien no obtuvimos una recuperación personalizada en ejecución, lo hizo cuéntanos uno cosa; la el sistema no verificaba que el dispositivo estaba desbloqueado antes de intentar iniciar una imagen personalizada. Normalmente este comando sería denegado en un dispositivo "bloqueado" y se hubiera producido un error sobre el fastboot mando, Como se mencionó previamente.

También es importante señalar que a pesar de teniendo botaed una imagen modificada, el fusible interno decir ahD no ha sido quemado. Estos fusibles generalmente se queman durante el proceso de desbloqueo del OEM para identificar si un dispositivo ha permitido que se instale una "raíz de confianza" diferente. La quema de un fusible de este tipo es una operación permanente y un fusible quemado a menudo indica que el dispositivo ha sido manipulado. Como se muestra en figura 3, el fusible "Arranque seguro" Washingtons todavía presente, y el dispositivo Washingtons informar de un cargador de arranque bloqueado.

Figura 3: Arranque seguro habilitado con protección con fusibles

Adquirir una OTA Imago

Esto descubrimiento estaba inesperado y nosotros sentí que nosotros tenido tropecé con un defecto que nos dio la capacidad de finalmente tomar una copia de seguridad del dispositivo y dejar el Peloton en un estado "sin manipular". Kahora que un la imagen personalizada se puede iniciar incluso con un cargador de arranque "bloqueado", nosotros comenzó a buscar formas de recopilar una imagen de arranque, que contendría los controladores de kernel correctos para facilitar un éxito bota. Si podríamos reconstruir tél URL de actualización de OTA y simplemente descargue un paquete de actualización directamente desde Peloton, eso haría probable contener una imagen de arranque que podríamos modificar. Tener la capacidad de modificar una imagen de arranque. haría danos raíz y acceso a la cuadraed dispositivos.

Incluso con solo Depuración de ADB habilitado pudimos sacar el Pelotónaplicaciones específicas del dispositivo. Enumeramos todas el pelotón APKs y buscó el los que podrían ayudarnos a seguir el camino de las OTA, se muestra en la Figura 4.

Figura 4: Listado de aplicaciones específicas de Peloton y Destacando el relacionado con las actualizaciones OTA.

Encontrar el nombre OTAServicio prometedor, tiramos hacia abajo la APK y comenzó a realizar ingeniería inversa utilizando JADX. Después de un poco de excavación, descubrí cómo la aplicación estaba construyendo la descarga Cadena de URL para actualizaciones OTA, que luego pasaría a beginDownload(), como se vio en Figura 5.

Figura 5: La ruta de la imagen OTA se está construyendo como "clave"

También notamos bastantes Aregistro ndroid llamadas que podrían ayudarnos, como el que está justo antes de la llamada a beginDownload(), entonces nosotros nosotrosed Android construidoen logcat comando y grepped La salida para "OTA" como visto en Figura 6. Haciéndolo, pudimos encontrar qué bucket de S3 se utilizó para las actualizaciones de OTA y incluso un archivo de manifiesto noble OTAConfig.json.

Figura 6: Registros de OTA relevantes en rojo

Combinando la información obtenida de OTAService.apk y los troncos, Somos capaces para reconstruir el camino completo a las imágenes OTA archivo de manifiesto y nombres para cada archivo zip OTA, como se muestra en Figura 7.

Figura 7: Contenido de OTAConfig.json

Nuestro siguiente paso fue para extraer el contenido de la actualización OTA a obtener a válido boot.img archivo que contendría todas el kernel específico controladores para el hardware Peloton. Dado que el Peloton usa Android"s Particiones A / B, que facilitan actualizaciones sin problemas, los paquetes de actualización fueron almacenado en un "payload.bin" formato. Utilizando la Dumper de carga útil de Android herramienta, pudimos extraer todas las imágenes contenido en el archivo bin.

Modificar el arranque Imago

Una vez el boot.img estaba extraído, necesitábamos una forma de modificar el kernel inicial para permitirnos obtener acceso de root en el dispositivo. Aunque taquí hay un variedad de Maneras de realizar esto, decidimos mantener las cosas simples y solo usa el Magisk instalador para parchear el boot.img file para incluir el "su”Binario. Con el boot.img parcheado pudimos usar el fastboot bota Comando de nuevo pero esta vez pasando es nuestro parcheado boot.img expediente. Desde el arranque verificado proceso en el pelotón fallared para identificar la imagen de arranque modificada como manipulada, el arranque del sistema operativoed normalmente con el parcheado boot.img expediente. Después de este proceso estaba completa, la Peloton Bike + estaba indistinguible de su Estado "normal" en visual inspección y el proceso no dejó artefactos que harían avisar al usuario que el Pelton haD ha sido comprometido. Pero las apariencias pueden engañar, y en realidad the sistema operativo Android había sido ahora arraigado, permitiendo nosotros a usar la "su"Comando para convertirse en root y llevar a cabo comportamiento con UID = 0, como se vio en Figura 8.

Figura 8: Arranque modificado boot.img y ejecutando quién soy como Root

Impacto Scenarios

Como acabamos de demostrar, tLa capacidad de eludir el proceso de arranque verificado de Android puede hacer que el sistema operativo Android sea comprometido por un atacante. con acceso físico. En el peor de los casos para un vector de ataque de este tipo, podría agente malintencionado que arranca el Peloton con un imagen para obtener privilegios elevados y luego aprovechar esos privilegios para establecer un caparazón inverso, otorgando al atacante sin trabas acceso raíz en la bicicleta de forma remota. Dado que el atacante nunca tiene que desbloquear el dispositivo para iniciar una imagen modificada, no quedaría rastro de ningún acceso que haya logrado en el dispositivo. Este tipo de ataque podría ser entregado efectivamente vía el proceso de la cadena de suministro. A malicioso actor podría manipular el producto en cualquier punto desde la construcción hasta el almacén y la entrega, instalando una puerta trasera en la tableta Android sin ninguna forma el final usuario podría saber. Otro El escenario podría ser que un atacante pudiera simplificary camine hasta uno de estos dispositivos que está instalado en un gimnasio o sala de fitness y realizar el mismo ataque, obtener acceso de root en estos dispositivos para su uso posterior. La Pelobuddy mapa interactivo en 9 a continuación podría ayudar a un atacante a encontrar bicicletas públicas para atacar.

Figura 9: pelobuddy.com's mapa interactivo para ayudar a localizar Peloton público ejercicio equipo.

Una vez que un atacante tiene root, puede hacer que su presencia sea permanente modificando el sistema operativo como un rootkit, eliminando cualquier necesidad de que el atacante repita este paso. Otro riesgo es que un atacante podría modificar el sistema para ponerse en una posición intermedia y rastrear todo el tráfico de la red, incluso el tráfico cifrado SSL., usando una técnica llamada Desanclado de SSL, que requiere privilegios de root para conectar llamadas a la funcionalidad de cifrado interno. Interceptar y descifrar tráfico de red de esta manera podría llevar a los usuarios" que los datos personales se vean comprometidos. Finalmente, la Peloton Bike + también tiene una cámara y un micrófono instalado. Tener acceso remoto con permisos de root en la tableta Android permitiría a un atacante monitorear estos dispositivos y es mostrado en el video de impacto a continuación.

(incrustar) https://www.youtube.com/watch?v=RLjXfvb0ADw (/ incrustar)

Divulgar Cronología y parche

GRAMOhe la simplicidad y criticidad de la falla, decidimos revelar a Peloton incluso mientras continuamos auditando el dispositivo en busca de vulnerabilidades remotas. Enviamos la divulgación de nuestro proveedor con todos los detalles el 2 de marzo de 2021. – poco después, Peloton confirmó el problema y después lanzó una solución para eso en versión de software “PTX14A-290”. La imagen parcheada ya no permite que el comando "boot" funcione en un usuario construir, mitigando esta vulnerabilidad por completo. La vulnerabilidad de Peloton revelaure el proceso fue liso, y el equipo estaba receptivo y sensible con todas las comunicaciones. Otras conversaciones con Peloton confirmaron que esta vulnerabilidad también está presente en el equipo de ejercicio Peloton Tread; sin embargo, el alcance de nuestra investigación se limitó a Bike +.

El jefe de seguridad de la información global de Peloton, Adrian Stone, compartió lo siguiente: “esta vulnerabilidad informada por McAfee requeriría acceso físico directo a una Peloton Bike + o Tread. Al igual que con cualquier dispositivo conectado en el hogar, si un atacante puede obtener acceso físico a él, los controles físicos y las protecciones adicionales se vuelven cada vez más importantes. Para mantener la seguridad de nuestros miembros, actuamos rápidamente y en coordinación con McAfee. Impulsamos una actualización obligatoria a principios de junio y todos los dispositivos con la actualización instalada están protegidos contra este problema ".

Seguimos investiga la Peloton Bike +, así que asegúrate de mantenerse actualizado en ATR de McAfee blogs por cualquier future descubrimientos.





Enlace a la noticia original