AppleのワイヤレスイヤホンであるAirPodsに、「BluetoothのMACアドレスを知っていれば外部から接続できる脆弱性」が発見されました。Appleはすでに修正用のファームウェアアップデートを配信しており、なるべく早くアップデートを実施することが推奨されています。

Do a firmware update for your AirPods - now - Jonas’ Blog

https://blogs.gnome.org/jdressler/2024/06/26/do-a-firmware-update-for-your-airpods-now/



AirPodsの問題を発見したのは、ソフトウェアエンジニアのジョナスさんです。2024年に入って第3世代AirPodsを購入したというジョナスさんは、AirPodsがiPhoneやMacと魔法のように連動することに感銘を受けたと語っています。ジョナスさんは仕事でLinuxを使用しているため、MacでLinuxを起動したところ、Macでは問題なくAirPodsが使えたものの、先ほどまで接続できていたiPhoneとは接続することができなくなってしまったそうです。

同じMacを使用していてもmacOSの場合はiPhoneとも問題なく無線接続できるにもかかわらず、OSをLinuxに切り替えると接続できなくなってしまうことに興味がわいたジョナスさん。同氏はAppleがAirPodsでどのような独自のプロトコルを使用しているのか気になり、調べてみることにしたそうです。

調査の結果、Appleが提供しているBluetoothデバイス接続用の「Fast Connect」と呼ばれる機能に、脆弱性が存在することをジョナスさんが発見しています。Fast ConnectはApple独自の特許取得済みプロトコルで、Bluetoothの「ping」機能を独創的に使用したプロトコルになっているとジョナスさんは指摘しています。なお、Fast Connectの主な目的は、2つのAppleデバイス間の接続を確立するのにかかる時間を約1秒から約0.5秒に短縮するためのものだそうです。



Fast Connectの基本的な仕組みは、接続先のデバイス(AirPods)で認証する前に、両方のデバイスがL2CAP pingメッセージを交換し、Appleがpingのペイロードにプロトコルメッセージを入れるというもの。これによりBluetooth仕様に違反することなく、両方のデバイスがFast Connectプロトコルを使用していることを確認し、3つのメッセージをやり取りして2つのデバイスを完全に接続するために必要なすべての情報をやり取りできるようになります。

しかし、Fast Connectを実装するためのコードでいくつかのバグが存在することをジョナスさんが発見しました。重要な問題点は、AirPodsが接続のセキュリティレベル、つまりは「相手側が実際に認証して暗号化をオンにしたのか」をチェックし忘れている点だそうです。

認証と暗号化の有効化は、最初のFast Connectメッセージの後に行われるはずのステップです。iOSおよびmacOSはこの工程を完璧に実行するものの、攻撃者が接続時にこのステップをスキップしようとした場合、AirPodsはFast Connectをそのまま続行してしまう模様。AirPodsをFast Connectなしで接続する場合(つまり、Apple製品以外のデバイスとBluetooth接続する場合)、この認証ステップはある程度暗黙的であるため、Fast Connectのコードに明示的なチェック工程をAppleが追加し忘れたのは「これが理由でしょう」とジョナスさんは語りました。

この脆弱性により、AirPodsのBluetooth MACアドレスを知っていれば、誰でもAirPodsにアクセスできるようになってしまいます。Bluetooth MACアドレスは厳密にはプライベートな情報ではないため、ペアリングモードの際やUbertooth Oneなどのハードウェアを使用することで、簡単に取得できてしまうそうです。



攻撃者が一度AirPodsに接続すると、AirPodsで実行できるあらゆる操作を実行できるようになってしまいます。つまり、マイクの入力を盗聴したり、再生している音楽を聴いたり、AirPodsに接続されている別のデバイスで再生中の音楽を確認したり、AAPプロトコルで実行できるさまざまな操作(設定の変更、不適切な形式のメッセージを送信してAirPodsをクラッシュさせるなど)を実行可能となります。

Appleはこの脆弱性を修正するためのファームウェアアップデートを配信しているため、ジョナスさんは「AirPodsユーザーはファームウェアが最新バージョンであるかを確認してください」と記しています。

AirPodsのファームウェアをアップデートするには、「AirPodsが充電中」であり、「Wi-Fiに接続されているiPhone、iPad、MacのBluetoothの通信範囲内に存在する」必要があるものの、ファームウェアアップデート自体は自動で行われます。AirPodsのファームウェアバージョンは、設定の「Bluetooth」画面からAirPodsの横にある「i」ボタンをタップすることで確認できます。

AirPods のファームウェアアップデートについて - Apple サポート (日本)

https://support.apple.com/ja-jp/106340

なお、AirPodsはiPhoneやMacと使用する場合にのみファームウェアアップデートを実施するよう設計されているため、Android端末でAirPodsを使用しているユーザーなどは、ファームウェアアップデートを実施するための方法がないかもしれませんが、Apple Storeに行けばAirPodsのファームウェアをアップデートしてもらうことが可能です。