1 points par GN⁺ 2024-06-30 | 1 commentaires | Partager sur WhatsApp
  • En raison de CVE-2024-27867 dans le firmware des AirPods, une personne connaissant l’adresse MAC Bluetooth peut se connecter à l’appareil pour écouter le micro ou lancer de la musique
  • La faille provient du fait que le chemin Fast Connect, protocole propriétaire d’Apple, ne vérifie pas explicitement l’état de l’authentification et du chiffrement
  • L’adresse MAC Bluetooth nécessaire à l’attaque n’est pas totalement privée et peut être obtenue par radio lorsque les AirPods sont en mode appairage ou actifs
  • Lorsque les AirPods sont dans leur boîtier de charge fermé, ou les AirPods Max dans leur Smart Case, les fonctions sans fil sont désactivées et toute connexion est impossible
  • Apple a déployé des mises à jour de firmware pour les AirPods et certains Beats, mais la procédure peut être plus fastidieuse pour les utilisateurs Android, Windows et Linux qui les utilisent sans iOS ni macOS

Faille dans le firmware des AirPods et périmètre d’impact

  • Le firmware des Apple AirPods contient la faille de sécurité CVE-2024-27867
  • Une personne connaissant l’adresse MAC Bluetooth peut se connecter aux AirPods et effectuer les actions suivantes
    • Écouter le micro
    • Lancer de la musique
    • Vérifier et mettre en pause la musique en cours de lecture sur un autre appareil connecté
    • Effectuer certaines actions prises en charge par le protocole AAP
    • Faire planter les AirPods en envoyant des messages mal formés
  • Même si les AirPods sont déjà connectés à un téléphone, l’attaquant peut établir une connexion supplémentaire
    • Toutefois, si l’attaquant active le micro, la lecture de musique s’arrête
  • Si les AirPods sont dans leur boîtier de charge fermé, ou si les AirPods Max sont dans leur Smart Case, les fonctions sans fil sont désactivées et aucune connexion n’est possible

Découverte de la faille

  • Avec macOS et des appareils Apple, de nombreuses fonctions des AirPods 3 fonctionnaient naturellement, mais lorsque le même ordinateur portable démarrait sous Linux, ils ne se connectaient pas simultanément au téléphone et à l’ordinateur
  • Cette différence a laissé penser qu’un protocole propre à Apple absent des casques Bluetooth classiques était utilisé, ce qui a conduit à une analyse pour réimplémenter certaines fonctions sous Linux
  • Au cours de cette analyse, une faille a été découverte dans la fonction Fast Connect d’Apple, qui connecte des périphériques Bluetooth

Fonctionnement de Fast Connect

  • Fast Connect est un protocole propriétaire d’Apple qui utilise de manière créative la fonction ping de la spécification Bluetooth
  • Son objectif est de réduire le temps d’établissement d’une connexion entre deux appareils Apple d’environ 1 seconde à environ 0,5 seconde
  • Avant de s’authentifier avec l’appareil cible, les deux appareils échangent des messages ping L2CAP
    • Apple place des messages de protocole dans la charge utile du ping
    • Cette méthode permet de vérifier que les deux côtés prennent en charge Fast Connect sans enfreindre la spécification Bluetooth
  • Trois allers-retours de messages supplémentaires servent ensuite à négocier les paramètres nécessaires à la connexion
  • L’ensemble ne nécessite que 4 allers-retours de messages, ce qui est plus rapide que la procédure d’une connexion Bluetooth classique consistant à échanger des descripteurs SDP et à configurer les canaux

Absence de vérification de l’authentification

  • Le problème vient de l’absence d’un contrôle important dans le chemin de code distinct qui implémente Fast Connect
  • Les AirPods ne vérifient pas que l’autre partie s’est réellement authentifiée et a activé le chiffrement
  • iOS et macOS, dans leur fonctionnement normal, effectuent les étapes d’authentification et d’activation du chiffrement après le message Fast Connect initial
  • Même si un attaquant saute cette étape, les AirPods poursuivent la procédure Fast Connect
  • Lors d’une connexion aux AirPods par la méthode Bluetooth classique, sans Fast Connect, l’étape d’authentification est implicitement incluse, ce qui pourrait expliquer l’absence de vérification explicite dans le chemin de code Fast Connect

Condition liée à l’adresse MAC Bluetooth

  • L’attaquant doit connaître l’adresse MAC Bluetooth fixe des AirPods
  • Cette adresse n’est pas une information totalement privée
    • Elle est annoncée par radio lorsqu’un appareil Bluetooth est en mode appairage
    • Lorsque les AirPods sont actifs, elle peut être facilement récupérée par radio avec du matériel comme Ubertooth One

Mises à jour et problème pour les utilisateurs non Apple

  • Apple a déployé ces derniers jours plusieurs mises à jour de firmware corrigeant cette faille
  • Les appareils concernés sont les AirPods 2, AirPods 3, AirPods Pro, AirPods Pro 2, AirPods Max et certains casques Beats
  • Les utilisateurs doivent vérifier que le firmware de leurs AirPods est à jour
  • Le firmware des AirPods se met à jour automatiquement, mais seulement lorsqu’ils sont utilisés avec un iPhone ou un MacBook
  • Les personnes qui utilisent des AirPods sans appareil iOS ou macOS, comme les utilisateurs Android, Windows ou Linux, peuvent avoir du mal à mettre facilement le firmware à jour
  • Il semble que ces utilisateurs puissent obtenir une mise à jour du firmware en Apple Store

Signalement et outils

  • Jiska Classen de l’Université de Potsdam a apporté son aide pour les questions liées au Bluetooth et la procédure de divulgation
  • Des outils communautaires Linux comme BlueZ ont été nécessaires pour identifier ce problème

1 commentaires

 
GN⁺ 2024-06-30
Commentaires sur Hacker News
  • Deux appareils dans la même pièce pourraient s’échanger des milliers de messages par seconde en n’utilisant qu’une infime portion du spectre électromagnétique ; je me demande donc pourquoi, avec Bluetooth, un seul message prend des centaines de millisecondes plutôt que des microsecondes.
    J’aimerais savoir ce qui détermine l’échelle de temps de ce processus.
    • Je ne suis pas certain pour ce cas précis, mais en général c’est la combinaison de plusieurs facteurs : la fréquence à laquelle l’appareil qui annonce sa présence envoie des beacons, le fait qu’il y ait plusieurs canaux d’annonce, le fait que les beacons et le handshake soient transmis au débit le plus lent du protocole pour assurer la rétrocompatibilité, la nécessité de retransmissions au niveau physique à cause du bruit ambiant, etc.
      Au final, le handshake qui sert à vérifier quelles fonctionnalités les deux côtés prennent en charge et à décider quel protocole de couche physique utiliser prend du temps par conception.
  • Si je me souviens bien, les appareils Beats concernés utilisant la même puce pouvaient effectivement être mis à jour depuis l’app Beats sur Android.
    • J’utilise des AirPods Pro de 1re et 2e génération avec un téléphone Android, et sur Android il n’y a pas vraiment de moyen fiable de faire une mise à jour du firmware, de vérifier la version, de choisir les modes, de modifier l’action de l’appui long ou de consulter le niveau de batterie.
      Il existe bien quelques apps tierces, mais elles sont peu fiables. Heureusement, sur Mac, la plupart de ces choses sont possibles, même si le test d’ajustement nécessite un iPhone. Les mises à jour de firmware ne sont pas contrôlables par l’utilisateur, et il n’y a aucune information d’état ni de progression, ce qui rend le tout aussi déroutant que possible.
      Un employé de l’assistance en Apple Store m’a déjà dit de « mettre les AirPods dans leur boîtier ouvert en les laissant connectés au Mac, brancher le boîtier à l’alimentation et attendre environ 30 minutes », mais en pratique j’ai l’impression qu’il y a une bonne part d’aléatoire dans la mise à jour. Les employés d’Apple Store semblaient aussi parfois avoir une connaissance très floue de l’interopérabilité entre produits Apple hors iPhone, et ils ont été surpris deux fois d’apprendre que j’utilisais des AirPods uniquement avec un Mac et Android, sans iPhone.
  • Le lien Apple Support dans l’article semble être la version indienne ; la version américaine est ici :
    https://support.apple.com/en-us/106340
    La version américaine indique des numéros de firmware récents différents : par exemple, les AirPods Pro 2e génération sont en 6F8, alors que la version indienne indique 6B34.
  • Je serais très curieux de lire un article détaillant la mise en œuvre de cette fonctionnalité sous Linux également.
    J’attends un article de suivi sur l’implémentation Linux.
  • Le firmware de mes AirPods 2 est ancien, mais côté utilisateur il n’est pas possible de demander explicitement une mise à jour dans iOS, ni de voir quand elle se produit.
    J’aimerais avoir davantage de contrôle sur les mises à jour.
    • Il est indiqué que « les mises à jour de firmware sont livrées automatiquement lorsque vos AirPods sont en charge et à portée Bluetooth d’un iPhone, iPad ou Mac connecté au Wi‑Fi ».
      https://support.apple.com/en-us/106340
    • À mesure que les AirPods actuels et futurs gagnent en fonctionnalités, j’aimerais pouvoir déclencher moi-même une mise à jour, ou au moins recevoir une notification indiquant qu’elle a eu lieu.
      Il est vrai que plus de 95 % des utilisateurs d’AirPods n’ont pas besoin de connaître les mises à jour de firmware, mais ceux que cela intéresse devraient avoir un moyen de vérifier ce qui se passe.
      En général ce n’est pas un gros problème, mais il m’est déjà arrivé de recevoir un firmware AirPods avec quelques jours de retard, et il pourrait venir un moment où une mise à jour immédiate sera importante.
    • Si vous voulez davantage de contrôle, les produits Apple ne sont peut-être pas faits pour vous.
    • J’aimerais consacrer du temps à faire de la rétro-ingénierie là-dessus. Ça pourrait être amusant.
  • La vulnérabilité est évidemment mauvaise, mais j’aimerais savoir à quel point elle est grave en pratique. Je me demande quelles choses « effrayantes » un attaquant pourrait faire.
    Si cela consiste à couper une connexion existante, il semble difficile d’écouter un appel ou un flux audio à l’insu de l’utilisateur. Je ne sais pas si le pire scénario se limite à scanner les adresses MAC à proximité, se connecter automatiquement et jouer du bruit dans les oreilles, ou s’il y a un problème plus important.
    On pourrait peut-être voler les AirPods d’une célébrité ou d’un responsable politique pendant un appel vidéo, mais cela serait vite remarqué ; je me demande s’il y a pire.
    • Un attaquant peut jouer un son à un volume dangereusement élevé, écouter les sons ambiants autour d’une personne qui porte ses AirPods sans les utiliser, et même se faire passer pour un appelant sans passer par un service d’appel ni laisser de journal d’appel.
      De plus, prendre le contrôle d’une connexion Bluetooth donne accès à une surface d’attaque assez large ; si l’attaquant connaît d’autres vulnérabilités, cela ouvre aussi la voie à une chaîne d’exploits supplémentaire.
    • Dans le pire des cas, quelqu’un pourrait fabriquer un appareil à laisser tomber dans un sac pour enregistrer tous les sons des écouteurs. Il pourrait même avoir la forme d’une clé USB.
      Le protocole « Fast Connect » semble autoriser plusieurs appareils à être « connectés » simultanément, donc l’utilisateur risque fort de ne rien remarquer. Une autre attaque consisterait à placer, comme un agent d’entretien, des appareils en forme de sous-verres à café un peu partout dans un bureau pour capter l’audio des AirPods à proximité.
      La partie vraiment difficile est en grande partie déjà résolue : il ne reste qu’à fabriquer un appareil avec une petite batterie, un émetteur Bluetooth et du stockage pour collecter de l’audio de haute qualité près des endroits où les gens parlent.
    • Beaucoup de gens gardent leurs AirPods dans les oreilles même lorsqu’ils ne les utilisent pas activement ; dans ce cas, on pourrait utiliser le micro pour écouter des conversations en face à face.
      Cela dit, il faut rester à portée Bluetooth, donc il serait peut-être plus simple d’écouter de manière tout à fait classique.
    • En pratique, le pire serait probablement surtout de provoquer des nuisances.
      Si ce n’était pas corrigé, quelqu’un aurait créé une app de brouillage d’AirPods pour Flipper Zero afin de couper le son des AirPods de tout le monde dans les lieux publics et d’agacer les gens.
  • Dans Settings > Bluetooth > Your AirPods, en appuyant sur [i], on peut voir la version même si les AirPods ne sont pas actuellement connectés.
    6A326 semble être la version qui contient le correctif.
    https://support.apple.com/en-us/HT214111
    • Il est écrit « AirPods Firmware Update 6A326, AirPods Firmware Update 6F8, and Beats Firmware Update 6F8 », et mon appareil est en 6F8.
      C’est sans doute la version pour les AirPods Pro 2e génération.
  • Je sais que c’est peu probable, mais j’aimerais que cet épisode pousse Apple à prendre en charge d’une manière ou d’une autre les mises à jour des AirPods depuis d’autres systèmes d’exploitation, au moins sur Android.
  • Il n’y a pas d’option de mise à jour manuelle. Les mises à jour sont uniquement des mises à jour automatiques, et on ne sait même pas clairement comment provoquer cette mise à jour automatique.
    • Si ma mémoire est bonne, supprimer les AirPods ou les dissocier puis forcer un nouvel appairage déclenche la mise à jour.
  • En plus du fait qu’ils ne se déchargent pas, voilà un avantage de plus pour les écouteurs filaires.
    • Ils ont aussi l’avantage d’une connexion fiable. Sous Linux, Bluetooth est une catastrophe.