はじめに
シンガポールのセキュリティ専門家Wang Jingの調査によれば、About.comの多くのカテゴリや領域はXFSおよびXSS攻撃に対して脆弱です。
ソーシャルエンジニアリングと組み合わせることで、攻撃者がキーストロークを盗み見る可能性もあります。ここでは、XFS攻撃が存在する理由やXSS攻撃との違い、さらにフォーマットストリング攻撃の例を確認します。
被害者がブラウザを通じて有害なサイトに誘導されると、Cross-Frame Scripting(XFS)攻撃が発生します。HTML構造上、悪意ある攻撃者はこのページに外部サイトを重ね合わせ、その結果、被害者のキーストロークが迷惑なJavaScriptキーロガーによって記録され、攻撃者のサーバーへ送信されます。
XFS攻撃で攻撃者に制御されたサイトページを訪れると、以下のことが起こります:
Same-Originポリシーにより、多くのブラウザではこれが妨げられています。この仕組みは現代のほとんどのブラウザで採用され、JavaScriptによる異なる起源間のデータアクセスを制限します。攻撃者が制御するページと本物のサイトやアプリが別々のサーバーで提供されるため、攻撃者側のJavaScriptがIFRAME内の外部サイトの入力イベントにアクセスすることはできません。
専門的な細部に入る前に、用語の混乱を整理しましょう。同じ名称(XSS)であるものの、cross-frame scriptingはcross-site scriptingと同一ではありません。OWASPのサイトなど、ネット上には疑わしい情報や誤解を招く情報が多く存在しますので、正直に申し上げますと:
ただし、挿入されたページがXSS攻撃に対して対策されていれば、両者を組み合わせる可能性もあります。
同一生成元ポリシーにより、異なるサーバーから提供されるページ間でのデータおよびイベントへのアクセスは基本的に防がれているため、通常はcross-frame scriptingは成立しません。つまり、攻撃者が利用者を騙して指定されたサイトに誘導できたとしても、外部の有害なJavaScriptがIFRAME内の利用者の操作にアクセスすることはできないのです。
しかし、明確なブラウザの不具合により、親フレームから別の起源の子フレームにアクセスできる場合もあります。脆弱なブラウザが用いられ、事前に設定された有害なサイト(通常はフィッシングリンクをクリックした後)を表示させると、攻撃者は利用者の操作を取得する可能性があります。XFS攻撃が成立するには、以下のすべての条件が必要です:
今日において、この3つの条件がすべて揃う可能性は非常に低いです。利用者がフィッシングリンクをクリックすることはあっても、脆弱なブラウザ(例:Internet Explorerの一部バージョン)を使用している人を見つけるのは困難です。また、現代ではサイトをフレームに埋め込むこと自体が一般的ではありません。結果として、この攻撃は比較的軽微なウェブアプリのセキュリティリスクと言えます。
Cross-Frame Scripting攻撃により、以下の問題が発生する可能性があります:
ウェブアプリ開発者は、ブラウザのクロスフレームスクリプティング脆弱性を狙われないよう、ページへのフレーム埋め込みを制限することができます。対策方法は主に3つあります。クリックジャッキング対策として既に利用されている方法については、こちらの記事「クリックジャッキング攻撃の防御方法」で詳しく説明しています:
Wallarmは、HTTPヘッダーの不足や誤設定などに着目し、ウェブサイトのチェックを行う賢いツールです。一般的な不具合を防ぐため、常に最新のブラウザを使用し、最新状態を保つことが重要です。こうして、同一生成元ポリシーのような基本的なセキュリティ機能が常に守られていることが確認できます。Wallarmの製品を組織に導入することで、API Security PlatformやCloud WAFを利用できます。
最新情報を購読