【情報セキュリティ】透明な罠でクリックを奪い取る!「クリックジャッキング」|情報処理問題1000本ノック
Webサイトで「動画を再生する」ボタンを押しただけのはずが、裏で勝手に有料サービスを契約させられていた……。そんな、Webブラウザの仕組みを悪用してユーザーの意図しない操作を強制させる「クリックジャッキング攻撃」を攻略しましょう。
1. 【 問題 】:Webアプリケーションの脆弱性と攻撃(クリックジャッキング)
【 問題 】 Webブラウザへの攻撃手法の一つで、透明なサイトを重ねて表示するなどで、クリックを誘う手法は、どれでしょう。
(ア) クリックジャッキング
(イ) ヘッダーインジェクション
(ウ) バッファーオーバフロー
(エ) バックグラウンド・インジェクション
2. 正解:
正解: (ア) クリックジャッキング
3. 解説:見えている画面の「裏側」を操作させる罠
クリックジャッキング(Clickjacking)は、Webページの上に、別のWebページ(攻撃者が用意した罠サイト)を透明な状態で重ね合わせて表示し、ユーザーが「見えているボタン」を押したつもりが、実は「透明な裏のボタン」を押してしまうように仕向ける攻撃手法です。
| 攻撃名 | 攻撃のアプローチと特徴 | 主な対策 |
|---|---|---|
| (ア) クリックジャッキング | 透明な別サイトをiframe等で重ね、意図しないクリックをさせる。 | HTTPレスポンスヘッダーに「Content-Security-Policy (CSP)」や「X-Frame-Options」を設定し、他サイトへの埋め込みを禁止する。 |
| (イ) ヘッダーインジェクション | HTTPレスポンスのヘッダー部分に改行などを注入(インジェクション)し、不正なヘッダーや偽のボディを追加する。 | 入力値のサニタイズ(改行コードの除去など) |
| (ウ) バッファーオーバフロー | プログラムが用意したメモリ領域(バッファ)の容量を超えるデータを送りつけ、システムを暴走・乗っ取る。 | 安全な関数の使用、セキュリティパッチの適用 |
※ (エ)の「バックグラウンド・インジェクション」は試験を惑わすための架空の用語です。
1. 理解のコツ: 「ガラステーブルの上に置かれた書類」を想像してください。
・あなたの目の前には、「おもしろ動画を再生する」というボタン(本物の紙)が置いてあります。あなたはそれを押そうと指を伸ばします。
・しかし、その手前には目に見えない「透明なガラスの板(透明な罠サイト)」が設置されており、そこには「高額商品の購入を確定する」というボタンが配置されています。あなた自身は動画を再生したつもりでも、実際にあなたの指が触れて(クリックして)いるのは、手前の透明なガラス板にある購入ボタンです。このように、「見かけの画面」と「実際の操作対象」をすり替えてクリックを誘うから、クリックジャッキングと呼ばれます。
2. 試験対策の視点: 基本情報技術者や応用情報技術者、情報処理安全確保支援士試験において、この攻撃の定義は頻出です。問題文に「透明な(サイト・画面)を重ねて」「クリックを誘う・強制する」というキーワードがあれば一発でクリックジャッキングを特定してください。
また、この問題は「対策」とセットで非常によく出題されます。攻撃者はHTMLの「iframeタグ」などを使って、正規のサイトを自分の罠サイトに部品として埋め込み、それを透明化します。これを防ぐためには、サーバー側からブラウザに対して「うちのサイトを他のサイトに埋め込ませないでね!」という命令(X-Frame-Optionsヘッダーや、CSPのframe-ancestorsディレクティブ)を返してあげる必要があります。この防御策まで覚えておけば、セキュリティ分野の得点源になります。
4. まとめ
「Webページの上に透明化した別のページを重ね合わせ、ユーザーが気づかないうちに意図しないボタンをクリックさせる攻撃」。これがクリックジャッキングです。埋め込みを拒否する「X-Frame-Optionsヘッダー」などの具体的なセキュリティ対策と紐づけて、しっかりマスターしておきましょう!