1 Punkte von GN⁺ 2024-06-30 | 1 Kommentare | Auf WhatsApp teilen
  • Wegen CVE-2024-27867 in der AirPods-Firmware kann sich jemand, der die Bluetooth-MAC-Adresse kennt, mit dem Gerät verbinden, über das Mikrofon mithören oder Musik abspielen
  • Die Schwachstelle entsteht, weil im Fast Connect-Pfad von Apples proprietärem Protokoll Authentifizierungs- und Verschlüsselungsstatus nicht explizit geprüft werden
  • Die dafür nötige Bluetooth-MAC-Adresse ist nicht vollständig privat und kann im Pairing-Modus oder bei aktiven AirPods per Funk ermittelt werden
  • Befinden sich AirPods im geschlossenen Ladecase oder AirPods Max im Smart Case, sind die Funkfunktionen deaktiviert und eine Verbindung ist grundsätzlich nicht möglich
  • Apple hat Firmware-Updates für AirPods und einige Beats-Modelle veröffentlicht, aber für Nutzer von Android, Windows oder Linux ohne iOS bzw. macOS kann das Update-Verfahren umständlicher sein

AirPods-Firmware-Schwachstelle und betroffene Auswirkungen

  • In der Apple-AirPods-Firmware gibt es die Sicherheitslücke CVE-2024-27867
  • Wer die Bluetooth-MAC-Adresse kennt, kann sich mit AirPods verbinden und folgende Aktionen ausführen
    • Mikrofon mithören
    • Musik abspielen
    • Auf anderen verbundenen Geräten laufende Musik erkennen und pausieren
    • Einige Aktionen ausführen, die über das AAP-Protokoll möglich sind
    • AirPods durch fehlerhaft formatierte Nachrichten zum Absturz bringen
  • Auch wenn die AirPods bereits mit einem Telefon verbunden sind, kann sich ein Angreifer zusätzlich verbinden
    • Wenn der Angreifer allerdings das Mikrofon aktiviert, stoppt die Musikwiedergabe
  • Befinden sich AirPods in einem geschlossenen Ladecase oder AirPods Max im Smart Case, sind die Funkfunktionen deaktiviert und es sind keinerlei Verbindungen möglich

Wie die Schwachstelle entdeckt wurde

  • Bei den AirPods 3 funktionierten in Kombination mit macOS und Apple-Geräten verschiedene Funktionen problemlos, aber beim Booten desselben Laptops mit Linux war keine gleichzeitige Verbindung mit Telefon und Laptop möglich
  • Aufgrund dieses Unterschieds wurde vermutet, dass ein Apple-spezifisches Protokoll verwendet wird, das es bei gewöhnlichen Bluetooth-Kopfhörern nicht gibt, und die Analyse begann, um einige Funktionen unter Linux nachzubauen
  • Dabei wurde die Schwachstelle in Apples Fast Connect-Funktion zum Verbinden von Bluetooth-Peripheriegeräten entdeckt

So funktioniert Fast Connect

  • Fast Connect ist Apples proprietäres Protokoll und nutzt die Ping-Funktion der Bluetooth-Spezifikation auf kreative Weise
  • Ziel ist es, die Verbindungsaufbauzeit zwischen zwei Apple-Geräten von etwa 1 Sekunde auf etwa 0,5 Sekunden zu verkürzen
  • Bevor die beiden Geräte den Verbindungspartner authentifizieren, tauschen sie L2CAP-Ping-Nachrichten aus
    • Apple packt Protokollnachrichten in die Ping-Payload
    • So lässt sich prüfen, ob beide Seiten Fast Connect unterstützen, ohne gegen die Bluetooth-Spezifikation zu verstoßen
  • Anschließend werden in drei weiteren Hin-und-zurück-Nachrichten die für die Verbindung nötigen Aushandlungen durchgeführt
  • Insgesamt sind nur 4 Roundtrips nötig, was schneller ist als bei gewöhnlichen Bluetooth-Verbindungen, bei denen SDP-Deskriptoren ausgetauscht und Kanäle eingerichtet werden

Fehlende Authentifizierungsprüfung

  • Das Problem ist, dass in dem separaten Codepfad für Fast Connect eine wichtige Prüfung fehlt
  • AirPods prüfen nicht, ob die Gegenstelle tatsächlich authentifiziert wurde und die Verschlüsselung aktiviert ist
  • Normales iOS und macOS führen nach den ersten Fast-Connect-Nachrichten die Schritte zur Authentifizierung und Aktivierung der Verschlüsselung aus
  • Selbst wenn ein Angreifer diese Schritte überspringt, setzen die AirPods das Fast Connect-Verfahren fort
  • Wenn man AirPods ohne Fast Connect über normales Bluetooth verbindet, ist der Authentifizierungsschritt implizit enthalten; deshalb könnte die explizite Prüfung im Fast-Connect-Codepfad übersehen worden sein

Voraussetzung: Bluetooth-MAC-Adresse

  • Der Angreifer muss die feste Bluetooth-MAC-Adresse der AirPods kennen
  • Diese Adresse ist keine vollständig geheime Information
    • Bluetooth-Geräte senden sie im Pairing-Modus über Funk aus
    • Wenn AirPods aktiv sind, lässt sie sich mit Hardware wie Ubertooth One leicht aus dem Funkverkehr auslesen

Updates und das Problem für Nicht-Apple-Nutzer

  • Apple hat in den vergangenen Tagen mehrere Firmware-Updates veröffentlicht, die diese Schwachstelle beheben
  • Betroffen sind AirPods 2, AirPods 3, AirPods Pro, AirPods Pro 2, AirPods Max und einige Beats-Kopfhörer
  • Nutzer sollten prüfen, ob ihre AirPods-Firmware aktuell ist
  • AirPods-Firmware wird automatisch aktualisiert, aber nur bei Nutzung zusammen mit einem iPhone oder MacBook
  • Für Nutzer von Android, Windows oder Linux, die AirPods ohne iOS- oder macOS-Gerät verwenden, ist ein Firmware-Update nicht ohne Weiteres möglich
  • Offenbar können diese Nutzer Firmware-Updates im Apple Store erhalten

Meldung und Werkzeuge

  • Bei Bluetooth-bezogenen Fragen und dem Offenlegungsprozess half Jiska Classen von der University of Potsdam
  • Linux-Community-Tools wie BlueZ waren notwendig, um dieses Problem zu finden

1 Kommentare

 
GN⁺ 2024-06-30
Meinungen auf Hacker News
  • Ich frage mich, warum bei Bluetooth eine einzelne Nachricht Hunderte Millisekunden statt Mikrosekunden dauert, obwohl zwei Geräte im selben Raum selbst mit einem sehr schmalen Teil des elektromagnetischen Spektrums Tausende Nachrichten pro Sekunde austauschen könnten.
    Ich würde gern wissen, welche Faktoren die Zeitskalen in diesem Ablauf bestimmen.
    • Hier bin ich mir nicht sicher, aber normalerweise ist es das Zusammenspiel mehrerer Dinge: wie oft das werbende Gerät Beacons sendet, ob es mehrere Advertising-Kanäle gibt, ob Beacons und Handshakes aus Gründen der Abwärtskompatibilität mit der langsamsten Protokollgeschwindigkeit übertragen werden, ob wegen Störungen in der Umgebung Retransmits auf der physikalischen Schicht nötig sind usw.
      Am Ende frisst der Handshake Zeit, bei dem beide Seiten feststellen, welche Funktionen sie unterstützen und über welches Physical-Layer-Protokoll sie kommunizieren sollen.
  • Ich meine mich zu erinnern, dass betroffene Beats-Geräte mit demselben Chip tatsächlich über die Beats-App auf Android aktualisiert werden konnten.
    • Ich habe AirPods Pro der 1. und 2. Generation mit einem Android-Telefon verwendet, und unter Android gibt es keine vernünftige Möglichkeit für Firmware-Updates, Versionsprüfung, Modusauswahl, Änderung der Gedrückt-halten-Aktion oder Anzeige des Akkustands.
      Es gibt zwar einige Drittanbieter-Apps, aber sie sind wenig zuverlässig; zum Glück geht auf dem Mac das meiste, nur der Sitztest erfordert ein iPhone. Firmware-Upgrades lassen sich vom Nutzer weder steuern noch gibt es Status- oder Fortschrittsinformationen, was das Ganze maximal verwirrend macht.
      Ein Apple-Store-Supportmitarbeiter sagte mir einmal, ich solle „die AirPods mit dem Mac verbunden in das geöffnete Case legen, das Case ans Stromnetz anschließen und etwa 30 Minuten warten“, aber in der Praxis fühlt sich der Update-Prozess ziemlich zufällig an. Auch die Apple-Store-Mitarbeiter schienen die Zusammenarbeit zwischen Apple-Produkten außer dem iPhone manchmal nur sehr vage zu kennen, und sie waren zweimal irritiert, dass ich AirPods ohne iPhone nur mit Mac und Android nutze.
  • Der Apple-Support-Link im Artikel scheint die indische Version zu sein; die US-Version ist hier:
    https://support.apple.com/en-us/106340
    In der US-Version werden andere Nummern für die neuesten Firmware-Versionen genannt; zum Beispiel ist es bei den AirPods Pro der 2. Generation 6F8, während die indische Version 6B34 nennt.
  • Ich wäre sehr gespannt auf einen Artikel, der die Details dazu behandelt, wie diese Funktion unter Linux implementiert wurde.
    Ich warte auf einen Folgeartikel zur Linux-Implementierung.
  • Die Firmware meiner AirPods 2 ist eine alte Version, aber aus Nutzersicht kann man unter iOS kein Update explizit anstoßen, und es wird auch nicht angezeigt, wann ein Update passiert.
    Ich hätte gern mehr Kontrolle über Updates.
    • Dort steht: „Firmware-Updates werden automatisch bereitgestellt, wenn deine AirPods geladen werden und sich in Bluetooth-Reichweite eines iPhone, iPad oder Mac befinden, das bzw. der mit WLAN verbunden ist.“
      https://support.apple.com/en-us/106340
    • Je mehr Funktionen aktuelle und künftige AirPods bekommen, desto eher möchte ich Updates selbst auslösen können oder zumindest eine Benachrichtigung erhalten, dass ein Update stattgefunden hat.
      Für über 95 % der AirPods-Nutzer ist es sicher richtig, dass sie Firmware-Updates nicht kennen müssen, aber wer sich dafür interessiert, sollte eine Möglichkeit haben zu sehen, was passiert.
      Meist ist das kein großes Problem, aber ich habe AirPods-Firmware schon einmal ein paar Tage verspätet erhalten, und irgendwann könnte ein sofortiges Update wichtig werden.
    • Wenn man mehr Kontrolle will, sind Apple-Produkte vielleicht nicht das Richtige.
    • Ich hätte Lust, Zeit in Reverse Engineering davon zu investieren. Das klingt nach Spaß.
  • Eine Schwachstelle ist natürlich schlecht, aber ich würde gern wissen, wie gravierend das in der Praxis wirklich ist. Mich interessiert, welche „gruseligen“ Dinge ein Angreifer tun könnte.
    Wenn dafür bestehende Verbindungen getrennt werden, wirkt es schwierig, einen Anruf oder Audiostream unbemerkt mitzuhören. Ich weiß nicht, ob das Schlimmste nur wäre, aus nächster Nähe MAC-Adressen zu scannen, automatisch zu verbinden und Lärm ins Ohr abzuspielen, oder ob es größere Probleme gibt.
    Bei hochrangigen Prominenten oder Politikern könnte man ihnen während eines Videoanrufs die AirPods kapern, aber das würde wohl sofort auffallen; ich frage mich, ob es noch Schlimmeres gibt.
    • Ein Angreifer kann gefährlich laute Töne abspielen, Umgebungsgeräusche von Personen mithören, die AirPods nur tragen, ohne sie aktiv zu verwenden, und sich als Anrufer ausgeben, ohne über einen Telefondienst zu gehen oder einen Anrufverlauf zu hinterlassen.
      Außerdem bedeutet die Übernahme einer Bluetooth-Verbindung eine ziemlich große Angriffsfläche; wenn der Angreifer weitere Schwachstellen kennt, eröffnet das auch Wege zu zusätzlichen Exploit-Ketten.
    • Im schlimmsten Fall könnte jemand ein Gerät bauen, das man in eine Tasche fallen lassen kann und das sämtlichen Ton der Kopfhörer aufzeichnet. Es könnte auch die Form eines USB-Sticks haben.
      Das „Fast Connect“-Protokoll scheint zu erlauben, dass mehrere Geräte gleichzeitig „verbunden“ sind, daher würde der Nutzer es wahrscheinlich nicht bemerken. Ein anderer Angriff wäre, wie eine Reinigungskraft im Büro Geräte in Form von Kaffeetassen-Untersetzern zu platzieren, um Audio von AirPods in der Umgebung abzugreifen.
      Der im Kern schwierige Teil ist damit im Grunde gelöst; man müsste nur noch ein Gerät mit kleinem Akku, Bluetooth-Sender und Speicher bauen, um in der Nähe von Orten, an denen Menschen sprechen, hochwertiges Audio zu sammeln.
    • Viele Menschen tragen AirPods auch dann im Ohr, wenn sie sie nicht aktiv verwenden; in solchen Fällen könnte man das Mikrofon nutzen, um persönliche Gespräche mitzuhören.
      Allerdings müsste man sich in Bluetooth-Reichweite befinden, daher wäre normales Lauschen vielleicht einfacher.
    • Realistisch betrachtet wäre das Schlimmste wohl einfach nur, lästig zu sein.
      Wäre es nicht gepatcht worden, hätte wohl jemand eine AirPods-Stör-App für den Flipper Zero gebaut und an öffentlichen Orten allen die AirPods-Audiowiedergabe unterbrochen, um zu nerven.
  • Unter Einstellungen > Bluetooth > Deine AirPods kann man auf [i] tippen und die Version sehen, auch wenn die AirPods gerade nicht verbunden sind.
    6A326 scheint die Version zu sein, die den Fix enthält.
    https://support.apple.com/en-us/HT214111
    • Dort steht „AirPods Firmware Update 6A326, AirPods Firmware Update 6F8, and Beats Firmware Update 6F8“, und mein Gerät hat 6F8.
      Das ist vermutlich die Version für die AirPods Pro der 2. Generation.
  • Ich weiß, dass es unwahrscheinlich ist, aber ich hoffe, dass dieser Vorfall Apple dazu bringt, Updates für AirPods auf anderen Betriebssystemen, zumindest unter Android, irgendwie zu unterstützen.
  • Es gibt keine Option für manuelle Updates. Updates sind ausschließlich automatische Updates, und es ist unklar, wie man diese automatischen Updates anstoßen soll.
    • Wenn ich mich richtig erinnere, löst das Entfernen bzw. Entkoppeln der AirPods und anschließendes erzwungenes erneutes Pairing ein Update aus.
  • Neben der Tatsache, dass sich kein Akku entlädt, gibt es nun einen weiteren Vorteil von kabelgebundenen Kopfhörern.
    • Außerdem haben sie den Vorteil, zuverlässig verbunden zu sein. Unter Linux ist Bluetooth eine Katastrophe.