[論文レビュー] Most Websites Don't Need to Vibrate: A Cost-Benefit Approach to Improving Browser Security
本論文は、ブラウザAPI機能のコストとベネフィットを評価するための手法を提案しており、多数のWeb APIに対してデフォルトでアクセスを許可する必要がないことが判明している。15の低ベネフィット・高リスクAPIをブロックすることで、著者らはCVE関連のコードパスを52.0%削減し、実装コードを50.0%削減した。また、5.3%のウェブサイトでの破綻にとどめ、ES6 Proxyベースのカスタム可能ブラウザ拡張機能を用いて細粒度のアクセス制御を実現した。
Modern web browsers have accrued an incredibly broad set of features since being invented for hypermedia dissemination in 1990. Many of these features benefit users by enabling new types of web applications. However, some features also bring risk to users' privacy and security, whether through implementation error, unexpected composition, or unintended use. Currently there is no general methodology for weighing these costs and benefits. Restricting access to only the features which are necessary for delivering desired functionality on a given website would allow users to enforce the principle of lease privilege on use of the myriad APIs present in the modern web browser. However, security benefits gained by increasing restrictions must be balanced against the risk of breaking existing websites. This work addresses this problem with a methodology for weighing the costs and benefits of giving websites default access to each browser feature. We model the benefit as the number of websites that require the feature for some user-visible benefit, and the cost as the number of CVEs, lines of code, and academic attacks related to the functionality. We then apply this methodology to 74 Web API standards implemented in modern browsers. We find that allowing websites default access to large parts of the Web API poses significant security and privacy risks, with little corresponding benefit. We also introduce a configurable browser extension that allows users to selectively restrict access to low-benefit, high-risk features on a per site basis. We evaluated our extension with two hardened browser configurations, and found that blocking 15 of the 74 standards avoids 52.0% of code paths related to previous CVEs, and 50.0% of implementation code identified by our metric, without affecting the functionality of 94.7% of measured websites.
研究の動機と目的
- ブラウザAPI機能のセキュリティと使いやすさのトレードオフを評価するための体系的でない手法の欠如に対処すること。
- 各Web APIのベネフィットをウェブサイトの機能性の観点から、コストを脆弱性、コードの複雑さ、学術的攻撃の観点から数量化すること。
- 個々のサイトごとに高コスト・低ベネフィットAPIを無効化できる、ユーザーが設定可能なブラウザ拡張機能の開発。
- 特定のWeb APIへのアクセスを制限するハードenedブラウザ構成のセキュリティ的・使いやすさ的影響の評価。
- 大多数のウェブサイトを破綻させることなく、顕著なセキュリティ向上を達成できることの実証。
提案手法
- 著者らは、各Web APIのベネフィットを、可視的な機能に必要とされるウェブサイトの数としてモデル化した。
- コストは、各APIに関連するCVEの数、コード行数、学術的攻撃の数を用いて数量化した。
- ES6 Proxyオブジェクトを用いて、既存のコードを破綻させることなく、JavaScript APIを動的に無効化できる、カスタム可能なブラウザ拡張機能を構築した。
- 15の低ベネフィット・高リスクWeb API仕様を特定し、ブロックすることで、2つのハードenedブラウザ構成を構築した。
- 拡張機能は、Alexa上位200サイトおよび残りのランダムサンプルに対して評価され、NoScriptおよびTorブラウザバンドルとの破綻率を比較した。
- このアプローチにより、サイトごとのポリシー設定が可能となり、信頼できるオリジンに対しては機能を明示的に許可できる。
実験結果
リサーチクエスチョン
- RQ1大多数のウェブサイトにとって最小限のベネフィットしか提供しないが、深刻なセキュリティおよびプライバシーリスクをもたらすWeb API仕様はどれか?
- RQ2特定のWeb APIをブロックすることで、既知の脆弱性や攻撃面への露出をどの程度削減できるか。また、既存のウェブサイトを破綻させることなく?
- RQ3NoScript や Tor ブラウザバンドルといった既存のプライバシー指向ツールと比較して、ハードenedブラウザ構成の使いやすさはどの程度か?
- RQ4ES6 Proxyに基づく動的でユーザーが設定可能な拡張機能は、機能コードを破綻させることなく、細粒度のAPIアクセス制御を効果的に実装できるか?
- RQ5特定のブラウザ機能を制限することで、セキュリティ強化とウェブサイト互換性の間でどのようなトレードオフが生じるか?
主な発見
- 74のWeb API仕様のうち15をブロックすることで、著者らのメトリクスで測定したところ、過去のCVE関連コードパスが52.0%削減され、実装コードが50.0%削減された。
- 上位200サイトでは5.3%、Alexa 10kからのランダムサンプルでも5.3%のサイトでの破綻にとどまり、NoScriptおよびTorブラウザバンドルを上回る互換性を示した。
- 94.7%のウェブサイトが、高リスク・低ベネフィットAPI(例:High Resolution Time Level 2、Canvas、Web Audio)をデフォルトでブロックされても正常に動作した。
- 学術的調査では、Canvas や Web Audio のようなブロックされたAPIが、ファングプリントやサイドチャネル攻撃に利用されてきたことが示されており、リスク評価の妥当性が裏付けられた。
- ES6 Proxyベースの機能ファイアウォールは、APIが利用可能であると予想する既存のコードを破綻させることなくAPIを無効化でき、実行時インターセプトの実現可能性を示した。
- 著者らは、Battery API、High Resolution Time Level 2、Canvas、Web Audio APIを、高リスクかつ低ベネフィットのため、デフォルトでのアクセスから削除する強力な候補と特定した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。