JP4625246B2 - クロスサイトスクリプティング脆弱性の自動検出 - Google Patents

クロスサイトスクリプティング脆弱性の自動検出 Download PDF

Info

Publication number
JP4625246B2
JP4625246B2 JP2003350055A JP2003350055A JP4625246B2 JP 4625246 B2 JP4625246 B2 JP 4625246B2 JP 2003350055 A JP2003350055 A JP 2003350055A JP 2003350055 A JP2003350055 A JP 2003350055A JP 4625246 B2 JP4625246 B2 JP 4625246B2
Authority
JP
Japan
Prior art keywords
value
key
script
tracer
value pair
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.)
Expired - Fee Related
Application number
JP2003350055A
Other languages
English (en)
Other versions
JP2004164617A (ja
Inventor
ギャラガー トーマス
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 JP2004164617A publication Critical patent/JP2004164617A/ja
Application granted granted Critical
Publication of JP4625246B2 publication Critical patent/JP4625246B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/1433Vulnerability analysis
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、一般に、コンピュータおよびコンピュータネットワークに関する。より詳細には、本発明はコンピュータセキュリティ、およびクロスサイトスクリプティング型攻撃に対するWebサイトの脆弱性の自動検出を提供することによりハッカーによるコンピュータシステムに対する悪意ある攻撃を防止することに関する。
インターネットが普及したことにより、コンピュータハッカーがWebサービスを混乱させ、企業のWebサイトに不具合を生じさせ、ユーザの私的な個人情報を悪用しようと試みる大きな活躍の場が作り出された。インターネットを基盤とする攻撃の典型的なタイプには、バッファオーバフロー攻撃、サービス妨害攻撃、およびクロスサイトスクリプティング(XSS、以前は当技術分野でCSSとして知られていた)攻撃と呼ばれる新しいクラスの攻撃が含まれる。
クロスサイトスクリプティング攻撃は、サーバがHTTPまたはHTTPSを介してユーザのクライアントコンピュータに何らかのユーザ入力データを戻すことに付け込む。たとえば、図1に示すように、CGIスクリプトが入力として人の名前を受け入れるとする。このCGIスクリプトは、図2に示すように、その人向けのメッセージを表示するHTML文書をクライアントコンピュータに戻すことができる。図2では、戻されたデータを例示のために限り太字で示す。
ハッカーなどの悪意あるユーザは、この返信機能を悪用してクライアントコンピュータ上で悪意あるコードを実行できることがある。たとえば、悪意あるユーザは、不注意なユーザを促して、図3に示すようなURLに対応するハイパーリンクをクリックさせることができる。悪意あるユーザは、不注意なユーザに一方的に送りつけられる電子メールで無害に見えるリンクを送信することがあり、あるいは、たとえば、人気のある有名人に関する情報を宣伝するなど、多くの人々が見ようとするWebページを運営していることがある。いずれのシナリオ(電子メールまたはWebページ)でも、図3に示すようなURLに対応するハイパーリンクが送信され(GET要求)、あるいはHTMLフォームに悪意あるフォームデータを事前に取り込ませる(POST要求)。CGIスクリプトは、サーバで実行されると、図4に示すようなHTML文書をクライアントに戻す。図4では、返信されたデータを例示のために限り太字で示す。ユーザのWebブラウザは、その有害なJava(登録商標)Scriptを信頼するWebページ(goodguy.com)から受信するので、そのスクリプトを実行し、たとえばユーザの個人ログイン名およびパスワード、アカウント情報、クレジットカード情報などを含むクッキーなど、通常ならgoodguy.comからアクセスできるはずの何に対してでもアクセスを許可することになる。
信頼するWebサイトから発信されたように見えるが実は悪意あるユーザから発信されたスクリプトをユーザのローカルコンピュータ上で実行できることは深刻なセキュリティ上の脆弱性である。たとえば、簡単なスクリプトalert(document.cookie)は、ユーザの現在のgoodguy.com用の1組のクッキーを表示するアラートダイアログボックスをポップアップ表示させる。当技術分野の技術者であれば、パスワードやクッキーに格納されるその他の個人情報(たとえばクレジットカード情報)を盗み出すことやユーザを別の(悪意ある)Webサイトに転送することを含めて、悪意あるユーザがより一層深刻な損害を与える可能性があることを理解するであろう。
たとえば、入力が悪意あるコードを含まないことを確認するために、受信した入力に対する妥当性検査を実行することによって、あるいはHTMLにおいて特別な意味を持つ文字を符号化することによってクロスサイトスクリプティング攻撃を防止する解決法が提案されているが、今のところ、Webサイトがクロスサイトスクリプティング攻撃を受けやすいかどうか自動的に試験する方策はない。クロスサイトスクリプティング脆弱性を試験するためには、試験者は様々な試験データを含むURLの形で試験データをWebサーバに手動で送信しなければならない。この手動試験は冗長であり、不必要なリソース(すなわち工数)を消費する。
したがって、Webサイトがクロスサイトスクリプティング攻撃を受けやすいかどうか試験する自動化された解決法を提供すれば、当分野における前進である。単純なクロスサイトスクリプティング脆弱性を検査するだけでなく、高度なクロスサイトスクリプティング攻撃を受けやすいかどうかも試験する自動化されたソフトウェア試験ツールを提供すれば、当分野におけるさらなる前進である。その自動化ソフトウェアツールが、ユーザが普通のWebブラウザを使用してWebサイトを閲覧する場合と同じ普通のWebブラウザによって使用されるエンジンを使用して、試験対象サイトが正しく動作することを確認できれば、それは当分野におけるさらなる前進である。
前述の従来技術における限界を克服するとともに、本明細書を読み理解すれば明らかになるその他の限界を克服するために、本発明はWebサイトがクロスサイトスクリプティング攻撃を受けやすいかどうか検出する自動化ソフトウェアツールを対象とする。
自動化ソフトウェアツールは、Webサイトに入力としてトレーサ値を送信(submitし、トレーサ値を送信した結果としてWebサイトから戻されるWebページを監視する。戻されたWebページにそのトレーサ値が存在する場合、自動化ソフトウェアツールは、そのWebサイトがクロスサイトスクリプティング(XSS)攻撃に対して脆弱である可能性があることを知る。そのWebサイトが実際にXSS攻撃に対して脆弱であるかどうか確認するために、自動化ソフトウェアツールは、戻されたトレーサ値の位置に基づいて、Webサイトに入力として信号スクリプトを送信し、続いて戻されるWebページを監視して、続いて戻されるWebページがローカルコンピュータ上にロードされるときにその信号スクリプトがローカルコンピュータによって実行されるかどうか判定する。スクリプトが実行される場合、自動化ソフトウェアツールは、判定されたトレーサ値の位置に基づいて送信されたスクリプトの形式に対応するXSS攻撃に対して、そのWebサイトが脆弱であることを知る。
本発明および本発明の利点のより完全な理解は、以下の説明を添付の図面を検討しながら参照することにより得ることができる。図面において類似の番号は類似の特徴を示す。
以下の様々な実施形態の説明において、本明細書の一部を形成する添付の図面を参照する。図面では、本発明を実施できる様々な実施形態を例として示す。他の実施形態を利用することができ、本発明の範囲を逸脱することなく構造的および機能的改変を行うことができることを理解されたい。
図5を参照すると、本発明を実装するための例示的システムは、コンピュータ装置100などのコンピュータ装置を含む。その最も基本的な構成において、コンピュータ装置100は一般に、少なくとも1つの処理ユニット102およびメモリ104を含む。コンピュータ装置の厳密な構成およびタイプに応じて、メモリ104は揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)、または両者の何らかの組合せとすることができる。この最も基本的な構成を図5に破線106で示す。さらに、装置100は追加の機構/機能を備えることもできる。たとえば、装置100は、それだけには限らないが、磁気または光のディスクまたはテープを含む(取外し可能および/または取外し不能の)追加記憶装置を含むこともできる。そうした追加記憶装置を取外し可能記憶装置108および取外し不能記憶装置110で図5に示す。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなどの情報を記憶するための任意の方法または技術において実装される揮発性および不揮発性、取外し可能および取外し不能媒体が含まれる。メモリ104、取外し可能記憶装置108および取外し不能記憶装置110はすべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体には、それだけには限らないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、ディジタル多用途ディスク(DVD)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を記憶するために使用でき装置100からアクセスできる任意の他の媒体が含まれる。任意のそうしたコンピュータ記憶媒体を装置100の一部とすることができる。
装置100は、この装置が他の装置と通信できるようにする1つまたは複数の通信接続112を備えることもできる。通信接続112は通信媒体の一例である。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の伝送機構などの変調データ信号で実施し、任意の情報配信媒体を含む。「変調データ信号」という用語は、その1つまたは複数の特性が、その信号中に情報を符号化するような方式で設定または変更されている信号を意味する。通信媒体には例として、それだけには限らないが、有線ネットワークや直接配線接続などの有線媒体、および音波、ブルートゥース、RF、赤外線、他の無線媒体などの無線媒体が含まれる。本明細書で使用するコンピュータ可読媒体という用語は、記憶媒体と通信媒体の両方を含む。
通信接続112は、装置100が、1つまたは複数のネットワーク118を介してリモート装置、たとえばサーバ120と通信できるようにする。サーバ120はWebサービスを提供するアプリケーションサービスプロバイダのサーバ、Webサイトの1つまたは複数のWebページにアクセスするためのWebサーバ、またはクライアントマシンとして働く装置100がアクセスできる任意の他のサーバとすることができる。ネットワーク118は、例としてインターネット、企業のイントラネット、LAN、広域ネットワーク(WAN)などを含めて、任意の数およびタイプの有線および/または無線ネットワークを含むことができる。
また、装置100は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置114を備えることもできる。また、ディスプレイ、スピーカ、プリンタなどの出力装置116を含むこともできる。これらの装置はすべて当技術分野で公知であり、本明細書で詳細に説明する必要はない。
図5に、本発明を実装できる適当な動作環境100の例を示す。動作環境100は適当な動作環境の一例に過ぎず、本発明の使用または機能の範囲に関する限定を示唆するためのものではない。本発明と共に使用するのに適する他の公知のコンピュータシステム、環境、および/または構成には、それだけには限らないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサに基づくシステム、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散コンピュータ環境などが含まれる。
本発明は、1つまたは複数のコンピュータあるいは他の装置によって実行される、プログラムモジュールなどのコンピュータ実行可能命令という一般的な脈絡の中で説明することができる。一般に、プログラムモジュールには、コンピュータまたは他の装置においてプロセッサによって実行された場合に特定のタスクを実施し、あるいは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。コンピュータ実行可能命令は、ハードディスク、光ディスク、取外し可能記憶媒体、固体メモリ、RAMなどのコンピュータ可読媒体上に記憶することができる。当分野の技術者であれば理解するように、プログラムモジュールの機能は、様々な実施形態において所望どおりに組み合わせ、あるいは分配することができる。また、その機能の全体または一部を、集積回路、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)など、ファームウェアまたはハードウェアの等価物として実施することもできる。
図6〜図12を参照すると、本発明はWebサイトがハッカーまたはその他悪意のユーザによるクロスサイトスクリプティング(XSS)攻撃を受けやすいかどうか検査する自動化されたソフトウェア試験ツールを提供する。図6に、自動化ソフトウェアツールのユーザが利用できる様々な機能および選択肢を示す、このツールのメインメニューの画面ショットを示す。図7に、ユーザがクロスサイトスクリプティング型攻撃を受けやすいかどうか判定しようとするWebページの画面ショットを示す。図8に、この自動化ソフトウェアツールの例示的実施形態によって実施される、クロスサイトスクリプティング攻撃を受けやすいかどうか判定する方法を示す。以下で各図をより詳細に説明する。
図6には、本発明の例示的実施形態による、自動化ソフトウェアツールのメインメニュー601を示す。この自動化ソフトウェアツールを起動した後、ユーザは、XSS脆弱性を試験しようとするWebサイトに対応するホスト名を入力ボックス603に入力することができる。同様に、ユーザは、具体的なURIデータ、ポート番号、およびフォームデータを入力ボックス605、607および609にそれぞれ入力する。URIデータ605は、URLのドメイン名部分の後のデータを指す。ポート番号607は、リモートサーバ上のアクセス可能な任意のポートとすることができる。ただし、特に指定しない限り、デフォルトではポート80が使用される。というのはポート80がWebブラウザトラフィックに対応するからである。フォームデータ609には、ホスト603がURI605を介してポート607上で受信すると予想するフォームフィールドを記述する。
上記のWebサイト情報を入力した後で、ユーザはセキュアソケットレイヤ(SSL)を使用すべきかどうか入力ボックス611を介して選択するなど、追加の選択肢を指定することができる。たとえば、一部のWebページは、HTTPS(セキュリティ機能を付加した接続)を介してのみアクセスすることができる。この場合、ユーザはSSLを指定する必要がある。たとえば、Webサイトへのログインページは、安全のためSSLを介さないと機能しない可能性が高い。ユーザはまた、GETメソッドを使用してテストを実施するかそれともPOSTメソッドを使用して実施するかを、入力ボックス613を介して選択することもできる。GETメソッドは一般に、サーバに送信されるURL中に変数のデータを含めることをいう。POSTメソッドは一般に、Webページのフォームフィールドを介してPOSTメソッドによってフォームデータを送信することをいう。Webサイト情報および関連選択肢が入力された後、ユーザは「実行する」ボタン615を選択して試験プロセスを起動する。
各Webサイトの情報を手入力する代わりに、ユーザは複数のWebサイトに対応する情報をデータファイルに記憶させることができる。ユーザは、「ファイルを実行する」ボタン617を選択することによって、メニュー601に各Webサイトごとの情報を手入力するように要求されずに、各Webサイトを自動的に試験することができる。ボタン617が選択されると、複数Webサイトに対応する情報を含むファイルのファイル名を入力するようユーザに促すことができる。代替として、たとえば「webdata.csv」など所定の名前でファイルに情報を記憶させるようユーザに求めることもできる。自動化ソフトウェアツールは、ボタン617の選択時に所定のファイルからその情報を取り込む。
別の代替方法によれば、ユーザは、たとえばマイクロソフトWINDOWS(登録商標)ブランドのオペレーティングシステムなど、オペレーティングシステムのクリップボード(図示せず)にURLを単にコピーすることもできる。次いで自動化ソフトウェアツールがそのURLをパースして、入力フィールド603、605、607、609に適切なWebサイト情報を決定する。たとえば、ユーザが図7に示すWebサイト701の試験を望んでいると想定する。ユーザは、URL703をハイライト表示させ、メニューバー705から編集、コピーと選択し、あるいはこれに対応するショートカットCtrl+Cを入力することによって、URL703をクリップボードにコピーすることができる。再度図6を参照すると、ユーザは次いで「クリップボードをパースする」ボタン619を選択することができる。これによって自動化ソフトウェアツールにクリップボードの現在の内容をパースさせ、図6に示すように、入力フィールド603、605、607、609にホスト名、URI、ポート、フォームデータをそれぞれ自動的に取り込ませる。クリップボードの現在の内容がWebサイトに対応しない場合、自動化ソフトウェアツールはユーザにエラー(図示せず)を表示する。クリップボードの内容のパースに成功した後で、ユーザはボタン615を選択してWebサイト701を試験することができる。以下で図8を参照してより詳細に試験プロセスを説明する。
ユーザが、自動試験プロセスを終了する前に自動化ソフトウェアツールを打ち切ろうとする場合、ユーザは「実行を打ち切る」ボタン625を選択することができる。このボタンは、(図示のように)ユーザが、試験プロセス中に選択する際に、任意選択に限って使用することができる。自動化ソフトウェアツールがWebサイトの試験を完了した後で、ユーザは「ログを閲覧する」ボタン623を選択することによって生成されたログファイルを閲覧することができる。ユーザがログファイルを保持する必要がない、あるいはそのログファイルの削除を望む場合は、ユーザは「ログを消去する」ボタン621を選択することによってログファイルを消去することができる。
メインメニュー601には、他の任意選択の情報を提示することもできる。たとえば、状況表示627は、自動化ソフトウェアツールが(図示のように)Webサイトを試験できる状況にあるかどうか、ユーザからの入力を待機中、クリップボードをパース中、複数Webサイトに対応する情報を含むファイルをパース中、試験中などを示すことができる。Webサイトの試験中および/またはその後に、表示629は現在のWebサイトが合格した試験数を示すことができ、表示631は現在のWebサイトが失格した試験数(すなわち、自動化されたソトウェアツールが現在のWebサイトに付け込む(exploit)ことができた、したがって、そのWebサイトがXSS攻撃を受けやすい様々な進入路)を示すことができる。
図8に、本発明の例示的実施形態による、WebサイトがXSS型の攻撃を受けやすいかどうか試験する方法を示す。まず、ステップ801で、ユーザは試験対象のWebサイトにナビゲートする。ステップ803で、ユーザはWebサイトのURLをクリップボードにコピーし、ステップ805で自動化ソフトウェアツール上の「クリップボードをパースする」ボタンを選択し、自動化ソフトウェアツールにクリップボードをパースさせ、前述のように各Webサイト情報フィールドに情報を取り込ませる。ステップ807でユーザが「実行する」ボタンを選択すると、自動化ソフトウェアツールは試験を開始する。当分野の技術者であれば、ステップ801〜807の代わりに、前述のようにユーザが自動化ソフトウェアツールのメインメニュー(図6)で情報を手入力でき、あるいは試験する複数のWebサイトを入力ファイルで指定できることを理解するであろう。本明細書では例示のために限り、1つの試験対象Webサイトについてだけ説明する。
ステップ809で、自動化ソフトウェアツールは、そこで対象Webサイトを試験するために新規のブラウザウィンドウを開く。ステップ811で自動化ソフトウェアツールは、フォームデータ609(図6)をパースしてキーと値の対に分解する。各キー/値対はアンパサンド(&)で区切り、キー名とそれに対応する値は等号(=)で区切る。図6および図7に示す例では、各キーの値はヌルである。しかし、キーNGSearchに対して値「hacking」が指定された場合、この例は「email45=&emailaddr=&NGSearch=hacking&SearchType=&...」のようになる。
自動化ソフトウェアツールは続いて、各キー/値対に基づきXSS攻撃に対するWebサイトの脆弱性を検査する。すなわち、自動化ソフトウェアツールはまず、第1のキー/値対に基づいて脆弱性を試験し、次いで、第2のキー/値対に進み、以下同様に進んですべてのキー/値対をテストする。したがって、ステップ813で自動化ソフトウェアツールは、現在のキー/値対と呼ばれる第1の(または次の)キー/値対を選択する。
自動化ソフトウェアツールは、現在のキー/値の各対ごとにステップ815〜835を実施する。ステップ815で、自動化ソフトウェアツールは、現在のキー/値対の値として、たとえばCSSTESTAGなどのプレーンテキストのトレーサを挿入し、その結果得られるURLをステップ809で開いた新規のブラウザウィンドウを介して送信する。たとえば、現在のキー/値対が第1のキー/値対であるとすると、自動化ソフトウェアツールはまず、ステップ815で図9に示すURLを送信する。ステップ817で、自動化ソフトウェアツールは、URLを送信した相手先のWebサーバ(たとえば、図5のサーバ120)から戻されるHTMLデータを受信し、その自動化サーバツールはそのHTMLを走査してサーバによってトレーサ値が戻されたどうか検査する。本発明の一例示的実施形態においては、走査中のWebサイトの挙動がユーザのブラウザウィンドウにおける場合と全く同じになるようにするために、自動化ソフトウェアツールはWebページの文書オブジェクトモデル(DOM)を走査する。戻されたHTML WebページのDOMは(たとえば、mshtml.dll、dispex.dll、iesetup.dll、mshtml.tlb、mshtmled.dll、mshtmler.dllを使用して)インターネットエクスプローラのHTMLレンダリングエンジンによって明らかにされる。DOMにトレーサ値が見つからなかった場合、自動化ソフトウェアツールはステップ819でキー/値対が残っているかどうか判定し、残っている場合はステップ813に戻る。残りのキー/値対がない場合、自動化ソフトウェアツールはステップ837に進む。
HTML DOMにトレーサ値が見つからなかった場合、ツールはステップ819に進む。しかし、HTML DOMにトレーサ値が見つかった場合、自動化ソフトウェアツールは、ステップ817で、トレーサ値がどこで見つかったかも分析する。次に、ステップ821で、自動化ソフトウェアツールは、トレーサ値が見つかった位置が、それに対する付け込み手段の存在が知られている特殊な事例に相当するかどうか判定する。相当すると判定した場合、自動化ソフトウェアツールはステップ823で、ステップ817でトレーサ値が見つかった位置に基づいて、そのWebサイトのクロスサイトスクリプティング攻撃に対する脆弱性に付け込もうと試みる。特殊な事例が存在しない場合、自動化ソフトウェアツールはステップ829に進み、DOMにカスタムHTMLを挿入するための別のトレーサ値を使ってそのWebサイトに付け込もうと試みる。
既知の付け込み手段を示す位置の例は、それだけには限らないが、以下のとおりである。
1)Webページの本文中に表示されるテキストとして戻されるトレーサ値。
戻されるWebページの本文中の表示テキストとしてトレーサ値が戻される場合、自動化ソフトウェアツールは、そのWebサイトが脆弱であれば、現在のキー/値対の値としてスクリプトをそのままで挿入することによってクロスサイトスクリプティング攻撃を達成できると判定する。すなわち、自動化ソフトウェアツールは「<script>exploit-script-goes-here;</script>」(引用符を除く)の形でスクリプトを挿入することができる。
2)HTMLタグ中で戻されるトレーサ値。
HTMLタグ中でトレーサ値が戻される場合、その結果得られるHTMLは、トレーサ値が入力値として送信された以下の例と同様に表示されることがある。
<INPUT type="text" value="CSSTESTTAG">
しかし、「INPUT」タグは、トレーサ値の出現に先立って閉じられないことに気付く。したがって、自動化ソフトウェアツールは、そのWebサイトが脆弱であれば、たとえば、「><SCRIPT>exploit-script-goes-here;</SCRIPT>」(引用符を除く)の形でタグ閉じ記号を先頭に付けたスクリプトを挿入することによって、クロスサイトスクリプティング攻撃を達成できると判定する。
Webサイトによっては、先行するタグを閉じることはできないが、属性が付加されることがある。したがって、自動化ソフトウェアツールは値に属性を付加しようと試みることもできる。たとえば、郵便番号の値「90210 onclick="exploit-script-goes-here;"」(外側の引用符を除く)を送信するHTML「<A HREF=www.test.com/default.asp?zip=>」でトレーサが戻される場合である。その結果得られるHTMLは図10に示す例のようになることがある。その結果生じたリンクをクリックすると、挿入されたスクリプトを起動する。
3)IMGまたはA HREFタグの属性として戻されるトレーサ値。
「IMG」、「A」およびその他いくつかのタグではURLを属性として指定できる。したがって、自動化ソフトウェアツールは、そのWebサイトが脆弱であれば、URLとしてスクリプトプロトコルを挿入することによって、クロスサイトスクリプティング攻撃を達成できると判定する。たとえば、java(登録商標)script:exploit-script-goes-here、vbscript:exploit-script-goes-hereなどである。場合によっては、WebサイトがIMG SRC属性の一部としてユーザによる入力を使用することがある。すなわち、Webサイトはユーザ入力を基にしてファイル名を生成することができ、たとえば、入力値「CSSTESTTAG」がタグ「<IMG SRC=fooCSSTESTTAG.jpg>」(引用符を除く)という結果になることがある。したがって、自動化ソフトウェアツールは、そのWebサイトが脆弱であれば、「.jpg>」の前に置いたスクリプトを挿入することによってクロスサイトスクリプティング攻撃を達成できると判定する。
4)スクリプトブロックの一部として戻されるトレーサ値。
トレーサ値はスクリプトブロックに挿入することもできる。この場合、入力されるスクリプトにSCRIPTタグを含む必要がない。ただし、この攻撃では、戻されるデータが構文上正しいスクリプトである必要がある。たとえば、慎重な閲覧を勧告するサイトの一部に入ろうとしていることをユーザに知らせるWebページが、ユーザが宛先変更されるはずの転送先ページの転送値を含むことがある。そのページのURLは以下のようになることがある。
http://www.test.com/blabla/acssrv.dll?action=acwarning&redir_url=%2Fisapi%2Facssrv%2Edll%3Faction%3Derror%26commid%3D
このURL中で渡されるパラメータの1つはredir_urlである。ユーザ入力データは、「var Request_redir_url='/isapi/acssrv.dll?action=error&commid=';」などのように、SCRIPTタグ内で戻すことができる。このURLからのredir_urlの値はRequest_redir_urlという名前のJava(登録商標)Script変数の値になる。自動化ソフトウェアツールは、そのWebサイトが脆弱であれば、たとえば以下のようなURLを使用して、SCRIPTタグなしでURLの末尾にスクリプトを挿入することによって、クロスサイトスクリプティング攻撃を達成できると判定する。
http://www.test.com/isapi/acssrv.dll?action=acwarning&c=&redir_url=%2Fisapi%2Facssrv%2Edll%3Faction%3Derror%26commid%3D';some-evil-Java Script-goes-here;var%20strBogus='gotcha
自動化ソフトウェアツールが上記のURLを送信すると、以下がSCRIPTタグ内でブラウザに戻される。
「var Request_redir_url='/isapi/acssrv.dll?action=error&commid=';alert("Cross-siteScriptingVulnerabilityFoundByCSSProbe.");var strBogus='gotcha」
自動化ソフトウェアツールは、スクリプトの後に「var strBogus='gotcha」を含むことによって、そのスクリプト(すなわち、alert("Cross-siteScriptingVulnerabilityFoundByCSSProbe."))の挿入に成功する。というのは、Webサーバの一部(たとえばMSN)は、ユーザ入力データの後に必ず「'」を付加するからである。自動化ソフトウェアツールは、スクリプトエラーを回避するようにstrBogusという名前の新規の変数を宣言することによって、そのスクリプトを構文上正しいものにする。
5)HTMLコメント中で戻されるトレーサ値。
ユーザ入力データ(すなわちトレーサ値)は、HTMLコメント内で戻されることがある。たとえば、CGIスクリプトはエラーを戻し、ユーザ入力をデバッグに使用する。しかし、コメントフィールドは、ここでのトレーサ値CSSTESTTAGの出現に先立って閉じられることはない。したがって、自動化ソフトウェアツールは、そのWebサイトが脆弱であれば、たとえば、「--> <SCRIPT>exploit-script-goes-here;</SCRIPT>」(引用符を除く)の形で、コメント閉じ記号を先頭に付けたスクリプトを挿入することによって、クロスサイトスクリプティング攻撃を達成できると判定する。
6)それに対する付け込み手段の存在が知られている位置以外に位置するトレーサ値。
場合によっては、DOM中のそれに対する付け込み手段があると知られていない位置でトレーサ値が見つかることがある。そうした状況において、自動化ソフトウェアツールは、STYLE属性を挿入することによってWebサイトに付け込もうと試みることができる。自動化ソフトウェアツールは、他の特定の位置で見つかるトレーサ値に基づいて他の属性を挿入することもできるが、STYLE属性は、多くのHTMLタグに共通なので、デフォルトの、またはフォールバックの試行として使用される。したがって、自動化ソフトウェアツールは、'STYLE=、"STYLE=など様々な形式でSTYLE属性を挿入することによって様々な付け込みを試みることができる。
上記の各シナリオは例示のためのものに過ぎず、この自動化ソフトウェアツールをそれらのシナリオだけに限定していると解釈すべきではない。当分野の技術者であれば、他のシナリオが知られており、あるいは後日発見される可能性があり、この自動化ソフトウェアツールをそうした他のシナリオに対応するように適合できることを理解するであろう。
再度図8を参照すると、自動化ソフトウェアツールはステップ823で、前述の悪意のないスクリプトを挿入することによってWebサイトに付け込もうと試みる。本発明の例示的実施形態においては、<SCRIPT>alert("Cross-siteScriptingVulnerabilityFoundByCSSProbe.")</SCRIPT>などのスクリプトを使用する。容易に識別可能な任意の他のテキストを代わりに使用することができる。したがって、付け込みに成功した場合、その結果ブラウザウィンドウに戻されるHTMLは、図11に示すようにテキスト「Cross-siteScriptingVulnerabilityFoundByCSSProbe」をポップアップウィンドウに表示させる。ステップ825で、自動化ソフトウェアツールは、ローカルシステムにそのポップアップウィンドウが表示されるかどうか監視することによって付け込みが成功したかどうか判定する。所定の時間内、たとえば戻されたHTMLのロードが完了した時またはその直後までにポップアップウィンドウが表示されなかった場合、自動化ソフトウェアツールは付け込みに失敗したと判定し、ステップ829に進む。しかし、所定の時間内にポップアップウィンドウが表示された場合、自動化ソフトウェアツールは、付け込みに成功したと判定し、ステップ827に進む。そこで、そのWebサイトが受けやすいXSS攻撃のタイプを識別するのに十分な情報と共に付け込みデータがログファイルに書き込まれる。このログファイルは、後刻ユーザが検討して、たとえば、対象Webサイトをデバッグする際に役立てることができる。
図12を参照すると、たとえば一実施形態では、ログファイルがHTML文書として書かれており、ユーザは試験サイクルの完了時にそれを検討することができる。ログファイル中の各エントリはテーブル中の一行として表示することができ、各Webページが脆弱かそれとも安全かを示すように各エントリを色分けすることができる。当分野の技術者であれば、ログファイルは、各Webページがそれに対して脆弱である付け込みのタイプをユーザに示すのに十分な任意のファイルタイプとすることができることを理解するであろう。ステップ827でその付け込みを記録した後で、自動化ソフトウェアツールはステップ819に戻る。
ステップ829で、自動化ソフトウェアツールは、ステップ823で試みた付け込みの結果に基づき、タグに基づくトレーサ値を挿入する。たとえば、ステップ817で自動化ソフトウェアツールが、それへの付け込み方が分かっているタグ属性中にトレーサ値を発見しなかった場合は、たとえば<CSSTESTTAG>などのタグをDOMに追加しようと試みる。自動化ソフトウェアツールはまず、<CSSTESTTAG>を送信する。というのはそれが一般に、Webサイトの付け込みに成功する可能性が最も高いタグだからである。また、自動化ソフトウェアツールは、"><CSSTESTTAG>、'><CSSTESTTAG>、生成されるDOMにタグを挿入しようとするその他の構文変形などを使って、Webサイトに付け込もうと試みることができる。DOM内にタグが見つかると、自動化ソフトウェアツールはスクリプトタグおよび悪意のないスクリプト付け込みコードで<CSSTESTTAG>を置き換える。ステップ831で、自動化ソフトウェアツールは戻されたHTMLおよび/またはDOMを検査して、サーバが戻されたWebページ中で新規のトレーサ値を戻したかどうか判定する。戻した場合、自動化ソフトウェアツールはステップ833に進む。戻さなかった場合、自動化ソフトウェアツールはステップ819に進む。
ステップ833では、サーバによって新規のトレーサ値が戻されたので、自動化ソフトウェアツールは、この場合もやはり戻されたWebページ中の新規のトレーサ値の位置に基づいて付け込みスクリプトを送信することによってそのWebサイトに付け込もうと試みる。ステップ835で、自動化ソフトウェアツールは、所定の時間内にポップアップウィンドウが表示されるかどうかに基づいて、付け込みに成功したかどうか判定する。ステップ833での付け込みに成功した場合、自動化ソフトウェアツールはステップ827に進み、そこでその付け込みをログファイルに記録する。付け込みに失敗した場合、自動化ソフトウェアツールはステップ819に進む。
ステップ837で自動化ソフトウェアツールは、DOMに付け込み可能な属性を挿入することによってWebサイトに付け込もうと試みる。すなわち、一部のWebサイトは、キー/値対を受け入れると明示的に示していないが、キー/値対が送信されるとそれを受け入れる。たとえば、「http://www.test.com/main.asp」というURLのWebサイトはキー/値対を受け入れるように見えない。しかし、URL「http://www.test.com/main.asp?name=CSSTESTTAG」が送信された場合、その結果得られるHTMLまたはDOMはトレーサ値「CSSTESTTAG」を含むことができる。したがって、自動化ソフトウェアツールは、そのWebサイトが脆弱であれば、前述のように属性トレーサ値の位置に基づくスクリプトを挿入することによってクロスサイトスクリプティング攻撃を達成することができると判定する。ステップ839で、自動化ソフトウェアツールは、所定の時間内にポップアップウィンドウが表示されるかどうかに基づき、属性攻撃が成功したかどうか判定する。攻撃に成功した場合、自動化ソフトウェアツールは、ステップ827での記録と同様に、ステップ841でその付け込みを記録する。
当分野の技術者であれば、本発明の範囲および精神を逸脱することなく図8に示す方法を変更できることを理解するであろう。すなわち、図8の一部のステップを記載した以外の順番で実行することができ、1つまたは複数のステップを任意選択とすることができ、追加のステップを挿入することができ、また一部のステップを結合することができ、しかもそれらすべてにおいて前述の機能と実質的に同じ機能を実行することができる。たとえば図8は、キー/値対に対する付け込みが見つかった後で、自動化ソフトウェアツールが次のキー/値対に進むことを示す。これは、自動化ソフトウェアツールが、戻りトレーサ値の位置に基づいて必要な付け込みのタイプについて知的意思決定を行うからである。すなわち、自動化ソフトウェアツールは、トレーサ値の戻り位置に基づいて、挿入されたスクリプトを「>」、「-->」、「.jpg>」、「.jpgSTYLE=」、ヌルなどで始めるべきかどうかの知的意思決定を行う。しかし、当分野の技術者であれば、代替の例示的実施形態において、自動化ソフトウェアツールは、各スクリプト形式を繰り返し試みることによって各キー/値対に付け込もうと試みることができることを理解するであろう。すなわち、強引なやり方を代わりに用いることもできる。また、別の代替の例示的実施形態において自動化ソフトウェアツールは、第1の脆弱性が検出され次第試験を停止することができる。
図6に示すように、自動化ソフトウェアツールはまた、公知のPOSTコマンドを使ってXSS攻撃に対するWebサイトの脆弱性を試験することもできる。それを介してPOSTコマンドを送信できるフォームを含むWebページはしばしば、そのWebページ自体のフォーム内にエラー検査を含むことがある。すなわち、エラー検査はしばしば、データがサーバに送信される前に、クライアントコンピュータ上においてローカルで実施される。そうしたシナリオでは、入力値がSCRIPTやその他不正なまたは悪意ある可能性のあるタグを含んでいないことを確認するための入力データの妥当性検査をエラー検査に含むことがある。しかし、悪意あるユーザであればそうするように、ローカルで実施されるエラー検査をくぐり抜けるために、自動化ソフトウェアツールはそのフォームをパースしてサーバに実際に戻される値を判定し、エラー検査を実施しない複製ページを作成する。自動化ソフトウェアツールは次いで、エラー検査を実施しない複製されたWebページを使って、そのWebサイト上で、図8に示すように前述の分析を実施する。
前述の自動化ソフトウェアツールは、Webサイトにおける脆弱性を識別するための強力なツールである。このツールを悪意あるユーザが入手した場合、悪意あるユーザは、この自動化ソフトウェアツール自体を悪用して様々なWebサイトの弱点を識別することができよう。したがって、権限のないまたは悪意あるユーザにこの自動化ソフトウェアツールの諸機能を利用させないようにするために、本発明の一例示的実施形態において自動化ソフトウェアツールは、初期設定中に検査を行って、それが所定のネットワーク、すなわちホームネットワークから実行されているかどうか判定する。たとえば、自動化ソフトウェアツールは、企業のイントラネット内からしかアクセスできない所定の企業サーバにpingできることを確認することによって、自動化ソフトウェアツールが企業イントラネット内から実行されていると判定することができる。自動化ソフトウェアツールが所定の企業サーバと交信できない場合、自動化ソフトウェアツールはシャットダウンし、あるいはWebサイトの試験を拒否することができる。
代替として、自動化ソフトウェアツールが任意のWebサイト上で使用されないようにするために、所定のドメイン名、ホスト、および/またはURIのリスト内に含まれるWebサイトだけを試験するように自動化ソフトウェアツールをハードコーディングすることができる。ユーザが所定のWebサイトのリストに含まれないWebサイトを試験しようとした場合、自動化ソフトウェアツールはシャットダウンし、あるいは所望のWebサイトの試験を拒否することができる。
以上、本発明を実施する現時点での好ましい形態を含む具体的な例に関して本発明を説明したが、当分野の技術者であれば、前述のシステムおよび技術の多数の変形形態および置換形態があることを理解するであろう。したがって、本発明の精神および範囲は、特許請求の範囲に記載するように広範囲に解釈すべきである。
予想されるユーザ入力を含むURLを示す図である。 図1に示すURLを送信した結果として生成されるHTMLを示す図である。 悪意あるコードが挿入されたURLを示す図である。 図3に示すURLを送信した結果として生成されるHTMLを示す図である。 本発明の例示的実施形態による実行環境を示す図である。 本発明の例示的実施形態による自動化ソフトウェアツールの画面ショットを示す図である。 本発明の例示的実施形態に従ってクロスサイトスクリプティング攻撃に対して脆弱かどうか試験されるWebサイトの画面ショットを示す図である。 本発明の例示的実施形態による、Webサイトがクロスサイトスクリプティング攻撃を受けやすいかどうか試験する方法を示す図である。 本発明の例示的実施形態による自動化ソフトウェアツールによって使用される試験URLを示す図である。 自動化ソフトウェアツールが本発明の例示的実施形態による付け込みを試みた後でサーバによって戻されるHTMLを示す図である。 本発明の例示的実施形態による自動化ソフトウェアツールによって表示されるアラートウィンドウを示す図である。 本発明の例示的実施形態による自動化ソフトウェアツールによって生成されるログファイルの一部を示す図である。
符号の説明
100 コンピュータ装置
102 処理ユニット
104 メモリ
108 取外し可能記憶装置
110 取外し不能記憶装置
112 通信接続
114 入力装置
116 出力装置
118 ネットワーク
120 サーバ

Claims (48)

  1. Webサイトのクロスサイトスクリプティング脆弱性を自動検出する、コンピュータにより実行される方法であって、
    処理ユニットが、新規のブラウザウィンドウを開くステップと、
    前記処理ユニットが、前記開かれたブラウザウィンドウのフォームデータをキー/値対にパースするステップと、
    前記処理ユニットが、前記パースされたキー/値対から前記Webサイトに対応するキー/値対を決定するステップと、
    前記決定されたキー/値対の各々に対して、前記処理ユニットが、少なくとも最初の脆弱性が検出されるまで下位方法を実行するステップと
    を備え、前記下位方法を実行するステップは、
    前記処理ユニットが、プレーンテキストのトレーサ値を前記キー/値対の値として挿入して、通信接続が、前記トレーサ値を前記キー/値対の値として挿入されたキー/値対を前記Webサイトに送信するステップと、
    前記通信接続が、前記送信されたキー/値対に対して応答されたWebページを受信するステップと、
    前記トレーサ値が前記受信されたWebページに存在する場合、前記処理ユニットが、前記トレーサ値の位置を判定し、前記トレーサ値が前記受信されたWebページに存在しない場合、前記処理ユニットが前記パースされたキー/値対から前記Webサイトに対応する次のキー/値対を選択するステップと、
    前記トレーサ値が前記受信されたWebページに存在する場合、前記処理ユニットが、前記判定されたトレーサ値の位置に基づいて、スクリプトを含む値を前記キー/値対の次の値として挿入して、前記通信接続が、前記スクリプトを含む値を前記キー/値対の次の値として挿入されたキー/値対を前記Webサイトに送信するステップと、
    前記トレーサ値が前記受信されたWebページに存在する場合、前記処理ユニットが、前記スクリプトが実行されるかどうかに基づいて前記Webページに対応する脆弱性データをログファイルに書き込むステップ
    を含むことを特徴とする方法。
  2. 前記処理ユニットが、前記トレーサ値の位置を前記Webページの文書オブジェクトモデルに基づいて判定することを特徴とする請求項1に記載の方法。
  3. 前記トレーサ値の位置が前記Webページの本文の表示テキスト内である場合、前記スクリプトを含む値の形式がスクリプトタグで始まることを特徴とする請求項に記載の方法。
  4. 前記トレーサ値の位置がHTMLタグ内である場合、前記スクリプトを含む値の形式が前記HTMLタグを閉じる記号で始まることを特徴とする請求項に記載の方法。
  5. 前記トレーサ値の位置がIMGタグ内である場合、前記スクリプトを含む値の形式がグラフィックファイル拡張子で始まることを特徴とする請求項に記載の方法。
  6. 前記トレーサ値の位置がスクリプトブロック内である場合、前記スクリプトを含む値の形式が<SCRIPT>タグで始まらないことを特徴とする請求項に記載の方法。
  7. 前記トレーサ値の位置がコメントフィールド内である場合、前記スクリプトを含む値の形式が「-->」で始まることを特徴とする請求項に記載の方法。
  8. 前記処理ユニットが下位方法を実行するステップに先立って、前記処理ユニットが、前記Webサイトが許容されるWebサイトの範囲内にあるかどうか判定するステップと、
    前記Webサイトが前記許容されるWebサイトの範囲内にない場合、前記処理ユニットが、実行を停止するステップと
    をさらに備えたことを特徴とする請求項1に記載の方法。
  9. 前記処理ユニットが下位方法を実行するステップに先立って、前記処理ユニットが、前記方法を実行する前記コンピュータがホームネットワーク上に位置するかどうか判定するステップと、
    前記方法を実行する前記コンピュータがホームネットワーク上に位置しない場合、前記処理ユニットが、実行を停止するステップと
    をさらに備えたことを特徴とする請求項1に記載の方法。
  10. 前記通信接続が、前記キー/値対を決定する元になるWebサイト情報を前記コンピュータのオペレーティングシステムのクリップボードを介して受信することを特徴とする請求項1に記載の方法。
  11. 前記通信接続が、前記キー/値対を決定する元になるWebサイト情報を複数の試験対象Webサイトのリストを含む入力ファイルを介して受信することを特徴とする請求項1に記載の方法。
  12. 前記Webサイトが対応するキー/値対を含まない場合、前記通信接続が、さらに次のキー/値対を前記Webサイトに送信するステップをさらに備え、前記さらに次のキー/値対の値は、スクリプトを含み、前記スクリプトは、実行されると前記Webサイトがクロスサイトスクリプティング攻撃に対して脆弱であることを示すことを特徴とする請求項1に記載の方法。
  13. 前記通信接続が、前記キー/値対をフォームにより送信することを特徴とする請求項1に記載の方法。
  14. 前記通信接続が、前記キー/値対をPOSTコマンドにより送信することを特徴とする請求項13に記載の方法。
  15. 前記通信接続が、前記キー/値対をURLにより送信することを特徴とする請求項1に記載の方法。
  16. 前記通信接続が、前記キー/値対をGETメソッドにより送信することを特徴とする請求項15に記載の方法。
  17. コンピュータに、Webサイトのクロスサイトスクリプティング脆弱性の自動検出を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    新規のブラウザウィンドウを開く手順と、
    前記開かれたブラウザウィンドウのフォームデータをキー/値対にパースする手順と、
    前記パースされたキー/値対から前記Webサイトに対応するキー/値対を決定する手順と、
    前記決定されたキー/値対の各々に対して、少なくとも最初の脆弱性が検出されるまで下位方法を実行する手順と
    を実行させるためのプログラムを記録し、前記下位方法を実行する手順は、
    プレーンテキストのトレーサ値を前記キー/値対の値として挿入して、前記トレーサ値を前記キー/値対の値として挿入されたキー/値対を前記Webサイトに送信する手順と、
    前記送信されたキー/値対に対して応答されたWebページを受信する手順と、
    前記トレーサ値が前記受信されたWebページに存在する場合、前記トレーサ値の位置を判定し、前記トレーサ値が前記受信されたWebページに存在しない場合、前記パースされたキー/値対から前記Webサイトに対応する次のキー/値対を選択する手順と、
    前記トレーサ値が前記受信されたWebページに存在する場合、前記判定されたトレーサ値の位置に基づいて、スクリプトを含む値を前記キー/値対の次の値として挿入して、前記スクリプトを含む値を前記キー/値対の次の値として挿入されたキー/値対を前記Webサイトに送信する手順と、
    前記トレーサ値が前記受信されたWebページに存在する場合、前記スクリプトが実行されるかどうかに基づいて前記Webページに対応する脆弱性データをログファイルに書き込む手順
    を含むことを特徴とするコンピュータ読み取り可能な記録媒体。
  18. 前記トレーサ値の位置を前記Webページの文書オブジェクトモデルに基づいて判定することを特徴とする請求項17に記載のコンピュータ読み取り可能な記録媒体。
  19. 前記トレーサ値の位置が前記Webページの本文の表示テキスト内である場合、前記スクリプトを含む値の形式がスクリプトタグで始まることを特徴とする請求項18に記載のコンピュータ読み取り可能な記録媒体。
  20. 前記トレーサ値の位置がHTMLタグ内である場合、前記スクリプトを含む値の形式が前記HTMLタグを閉じる記号で始まることを特徴とする請求項18に記載のコンピュータ読み取り可能な記録媒体。
  21. 前記トレーサ値の位置がIMGタグ内である場合、前記スクリプトを含む値の形式がグラフィックファイル拡張子で始まることを特徴とする請求項20に記載のコンピュータ読み取り可能な記録媒体。
  22. 前記トレーサ値の位置がスクリプトブロック内である場合、前記スクリプトを含む値の形式が<SCRIPT>タグで始まらないことを特徴とする請求項18に記載のコンピュータ読み取り可能な記録媒体。
  23. 前記トレーサ値の位置がコメントフィールド内である場合、前記スクリプトを含む値の形式が「-->」で始まることを特徴とする請求項20に記載のコンピュータ読み取り可能な記録媒体。
  24. 前記下位方法を実行する手順に先立って、前記Webサイトが許容されるWebサイトの範囲内にあるかどうか判定する手順と、
    前記Webサイトが前記許容されるWebサイトの範囲内にない場合、実行を停止する手順と
    を実行させるためのプログラムをさらに記録したことを特徴とする請求項17に記載のコンピュータ読み取り可能な記録媒体。
  25. 前記下位方法を実行する手順に先立って、前記方法を実行する前記コンピュータがホームネットワーク上に位置するかどうか判定する手順と、
    前記方法を実行する前記コンピュータがホームネットワーク上に位置しない場合、実行を停止する手順と
    を実行させるためのプログラムをさらに記録したことを特徴とする請求項17に記載のコンピュータ読み取り可能な記録媒体。
  26. 前記キー/値対を決定する元になるWebサイト情報を前記コンピュータのオペレーティングシステムのクリップボードを介して受信することを特徴とする請求項17に記載のコンピュータ読み取り可能な記録媒体。
  27. 前記キー/値対を決定する元になるWebサイト情報を複数の試験対象Webサイトのリストを含む入力ファイルを介して受信することを特徴とする請求項17に記載のコンピュータ読み取り可能な記録媒体。
  28. 前記Webサイトが対応するキー/値対を含まない場合、さらに次のキー/値対を前記Webサイトに送信する手順を実行するためのプログラムをさらに記録し、前記さらに次のキー/値対の値は、スクリプトを含み、前記スクリプトは、実行されると前記Webサイトがクロスサイトスクリプティング攻撃に対して脆弱であることを示すことを特徴とする請求項17に記載のコンピュータ読み取り可能な記録媒体。
  29. 前記キー/値対をフォームにより送信することを特徴とする請求項17に記載のコンピュータ読み取り可能な記録媒体。
  30. 前記キー/値対をPOSTコマンドにより送信することを特徴とする請求項29に記載のコンピュータ読み取り可能な記録媒体。
  31. 前記キー/値対をURLにより送信することを特徴とする請求項17に記載のコンピュータ読み取り可能な記録媒体。
  32. 前記キー/値対をGETメソッドにより送信することを特徴とする請求項31に記載のコンピュータ読み取り可能な記録媒体。
  33. プロセッサと、
    コンピュータシステムに、前記プロセッサによって実行されると、Webサイトのクロスサイトスクリプティング脆弱性の自動検出を実行させるためのプログラムを格納するメモリと
    を備え、前記プログラムであって、
    新規のブラウザウィンドウを開く手順と、
    前記開かれたブラウザウィンドウのフォームデータをキー/値対にパースする手順と、
    前記パースされたキー/値対から前記Webサイトに対応するキー/値対を決定する手順と、
    前記決定されたキー/値対の各々に対して、少なくとも最初の脆弱性が検出されるまで下位方法を実行する手順と
    を実行させるためのプログラムであり、前記下位方法を実行する手順は、
    プレーンテキストのトレーサ値を前記キー/値対の値として挿入して、前記トレーサ値を前記キー/値対の値として挿入されたキー/値対を前記Webサイトに送信する手順と、
    前記送信されたキー/値対に対して応答されたWebページを受信する手順と、
    前記トレーサ値が前記受信されたWebページに存在する場合、前記トレーサ値の位置を判定し、前記トレーサ値が前記受信されたWebページに存在しない場合、前記パースされたキー/値対から前記Webサイトに対応する次のキー/値対を選択する手順と、
    前記トレーサ値が前記受信されたWebページに存在する場合、前記判定されたトレーサ値の位置に基づいて、スクリプトを含む値を前記キー/値対の次の値として挿入して、前記スクリプトを含む値を前記キー/値対の次の値として挿入されたキー/値対を前記Webサイトに送信する手順と、
    前記トレーサ値が前記受信されたWebページに存在する場合、前記スクリプトが実行されるかどうかに基づいて前記Webページに対応する脆弱性データをログファイルに書き込む手順
    を含むことを特徴とするコンピュータシステム。
  34. 前記トレーサ値の位置を前記Webページの文書オブジェクトモデルに基づいて判定することを特徴とする請求項33に記載のコンピュータシステム。
  35. 前記トレーサ値の位置が前記Webページの本文の表示テキスト内である場合、前記スクリプトを含む値の形式がスクリプトタグで始まることを特徴とする請求項34に記載のコンピュータシステム。
  36. 前記トレーサ値の位置がHTMLタグ内である場合、前記スクリプトを含む値の形式が前記HTMLタグを閉じる記号で始まることを特徴とする請求項34に記載のコンピュータシステム。
  37. 前記トレーサ値の位置がIMGタグ内である場合、前記スクリプトを含む値の形式がグラフィックファイル拡張子で始まることを特徴とする請求項36に記載のコンピュータシステム。
  38. 前記トレーサ値の位置がスクリプトブロック内である場合、前記スクリプトを含む値の形式が<SCRIPT>タグで始まらないことを特徴とする請求項34に記載のコンピュータシステム。
  39. 前記トレーサ値の位置がコメントフィールド内である場合、前記スクリプトを含む値の形式が「-->」で始まることを特徴とする請求項36に記載のコンピュータシステム。
  40. 前記プログラムは、
    前記下位方法を実行する手順に先立って、前記Webサイトが許容されるWebサイトの範囲内にあるかどうか判定する手順と、
    前記Webサイトが前記許容されるWebサイトの範囲内にない場合、実行を停止する手順と
    をさらに実行させることを特徴とする請求項33に記載のコンピュータシステム。
  41. 前記プログラムは、
    前記下位方法を実行する手順に先立って、前記方法を実行する前記コンピュータがホームネットワーク上に位置するかどうか判定する手順と、
    前記方法を実行するコンピュータが前記ホームネットワーク上に位置しない場合、前記コンピュータによる方法の実行を停止する手順と
    をさらに実行させることを特徴とする請求項33に記載のコンピュータシステム。
  42. 前記キー/値対を決定する元になるWebサイト情報を前記コンピュータのオペレーティングシステムのクリップボードを介して受信することを特徴とする請求項33に記載のコンピュータシステム。
  43. 前記キー/値対を決定する元になるWebサイト情報を複数の試験対象Webサイトのリストを含む入力ファイルを介して受信することを特徴とする請求項33に記載のコンピュータシステム。
  44. 前記Webサイトが対応するキー/値対を含まない場合、前記プログラムは、さらに次のキー/値対を前記Webサイトに送信する手順をさらに実行させ、前記さらに次のキー/値対の値は、スクリプトを含み、前記スクリプトは、実行されると前記Webサイトがクロスサイトスクリプティング攻撃に対して脆弱であることを示すことを特徴とする請求項33に記載のコンピュータシステム。
  45. 前記キー/値対をフォームにより送信することを特徴とする請求項33に記載のコンピュータシステム。
  46. 前記キー/値対をPOSTコマンドにより送信することを特徴とする請求項45に記載のコンピュータシステム。
  47. 前記キー/値対をURLにより送信することを特徴とする請求項33に記載のコンピュータシステム。
  48. 前記キー/値対をGETメソッドにより送信することを特徴とする請求項47に記載のコンピュータシステム。
JP2003350055A 2002-11-12 2003-10-08 クロスサイトスクリプティング脆弱性の自動検出 Expired - Fee Related JP4625246B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/291,369 US7343626B1 (en) 2002-11-12 2002-11-12 Automated detection of cross site scripting vulnerabilities

Publications (2)

Publication Number Publication Date
JP2004164617A JP2004164617A (ja) 2004-06-10
JP4625246B2 true JP4625246B2 (ja) 2011-02-02

Family

ID=32176142

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003350055A Expired - Fee Related JP4625246B2 (ja) 2002-11-12 2003-10-08 クロスサイトスクリプティング脆弱性の自動検出

Country Status (3)

Country Link
US (1) US7343626B1 (ja)
EP (1) EP1420562A3 (ja)
JP (1) JP4625246B2 (ja)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040260754A1 (en) * 2003-06-20 2004-12-23 Erik Olson Systems and methods for mitigating cross-site scripting
US20040268139A1 (en) * 2003-06-25 2004-12-30 Microsoft Corporation Systems and methods for declarative client input security screening
US9100431B2 (en) 2003-07-01 2015-08-04 Securityprofiling, Llc Computer program product and apparatus for multi-path remediation
US9118709B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9350752B2 (en) 2003-07-01 2016-05-24 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9118708B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Multi-path remediation
US8984644B2 (en) 2003-07-01 2015-03-17 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9118711B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9118710B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc System, method, and computer program product for reporting an occurrence in different manners
US20070113272A2 (en) 2003-07-01 2007-05-17 Securityprofiling, Inc. Real-time vulnerability monitoring
US9203648B2 (en) 2004-05-02 2015-12-01 Thomson Reuters Global Resources Online fraud solution
US20070107053A1 (en) * 2004-05-02 2007-05-10 Markmonitor, Inc. Enhanced responses to online fraud
US8041769B2 (en) * 2004-05-02 2011-10-18 Markmonitor Inc. Generating phish messages
US7913302B2 (en) * 2004-05-02 2011-03-22 Markmonitor, Inc. Advanced responses to online fraud
US7457823B2 (en) 2004-05-02 2008-11-25 Markmonitor Inc. Methods and systems for analyzing data related to possible online fraud
US8769671B2 (en) 2004-05-02 2014-07-01 Markmonitor Inc. Online fraud solution
US20060036459A1 (en) * 2004-08-11 2006-02-16 Oracle International Corporation User configurable one click punchout tracking
US8191078B1 (en) 2005-03-22 2012-05-29 Progress Software Corporation Fault-tolerant messaging system and methods
KR100622129B1 (ko) 2005-04-14 2006-09-19 한국전자통신연구원 동적으로 변화하는 웹 페이지의 변조 점검 시스템 및 방법
US8266700B2 (en) * 2005-05-16 2012-09-11 Hewlett-Packard Development Company, L. P. Secure web application development environment
US8078740B2 (en) * 2005-06-03 2011-12-13 Microsoft Corporation Running internet applications with low rights
JP2007004685A (ja) * 2005-06-27 2007-01-11 Hitachi Ltd 通信情報監視装置
GB0513375D0 (en) 2005-06-30 2005-08-03 Retento Ltd Computer security
US20070016960A1 (en) * 2005-07-18 2007-01-18 Nt Objectives, Inc. NTO input validation technique
US8301720B1 (en) 2005-07-18 2012-10-30 Progress Software Corporation Method and system to collect and communicate problem context in XML-based distributed applications
US8239820B1 (en) 2005-07-18 2012-08-07 Progress Software Corporation Compliance method and system for XML-based applications
US8112799B1 (en) * 2005-08-24 2012-02-07 Symantec Corporation Method, system, and computer program product for avoiding cross-site scripting attacks
JP4745819B2 (ja) * 2005-12-26 2011-08-10 三菱電機株式会社 脆弱性判定システム及び検査装置
JP2007183838A (ja) * 2006-01-06 2007-07-19 Fujitsu Ltd クエリーパラメーター出力ページ発見プログラム、クエリーパラメーター出力ページ発見方法およびクエリーパラメーター出力ページ発見装置
US7818788B2 (en) * 2006-02-14 2010-10-19 Microsoft Corporation Web application security frame
US8448241B1 (en) * 2006-02-16 2013-05-21 Oracle America, Inc. Browser extension for checking website susceptibility to cross site scripting
US8185737B2 (en) 2006-06-23 2012-05-22 Microsoft Corporation Communication across domains
US8250082B2 (en) 2006-06-23 2012-08-21 Microsoft Corporation Cross domain communication
US7832004B2 (en) 2006-08-10 2010-11-09 Microsoft Corporation Secure privilege elevation by way of secure desktop on computing device
JP4908131B2 (ja) * 2006-09-28 2012-04-04 富士通株式会社 非即時処理存在可能性の表示処理プログラム,装置,および方法
US7644315B2 (en) * 2006-10-30 2010-01-05 Google Inc. Diagnostics and error reporting for common tagging issues
US20080120420A1 (en) * 2006-11-17 2008-05-22 Caleb Sima Characterization of web application inputs
CN101231682B (zh) * 2007-01-26 2011-01-26 李贵林 计算机信息安全的方法
US8631497B1 (en) 2007-02-01 2014-01-14 Mcafee, Inc. Systems and methods for automating blind detection of computational vulnerabilities
US8959647B2 (en) 2007-02-27 2015-02-17 Microsoft Corporation Runtime security and exception handler protection
US10019570B2 (en) 2007-06-14 2018-07-10 Microsoft Technology Licensing, Llc Protection and communication abstractions for web browsers
US9906549B2 (en) 2007-09-06 2018-02-27 Microsoft Technology Licensing, Llc Proxy engine for custom handling of web content
EP2191342B1 (en) * 2007-09-13 2018-11-14 Avago Technologies General IP (Singapore) Pte. Ltd. Mesh grid protection
US20090119769A1 (en) * 2007-11-05 2009-05-07 Microsoft Corporation Cross-site scripting filter
CN101889344B (zh) 2007-12-06 2013-04-24 美国博通公司 嵌入式封装防篡改网栅
US8010522B2 (en) * 2007-12-07 2011-08-30 International Business Machines Corporation System, method and program product for detecting SQL queries injected into data fields of requests made to applications
US8949990B1 (en) * 2007-12-21 2015-02-03 Trend Micro Inc. Script-based XSS vulnerability detection
JP4763020B2 (ja) * 2007-12-27 2011-08-31 シャープ株式会社 情報提供装置、情報表示装置、情報提供システム、情報提供方法、プログラム、およびプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4704452B2 (ja) * 2007-12-27 2011-06-15 シャープ株式会社 情報提供装置、情報表示装置、情報提供システム、制御方法、制御プログラム、および、記録媒体
US8578482B1 (en) 2008-01-11 2013-11-05 Trend Micro Inc. Cross-site script detection and prevention
US8850567B1 (en) 2008-02-04 2014-09-30 Trend Micro, Inc. Unauthorized URL requests detection
KR101001132B1 (ko) * 2008-02-22 2010-12-15 엔에이치엔비즈니스플랫폼 주식회사 웹 어플리케이션의 취약성 판단 방법 및 시스템
US8806618B2 (en) 2008-03-31 2014-08-12 Microsoft Corporation Security by construction for distributed applications
CN101594343B (zh) 2008-05-29 2013-01-23 国际商业机器公司 安全提交请求的装置和方法、安全处理请求的装置和方法
US8763120B1 (en) * 2008-07-15 2014-06-24 Zscaler, Inc. Exploitation detection
US20100031365A1 (en) * 2008-07-31 2010-02-04 Balachander Krishnamurthy Method and apparatus for providing network access privacy
JP5274227B2 (ja) * 2008-12-10 2013-08-28 株式会社ラック ウェブページ検査装置、コンピュータシステム、ウェブページ検査方法、及びプログラム
US8275984B2 (en) * 2008-12-15 2012-09-25 Microsoft Corporation TLS key and CGI session ID pairing
CN102282565B (zh) * 2009-01-19 2016-08-03 皇家飞利浦电子股份有限公司 用于隐私保护的具有双脚本引擎的浏览器
US8370945B2 (en) * 2009-05-20 2013-02-05 International Business Machines Corporation Identifying security breaches caused by web-enabled software applications
US9398032B1 (en) 2009-07-09 2016-07-19 Trend Micro Incorporated Apparatus and methods for detecting malicious scripts in web pages
CN101964025B (zh) * 2009-07-23 2016-02-03 北京神州绿盟信息安全科技股份有限公司 Xss检测方法和设备
WO2011067769A1 (en) * 2009-12-03 2011-06-09 Infogin Ltd. Shared dictionary compression over http proxy
US8640216B2 (en) * 2009-12-23 2014-01-28 Citrix Systems, Inc. Systems and methods for cross site forgery protection
US9210184B2 (en) * 2009-12-29 2015-12-08 International Business Machines Corporation Determining the vulnerability of computer software applications to attacks
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
US8499283B2 (en) * 2010-02-09 2013-07-30 Webroot Inc. Detection of scripting-language-based exploits using parse tree transformation
KR101092024B1 (ko) * 2010-02-19 2011-12-12 박희정 웹 서비스의 실시간 취약성 진단 및 결과정보 제공 서비스 시스템
US8458798B2 (en) * 2010-03-19 2013-06-04 Aspect Security Inc. Detection of vulnerabilities in computer systems
US9268945B2 (en) 2010-03-19 2016-02-23 Contrast Security, Llc Detection of vulnerabilities in computer systems
CA2704863A1 (en) * 2010-06-10 2010-08-16 Ibm Canada Limited - Ibm Canada Limitee Injection attack mitigation using context sensitive encoding of injected input
US8902219B1 (en) 2010-09-22 2014-12-02 Trimble Navigation Limited Maintaining connection to embedded content using graphical elements
US8910247B2 (en) 2010-10-06 2014-12-09 Microsoft Corporation Cross-site scripting prevention in dynamic content
US8966595B1 (en) * 2010-12-15 2015-02-24 A9.Com, Inc. Techniques for peer-to-peer communication using a “shared secret”
JP5640752B2 (ja) * 2011-01-11 2014-12-17 富士通株式会社 攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラム
US9413721B2 (en) 2011-02-15 2016-08-09 Webroot Inc. Methods and apparatus for dealing with malware
US8789177B1 (en) 2011-04-11 2014-07-22 Symantec Corporation Method and system for automatically obtaining web page content in the presence of redirects
US8819819B1 (en) * 2011-04-11 2014-08-26 Symantec Corporation Method and system for automatically obtaining webpage content in the presence of javascript
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
US8949992B2 (en) * 2011-05-31 2015-02-03 International Business Machines Corporation Detecting persistent vulnerabilities in web applications
US9411901B2 (en) 2011-06-29 2016-08-09 Trimble Navigation Limited Managing satellite and aerial image data in a composite document
US9076244B2 (en) * 2011-06-29 2015-07-07 Trimble Navigation Limited Managing web page data in a composite document
US9471787B2 (en) * 2011-08-25 2016-10-18 International Business Machines Corporation Detecting stored cross-site scripting vulnerabilities in web applications
US8683596B2 (en) * 2011-10-28 2014-03-25 International Business Machines Corporation Detection of DOM-based cross-site scripting vulnerabilities
WO2014018029A1 (en) * 2012-07-25 2014-01-30 Hewlett-Packard Development Company, L.P. Determining application vulnerabilities
WO2014025334A1 (en) * 2012-08-06 2014-02-13 Empire Technology Development Llc Defending against browser attacks
US8719934B2 (en) * 2012-09-06 2014-05-06 Dstillery, Inc. Methods, systems and media for detecting non-intended traffic using co-visitation information
US8776260B2 (en) 2012-09-25 2014-07-08 Broadcom Corporation Mesh grid protection system
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 跨網站攻擊防禦系統及方法
CN104009964B (zh) * 2013-02-26 2019-03-26 腾讯科技(深圳)有限公司 网络链接检测方法和系统
US8887291B1 (en) * 2013-03-01 2014-11-11 Symantec Corporation Systems and methods for data loss prevention for text fields
US9430452B2 (en) 2013-06-06 2016-08-30 Microsoft Technology Licensing, Llc Memory model for a layout engine and scripting engine
CN104348803B (zh) * 2013-07-31 2018-12-11 深圳市腾讯计算机系统有限公司 链路劫持检测方法、装置、用户设备、分析服务器及系统
US10171483B1 (en) 2013-08-23 2019-01-01 Symantec Corporation Utilizing endpoint asset awareness for network intrusion detection
CN104657659B (zh) * 2013-11-20 2019-02-05 腾讯科技(深圳)有限公司 一种存储跨站攻击脚本漏洞检测方法、装置及系统
US9866582B2 (en) 2014-06-30 2018-01-09 Paypal, Inc. Detection of scripted activity
US9490987B2 (en) 2014-06-30 2016-11-08 Paypal, Inc. Accurately classifying a computer program interacting with a computer system using questioning and fingerprinting
US10318732B2 (en) 2014-09-18 2019-06-11 Trend Micro Incorporated Prevention of cross site scripting attacks using automatic generation of content security policy headers and splitting of content to enable content security policy
CN105512559B (zh) * 2014-10-17 2019-09-17 阿里巴巴集团控股有限公司 一种用于提供访问页面的方法与设备
US9479525B2 (en) * 2014-10-23 2016-10-25 International Business Machines Corporation Interacting with a remote server over a network to determine whether to allow data exchange with a resource at the remote server
CN105991554B (zh) * 2015-02-04 2019-06-11 阿里巴巴集团控股有限公司 漏洞检测方法和设备
US10534512B2 (en) * 2015-03-04 2020-01-14 Tata Consultancy Services Limited System and method for identifying web elements present on a web-page
WO2016168428A1 (en) * 2015-04-15 2016-10-20 Qatar Foundation For Education, Science And Community Development Cross-site scripting detection method
CN104881607B (zh) * 2015-05-21 2017-12-29 北京工业大学 一种基于模拟浏览器行为的xss漏洞检测系统
JP2017004236A (ja) * 2015-06-10 2017-01-05 富士ゼロックス株式会社 情報処理装置、ネットワークシステム及びプログラム
US9923916B1 (en) * 2015-06-17 2018-03-20 Amazon Technologies, Inc. Adaptive web application vulnerability scanner
US11165820B2 (en) * 2015-10-13 2021-11-02 Check Point Software Technologies Ltd. Web injection protection method and system
US10275596B1 (en) * 2016-12-15 2019-04-30 Symantec Corporation Activating malicious actions within electronic documents
JP6949323B2 (ja) * 2017-07-13 2021-10-13 株式会社サテライトオフィス ブラウザアプリケーションソフトウェア、ブラウザアプリケーションソフトウェア追加用アドオンプログラム
TWI666567B (zh) * 2017-08-07 2019-07-21 中華電信股份有限公司 伺服器及其防火牆規則管理方法
US10826935B2 (en) * 2018-04-24 2020-11-03 International Business Machines Corporation Phishing detection through secure testing implementation
CN108959572A (zh) * 2018-07-04 2018-12-07 北京知道创宇信息技术有限公司 一种网络溯源方法、装置、电子设备及存储介质
US10521583B1 (en) * 2018-10-25 2019-12-31 BitSight Technologies, Inc. Systems and methods for remote detection of software through browser webinjects
GB2598412A (en) * 2020-08-18 2022-03-02 Clario Tech Ltd A method for detecting a web skimmer on a "payment page"
CN112134761B (zh) * 2020-09-23 2022-05-06 国网四川省电力公司电力科学研究院 基于固件分析的电力物联网终端脆弱性检测方法及系统
JP7460582B2 (ja) 2021-08-17 2024-04-02 Kddi株式会社 学習装置、学習方法、学習プログラム、及び脆弱性テスト装置
CN116962049B (zh) * 2023-07-25 2024-03-12 三峡高科信息技术有限责任公司 一种综合监测和主动防御的零日漏洞攻击防控方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020010855A1 (en) * 2000-03-03 2002-01-24 Eran Reshef System for determining web application vulnerabilities

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058482A (en) * 1998-05-22 2000-05-02 Sun Microsystems, Inc. Apparatus, method and system for providing network security for executable code in computer and communications networks
US6311278B1 (en) * 1998-09-09 2001-10-30 Sanctum Ltd. Method and system for extracting application protocol characteristics
GB2357939B (en) * 2000-07-05 2002-05-15 Gfi Fax & Voice Ltd Electronic mail message anti-virus system and method
US6996845B1 (en) * 2000-11-28 2006-02-07 S.P.I. Dynamics Incorporated Internet security analysis system and process
US7200599B2 (en) * 2001-06-21 2007-04-03 Microsoft Corporation Automated generator of input-validation filters
US7114185B2 (en) * 2001-12-26 2006-09-26 Mcafee, Inc. Identifying malware containing computer files using embedded text
WO2003067405A2 (en) * 2002-02-07 2003-08-14 Empirix Inc. Automated security threat testing of web pages

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020010855A1 (en) * 2000-03-03 2002-01-24 Eran Reshef System for determining web application vulnerabilities

Also Published As

Publication number Publication date
JP2004164617A (ja) 2004-06-10
US7343626B1 (en) 2008-03-11
EP1420562A2 (en) 2004-05-19
EP1420562A3 (en) 2006-06-07

Similar Documents

Publication Publication Date Title
JP4625246B2 (ja) クロスサイトスクリプティング脆弱性の自動検出
US10243679B2 (en) Vulnerability detection
US8800042B2 (en) Secure web application development and execution environment
US8266700B2 (en) Secure web application development environment
Kirda et al. Noxes: a client-side solution for mitigating cross-site scripting attacks
US10505966B2 (en) Cross-site request forgery (CSRF) vulnerability detection
KR101001132B1 (ko) 웹 어플리케이션의 취약성 판단 방법 및 시스템
Doupé et al. Enemy of the state: A {state-aware}{black-box} web vulnerability scanner
JP4912400B2 (ja) Htmlブラウザおよび拡張機能の既知の脆弱性からの免疫付与
US8112799B1 (en) Method, system, and computer program product for avoiding cross-site scripting attacks
Hope et al. Web security testing cookbook: systematic techniques to find problems fast
KR101672791B1 (ko) 모바일 웹 애플리케이션 환경에서의 취약점 탐지 방법 및 시스템
JP2008283686A (ja) ドライブバイ・ファーミングに対するリファラーチェックを介したクライアント側の保護
JP2008135029A (ja) 攻撃文字列(attackstrings)の知的生成に基づくウェブアプリケーション評価
WO2009061588A1 (en) Cross-site scripting filter
US9124624B2 (en) Detecting vulnerabilities in web applications
JP2008171397A (ja) ウェブアプリケーション入力の特徴付けの方法
CN112287349A (zh) 安全漏洞检测方法及服务端
Yin et al. Scanner++: Enhanced Vulnerability Detection of Web Applications with Attack Intent Synchronization
US7650392B1 (en) Dynamic content processing in a reverse proxy service
CN118202350A (zh) 检测并防止跨站点请求伪造缓解特征的不一致使用
JP4629291B2 (ja) クライアントの要求を確認する方法およびシステム
Sundareswaran et al. Image repurposing for gifar-based attacks
Nu1L Team Advanced Web
Org et al. D3. 1-CYBER RISK PATTERNS

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101013

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: 20101029

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101105

R150 Certificate of patent or registration of utility model

Ref document number: 4625246

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131112

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees