web-dev-qa-db-ja.com

Chrome /ブラウザ拡張機能はタブサンドボックスを壊しますか?

したがって、私が知る限り、Chromeおよびおそらく他のブラウザでは、すべてのタブに対して非常に低い特権プロセスが生成されます。

このサンドボックスに関してブラウザ拡張はどのように相互作用しますか?拡張機能を直接侵害することではなく、Chromeを侵害して、拡張機能を侵害することでタブサンドボックスからエスケープすることを話します。

4
domen

Chrome拡張機能での特権メソッドへのアクセスは、次の2つの要素に依存します。

  1. アクティブな拡張機能のアクセス許可。
  2. 現在のプロセス。

Chrome拡張機能は、マニフェストファイルで必要な permissions を宣言した後でのみ、特権APIへのアクセスを要求できます。拡張IDがホワイトリストに登録されている(Chromiumのソースコードにハードコードされている)場合にのみ拡張で使用できるプライベートAPIのセットもあります。サンドボックスから脱出したい場合、これは実際には関係ありません。妥協の影響の境界を定義するだけです。

「サンドボックス」は2つあります。権限のある拡張メソッドを利用しようとするWebサイトからユーザーを保護することを目的とした、拡張機能の開発者に表示されるもの。もう1つは拡張機能の開発者に透過的であり、侵害された(レンダリング)プロセスに対する保護を提供します。

Chromeは、1つの(高い特権の)ブラウザープロセスと複数のレンダリングプロセスで構成されるマルチプロセスアプリケーションです。各タブ/サイトは独自のプロセスで実行されます 詳細は プロセスモデル を参照してください、そのタスクを実行するために必要なminimal特権を持ちます。

拡張機能は、いわゆる コンテンツスクリプト を使用して、Webサイトの外観や機能を変更できます。これらのコンテンツスクリプトは、動作するWebサイトと同じプロセスを共有しますが、JavaScriptコードは別のコンテキストで実行されます。これにより、拡張システムは非常に限定された特権JavaScriptメソッドのセットをコンテンツスクリプトに提供できます。拡張機能 メッセージパッシングAPI および クロスオリジンAJAX の形式で。タブプロセスが危険にさらされると、被害は限定されます。それはクロスドメインリクエストを行い(拡張にそうする権限がある場合)、拡張の background プロセスにメッセージを送信できますが、ファイルシステムからファイルを読み取ったり、より強力な拡張を使用したりすることはできませんAPI。 1つのタブプロセス(レンダラー)が危険にさらされた場合、セキュリティアーキテクチャのおかげで、被害は通常その単一のタブ/オリジンに限定されます。

拡張機能の他の部分(例: バックグラウンドページポップアップページ 、およびアドレスバーにchrome-extension://[EXTENSIONID]/...が表示されるページ)は、拡張プロセスで実行されます。拡張プロセス内のページは、強力なAPIを使用できます 要求された権限 を使用することを条件とします、ローカルファイルシステム上のファイルへの読み取りアクセスを含む(アクセスを要求し、拡張設定ページの[ファイルのURLへのアクセスを許可する]チェックボックスを明示的にオンにした場合)-これは偶然ではありません。心配しないでください)。
拡張プロセスが危険にさらされた場合、被害は拡張が実行できることに限定されます。たとえば、ファイルシステム上の任意のファイルに書き込むことはできません。

(悪意のある拡張機能の開発者は、拡張プロセスを危険にさらす必要がないことに注意してください。「すべてのWebサイトのデータにアクセスする」および「タブとブラウジングアクティビティにアクセスする」を要求する悪意のある拡張機能をインストールすると、たとえば、入力時にパスワードを盗むなどして、Webサイトをいじる十分な力があります)。

外部リソース

5
Rob W

私はあなたの質問に適切に答えていないかもしれませんが、私は彼らがそうではないと言うでしょう。拡張機能はサンドボックス化されており、厳密な コンテンツセキュリティポリシー に従います。

From サンドボックス評価

...提供されているソリューションは、拡張機能のデータまたは拡張機能の高価値APIにアクセスせずにevalがコードを実行できるサンドボックスです。データなし、APIなし、問題なし。

これを実現するには、拡張パッケージ内の特定のHTMLファイルをサンドボックスとしてリストします。サンドボックス化されたページが読み込まれると、そのページは一意のOriginに移動され、chrome。* APIへのアクセスが拒否されます。

同じ記事にリンクされた非常に有益なビデオがあります こちらのYouTubeで 安全なセキュリティの開発についてChrome拡張機能の詳細については、拡張機能のセキュリティについて詳しく説明します。

2
Gray