要約

  • W3CのSecurity Interest Groupが9月22日に公表したThreat Model for the Web草案は、文書・オリジンの実行環境とブラウザーが管理するWeb APIの仲介を分け、要求と結果・イベント・エラーの往復を示した。
  • 前日版の最上位モデルではユーザーエージェントを一つのプロセスとして扱っていた。改訂図は実装に依存しない論理モデルであり、主要ブラウザーのプロセス構成を指定しない。
  • ページで呼び出しを確認しても、権限の付与や実際の強制箇所までは確認できない。これは本稿の評価上の含意であって、W3Cが新設した適合試験ではない。

新しいWeb APIを評価するとき、開発者はページの呼び出し箇所と戻り値を最初に見る。だが、その二点の間にはブラウザーの判断がある。ページが描いた画面で利用者がボタンを押したとしても、それがブラウザー自身の許可確認に当たるとは限らない。成功を示すデモは機能の説明にはなるが、どの境界が資源への到達を制限したかを直ちに示すものではない。

今回の草案は、その問いをL0と呼ぶ最も抽象的なモデルに置いた。PO-02は文書とオリジンの実行環境、PO-01はブラウザーが制御する仲介である。DF-05がAPIの呼び出しや引数を前者から後者に渡し、DF-06が値、Promiseの完了、イベント、状態またはエラーを戻す。TB-02はオリジンや文脈の権限を隔てる抽象的な境界群を指す。利用者と遠隔のWebサイトも、別の関係者として表現される。

9月21日版を読むと変更点はよりはっきりする。旧L0の中心は、ユーザーエージェント/ブラウザーをひとまとめにしたP0だった。ブラウザー管理の状態S0、ネットワークやOSとの流れも示していたが、文書からブラウザーへのAPI要求と返答は最上位では分けていなかった。ただし、許可の仲介や強制箇所を調べるには下位のブラウザーモデルへ進むべきだという説明は、すでに旧版に存在する。改訂の意味は原理の発見ではなく、審査の入口を描き直した点にある。

下位モデルは権限の大きいブラウザー機能、不信頼なコンテンツの実行、許可情報の保管、ネットワークとOSへの経路を分解する。コンテンツ側のチェックと、権限を持つ側のチェックを同一視しないための視点を与える一方、実装は製品ごとに異なる。草案もL0がChromium、Gecko、WebKitの実プロセス境界を述べる図ではないと明記する。ここから特定製品の安全性や欠陥を判定することはできない。

文書の制度上の位置づけにも限界がある。これはSecurity Interest Groupが支持するGroup Note Draftで、W3C本体や会員による承認ではない。公開履歴は初回を5月26日と記す。脅威分析と対策の節には未完成という編集注記が残る。9月22日版は新たな許可義務、実際の攻撃、製品試験結果を報告していない。

評価に残すべきなのは、ページが何を要求したか、ブラウザーが何を判断したか、ページへ何が返ったか、実装のどこで制限が効いたかという別々の記録だ。図は証拠の所在を問う助けになる。図そのものを証拠にすることはできない。

出典