Appleの「AirDrop」とGoogleおよびSamsungの「Quick Share」に新たに発覚した脆弱性により、電波の届く範囲にいる攻撃者がユーザーの操作を介さずに、近くのデバイスを繰り返し遠隔からクラッシュさせたり操作したりできることが判明しました。
Arxivの報告によると、CISPAヘルムホルツ情報セキュリティセンターの研究チームが、macOS、iOS、Android、Windowsにまたがる両方の近接共有スタックを対象に、体系的なリバースエンジニアリングとプロトコルを意識したファジングによる調査を実施しました。
この調査により、いくつかのバグは、影響を受けるプラットフォームでファイル転送や連携機能を処理する特権デーモンをクラッシュさせることで、遠隔からのサービス拒否(DoS)状態を引き起こせることが分かりました。
6件の問題のうち3件は、現行のmacOSおよびiOSビルドにおけるAirDropのアプリケーション層に存在します。
1つ目は「未処理パスエラー」として追跡されている問題で、AirDropの共有デーモン内にあるSwiftベースのルーターが原因です。このルーターは、認識できないウェブアドレス宛てのリクエストを受信すると、致命的な終了処理を呼び出してしまいます。
近くにいる未認証のデバイスであれば誰でも、AirDropの無線リンク経由でこのようなリクエストを送信するだけで即座にデーモンを停止させることができ、AirDropだけでなく、AirPlay、Handoff、ユニバーサルクリップボードなど、関連する他の連携機能も同時に機能不全に陥ります。
2つ目の問題は、Appleの「Foundation」フレームワークに含まれるXMLプロパティリストパーサーに関するものです。このパーサーは、ネストされた辞書構造を深さの制限なしに処理してしまいます。
ネストがおよそ180〜200階層に達すると、パーサーは利用可能なスタックメモリを使い果たしてクラッシュします。つまり、深くネストされたデータを含む特別に細工された検出リクエストは、AirDropに限らず、信頼できないプロパティリストが解析されるあらゆる場面で同様の障害を引き起こす可能性があるということです。
3つ目のバグはAppleの「Network」フレームワークに存在します。負のチャンクサイズや矛盾する長さヘッダーといった不正な形式のHTTPフレーミングにより、接続確立処理のロジックが不整合な状態に陥り、ヌルポインタ参照が発生します。これによっても共有デーモンと、それに紐づくすべての連携サービスがダウンしてしまいます。
残る3件の発見事項は、Samsung製Android端末とGoogleのWindowsクライアント上で動作するQuick Shareを対象としています。1つ目は、Nearby Connections層における認証前バイパスです。特定の種類のメッセージが、UKEY2暗号化ハンドシェイクの完了よりもかなり前の段階で、たった一度の未認証接続リクエストが届いた時点で処理されてしまいます。
これにより、近くにいる攻撃者はプロトコルの内部状態を操作し、認証を一度も完了することなく攻撃者が制御するデータを送り込むことが可能になり、ゼロクリックでの攻撃可能な窓がさらに広がることになります。
2つ目のQuick Shareの脆弱性は、接続応答、帯域幅アップグレード、キープアライブ信号を扱う3種類の特定のフレームタイプについて、必須の暗号化ラッパーを回避しさえすれば、セキュアなハンドシェイクの完了後であっても平文の未暗号化形式のまま受理されてしまうというものです。
つまり、同一のローカルネットワークを共有している者であれば、保護されていない制御メッセージをアクティブなセッションに注入できてしまい、セッションを強制的に「承認済み」の状態にしたり、無期限に開いたままにしたり、エンドポイントの詳細情報を露出させたりする可能性があるということです。
6件の中で最も深刻なのは、GoogleのWindows版Quick Shareアプリケーションに存在する解放済みメモリ使用(use-after-free)の問題です。これは、2つの着信接続が同一の識別子と一致するナンスで衝突した際に発生します。
バックグラウンドで動作するワーカースレッドが、既に解放されたメモリオブジェクトに対して関数を呼び出してしまう結果、予測可能なクラッシュが引き起こされます。さらに、Control Flow Guardによる保護が働いていない環境では、オブジェクトの仮想関数テーブルを操作することで任意のコード実行につながる現実的な経路も存在します。
Arxivによれば、影響範囲はかなり大規模です。研究者らは、これらの脆弱性によって到達し得るデバイスとして、稼働中のApple製デバイス22億台超、Quick Shareを利用するSamsung製デバイスを含むAndroidデバイス30億台超を挙げています。
6件の発見事項はすべて、関係する3社に対して協調的開示(coordinated disclosure)の手続きを経て報告されました。Appleは、AirDropに関連する3件の問題を確認済みで、現在パッチの作成に積極的に取り組んでいます。一方Googleは、Windows版の解放済みメモリ使用バグについて既に報奨金を支払い済みで、Samsungから伝えられたQuick Shareのプロトコル上の弱点についても引き続き調査を進めています。
攻撃が成立するにはおよそ10メートルから30メートルという近接条件が必要であることを踏まえると、空港や会議会場のような混雑した公共の場所は、単独の攻撃者が一度に多数のデバイスへ現実的に影響を及ぼし得る環境であり続けています。
翻訳元: https://cyberpress.org/airdrop-and-quick-share-flaws/