>
>
公開日
Webサイトを閲覧しているだけで、知らないうちにSNSへ投稿されたり、意図せず商品を購入させられたりする危険性があることをご存知でしょうか。これは、Webサイトの脆弱性を突いてユーザーに意図しない操作を強要する「クリックジャッキング攻撃」の代表的な手口です。
攻撃者は、Webページ上に透明な要素を重ねるなどの手法で視覚的な欺瞞を生み出します。近年ではPCだけでなくスマホでの被害や、パスワードマネージャーの拡張機能を狙った新たな手口も報告されており、情シス部門やWebサイト運営者にとって根本的な対策が急務となっています。
本記事では、クリックジャッキングとは何かという基本から、最新の手口やスマホでの事例、CSRFとの違い、そしてエンジニア向けのAWSやWAFを用いた具体的な対策方法までをわかりやすく解説します。

クリックジャッキングとは
クリックジャッキングとは、ユーザーのクリック操作を乗っ取り、意図しないアクションを実行させるインターフェースベースのサイバー攻撃です。
Webページの見た目を偽装することから「UIレッドレッシング(UI Redressing)」とも呼ばれます。攻撃者は、ユーザーが本来クリックしようとしているボタンやリンクの上に、透明な悪意のあるページを重ねて表示します。ユーザーは正規の操作をしていると信じ込んだまま、実際には攻撃者が仕込んだ見えないボタンをマウスや画面タップで誤ってクリックさせられる仕組みになっています。攻撃に気づかないまま被害に遭うケースが後を絶たない点が、この手法の最大の特徴です。
この記事でわかること
クリックジャッキングの仕組みと、透明な要素の重ね合わせによってユーザーの意図しないクリック操作が強要される理由がわかる
2025〜2026年の最新手口(パスワードマネージャー拡張機能を狙うDOMベース攻撃・スマホのOSアニメーションを悪用した「TapTrap」)を理解できる
レガシーな「X-Frame-Options」から「CSP(frame-ancestors)」へ移行すべき理由と具体的な設定方法がわかる
HTMLのmetaタグでのCSP指定が無効になる理由と、Webサーバー・CDN側でHTTPレスポンスヘッダーを制御すべき根拠を理解できる
対象読者と求められるセキュリティ体制
本記事は、Webシステムを管理する情シス部門の担当者、Webアプリケーションの設計を行うフロントエンド・インフラエンジニア、およびセキュリティガバナンスを主管するIT責任者を主な対象としています。特に、個人データを扱うSaaS、ECサイト、顧客ポータルなどを運営している法人は、セキュリティ対策の遅れが直接的なブランド毀損や法的責任に直結するため、本稿で示す**HTTPレスポンスヘッダー**の最適な設定を早急に確認してください。
日本国内におけるWebアプリケーション攻撃の激化
クリックジャッキングをはじめとするWebの脆弱性を突いた攻撃は、近年爆発的に増加しています。株式会社サイバーセキュリティクラウドが発表したレポート(2025年1月〜12月観測データ)によると、日本国内のWebアプリケーションに対するサイバー攻撃の年間総検知数は約20.2億件に達し、前年比で182%も増加して過去最高を記録しました。1日あたり約554万回、1秒あたり約64回という猛烈な頻度で攻撃スキャンが実行されており、「自社のサイトは小規模だから狙われない」という前提はもはや通用しません。IPAの「情報セキュリティ10大脅威 2025」においても、組織向け脅威の第3位に「システムの脆弱性を突いた攻撃」がランクインしています。システムの不適切な設定(HTTPヘッダの欠如など)を放置することは、重大なインシデントに直結します。
クリックジャッキングとCSRF(クロスサイトリクエストフォージェリ)の違い
クリックジャッキングとCSRFは、ログイン済みユーザーに意図しない操作を実行させる点では共通しますが、攻撃のメカニズムと防御アプローチは根本的に異なります。
比較項目 | クリックジャッキング | CSRF(クロスサイトリクエストフォージェリ) |
|---|---|---|
攻撃のターゲット | ユーザーの視覚的誤認と物理的なクリック操作 | ユーザーのセッション(認証情報)と自動リクエスト |
防御レイヤー | UI・表示制限(他ドメインからのフレーム読み込み防止) | セッション・リクエスト制限(送信元の検証) |
ユーザーの自覚 | 別のボタンをクリックしたという物理的動作の自覚はある | 操作の自覚が全くなく、バックグラウンドで処理される |
攻撃の検知難易度 | 極めて高い(物理的クリックが正規の動作に見えるため) | 中(リクエストのOriginやトークン不一致により検知可能) |
主要な攻撃手法 | 透明化(opacity)したiframeのオーバーレイ等 | 罠サイトからの自動POST、画像タグ(img)の悪用など |
有効な主な対策 | CSP(frame-ancestors)、適切なWAF設定 | CSRFトークン、SameSite Cookie属性、Origin検証 |
CSRF対策として「CSRFトークン」を導入していても、クリックジャッキングは防げません。クリックジャッキングでは、ターゲットの正規ページがそのままiframe内に読み込まれており、ユーザー自身が物理的にボタンをクリックするため、サーバー側からは「完全に正規のセッションによるリクエスト」として処理されてしまうからです。
▲ クリックジャッキングとCSRF(クロスサイトリクエストフォージェリ)の根本的な違い
クリックジャッキングによる具体的な被害事例
クリックジャッキングの被害は、SNSの乗っ取りから金銭的被害、さらにはスマホ特有の不正アプリ連携まで多岐にわたります。
以下に、実際に報告されている代表的な被害事例と、近年の巧妙な攻撃手口を解説します。
SNSアカウントの乗っ取りと意図しない投稿
過去に最もよく知られた事例の一つが、SNSアカウントの乗っ取りです。攻撃者は「限定クーポンはこちら」といった魅力的なボタンを設置した罠サイトを用意します。ユーザーがそのボタンをクリックすると、透明化されて配置されたSNSの「いいね!」ボタンやシェアボタンが押され、意図せずスパムメッセージを自身のタイムラインに投稿してしまいます。これにより、マルウェアの拡散に加担させられる被害が発生しました。
意図しない商品購入やサービス契約
金銭的な被害に直結するケースです。ECサイトにログインした状態のユーザーを罠サイトに誘導し、「景品が当たるスロットを回す」などの無害な操作に見せかけて、実際には透明化された「商品を購入する」ボタンをクリックさせます。ユーザーはゲームを楽しんでいるつもりでも、裏では高額な商品が購入されている事態になりかねません。
【スマホ特有】アニメーション悪用「TapTrap」と不正アプリ連携
スマホ環境では、デスクトップ環境以上にクリックジャッキングの脅威が高まっています。特にスマホの狭い画面と、指で直感的に画面を押すタップ操作の特性が狙われます。
不正なアプリ連携(OAuth認可の悪用):動画再生ボタンをタップしたつもりが、裏に隠された「アプリ連携を許可する」ボタンをタップさせられ、連絡先や写真データへのアクセス権限を攻撃者に奪われる被害が確認されています。
Androidの最新脆弱性「TapTrap」攻撃(2025年最新発表):2025年7月にウィーン工科大学(TU Wien)などの研究チームが発表した「TapTrap」は、従来のスマホ向け対策をすり抜ける新手法です。従来のOSによる「重ね合わせ検知(オーバーレイ制御)」を回避するため、OSの画面遷移アニメーション(フェードイン・フェードアウト等)の実行時間差を悪用します。無害なゲームの操作中に一瞬だけ重要な設定画面(デバイスの初期化や権限許可など)を差し挟み、アニメーション中の不要なウィンドウ描画遅延を利用して、ユーザーに意図しない承認タップを強制的に実行させます。
Webサイト運営者向けセキュリティ自己診断チェックリスト
自社サイトがクリックジャッキングの標的になりやすい状態か、以下の項目でセルフチェックを行ってください。1つでも当てはまる場合は、速やかな対策の実施が求められます。
[ ] ログイン機能およびセッション管理を伴うWebアプリケーションである
[ ] パスワード変更、退会、送金など、重要な状態変更を伴う操作ボタンが存在する
[ ] HTTPレスポンスヘッダーに「Content-Security-Policy(CSP)」が一切設定されていない
[ ] WebサーバーやWAF、CDN(AWS CloudFront等)で、フレーム埋め込み制限の制御ポリシーを適用していない
クリックジャッキングの攻撃手法と技術的な罠
攻撃手法は、従来のiframeを用いた手法から、ブラウザ拡張機能を狙った高度なDOMベースの手法へと進化しています。
防御を確実にするために、攻撃者が用いる具体的な手法と、エンジニアが陥りがちなセキュリティ対策の「罠」を把握しておくことが重要です。
iframeによるページの重ね合わせと透明化
最も基本的なやり方は、HTMLのiframeタグとCSSを利用したものです。攻撃者は、まずiframeを使って自身の罠サイト上に正規のWebサイトを読み込みます。次に、正規サイトの要素の透明度(CSSのopacity)を0に設定して不可視化し、罠サイトのダミーボタンの上に重ねます。そして、positionプロパティなどを駆使して、ユーザーがクリックしたくなる偽ボタンの真下に、正規サイトの重要なボタンが来るように配置します。
ダブルクリックジャッキング
ダブルクリックジャッキングは、通常のクリックジャッキングをさらに巧妙にした発展的な手口です。ユーザーに連続して2回クリックさせることを前提としており、1回目のクリックではユーザーが期待する無害な動作(ポップアップの閉じるボタンなど)を実行して警戒心を解きます。その直後、JavaScript等を用いてページのレイアウトを瞬時に変更し、2回目のクリックで本来の目的である悪意のある操作(権限の付与など)を物理的に実行させます。
【2025-2026年最新】DOMベースの拡張機能クリックジャッキング
2025年8月にセキュリティカンファレンス「DEF CON 33」にて、研究者のMarek Tóth氏が発表し世界的に大きな話題となったのが「DOMベースの拡張機能クリックジャッキング」です。これは、従来の「他サイトをiframeで埋め込む」手法とは根本的に異なります。ユーザーが日常的に導入している「パスワードマネージャー」や「暗号資産ウォレット」などのブラウザ拡張機能が、WebページのDOMに直接注入するUI要素(自動入力:オートフィルのツールチップ等)を透明化して悪用する手法です。攻撃者は罠サイトに不可視のログインフォームを設置し、自動入力機能を呼び出すことで、1PasswordやBitwardenなどの主要な11のパスワードマネージャーから、ユーザーの1クリックだけで認証情報や二要素認証(2FA)コード、クレジットカード情報を自動入力させて盗み出します。この脆弱性は、世界で累計4,000万インストール以上の製品に影響を与えました。
【やってはいけない対策】JavaScriptによる「Frame-Busting」のバイパス
古くから存在するクリックジャッキング対策として、JavaScriptを用いて if (top != self) { top.location = self.location; } のように記述し、自サイトがiframeに埋め込まれた場合に親ウィンドウを強制的にリダイレクトさせる「Frame-Busting(フレームバスター)」という手法があります。しかし、この対策は現代では全く機能しません。攻撃者はiframeにHTMLの sandbox 属性(sandbox="allow-forms allow-scripts" など、allow-top-navigation を付与しない設定)を適用するだけで、このJavaScriptによるリダイレクト処理を簡単にバイパス(無効化)できます。JavaScriptによる対策はセキュリティの気休めにもならず、必ずHTTPヘッダーによってブラウザのレンダリング前に処理を制御する必要があります。
▲ クリックジャッキング攻撃におけるWebページの重なりとユーザー操作の仕組み
Webサイト運営者が行うべきクリックジャッキング対策
Webサイトの運営者にとって、クリックジャッキング対策は自社サービスの信頼性を維持するために不可欠です。
以下に、IT管理者およびエンジニアが取るべき、2026年現在のベストプラクティスを解説します。
1. CSP(Content-Security-Policy)の frame-ancestors への完全移行
現在、クリックジャッキング対策のグローバルスタンダードは、HTTPレスポンスヘッダにCSPの frame-ancestors ディレクティブを設定することです。過去の多くのセキュリティ記事では X-Frame-Options の利用が推奨されており、特に特定のサイトのみを許可する ALLOW-FROM という設定値が紹介されていました。しかし、W3CやMDNではこのヘッダーをレガシー(旧仕様)扱いとしており、現在主要なブラウザの多くは ALLOW-FROM のサポートを終了しています。この設定値に依存していると、ブラウザ側で無視され、クリックジャッキング攻撃を防げないという深刻な失敗パターンに陥ります。したがって、MDNのCSP: frame-ancestors仕様に従い、以下のいずれかのCSPヘッダを設定します。
一切の埋め込みを禁止する場合: Content-Security-Policy: frame-ancestors 'none';
自サイト(同一オリジン)のみ許可する場合: Content-Security-Policy: frame-ancestors 'self';
特定の外部サイトのみ許可する場合: Content-Security-Policy: frame-ancestors 'self' https://trusted-partner.example.com;
【エンジニアの陥りがちな失敗】HTMLの meta タグによる設定ミス
セキュリティ対策を実装する際、エンジニアがHTMLコード内(headタグ内)に以下のように記述してしまうミスが頻発しています。。frame-ancestors ディレクティブは、HTMLの meta タグでの指定が仕様上、完全に禁止されています。この記述を行った場合、ブラウザ側では設定自体が完全に無視されるため、対策を施したつもりでもシステムは完全に無防備な状態のままになってしまいます。CSPの設定は、必ずWebサーバー(Nginx、Apache)やCDNから送信される HTTPレスポンスヘッダー として送信しなければなりません。
2. AWS CloudFrontによる「CSP frame-ancestors」の一元適用
アプリケーション側(Origin)のソースコードを書き換えることなく、エッジ環境で一括してクリックジャッキング対策を行うための効果的な手段が、AWS CloudFrontの「レスポンスヘッダーポリシー(Response Headers Policies)」です。
AWS CloudFrontでの設定手順
AWS Management Consoleにログインし、CloudFrontのコンソールを開きます。
左側ナビゲーションメニューから「ポリシー(Policies)」を選択し、「レスポンスヘッダー(Response headers)」タブをクリックします。
「レスポンスヘッダーポリシーを作成(Create response headers policy)」をクリックします。
ポリシー名(例:CustomClickjackingProtectionPolicy)を入力します。
「セキュリティヘッダー(Security headers)」の設定項目までスクロールし、「Content-Security-Policy」を有効(Overrideをオン)にします。
ポリシーのコンテンツ部分に、以下のコードを指定します。frame-ancestors 'self'
「作成」をクリックしてカスタムポリシーを保存します。
該当するCloudFrontのディストリビューションを選択し、「ビヘイビア(Behaviors)」タブから対象のビヘイビアを編集します。
「レスポンスヘッダーポリシー(Response headers policy - optional)」のドロップダウンから、先ほど作成したカスタムポリシーを選択して保存します。
【注意】AWS標準ポリシーに頼る罠
CloudFrontには「SecurityHeadersPolicy」というマネージド(標準)ポリシーが最初から用意されていますが、これを選択して安心してしまうのは危険です。AWSの標準ポリシーに含まれているのは、古い仕様である X-Frame-Options: SAMEORIGIN のみです。より強固でモダンな frame-ancestors はデフォルトポリシーに含まれていません。そのため、必ず上記の手順に沿って、カスタムのレスポンスヘッダーポリシーを作成し一元適用するようにしてください。
▲ Webサイト運営者が採用すべきクリックジャッキング対策の選定プロセス
一般ユーザーができるクリックジャッキング対策
サーバー側でのセキュリティ対策が不足しているWebサイトを利用する場合に備え、ユーザー個人や組織内のデバイス利用者が実践すべき自衛策も存在します。
パスワードマネージャー拡張機能の迅速なアップデート
「DOMベース拡張機能クリックジャッキング」のような最新の脅威から身を守るためには、Google ChromeやMicrosoft Edge、Firefoxなどのブラウザ本体だけでなく、導入しているブラウザ拡張機能を常に最新バージョンに保つ必要があります。Bitwarden(バージョン「2025.8.2」以降)、Enpass(「6.11.6」以降)、LogMeOnce(「7.12.7」以降)などの主要ベンダーは、DOM操作による自動入力の意図しない挙動を防ぐセキュリティ修正を完了させています。また、パスワードマネージャーの設定で、認証情報の自動入力(オートフィル)機能を「自動」から「クリックによる手動実行のみ」に変更することも非常に有効な対策です。
Androidユーザーにおける「TapTrap」への自衛策
Android OSのアニメーション遷移時間の隙を突く「TapTrap」攻撃を防ぐためのモバイル自衛策として、信頼できない「野良アプリ(Google Play以外からダウンロードするAPKファイル)」のインストールを徹底的に避けることが重要です。さらに、物理的な自衛策として、Androidの「設定」>「開発者向けオプション」から、ウィンドウアニメスケール、遷移アニメスケール、Animator回数スケールの3つの項目をすべて「アニメーションオフ」に設定することで、OS側のフェードイン等の処理遅延がなくなり、アニメーション時間差を悪用したタップジャッキングを防ぐことができます。
出典・参考文献
本稿で解説した技術的データおよび脆弱性情報の一次情報源です。詳細な仕様や発表内容については、以下の公式リソースを参照してください。
よくある質問(FAQ)
Q:一見問題のなさそうなバナー上に、透明なバナーを重ねておき、クリックした閲覧者を攻撃用のサイトに誘導し、ウイルスに感染させる手口は何ですか?
A:それは「クリックジャッキング(またはクリックジャッキング攻撃)」と呼ばれるサイバー攻撃手法です。このフレーズは、IPAの情報処理技術者試験(基本情報・応用情報)でも頻出するクリックジャッキングの代表的な定義です。ユーザーの視覚的な誤認を誘発して、意図しないクリックを物理的に強要するUIレッドレッシング攻撃の一種として広く知られています。
Q:ダブルクリックジャッキングとは何ですか?
A:通常のクリックジャッキングを応用し、ユーザーに意図的に2回連続で画面をタップ・クリックさせるよう誘導する巧妙な手法です。1回目のクリックで「ポップアップを閉じる」といったユーザーが期待する無害な動作を処理した直後、瞬時にページのレイアウトやiframeの位置を書き換え、2回目のクリックで攻撃者が狙う本命のボタンをタップさせます。
Q:フォームジャッキングはクリックジャッキングと同じ意味ですか?
A:根本的に異なる別のサイバー攻撃です。クリックジャッキングが「透明なレイヤーを重ね合わせてユーザーのクリック操作を乗っ取る」のに対し、フォームジャッキングは「ECサイトの決済画面などの入力フォームに悪意あるJavaScript(スキミングコード)を注入し、入力されたクレジットカード情報等のテキストデータを直接盗む」手法を指します。
Q:X-Frame-Optionsヘッダを「SAMEORIGIN」に設定していれば安全ですか?
A:旧来のブラウザ環境では有効ですが、2026年現在のセキュリティとしては不十分です。X-Frame-Optionsは古い仕様(レガシー)であり、現在の主要ブラウザにおける標準的なセキュリティ対策は、より細かく安全な制御ができる「Content-Security-Policy(CSP)のframe-ancestors」ディレクティブへの完全移行が推奨されています。
まとめ
Webサイトのクリック操作を乗っ取るクリックジャッキングは、従来の「透明なiframeの重ね合わせ」から、ブラウザ拡張機能を標的にするDOMベース攻撃や、スマホのOSアニメーションを悪用した「TapTrap」など、2026年現在も非常に巧妙な進化を遂げています。もはや「X-Frame-Options」やJavaScriptによる「Frame-Busting」といった古い対策のみでは、巧妙化する攻撃を完全に防ぐことはできません。
企業の情シス部門やWebエンジニアが明日から取り組める最初の一歩は、自社が運営するWebサービスのレスポンスヘッダー設定状況を今すぐ確認することです。そして、レガシーな設定を速やかに廃止し、AWS CloudFrontやWebサーバー側で「Content-Security-Policy: frame-ancestors 'self'」を導入する検討を開始してください。このヘッダー設定1行が、クリックジャッキング対策の確実な土台になります。
本記事の内容に誤り等がございましたら、こちらからご連絡ください。
監修
Admina Team
情シス業務に関するお役立ち情報をマネーフォワード Adminaが提供します。
SaaS・アカウント・デバイスの管理を自動化し、IT資産の可視化とセキュリティ統制を実現。
従業員の入退社対応や棚卸し作業の工数を削減し、情報システム部門の運用負荷を大幅に軽減します。
中小企業から大企業まで、情シス・管理部門・経営層のすべてに頼れるIT管理プラットフォームです。




