📣 DOM-based Extension Clickjacking: ブラウザ拡張機能ã®ãƒªã‚¹ã‚¯ã¨å¯¾ç­–

📣 DOM-based Extension Clickjacking: ブラウザ拡張機能ã®ãƒªã‚¹ã‚¯ã¨å¯¾ç­–

構造的リスク分類ã¨ãƒ¦ãƒ¼ã‚¶ãƒ¼æ•™è‚²ã‚·ãƒªãƒ¼ã‚º

âš ï¸ Part 1|DOM-based Extension Clickjackingã¨ã¯ï¼Ÿ

DOM-based Extension Clickjackingã¯ã€ãƒ–ラウザ拡張機能(特ã«ãƒ‘スワード管ç†ã‚½ãƒ•ト)を悪用ã—ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ©Ÿå¯†æƒ…報を盗む攻撃手法ã§ã™ã€‚ãƒã‚§ã‚³ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ç ”究者Marek Tóthæ°ãŒ2025å¹´8月ã®DEF CON 33ã§ç™ºè¡¨ã—ã€è©³ç´°ã‚’ブログã§å…¬é–‹ã—ã¾ã—ãŸ[2]。

攻撃ã®ä»•組ã¿

  1. 攻撃者ãŒå½ã®Webサイトを作æˆã—ã€ãƒãƒƒãƒ—アップやCookieåŒæ„ãƒãƒŠãƒ¼ãªã©ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒè‡ªç„¶ã«ã‚¯ãƒªãƒƒã‚¯ã™ã‚‹UIè¦ç´ ã‚’表示。
  2. ãã®èƒŒå¾Œã«é€æ˜Žãªãƒ­ã‚°ã‚¤ãƒ³ãƒ•ォームを隠ã—ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚¯ãƒªãƒƒã‚¯ã‚’誘導。
  3. パスワード管ç†ã‚½ãƒ•トãŒè‡ªå‹•入力を行ã„ã€å…¥åŠ›ã•ã‚ŒãŸæƒ…報(ログイン情報ã€ã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã‚«ãƒ¼ãƒ‰ã€TOTPコードãªã©ï¼‰ãŒæ”»æ’ƒè€…ã®ã‚µãƒ¼ãƒãƒ¼ã«é€ä¿¡ã•れる。
  4. JavaScriptã§DOMæ“作を行ã„ã€æ‹¡å¼µæ©Ÿèƒ½ã®UIè¦ç´ ã‚’逿˜ŽåŒ–ã™ã‚‹ã“ã¨ã§ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«æ°—ã¥ã‹ã‚Œãšã«æƒ…報窃å–ãŒå¯èƒ½[1]。

クリックジャッキングã®ä»•組ã¿ã¨å¯¾ç­–

クライアントå´ã®ã‚¤ãƒ©ã‚¹ãƒˆ
クライアントサイド防止策
クライアントãŒã‚¯ãƒªãƒƒã‚¯ã‚¸ãƒ£ãƒƒã‚­ãƒ³ã‚°ã®è©¦ã¿ã‚’é˜²ãæ–¹æ³•
  • フレームãƒã‚¹ãƒ†ã‚£ãƒ³ã‚°ã‚¹ã‚¯ãƒªãƒ—トã®å®Ÿè£…
  • アンãƒã‚¯ãƒªãƒƒã‚¯ã‚¸ãƒ£ãƒƒã‚­ãƒ³ã‚°ãƒ–ラウザ拡張機能ã®åˆ©ç”¨
  • アンãƒã‚¦ã‚¤ãƒ«ã‚¹ã‚½ãƒ•トウェアã®å°Žå…¥
攻撃ã®ä»•組ã¿ï¼ˆãƒ•ロー図)
ã‚¯ãƒªãƒƒã‚¯ã‚¸ãƒ£ãƒƒã‚­ãƒ³ã‚°æ”»æ’ƒã®æµã‚Œã‚’視覚化
攻撃者ãŒå½ã®Webサイトを作æˆã—ã€ãƒãƒƒãƒ—アップやCookieåŒæ„ãƒãƒŠãƒ¼ãªã©ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒè‡ªç„¶ã«ã‚¯ãƒªãƒƒã‚¯ã™ã‚‹UIè¦ç´ ã‚’表示
ãã®èƒŒå¾Œã«é€æ˜Žãªãƒ­ã‚°ã‚¤ãƒ³ãƒ•ォームを隠ã—ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚¯ãƒªãƒƒã‚¯ã‚’誘導
パスワード管ç†ã‚½ãƒ•トãŒè‡ªå‹•入力を行ã„ã€å…¥åŠ›ã•ã‚ŒãŸæƒ…報(ログイン情報ã€ã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã‚«ãƒ¼ãƒ‰ã€TOTPコードãªã©ï¼‰ãŒæ”»æ’ƒè€…ã®ã‚µãƒ¼ãƒãƒ¼ã«é€ä¿¡
JavaScriptã§DOMæ“作を行ã„ã€æ‹¡å¼µæ©Ÿèƒ½ã®UIè¦ç´ ã‚’逿˜ŽåŒ–ã—ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«æ°—ã¥ã‹ã‚Œãšã«æƒ…報窃å–
サーãƒãƒ¼ã‚µã‚¤ãƒ‰é˜²æ­¢ç­–
サーãƒãƒ¼ãŒã‚¯ãƒªãƒƒã‚¯ã‚¸ãƒ£ãƒƒã‚­ãƒ³ã‚°ã®è©¦ã¿ã‚’é˜²ãæ–¹æ³•
  • X-Frame-Options ヘッダーã®è¨­å®šï¼ˆDENYã¾ãŸã¯SAMEORIGIN)
  • Content Security Policy (CSP) ã®å®Ÿè£…ã§ãƒ•レーム制é™
  • SameSite Cookie 属性(Strict/Laxï¼‰ã®æ´»ç”¨
  • HTTPS ã®å¼·åˆ¶å®Ÿè£…ã§é€šä¿¡ã®å®‰å…¨ç¢ºä¿
サーãƒãƒ¼å´ã®ã‚¤ãƒ©ã‚¹ãƒˆ

🔠Part 2|パスワード管ç†ã‚½ãƒ•トã®è‡ªå‹•入力挙動比較

以下ã®è¡¨ã¯ã€ä¸»è¦ãªãƒ‘スワード管ç†ã‚½ãƒ•トã®è‡ªå‹•入力挙動ã¨å®‰å…¨æ€§ã‚’比較ã—ãŸã‚‚ã®ã§ã™ã€‚

製å“å クレジットカード 個人情報 ログイン情報 TOTPコード パスキー
1Passwordâœ…ï¼ˆå®‰å…¨ï¼‰â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1クリック
Bitwardenâ˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 0ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1クリック
Dashlaneâœ…ï¼ˆå®‰å…¨ï¼‰âœ…ï¼ˆå®‰å…¨ï¼‰â˜ ï¸ *ï¼ˆä¸æ˜Žï¼‰âœ…ï¼ˆå®‰å…¨ï¼‰â˜ ï¸ 1クリック
Enpassâ˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 0クリック✅(安全)
iCloud Passwordséžå¯¾å¿œéžå¯¾å¿œâ˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1クリック✅(安全)
Keeper🟧 5クリック🟧 5ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 0ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1クリック
LastPassâ˜ ï¸ 2ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 2ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 2ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 0クリック*â˜ ï¸ 1クリック
LogMeOnceâ˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1クリック*â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1クリック
NordPassâœ…ï¼ˆå®‰å…¨ï¼‰â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 0クリック*â˜ ï¸ 1クリック
ProtonPasséžå¯¾å¿œâ˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1クリック✅(安全)
RoboFormâ˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1ã‚¯ãƒªãƒƒã‚¯â˜ ï¸ 1クリック

ã‚¢ã‚¤ã‚³ãƒ³ã®æ„味

  • âœ…ï¼šå®‰å…¨ã€æ”»æ’ƒæ‰‹æ³•ã«å¯¾ã—ã¦ç„¡åŠ¹åŒ–æ¸ˆã¿ã¾ãŸã¯å½±éŸ¿ãªã—
  • ☠ï¸ï¼šè„†å¼±ã€æ”»æ’ƒã«ã‚ˆã£ã¦æƒ…å ±ãŒç›—ã¾ã‚Œã‚‹å¯èƒ½æ€§ã‚り
  • 🟧:æ“作ãŒè¤‡é›‘(例:5クリック必è¦ï¼‰ã ãŒã€å®Œå…¨ã«å®‰å…¨ã¨ã¯è¨€ãˆãªã„
  • éžå¯¾å¿œï¼šãã®æƒ…報種別ã«å¯¾ã—ã¦æ©Ÿèƒ½ãŒãªã„ï¼ä¿å­˜ã§ããªã„

視覚化:脆弱性分布

👣 Part 3ï½œå½±éŸ¿ã®æ·±åˆ»åº¦ã¨å¯¾è±¡

ãªãœå±é™ºãªã®ã‹ï¼Ÿ

  • ãŸã£ãŸ1ã‚¯ãƒªãƒƒã‚¯ã§æ¼æ´©ï¼šCookieãƒãƒŠãƒ¼ã‚„CAPTCHAã®ãƒœã‚¿ãƒ³ã®èƒŒå¾Œã«é€æ˜Žãªãƒ­ã‚°ã‚¤ãƒ³ãƒ•ォームを隠ã—ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚¯ãƒªãƒƒã‚¯ã§è‡ªå‹•入力ãŒãƒˆãƒªã‚¬ãƒ¼ã•れる[2]。
  • 対象拡張機能:Chromeã€Firefoxã€Edgeãªã©ã§åˆ©ç”¨ã•れる11種類ã®ãƒ‘スワード管ç†ã‚½ãƒ•ト(約4,000万インストール)ãŒå½±éŸ¿ã‚’å—ã‘ã‚‹[2]。
  • 技術的特徴:
    • DOMæ“ä½œã§æ‹¡å¼µæ©Ÿèƒ½ã®UIã‚’é€æ˜ŽåŒ–。
    • XSSやキャッシュãƒã‚¤ã‚ºãƒ‹ãƒ³ã‚°ã¨çµ„ã¿åˆã‚ã›ã€ä¿¡é ¼ã•れãŸã‚µã‚¤ãƒˆã§ã‚‚攻撃ãŒå¯èƒ½ã€‚

ç›—ã¾ã‚Œã‚‹å¯èƒ½æ€§ã®ã‚る情報

種類 説明 脆弱ãªè£½å“数(11製å“中)
ログイン情報ユーザーåã€ãƒ‘スワード10製å“
TOTPコード二è¦ç´ èªè¨¼ç”¨ã®ä¸€æ™‚コード10製å“
クレジットカード情報番å·ã€æœ‰åŠ¹æœŸé™ã€CVV6製å“
個人情報æ°åã€ä½æ‰€ã€é›»è©±ç•ªå·ãªã©8製å“
パスキーWebAuthnãªã©ã®èªè¨¼æƒ…å ±8製å“

â›‘ï¸ Part 4ï½œå¯¾ç­–ã¨æŽ¨å¥¨è¨­å®š

ユーザーå‘ã‘対策

対策項目 内容 ãªãœæœ‰åйã‹
オートフィルã®ç„¡åŠ¹åŒ–è‡ªå‹•å…¥åŠ›ã‚’ã‚ªãƒ•ã«ã™ã‚‹é€æ˜Žãªå…¥åŠ›æ¬„ã«æƒ…å ±ãŒå…¥ã‚‹ã®ã‚’防ã
コピー&ペーストã§å…¥åŠ›æ‰‹å‹•ã§æƒ…報を入力自動入力ãŒãƒˆãƒªã‚¬ãƒ¼ã•れãªã„
完全ãªURL一致ã§è‡ªå‹•入力https://example.com/login ã®ã‚ˆã†ã«å®Œå…¨ä¸€è‡´ã®ã¿è¨±å¯ã‚µãƒ–ドメイン乗ã£å–りやå½è£…を防ã
拡張機能ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’「クリック時ã€ã«è¨­å®šChromeã‚„Edgeã§æ‹¡å¼µæ©Ÿèƒ½ã®å‹•ä½œã‚’åˆ¶é™æ˜Žç¤ºçš„ãªæ“作ãŒãªã„é™ã‚Šæƒ…å ±ãŒå…¥åŠ›ã•れãªã„

開発者å‘ã‘対策

  • Manifest V3ã®æŽ¡ç”¨ï¼šDOMæ“作やスクリプト実行ã®åˆ¶é™ã‚’強化。
  • CSP(Content Security Policyï¼‰å¼·åŒ–ï¼šä¸æ­£ã‚¹ã‚¯ãƒªãƒ—トやインラインスクリプトをブロック。
  • 逿˜ŽåŒ–防止:DOMæ“作を最å°é™ã«ã—ã€å…¥åŠ›æ¤œçŸ¥ã‚’å¼·åŒ–ã€‚
  • X-Frame-Options: DENY:サイトãŒiframeã§ã®è¡¨ç¤ºã‚’ç¦æ­¢ã€‚

対応状æ³ï¼ˆ2025å¹´8月時点)

  • 修正済ã¿ï¼šDashlane (v6.2531.1)ã€Keeper (v17.2.0)ã€NordPassã€ProtonPassã€RoboFormã€Bitwarden (v2025.8.0)。
  • 未修正:
    • 1Password (v8.11.4.27):修正予定ãªã—ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ç¢ºèªå¼·åŒ–を計画。
    • LastPass (v4.146.3):修正優先度低。
    • LogMeOnce (v7.12.4):連絡無応答ã€å®Œå…¨è„†å¼±ã€‚
    • Enpass (v6.11.6)ã€iCloud Passwords (v3.1.25):修正作業中。
🚨 推奨:最新ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«æ›´æ–°ã—ã€è‡ªå‹•入力を無効化。怪ã—ã„ãƒãƒƒãƒ—アップやオーãƒãƒ¼ãƒ¬ã‚¤ã«æ³¨æ„。

📵 Part 5|ユーザーã®å®Ÿè·µã‚¬ã‚¤ãƒ‰

ãƒã‚§ãƒƒã‚¯ãƒªã‚¹ãƒˆ

  • æ‹¡å¼µæ©Ÿèƒ½ã®æ¨©é™ã‚’確èªã—ã€ä¸è¦ãªã‚‚ã®ã¯ç„¡åŠ¹åŒ–ã€‚
  • 怪ã—ã„サイト(ãƒãƒƒãƒ—アップã€CookieãƒãƒŠãƒ¼ã€CAPTCHAï¼‰ã«æ³¨æ„。
  • 自動入力をオフã«ã—ã€ã‚³ãƒ”ー&ペーストã§å…¥åŠ›ã€‚
  • 完全ãªURL一致ã®ã¿ã§è‡ªå‹•入力を許å¯ã€‚
  • ãƒ–ãƒ©ã‚¦ã‚¶ã‚„æ‹¡å¼µæ©Ÿèƒ½ã‚’å¸¸ã«æœ€æ–°ã«ä¿ã¤ã€‚
  • ä¿¡é ¼ã§ãるソフト(Dashlaneã€Bitwardenã€NordPassï¼‰ã‚’é¸æŠžã€‚

ãŠã™ã™ã‚設定

  • Chromium系ブラウザ:拡張機能ã®ã‚µã‚¤ãƒˆã‚¢ã‚¯ã‚»ã‚¹ã‚’「クリック時ã€ã«è¨­å®šã€‚
  • パスワード管ç†ã‚½ãƒ•ト:強力ãªãƒžã‚¹ã‚¿ãƒ¼ãƒ‘スワードã¨2è¦ç´ èªè¨¼ã‚’設定。

👥🚨🧯 © 2025 ブラウザ構造教育シリーズ|🧯 構造批評ã¨ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¨ãƒ³ãƒ‘ワメント

[1]: Marek Tóth, "DOM-based Extension Clickjacking", DEF CON 33, 2025.
[2]: Tóth's Blog, "Password Manager Vulnerabilities", August 2025.