セキュリティ

広告ブロック拡張機能「uBlock Origin」にユーザーのパスワードが盗まれるCSSインジェクション脆弱性が存在


ウェブサイト上の広告を非表示にするための広告ブロック機能は、悪意ある広告でPCが危険にさらされることを防ぎます。しかし、広告ブロック拡張機能「uBlock Origin」に、広告をブロックする仕組みを悪用し、ユーザーがウェブサイトで入力した情報を盗み出せる脆弱(ぜいじゃく)性が存在していたことが報告されました。

uBlock, I exfiltrate: exploiting ad blockers with CSS | PortSwigger Research
https://portswigger.net/research/ublock-i-exfiltrate-exploiting-ad-blockers-with-css


ウェブサイトに表示される広告を非表示にする広告ブロック拡張機能はコミュニティが提供する「フィルタリスト」を使ってウェブリソースを受け入れるかブロックするかを決定します。そしてこのフィルタリストは主に、ブロックすべきURLを説明する「ネットワークルール」と、非表示にすべきページ要素(CSS/スタイルシート)を説明する「コスメティックルール」という2種類のルールで構成されています。例えばネットワークルールには「ad.comとの通信を遮断」、コスメティックルールには「ページ内の<div id="ad"></div>を非表示にする」といった内容が書かれています。フィルタリストは広告ブロックのための重要なものですが、一方で悪意あるリストが提供される可能性も考えられます。

2021年8月25日、テイヴィス・オーマンデイ氏が広告ブロック拡張機能「uBlock Origin」にCSSインジェクションの脆弱性があることを報告しました。

CSSインジェクションは、文字通り、ウェブサイトが使用しているCSSにコードを挿入すること。悪意ある第三者によってコードが挿入可能なウェブサイトは、既存のHTML要素が見えなくなったり、疑似的な要素が新たに作られたりという形で改ざんされる可能性があります。前述の通り広告ブロックはCSSを使用するものであり、uBlock Originに存在するCSSインジェクションの脆弱性を利用すると、ユーザーが閲覧するさまざまなウェブサイトの表示を操作可能。実際にオーマンデイはサンプルのURLにGoogleのロゴを表示するというデモンストレーションを実施しています。

Here's a dumb one I just found ???? (I've already filed a bug). pic.twitter.com/LApsCMDvir

— Tavis Ormandy (@taviso)


オーマンデイ氏が指摘したその日にuBlock Originはパッチを配布し、一度は問題が解決されましたが、11月3日、パッチをバイパスできる方法が明らかになりました。セキュリティ研究者のガレス・ヘイス氏がCSSファジングによってテストした結果、複数のCSSインジェクションによってウェブサイトからデータを抽出することが可能だったとのことです。

そもそも、CSSインジェクションはCSSの属性値をターゲットとして、パスワードなどを盗むといった攻撃で使われます。この手法は属性値ベースであり、基本的にユーザーのキーストローク自体を読み取ることができないのですが、ヘイス氏によるとウェブサイトのテキスト欄ごとに個別のフォントを定義することで、JavaScriptがなくともキーロガーの実装が可能とのこと。また、ブロック要素の最初の文字にだけ個々のフォントを割り当てることでも、スクリプト要素を盗むことができるとヘイス氏は述べています。

攻撃の詳細については、以下から確認可能です。

GitHub - PortSwigger/css-exfiltration
https://github.com/PortSwigger/css-exfiltration


uBlock Originは広告に対して強力なフィルターを提供しており、悪意ある攻撃によってコンピューターが危険にさらされることを防ぎます。一方で、CSSインジェクションに対しては脆弱であり、ユーザーが悪意あるフィルターをロードした場合、任意のウェブサイト・ウェブページから情報を盗みだされる可能性があるとヘイス氏は注意を促しました。なお、ヘイス氏の報告を受けてuBlock Originはすぐにパッチを配布し、11月22日には安定版をリリースするとともにFirefox版を更新、12月3日にはChrome版を更新しています。

この記事のタイトルとURLをコピーする

・関連記事
「広告ブロック」をうたうブラウザ拡張機能が実際はページに広告を挿入していたことが判明 - GIGAZINE

URLに「.」を追加するだけでウェブサイトの広告を回避できる可能性があるという指摘 - GIGAZINE

広告ブロッカーを許可することで広告主もユーザーもメリットを得られると研究者が指摘 - GIGAZINE

30万回ダウンロードの広告ブロック拡張機能が勝手に個人情報を収集してSNSを改ざんしていたことが判明 - GIGAZINE

Facebookはどのようにして広告ブロッカーを回避しているのか? - GIGAZINE

in セキュリティ, Posted by logq_fa

You can read the machine translated English article here.