JP2015053070A - クロスサイトスクリプティングフィルタ - Google Patents

クロスサイトスクリプティングフィルタ Download PDF

Info

Publication number
JP2015053070A
JP2015053070A JP2014221966A JP2014221966A JP2015053070A JP 2015053070 A JP2015053070 A JP 2015053070A JP 2014221966 A JP2014221966 A JP 2014221966A JP 2014221966 A JP2014221966 A JP 2014221966A JP 2015053070 A JP2015053070 A JP 2015053070A
Authority
JP
Japan
Prior art keywords
xss
response
server
request
traffic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014221966A
Other languages
English (en)
Other versions
JP5992488B2 (ja
Inventor
エー.ロス デービッド
A Ross David
エー.ロス デービッド
ビー.リプナー スティーブン
B Lipner Steven
ビー.リプナー スティーブン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2015053070A publication Critical patent/JP2015053070A/ja
Application granted granted Critical
Publication of JP5992488B2 publication Critical patent/JP5992488B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】十分なXSS軽減技術手段を適切に有していないだろうサーバに関連するXSSに対しての防御を可能とする、折り返し型クロスサイトスクリプティング(XSS)脆弱性を抑制するフィルタを提供する。
【解決手段】注意深く選択されたヒューリスティクスを使用しかつURL及びPOSTデータの疑わしい部分と折り返されたページコンテンツとをマッチングさせてXSS攻撃を正確に認識する。安全と見なされるトラフィックを迅速に認識してこれを通過させ、フィルタによるパフォーマンスインパクトを最小限に維持する。非HTML MIME型は、迅速に通過させられ、同一サイトのリクエストであり得る。残りのリクエストに対しては、XSSヒューリスティクスがHTTPリクエストURLまたはPOSTデータにおいてマッチングしない限り、正規表現はHTTPレスポンス全体に亘っては実行されない。
【選択図】図1

Description

本発明は、クロスサイトスクリプティングフィルタに関する。
クロスサイトスクリプティング(XSS)は、しばしば言及されるウェブアプリケーションセキュリティの脆弱性である。XSS攻撃の目的は、攻撃者にユーザとユーザが信用するウェブサイトまたはウェブアプリケーションとの間の関係を支配可能とさせることである。
最も一般的な場合において、XSSは悪意のあるURLを含んでおり、このURLは、当該URL内に埋め込まれたクライアント側スクリプトが、生成されるウェブページのHTML(hypertext markup language)出力において繰り返されるように構成されている。被害者クライアントがクライアントウェブブラウザを使用して当該URLに移動した場合、その結果として生じるクライアント側スクリプトは、信頼されているサーバと共有されているセッションのセキュリティ環境(security context)において実行される。仮想XSS攻撃は、以下の様に進むだろう:被害者がメールメッセージ内のリンクをクリックするように仕向けられる;リンクが被害者のブラウザを、良く知られておりかつ信頼されているウェブサイトらしきものに移動させる;しかし、URLリンクは悪意のあるスクリプトブロックを含む;信頼されているサイトによって形成されたウェブページは、スクリプトブロックを悪意のあるスクリプトevil.jsを含むURLからエコー(echo)して、クライアントにevil.comからのevil.jsスクリプトをローディングさせる。悪意のあるスクリプトは、ページに自らのニュース記事を表示する。被害者は、ニュース記事が信頼されているサイトからの本物の内容であると信用する。なぜならば、信頼されているサイトのドメインがブラウザのアドレスバーに表示されているからである。
信頼されているサイト上のコンテンツのなりすましは、全く害のない可能性がある。しかし、現代のウェブブラウザによって曝されているオブジェクトモデルは、さらに高度な攻撃を可能とする。コンテンツのなりすましの域を越え、これらの攻撃は:攻撃者に、遠隔的に被害者ユーザとしてウェブアプリケーションにログイン可能とさせ得るセッションクッキーを含むクッキーの盗取;悪意のあるウェブサイトへのキーボード入力のモニタリング;及び、ユーザの代わりにウェブサイトにおける行為を実行することを含む(例えば、Windows(登録商標) Live MailにおけるXSS攻撃は、攻撃者に電子メールメッセージを読むこと及び転送すること、新しいスケジュール表の予定を設定すること等を可能とさせる)。
近年では、ウェブサイトはインターネットを通じてウェブサイトに報告されたXSS問題点の保存記録を集め始めている。10,000を越える自主的に提出されたウェブサイトに対するXSS問題点が保存記録されてきている。攻撃者は、XSS攻撃に関する保存記録を自由に調べて特定のウェブサイトにおいて使用可能である。XSSを軽減する(mitigating)従来の技術はクライアント側では使用されず、文字コード、安全ライブラリ及びウェブアプリケーションスキャン技術を用いてサーバ側において使用されていた。上述したように、ウェブサイトサーバは、XSS攻撃される多種多様な可能性からの圧力下にある。さらに、提案されてきたいくつかのXSS軽減技術がクライアント側のコンポーネントを含むが、クライアント側で効果的に完全にXSS攻撃をフィルタリングすることが可能なものはなかった。
以下に、本明細書において説明されるいくつかの新規な実施形態の基本的な理解を提供するための簡単な概要を記載する。この概要は、拡張的な概要ではなく、主要/重要な要素を特定する意図はなく、それらの範囲を画定する意図もない。本概要は、後に提供されるさらに詳細な説明の前置きとして単純な態様でいくつかのコンセプトを提供することのみを目的としている。
開示されているクロスサイトスクリプティング(XSS)軽減技術は、今日存在するXSS脆弱性を除去するクライアント側フィルタをインストールすることによって、完全にクライアントに重点を置いている。専らクライアント側で機能するXSSフィルタリングは、ウェブブラウザに、十分なXSS低減環境が適切に整っていないだろうサーバに関与するXSSに対して防御することを可能とさせる。現在の動的なウェブサイトにおけるXSSの拡散的な性質が、このことを必要としている。
この技術は、折り返されたページ内容とURL及びPOSTデータの疑わしい部分とのマッチングによってXSS攻撃を正確に認識する。フィルタによって使用される技術は、安全と見なされるトラフィックを迅速に認識して通過させ、フィルタからのパフォーマンスインパクト(performance impact:パフォーマンスへの影響)を最小限に維持する。非HTML MIMEタイプは、同一サイト(same−site)であるリクエストと同様に迅速に通過させられ得る。残りのリクエストに関しては、正規表現(他の文字列にマッチングさせるために使用される英数字の文字列)は、XSSヒューリスティクス(Huristics)がHTTPリクエストURLにおいてマッチングした場合を除いて、フルHTTPレスポンスに亘って実行されない。
このフィルタは、他の場合では現れない新しいXSS脆弱性を開かない方法でXSS攻撃を無効化する。さらに、このフィルタは、良性な内容がXSS攻撃としてフラグ付けされる疑わしい事象において、ウェブブラウジング経験に悪影響を与えない方法でXSSを無効化する。
フィルタへの入力は、フルHTTPリクエスト/レスポンストラフィックである。従って、代替実施例において、この技術は、ウェブプロキシサーバまたはウェブサーバにおいて機能し得る。この場合、フィルタは、特定のアプリケーションレベルの知識無しにXSSブロックが可能なジェネリックなウェブアプリケーションファイアウォールとして機能する。
上記目的及び関連する目的を達成するため、いくつかの実例的特徴が、以下の説明及び添付の図面に関連して本明細書内で説明される。しかし、これらの特徴は、本明細書で説明される原理を用いることが可能である様々な態様のうちのいくつかを示したものに過ぎず、全ての特徴及びその均等物を含むことを意図している。他の利点及び新規な特徴は、添付の図面とともに以下の詳細な説明から明らかになるだろう。
クロスサイトスクリプティング(XSS)攻撃をフィルタリングするシステムを示す図である。 XSSフィルタリングロジックのさらに詳細なブロックダイアグラムを示す図である。 新たな脅威が検出された際に使用されて展開され得るヒューリスティクスのセットの一例を示す図である。 XSS攻撃をフィルタリングするフィルタコンポーネントを含むブラウザ実装例を示す図である。 サーバにフィルタリングロジックを適用しているサーバ実装例を示す図である。 プロキシサーバにフィルタリングロジックを適用しているサーバの実装例を示す図である。 折り返し型XSS攻撃をフィルタリングするコンピュータに実装される方法を示す図である。 XSSフィルタを使用する例示の方法を示す図である。 開示されたアーキテクチャに従ってXSSフィルタリングを実行可能なコンピューティングシステムのブロックダイアグラムを示す図である。 折り返し型XSS攻撃のフィルタリングのための例示のコンピューティング環境の概略ブロックダイアグラムを示す図である。
開示されるアーキテクチャは、完全にクライアントに重点を置く、折り返し型クロスサイトスクリプティング(XSS)軽減フィルタリング技術である。フィルタは、パフォーマント(performant)であり、互換性がありかつ安全である。互換性は、部分的にはウェブサイトの破壊を防ぐフィルタをいう。ブラウザは、デフォルトで利用可能な特徴としてフィルタリング技術を使用して、関連するユーザを保護する能力を提供する。従って、フィルタが少数であってもウェブサイトを壊してしまう場合、フィルタがデフォルトで使用可能な特徴として実装されるのは困難であるかまたは不可能である。
クライアント側のフィルタは、適切に十分なXSS軽減手段を有していないサーバに関連するXSS攻撃に対する防御を行う。この技術は、ヒューリスティクス及びヒューリスティックに生成されたシグネチャ(signature)を使用して、URL及びPOSTデータの疑わしい部分と折り返されたページコンテンツとをマッチングすることによってXSS攻撃を正確に識別する。フィルタは、安全とみなされるトラフィックを迅速に認識して通過させ、クライアント処理におけるフィルタのパフォーマンスインパクトを最小限にする。クライアント側のXSSフィルタは、ブラウザからウェブサーバへの特定のMIMEタイプのHTTPリクエスト及びHTTPレスポンスを監視可能である。非HTML(hypertext markup language)MIME(multipurpose Internet mail extentions)タイプは、同一サイトであるリクエストと同様に迅速に通過させられ得る。残りのリクエストに関して、正規表現は、XSSヒューリスティクスがHTTP(hypertext transfer protocol)リクエストURLにおいてマッチングしない限り、フルHTTPレスポンスに亘っては実行されない。
ここで、添付の図面を参照する。図面において、全体に亘って同じ参照符号は同等な要素を示すのに使用される。以下の記述においては、説明のために、全体の理解をもたらすべく様々の具体的な詳細が示される。新規な実施形態がこれらの具体的な詳細無しに実施され得ることは明らかである。他の例においては、説明を容易にするために周知の構造及び周知のデバイスがブロックダイアグラムの形式で示される。
図1は、XSS攻撃をフィルタリングするシステム100を示している。システム100は、クライアント104とサーバ106との間のトラフィックを処理するクライアント104の通信コンポーネント102と、XSSフィルタリングロジック110を使用して、トラフィックからの折り返し型XSS攻撃をフィルタリングするフィルタコンポーネント108と、を含む。通信コンポーネント102は、サーバ106にHTTPリクエストの形式でトラフィックを送信するブラウザであり得、クライアント104において動作しているフィルタコンポーネント108は、返送トラフィックからのXSS攻撃をフィルタリングする。当該攻撃はHTTPレスポンスの一部である。
完全にクライアント104においてフィルタリングがなされる場合、通信コンポーネント102は、HTTPリクエストをサーバ106に送信するクライアントのブラウザであり、フィルタコンポーネント108は、クライアント104において動作してXSS攻撃をフィルタリングする。サーバ側の実装例が以下に説明される。
トラフィックはHTTPリクエスト/レスポンストラフィックである可能性があり、フィルタコンポーネント108は、リクエストトラフィックを解析して、レスポンストラフィックにおけるXSS攻撃を確認する。このことは、フィルタコンポーネント108がリクエストトラフィックのリファラヘッダ(referer header)を解析することによってなされ得る。フィルタコンポーネント108は、ヒューリスティクスを有し、当該ヒューリスティクスをサーバ106へ向けたクライアント104の外部へのトラフィック(例えば、HTTPリクエスト)に対して処理し、シグネチャを生成し、サーバ106からの受信するトラフィック(例えば、HTTPレスポンス)に対するシグネチャを処理してXSS攻撃をフィルタリングする。
ヒューリスティクス処理は、フィルタコンポーネント108を組み込んで1または複数の無効文字(neuter character)を選択する。HTTPレスポンスにおいて識別された無効文字は、無効置換文字に置換される。換言すれば、1または複数のヒューリスティクスが、入力URL及びPOSTデータに亘って実行されてシグネチャが生成される。シグネチャ生成の処理は、無効文字を識別する処理である。そして、シグネチャは、サーバ106からの受信トラフィックに亘って実行されて、XSS攻撃の存在が判定される。このことは、本明細書でさらに詳細に説明される。1つの実装例において、フィルタコンポーネント108は、ブラウザにおいてHTMLとしてレンダリングされるレスポンスをもたらすMIME型を有する受信トラフィックのコンテンツに基づいたXSS攻撃に関する受信トラフィックを処理する。
代替実装例において、フィルタコンポーネント108は、クライアントのブラウザの一部であり、ブラウザのスクリプトエンジンへの全ての入力を監視する。スクリプトブロックが認識された場合、フィルタコンポーネント108は、リクエストに関するオリジナルの外部へのトラフィック(例えば、オリジナルのURL及び/またはPOSTデータ)を再度スキャンし、実行されようとしているスクリプトを発見する。スクリプトが発見されかつ当該スクリプトがマッチングしないものである場合、当該スクリプトは同一サイトスクリプト(same−site script)であり、通過を許可され得る。しかし、当該スクリプトがマッチングするものである場合、それは折り返し型XSSであるとみなされ、この場合、当該スクリプトはフィルタリングされるかまたはさらに処理される。
図2は、XSSフィルタリングロジック110のさらに詳細なブロックダイアグラムを示している。フィルタリングロジック110は、ヒューリスティクスのセット200を含むように示され、ヒューリスティクスのセット200は、ヒューリスティクス処理コンポーネント202を介して外部へのトラフィック(例えば、クライアントブラウザからの)に適用され得る。ヒューリスティクス200の処理はシグネチャ204をもたらし、シグネチャ204は、シグネチャチェックロジック206を使用して受信トラフィック(例えば、クライアントブラウザへの)に対して適用され得る。
XSS解析は、2ステップの処理である。最初に、受信するリクエストトラフィック(例えば、URLまたはpostデータ)においてヒューリスティクスに基づいてシグネチャを形成し、2番目に、レスポンストラフィックに対してシグネチャを処理し、マッチングするものを発見する(リフレクテッドバック(reflected back)とも称される)。換言すれば、クライアントからサーバへ達するURLまたはpostデータ(HTTPリクエスト)内のコンテンツを探索するだけではなく、HTTPレスポンス内へ同一のデータがリプレイ(replay)されているか否かも判別する。下位のフィルタは「1ステップ」であり、リクエスト内の不良は探索するが、エコーバックされ実行されるコンテンツとリクエストとをマッチングする試行は行わない。
1つのXSS攻撃方法は、フィルタに二重引用符等の文字を排除させることによってフィルタを操作して、別の方法ではXSSは不可能であるXSSを可能にするものである。この攻撃を無効にする技術は、HTTPレスポンス内で変更される文字の良好な抽出を行う技術である。この正規のウェブページ以外のXSS部分だけの選択的な無効化は、ユーザへの最小限の干渉でXSSをブロックする。これは、ページのブロッキング及び/または高いレベルのユーザ対話の要求とは対照的である。実行に影響する文字またはこのタイプの攻撃を可能とする文字は選択されないだろう。構文解析ツールがスクリプトに遭遇した際に、スクリプトが即時に実行されることを効果的に阻止するハッシュシンボルが使用され得る。従って、脅威は、問題となっているレスポンス内において置換されるだろう文字のインテリジェントな(intelligent)抽出によって軽減される。
第2の攻撃手法は、文字がサーバへリプレイされるかまたはサーバからリプレイされる際にドロップ(drop)されるかまたは解釈されるリクエストに、文字を加えることによってフィルタを操作するものである。攻撃は、URL内に存在するスクリプトタグを含み得る。これは、実際に攻撃の一般的な形式である。従って、フィルタリングロジック110は、潜在的なスクリプトタグに関してURLまたはpostデータを解析する。このスクリプトタグがリプレイされている場合、ロジック110は、レスポンス内の同一のタグまたは同一のテキストを認識可能である必要がある。攻撃者が場違いなユニコード文字またはエクスクラメーションマーク(exclamation mark)を、例えばスクリプトタグの途中に追加可能であると判断し、サーバがこれらをリプレイする前にこれらの文字またはマークをドロップする場合、フィルタはバイパスされ得る。なぜならば、フィルタはスクリプトタグを探索するが、途中にエクスクラメーションマークを有するスクリプトタグは探索しないからである。
この第2の攻撃手法を無効にする方法は、フィルタリングの第1のステージ(リクエスト)に基づいてシグネチャ204を作成すること、すなわち、シグネチャ204をHTTPレスポンス内において予期されるものに正確にマッチングするものにするのではなく、XSS攻撃の本質を形作る重要な文字にマッチングするものとするものである。換言すれば、リクエスト内への1または複数の追加の文字の挿入は、フィルタロジックの有効性を無効化しないだろう。
ヒューリスティクス200は所定のセットであり、ブラウザにおいてスクリプト実行をもたらし得るスクリプトタグ及び/またはスクリプト表現のリクエストトラフィック(URLまたはpostデータ)を解析する第1のステージにおいて使用される。このような情報の識別は最終的なものではない。従って、ヒューリスティクス200において見出される情報は、HTTPレスポンスにおいてリプレイされるXSS攻撃の証拠として機能するシグネチャ204を生成するのに使用される。攻撃が時とともに進化すると、異なったヒューリスティクスがコード化されてヒューリスティクス200に追加されてこれらの新しい攻撃が認識され得る。新しいヒューリスティクスは、フィルタリングロジック110へのアップデートの形式で提供され得る。
図3は、新しい脅威が検出された際に使用されて展開され得るヒューリスティクス200のセットの一例を示している。URLをスキャンするためのヒューリスティクスは、限定するわけではないが以下のものを含んでいる。
ヒューリスティクス300は、(が続きその後に)が続く″または′を検出する。最初の″または′の後にはマッチングのための非英数字が続く。このことは、これらのものが誤ってURLにマッチングをすることを防止する。ヒューリスティクス302は、″;something.something=somethingelseを検出する。ヒューリスティクス304は、スクリプトブロックを明示的に検出する。ヒューリスティクス306は、″expression(″が後に続く″style″を検出する。ヒューリスティクス308は、ある表現を有するSTYLEエレメントを検出する。ヒューリスティクス310は、script src=blocksを検出する。ヒューリスティクス312は、第1の形式のjavaスクリプトURLを検出する。ヒューリスティクス314は、第2の形式のjavaスクリプトURLを検出する。ヒューリスティクス316は、vbスクリプトURLを検出する。ヒューリスティクス318は、EMBEDされたオブジェクトを検出する。ヒューリスティクス320は、デフォルトの動作を含む動作を検出する。ヒューリスティクス322は、スタイルシートを参照し得るLINKエレメントを検出する。ヒューリスティクス324は、データ結合を有するエレメントを検出する(スクリプトはXMLデータアイランド内に隠され得る)。ヒューリスティクス326は、アプレットを参照し得るAPPLETエレメントを検出する。ヒューリスティクス328は、型属性を有するOBJECTエレメントを検出する。ヒューリスティクス330は、<[TAG]ON[EVENT]=SomeFunction()...and...<[TAG]ON[EVENT]=SomeFunction()を検出し、ヒューリスティクス332は、クッキーを設定するかまたは無名コンテンツ(obscure content)型を設定し得るMETAエレメントを検出する。
新しい脅威が検出された際には、他のヒューリスティクスも追加され得る。例えば、ブロックFRAMEs/IFRAMEsを検出するヒューリスティクスが提供され得る。入力の様々な置換が、必要に応じてシグネチャ生成処理においてプッシュ(push)され得る。例えば、いくつかのウェブサーバプラットフォームは、同一の名前を有するパラメータを暗黙のうちに組み合わせる。例えば、
http://microsoft.com/microsoft.asp?Name=asdf&Name=zzzzは、「asdf,zzzz」としてリプレイする名前付き因数(name variable)をもたらし得る。攻撃は、このサーバ側の動作を利用してフィルタを操作可能である。従って、フィルタは、類似のパラメータ名前収集を実行してこのサーバ側の動作を模倣する。シグネチャ生成処理におけるオリジナルのURLのプッシュに加えて、同一の名前のパラメータがある場合、フィルタはこれらを組み合わせて結果として得られたURLをシグネチャ生成プロセスにおいてプッシュする。上述の例示において、第2のURLがシグネチャ生成処理においてプッシュされる:
http://microsoft.com/microsoft.asp?Name=asdf,zzzz
図4は、XSS攻撃をフィルタリングするフィルタコンポーネント108を含むブラウザ実装例400を示している。クライアントブラウザ402(通信コンポーネント)は、ウェブサーバ406にHTTPリクエスト404を送信する。フィルタコンポーネント108は、リクエスト内のURL及び/またはPOSTデータにヒューリスティクスを適用することによってリクエストを処理し、シグネチャを生成する。ヒューリスティクスが、リクエストは疑わしいと示した場合、フィルタコンポーネント108は、HTTPレスポンス408にシグネチャを適用し、折り返し型XSS攻撃をフィルタリングして排除する。
代替の実施形態において、ブラウザ内のフィルタは、特定のHTTPレスポンスヘッダを送信することによって、特定のレスポンスに対するXSSフィルタを無効にすることをサーバに可能とさせる。非常に独特でかなり希な脆弱性(例えば「レスポンス分割」脆弱性)が無い限り、攻撃者がこのヘッダをスプーフィング(spoof)することは不可能であるので、攻撃者はこのフィルタを無効化することはできない。この特徴は、アプリケーション互換性手段として意図され、サーバ側XSSフィルタリングを行うウェブサイト、すなわちクライアント側のXSSフィルタがサーバに全く影響を与えてほしくないウェブサイトがブラウザ内の当該機能を無効化し得ることを保証する。
図5は、サーバ実装例500を示しており、フィルタリングロジックがウェブサーバ502に適用されている。ここで、フィルタコンポーネント108は、サーバファイアウォールアプリケション504(この例においては通信コンポーネント)の一部として含まれ得る。ファイアウォールアプリケーション504は、ネットワーク508を通じたデータの通信を容易にする1または複数のサーバプロトコル506において動作する。ファイアウォールアプリケーション504とサーバ502との間のトラフィックは、HTTPリクエストトラフィック510及びHTTPレスポンストラフィック512を含み得る。フィルタコンポーネント108は、リクエストトラフィック510において動作し、ヒューリスティクスを利用してレスポンストラフィック512における処理のためのシグネチャを生成する。換言すれば、通信コンポーネントは、トラフィックを処理するサーバ502におけるファイアウォールアプリケーション504であり、フィルタコンポーネント108は、ファイアウォールアプリケーション504の一部として動作してXSS攻撃をフィルタリングする。
図6は、サーバ実装例600を示しており、フィルタリングロジックがプロキシサーバ602に適用されている。ここにおいて、フィルタコンポーネント108は、プロキシサーバファイアウォール604(この例において通信コンポーネント)の一部として含まれ得る。プロキシファイアウォール604は、ネットワーク508を介したデータの通信を容易にする1または複数のサーバプロトコル506において動作する。プロキシファイアウォール604とプロキシサーバ602との間のトラフィックは、HTTPリクエストトラフィック510及びHTTPレスポンストラフィック512を含み得る。フィルタコンポーネント108は、リクエストトラフィック510において動作し、ヒューリスティクスを使用してレスポンストラフィック512における処理のためのシグネチャを生成する。換言すれば、通信コンポーネントは、トラフィックを処理するプロキシサーバ602におけるプロキシファイアウォール604であり、フィルタコンポーネント108は、プロキシファイアウォール604の一部として動作してXSS攻撃をフィルタリングする。
サーバ実装例600と同一の構成は、一揃いのウェブサーバによる使用に関するリバースプロキシサーバにも適用可能である。従って、一揃いのサーバへ入ってくる全てのトラフィックは、最初にプロキシに到達し、プロキシは当該プロキシにおいてトラフィックを取り扱い得るか、またはさらなる処理のために指定されたサーバ(1または複数)にトラフィックを転送する。従って、プロキシからウェブサーバ(1または複数)に送られたリクエストは、レスポンストラフィックとともにチェックされ、仕掛けられたXSS攻撃の存在が確認され、XSS攻撃がブロックされる。
以下に示すのは、開示されたアーキテクチャの新規な特徴を実行するための例示の手順の代表的な一連のフローチャートである。説明の簡潔さのために、本明細書に示された1または複数の手順、例えばフローチャートまたはフローダイアグラムとして示された手順が一連の動作として示されて説明されているが、手順は、この動作の順序に限定されるものではなく、いくつかの動作は本明細書に示されかつ説明されたのと異なった順序で行われかつ/または他の動作と同時に行われ得ると理解されるべきである。例えば当業者は、手順が、一連の相互に関連する状態または事象として、状態ダイアグラム等において代替的に示され得ることを理解するべきである。さらに、手順において説明された全ての動作が新規な実装例に対して必要とされるわけでは無い。
図7は、コンピュータに実装されて折り返し型XSS攻撃をフィルタリングする方法を示している。700において、リクエストはサーバに送信される。リクエストは、HTTPリクエストか、または他の適切なプロトコルに従った他のリクエストであり得る。702において、リクエストがヒューリスティクスを使用して処理されて、シグネチャが生成されるべきかが判定される。704において、レスポンスがサーバから受信される。このレスポンスは、HTTPレスポンスか、またはXSS攻撃に使用される他の同様のレスポンス型であり得る。706において、このレスポンスは、シグネチャの生成に基づいて折り返し型XSS攻撃としてフィルタリングされる。
図8は、XSSフィルタを使用する例示の方法を示している。800において、HTTPレスポンスが受信される。1つのパフォーマンス志向の実装例において、フィルタはスクリプトの実行をもたらし得るMIME型を有するダウンロードされたコンテンツに対してのみ有効である。従って、802において、HTML MIME型に対してチェックが行われる。レスポンスがHTML MIME型ではない場合、フローは804に進み、HTTPレスポンスがクライアントウェブブラウザに送られる。レスポンスがHTML MIME型を含む場合、フローは802から806に進み、フィルタがHTTPリクエスト内のリファラヘッダをチェックする。同一のリファラの場合、これは同一サイトスクリプティングであり、フローは804に進んでレスポンスが送られる。なぜならば、さらなるフィルタリングが実行される必要が無いからである。
リファラヘッダ内の完全に記述したドメイン名が、取得されるURLの完全に記述したドメイン名とマッチングしない場合、リクエストはクロスサイトスクリプトである可能性があり、フィルタリングされる。従って、フローは806から808に進み、マッチングするヒューリスティックが発見される。マッチングするものが発見されない場合、フローは804にすすみ、ウェブブラウザにレスポンスが転送される。その後、フィルタはリクエストに関連するURL及びPOSTデータを取得し、正規表現を使用してXSS攻撃を示す特定のパターンを認識する。これらのケースインセンシティブ(case-insensitive)なパターンは、フィルタに関するヒューリスティクスである。以下は、正規表現形式のフィルタからのヒューリスティクスの例である。
Figure 2015053070
ヒューリスティクス内の内側中括弧{}内の文字は「無効文字」と称され、後にHTTP応答内で認識され無効化される。ヒューリスティクスは、1または複数の無効文字を有し得る。ヒューリスティクスは、スクリプトタグを認識するだろう。スクリプトタグがHTML内で共通であり得るならば、URLまたはPOSTデータ内のスクリプトタグの存在は、XSS攻撃を示す。フィルタは、ブラウザにおいて使用されてクロスサイトスクリプティングをトリガし得る個々のメカニズムを、各々が認識するヒューリスティクスを含み得る。追加のメカニズムが後に認識されたならば、新しいヒューリスティクスがフィルタに追加され得る。
無効文字の各々(この例の場合文字「r」)は、クロスサイトスクリプティング攻撃をブロックするためにHTTPレスポンスボディ内でフィルタによって結果的に変更されるだろう文字を示す。文字「#」は、無効置換文字として使用され得る。これは、HTMLエレメント及びHTMLエレメントが挿入されるスクリプトブロックを破壊するのに有効である。無効置換文字は、ヒューリスティクス毎ベースで設定可能である。
フィルタの無効文字の抽出は、フィルタが妨害され得るか否かを判定し得る。あるヒューリスティクスに関して選択された不正な無効文字は、妨害され得るフィルタをもたらし得る。例として、無効文字としての引用記号の抜き取りは、フィルタに引用符を無効化させるだろう。抜け目のない攻撃者は、このことを利用してページ上で強制的にマッチングさせて引用符を無効化し、クロスサイトスクリプティング攻撃を実際に可能とする。これ以外の方法では攻撃は不可能である。
ヒューリスティクスにおけるマッチングは、必ずしもフィルタをトリガしてクロスサイトスクリプティングを検出するわけではない。しかし、マッチングは、フィルタに、HTTPレスポンスボディが分析されて、URLまたはPOSTデータが実際に出力ページに対してリプレイされたことが立証されるだろうことを示す。
ヒューリスティクスがマッチングした場合、フローは808から810へ進み、フィルタはマッチングする対象の各々に対して1つのシグネチャを生成する。シグネチャは、リプレイされた疑わしい入力に関してHTTPレスポンスをスキャンするために使用され得る新しい正規表現である。無効置換文字は、シグネチャがマッチングされた後にURL内の所定の位置に一時的に置かれ、URLにおいてもはやマッチングするものが発見され得なくなるまでヒューリスティクスに関するマッチングが継続する。シグネチャは、無効置換文字を使用せずに適切に生成される。さもなければ、シグネチャは自分自身で無効置換文字を包含し、HTTPレスポンス内に存在する攻撃と正確にマッチングしないだろう。引用符、それに続く1セットの丸括弧を無効化するだろうヒューリスティクスを考える。
Figure 2015053070
正規表現は、丸括弧の最初のセットまたは丸括弧の最後のセットにマッチングさせるのに十分に有効である。しかし、正規表現は、丸括弧の真ん中のセットをマッチングすることができない。このため、全てのシグネチャが特定のヒューリスティクスに対して識別されるまで、繰り返しのマッチング/無効化処理が行われることが求められる。
ヒューリスティクスの各々によって、安全な文字のリストが提供される。スクリプトタグを検出するヒューリスティクスに関して、安全な文字は、大なり記号(>)及び小なり記号(<)並びに英数字である。安全な文字は、マッチングに重要である文字であり、かつヒューリスティクスがブロックしようとするある種の攻撃に必要な文字である。シグネチャベースの方法は、フィルタが逐語的なマッチングで単純に検索する場合にフィルタが必ずしもマッチングするものを発見しない故に用いられる。ウェブサーバは、特定の文字を偶然に除去または解釈し得る。実際にこのようにウェブサーバ動作の監視をすることは一般的であり、攻撃者はこの動作を有利に利用する。例えば、以下の様な攻撃者URLを考える。
Figure 2015053070
サーバが入力から偶然にドル記号を除去した場合、この攻撃はマッチングしない。この種の攻撃を回避するために、逐語的テキストマッチングよりもシグネチャ手法が使用される。
以下は、スクリプトタグを検出するヒューリスティクスのマッチング対象の一例である。
Figure 2015053070
このマッチング対象に対して生成されるシグネチャは以下のものであり得る。
Figure 2015053070
シグネチャ内の
Figure 2015053070
の各々は、オリジナルのマッチング対象内の安全ではない文字を示している。0から10の特定されない文字列は、
Figure 2015053070
にマッチングし得る。フローは810から812に進み、シグネチャとマッチングするものがチェックされる。特定のページに対してシグネチャが生成されていない場合、フローは812から804に進み、フィルタがページに変更無しでロードすることを許可する、すなわちXSS攻撃は検出されなかった。
しかし、シグネチャが存在する場合、フローは812から814に進み、フィルタは、シグネチャの各々に関してHTTPレスポンスボディをスキャンし、シグネチャとマッチングするものの各々に関して適切な文字を無効化する。一度認識がなされると、フィルタは、中括弧内の文字によってシグネチャ内に示されるように、どの文字(1または複数)が無効化されるべきかを正確に記録する。一度全てのシグネチャがHTTPレスポンスボディに亘って実行されると、無効文字が所定の位置に置かれ、HTTPレスポンスボディはブラウザに返送される。816において、XSSが特定のURL(及び、適当ならばPOSTデータ)に関してブロックされた事実が記録され、ユーザは仕掛けられたXSS攻撃を通知される。816からフローは804に進み、804において、XSS攻撃が無効化されるだろう場合を除いて、ページは通常にレンダリングされるだろう。
本願に使用されている「コンポーネント」及び「システム」は、コンピュータ関連エンティティ、ハードウェア、ハードウェア及びソフトウェアの組み合わせ、ソフトウェアまたは実行中のソフトウェアをいう。例えば、コンポーネントは、限定するものではないが、プロセッサにおいて実行されている処理、プロセッサ、ハードディスクドライブ、(光学及び/または磁気記憶媒体)複数の記憶デバイス、オブジェクト、実行可能ファイル、実行の脈絡(thread of execution)、プログラム及び/またはコンピュータであり得る。例として、サーバにおいて実行されているアプリケーション及びサーバ自体の両方がコンポーネントであり得る。1または複数のコンポーネントが、処理及び/または実行の脈絡内に存在し得、コンポーネントは、1のコンピュータ内に置かれ得るかまたは2以上のコンピュータ間に分散され得る。
図9を参照すると、開示されたアーキテクチャに従ってXSSフィルタリングを実行するコンピューティングシステム900のブロックダイアグラムが示されている。システム900の様々な特徴に関して追加の説明を提供するために、図9及び以下の説明は、当該様々な特徴が実装され得る適切なコンピューティングシステム900の概要的で一般的な説明を提供することを目的としている。上述の説明は1または複数のコンピュータにおいて実行され得るコンピュータ実行可能命令の一般的な条件においてなされているが、当業者は新規な実施形態も他のプログラムモジュールとの組み合わせにおいて実装され得かつ/またはハードウェア及びソフトウェアの組み合わせとして実装可能であり得ることも理解するだろう。
通常は、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造等を含む。さらに、当業者は、本発明の方法が、単一プロセッサもしくはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、並びに、パーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースもしくはプログラム制御可能家電等を含む他のコンピュータシステム構成を用いて実施され得、各々が1または複数の関連するデバイスと動作可能に結合され得ることを理解するだろう。
説明された特徴は、いくつかのタスクが通信ネットワークを通じて接続されているリモート処理デバイスによって実行される分散型コンピューティング環境においても実施され得る。分散型コンピューティング環境において、プログラムモジュールは、ローカル及びリモートのメモリ記憶デバイス内に配され得る。
コンピュータは一般的に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータよってアクセス可能な任意の市場入手可能媒体であり得、揮発性媒体及び不揮発性媒体、リムーバブル媒体及び非リムーバブル媒体を含む。例示の目的であり限定するものではないが、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータ等の情報の記憶の任意の方法及び技術において実装される揮発性及び不揮発性、リムーバブル及び非リムーバブル媒体を含む。コンピュータ記憶媒体は、限定するわけではないが、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、DVD(digital video disk)もしくは他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または他の媒体であって、所望の情報を保存するために使用可能でありかつコンピュータによってアクセス可能な媒体を含む。
図9を再度参照すると、様々な特徴を実装する例示のコンピュータシステム900は、コンピュータ902を含み、コンピュー902は、処理ユニット904、システムメモリ906及びシステムバス908を有する。システムバス908は、限定するわけではないがシステムメモリ906を含むシステムコンポーネントと処理ユニット904とのインタフェースを提供する。処理ユニット904は、様々な市場入手可能なプロセッサのいずれかであり得る。デュアルマイクロプロセッサ及び他のマルチプロセッサアーキテクチャも、処理ユニット904として使用され得る。
システムバス908は、メモリバス(メモリコントローラを有りまたは無しの)、周辺機器バス、及びローカルバスであって、様々な商用利用されているバスアーキテクチャを使用するバスをさらに相互に接続し得る様々なタイプのバス構造のいずれかであり得る。システムメモリ906は、不揮発性メモリ(不揮発性)910及び/または揮発性メモリ912(例えばRAM(random access memory))を含み得る。BIOS(basic input/output system)は、不揮発性メモリ910(ROM、EPROM、EEPROM等)内に保存され得、BIOSは、起動中等におけるコンピュータ902内の要素間の情報の伝送を行う基本ルーチンを保存している。揮発性メモリ912は、データのキャッシュのためのスタティックRAM等の高速RAMも含む。
コンピュータ902は、内蔵ハードディスクドライブ(HDD)914(EIDE、SATA等)、磁気フロッピー(登録商標)ディスクドライブ(FDD)916(例えば、リムーバブルディスケット918に書き込むかまたはそこから読み出しを行うもの)及び光学ディスクドライブ920(例えば、CD−ROMディスク922から読み出しを行うもの、またはDVD等の他の大容量の光学媒体からの読み出しもしくはそこへの書き込みをするもの)、をさらに含む。内蔵HDD914は、適切なシャーシにおける外部使用のために構成されても良い。HDD914、FDD916及び光学ディスクドライブ920は、それぞれHDDインタフェース924、FDDインタフェース926及び光学ドライブインタフェース928によってシステムバス908に接続され得る。外部ドライブ実装用のHDDインタフェース924は、USB(Universal Serial Bus)及びIEEE1394インタフェース技術のうちの少なくとも1つまたはこれらの両方を含み得る。
ドライブ及び関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令等の不揮発性記憶装置を提供する。コンピュータ902に関して、ドライブ及び媒体は、適切なデジタルフォーマットで任意のデータの保存を行う。上述のコンピュータ可読媒体の説明が、HDD、リムーバブル磁気ディスケット(例えばFDD)、及びCDもしくはDVD等のリムーバブル光学媒体に言及しているが、ジップ(Zip)ドライブ、磁気カセット、フラッシュメモリカード、カートリッジ等の、コンピュータよって可読な他のタイプの媒体も例示の動作環境において使用され得、さらにこのような媒体のいずれかが、開示されたアーキテクチャの新規な方法を実行するコンピュータ実行可能命令を含み得ることが当業者に理解されるべきである。
多数のプログラムモジュールがドライブ及び揮発性メモリ912に保存され得、プログラムモジュールには、オペレーティングシステム930、1または複数のアプリケーションプログラム932、他のプログラムモジュール934、及びプログラムデータ936を含む。1または複数のアプリケーションプログラム932、他のプログラムモジュール934、及びプログラムデータ936は、通信コンポーネント102(ブラウザ等)、クライアント104、フィルタコンポーネント108、XSSフィルタロジック110、ヒューリスティクス処置コンポーネント202、ヒューリスティクス200、シグネチャ204、シグネチャチェックロジック206、ブラウザ402、サーバファイアウォール504、及びプロキシファイアウォール604を含み得る。
オペレーティングシステムの全てまたは一部、アプリケーション、モジュール、及び/またはデータは、揮発性メモリ912内にもキャッシュされ得る。開示されたアーキテクチャが様々な市場入手可能なオペレーティングシステム、またはオペレーティングシステムの組み合わせとともに実装され得ることが理解されるべきである。
ユーザは、1または複数の有線/無線入力デバイス、例えばキーボード938及びマウス940等のポインティングデバイスを用いて、コンピュータ902にコマンド及び情報を入力し得る。他の入力デバイス(図示せず)は、マイクロフォン、IR遠隔コントローラ、ジョイスティック、ゲームパッド、スタイラスペン、タッチスクリーン等を含み得る。これら及び他の入力デバイスは、システムバス908に接続されている入力デバイスインタフェース942を介して処理ユニット904にしばしば接続されるが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインタフェース等の他のインタフェースによっても接続され得る。
モニタ944または他のタイプの表示デバイスも、ビデオアダプタ946等のインタフェースを介してシステムバス908に接続される。モニタ944に加えて、コンピュータは一般的に、スピーカ、プリンタ等の他の周辺機器出力デバイス(図示せず)を含む。
コンピュータ902は、リモートコンピュータ(1または複数)948等の1または複数のリモートコンピュータとの有線及び/または無線通信を介した論理接続を使用してネットワーク環境において動作し得る。リモートコンピュータ(1または複数)948は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースのエンタテイメント電化製品、ピアデバイスまたは他の共通ネットワークノードであり得、一般的にコンピュータ902に関して説明される要素の多くまたは全てを含むが、簡潔さのためにメモリ/記憶デバイス950のみが図示されている。示された論理接続は、LAN(local area network)952及び/またはさらに大きなネットワーク、例えばWAN(wide area network)954との有線/無線接続性を有する。このようなLAN及びWANネットワーク環境は、オフィス及び会社において一般的であり、イントラネット等の企業規模広域コンピュータネットワークを容易にし、これらのネットワークの全ては、インターネット等のグローバル通信ネットワークに接続され得る。
LANネットワーク環境において使用される場合、コンピュータ902は、有線及び/または無線通信ネットワークインタフェースまたはアダプタ956を介してLAN952に接続される。アダプタ956は、LAN952への有線及び/または無線通信を容易にし得、LAN952は、アダプタ956のワイヤレス機能と通信するために設けられたワイアレスアクセスポイントも含み得る。
WANネットワーク環境において使用される場合、コンピュータ902は、モデム958を含む、すなわちWAN954上の通信サーバに接続されるか、またはインターネット等によってWAN954を介した通信を確立する他の手段を有する。内蔵または外部デバイスであり、有線及び/または無線デバイスであり得るモデム958は、入力デバイスインタフェース942を介してシステムバス908に接続されている。ネットワーク環境において、コンピュータ902またはその一部に関連して示されているプログラムモジュールは、リモートメモリ/記憶デバイス950内に保存され得る。示されたネットワーク接続は例示であり、コンピュータ間の通信接続を確立する他の手段も使用され得る。
コンピュータ902は、無線通信内に動作可能に設けられている任意の無線デバイスまたはエンティティ、例えばプリンタ、スキャナ、デスクトップ及び/またはポータブルコンピュータ、ポータブルデータアシスタント、通信衛星、無線で検出可能なタグと関連した装置または場所(キオスク、ニューススタンド、化粧室)の任意の一部、並びに電話と通信可能である。これらには、少なくともWi-Fi(すなわちワイヤレスフィディリティ)及びブルートゥース(Bluetooth(登録商標))無線技術を含む。従って、通信は、従来のネットワークまたは少なくとも2つのデバイス間の単純なアドホック通信のような所定の構造であり得る。Wi-Fiネットワークは、IEEE 802.11x(a、b、g等)と称される無線通信技術を使用して、安全で、信頼性があり、高速な無線接続性を提供する。Wi-Fiネットワークは、コンピュータ同士を接続するため、コンピュータとインターネットを接続するため、及びコンピュータと有線ネットワーク(IEEE802.3またはイーサネット(登録商標)を使用する)を接続するために使用され得る。
図10を参照すると、折り返し型XSS攻撃をフィルタリングする例示のコンピューティング環境1000の概略ブロックダイアグラムが示されている。環境1000は、1または複数のクライアント1002を含んでいる。クライアント1002は、ハードウェア及び/またはソフトウェア(スレッド、プロセス、コンピューティングデバイス等)であり得る。例えば、クライアント1002は、クッキー(1または複数)及び/または関連する文脈情報(contextual information)を保有し得る。
環境1000は、1または複数のサーバ1004も含む。サーバ1004もハードウェア及び/またはソフトウェア(スレッド、プロセス、コンピューティングデバイス等)であり得る。例えば、サーバ104はスレッドを保有して、そのアーキテクチャを使用して変換を行い得る。クライアント1002とサーバ1004との間の1つの可能な通信は、2または3以上のコンピュータプロセス間で伝送される様に成されたデータパケット形式であり得る。例えば、データパケットは、クッキー及び/または文脈情報を含み得る。環境1000は、通信フレームワーク1006(例えば、インターネット等のグローバル通信ネットワーク)を含み、通信フレームワーク1006は、クライアント1002とサーバ1004との間の通信を容易にするべく使用され得る。
通信は、有線(光ファイバを含む)及び/または無線技術によって容易にされ得る。クライアント1002は、1または複数のクライアントデータストア1008に動作可能に接続され、クライアントデータストア1008は、情報をクライアント1002にローカルに保存するべく使用され得る(クッキー(1または複数)及び/または関連する文脈情報)。同様に、サーバ1004は、1または複数のサーバデータストア1010に動作可能に接続され、サーバデータストア1010は、情報をサーバ1004にローカルに保存するべく使用され得る。
クライアント1002は、クライアント104を含み得、サーバ1004は、ウェブサーバ406、サーバ502及びサーバ602を含み得る。ファイアウォール504及び604は、サーバシステムにインストールされている。
上述の説明は、開示されたアーキテクチャの例を含んでいる。当然ながら考えられるコンポーネント及び/または手順の組み合わせの全てを説明することは不可能であり、当業者は他の多くの組み合わせ及び配列が可能であることを理解するだろう。従って、新規なアーキテクチャは、添付の特許請求の範囲の趣旨及び範囲に含まれる全ての代替例、変更例及び変形例を包含する。さらに、「含む」は、発明を実施するための形態または特許請求の範囲において使用されている範囲において、特許請求の範囲における移行句として使用される際の「含む」と同様に解釈される。
上記の実施形態につき以下の付記を残しておく。
(付記1)
クロスサイトスクリプティング(XSS)攻撃を処理するコンピュータ実装システム(100)であって、
クライアントとサーバとの間のトラフィックを処理する通信コンポーネント(102)と、
前記トラフィックからの折り返し型XSS攻撃をフィルタリングするフィルタコンポーネント(108)と、
を含むことを特徴とするシステム。
(付記2)
前記通信コンポーネントが前記サーバにHTTPリクエストを送信する前記クライアントのブラウザであり、前記フィルタコンポーネントが前記クライアントにおいて動作して前記XSS攻撃をフィルタリングすることを特徴とする付記1に記載のシステム。
(付記3)
前記トラフィックがHTTPリクエスト/レスポンストラフィックであり、前記フィルタコンポーネントが前記リクエストトラフィックを解析して前記レスポンストラフィック内の前記XSS攻撃を確認することを特徴とする付記1に記載のシステム。
(付記4)
前記通信コンポーネントが前記HTTPリクエスト/レスポンストラフィックを処理する前記サーバにおけるファイアウォールアプリケーションであり、前記フィルタコンポーネントが前記ファイアウォールアプリケーションの一部として動作して前記XSS攻撃をフィルタリングすることを特徴とする付記3に記載のシステム。
(付記5)
前記通信コンポーネントが前記サーバにおけるプロキシファイアウォールアプリケーションであり、前記サーバは前記HTTPリクエスト/レスポンストラフィックを処理するプロキシサーバまたはリバースプロキシサーバであり、前記フィルタコンポーネントが前記プロキシファイアウォールアプリケーションの一部として動作して前記XSS攻撃をフィルタリングすることを特徴とする付記3に記載のシステム。
(付記6)
前記サーバが、特定のHTTPレスポンスヘッダに基づいて特定のレスポンスに対して前記フィルタコンポーネントを無効化することを特徴とする付記1に記載のシステム。
(付記7)
前記フィルタコンポーネントが、前記クライアントから前記サーバへ送信されるトラフィックに対してヒューリスティクスの処理をしてシグネチャを生成し、前記サーバから受信されるトラフィックに対して前記シグネチャを処理して前記XSS攻撃をフィルタリングすることを特徴とする付記1に記載のシステム。
(付記8)
前記フィルタコンポーネントが、前記サーバから前記クライアントへのレスポンスにおける置換に関する1または複数の無効文字を選択して、前記XSS攻撃の存在を判定することを特徴とする付記1に記載のシステム。
(付記9)
前記フィルタコンポーネントが前記サーバから受信されたトラフィックに対して1または複数のシグネチャを処理して前記XSS攻撃の存在を判定し、前記攻撃がMIME型を有する前記受信されたトラフィックのコンテンツに基づいていることを特徴とする付記1に記載のシステム。
(付記10)
前記フィルタコンポーネントがスクリプトエンジンへの全ての入力を処理し、スクリプトブロックが認識された場合に、前記フィルタコンポーネントがリクエストに関するオリジナルの送信トラフィックをスキャンして実行される直前のスクリプトを発見し、前記スクリプトと前記スクリプトブロックとのマッチングに基づいて前記スクリプトブロックをフィルタリングすることを特徴とする付記1に記載のシステム。
(付記11)
XSS攻撃を処理するコンピュータ実装システムであって、
クライアントとサーバとの間のリクエスト及びレスポンスを処理するクライアントブラウザ(402)と、
前記クライアントブラウザの一部であり、前記リクエストをヒューリスティクスを使用して解析するとともに前記レスポンスを前記ヒューリスティクスから生成されたシグネチャを使用して解析し、前記シグネチャに基づいて前記レスポンストラフィックからの折り返し型XSS攻撃をフィルタリングするフィルタコンポーネント(108)と、
を含むことを特徴とするシステム。
(付記12)
折り返し型のXSS攻撃をフィルタリングする方法であって、
サーバにリクエストを送信するステップ(700)と、
ヒューリスティクスを使用して前記リクエストを処理してシグネチャが生成されたかを判定するステップ(702)と、
前記サーバからレスポンスを受信するステップ(704)と、
前記シグネチャの前記生成に基づいて折り返し型のXSS攻撃として前記レスポンスをフィルタリングするステップ(706)と、
を含むことを特徴とする方法。
(付記13)
前記リクエストの疑わしい部分を折り返されたウェブページコンテンツとマッチングして前記レスポンス内にXSS攻撃が存在するかを判定するステップをさらに含むことを特徴とする付記12に記載の方法。
(付記14)
前記リクエストが1または複数のURLまたはPOSTデータを含むことを特徴とする付記12に記載の方法。
(付記15)
正規表現を使用して前記リクエストの前記1または複数のURLまたはPOSTデータ内の文字の特定のパターンを認識するステップをさらに含むことを特徴とする付記14に記載の方法。
(付記16)
非HTML MIME型及び同一サイトリクエストをフィルタ処理及びシグネチャ生成無しに通過させるステップをさらに含むことを特徴とする付記12に記載の方法。
(付記17)
リファラヘッダの完全に記述したドメイン名と取得されたURLの完全に記述したドメイン名とを比較することによって前記リクエストのリファラヘッダをチェックするステップと、マッチングしなかった場合またはリファラヘッダが存在しないかもしくは空の場合に前記リクエストをフィルタリングするステップと、をさらに含むことを特徴とする付記12に記載の方法。
(付記18)
1または複数の無効文字を選択して前記1または複数の無効文字を前記ヒューリスティクスに挿入して、前記レスポンスの処理において変更に関する前記リクエスト内の疑わしい文字を認識するステップをさらに含むことを特徴とする付記12に記載の方法。
(付記19)
前記ヒューリスティックスによって定義された前記リクエスト内の文字の特定のパターンのマッチングに基づいてヒューリスティクスから前記シグネチャを生成するステップをさらに含むことを特徴とする付記12に記載の方法。
(付記20)
前記シグネチャを使用して前記レスポンスをスキャンするステップと、前記シグネチャに基づいて無効置換文字を使用して前記レスポンスを無効化するステップと、クライアントブラウザに前記レスポンスを返送するステップと、をさらに含むことを特徴とする付記12に記載の方法。
104 クライアント
106 サーバ
108 フィルタコンポーネント
110 XSSフィルタリングロジック
402 ブラウザ
406 ウェブサーバ
502 ウェブサーバ
504 ファイアウォールアプリケーション
602 プロキシサーバ
604 プロキシファイアウォール

Claims (20)

  1. クロスサイトスクリプティング(XSS)攻撃を処理するコンピュータ実装システムであって、
    クライアントとサーバとの間のトラフィックを処理する通信コンポーネントと、
    前記クライアントにおいて、前記トラフィックからの折り返し型XSS攻撃をフィルタリングするフィルタコンポーネントと、
    を含み、
    前記フィルタリングは、少なくとも部分的に、
    前記クライアントから前記サーバに対するリクエストにおけるXSSヒューリスティクスの識別であり、前記折り返し型XSS攻撃の疑いを示す識別と、
    前記クライアントにおいて前記サーバから受け取ったレスポンスにおけるコンテンツの識別であり、前記リクエストにおいて識別された前記XSSヒューリスティクスの表示が前記レスポンスにおいても存在することを確認するために、前記リクエストにおけるコンテンツをマッチングする識別と、
    前記レスポンスにおける前記コンテンツのフィルタリングであり、前記リクエストにおける前記コンテンツをマッチングするフィルタリングと、
    に基づいて行われる、ことを特徴とするシステム。
  2. 前記通信コンポーネントは、前記サーバに対してHTTPリクエストを送信する前記クライアントのブラウザであり、かつ、
    前記フィルタコンポーネントは、前記XSS攻撃をフィルタリングするために、前記クライアント上で動作する、
    請求項1に記載のシステム。
  3. 前記トラフィックは、HTTPリクエスト/レスポンストラフィックであり、かつ、
    前記フィルタコンポーネントは、前記レスポンストラフィックにおける前記XSS攻撃を確認するために、前記リクエストトラフィックを解析する、
    請求項1に記載のシステム。
  4. 前記通信コンポーネントは、前記サーバにおけるファイアウォールアプリケーションであり、前記HTTPリクエスト/レスポンストラフィックを処理し、かつ、
    前記フィルタコンポーネントは、前記XSS攻撃をフィルタリングするために、前記ファイアウォールアプリケーションの一部として動作する、
    請求項3に記載のシステム。
  5. 前記通信コンポーネントは、前記サーバでのプロキシファイアウォールアプリケーションであり、前記サーバは、前記HTTPリクエスト/レスポンストラフィックを処理するプロキシサーバまたはリバースプロキシサーバであり、かつ、
    前記フィルタコンポーネントは、前記XSS攻撃をフィルタリングするために、前記プロキシファイアウォールアプリケーションの一部として動作する、
    請求項3に記載のシステム。
  6. 前記サーバは、特定のHTTPレスポンスヘッダに基づいて、前記レスポンスに対して前記フィルタコンポーネントを無効にする、
    請求項1に記載のシステム。
  7. 前記フィルタコンポーネントは、前記サーバへ向けた前記クライアントの外部へのトラフィックに対してヒューリスティクスを処理して、シグネチャを生成し、かつ、
    前記サーバからの受信するトラフィックに対してシグネチャを処理して、前記XSS攻撃をフィルタリングする、
    請求項1に記載のシステム。
  8. 前記フィルタコンポーネントは、前記XSS攻撃の発生を判定するために、前記サーバから前記クライアントへの前記レスポンスにおいて、置換のための1または複数の無効文字列を選択する、
    請求項1に記載のシステム。
  9. 前記フィルタコンポーネントは、前記サーバからの受信するトラフィックに対して1または複数のシグネチャを処理して、前記XSS攻撃の発生を判定し、かつ、
    前記攻撃は、MIME型を有する前記受信するトラフィックのコンテンツに基づく、
    請求項1に記載のシステム。
  10. 前記フィルタコンポーネントは、スクリプトエンジンへの全ての入力を処理し、
    スクリプトブロックが認識された場合に、前記フィルタコンポーネントは、
    リクエストに対するオリジナルの外部へのトラフィックをスキャンして、実行されようとしているスクリプトを発見し、かつ、
    前記スクリプトの前記スクリプトブロックとのマッチングに基づいて、前記スクリプトブロックをフィルタリングする、
    請求項1に記載のシステム。
  11. XSS攻撃を処理するコンピュータ実装システムであって、
    クライアントとサーバとの間のリクエスト及びレスポンスを処理するクライアントブラウザと、
    レスポンストラフィックからの折り返し型XSS攻撃をフィルタリングするための前記クライアントブラウザの一部としてのフィルタコンポーネントと、
    を含み、
    前記フィルタリングは、少なくとも部分的に、
    前記リクエストにおけるXSSヒューリスティクスの識別であり、前記折り返し型XSS攻撃の疑いを示す識別と、
    前記レスポンスにおけるコンテンツの識別であり、前記リクエストにおいて識別された前記XSSヒューリスティクスの表示が前記レスポンスにおいても存在することを確認するために、前記リクエストにおけるコンテンツをマッチングする識別と、
    に基づいている、ことを特徴とするシステム。
  12. コンピュータで読取り可能な媒体であって、前記媒体は信号ではなく、折り返し型のXSS攻撃をフィルタリングするためのインストラクションを保管しており、
    サーバにリクエストを送信するステップと、
    前記サーバからレスポンスを受信するステップと、
    折り返し型XSS攻撃としての前記レスポンスをフィルタリングするステップと、
    を含み、
    前記フィルタリングするステップは、少なくとも部分的に、
    前記リクエストにおけるXSSヒューリスティクスの識別であり、前記折り返し型XSS攻撃の疑いを示す識別と、
    前記レスポンスにおけるコンテンツの識別であり、前記リクエストにおいて識別された前記XSSヒューリスティクスの表示が前記レスポンスにおいても存在することを確認するために、前記リクエストにおけるコンテンツをマッチングする識別と、
    に基づいている、ことを特徴とするコンピュータで読取り可能な媒体。
  13. 前記インストラクションは、さらに、
    前記リクエストの疑わしい部分を折り返されたウェブページコンテンツとマッチングするステップと、を含み、
    前記レスポンス内にXSS攻撃が存在するかを判定する、
    請求項12に記載のコンピュータで読取り可能な媒体。
  14. 前記リクエストは、1または複数のURLまたはPOSTデータを含む、
    請求項12に記載のコンピュータで読取り可能な媒体。
  15. 前記インストラクションは、さらに、
    正規表現を使用するステップと、を含み、
    前記リクエストの前記1または複数のURLまたはPOSTデータ内の文字の特定のパターンを認識する、
    請求項14に記載のコンピュータで読取り可能な媒体。
  16. 前記インストラクションは、さらに、
    非HTML MIME型及び同一サイトリクエストをフィルタ処理及びシグネチャ生成無しに通過させるステップと、を含む、
    請求項12に記載のコンピュータで読取り可能な媒体。
  17. 前記インストラクションは、さらに、
    リファラヘッダの完全に記述したドメイン名と取得されたURLの完全に記述したドメイン名とを比較することによって前記リクエストのリファラヘッダをチェックするステップと、
    マッチングしなかった場合、または、リファラヘッダが存在しないかもしくは空である場合に、前記リクエストをフィルタリングするステップと、を含む、
    請求項12に記載のコンピュータで読取り可能な媒体。
  18. 前記インストラクションは、さらに、
    1または複数の無効文字を選択して、前記1または複数の無効文字をヒューリスティクスに挿入するステップと、を含み、
    前記レスポンスの処理において、変更に関する前記リクエスト内の疑わしい文字を認識する、
    請求項12に記載のコンピュータで読取り可能な媒体。
  19. 前記インストラクションは、さらに、
    前記ヒューリスティクスによって定義された前記リクエスト内の文字の特定のパターンのマッチングに基づいて、ヒューリスティクスからシグネチャを生成するステップと、を含む、
    請求項12に記載のコンピュータで読取り可能な媒体。
  20. 前記インストラクションは、さらに、
    シグネチャを使用して前記レスポンスをスキャンするステップと、
    前記シグネチャに基づいて、無効置換文字を使用して前記レスポンスを無効にするステップと、
    クライアントブラウザに前記レスポンスを返送するステップと、を含む、
    請求項12に記載のコンピュータで読取り可能な媒体。
JP2014221966A 2007-11-05 2014-10-30 クロスサイトスクリプティングフィルタ Expired - Fee Related JP5992488B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/935,323 2007-11-05
US11/935,323 US20090119769A1 (en) 2007-11-05 2007-11-05 Cross-site scripting filter

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013168938A Division JP5642856B2 (ja) 2007-11-05 2013-08-15 クロスサイトスクリプティングフィルタ

Publications (2)

Publication Number Publication Date
JP2015053070A true JP2015053070A (ja) 2015-03-19
JP5992488B2 JP5992488B2 (ja) 2016-09-14

Family

ID=40589515

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2010533140A Expired - Fee Related JP5490708B2 (ja) 2007-11-05 2008-10-15 コンピュータ実装システム及びフィルタリングする方法
JP2013168938A Expired - Fee Related JP5642856B2 (ja) 2007-11-05 2013-08-15 クロスサイトスクリプティングフィルタ
JP2014221966A Expired - Fee Related JP5992488B2 (ja) 2007-11-05 2014-10-30 クロスサイトスクリプティングフィルタ

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2010533140A Expired - Fee Related JP5490708B2 (ja) 2007-11-05 2008-10-15 コンピュータ実装システム及びフィルタリングする方法
JP2013168938A Expired - Fee Related JP5642856B2 (ja) 2007-11-05 2013-08-15 クロスサイトスクリプティングフィルタ

Country Status (5)

Country Link
US (1) US20090119769A1 (ja)
EP (1) EP2223255A4 (ja)
JP (3) JP5490708B2 (ja)
CN (1) CN101849238B (ja)
WO (1) WO2009061588A1 (ja)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8245049B2 (en) 2004-06-14 2012-08-14 Microsoft Corporation Method and system for validating access to a group of related elements
US20090292983A1 (en) * 2007-11-30 2009-11-26 Kunal Anand Html filter for prevention of cross site scripting attacks
US8949990B1 (en) 2007-12-21 2015-02-03 Trend Micro Inc. Script-based XSS vulnerability detection
US8578482B1 (en) * 2008-01-11 2013-11-05 Trend Micro Inc. Cross-site script detection and prevention
US8893270B1 (en) * 2008-01-29 2014-11-18 Trend Micro Incorporated Detection of cross-site request forgery attacks
US8850567B1 (en) 2008-02-04 2014-09-30 Trend Micro, Inc. Unauthorized URL requests detection
US8800043B2 (en) * 2008-05-19 2014-08-05 Microsoft Corporation Pre-emptive pre-indexing of sensitive and vulnerable assets
US20090300012A1 (en) * 2008-05-28 2009-12-03 Barracuda Inc. Multilevel intent analysis method for email filtration
US9264443B2 (en) * 2008-08-25 2016-02-16 International Business Machines Corporation Browser based method of assessing web application vulnerability
US8931084B1 (en) * 2008-09-11 2015-01-06 Google Inc. Methods and systems for scripting defense
US8495719B2 (en) * 2008-10-02 2013-07-23 International Business Machines Corporation Cross-domain access prevention
US8438061B2 (en) * 2008-10-24 2013-05-07 Cardlytics, Inc. System and methods for merging or injecting targeted marketing offers with a transaction display of an online portal
WO2010111716A1 (en) * 2009-03-27 2010-09-30 Jeff Brown Real-time malicious code inhibitor
CN101964025B (zh) * 2009-07-23 2016-02-03 北京神州绿盟信息安全科技股份有限公司 Xss检测方法和设备
US10157280B2 (en) * 2009-09-23 2018-12-18 F5 Networks, Inc. System and method for identifying security breach attempts of a website
EP2510453B1 (en) * 2009-12-07 2016-10-12 Coach Wei Website performance optimization and internet traffic processing
US8640216B2 (en) * 2009-12-23 2014-01-28 Citrix Systems, Inc. Systems and methods for cross site forgery protection
US9058489B2 (en) * 2010-01-25 2015-06-16 Samsung Electronics Co., Ltd. Marking documents with executable text for processing by computing systems
US8997217B2 (en) * 2010-01-25 2015-03-31 Samsung Electronics Co., Ltd. Safely processing and presenting documents with executable text
US8718621B2 (en) * 2010-02-24 2014-05-06 General Motors Llc Notification method and system
US20110219446A1 (en) * 2010-03-05 2011-09-08 Jeffrey Ichnowski Input parameter filtering for web application security
US8875285B2 (en) * 2010-03-24 2014-10-28 Microsoft Corporation Executable code validation in a web browser
CA2704863A1 (en) * 2010-06-10 2010-08-16 Ibm Canada Limited - Ibm Canada Limitee Injection attack mitigation using context sensitive encoding of injected input
US8910247B2 (en) * 2010-10-06 2014-12-09 Microsoft Corporation Cross-site scripting prevention in dynamic content
CN102469113B (zh) * 2010-11-01 2014-08-20 北京启明星辰信息技术股份有限公司 一种安全网关及其转发网页的方法
US8898776B2 (en) 2010-12-28 2014-11-25 Microsoft Corporation Automatic context-sensitive sanitization
GB2488790A (en) * 2011-03-07 2012-09-12 Celebrus Technologies Ltd A method of controlling web page behaviour on a web enabled device
CN102780684B (zh) * 2011-05-12 2015-02-25 同济大学 Xss防御系统
US9342274B2 (en) 2011-05-19 2016-05-17 Microsoft Technology Licensing, Llc Dynamic code generation and memory management for component object model data constructs
US8881101B2 (en) 2011-05-24 2014-11-04 Microsoft Corporation Binding between a layout engine and a scripting engine
TWI439097B (zh) * 2011-08-26 2014-05-21 Univ Nat Taiwan Science Tech 跨站腳本攻擊產生方法
US10445528B2 (en) * 2011-09-07 2019-10-15 Microsoft Technology Licensing, Llc Content handling for applications
US9223976B2 (en) * 2011-09-08 2015-12-29 Microsoft Technology Licensing, Llc Content inspection
GB2496107C (en) * 2011-10-26 2022-07-27 Cliquecloud Ltd A method and apparatus for preventing unwanted code execution
TWI506471B (zh) * 2011-12-27 2015-11-01 Univ Nat Taiwan Science Tech 跨網站攻擊防範系統及方法
KR101305755B1 (ko) * 2012-02-20 2013-09-17 한양대학교 산학협력단 주소에 기반하여 스크립트 실행을 필터링하는 장치 및 방법
US9026667B1 (en) * 2012-03-26 2015-05-05 Emc Corporation Techniques for resource validation
CN103532912B (zh) * 2012-07-04 2017-07-14 中国电信股份有限公司 浏览器业务数据的处理方法和装置
CN102819710B (zh) * 2012-08-22 2014-11-12 西北工业大学 基于渗透测试的跨站点脚本漏洞检测方法
US8839424B2 (en) * 2012-11-15 2014-09-16 Robert Hansen Cross-site request forgery protection
CN103856471B (zh) 2012-12-06 2018-11-02 阿里巴巴集团控股有限公司 跨站脚本攻击监控系统及方法
TWI489309B (zh) * 2013-01-10 2015-06-21 Nat Taiwan University Of Sience And Technology 跨網站攻擊防禦系統及方法
US9083736B2 (en) 2013-01-28 2015-07-14 Hewlett-Packard Development Company, L.P. Monitoring and mitigating client-side exploitation of application flaws
US9430452B2 (en) 2013-06-06 2016-08-30 Microsoft Technology Licensing, Llc Memory model for a layout engine and scripting engine
CN104348789B (zh) * 2013-07-30 2018-04-27 中国银联股份有限公司 用于防止跨站脚本攻击的Web服务器及方法
CN104519008B (zh) * 2013-09-26 2018-05-15 北大方正集团有限公司 跨站脚本攻击防御方法和装置、应用服务器
CN103634305B (zh) * 2013-11-15 2017-11-10 北京奇安信科技有限公司 网站防火墙的识别方法及设备
CN104657659B (zh) * 2013-11-20 2019-02-05 腾讯科技(深圳)有限公司 一种存储跨站攻击脚本漏洞检测方法、装置及系统
US9317694B2 (en) 2013-12-03 2016-04-19 Microsoft Technology Licensing, Llc Directed execution of dynamic programs in isolated environments
CN103870539A (zh) * 2014-02-20 2014-06-18 小米科技有限责任公司 文本预处理的方法及装置
EP3143509A4 (en) 2014-05-16 2017-11-01 Cardlytics, Inc. System and apparatus for identifier matching and management
US9781145B2 (en) 2014-11-25 2017-10-03 International Business Machines Corporation Persistent cross-site scripting vulnerability detection
CN104601540B (zh) * 2014-12-05 2018-11-16 华为技术有限公司 一种跨站脚本XSS攻击防御方法及Web服务器
US9787638B1 (en) * 2014-12-30 2017-10-10 Juniper Networks, Inc. Filtering data using malicious reference information
US10165004B1 (en) 2015-03-18 2018-12-25 Cequence Security, Inc. Passive detection of forged web browsers
US11418520B2 (en) 2015-06-15 2022-08-16 Cequence Security, Inc. Passive security analysis with inline active security device
US10044728B1 (en) * 2015-07-06 2018-08-07 Amazon Technologies, Inc. Endpoint segregation to prevent scripting attacks
US9942267B1 (en) 2015-07-06 2018-04-10 Amazon Technologies, Inc. Endpoint segregation to prevent scripting attacks
CN104967628B (zh) * 2015-07-16 2017-12-26 浙江大学 一种保护web应用安全的诱骗方法
US10693901B1 (en) * 2015-10-28 2020-06-23 Jpmorgan Chase Bank, N.A. Techniques for application security
US10931713B1 (en) 2016-02-17 2021-02-23 Cequence Security, Inc. Passive detection of genuine web browsers based on security parameters
CN107547487B (zh) * 2016-06-29 2020-11-24 阿里巴巴集团控股有限公司 一种防止脚本攻击的方法及装置
US11488190B1 (en) 2016-12-12 2022-11-01 Dosh, Llc System for sharing and transferring currency
US11538052B1 (en) 2016-12-12 2022-12-27 Dosh Holdings, Inc. System for generating and tracking offers chain of titles
US11526881B1 (en) 2016-12-12 2022-12-13 Dosh Holdings, Inc. System for generating and tracking offers chain of titles
US10931686B1 (en) 2017-02-01 2021-02-23 Cequence Security, Inc. Detection of automated requests using session identifiers
US11496438B1 (en) 2017-02-07 2022-11-08 F5, Inc. Methods for improved network security using asymmetric traffic delivery and devices thereof
US10791119B1 (en) 2017-03-14 2020-09-29 F5 Networks, Inc. Methods for temporal password injection and devices thereof
US10931662B1 (en) 2017-04-10 2021-02-23 F5 Networks, Inc. Methods for ephemeral authentication screening and devices thereof
CN107872463A (zh) * 2017-11-29 2018-04-03 四川无声信息技术有限公司 一种web邮件xss攻击检测方法及相关装置
JP6733915B2 (ja) * 2018-03-09 2020-08-05 Necプラットフォームズ株式会社 ルータ装置、上位ウェブフィルタリング検出方法および上位ウェブフィルタリング検出プログラム
US11658995B1 (en) 2018-03-20 2023-05-23 F5, Inc. Methods for dynamically mitigating network attacks and devices thereof
US10826935B2 (en) * 2018-04-24 2020-11-03 International Business Machines Corporation Phishing detection through secure testing implementation
US10831892B2 (en) * 2018-06-07 2020-11-10 Sap Se Web browser script monitoring
CN110417746A (zh) * 2019-07-05 2019-11-05 平安国际智慧城市科技股份有限公司 跨站脚本攻击防御方法、装置、设备及存储介质
US11082437B2 (en) * 2019-12-17 2021-08-03 Paypal, Inc. Network resources attack detection
US10992738B1 (en) 2019-12-31 2021-04-27 Cardlytics, Inc. Transmitting interactive content for rendering by an application
US11411918B2 (en) * 2020-05-26 2022-08-09 Microsoft Technology Licensing, Llc User interface for web server risk awareness
CN113364815B (zh) * 2021-08-11 2021-11-23 飞狐信息技术(天津)有限公司 一种跨站脚本漏洞攻击防御方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044441A (ja) * 2001-07-26 2003-02-14 Japan Science & Technology Corp ネットワーク・アクセス制御管理システム
JP2004513408A (ja) * 2000-04-06 2004-04-30 アップル コンピューター インコーポレーテッド カスタムストア
JP2005092564A (ja) * 2003-09-18 2005-04-07 Hitachi Software Eng Co Ltd フィルタリング装置
US20070113282A1 (en) * 2005-11-17 2007-05-17 Ross Robert F Systems and methods for detecting and disabling malicious script code
WO2007069338A1 (ja) * 2005-12-15 2007-06-21 Netstar, Inc. ウェブアクセス監視方法及びそのプログラム
JP2007241809A (ja) * 2006-03-10 2007-09-20 Ntt Comware Corp 個人情報保護プログラムおよび端末

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205551B1 (en) * 1998-01-29 2001-03-20 Lucent Technologies Inc. Computer security using virus probing
US6311278B1 (en) * 1998-09-09 2001-10-30 Sanctum Ltd. Method and system for extracting application protocol characteristics
JP4309102B2 (ja) * 2002-07-16 2009-08-05 Necネクサソリューションズ株式会社 不正コマンド・データ検知方式、不正コマンド・データ検知方法および不正コマンド・データ検知プログラム
US7343626B1 (en) * 2002-11-12 2008-03-11 Microsoft Corporation Automated detection of cross site scripting vulnerabilities
US7359976B2 (en) * 2002-11-23 2008-04-15 Microsoft Corporation Method and system for improved internet security via HTTP-only cookies
JP4405248B2 (ja) * 2003-03-31 2010-01-27 株式会社東芝 通信中継装置、通信中継方法及びプログラム
US20040260754A1 (en) * 2003-06-20 2004-12-23 Erik Olson Systems and methods for mitigating cross-site scripting
US7716357B2 (en) * 2003-10-24 2010-05-11 Microsoft Corporation Service discovery and publication
US7950059B2 (en) * 2003-12-30 2011-05-24 Check-Point Software Technologies Ltd. Universal worm catcher
JP4298622B2 (ja) * 2004-09-29 2009-07-22 株式会社東芝 不正アクセス検出装置、不正アクセス検出方法及び不正アクセス検出プログラム
US7831995B2 (en) * 2004-10-29 2010-11-09 CORE, SDI, Inc. Establishing and enforcing security and privacy policies in web-based applications
US20060167981A1 (en) * 2005-01-04 2006-07-27 Microsoft Corporation Web application architecture
JP2007004685A (ja) * 2005-06-27 2007-01-11 Hitachi Ltd 通信情報監視装置
JP2007047884A (ja) * 2005-08-05 2007-02-22 Recruit Co Ltd 情報処理システム
WO2007025279A2 (en) * 2005-08-25 2007-03-01 Fortify Software, Inc. Apparatus and method for analyzing and supplementing a program to provide security
US20070107057A1 (en) * 2005-11-10 2007-05-10 Docomo Communications Laboratories Usa, Inc. Method and apparatus for detecting and preventing unsafe behavior of javascript programs
US20070136809A1 (en) * 2005-12-08 2007-06-14 Kim Hwan K Apparatus and method for blocking attack against Web application
JP4545085B2 (ja) * 2005-12-08 2010-09-15 富士通株式会社 ファイアウォール装置
JP2007183838A (ja) * 2006-01-06 2007-07-19 Fujitsu Ltd クエリーパラメーター出力ページ発見プログラム、クエリーパラメーター出力ページ発見方法およびクエリーパラメーター出力ページ発見装置
JP2007241906A (ja) * 2006-03-11 2007-09-20 Hitachi Software Eng Co Ltd Webアプリケーション脆弱性動的検査方法およびシステム
US7934253B2 (en) * 2006-07-20 2011-04-26 Trustwave Holdings, Inc. System and method of securing web applications across an enterprise

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004513408A (ja) * 2000-04-06 2004-04-30 アップル コンピューター インコーポレーテッド カスタムストア
JP2003044441A (ja) * 2001-07-26 2003-02-14 Japan Science & Technology Corp ネットワーク・アクセス制御管理システム
JP2005092564A (ja) * 2003-09-18 2005-04-07 Hitachi Software Eng Co Ltd フィルタリング装置
US20070113282A1 (en) * 2005-11-17 2007-05-17 Ross Robert F Systems and methods for detecting and disabling malicious script code
WO2007069338A1 (ja) * 2005-12-15 2007-06-21 Netstar, Inc. ウェブアクセス監視方法及びそのプログラム
JP2007241809A (ja) * 2006-03-10 2007-09-20 Ntt Comware Corp 個人情報保護プログラムおよび端末

Also Published As

Publication number Publication date
CN101849238B (zh) 2017-04-19
JP5642856B2 (ja) 2014-12-17
JP2011503715A (ja) 2011-01-27
US20090119769A1 (en) 2009-05-07
JP2013242924A (ja) 2013-12-05
WO2009061588A1 (en) 2009-05-14
CN101849238A (zh) 2010-09-29
JP5490708B2 (ja) 2014-05-14
JP5992488B2 (ja) 2016-09-14
EP2223255A1 (en) 2010-09-01
EP2223255A4 (en) 2013-11-13

Similar Documents

Publication Publication Date Title
JP5992488B2 (ja) クロスサイトスクリプティングフィルタ
Steffens et al. Don’t Trust The Locals: Investigating the Prevalence of Persistent Client-Side Cross-Site Scripting in the Wild.
Gupta et al. XSS-secure as a service for the platforms of online social network-based multimedia web applications in cloud
Kirda et al. Noxes: a client-side solution for mitigating cross-site scripting attacks
Kirda et al. Client-side cross-site scripting protection
JP4405248B2 (ja) 通信中継装置、通信中継方法及びプログラム
US8112799B1 (en) Method, system, and computer program product for avoiding cross-site scripting attacks
Shahriar et al. Client-side detection of cross-site request forgery attacks
KR100732689B1 (ko) 웹 보안방법 및 그 장치
Nithya et al. A survey on detection and prevention of cross-site scripting attack
Stasinopoulos et al. Commix: automating evaluation and exploitation of command injection vulnerabilities in Web applications
Gupta et al. Robust injection point-based framework for modern applications against XSS vulnerabilities in online social networks
Patil Request dependency integrity: validating web requests using dependencies in the browser environment
Falana et al. Detection of cross-site scripting attacks using dynamic analysis and fuzzy inference system
Ofuonye et al. Securing web-clients with instrumented code and dynamic runtime monitoring
Tiwari et al. Optimized client side solution for cross site scripting
Hadpawat et al. Analysis of prevention of XSS attacks at client side
Sadana et al. Analysis of cross site scripting attack
Zhou et al. Strengthening XSRF defenses for legacy web applications using whitebox analysis and transformation
JP2011258018A (ja) セキュリティサーバシステム
JP2011013974A (ja) ウェブサイト評価装置およびプログラム
Ponnavaikko et al. Risk mitigation for cross site scripting attacks using signature based model on the server side
Das et al. Defeating Cyber Attacks Due to Script Injection.
Heckathorn Network monitoring for web-based threats
Gautam et al. Passwords Are Meant to Be Secret: A Practical Secure Password Entry Channel for Web Browsers

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160502

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160629

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160719

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160817

R150 Certificate of patent or registration of utility model

Ref document number: 5992488

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees