クリックジャッキング(クリックジャッキング)とは | 意味や読み方など丁寧でわかりやすい用語解説
クリックジャッキング(クリックジャッキング)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
クリックジャッキング (クリックジャッキング)
英語表記
Clickjacking (クリックジャッキング)
用語解説
クリックジャッキングとは、Webサイトの脆弱性を悪用し、ユーザーが意図しない操作を誘導する攻撃手法のことだ。別名として「UIリドレッシング」とも呼ばれる。
クリックジャッキングの概要は、攻撃者が用意した悪意のあるWebページに、標的とするWebサイトのコンテンツを不可視または半透明の状態で重ねて表示するというものだ。ユーザーは一見すると、攻撃者のWebページ上のボタンやリンクをクリックしているように見えるが、実際には背後に隠された標的サイトの要素を操作していることになる。
例えば、ユーザーが「プレゼントに応募する」というボタンをクリックしたとする。しかし、実際にはその背後に隠されたSNSの「友達になる」ボタンがクリックされ、意図せず友達申請を送ってしまう、といったケースが考えられる。このように、ユーザーは自身の意図とは異なる操作をさせられてしまうのだ。
クリックジャッキング攻撃は、単純なボタンのクリックだけでなく、フォームへの入力や、権限の変更など、Webサイト上のあらゆる操作を対象とすることができる。攻撃の成功には、ユーザーが標的サイトにログインしている状態であることが前提となる場合が多い。ログイン状態であれば、ユーザーの認証情報を利用して、攻撃者は様々な操作を実行できるからだ。
クリックジャッキングの詳細な仕組みについて解説する。攻撃者は、まず、標的とするWebサイトのコンテンツを<iframe>タグを使って自身のWebページに埋め込む。<iframe>タグは、HTML文書の中に別のHTML文書を埋め込むための要素だ。このとき、<iframe>タグの透明度を調整したり、位置をずらしたりすることで、標的サイトのコンテンツをユーザーに見えないように、または意図した位置に重ねて表示する。
次に、攻撃者は、ユーザーにクリックさせたいボタンやリンクを自身のWebページ上に配置する。このボタンやリンクの位置は、標的サイトの操作したい要素と正確に重なるように調整される。
ユーザーは、攻撃者のWebページ上のボタンやリンクをクリックするが、実際にはそのクリックイベントは、背後に隠された標的サイトの要素に送られる。これにより、ユーザーは意図せずに標的サイトの操作を実行してしまうのだ。
クリックジャッキング攻撃を防ぐための対策はいくつか存在する。最も基本的な対策は、HTTPレスポンスヘッダーの「X-Frame-Options」を設定することだ。「X-Frame-Options」は、Webサイトが<iframe>タグで埋め込まれることを制御するためのディレクティブだ。
「X-Frame-Options」には、以下の3つの値を設定できる。
- DENY:自身のWebサイトがiframeで埋め込まれることを完全に禁止する。
- SAMEORIGIN:自身のWebサイトと同じオリジン(スキーム、ホスト、ポート番号が同じ)のWebサイトからのiframe埋め込みのみを許可する。
- ALLOW-FROM uri:指定されたURIからのiframe埋め込みのみを許可する(非推奨)。
一般的には、「DENY」または「SAMEORIGIN」を設定することで、クリックジャッキング攻撃のリスクを大幅に軽減できる。「DENY」は最も安全な設定だが、自身のWebサイトを別のWebサイトにiframeで埋め込む必要がある場合には、「SAMEORIGIN」を使用する。
別の対策として、JavaScriptを使ったフレームバスティングという手法がある。フレームバスティングは、自身のWebサイトがiframeで埋め込まれているかどうかをJavaScriptで検出し、埋め込まれている場合は、強制的に最上位のウィンドウにリダイレクトすることで、クリックジャッキング攻撃を防ぐ。ただし、フレームバスティングは、JavaScriptが無効になっている環境では機能しないという弱点がある。
また、ユーザーインターフェースの改善も有効な対策となる。例えば、重要な操作を行う前に、確認画面を表示したり、操作の内容を明確に表示したりすることで、ユーザーが意図しない操作をしてしまうリスクを減らすことができる。
さらに、Content Security Policy (CSP) を利用することも有効だ。CSPは、Webページが読み込むことができるリソースのオリジンを制限するための仕組みだ。これにより、攻撃者が悪意のあるiframeを埋め込むことを防ぐことができる。
クリックジャッキング攻撃は、Webサイトのセキュリティにおける重要な脅威の一つだ。システムエンジニアは、クリックジャッキングの仕組みを理解し、適切な対策を講じることで、Webサイトのセキュリティを向上させることが求められる。