San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
閉じる
プライバシー設定
ウェブサイト運営に必要なCookieや類似技術を使用しています。追加のCookieは貴社の同意がある場合のみ利用されます。同意は「Agree」をクリックすることでいただけます。どのデータが収集され、どのようにパートナーと共有されているかの詳細は、Cookieポリシープライバシーポリシーをご確認ください。
Cookieは、貴社デバイスの特性や、IPアドレス、閲覧履歴、位置情報、固有識別子などの特定の個人情報を取得、解析、保存するために使用されます。これらのデータは様々な目的で利用されます。分析Cookieによりパフォーマンスを評価し、オンライン体験やキャンペーンの効果向上に役立てます。パーソナライズCookieは、利用状況に応じた情報やサポートを通じ、貴社専用の体験を提供します。広告Cookieは、第三者が貴社のデータをもとにオーディエンスリストを作成し、ソーシャルメディアやネット上でのターゲット広告に使用します。貴社は各ページ下部のリンクから、いつでも同意の許可、拒否、または撤回が可能です。
ご送信ありがとうございます。内容を受け付けました。
申し訳ありません。フォーム送信時にエラーが発生しました。
/
/
Attacks

Cross-Frame Scripting (XFS)とは?

はじめに

シンガポールのセキュリティ専門家Wang Jingの調査によれば、About.comの多くのカテゴリや領域はXFSおよびXSS攻撃に対して脆弱です。

ソーシャルエンジニアリングと組み合わせることで、攻撃者がキーストロークを盗み見る可能性もあります。ここでは、XFS攻撃が存在する理由やXSS攻撃との違い、さらにフォーマットストリング攻撃の例を確認します。

Cross-Frame Scripting (XFS)とは?

Cross-Frame Scripting (XFS) の定義

被害者がブラウザを通じて有害なサイトに誘導されると、Cross-Frame Scripting(XFS)攻撃が発生します。HTML構造上、悪意ある攻撃者はこのページに外部サイトを重ね合わせ、その結果、被害者のキーストロークが迷惑なJavaScriptキーロガーによって記録され、攻撃者のサーバーへ送信されます。

XFS攻撃の実例

XFS攻撃で攻撃者に制御されたサイトページを訪れると、以下のことが起こります:

  • 本物のページ(通常はログインページ)を表示するために、HTMLのIFRAME要素が使用されます。
  • IFRAME要素はページ全体に広げられ、ブラウザの枠が取り除かれるため、利用者はあたかも本物のサイトにいるように感じます。
  • IFRAME外で動作する悪意あるJavaScriptが、被害者が本物のサイトやアプリにログインしようとする際のキーストロークなどの入力イベントをキャッチし、攻撃者に送信します。

Same-Originポリシーにより、多くのブラウザではこれが妨げられています。この仕組みは現代のほとんどのブラウザで採用され、JavaScriptによる異なる起源間のデータアクセスを制限します。攻撃者が制御するページと本物のサイトやアプリが別々のサーバーで提供されるため、攻撃者側のJavaScriptがIFRAME内の外部サイトの入力イベントにアクセスすることはできません。

XFS attack in action
XFS攻撃の実例

Cross-Frame Scripting と Cross-Site Scripting の違い

専門的な細部に入る前に、用語の混乱を整理しましょう。同じ名称(XSS)であるものの、cross-frame scriptingはcross-site scriptingと同一ではありません。OWASPのサイトなど、ネット上には疑わしい情報や誤解を招く情報が多く存在しますので、正直に申し上げますと:

  • Cross-Site Scripting(XSS)とは、攻撃者が脆弱なサイト(攻撃者が制御していないサイト)に有害なJavaScriptを注入する攻撃です。
  • 本物のページを含むIFRAMEがある有害なサイトに利用者を誘導し、その後、クライアント側で不正に操作する攻撃がcross-frame scripting(XFS)です。

ただし、挿入されたページがXSS攻撃に対して対策されていれば、両者を組み合わせる可能性もあります。

攻撃を成功させる条件

同一生成元ポリシーにより、異なるサーバーから提供されるページ間でのデータおよびイベントへのアクセスは基本的に防がれているため、通常はcross-frame scriptingは成立しません。つまり、攻撃者が利用者を騙して指定されたサイトに誘導できたとしても、外部の有害なJavaScriptがIFRAME内の利用者の操作にアクセスすることはできないのです。

しかし、明確なブラウザの不具合により、親フレームから別の起源の子フレームにアクセスできる場合もあります。脆弱なブラウザが用いられ、事前に設定された有害なサイト(通常はフィッシングリンクをクリックした後)を表示させると、攻撃者は利用者の操作を取得する可能性があります。XFS攻撃が成立するには、以下のすべての条件が必要です:

  1. 悪意あるURLが利用者に送付され、それが開かれること。
  2. 利用者のブラウザで同一生成元ポリシーが突破されること。
  3. 利用者が、本物のサイトを装ったIFRAMEでの表示に騙されること。

今日において、この3つの条件がすべて揃う可能性は非常に低いです。利用者がフィッシングリンクをクリックすることはあっても、脆弱なブラウザ(例:Internet Explorerの一部バージョン)を使用している人を見つけるのは困難です。また、現代ではサイトをフレームに埋め込むこと自体が一般的ではありません。結果として、この攻撃は比較的軽微なウェブアプリのセキュリティリスクと言えます。

Cross-Frame Scripting攻撃の内容

Cross-Frame Scripting攻撃により、以下の問題が発生する可能性があります:

  • 個人情報および身元の窃取
  • 被害者のPCの部分的な操作
  • 今後の盗聴のために、PCやネットワークにスパイウェアが仕込まれること
  • Denial of Service (DoS) 攻撃が他のサイトに対して行われること
  • 目に見えるブラウザウィンドウを利用してクリックジャッキングが実行されること

クロスフレームスクリプティングからアプリを守る

ウェブアプリ開発者は、ブラウザのクロスフレームスクリプティング脆弱性を狙われないよう、ページへのフレーム埋め込みを制限することができます。対策方法は主に3つあります。クリックジャッキング対策として既に利用されている方法については、こちらの記事「クリックジャッキング攻撃の防御方法」で詳しく説明しています:

  • FramebustingはサイトのHTMLコードを変更するだけで実現できます。
  • Content Security Policy(CSP)ヘッダー:本物のサイト管理者がサーバー設定を変更し、このヘッダーがすべてのページに自動的に付与されるようにする必要があります。
  • X-Frame-Optionsヘッダー:本物のサイト管理者がサーバー設定を変更し、このヘッダーをすべてのページに自動的に含める必要があります。

Wallarmはどのように役立つか

Wallarmは、HTTPヘッダーの不足や誤設定などに着目し、ウェブサイトのチェックを行う賢いツールです。一般的な不具合を防ぐため、常に最新のブラウザを使用し、最新状態を保つことが重要です。こうして、同一生成元ポリシーのような基本的なセキュリティ機能が常に守られていることが確認できます。Wallarmの製品を組織に導入することで、API Security PlatformCloud WAFを利用できます。

FAQ

参考資料

最新情報を購読

更新日:
February 25, 2025
学習目標
最新情報を購読
購読
関連トピック