新たに公表された調査結果によると、一見無害に見えるメール内のCSS埋め込みが、ログイン認証情報の窃取や認証トークンの乗っ取り、さらにはAI搭載ブラウザの操作にまで悪用される可能性があることがわかりました。しかも、ウェブメールプロバイダーがユーザーを保護するために採用しているサニタイズ(無害化)フィルターを回避してしまうといいます。
Gmail、Outlook、Fastmail、ProtonMail、Yahoo Mail、AOL Mailといったウェブメールクライアントは、受信メールに含まれる信頼できないHTMLやCSSを、ユーザーに害を及ぼさない形でレンダリングする必要があります。
Heyes氏による数か月にわたる調査により、これらのサニタイザーが「安全」と判定する内容と、実際にブラウザがレンダリングする内容との間に食い違いがあり、それが悪用可能な穴を生んでいることが判明しました。中には深刻なものもあり、Fastmailは実際にバグ報奨金を支払って修正に対応しています。
最も驚くべき発見の一つは、OpenAIのAtlasブラウザに関するものです。Heyes氏はCSSのbefore・after擬似要素と、ほぼゼロに近い不透明度を組み合わせることで、被害者に見える表示内容とAIが読み取る内容との間に食い違いを作り出しました。
被害者には翻訳が必要なフランス語のテキストが表示される一方で、その裏側にある言語モデルは、隠された注入済みの指示を読み取ってしまうのです。
被害者が「translate(翻訳)」といったキーワードを実行すると、Atlasは攻撃者が定義したデバッグ手順を実行し、ページから被害者の名前を抽出したうえで、攻撃者が管理するURLへブラウザタブを自動的に開いて情報を外部に送信してしまいます。
トークンの窃取は、JavaScriptを一切使わずとも可能であることが判明しました。純粋なCSSの属性セレクタとネストされたセレクタを組み合わせることで、Heyes氏は12文字の16進数認証トークンを総当たりで解読できることを実証しました。この中には、Medium.comの実際のログイントークンも含まれています。手法としては、背景画像(background-image)のリクエストを一文字ずつトリガーさせることで、データを漏洩させるというものです。
コンテンツセキュリティポリシー(CSP)によって外部リソースがすべてブロックされている場合でも、同氏はfont-faceルール、unicode-range、CSSアニメーションを組み合わせた「フォント高さオラクル」を構築し、数字の出現頻度を計測することで、スクリプトを一切使わずリンクのクリックだけで数値トークンを外部に送信することに成功しました。
Heyes氏が「CSSガジェット」と呼ぶ手法、すなわち正規のライブラリがposition:fixedのようにサニタイザーの許可リストに含まれないCSSプロパティを使って挿入するDOM要素を悪用することで、同氏はメールの信頼境界を完全に突破しました。
さらに、webkit-text-securityプロパティを使ってパスワード入力欄に見せかけたselect要素・option要素と、要素が画面外に移動した際に入力遅延がリセットされるというFirefox特有の挙動を組み合わせることで、メール内でMicrosoftのログイン画面を偽装できる、完全に機能するリアルタイムキーロガーを構築しました。しかもこれは、DOMPurifyによるフィルタリングをすり抜けた状態で実現されています。
その他にも、「CSSホットワイヤリング」と呼ばれる手法が発見されています。これはページ上のどこをクリックしても、意図しないUI操作(メッセージのピン留めやサイドバーの展開など)を引き起こすというもので、擬似要素が親要素のクリックイベントを継承する性質を悪用しています。
また、フィルタリングされていない「for」属性を持つHTMLのlabel要素を悪用し、Outlookのリボンインターフェースを遠隔操作する手法や、Chromeにおけるサニタイズ済みのキーフレーム・メディアクエリCSSが、パース(解析)後に悪意あるセレクタへと変換されてしまうCSSOMミューテーションのバグも発見されました。
下書きメールに貼り付けられた悪意あるCSSが、AOLやYahoo Mailにおけるレースコンディションを通じて、静かにトークンを窃取するクリップボードベースの攻撃も確認されています。
各ベンダーの対応はまちまちです。Fastmailは2件のミューテーションバグに対して1,000ドルの報奨金を支払い、修正を実施しました。一方、Outlookのlabelハイジャッキングのバグは、報告によれば未だ修正されていないとのことです。
ProtonMailは、自社のトラッカー保護に関する文書内容と矛盾するにもかかわらず、同様の発見内容に異議を唱えました。また、Gmailは繰り返し報告を受けているにもかかわらず、image-setのバイパス問題を依然として解決していません。
Heyes氏は対策として、メールコンテンツをサンドボックス化されたiframe内に隔離すること、HTMLサニタイザーでdata URLやselectメニューをブロックすること、has・checked・focusといったリスクの高いCSS擬似クラスを許可しないこと、CSSOMミューテーションを防ぐために厳格な文字許可リストを適用すること、そしてすべてのリモートリソースリクエストに画像プロキシを義務付け、トラッキングや情報流出を抑制することを推奨しています。
ANY.RUNのブラウザ内データ検査で、検知・調査・対応をより高速に。 フィッシングの可視性を完全に確保し、SOCを強化してMTTRを短縮しましょう
翻訳元: https://cyberpress.org/css-email-attack-hackers-steal-passwords-tokens-hijack-ai-browsers/