1 puntos por GN⁺ 2024-06-30 | 1 comentarios | Compartir por WhatsApp
  • Debido a CVE-2024-27867 en el firmware de AirPods, alguien que conozca la dirección Bluetooth MAC puede conectarse al dispositivo para escuchar el micrófono o reproducir música
  • La vulnerabilidad ocurre porque en la ruta de Fast Connect, el protocolo propietario de Apple, no se verifica de forma explícita el estado de autenticación y cifrado
  • La dirección Bluetooth MAC necesaria para el ataque no es completamente privada y puede obtenerse por aire cuando los AirPods están en modo de emparejamiento o activos
  • Si los AirPods están dentro del estuche de carga cerrado, o si los AirPods Max están dentro de su Smart Case, las funciones inalámbricas se apagan y no es posible conectarse
  • Apple distribuyó actualizaciones de firmware para AirPods y algunos Beats, pero para usuarios de Android, Windows o Linux que los usan sin iOS o macOS, el proceso de actualización puede ser más engorroso

Vulnerabilidad del firmware de AirPods y alcance del impacto

  • El firmware de Apple AirPods tiene la vulnerabilidad de seguridad CVE-2024-27867
  • Alguien que conozca la dirección Bluetooth MAC puede conectarse a los AirPods y realizar las siguientes acciones
    • Escuchar el micrófono
    • Reproducir música
    • Verificar y pausar la música que se está reproduciendo desde otro dispositivo conectado
    • Ejecutar algunas acciones posibles con el protocolo AAP
    • Enviar mensajes con formato incorrecto para hacer que los AirPods fallen
  • Incluso si los AirPods ya están conectados a un teléfono, un atacante puede conectarse adicionalmente
    • Sin embargo, si el atacante activa el micrófono, la reproducción de música se detiene
  • Si los AirPods están dentro del estuche de carga cerrado, o si los AirPods Max están dentro de su Smart Case, las funciones inalámbricas se apagan y no es posible ningún tipo de conexión

Cómo se descubrió la vulnerabilidad

  • En la combinación de AirPods 3 con macOS y dispositivos Apple, varias funciones operaban con normalidad, pero al arrancar la misma laptop con Linux no se conectaban al mismo tiempo al teléfono y a la laptop
  • A partir de esta diferencia, se concluyó que se estaba usando un protocolo exclusivo de Apple que no existe en audífonos Bluetooth comunes, y se inició el análisis para reimplementar algunas funciones en Linux
  • Durante ese análisis, se descubrió la vulnerabilidad en la función Fast Connect de Apple para conectar periféricos Bluetooth

Cómo funciona Fast Connect

  • Fast Connect es un protocolo propietario de Apple y utiliza de forma creativa la función ping de la especificación Bluetooth
  • Su objetivo es reducir el tiempo de establecimiento de conexión entre dos dispositivos Apple de aproximadamente 1 segundo a aproximadamente 0.5 segundos
  • Antes de autenticarse con el dispositivo de destino, ambos dispositivos intercambian mensajes ping de L2CAP
    • Apple inserta mensajes del protocolo dentro de la carga útil del ping
    • De esta forma, verifica si ambos lados son compatibles con Fast Connect sin violar la especificación Bluetooth
  • Después, realizan 3 rondas adicionales de intercambio de mensajes para negociar lo necesario para la conexión
  • En total, solo se requieren 4 rondas de ida y vuelta, por lo que es más rápido que el procedimiento normal de Bluetooth de intercambiar descriptores SDP y configurar canales

Falta de verificación de autenticación

  • El problema está en que, en una ruta de código separada que implementa Fast Connect, faltan verificaciones importantes
  • Los AirPods no verifican si la contraparte realmente se autenticó ni si activó el cifrado
  • En iOS y macOS normales, después de los mensajes iniciales de Fast Connect se ejecutan los pasos de autenticación y activación del cifrado
  • Aunque un atacante omita estos pasos, los AirPods continúan el proceso de Fast Connect
  • Al conectarse a los AirPods por el método Bluetooth normal sin Fast Connect, la etapa de autenticación está implícitamente incluida, por lo que es posible que por eso faltara una verificación explícita en la ruta de código de Fast Connect

Condición de la dirección Bluetooth MAC

  • El atacante necesita conocer la dirección Bluetooth MAC fija de los AirPods
  • Esta dirección no es información completamente privada
    • Se anuncia por aire cuando el dispositivo Bluetooth está en modo de emparejamiento
    • También puede obtenerse fácilmente por radio cuando los AirPods están activos usando hardware como Ubertooth One

Actualizaciones y el problema para usuarios no Apple

  • Apple distribuyó en los últimos días varias actualizaciones de firmware que corrigen esta vulnerabilidad
  • Se aplican a AirPods 2, AirPods 3, AirPods Pro, AirPods Pro 2, AirPods Max y algunos audífonos Beats
  • Los usuarios deben verificar que el firmware de sus AirPods esté actualizado
  • El firmware de AirPods se actualiza automáticamente, pero solo cuando se usan junto con un iPhone o una MacBook
  • A las personas que usan AirPods sin dispositivos con iOS o macOS, como usuarios de Android, Windows o Linux, puede resultarles difícil actualizar el firmware con facilidad
  • Parece que estos usuarios pueden recibir la actualización de firmware en una Apple Store

Reporte y herramientas

  • Jiska Classen, de la University of Potsdam, ayudó con preguntas relacionadas con Bluetooth y con el proceso de divulgación
  • Herramientas de la comunidad Linux como BlueZ fueron necesarias para encontrar este problema

1 comentarios

 
GN⁺ 2024-06-30
Opiniones de Hacker News
  • Si dos dispositivos en la misma habitación pueden intercambiar miles de mensajes por segundo usando apenas una parte muy estrecha del espectro electromagnético, me pregunto por qué en Bluetooth un solo mensaje tarda cientos de milisegundos en lugar de microsegundos.
    Quisiera saber qué factores determinan la unidad de tiempo de este proceso.
    • No estoy seguro en este caso, pero normalmente es el resultado de la combinación de varias cosas: influyen qué tan seguido el dispositivo anunciante envía beacons, si hay varios canales de advertising, si los beacons y el handshake se transmiten a la velocidad más lenta del protocolo por compatibilidad hacia atrás, si se necesitan retransmisiones de la capa física por el ruido del entorno, etc.
      Al final, la estructura hace que el handshake —en el que ambos lados verifican qué funciones admiten y deciden con qué protocolo de capa física comunicarse— sea lo que consume tiempo.
  • Recuerdo que los dispositivos Beats afectados que usan el mismo chip sí se podían actualizar desde la app Beats en Android.
    • He usado AirPods Pro de 1.ª y 2.ª generación con teléfonos Android, y en Android no hay una forma adecuada de hacer actualizaciones de firmware, revisar la versión, elegir modos, cambiar la acción de mantener presionado ni consultar el nivel de batería.
      Existen algunas apps de terceros, pero son poco confiables; por suerte, en Mac se puede hacer casi todo, aunque la prueba de ajuste requiere un iPhone. Las actualizaciones de firmware no las puede controlar el usuario y no hay ninguna información de estado ni progreso, así que el proceso está diseñado para ser lo más confuso posible.
      Una vez, un empleado de soporte de Apple Store me dijo: “Pon los AirPods en el estuche abierto conectados a la Mac, conecta el estuche a la corriente y déjalos unos 30 minutos”, pero en la práctica parece que la actualización tiene bastante aleatoriedad. También daba la impresión de que los empleados de Apple Store a veces entendían de forma muy vaga la integración entre productos de Apple que no fueran el iPhone, y dos veces se sorprendieron de que usara AirPods solo con Mac y Android, sin iPhone.
  • El enlace de Apple Support del artículo parece ser la versión de India; la versión de EE. UU. está aquí:
    https://support.apple.com/en-us/106340
    La versión de EE. UU. muestra números de versión de firmware más recientes distintos; por ejemplo, los AirPods Pro de 2.ª generación están en 6F8, mientras que en la versión de India figuran como 6B34.
  • Me interesaría mucho leer un artículo que cubra los detalles de implementar esta función también en Linux.
    Me deja esperando una continuación sobre la implementación en Linux.
  • El firmware de mis AirPods 2 está en una versión antigua, pero desde el punto de vista del usuario no se puede pedir explícitamente a iOS que lo actualice ni se muestra cuándo ocurre la actualización.
    Me gustaría tener más control sobre la actualización.
    • Dice que “las actualizaciones de firmware se entregan automáticamente cuando los AirPods se están cargando y están dentro del alcance Bluetooth de un iPhone, iPad o Mac conectado a Wi‑Fi”.
      https://support.apple.com/en-us/106340
    • A medida que los AirPods actuales y futuros sumen más funciones, quisiera poder disparar la actualización manualmente o, al menos, recibir una notificación de que ocurrió.
      Es cierto que más del 95% de los usuarios de AirPods no necesitan saber nada sobre actualizaciones de firmware, pero quienes sí se preocupan deberían tener una forma de verificar qué está pasando.
      Normalmente no es un gran problema, pero alguna vez recibí el firmware de los AirPods con varios días de demora, y en el futuro podría llegar un momento en que una actualización inmediata sea importante.
    • Si quieres más control, quizá los productos de Apple no sean para ti.
    • Me gustaría invertir tiempo en hacer ingeniería inversa de esto. Suena divertido.
  • La vulnerabilidad obviamente es mala, pero quisiera saber qué tan grave es realmente. Me pregunto qué cosas “aterradoras” podría hacer un atacante.
    Si el método consiste en cortar una conexión existente, parece difícil espiar una llamada o un stream de audio sin que el usuario se dé cuenta. No sé si lo peor sería escanear direcciones MAC a corta distancia, conectarse automáticamente y reproducir ruido en los oídos de alguien, o si hay un problema mayor.
    Podría ser posible arrebatarle los AirPods a una celebridad importante o a un político mientras está en una videollamada, pero parece que se notaría de inmediato; me pregunto si hay algo peor que eso.
    • Un atacante podría reproducir un sonido peligrosamente fuerte, escuchar los sonidos del entorno de una persona que lleva puestos los AirPods aunque no los esté usando, e incluso hacerse pasar por un interlocutor sin pasar por un servicio de llamadas ni dejar registro de llamadas.
      Además, tomar control de una conexión Bluetooth implica obtener una superficie de ataque bastante amplia, así que si el atacante conoce otras vulnerabilidades, también abre el camino a encadenar exploits adicionales.
    • En el peor caso, alguien podría fabricar un dispositivo que se pudiera dejar caer en una bolsa y que grabara todo el sonido de los audífonos. Incluso podría tener forma de memoria USB.
      Como el protocolo “Fast Connect” parece permitir estar “conectado” a varios dispositivos al mismo tiempo, es muy probable que el usuario no se dé cuenta. Otro ataque sería colocar dispositivos con forma de posavasos de café por toda una oficina, como si fuera personal de limpieza, para capturar el audio de los AirPods cercanos.
      En esencia, la parte difícil ya estaría resuelta; solo habría que fabricar un dispositivo con una batería pequeña, un transmisor Bluetooth y almacenamiento para recolectar audio de alta calidad cerca de donde la gente habla.
    • Mucha gente lleva los AirPods puestos incluso cuando no los usa activamente, así que en esos casos se podría usar el micrófono para espiar conversaciones cara a cara.
      Aunque habría que estar dentro del alcance de Bluetooth, así que quizá sea más fácil simplemente escuchar de la manera normal.
    • Siendo realistas, lo peor sería solo causar molestias.
      Si no se hubiera parcheado, alguien habría creado una app de interferencia de AirPods para Flipper Zero y habría cortado el audio de los AirPods de todos en lugares públicos solo para fastidiar.
  • En Settings > Bluetooth > Your AirPods, si tocas [i], puedes ver la versión aunque los AirPods no estén conectados en ese momento.
    6A326 parece ser la versión que incluye la corrección.
    https://support.apple.com/en-us/HT214111
    • Dice “AirPods Firmware Update 6A326, AirPods Firmware Update 6F8, and Beats Firmware Update 6F8”, y mi dispositivo está en 6F8.
      Probablemente sea la versión para AirPods Pro de 2.ª generación.
  • Sé que es poco probable, pero ojalá este incidente haga que Apple soporte de alguna manera las actualizaciones de AirPods en otros sistemas operativos, al menos actualizaciones de AirPods en Android.
  • No hay opción de actualización manual. Solo existen las actualizaciones automáticas, y tampoco queda claro cómo inducir esa actualización automática.
    • Si no recuerdo mal, al eliminar o desemparejar los AirPods y luego forzar el emparejamiento de nuevo, se dispara la actualización a la fuerza.
  • Además de que no se les agota la batería, ahora hay otra ventaja más de los audífonos con cable.
    • También tienen la ventaja de conectarse de forma confiable. En Linux, Bluetooth es un desastre.