Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

JP2017004236A - 情報処理装置、ネットワークシステム及びプログラム - Google Patents

情報処理装置、ネットワークシステム及びプログラム Download PDF

Info

Publication number
JP2017004236A
JP2017004236A JP2015117141A JP2015117141A JP2017004236A JP 2017004236 A JP2017004236 A JP 2017004236A JP 2015117141 A JP2015117141 A JP 2015117141A JP 2015117141 A JP2015117141 A JP 2015117141A JP 2017004236 A JP2017004236 A JP 2017004236A
Authority
JP
Japan
Prior art keywords
response
created
assumed
digest
client
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.)
Pending
Application number
JP2015117141A
Other languages
English (en)
Inventor
元気 長田
Genki Osada
元気 長田
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2015117141A priority Critical patent/JP2017004236A/ja
Priority to US14/957,205 priority patent/US20160364376A1/en
Publication of JP2017004236A publication Critical patent/JP2017004236A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】既知でないクロスサイトスクリプティング攻撃をも防御する。【解決手段】検査装置10は、リクエストに応じて想定されるレスポンス(想定レスポンス)からタブの並びを抽出した想定ダイジェストを予め作成してエントリポイントに対応付けして記憶するエントリポイントマップ記憶部17と、クライアント30からの実際のリクエスト及び当該リクエストに応じてWebサーバ20が作成した実レスポンスの組を受け付ける依頼受付部12と、実レスポンスからタグの並びを抽出して実ダイジェストを作成するダイジェスト作成部13と、実ダイジェストの記述内容が、対応する想定ダイジェストの様式に合致することで実レスポンスが正常と判断する検査部14と、実レスポンスが正常の場合にはWebサーバ20はXSS攻撃の被害を受けていないとして、送信部16に実レスポンスをクライアント30へ送信させる送信制御部15と、を有する。【選択図】図1

Description

本発明は、情報処理装置、ネットワークシステム及びプログラムに関する。
インターネットを通じた攻撃手法の一つとして、クロスサイトスクリプティング攻撃(以下、「XSS攻撃」と称する)がある。XSS攻撃は、悪意のある第三者が保安上の弱点(脆弱性)のあるWebサイトを踏み台に、悪意のあるプログラムをそのWebサイトの訪問者(クライアント端末)に送り込むことで、情報の漏洩やクライアント端末の誤動作を生じさせる攻撃である。
XSS攻撃からWebサイトを守る手法として、従来では、XSS攻撃の実績(疑わしい文字列)をパターン化し、そのパターンを参照し攻撃の可能性のある外部アクセスを無効にする技術が提案されている(例えば、特許文献1,2)。
特開2006−099460号公報 特開2013−242924号公報
本発明は、既知でないクロスサイトスクリプティング攻撃をも防御することを目的とする。
本発明に係る情報処理装置は、ウェブページ毎に、当該ウェブページの閲覧要求に応じてウェブサーバにより作成される応答であってマークアップ言語により記述される応答の想定される記述内容を解析することによって作成された当該応答の文書構造を示す想定応答パターンを記憶する記憶手段と、クライアントから送られてきたウェブページの閲覧要求に応じて前記ウェブサーバにより作成された応答であってマークアップ言語により記述された応答の記述内容を解析することによって当該応答の文書構造を示す応答パターンを作成する作成手段と、前記作成手段により作成された応答パターンが、前記クライアントにより閲覧要求されたウェブページに対応して前記記憶手段に記憶された想定応答パターンの様式に合致する場合、前記クライアントから送られてきたウェブページの閲覧要求に応じて前記ウェブサーバにより作成された応答を前記クライアントへ送信させるよう制御する送信制御手段と、を有することを特徴とする。
また、前記想定応答パターンには、前記ウェブサーバにより作成される応答に繰り返し含まれる可能性のある要素が所定の記述規則に従い記号化され記述されていることを特徴とする。
また、前記作成手段は、前記ウェブサーバにより作成される応答に記述内容が固定された記述部分が所定の記述規則に従い暗号化されて前記想定応答パターンに記述される場合において、前記クライアントからの閲覧要求に応じて前記ウェブサーバにより作成された応答に記述内容が固定された記述部分が含まれている場合、当該固定された記述部分を前記記述規則に従い暗号化して前記応答パターンを作成することを特徴とする。
また、前記送信制御手段は、前記作成手段により作成された応答パターンが、前記クライアントにより閲覧要求されたウェブページに対応する想定応答パターンの様式に該当しない場合、前記ウェブサーバにより作成された応答に代えて、前記ウェブサーバが攻撃された可能性がある旨を示す通知情報を前記クライアントへ送信させるよう制御することを特徴とする。
本発明に係るネットワークシステムは、ウェブページの閲覧要求を送信するクライアントと、前記クライアントから送られてきたウェブページの閲覧要求に応じてマークアップ言語により記述された応答を作成するウェブサーバと、情報処理装置と、ウェブページ毎に、当該ウェブページの閲覧要求に応じて前記ウェブサーバにより作成される応答であってマークアップ言語により記述される応答の想定される記述内容を解析することによって作成された当該応答の文書構造を示す想定応答パターンを記憶する記憶手段と、を有し、前記ウェブサーバは、前記クライアントから送られてきたウェブページの閲覧要求及び当該閲覧要求に応じて作成した応答を前記情報処理装置へ送信することで、前記ウェブサーバの検査を依頼する検査依頼手段を有し、前記情報処理装置は、前記ウェブサーバからの検査の依頼時に送信された閲覧要求及び応答を受け付ける依頼受付手段と、前記依頼受付手段により受け付けられた応答の記述内容を解析することによって当該応答の文書構造を示す応答パターンを作成する作成手段と、前記作成手段により作成された応答パターンが、前記クライアントにより閲覧要求されたウェブページに対応して前記記憶手段に記憶された想定応答パターンの様式に合致する場合、前記クライアントから送られてきたウェブページの閲覧要求に応じて前記ウェブサーバにより作成された応答を前記クライアントへ送信させるよう制御する送信制御手段と、を有することを特徴とする。
本発明に係るプログラムは、ウェブページ毎に、当該ウェブページの閲覧要求に応じてウェブサーバにより作成される応答であってマークアップ言語により記述される応答の想定される記述内容を解析することによって作成された当該応答の文書構造を示す想定応答パターンを記憶する記憶手段をアクセス可能なコンピュータを、クライアントから送られてきたウェブページの閲覧要求に応じて前記ウェブサーバにより作成された応答であってマークアップ言語により記述された応答の記述内容を解析することによって当該応答の文書構造を示す応答パターンを作成する作成手段、前記作成手段により作成された応答パターンが、前記クライアントにより閲覧要求されたウェブページに対応して前記記憶手段に記憶された想定応答パターンの様式に合致する場合、前記クライアントから送られてきたウェブページの閲覧要求に応じて前記ウェブサーバにより作成された応答を前記クライアントへ送信させるよう制御する送信制御手段、として機能させる。
請求項1に記載の発明によれば、既知でないクロスサイトスクリプティング攻撃をも防御することができる。
請求項2に記載の発明によれば、応答パターンに要素が繰り返し記述される場合に対応することができる。
請求項3に記載の発明によれば、応答パターンに記述内容が固定された記述部分が含まれる場合に便宜を図ることができる。
請求項4に記載の発明によれば、ウェブサーバが攻撃された可能性がある旨をクライアントに通知することができる。
請求項5に記載の発明によれば、既知でないクロスサイトスクリプティング攻撃をも防御することができる。
請求項6に記載の発明によれば、既知でないクロスサイトスクリプティング攻撃をも防御することができる。
本発明に係る情報処理装置の一実施の形態である検査装置を示したブロック構成図である。 本実施の形態における検査装置を形成するコンピュータのハードウェア構成図である。 本実施の形態におけるエントリポイントマップ記憶部に記憶されたエントリポイントマップのデータ構成の一例を示した図である。 本実施の形態におけるエントリポイントマップ作成処理を示したフローチャートである。 本実施の形態におけるダイジェストの作成処理を示したフローチャートである。 (a)は、想定レスポンスの記述内容の一例を示した図、(b)は(a)の想定レスポンスから作成される想定ダイジェストの例を示した図である。 本実施の形態におけるDOM構造パターンの作成処理を示したフローチャートである。 本実施の形態における検査装置が行う検査処理を示したフローチャートである。 (a)は、実レスポンスの記述内容の一例を示した図、(b)は(a)の実レスポンスから作成される想定ダイジェストの例を示した図である。 (a)は、繰り返しパターンを含む想定レスポンスの記述内容の一例を示した図、(b)は(a)の想定レスポンスから作成される想定ダイジェスト、(c)は(b)を記号化して表した想定ダイジェスト、(d)は(c)に含まれる繰り返し部分を圧縮して記述したときの想定ダイジェストの一例、(e)は(c)に含まれる繰り返し部分を圧縮して記述したときの想定ダイジェストの他の例、(f)は(d)を復号して得られる想定ダイジェストの一例、(g)は(e)を復号して得られる想定ダイジェストの他の例、をそれぞれ示した図である。 (a)は、繰り返しパターンを含む想定レスポンスの記述内容の他の例を示した図、(b)は(a)の想定レスポンスから作成される想定ダイジェスト、(c)は(b)を記号化して表した想定ダイジェスト、(d)は(c)を復号して得られる想定ダイジェストの例を示した図である。 (a)は、記述の固定部分と変動部分とを含む想定レスポンスの記述内容の例を示した図、(b)は(a)の想定レスポンスから作成される想定ダイジェストを示した図である。 (a)は、記述の固定部分と変動部分とを含む実レスポンスの記述内容の例を示した図、(b)は(a)の実レスポンスから作成される実ダイジェストを示した図である。
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
図1は、本発明に係る情報処理装置の一実施の形態である検査装置10を含むネットワークシステムの全体構成及びブロック構成を示した図である。図1には、検査装置10、Webサーバ20及びクライアント30をインターネット等の公衆網(以下、「ネットワーク」)1に接続した構成が示されている。なお、ネットワーク1には、複数のWebサーバ20及びクライアント30を接続してもよいが、それぞれは同じ構成でよいため、図1にはそれぞれ1台のみを図示した。Webサーバ20は、汎用的なサーバコンピュータにより実現され、1又は複数のWebアプリケーションが実行可能に搭載されている。クライアント30は、パーソナルコンピュータ(PC)等汎用的なコンピュータにより実現される端末であり、Webサーバ20のWebアプリケーションが提供するWebページを閲覧するためのブラウザが搭載されている。検査装置10は、汎用的なコンピュータにより実現される。本実施の形態におけるネットワークシステムは、従前からあるハードウェア構成により実現してよい。
図2は、本実施の形態における検査装置10を形成するコンピュータのハードウェア構成図である。本実施の形態において検査装置10を形成するコンピュータは、CPU41、ROM42、RAM43、ハードディスクドライブ(HDD)44、入力手段として設けられたマウス45とキーボード46、及び表示装置として設けられたディスプレイ47をそれぞれ接続する入出力コントローラ48、通信手段として設けられたネットワークコントローラ49を内部バス50に接続して構成される。なお、Webサーバ20及びクライアント30もコンピュータであることから、各ハードウェア構成は、図2と同様に図示できる。
図1に戻り、クライアント30は、ブラウザにより実現され、Webサーバ20が提供するWebページを閲覧する閲覧部31を有している。Webサーバ20は、クライアント30からのリクエストに応じてWebアプリケーションを実行する実行部21と、当該リクエストに応じてWebアプリケーションによりレスポンスが作成されると、そのリクエスト及びレスポンスの組を検査装置10へ送信することで、Webサーバ20がXSS攻撃を受けているかいないかの検査を依頼する検査依頼部22と、を有する。各構成要素31,21,22は、各コンピュータと当該コンピュータに搭載されたCPUで動作するプログラムとの協調動作により実現される。
本実施の形態における検査装置10は、マップ作成処理部11、依頼受付部12、ダイジェスト作成部13、検査部14、送信制御部15、送信部16及びエントリポイントマップ記憶部17を有している。なお、本実施の形態の説明に用いない構成要素については、図から省略している。Webサーバ20及びクライアント30においても同様に適宜省略している。
検査装置10は、クライアント30から送信されてきたHTTP(Hypertext Transfer Protocol)リクエスト(以下、単に「リクエスト」という)に応じてWebサーバ20が作成するHTTPレスポンス(以下、単に「レスポンス」という)の正当性を検証することでWebサーバ20がXSS攻撃により被害を受けているかいないかの検査を行う。マップ作成処理部11は、その検査に用いるエントリポイントマップを事前に作成し、エントリポイントマップ記憶部17に登録する。エントリポイントマップに関しては後述する。依頼受付部12は、Webサーバ20から送られてくるリクエスト及びレスポンスの組を検査依頼として受け付ける。ダイジェスト作成部13は、作成手段として設けられ、依頼受付部12により受け付けられたレスポンス、すなわちクライアント30から実際に送られてきたWebページの閲覧要求(リクエスト)に応じてWebサーバ20により作成されたレスポンスの記述内容を解析することによって当該レスポンスの記述内容のDOM(Document Object Model)構造パターンを作成する。本実施の形態においては、レスポンスのDOM構造パターン(レスポンスの文書構造を示す応答パターン)を「ダイジェスト」と称している。レスポンスは、HTML(Hypertext Markup Language)などのマークアップ言語により記述される。
検査部14は、依頼受付部12により受け付けられたレスポンスのダイジェストと、エントリポイントマップ記憶部17に登録されているエントリポイントマップを用いて、当該レスポンスの正当性を検証する。具体的には、検査部14は、ダイジェストが、当該エントリポイントに対応してエントリポイントマップ記憶部17に記憶された想定ダイジェストの様式に合致する場合、レスポンスが正常である、すなわちWebサーバ20は、XSS攻撃を受けていないと判断する。
ところで、Webサーバ20は、クライアント30からのリクエストに応じてWebページをクライアント30に表示させるためにレスポンスを返すが、そのレスポンスの記述内容はWebアプリケーションの記述内容から想定可能である。このWebアプリケーションの記述内容から想定して作成されるレスポンスを「想定レスポンス」と称することにする。また、想定レスポンスのDOM構造パターン(想定応答パターン)もダイジェストであるが、ダイジェスト作成部13が作成するダイジェストと区別するために、本実施の形態では、想定レスポンスのDOM構造パターンを「想定ダイジェスト」と称することにする。また、クライアント30からのリクエストに応じて実際に作成されるレスポンスを「実レスポンス」とも称することにする。そして、ダイジェスト作成部13が実レスポンスに基づき作成するダイジェストを「実ダイジェスト」とも称することにする。詳細は後述するが、エントリポイントマップには、想定ダイジェストが設定される。
送信制御部15は、送信制御手段として設けられ、検査部14によりレスポンスが正常であると判断された場合、当該レスポンスをクライアント30へ送信させるよう制御する。一方、レスポンスが正常でないと判断された場合、Webサーバ20により作成されたレスポンスに代えて、Webサーバ20がXSS攻撃された可能性がある旨を示す通知情報をクライアント30へ送信させるよう制御する。送信部16は、送信制御部15による制御に従いレスポンス又は通知情報をクライアント30へ送信する。
検査装置10における各構成要素11〜16は、検査装置10を形成するコンピュータと、コンピュータに搭載されたCPU41で動作するプログラムとの協調動作により実現される。また、エントリポイントマップ記憶部17は、検査装置10に搭載されたHDD44にて実現される。あるいは、RAM43又は外部にある記憶手段をネットワーク経由で利用してもよい。
また、本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、CD−ROMやUSBメモリ等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのCPUがプログラムを順次実行することで各種処理が実現される。
図3は、本実施の形態におけるエントリポイントマップ記憶部17に記憶されたエントリポイントマップのデータ構成の一例を示した図である。また、図4は、本実施の形態におけるマップ作成処理部11により実施されるエントリポイントマップ作成処理を示したフローチャートである。以下、図3及び図4を用いてエントリポイントマップ及びエントリポイントマップの作成処理について説明する。マップ作成処理部11は、検査装置10が検査を開始する前にエントリポイントマップを作成しておく必要がある。
エントリポイントマップには、Webアプリケーションのエントリポイントと想定ダイジェストとが組にして設定される。エントリポイントは、プログラム等の実行開始位置を示す情報であるが、本実施の形態においては、アクセス先を示すURI(Uniform Resource Identifier)、クッキー(Cookie)の有無等のアクセス時の状態を示す認証状態及び1又は複数のリクエストパラメータの組合せによってエントリポイントを表す。
マップ作成処理部11は、Webサーバ20が実行するWebアプリケーションを取得し、解析することでWebアプリケーションに含まれているエントリポイントを抽出する(ステップ110)。ところで、クライアント30からリクエストが送信されてくると、Webサーバ20の実行部21は、そのリクエストの記述からWebアプリケーションの中のエントリポイントを特定し、エントリポイント以降の記述内容に基づきレスポンスを作成することになる。従って、マップ作成処理部11は、各エントリポイントに対応するリクエストがそれぞれ送信されてくることを想定し、各エントリポイント以降の記述内容を解析することで想定されるレスポンスのDOM構造パターン、すなわち想定ダイジェストをエントリポイント毎に作成する(ステップ120)。そして、マップ作成処理部11は、エントリポイントと想定ダイジェストとを組にしてエントリポイントマップ記憶部17に登録する(ステップ130)。
続いて、ステップ120における想定ダイジェストの作成処理の詳細について図5に示したフローチャートを用いて説明する。
マップ作成処理部11は、Webアプリケーションに含まれている各エントリポイントからの記述内容を想定レスポンスとして抽出して取得する(ステップ121)。そして、マップ作成処理部11は、想定レスポンスをディスプレイ47に表示する。ここで、エントリポイントマップを設定する開発者は、表示された想定レスポンスを参照してハッシュを利用するかどうかを判断する。なお、ハッシュについては後述するとし、ここでは、開発者はハッシュを利用しないことを選択したものとして説明する。
開発者によりハッシュ利用をしないという選択を受け付けると(ステップ122でN)、マップ作成処理部11は、その想定レスポンスからDOM構造パターン、すなわち、想定ダイジェストを作成する(ステップ123)。この想定ダイジェストの作成方法について図6及び図7を用いて詳述する。
図6(a)は、あるエントリポイントにおける記述内容の一例であり、想定レスポンスに相当する。想定レスポンスは、HTMLで記述されているため、“<html>”などのタグを含んでいる。マップ作成処理部11は、想定レスポンスに含まれている全てのタグを、想定レスポンスにおける出現順に抽出する(ステップ141)。この抽出したタグをカンマで区切って表した情報を図6(b)に示すが、本実施の形態では、図6(b)に示したタグの並びをダイジェストとして作成する。なお、図6(a)に例示した想定レスポンスには繰り返しパターンが含まれていない。繰り返しパターンが含まれている場合に関しては後述する。
このようにして、マップ作成処理部11は、想定レスポンスからダイジェストを「想定ダイジェスト」として作成する。なお、ダイジェスト作成部13は、クライアント30からのリクエストに応じて作成されたレスポンスからダイジェストを作成するが、このダイジェスト作成部13におけるダイジェスト作成処理も図7に示した処理手順に従って「実ダイジェスト」を作成する。
本実施の形態では、以上のようにしてエントリポイントマップを作成する。これにより、検査装置10は、クライアント30により実際に送信されたリクエストに応じてWebサーバ20により作成されたレスポンスの正当性の検証を行えるようになる。
次に、クライアント30がリクエストをWebサーバ20へ送信してからレスポンスを取得するまでの基本的な処理の流れについて説明する。
Webサーバ20がクライアント30から送信されてきたリクエストを受け付けると、実行部21は、そのリクエストの記述形式からWebアプリケーションにおけるエントリポイントを特定する。そして、その特定されたエントリポイント以降の記述内容に従ってレスポンスを作成する。レスポンスが作成されると、検査依頼部22は、リクエスト及びレスポンスを組にして検査装置10へ送信することでレスポンスの正当性の検証、換言するとWebサーバ20がXSS攻撃の被害を受けているかいないかの検査を依頼する。
以下、本実施の形態における検査装置10が行う検査処理について図8に示したフローチャートを用いて説明する。
依頼受付部12は、Webサーバ20からリクエスト及びレスポンスの組を受信することで検査の依頼を受け付けると(ステップ151)、エントリポイントマップの中から、受け付けたリクエストに対応するエントリポイントを特定する(ステップ152)。そして、依頼受付部12は、特定したエントリポイントに対応した想定ダイジェストをエントリポイントマップから読み出し取得する(ステップ153)。
ダイジェスト作成部13は、依頼受付部12が受け付けたリクエスト、すなわちクライアント30が実際に発したリクエストに基づき作成されたレスポンスの実ダイジェストを作成する(ステップ154)。ダイジェストの作成方法については、図4〜図7を用いてすでに説明しているので説明を省略する。
ダイジェスト作成部13により実ダイジェストが作成されると、検査部14は、ステップ153により取得された想定ダイジェストと、ステップ154により作成された実ダイジェストと、を比較する。ここで、実ダイジェストが想定ダイジェストの様式に合致する場合(ステップ155でY)、検査部14は、Webサーバ20において実レスポンスが正常に作成されたと判断する(ステップ156)。この基本的な検査処理において、実ダイジェストが想定ダイジェストの様式に合致する場合というのは、実ダイジェストと想定ダイジェストの各記述内容が一致している場合のことをいう。正常と判断された場合、つまり、実レスポンスの正当性が検証されると、送信制御部15は、実レスポンスをクライアント30へ送信するよう送信部16に指示する。送信部16は、この指示に応じて、依頼受付部12により受け付けられたレスポンスを、リクエストを送信したクライアント30へ送信する。
一方、実ダイジェストが想定ダイジェストの様式に合致しない場合(ステップ155でN)、検査部14は、Webサーバ20において作成されたレスポンスは異常と判断する(ステップ157)。異常と判断された場合、送信制御部15は、Webサーバ20がXSS攻撃された可能性がある旨を示す通知情報をクライアント30へ送信するよう送信部16に指示する。送信部16は、この指示に応じてその通知情報を、リクエストを送信したクライアント30へ送信する。
クライアント30は、リスエストをWebサーバ20へ送信した後、レスポンスが検査装置10を介して返信されてくると、ブラウザがそのレスポンスの記述内容を解釈してWebページをディスプレイに表示する。一方、リスエストに応じて通知情報が返信されてくると、ブラウザは、その通知情報をディスプレイに表示することによって、Webサーバ20がXSS攻撃された可能性がある旨をユーザに知らせる。
以下、前述した検査処理について、ダイジェストの具体例を用いて詳述する。
例えば、ステップ151において受け付けたリクエストから得られる想定レスポンスが図6(a)だとする。マップ作成処理部11は、この想定レスポンスに基づき図6(b)に示した想定ダイジェストを作成する。ここで、ステップ151において受け付けた実レスポンスの記述内容が、図6(a)に示した想定ダイジェストと同一であったとする。この場合、ダイジェスト作成部13は、当該実レスポンスのダイジェストを図6(b)のように作成する。この結果、実ダイジェストの記述内容は、想定ダイジェストと一致するので(ステップ155でY)、当該実レスポンスは正常と判断される(ステップ156)。
このように、レスポンスがWebサーバ20によって正常に作成されているのであれば、当該レスポンスの記述内容は、対応する想定レスポンスと一致するはずである。これにより、実レスポンスの正当性は証明される。
ここで、クライアント30からの実際のリクエストに応じて作成されたレスポンスが図9(a)であるとする。図6(a)と図9(a)を比較すると明らかなように、作成されたレスポンスには、想定レスポンスの“hensu”に代えて<script>タグによる記述51が挿入されていることがわかる。従って、ダイジェスト作成部13は、図9(a)に示した実レスポンスから図9(b)に示した実ダイジェストを作成することになる(ステップ154)。ここで、図6(b)及び図9(b)の各ダイジェストを比較すれば明らかなように、ダイジェスト作成部13が作成した実ダイジェストには、想定ダイジェストに含まれていない“script”及び“/script”が含まれており、このため、両者は合致しない。このような場合、検査部14は、実ダイジェストが想定ダイジェストの様式に合致しないと判断して(ステップ155でN)、Webサーバ20において作成された実レスポンスは異常と判断する(ステップ157)。
本実施の形態においては、以上説明したように、各エントリポイントからの記述内容に基づきエントリポイント毎、すなわちWebページ毎に想定ダイジェストを予め用意しておき、実際に送信されたリクエストのレスポンスから作成されたダイジェストを、対応する想定ダイジェストと比較することによってWebサーバ20がXSS攻撃の被害を受けている可能性があるかどうかを判断するようにした。つまり、XSS攻撃を実際に受けたときの実績(疑わしい文字列等)を参照しなくてもXSS攻撃の有無を判定できるようにした。従って、本実施の形態においては、反射型XSSに限らず、格納型XSS及びDOMベースのXSSにも対処可能である。
ところで、上記説明においては、繰り返しのない簡単な記述内容のレスポンスを例にして本実施の形態における基本的な検査処理について説明した。以下、繰り返しのある記述内容のレスポンスに対応する場合の検査処理について説明する。具体的には、上記において説明していない図7のステップ143〜145の処理について説明する。
掲示板、検索結果あるいは表(テーブル)の表示に関するリクエストの場合、該当する各データは、通常は同じ表示形式にて繰り返し表示される。そして、リクエストを発するタイミングや検索条件によって、該当するデータ数(表示件数)は変動する。
図10(a)は、繰り返しのある想定レスポンスの一例を示した図である。この想定レスポンスから想定ダイジェストを作成するマップ作成処理部11における処理について説明する。
マップ作成処理部11は、Webアプリケーションから抽出したエントリポイントからの記述内容を解析することで想定レスポンスを取得すると(図4のステップ110,120、図5のステップ121〜123)、その想定レスポンスからタグを抽出する(ステップ141)。想定ダイジェストが図10(a)の場合、マップ作成処理部11は、図10(b)に示した想定ダイジェストが得られる。
ここで、想定レスポンスの記述52は、表において同じ形式にて表示されるデータ(レコード)の繰り返し部分であることから、この想定レスポンスから抽出したタグの並びを解析するとタグの並びが同じパターンが繰り返し現れてくる。このように、想定ダイジェストに繰り返しパターンが含まれていると(ステップ142でY)、マップ作成処理部11は、図10(b)に示したようにタグの並びが同じ繰り返しパターンを1つにまとめ、それぞれに記号を割り振る。図10(b)に示した記号の例によると、“tr,td,/td,td,a,/a,/td,/tr”というパターンが繰り返し現れているので、このパターンに“C”という記号を割り振る。なお、“html”や“table”など繰り返しパターンに含まれないタグに対しては、記号を個々に割り振る。このようにして、マップ作成処理部11は、想定レスポンスから得られた想定ダイジェストに含まれるタグを記号化する(ステップ143)。記号化後の想定ダイジェストを図10(c)に示す。
続いて、マップ作成処理部11は、記号化された想定ダイジェストを解析することで記号を必要により圧縮する(ステップ144)。図10(c)に示した記号化された想定ダイジェストによると、“C”が3回繰り返し連続して登場している。そこで、本実施の形態では、1つのパターンとして図10(d)に示したように3つの“C”を “C3”と圧縮する。その後、マップ作成処理部11は、記号を復号してタグに展開する(ステップ145)。
以上説明したように、想定レスポンスから得られる想定ダイジェスト(図10(b))にタグの繰り返しパターンが存在する場合、マップ作成処理部11は、その想定ダイジェストを編集し、上記のように繰り返しパターンを圧縮し、図10(f)に例示したように繰り返し部分要素を記号化して想定ダイジェストを作成する。図10(f)を参照すれば明らかなように、本実施の形態では、繰り返し部分を小括弧“()”で囲み、その繰り返し回数を“)”に続けて記述するという所定の記述規則に従って記述している。
また、ステップ144において、記号化された想定ダイジェストを圧縮する他のパターンとして、図10(e)に示したように3つの“C”を 、“C”が3回と限定せずに複数回登場していることを示す“C+”と圧縮してもよい。これを復号した結果、作成される想定ダイジェストを図10(g)に示す。図10(g)を参照すれば明らかなように、繰り返し部分を、図10(f)のように繰り返し回数を“3”と数値にて固定化せずに、“)”に続けて1回以上繰り返されていることを表す“+”で表すという所定の記述規則に従って記述している。
図10(a)に例示した想定レスポンスでは、3回の繰り返しが存在している。ただ、検索条件等によってヒットするデータ数が異なってくることは容易に想像しうる。そこで、“C3”と繰り返し回数を3回と明示せずに、1回以上出現することを示す“+”という記号を付加することで、繰り返しパターンの回数は変動してもよい、可変であるという形式にて想定ダイジェストを作成する。
一方、“C3”のように“Cn”(nは自然数)と繰り返し回数を明示することにも長所がある。例えば、血液型や都道府県等繰り返しの数が固定的なデータを表示するのであれば、“Cn”と繰り返し回数を固定して想定ダイジェストを作成するのが好適である。例えば、血液型は、A,B,O,ABと4タイプと固定されているので“C4”とする。この場合において、血液型に対するデータを表示するための実ダイジェストにおける繰り返し回数が5回などと4回以外になっていれば、Webサーバ20はXSS攻撃の被害を受けていると推定できる。
なお、上記説明では、タグ及び繰り返しパターンに英字を割り振り、繰り返しパターンに対しては“+”という記号を付加して表すようにしたが、これらの記号は一例であって所定の記述規則に従い異なる記号を用いるようにしてもよい。また、本実施の形態では、繰り返し回数が固定である場合と変動である場合との例を示したが、繰り返し回数として上下限値や範囲を指定できるようにしてもよい。この場合、エントリポイントマップを作成する際に、図10(f)あるいは図10(g)のようにマップ作成処理部11が自動作成した想定ダイジェストをディスプレイ47に表示して、開発者に編集させるようにしてもよい。
次に、クライアント30から実際に送信されたリクエストに応じて作成されたレスポンスに繰り返しパターンが存在する場合における検査装置10における検査処理について図8を用いて説明する。なお、すでに説明した処理については適宜省略する。
依頼受付部12は、受け付けたリクエスト及びレスポンスの組に基づき想定ダイジェストを取得する(ステップ151〜153)。そして、ダイジェスト作成部13は、依頼受付部12が受け付けたレスポンスの実ダイジェストを作成する(ステップ154)。
続いて、検査部14は、ステップ153により取得された想定ダイジェストと、ステップ154により作成された実ダイジェストと、を比較するが、想定ダイジェスト(例えば図10(g))を参照することで繰り返しパターンが含まれていることを認識できる。この場合、検査部14は、想定ダイジェストの繰り返し部分に対応するタグの並びを実ダイジェストの中から見つけ、前述した“)”に続く“3”や“+”の記号に基づいて実ダイジェストにおける繰り返し部分の記述の正当性を検証する。
例えば、実ダイジェストにおいて、図10(b)における記号“C”に対応するタグの並びが5回繰り返されている場合において、想定ダイジェストが図10(f)のように作成されている場合、タグの並びは一致しているものの繰り返し回数が3回でないため、実ダイジェストは異常と判断される。一方、想定ダイジェストが図10(g)のように作成されている場合、繰り返しパターンと指定された部分のタグの並びが一致しているため、実ダイジェストは正常と判断される。
図6(a)に例示したように繰り返しのない簡単な想定レスポンスの場合は、実ダイジェストが想定ダイジェストと完全に一致する必要があるが、ここで説明しているダイジェストに繰り返しパターンが含まれる場合、実ダイジェストの記述内容は想定ダイジェストと完全に一致しない。しかしながら、実ダイジェストの記述内容は、想定ダイジェストの記述規則によって意図している記述に合致している。このように、本実施の形態では、実ダイジェストの記述内容が、所定の記述規則によって示されている想定ダイジェストが意図する内容である場合、実ダイジェストの記述内容は想定ダイジェストの様式に合致していると解釈する。
このように、検査部14は、実ダイジェストの記述内容が想定ダイジェストの様式に合致している場合(ステップ155でY)、詳細には、実ダイジェストにおける繰り返し部分以外の記述内容は想定ダイジェストと一致し、実ダイジェストにおける繰り返し部分の記述内容は想定ダイジェストにおける所定の記述規則に合致している場合、検査部14は、Webサーバ20においてレスポンスが正常に作成されたと判断する(ステップ156)。一方、実ダイジェストの記述内容が想定ダイジェストの様式に合致していない場合(ステップ155でN)、検査部14は、Webサーバ20において作成されたレスポンスは異常と判断する(ステップ157)。
なお、本実施の形態では、ステップ144において圧縮した後にステップ145で復号した想定ダイジェストを用いて実ダイジェストと比較するようにしたが、実レスポンスに対してステップ143,144を施して、記号化、圧縮化した状態で実ダイジェストと想定ダイジェストとを比較するようにしてもよい。
以下、レスポンスに繰り返しパターンを含む場合の変形例について説明する。
図11(a)は、図10(a)と同様に繰り返しパターンを含む想定レスポンスを示した図である。但し、図11(a)は、想定レスポンスにおける繰り返し部分の一部に他の繰り返し部分には含まれない記述が含まれている場合である。具体的には、繰り返し部分の1箇所に“img”タグによる記述53が含まれている。この記述53を除外すると、図11(a)に示した想定レスポンスには、“tr,td,/td,td,a,/a,/td,/tr”という繰り返しパターンが含まれている。基本的には、図10を用いて説明したのと同様に処理して想定ダイジェストを作成すればよい。ただ、この例の場合、図11(d)に示したように一部に現れる可能性のあるタグ“img”を“(img)?”というように“()”で囲み、“)”に続けて“?”を付けるという所定の記述規則に従って想定ダイジェストを作成する。これは、例えば、エントリポイントマップを作成する際に、図11(b)のようにマップ作成処理部11が自動作成した想定ダイジェストをディスプレイ47に表示して、開発者に編集させるようにして、図11(d)に示した想定ダイジェストを完成させるようにしてもよい。
続いて、ダイジェストを作成する他の例について説明する。具体的には、上記において説明していない図5のステップ124〜127の処理について説明する。
前述した繰り返しパターンのように、レスポンスにおける記述内容に変動する部分とは別に固定する部分は存在しうる。図12(a)は、想定レスポンスの一例を示した図であるが、図12(a)に例示したように、想定レスポンスには、固定された記述54と変動する記述55とが混在する場合がある。前述したように想定レスポンスから全てのタグを抽出して想定ダイジェストを作成してもよいが、記述の固定部分に関しては、まとめて処理することで想定ダイジェストを作成してもよい。
以下、想定レスポンスを記述の固定部分と変動部分とに分けてマップ作成処理部11がエントリポイントマップを作成処理について説明する。
マップ作成処理部11は、Webアプリケーションから抽出したエントリポイントからの記述内容を解析することで想定レスポンスを取得する(図4のステップ110,120、図5のステップ121)。
ここで、開発者によりハッシュを利用するという選択を受け付けると(ステップ122でY)、マップ作成処理部11は、想定レスポンスをディスプレイ47に表示して、開発者に固定部分と変動部分とを指定させる。指定された内容を受け付けることで、想定レスポンスにおける固定部分と変動部分とをそれぞれ抽出する(ステップ124)。図12(a)に例示した想定レスポンスによると、記述54,56が固定部分に、記述55が変動部分に、それぞれ該当するものとする。続いて、マップ作成処理部11は、固定部分の記述54,56それぞれを対象としてハッシュ値を算出する(ステップ125)。本実施の形態では、固定部分の記述に対してハッシュ対象とする直前のタグ(ダイジェスト)からのバイト数とハッシュ値とを当該固定部分におけるダイジェストして作成する。記述54は、想定レスポンスの先頭なので、その先頭位置からのバイト数“85”と、85バイト分の記述54をハッシュ対象として算出されたハッシュ値(Hash値1)と、で当該固定部分のダイジェストを作成する。記述56は、直前のタグ(ダイジェスト)“/div”からのバイト数“41”と、41バイト分の記述56をハッシュ対象として算出されたハッシュ値(Hash値2)と、で当該固定部分のダイジェストを作成する。
続いて、マップ作成処理部11は、変動部分の記述55に対しては、ステップ123において説明したように全てのタグを抽出してDOM構造パターンを作成する(ステップ126)。この作成したDOM構造パターンが対応する変動部分のダイジェストとなる。以上のようにして、固定部分と変動部分とに対してそれぞれダイジェストを作成すると、これらをマージして想定ダイジェストを完成させる(ステップ127)。なお、ステップ125とステップ126は、処理順を逆にして実行してもよい。
図12(b)は、以上の処理により作成された想定ダイジェストを示した図である。想定ダイジェストに含まれる各記述57,58,59は、それぞれ想定レスポンスの各記述54,55,56に対応する。
次に、ハッシュ値を含む想定ダイジェストを用いた検査装置10における検査処理について図8を用いて説明する。なお、すでに説明した処理については適宜省略する。
依頼受付部12は、受け付けたリクエスト及びレスポンスの組に基づき想定ダイジェストを取得する(ステップ151〜153)。そして、ダイジェスト作成部13は、依頼受付部12が受け付けたレスポンスのダイジェストを作成する。このとき、ダイジェスト作成部13は、想定ダイジェスト(例えば図12(b))を参照することでハッシュ値が含まれていることを認識できるので、図5のステップ124〜127を説明したのと同様に処理して、実レスポンスからハッシュを利用した実ダイジェストを作成する(ステップ154)。
続いて、検査部14は、ステップ153により取得された想定ダイジェストと、ステップ154により作成された実ダイジェストと、を比較し、実ダイジェストが想定ダイジェストの様式に合致する場合(ステップ155でY)、検査部14は、Webサーバ20においてレスポンスが正常に作成されたと判断する(ステップ156)。実ダイジェストが想定ダイジェストの様式に合致する場合というのは、ハッシュを利用した記述に関しては、対応する記述と一致する場合である。ハッシュを利用していない記述に関しては、レスポンスが簡単な記述及び繰り返すパターンを含む場合において説明したように、当該記述の実ダイジェストが、対応する記述の想定ダイジェストの様式に合致する場合である。一方、実ダイジェストが想定ダイジェストの様式に合致しない場合(ステップ155でN)、検査部14は、Webサーバ20において作成されたレスポンスは異常と判断する(ステップ157)。
図13(a)は、Webサーバ20において作成された実レスポンスの例を示した図である。図12(a)に示した想定レスポンスと比較すると明らかなように、図13(a)に示した実レスポンスにおける記述54には、想定レスポンスに含まれている記述61が含まれている。この記述61によって実レスポンスにおける記述54に対して算出されるバイト数及びハッシュ値は、想定レスポンスとは異なってくる。図13(b)に例示したように記述54に対するダイジェスト62は、対応する想定ダイジェスト57と異なってくる。
本実施の形態によれば、クライアント30からのリクエストに応じて作成したレスポンスの実ダイジェストを、事前に用意しておいた想定ダイジェストと比較し検証することで、Webサーバ20がXSS攻撃の被害を受けているかどうかを検査できるようにした。
なお、本実施の形態では、送信制御部15は送信部16に指示することで、Webサーバ20が作成したレスポンスを検査装置10からクライアント30へ送信するようにした。これを、送信制御部15は、レスポンスの送信指示をWebサーバ20にすることで、Webサーバ20からクライアント30へレスポンスを返信させるようにしてもよい。通知情報についても同様である。
また、本実施の形態では、検査装置10をWebサーバ20とは別に設けたが、検査装置10が持つ処理機能をWebサーバ20に持たせることで一体に形成してもよい。あるいは、Webサーバ20と検査装置10とを1対1に対応付けずに、検査装置10が複数のWebサーバ20の検査を行うようにしてもよい。
1 ネットワーク、10 検査装置、11 マップ作成処理部、12 依頼受付部、13 ダイジェスト作成部、14 検査部、15 送信制御部、16 送信部、17 エントリポイントマップ記憶部、20 Webサーバ、21 実行部、22 検査依頼部、30 クライアント、31 閲覧部、41 CPU、42 ROM、43 RAM、44 ハードディスクドライブ(HDD)、45 マウス、46 キーボード、47 ディスプレイ、48 入出力コントローラ、49 ネットワークコントローラ、50 内部バス。

Claims (6)

  1. ウェブページ毎に、当該ウェブページの閲覧要求に応じてウェブサーバにより作成される応答であってマークアップ言語により記述される応答の想定される記述内容を解析することによって作成された当該応答の文書構造を示す想定応答パターンを記憶する記憶手段と、
    クライアントから送られてきたウェブページの閲覧要求に応じて前記ウェブサーバにより作成された応答であってマークアップ言語により記述された応答の記述内容を解析することによって当該応答の文書構造を示す応答パターンを作成する作成手段と、
    前記作成手段により作成された応答パターンが、前記クライアントにより閲覧要求されたウェブページに対応して前記記憶手段に記憶された想定応答パターンの様式に合致する場合、前記クライアントから送られてきたウェブページの閲覧要求に応じて前記ウェブサーバにより作成された応答を前記クライアントへ送信させるよう制御する送信制御手段と、
    を有することを特徴とする情報処理装置。
  2. 前記想定応答パターンには、前記ウェブサーバにより作成される応答に繰り返し含まれる可能性のある要素が所定の記述規則に従い記号化され記述されていることを特徴とする請求項1に記載の情報処理装置。
  3. 前記作成手段は、前記ウェブサーバにより作成される応答に記述内容が固定された記述部分が所定の記述規則に従い暗号化されて前記想定応答パターンに記述される場合において、前記クライアントからの閲覧要求に応じて前記ウェブサーバにより作成された応答に記述内容が固定された記述部分が含まれている場合、当該固定された記述部分を前記記述規則に従い暗号化して前記応答パターンを作成することを特徴とする請求項1に記載の情報処理装置。
  4. 前記送信制御手段は、前記作成手段により作成された応答パターンが、前記クライアントにより閲覧要求されたウェブページに対応する想定応答パターンの様式に該当しない場合、前記ウェブサーバにより作成された応答に代えて、前記ウェブサーバが攻撃された可能性がある旨を示す通知情報を前記クライアントへ送信させるよう制御することを特徴とする請求項1に記載の情報処理装置。
  5. ウェブページの閲覧要求を送信するクライアントと、
    前記クライアントから送られてきたウェブページの閲覧要求に応じてマークアップ言語により記述された応答を作成するウェブサーバと、
    情報処理装置と、
    ウェブページ毎に、当該ウェブページの閲覧要求に応じて前記ウェブサーバにより作成される応答であってマークアップ言語により記述される応答の想定される記述内容を解析することによって作成された当該応答の文書構造を示す想定応答パターンを記憶する記憶手段と、
    を有し、
    前記ウェブサーバは、前記クライアントから送られてきたウェブページの閲覧要求及び当該閲覧要求に応じて作成した応答を前記情報処理装置へ送信することで、前記ウェブサーバの検査を依頼する検査依頼手段を有し、
    前記情報処理装置は、
    前記ウェブサーバからの検査の依頼時に送信された閲覧要求及び応答を受け付ける依頼受付手段と、
    前記依頼受付手段により受け付けられた応答の記述内容を解析することによって当該応答の文書構造を示す応答パターンを作成する作成手段と、
    前記作成手段により作成された応答パターンが、前記クライアントにより閲覧要求されたウェブページに対応して前記記憶手段に記憶された想定応答パターンの様式に合致する場合、前記クライアントから送られてきたウェブページの閲覧要求に応じて前記ウェブサーバにより作成された応答を前記クライアントへ送信させるよう制御する送信制御手段と、
    を有することを特徴とするネットワークシステム。
  6. ウェブページ毎に、当該ウェブページの閲覧要求に応じてウェブサーバにより作成される応答であってマークアップ言語により記述される応答の想定される記述内容を解析することによって作成された当該応答の文書構造を示す想定応答パターンを記憶する記憶手段をアクセス可能なコンピュータを、
    クライアントから送られてきたウェブページの閲覧要求に応じて前記ウェブサーバにより作成された応答であってマークアップ言語により記述された応答の記述内容を解析することによって当該応答の文書構造を示す応答パターンを作成する作成手段、
    前記作成手段により作成された応答パターンが、前記クライアントにより閲覧要求されたウェブページに対応して前記記憶手段に記憶された想定応答パターンの様式に合致する場合、前記クライアントから送られてきたウェブページの閲覧要求に応じて前記ウェブサーバにより作成された応答を前記クライアントへ送信させるよう制御する送信制御手段、
    として機能させるためのプログラム。
JP2015117141A 2015-06-10 2015-06-10 情報処理装置、ネットワークシステム及びプログラム Pending JP2017004236A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015117141A JP2017004236A (ja) 2015-06-10 2015-06-10 情報処理装置、ネットワークシステム及びプログラム
US14/957,205 US20160364376A1 (en) 2015-06-10 2015-12-02 Information processing apparatus, network system, and non-transitory computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015117141A JP2017004236A (ja) 2015-06-10 2015-06-10 情報処理装置、ネットワークシステム及びプログラム

Publications (1)

Publication Number Publication Date
JP2017004236A true JP2017004236A (ja) 2017-01-05

Family

ID=57516785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015117141A Pending JP2017004236A (ja) 2015-06-10 2015-06-10 情報処理装置、ネットワークシステム及びプログラム

Country Status (2)

Country Link
US (1) US20160364376A1 (ja)
JP (1) JP2017004236A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109040097A (zh) * 2018-08-23 2018-12-18 彩讯科技股份有限公司 一种跨站脚本攻击的防御方法、装置、设备和存储介质

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543018B2 (en) * 1996-04-11 2009-06-02 Aol Llc, A Delaware Limited Liability Company Caching signatures
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US20020059364A1 (en) * 1999-02-08 2002-05-16 Christopher M Coulthard Content certification
US20020078087A1 (en) * 2000-12-18 2002-06-20 Stone Alan E. Content indicator for accelerated detection of a changed web page
US7096493B1 (en) * 2000-12-21 2006-08-22 Gary G. Liu Internet file safety information center
JP2003087243A (ja) * 2001-06-28 2003-03-20 Hitachi Ltd データ検証方法、データ検証装置およびその処理プログラム製品
US6941477B2 (en) * 2001-07-11 2005-09-06 O'keefe Kevin Trusted content server
US7318238B2 (en) * 2002-01-14 2008-01-08 Microsoft Corporation Security settings for markup language elements
US7257773B1 (en) * 2002-02-14 2007-08-14 Mcafee, Inc. Method and system for identifying unsolicited mail utilizing checksums
US7343626B1 (en) * 2002-11-12 2008-03-11 Microsoft Corporation Automated detection of cross site scripting vulnerabilities
US7908399B2 (en) * 2003-05-30 2011-03-15 Cisco Technology, Inc. Compression of repeated patterns in full bandwidth channels over a packet network
US7475254B2 (en) * 2003-06-19 2009-01-06 International Business Machines Corporation Method for authenticating software using protected master key
GB0315154D0 (en) * 2003-06-28 2003-08-06 Ibm Improvements to hypertext integrity
US7536725B2 (en) * 2003-07-28 2009-05-19 Limelight Networks, Inc. Authentication of content download
US20050114658A1 (en) * 2003-11-20 2005-05-26 Dye Matthew J. Remote web site security system
US7519726B2 (en) * 2003-12-12 2009-04-14 International Business Machines Corporation Methods, apparatus and computer programs for enhanced access to resources within a network
US7809700B2 (en) * 2004-04-09 2010-10-05 Capital One Financial Corporation Methods and systems for verifying the accuracy of reported information
US7523452B1 (en) * 2004-12-07 2009-04-21 Netapp, Inc. Method and apparatus for creating and using a download package to modify software configuration of a storage system
CA2527885A1 (en) * 2005-11-25 2007-05-25 Ibm Canada Limited - Ibm Canada Limitee Verifying content of resources in markup language documents
GB2432933B (en) * 2006-03-14 2008-07-09 Streamshield Networks Ltd A method and apparatus for providing network security
US8490148B2 (en) * 2007-03-12 2013-07-16 Citrix Systems, Inc Systems and methods for managing application security profiles
US8205255B2 (en) * 2007-05-14 2012-06-19 Cisco Technology, Inc. Anti-content spoofing (ACS)
US8949990B1 (en) * 2007-12-21 2015-02-03 Trend Micro Inc. Script-based XSS vulnerability detection
US8806618B2 (en) * 2008-03-31 2014-08-12 Microsoft Corporation Security by construction for distributed applications
US8495719B2 (en) * 2008-10-02 2013-07-23 International Business Machines Corporation Cross-domain access prevention
US8495733B1 (en) * 2009-03-25 2013-07-23 Trend Micro Incorporated Content fingerprinting using context offset sequences
US8924553B2 (en) * 2009-08-31 2014-12-30 Red Hat, Inc. Multifactor validation of requests to thwart cross-site attacks
US8499283B2 (en) * 2010-02-09 2013-07-30 Webroot Inc. Detection of scripting-language-based exploits using parse tree transformation
CA2694326A1 (en) * 2010-03-10 2010-05-18 Ibm Canada Limited - Ibm Canada Limitee A method and system for preventing cross-site request forgery attacks on a server
US8813237B2 (en) * 2010-06-28 2014-08-19 International Business Machines Corporation Thwarting cross-site request forgery (CSRF) and clickjacking attacks
CA2706743A1 (en) * 2010-06-30 2010-09-08 Ibm Canada Limited - Ibm Canada Limitee Dom based page uniqueness indentification
US8910247B2 (en) * 2010-10-06 2014-12-09 Microsoft Corporation Cross-site scripting prevention in dynamic content
US8997239B2 (en) * 2011-03-31 2015-03-31 Infosys Limited Detecting code injections through cryptographic methods
US8949992B2 (en) * 2011-05-31 2015-02-03 International Business Machines Corporation Detecting persistent vulnerabilities in web applications
US9471787B2 (en) * 2011-08-25 2016-10-18 International Business Machines Corporation Detecting stored cross-site scripting vulnerabilities in web applications
TWI439097B (zh) * 2011-08-26 2014-05-21 Univ Nat Taiwan Science Tech 跨站腳本攻擊產生方法
US8683596B2 (en) * 2011-10-28 2014-03-25 International Business Machines Corporation Detection of DOM-based cross-site scripting vulnerabilities
US9003535B1 (en) * 2012-07-06 2015-04-07 Symantec Corporation Systems and methods for certifying client-side security for internet sites
US8752183B1 (en) * 2012-07-10 2014-06-10 Hoyt Technologies, Inc. Systems and methods for client-side vulnerability scanning and detection
US8694784B1 (en) * 2012-10-09 2014-04-08 Sap Ag Secure client-side key storage for web applications
US9305169B2 (en) * 2012-12-18 2016-04-05 Tinfoil Security, Inc. System and methods for scalably identifying and characterizing structural differences between document object models
US11386181B2 (en) * 2013-03-15 2022-07-12 Webroot, Inc. Detecting a change to the content of information displayed to a user of a website
US9225737B2 (en) * 2013-03-15 2015-12-29 Shape Security, Inc. Detecting the introduction of alien content
US9699141B2 (en) * 2013-04-03 2017-07-04 Symantec Corporation Method and apparatus for integrating security context in network routing decisions
US20150254219A1 (en) * 2014-03-05 2015-09-10 Adincon Networks LTD Method and system for injecting content into existing computerized data
WO2015142697A1 (en) * 2014-03-15 2015-09-24 Belva Kenneth F Methods for determining cross-site scripting and related vulnerabilities in applications
US9699142B1 (en) * 2014-05-07 2017-07-04 Amazon Technologies, Inc. Cross-site scripting defense using document object model template
US11063956B2 (en) * 2014-11-14 2021-07-13 Adobe Inc. Protecting documents from cross-site scripting attacks
KR101543237B1 (ko) * 2014-12-03 2015-08-11 한국인터넷진흥원 코드 패턴을 이용한 정적 분석과 api 흐름을 이용한 동적 분석을 통한 악성 스크립트 탐지 차단 장치, 시스템 및 방법

Also Published As

Publication number Publication date
US20160364376A1 (en) 2016-12-15

Similar Documents

Publication Publication Date Title
US10798202B2 (en) Security systems for mitigating attacks from a headless browser executing on a client computer
Gupta et al. XSS-secure as a service for the platforms of online social network-based multimedia web applications in cloud
EP3440542B1 (en) Applying bytecode obfuscation techniques to programs written in an interpreted language
CN103095681B (zh) 一种检测漏洞的方法及装置
Gupta et al. Enhancing the browser-side context-aware sanitization of suspicious HTML5 code for halting the DOM-based XSS vulnerabilities in cloud
US11886619B2 (en) Apparatus and method for securing web application server source code
CN107209830B (zh) 用于识别并抵抗网络攻击的方法
US9021593B2 (en) XSS detection method and device
JP5793722B2 (ja) 未承認フォントのリンクの防止
CN107209831B (zh) 用于识别网络攻击的系统和方法
Barua et al. Server side detection of content sniffing attacks
CN109672658B (zh) Json劫持漏洞的检测方法、装置、设备及存储介质
CN104978423A (zh) 网站类型的检测方法及装置
JP6291441B2 (ja) ウェブシステム、ウェブクライアント装置および改ざん検査装置
JP2017004236A (ja) 情報処理装置、ネットワークシステム及びプログラム
Jain et al. Detection of javascript vulnerability at Client Agen
CN111191237B (zh) 一种基于rce漏洞的web后门检测装置及检测方法
CN114329459A (zh) 浏览器防护方法及装置
KR20210076455A (ko) Xss 공격 검증 자동화 방법 및 그 장치
Gupta et al. RAJIVE: restricting the abuse of JavaScript injection vulnerabilities on cloud data centre by sensing the violation in expected workflow of web applications
Singh et al. Dynamic Content Security Policy Generation at Client-Side to Mitigate XSS Attacks
Yamazaki et al. Xilara: An XSS filter based on HTML template restoration
Haque et al. A Comparative Analysis of Different Implementation Techniques to Prevent Cross Site Scripting Attack in Web Application
Nilsson Security in Behaviour Driven Authentication for Web Applications
Snake XSS (Cross Site Scripting)-Cheat Sheet Esp: for filter evasion