忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【情報セキュリティ】透明な罠でクリックを奪い取る!「クリックジャッキング」|情報処理問題1000本ノック

Webサイトで「動画を再生する」ボタンを押しただけのはずが、裏で勝手に有料サービスを契約させられていた……。そんな、Webブラウザの仕組みを悪用してユーザーの意図しない操作を強制させる「クリックジャッキング攻撃」を攻略しましょう。

1. 【 問題 】:Webアプリケーションの脆弱性と攻撃(クリックジャッキング)

【 問題 】 Webブラウザへの攻撃手法の一つで、透明なサイトを重ねて表示するなどで、クリックを誘う手法は、どれでしょう。

(ア) クリックジャッキング
(イ) ヘッダーインジェクション
(ウ) バッファーオーバフロー
(エ) バックグラウンド・インジェクション

2. 正解:

正解: (ア) クリックジャッキング

3. 解説:見えている画面の「裏側」を操作させる罠

クリックジャッキング(Clickjacking)は、Webページの上に、別の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ヘッダー」などの具体的なセキュリティ対策と紐づけて、しっかりマスターしておきましょう!


PR