サイトアイコン やさしいネットワークとセキュリティ

【情報処理安全確保支援士試験 令和6年度 秋期 午前2 問14】クリックジャッキング攻撃の全て

今回は、Webアプリケーションのセキュリティにおいて非常に重要なテーマの一つである「クリックジャッキング攻撃」について、その基礎から応用までを丁寧に解説していきます。この攻撃手法をしっかりと理解し、適切な対策を講じられるようになることで、皆さんのスキルアップに繋がることを願っています。


情報処理安全確保支援士試験 令和6年度 秋期 午前2 問14

【出典:情報処理安全確保支援士試験 令和6年度 秋期 午前2(一部、加工あり)】

 クリックジャキング攻撃に有効な対策はどれか。

ア cookieに、HttpOnly属性を設定する。

イ cookieに、Secure属性を設定する。

ウ HTTPレスポンスヘッダーに、Strict-Transport-Securityを設定する。

エ HTTPレスポンスヘッダーに、X-Frame-Optionsを設定する。

クリックジャッキング攻撃とは?

クリックジャッキング攻撃は、ユーザーが意図しない操作をさせられてしまう、視覚的な欺瞞を利用したWeb攻撃手法です。

例えば、「いいね!」ボタンを押したつもりが、実は裏で隠された「個人情報送信」ボタンを押していた、というような事態を引き起こす可能性があります。ユーザーは通常のWebサイトを操作しているつもりでいるため、攻撃に気づきにくいのが特徴です。

背景・経緯

この攻撃手法は、2008年にセキュリティ研究者によってその概念が提唱されました。Webページ内に別のページを埋め込むことができる「iframe」などのHTML要素の特性が悪用されることで、ユーザーインターフェース(UI)の裏で悪意のある操作が実行されてしまう脆弱性が注目されました。Web技術の進化とともに、より巧妙な手口が登場し、現在もその対策はWebセキュリティにおける重要な課題の一つです。

仕組み

クリックジャッキング攻撃の基本的な仕組みは以下の通りです。

  1. 罠サイトの作成: 攻撃者は、ユーザーの興味を引くような魅力的なWebサイト(罠サイト)を作成します。
  2. 透明なレイヤーの重ね合わせ: この罠サイトの上に、攻撃対象となる正規のWebサイト(例えば、オンラインバンキングやSNSなど)を透明化した状態で重ね合わせます。この際、iframe要素などが利用されることが多いです。
  3. ユーザーの誘導と誤クリック: ユーザーは罠サイトのコンテンツに夢中になり、クリックしたいと思うボタンやリンクを見つけます。しかし、そのクリックしたい場所の裏には、実は透明化された正規サイトの重要なボタン(例:送金ボタン、設定変更ボタンなど)が隠されています。
  4. 意図しない操作の実行: ユーザーが罠サイトのボタンをクリックしたつもりでいても、実際には裏に隠されていた正規サイトのボタンがクリックされ、ユーザーの意図しない操作が実行されてしまいます。

事例

クリックジャッキング攻撃の事例としては、以下のようなものがあります。

課題

クリックジャッキング攻撃の課題は、ユーザーが攻撃を受けていることに気づきにくい点にあります。また、ブラウザやWebアプリケーションの進化に伴い、攻撃手法も巧妙化しているため、常に最新の対策を講じる必要があります。

対策

クリックジャッキング攻撃への対策は、主にWebサイト運営者側で行います。

  1. X-Frame-Options HTTPヘッダーの設定: Webサーバーから返されるHTTPレスポンスヘッダーに X-Frame-Options を設定することで、自サイトがiframeなどで埋め込まれることを制御できます。
    • DENY: どのサイトからの埋め込みも完全に禁止します。
    • SAMEORIGIN: 同一オリジン(同じドメイン)からの埋め込みのみを許可します。
    • ALLOW-FROM uri: 特定のURIからの埋め込みを許可します(ただし、このオプションは非推奨であり、モダンブラウザではサポートされていない場合があります)。 これは最も一般的で効果的な対策の一つです。
  2. Content Security Policy (CSP) の frame-ancestors ディレクティブの使用: Content-Security-Policy ヘッダーの frame-ancestors ディレクティブを使用することで、より柔軟にフレームの埋め込み元を制限できます。これは X-Frame-Options よりも新しい、強力な対策です。
  3. JavaScriptによるフレームの検出と対策: JavaScriptを用いて、自サイトがフレーム内に埋め込まれているかどうかを検出し、埋め込まれていた場合は自身を最上位のウィンドウに表示し直す(フレームブレイク)といった対策も考えられます。しかし、これはJavaScriptが無効化されている場合や、ブラウザのセキュリティ機能によっては効果が限定されることがあります。

今後の動向

クリックジャッキング攻撃の手法は、ダブルクリックジャッキングなど、既存の対策を回避しようとするものも登場しています。そのため、Webアプリケーション開発者は、X-Frame-OptionsやCSPといったヘッダーによる対策を徹底するとともに、ブラウザのセキュリティ機能の進化や新たな攻撃手法に常にアンテナを張り、多層的な防御を構築していくことが重要となります。


問題解説

それでは、先ほどの記事の内容を踏まえて、以下の問題に答えてみましょう。

クリックジャッキング攻撃に有効な対策はどれか。

ア cookieに、HttpOnly属性を設定する。

イ cookieに、Secure属性を設定する。

ウ HTTPレスポンスヘッダーに、Strict-Transport-Securityを設定する。

エ HTTPレスポンスヘッダーに、X-Frame-Optionsを設定する。


解説

したがって、クリックジャッキング攻撃に有効な対策は、 です。

note移行のお知らせ

本ブログを閲覧していただき、ありがとうございます。

皆様にお役に立てるよう本ブログにて投稿し続けてきましたが、その主旨からnoteでの掲載のほうが伝えやすいかと考え、今後はnoteでの運用に変更させて頂きます。

よろしければ、noteへのアクセスをお願いします。

モバイルバージョンを終了