Bluetooth 周辺機器を保護する Apple 独自のアプローチ「MagicPairing」にはいくつかの利点があるが、脆弱性を消滅させるほどの魔法的効果はない。
ドイツのダルムシュタット工科大学の研究者らが MagicPairing プロトコルを調査し、その 3 つの実装 (iOS、macOS、RTKit) に、それぞれまだ対処されていない 10 個の公開された欠陥が含まれていることを発見しました。
RTKitは、RTKitフレームワークをベースにしたリアルタイムオペレーティングシステムで、AppleのAirPods 1、2、Pro、Siri Remote 2、Apple Pencil 2、Smart Keyboard Folioに搭載されています。あまり知られていませんが、世界のワイヤレスイヤホン市場の半分以上を占めるAppleのAirPodsの人気により、広く普及しています。
Dennis Heinze、Jiska Classen、Felix Rohrbach は、「MagicPairing: Apple の Bluetooth 周辺機器のセキュリティ保護に関する取り組み」と題する論文 [PDF] の中で、Apple の MagicPairing プロトコルは Bluetooth デバイス ペアリングの 2 つの欠点 (スケーラビリティの低さと、永久キー (リンク キーまたは長期キー) が侵害された場合にセキュリティ モデルが崩壊する) を克服していると述べています。
それにもかかわらず、Apple の MagicPairing 実装には特に深刻なものではないものの、依然として問題があると彼らは言う。
Bluetooth の専門家たちは、7 月に開催される WiSec '20 で発表予定の論文の中で、「MagicPairing はペアリングと暗号化の前に利用できるため、ゼロクリックのワイヤレス攻撃の対象領域が広くなります」と述べています。
何もすることがなくて家に閉じこもっている?AppleがiOS、macOS、リスト型コンピュータ、そしてiTunes for Windowsという奇妙なものにセキュリティ修正プログラムをリリース
続きを読む
すべての実装において、ロックアウト攻撃やCPU負荷100%を引き起こすサービス拒否(DoS)攻撃など、それぞれ異なる問題があることが判明しました。これらの問題は、一般的な無線テストとiOSインプロセスファジングの両方を実施することで特定しました。
2つのBluetoothデバイスが接続すると、デバイスの信頼性、メッセージの整合性、およびメッセージの機密性を保護するために使用される永続的なキーが生成されます。このキーは、ユーザーが手動で削除するまで(デバイスのペアリングを解除して削除するまで)、保持され、より短い有効期間を持つセッションキーの元となります。
MagicPairingはAppleのiCloudサービスも利用します。セッションごとにユーザー固有のiCloudキーに基づいて新しい永続キーを生成するため、変更されない永続キーよりもセキュリティが向上します。研究者によると、MagicPairingは対称ラチェットアルゴリズムと認証付き暗号化を用いてこれを実現します。
「MagicPairingプロトコルのセキュリティ目標は、接続ごとに認証と新しい共有鍵を提供することだと思われます」と論文は説明している。「この目標を実現するために、対称ラチェットアルゴリズムと認証付き暗号化が採用されています。」
研究者らは、InternalBlueと呼ばれるBluetoothテストフレームワークを通じて利用可能になるというToothPickerと呼ばれるコードを使用して、無線ファジングとインプロセスファジングを実行した。
研究者らは、クラッシュを引き起こし、CPUに過負荷をかけ、ペアリングされたデバイスの接続を解除する可能性のある、MagicPairingに関する8つの脆弱性とL2CAPに関する2つの脆弱性を特定しました。論文によると、これらの脆弱性は2019年10月30日から2020年3月13日の間に発見され、未だ修正されていません。PoCコードは日曜日に公開されました。
クリックして拡大
ダルムシュタット工科大学のセキュアモバイルネットワーキングラボ(SEEMO)の研究者で、この報告書の共著者でもあるジスカ・クラッセン氏は電子メールの中で、アップルが対策を講じていないのは、アップルがこれらの問題を特に深刻だとは考えていないためではないかと示唆した。
「対照的に、彼らは潜在的なリモートコード実行に関連するものすべてを非常に迅速に修正するだろう」と彼女は語った。
bluetoothd
論文によると、iOS および macOS における Apple の MagicPairing 実装には、ログメッセージと、macOS Bluetooth デーモンの関数名に多数のスペルミスが含まれているとのことです。
「これらのミスはスタックによって異なるため、各スタックは異なる開発者によって実装された可能性が高い」と論文は述べている。「スペルミスは実装上の欠陥とは直接関係ないが、コードが十分にレビューされておらず、開発がアウトソーシングされた可能性が高いという印象を与える。」
アップルはコメント要請に応じなかった。
コードの品質が明らかに低いことについて尋ねられると、クラッセン氏は同僚のデニス・ハインツ氏が自ら作成したToothPickerツールを使用してバグを発見したと述べた。
「彼の調査結果に基づくと、AppleはBluetoothプロトコルスタックの大部分をファジングしていなかったと推測できます」と彼女は述べた。「しかし、十分にテストされた部分もあります。おそらく、これは特定のプロトコルを担当するチームによって異なるでしょう。」
しかしクラッセン氏は、一部のプロトコルについてはオープンソースの無線テストツールが存在し、他のセキュリティ研究者がすでにそれらを使用してAppleのBluetoothスタックを精査している可能性があることを認めた。
「全体的に見て、Appleがいくつかのチェック項目を追加することで修正できるような比較的単純なバグを修正しなかったことに驚きました。しかし、今年のWiSecカンファレンスはバーチャルで開催され、著者には論文を事前に発表するよう求められたため、当初の予定より少し早くなっています」と彼女は説明した。
「それでも、Appleには変更されたタイムラインについて伝えましたが、彼らは公開を拒否しませんでした。また、最も古いバグさえも修正されていないことから、これは変更されたタイムラインとは関係がないと思われます。」®