対象試験と出題頻度
詳細をクリックして確認
情報セキュリティマネジメント
基本情報技術者
応用情報技術者
★★☆☆☆
ランクC(応用)
用語の定義
クリックジャッキングとは、一言で言うと「透明な罠のページを重ねて、ユーザーに意図しないボタンやリンクをクリックさせる攻撃」のことです。
イメージとしては、「『無料プレゼントはこちら』と書かれたボタンの上に、見えない『銀行口座から送金』ボタンが重ねられていて、押したつもりが送金してしまう」ようなものです。
ユーザーは自分が何をクリックしたのか気づかないまま、意図しない操作を実行させられてしまう巧妙な攻撃手法です。
解説
クリックジャッキング(Clickjacking)は、「クリック」と「ハイジャック(乗っ取り)」を組み合わせた造語で、「UI Redressing(UI偽装)攻撃」とも呼ばれます。攻撃者は、正規のWebページ(SNS、銀行サイトなど)をiframe(インラインフレーム)で読み込み、その上に透明なレイヤーや偽のコンテンツを重ねます。ユーザーは見えているコンテンツをクリックしているつもりですが、実際には透明なiframe内の別のボタンをクリックしてしまいます。
- 攻撃の仕組み:攻撃者は罠サイトを作成し、iframeで正規サイトを読み込みます。CSSを使ってiframeを透明にし、魅力的なコンテンツ(「動画を再生」「賞品を受け取る」など)を表示します。ユーザーがそのコンテンツをクリックすると、実際には透明なiframe内の「いいね」ボタンや「購入」ボタンなどがクリックされます。
- CSRFとの違い:CSRF(クロスサイトリクエストフォージェリ)はユーザーの認証情報を悪用してリクエストを偽造しますが、クリックジャッキングはユーザー自身に実際のクリック操作をさせる点が異なります。
クリックジャッキング攻撃が成功すると、SNSでの意図しない「いいね」や「フォロー」、Webカメラやマイクの有効化、設定の変更、商品の購入、送金操作など、クリック1つで実行できるあらゆる操作が悪用される危険があります。特にログイン中のサービスで被害が発生しやすいです。
具体的な活用例・対策
クリックジャッキング対策は、主にWebサイト運営者側で行うサーバー設定と、ユーザー側のブラウザ設定の両面から行います。
- X-Frame-Optionsヘッダーの設定: HTTPレスポンスヘッダーに「X-Frame-Options: DENY」または「X-Frame-Options: SAMEORIGIN」を設定し、自サイトが他サイトのiframeに埋め込まれることを禁止します。最も基本的で効果的な対策です。
- Content-Security-Policy(CSP)のframe-ancestorsディレクティブ: CSPヘッダーで「frame-ancestors ‘none’」または「frame-ancestors ‘self’」を設定し、X-Frame-Optionsと同様の制限をより柔軟に行えます。
- フレームバスティング(Frame Busting): JavaScriptを使用して、自サイトがiframe内で表示されている場合に検知し、iframe外に脱出させる手法です。ただし、サンドボックス属性で無効化される可能性があるため、補助的な対策として位置づけます。
- 重要な操作での確認ダイアログ: 送金や設定変更など重要な操作を行う前に、確認ダイアログを表示してユーザーの意図を再確認します。
- ブラウザの最新化: ユーザー側では、ブラウザを最新に保つことで、ブラウザに実装されたクリックジャッキング対策機能を活用できます。
試験ではこう出る!
情報セキュリティマネジメント、基本情報技術者、応用情報技術者で出題されます。以下のキーワードとセットで覚えましょう。
【重要キーワード】
- iframe(インラインフレーム)
- 透明なレイヤーの重ね合わせ
- X-Frame-Optionsヘッダー
- Content-Security-Policy(CSP)
- UI Redressing攻撃(別名)
試験問題で「透明なiframeを重ねて、ユーザーに意図しないボタンをクリックさせる攻撃」や「X-Frame-Optionsヘッダーを設定することで防げる攻撃」といった記述があれば、それは「クリックジャッキング」に関する記述です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. クリックジャッキングに関する説明として、最も適切なものはどれでしょうか?
- A. 透明なiframeを重ねて、ユーザーに見えないボタンをクリックさせ、意図しない操作を実行させる攻撃
- B. Webページに悪意のあるスクリプトを埋め込み、閲覧者のブラウザで実行させる攻撃
- C. ログイン中のユーザーに罠サイトを経由して意図しないリクエストを送信させる攻撃
正解と解説を見る
正解:A
解説:
クリックジャッキングは、攻撃者が透明なiframeを使って正規サイトを罠サイトに重ね、ユーザーに見えないボタンをクリックさせることで、意図しない操作(いいね、購入、設定変更など)を実行させる攻撃です。対策としてはX-Frame-Optionsヘッダーの設定やContent-Security-Policyのframe-ancestorsディレクティブが有効です。
選択肢Bは「クロスサイトスクリプティング(XSS)」の説明です。選択肢Cは「クロスサイトリクエストフォージェリ(CSRF)」の説明であり、いずれもクリックジャッキングとは異なる攻撃手法です。