ちょっとした情報:Adblock Plusのフィルタリング機能は、サードパーティのマルウェア注入の扉を開く

Table of Contents

ちょっとした情報:Adblock Plusのフィルタリング機能は、サードパーティのマルウェア注入の扉を開く

昨年、Adblock Plus やその他の関連コンテンツをブロックするブラウザ拡張機能に導入された機能により、フィルタリング リストのプロバイダーは、特定の条件下で Web ページ上で任意のコードを実行できるようになります。

2018年7月にリリースされたChrome、Firefox、Opera向けのAdblock Plus v3.2には、$rewriteコンテンツをブロックするかどうかを制御するフィルタールールを変更できるフィルターオプションのサポートが含まれています。これは、Webリクエストをブロックするよりもリダイレクトする方が適切な場合があるためです。

この$rewriteフィルターは、URLからトラッキングデータを削除する方法を提供します。例えば、Google Accelerated Mobile Pages(AMP)を回避することが挙げられます。「AMPは広告とトラッキングのみを目的としており、実際にウェブを改善するものではありません。そのため、ユーザーをAMP非対応ページにリダイレクトすることができます」と、Adblock Plusの開発者であるHubert Figuière氏は昨年提案しました。

AdBlockやuBlock(AdBlockが所有し、uBlock Originとは関係ありません)など、紛らわしい名前を持つ他のコンテンツブロッキング拡張機能も、この$rewriteオプションを実装していると言われています。このディレクティブにより、サードパーティが管理するフィルターリストは、URLパラメータを選択的に書き換えることができます。

Sebastian 氏によると、Web ページは、次の特定の条件下で脆弱になります: または 経由で JavaScript 文字列をロードしXMLHttpRequestFetch返されたコードを実行する場合、コンテンツ セキュリティ ポリシー ディレクティブまたは URL 検証を使用して取得された適用可能なドメイン オリジンを制限していない場合、および、取得されたコードのオリジンにサーバー側のオープン リダイレクトがあるか、任意のユーザー コンテンツのホスティングが許可されている場合。

このような場合、信頼できないファイル リスト データのプロバイダーに、任意のコードを実行する悪意のあるフィルター文字列が含まれている可能性があります。

この問題を発見した開発者アーミン・セバスチャン氏は月曜日のブログ投稿で、潜在的な脆弱性についてグーグルに伝えたが、同社はこれをバグではなく意図された動作とみなしていると述べた。

Adblock PlusはThe Register宛ての電子メールで「当社はこの件を非常に深刻に受け止めており、最善の対策を決定するためにユーザーに対する実際のリスクを現在調査中です」と述べた。

Adblock Plusは声明の中で、$rewrite「広告ブロッカーを使用する訪問者にウェブサイトが広告を強制的に表示しようとする迂回行為を、フィルターリスト作成者が効果的にブロックできるようにするためにサポートが追加された」と述べた。

「この新機能は、広告ブロッカーの仕組みに対する認識を根本的に変えるものだ」とセバスチャン氏はThe RegisterとのTwitterでの会話で述べた。

かつては、悪意のあるフィルターリストプロバイダーがサイトへのアクセスをブロックするといった最悪の事態が起こり得ましたが、これは簡単に見分けられる小さな問題に過ぎませんでした。しかし、この$rewriteフィルターオプションは、ウェブサービスに潜む他のセキュリティ問題と相まって、アカウント乗っ取りや個人情報の窃取を可能にします。これは、ユーザーが広告ブロッカーの仕組みについて認識しているものとは大きく異なります。

セバスチャン氏は、フィルタリングリストをこのように悪用した事例があるかどうかは把握していないものの、不正操作の検出は困難だと述べた。「この手法では、リクエストごとにペイロードを配信できるため、ペイロードを公開フィルターリストの一部として公開することなく、標的にされ、悪用され、拡張機能ストレージから証拠が消去される可能性があります」と同氏は述べた。

懸念材料

競合コンテンツブロッキング拡張機能uBlock Originの開発者であるレイモンド・ヒル氏は昨年、$rewriteセキュリティ上の懸念から実装を見送ると表明しました。具体的には、GitHubのようなサイトは同一オリジン(github.com)でありながら、異なるユーザーが異なるページのコンテンツを制御できるため、同一オリジン制限だけでは不十分だと懸念していました。

「厳密に同じオリジンであっても、悪意のあるフィルターリスト作成者がネットワークリクエストに悪質なものを追加する可能性がある」と彼は書き、querystripURLクエリパラメータを削除するが書き換えないというオプションの方が好ましいと述べた。

クロームシャッターストック

ネットユーザーや開発者がChromeの広告ブロックに猛烈に抗議する中、Googleは「まだ確定ではない」と主張

続きを読む

ヒル氏はThe Registerへのメールで、「この脆弱性を悪用するには、フィルターリストの管理者が不正行為を行う必要がありますが、特に影響を受けるブロッカーがデフォルトで使用しているような、著名なフィルターリストの場合、そのようなシナリオは考えにくいものです。それでも、(セバスチャン氏の投稿は)可能性は存在し、ユーザーが個人的に信頼をどのように割り当てるかに応じて、これを考慮に入れる必要があると主張しています」と述べています。

Adblock Plusは、$rewriteいかなるスクリプトも実行できないように制限されているが、コンテンツセキュリティポリシーの設定にもかかわらず、「一部のWebサイトでは、第三者からのプレーンテキストをコードとして解釈し、実行できる」という。

同社はウェブサイトに長い声明を掲載し、Adblock Plusでデフォルトで有効になっているフィルターリストに寄稿する作成者を審査し、フィルターリストを定期的に検査しているため、悪用される可能性は低いと考えている(また、悪用の試みも確認していない)と述べた。

「しかしながら、このオプションを利用して悪意のあるソフトウェアを実行できるウェブサイトが依然として存在しており、ユーザーをそのような攻撃から守ることは私たちの責任であると認識しています。この脆弱性の修正に取り組んでいます」と同社は述べた。

Adblock Plus では、$rewrite に対して検討されているさらなる制限に加えて、すべてのフィルター リストを https に制限する可能性があるとしており、これは現在、デフォルトでアクティブ化されているリストに当てはまります。

connect-srcセバスチャン氏は、CSP ヘッダーを使用して既知のオリジンをホワイトリストに登録するか、サーバー側のオープン リダイレクトを省略することでリスクを軽減できると述べています。

The Register はGoogle に、これが Chrome のセキュリティ問題ではないことを確認するよう求めたが、まだ返答はない。

GoogleがChrome拡張機能で利用可能なAPIを変更するという物議を醸しているManifest v3計画の理由の一つにセキュリティを挙げています。検索ビジネスは、フィルターの信頼性以外の問題にも注力しています。例えば、JavaScriptエンジン(宣言されたルールは固定されたまま)ではなく、ブラウザ(ルールは変更可能)でルールを評価するwebRequest APIの置き換えなどが挙げられます。®

Discover More