現在、50億台を超えるデバイスが近接ファイル共有機能に対応しています。代表的な仕組みとしては、AppleのAirDropやGoogleのQuick Shareが挙げられます。これらの機能により、連絡先情報を交換することなく写真や文書を簡単に共有できます。しかし、CISPAヘルムホルツセンターの研究者らは最近、包括的な研究を発表し、より暗い実態を明らかにしました。具体的には、これらのプロトコルは完全な認証が完了する前に受信信号を処理してしまいます。さらに、非常に高い権限を持つシステムコンポーネント内で動作しています。最終的に、研究者らはAirDropとQuick Shareに関する6件の重大な脆弱性を発見しました。これらの欠陥は深刻なシステムクラッシュを引き起こしたり、進行中のデータ転送を妨害したりする可能性があります。中でも特に警戒すべき事例では、リモートコード実行すら許してしまいます。
モバイルエコシステム全体に及ぶ広範な影響
この深刻なセキュリティ問題は、モバイルデバイス市場のほぼ全体に影響を及ぼします。最新の調査結果によると、AirDropとQuick Shareは世界中で50億台を超える稼働中のデバイス上で動作しています。Apple単体でも、sharingdサービスを利用するアクティブデバイスは22億台を超えます。このデーモンは、AirDropに加え、その他の重要なContinuity機能も管理しています。一方、Googleは30億台を超えるアクティブなAndroidデバイスがあると報告しています。Quick ShareはSamsungのスマートフォンにおいて標準の共有機能として機能しています。さらに、より広範なAndroidエコシステム全体において、システムレベルで深く統合されています。
ゼロクリックの攻撃ベクトル
これらの巧妙な攻撃には、アカウントへのアクセスやパスワード、事前に確立された接続は一切必要ありません。攻撃者は、標的から10メートルから30メートルの範囲内にいるだけで済みます。そのため、人混みの多い公共の場所は、多数のスマートフォンを同時に危険にさらす格好の環境となります。発見されたAirDropの脆弱性には、特定の前提条件がありました。標的デバイスが「全員に10分間」の設定でファイルを積極的に受信する状態になっている必要があるという点です。とはいえ、研究者らはそれよりもはるかに広範なリスクを強調しています。近接共有プロトコルは、その性質上、適切な認証を確立する前に信号を受け入れてしまいます。その結果、権限の高いシステム層の中で脆弱な状態のまま機能してしまうのです。
AirDropのロジックをリバースエンジニアリング
CISPAの研究チームは、まずソースコードにアクセスすることなくAirDropの複雑なロジックを再構築しました。彼らは、7つの異なる層からなる複雑なスタックを綿密に整理しました。これらの層には、Bluetooth LEによる発見、AWDL Wi-Fiネットワーキング、IPv6接続、TLS暗号化が含まれます。さらに、このスタックはHTTPトランスポート、Apple property list、CPIOアーカイブも利用しています。この厳密な分析の後、専門家らはAirFuzzを開発しました。このカスタムツールは、プロトコルを特にテストし、操作されたリクエストを通じてクラッシュを特定します。驚くべきことに、結果として得られたコードベースは約12,300行に及びます。
AirDropの重大な欠陥を特定
研究者らは、AirDrop内に3件の異なるサービス拒否(DoS)脆弱性を特定することに成功しました。悪意ある攻撃者は、これらの欠陥のうち2件については、デバイス所有者の操作を一切介さずに悪用できます。3件目の脆弱性は、ユーザーが転送を承認した後、認証が完了する前に発生します。1件目のエラーでは、単一のHTTP POSTリクエストによってsharingdプロセスを完全に終了させることが可能です。この重要なサービスは、AirDrop、AirPlay、Handoff、Universal Clipboard、Continuity Cameraを制御しています。
2件目の深刻なエラーは、深くネストされたXML property listの処理中に発生します。この操作により、スタックオーバーフローが直接引き起こされます。研究者らは、このリスクがAirDrop自体をはるかに超える範囲に及ぶと考えています。根本的な問題は、コアとなるFoundationフレームワークに存在しています。そのため、信頼できないXML property listを解析する他のAppleアプリケーションでも発生する可能性があります。この脆弱性は、macOS、iOS、watchOS、tvOS、visionOSに影響を及ぼす可能性があります。
3件目のシステム障害は、悪意を持って不正な形式にされたHTTPヘッダーに起因します。Apple内部のパーサーは、こうした矛盾するリクエストを適切に拒否できません。その結果、パーサーは不整合な状態に陥り、存在しないオブジェクトへのアクセスを試みてしまいます。この研究では、このエラーはサービス拒否(DoS)の脆弱性として正式に分類されました。この標的型攻撃は、sharingdプロセスを確実にクラッシュさせます。ただし、現時点では確認済みのリモートコード実行能力は備えていません。
Quick Shareの脆弱性を分析
研究チームは、Galaxy S23 UltraにおけるSamsungのAndroid実装を用いて、Quick Shareについても精査しました。さらに、Windows環境向けに設計されたGoogle Quick Shareクライアントについてもテストを行いました。最終的に、これらの実装内に3件の重大な問題を発見しました。1件の欠陥により、認証が完了する前にシステムが特定のコマンドを処理できてしまいます。これにより、攻撃者は事実上、意図しない通信セッションを持続的に維持できるようになります。もう1件の脆弱性では、ローカルネットワークの経路上に位置する攻撃者に権限が与えられてしまいます。攻撃者は、進行中の転送に暗号化されていない制御フレームを悪意を持って注入できます。その結果、意図されていたデバイス間の暗号化層を完全に迂回できてしまいます。
研究者らは、3件目の重大なエラーをWindows向けQuick Shareの中で特に発見しました。このuse-after-free脆弱性は、処理スレッド間の危険な競合状態(race condition)に起因しています。専門家らの評価によると、この重大な欠陥はリモートコード実行を可能にする恐れがあります。その結果、この専門家チームはこの発見に対してGoogleから多額の報奨金を受け取りました。
ベンダーの対応と今後の見通し
Apple、Samsung、Googleは、詳細な脆弱性報告を速やかに受け取りました。各社は、研究者らによる憂慮すべき調査結果を正式に確認しています。特定されたAirDropのエラーに対処するパッチは、現在も活発に開発が進められています。さらに、業界では、Windows向けQuick Shareの脆弱性について正式なCVE番号の割り当てが見込まれています。研究者らは、今回の調査でこの問題が終わったわけではないと強く強調しています。
研究チームは、AirDropとQuick Shareの特定の実装を徹底的に調査しました。その後、他のセキュリティ専門家がこれらのプロトコルの分析を継続できるよう、AirFuzzのコードをオープンソース化しました。研究者らは、さらなる調査によって追加のエラーが発見されるだろうと強く推測しています。近接ファイル共有は、現代のモバイルシステムにおいて、依然として非常に複雑で文書化が不十分なコンポーネントのままです。主なリスクは、特定の一つの脆弱性に由来するものではありません。むしろ、近接プロトコルの根本的なアーキテクチャそのものに起因しています。これらの仕組みは、その性質上、権限の高いシステム層の中で動作しながら、認証前に受信信号を受け入れてしまうのです。
翻訳元: https://meterpreter.org/airdrop-quick-share-vulnerabilities/