
概要
本件は進行中のゼロデイ脆弱性であり、AppleMediaServices.framework における回帰やバージョン固有のバグではなく、システム設計上の根本的な欠陥を反映したものです。
AppleのAppleMediaServicesフレームワークにおける重大なフェイルオープンの欠陥により、リモート設定ファイル(「Bag」)の読み込みに失敗すると、リクエスト署名が静かに無効化される可能性があります。これはiOS、macOS、tvOS、watchOSに影響します。
DNS操作、タイムアウト、ネットワーク干渉などによりBagを取得できない場合、AppleMediaServicesのデーモンはMescal/Absinthe署名を無効化し、署名なしのリクエストをAppleサーバーに送信します。これらのリクエストには整合性保護がなく、ユーザーはダウングレード攻撃やリプレイ攻撃にさらされます。
ログ証拠:
発見の経緯
影響を受けるシステム
AppleMediaServices.framework を使用するすべてのAppleプラットフォームが影響を受けます。
影響を受けるデーモンは以下を含みます:
脆弱性の概要
Appleデバイスは以下のエンドポイントから動的設定Bagを取得します:
https://bag.itunes.apple.com/bag.xml?deviceClass=...&format=json
この設定には useAMSMescal、mescalURL、absintheURL などのフラグが含まれており、送信リクエストに署名が必要かどうかを決定します。
Bagの読み込みに失敗すると、AppleMediaServicesは失敗をログに記録し、署名ロジックを無効化して、署名なしのリクエストを送信します。署名検証、整合性チェック、強制フォールバックメカニズムは存在しません。Bagは認証も署名もされていないため、セキュリティ状態はネットワーク干渉に対して脆弱です。
概念実証(PoC)
前提条件:
悪用手順:
DNS NXDOMAIN応答、TCPハンドシェイクの破棄、遅延応答を使用して、Bagエンドポイントへのアクセスをブロックまたは改ざんします。
システムログで、Bagの読み込みに失敗し、Mescal/Absinthe署名がスキップされたことを確認します。
システムコンポーネント(例: App Store、Musicアプリ)にリクエストを送信させます。ネットワークトラフィックを監視し、署名ヘッダーが存在しないことを確認します:
結果:
検証なしで署名なしトラフィックがAppleエンドポイントに送信されます。これにより、改ざん、リプレイ、その他の整合性リスクが可能になります。
脅威モデル
bag.itunes.apple.com へのアクセスをブロックするDNSポイズニングまたは改ざんAMSBagManager の改変推奨される対策
署名付き設定 CMS、JWT、またはHMACを使用してBagに署名し、クライアント側で署名を検証します。
フェイルセキュアなデフォルト AppleMediaServicesは、Bagを取得または検証できない場合、署名に依存するトラフィックをブロックする必要があります。
サーバー側での強制 AppleのバックエンドAPIは、MescalまたはAbsintheによる保護が必要な署名なしリクエストを拒否する必要があります。
検証済みキャッシュ Bagコンテンツは、整合性チェックに合格し、定義された有効期限の制約内にある場合にのみキャッシュされるべきです。
深刻度の根拠
Appleデバイスは、App Storeからメディア再生に至るまで、信頼のために署名付きリクエストに依存しています。設定ファイルを読み込めない場合にそれらの署名が消えてしまうなら、Wi-Fiネットワーク上の攻撃者は整合性を剥奪し、ユーザーに気付かれることなくトラフィックを注入またはリプレイできます。Bagリクエストが1回でも失われれば、Appleのセキュリティ保証はフェイルオープンになります。