(57)【要約】  ブラウザエミュレータ（２５）に対し、クライアント環境として、ＯＳ、ブラウザ、プラグインの種類およびバージョンに任意の値を模擬させる。また、ブラウザエミュレータ（２５）はスクリプトやプラグインの実行を監視する。そして、ブラウザエミュレータマネージャ（２３）は、ブラウザエミュレータ（２５）に所定のウェブサイトを巡回させ、ウェブサイトへのアクセス結果と、当該ウェブサイトへのアクセス時に模擬したクライアント環境の情報とを対応付けて解析情報データベース（２４）に蓄積する。そして、ブラウザエミュレータマネージャ（２３）は、蓄積されたアクセス結果を参照して、クライアント環境の違いに応じてアクセス結果に違いが生じるウェブサイトを特定する。
2016024480.tif 000002
【特許請求の範囲】
【請求項１】
ブラウザの動作を模擬するブラウザエミュレータ装置であって、
自身のブラウザエミュレータ装置のクライアント環境に任意のＯＳ（Operating  System）、任意のブラウザおよび任意のプラグインを設定する情報設定部と、
外部のウェブサイトへアクセスする際、前記クライアント環境に設定されたＯＳ、ブラウザおよびプラグインを模擬してアクセスし、前記ウェブサイトへのアクセス結果と、前記ウェブサイトへのアクセス時に用いたクライアント環境の情報とを出力するアクセス部とを備えることを特徴とするブラウザエミュレータ装置。
【請求項２】
アクセス先のウェブサイトがスクリプトを使用する場合に、
前記スクリプトに使用されたスクリプト関数の実行処理に割り込み、前記実行されたスクリプト関数に関する情報を取得し、前記取得したスクリプト関数に関する情報と、前記アクセスしたウェブサイトの情報とを出力し、前記スクリプト関数の実行処理の応答として、前記ウェブサイトに、スクリプトインタプリタによる関数の実行処理または予め設定した任意の値を返すスクリプト関数フック部をさらに備えることを特徴とする請求項１に記載のブラウザエミュレータ装置。
【請求項３】
アクセス先のウェブサイトがプラグイン関数を使用する場合に、
使用されたプラグイン関数の実行処理に割り込み、前記実行されたプラグイン関数に関する情報を取得し、前記取得したプラグイン関数に関する情報と、前記アクセスしたウェブサイトの情報とを出力し、前記プラグイン関数の実行処理の応答として、前記ウェブサイトに、予め設定した任意の値を返すプラグイン関数フック部をさらに備えることを特徴とする請求項１に記載のブラウザエミュレータ装置。
【請求項４】
ブラウザの動作を模擬するブラウザエミュレータ装置を構築する構築装置であって、
前記ブラウザエミュレータ装置のクライアント環境として、ＯＳ（Operating  System）、ブラウザ、プラグインの種類およびバージョンに任意の値を設定する設定部と、
前記ブラウザエミュレータ装置に、１以上のウェブサイトへのアクセスを指示するアクセス指示部と、
前記ブラウザエミュレータ装置によるウェブサイトへのアクセス結果と、前記ウェブサイトへのアクセス時に模擬したクライアント環境の情報とを対応付けて蓄積する解析情報データベースと、
前記解析情報データベースにおける前記ブラウザエミュレータ装置によるアクセス結果を参照して、前記クライアント環境の違いに応じて前記アクセス結果に違いが生じるウェブサイトを特定する解析部とを備えることを特徴とする構築装置。
【請求項５】
前記構築装置は、さらに、
外部装置からブラウザおよびプラグインの脆弱性に関する情報を取得し、前記脆弱性に関する情報を用いて、前記クライアント環境を作成するクライアント環境作成部をさらに備えることを特徴とする請求項４に記載の構築装置。
【請求項６】
前記設定部は、
複数のブラウザエミュレータ装置それぞれに異なるクライアント環境を設定し、
前記解析部は、
前記複数のブラウザエミュレータ装置のアクセス結果を参照して、前記クライアント環境の違いに応じてアクセス結果に違いが生じるウェブサイトを特定することを特徴とする請求項４または請求項５に記載の構築装置。
【請求項７】
ブラウザの動作を模擬するブラウザエミュレータ装置が、
自身のブラウザエミュレータ装置のクライアント環境に任意のＯＳ（Operating  System）、任意のブラウザおよび任意のプラグインを設定するステップと、
外部のウェブサイトへアクセスする際、前記クライアント環境に設定された種類およびバージョンのＯＳ、ブラウザおよびプラグインを模擬してアクセスし、前記ウェブサイトへのアクセス結果と、前記ウェブサイトへのアクセス時に用いたクライアント環境の情報とを出力するステップとを含んだことを特徴とするブラウザエミュレート方法。
【請求項８】
ブラウザの動作を模擬するブラウザエミュレータ装置であるコンピュータに、
自身のブラウザエミュレータ装置のクライアント環境に任意のＯＳ（Operating  System）、任意のブラウザおよび任意のプラグインを設定するステップと、
外部のウェブサイトへアクセスする際、前記クライアント環境に設定された種類およびバージョンのＯＳ、ブラウザおよびプラグインを模擬してアクセスし、前記ウェブサイトへのアクセス結果と、前記ウェブサイトへのアクセス時に用いたクライアント環境の情報とを出力するステップとを実行させることを特徴とするブラウザエミュレートプログラム。
【請求項９】
ブラウザの動作を模擬するブラウザエミュレータ装置を構築する構築装置が、
前記ブラウザエミュレータ装置のクライアント環境として、外部装置から取得したブラウザおよびプラグインの脆弱性に関する情報に基づき、ＯＳ（Operating  System）、ブラウザ、プラグインの種類およびバージョンに任意の値を設定するステップと、
前記ブラウザエミュレータ装置に、１以上のウェブサイトへのアクセスを指示するステップと、
前記ブラウザエミュレータ装置によるウェブサイトへのアクセス結果と、前記ウェブサイトへのアクセス時に模擬したクライアント環境の情報とを対応付けて解析情報データベースに蓄積するステップと、
前記解析情報データベースにおける前記ブラウザエミュレータ装置によるアクセス結果を参照して、前記クライアント環境の違いに応じて前記アクセス結果に違いが生じるウェブサイトを特定するステップとを含んだことを特徴とする構築方法。
【請求項１０】
ブラウザの動作を模擬するブラウザエミュレータ装置を構築する構築プログラムであって、
前記ブラウザエミュレータ装置のクライアント環境として、外部装置から取得したブラウザおよびプラグインの脆弱性に関する情報に基づき、ＯＳ（Operating  System）、ブラウザ、プラグインの種類およびバージョンに任意の値を設定するステップと、
前記ブラウザエミュレータ装置に、１以上のウェブサイトへのアクセスを指示するステップと、
前記ブラウザエミュレータ装置によるウェブサイトへのアクセス結果と、前記ウェブサイトへのアクセス時に模擬したクライアント環境の情報とを対応付けて解析情報データベースに蓄積するステップと、
前記解析情報データベースにおける前記ブラウザエミュレータ装置によるアクセス結果を参照して、前記クライアント環境の違いに応じて前記アクセス結果に違いが生じるウェブサイトを特定するステップとをコンピュータに実行させることを特徴とする構築プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブラウザエミュレータ装置、構築装置、ブラウザエミュレート方法、ブラウザエミュレートプログラム、構築方法、および、構築プログラムに関する。
【背景技術】
【０００２】
従来、コンピュータウィルス等の悪性プログラムをダウンロード、インストールさせる悪性のスクリプト（例えば、JavaScript（登録商標））を検知するため、ブラウザのエミュレータ（以下、ブラウザエミュレータと呼ぶ）を用いる技術が提案されている。例えば、ブラウザエミュレータに様々なウェブサイトのスクリプトを実行させ、その実行結果を解析する技術が提案されている（非特許文献１、非特許文献２参照）。【０００３】
このような悪性のスクリプトの中には、攻撃の成功率を向上させるため、自身のウェブサイト（悪性ウェブサイト）にアクセスしてきたクライアントの環境情報を取得し、クライアントの環境に応じた攻撃を行うものがある（以下、環境依存攻撃と呼ぶ。非特許文献３参照）。この環境依存攻撃に用いられる攻撃コードは、例えば、ブラウザのプラグインに関連するファイルを外部から読み込むＨＴＭＬ（HyperText  Markup  Language）タグの挿入コードや、ActiveX（登録商標）の脆弱性を悪用するコード等である（非特許文献４参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Jose  Nazario、“PhoneyC:  A  Virtual  Client  Honeypot”、[online]、［平成２６年６月１９日検索］、インターネット＜URL:https://www.usenix.org/legacy/event/leet09/tech/full_papers/nazario/nazario.pdf＞
【非特許文献２】Marco  Cova、Christopher  Krugel、Giovanni  Vigna、“Detection  and  Analysis  of  Drive-by-Download  Attacks  and  JavaScript  Code”、[online]、［平成２６年６月１９日検索］、インターネット＜URL:https://www.cs.ucsb.edu/~vigna/publications/2010_cova_kruegel_vigna_Wepawet.pdf＞
【非特許文献３】Clemens  Kolbitsch、Benjamin  Livshits、Benjamin  Zorn、Christian  Seifert、“Rozzle:  De-Cloaking  Internet  Malware”、[online]、［平成２６年６月１９日検索］、インターネット＜URL:http://research.microsoft.com/pubs/162710/oakland12.pdf＞
【非特許文献４】高田雄太、秋山満昭、針生剛男、“ドライブバイダウンロード攻撃に使用される悪性なJavaScriptの実態調査”、[online]、［平成２６年６月１９日検索］、インターネット＜URL:http://www.ieice.org/ken/paper/20140327QBlZ/＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ブラウザエミュレータにおいて、環境依存攻撃を行うウェブサイトを検知するためには、解析に使用するクライアントで用いられるＯＳ（Operating  System）、ブラウザ、プラグイン等、クライアント環境を構成する各要素について、任意の種類、バージョンを模擬でき、解析に使用するクライアント環境を柔軟に変更できることが重要となる。しかし、従来技術では、特定のクライアント環境の種類やバージョンにしか対応できず、クライアント環境を柔軟に変更できなかった。そのため、従来技術では、環境依存攻撃を行うウェブサイトを検知しづらいという問題があった。そこで、本発明は、前記した問題を解決し、環境依存攻撃を行うウェブサイトを検知しやすくすることを課題とする。
【課題を解決するための手段】
【０００６】
前記した課題を解決するため、本発明は、ブラウザの動作を模擬するブラウザエミュレータ装置であって、自身のブラウザエミュレータ装置のクライアント環境に任意のＯＳ（Operating  System）、任意のブラウザおよび任意のプラグインを設定する情報設定部と、外部のウェブサイトへアクセスする際、前記クライアント環境に設定されたＯＳ、ブラウザおよびプラグインを模擬してアクセスし、前記ウェブサイトへのアクセス結果と、前記ウェブサイトへのアクセス時に用いたクライアント環境の情報とを出力するアクセス部とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、環境依存攻撃を行うウェブサイトを検知しやすくなる。
【図面の簡単な説明】
【０００８】
【図１】図１は、システムの構成例を示す図である。
【図２】図２は、ブラウザエミュレータの構成を示す図である。
【図３】図３は、ブラウザエミュレータが模擬するクライアント環境であるＯＳ、ブラウザおよびプラグインの関係を説明するための図である。
【図４】図４は、クライアント環境情報の例を示す図である。
【図５】図５は、脆弱性情報データベースの脆弱性情報の例を示す図である。
【図６Ａ】図６Ａは、脆弱性情報データベースのＯＳ情報の例を示す図である。
【図６Ｂ】図６Ｂは、脆弱性情報データベースのプラグイン情報の例を示す図である。
【図６Ｃ】図６Ｃは、脆弱性情報データベースのブラウザ情報の例を示す図である。
【図７Ａ】図７Ａは、解析情報データベースに登録される解析情報の例を示す図である。
【図７Ｂ】図７Ｂは、解析情報データベースに登録されるアクセス情報の例を示す図である。
【図８】図８は、脆弱性情報収集装置の処理手順を示すフローチャートである。
【図９】図９は、ブラウザエミュレータマネージャおよびブラウザエミュレータの処理手順を示すフローチャートである。
【図１０】図１０は、ブラウザエミュレータマネージャの解析部の処理手順を示すフローチャートである。
【図１１】図１１は、ブラウザエミュレータおよびブラウザエミュレータマネージャの機能を実現するプログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら、本発明を実施するための形態（実施形態）について説明する。なお、本発明は本実施形態に限定されない。
【００１０】
まず、図１を用いて本実施形態のシステムの構成例を説明する。システムは、例えば、図１に示すようにネットワーク１とネットワーク２を備える。ネットワーク１とネットワーク２とはパケット転送装置３により接続される。
【００１１】
ネットワーク１は、脆弱性情報掲載ウェブサイト１１および解析対象ウェブサイト１２を備える。ネットワーク１は、インターネットのように広域なネットワークであってもよいし、法人ネットワークのように中小規模なネットワークや、クラウド環境やホスティング環境のネットワークであってもよい。
【００１２】
脆弱性情報掲載ウェブサイト１１は、脆弱性情報（例えば、脆弱性を持つＯＳ、ブラウザ、プラグイン、脆弱性の内容等）を掲載するウェブサイトである。この脆弱性情報掲載ウェブサイト１１は、例えば、ＣＶＥ（Common  Vulnerabilities  and  Exposures）番号を採番しているＭＩＴＲＥ社のウェブサイトや、独自に脆弱性情報を収集し、掲載しているウェブサイト等である。
【００１３】
解析対象ウェブサイト１２は、ブラウザエミュレータマネージャ（構築装置）２３による解析対象のウェブサイトである。この解析対象ウェブサイト１２は、例えば、公開されている悪性ウェブサイトのブラックリストに掲載されているウェブサイト等である。
【００１４】
脆弱性情報掲載ウェブサイト１１および解析対象ウェブサイト１２は、パケット転送装置３経由でネットワーク２からアクセス可能である。
【００１５】
また、ネットワーク２は、脆弱性情報収集装置２１と、脆弱性情報データベース２２と、ブラウザエミュレータマネージャ２３と、解析情報データベース２４とを備える。脆弱性情報収集装置２１とブラウザエミュレータマネージャ２３はパケット転送装置３に接続されている。ネットワーク２は、ローカルエリアネットワークのように小規模なネットワークであってもよいし、法人ネットワークのように中小規模なネットワークである場合やクラウド環境やホスティング環境のネットワークであってもよい。
【００１６】
脆弱性情報収集装置２１は、パケット転送装置３を通じて、脆弱性情報掲載ウェブサイト１１から脆弱性情報を収集し、脆弱性情報データベース２２に出力する。脆弱性情報掲載ウェブサイト１１がＨＴＭＬ（HyperText  Markup  Language）で記述されたウェブサイトであれば、脆弱性情報収集装置２１は、例えば、オープンソースとして開発されたＨＴＭＬパーサやＸＭＬ（Extensible  Markup  Language）パーサを用いる。
【００１７】
脆弱性情報データベース２２は、脆弱性情報収集装置２１により収集された脆弱性情報を蓄積（保存）する。この脆弱性情報は、例えば、図５に示すように、脆弱性情報の識別情報（脆弱性ＩＤ）ごとに、当該脆弱性ＩＤに対応するＣＶＥ番号と、脆弱性を持つ、ＯＳのＩＤ（ＯＳ  ＩＤ）、ブラウザのＩＤ（ブラウザＩＤ）、プラグインのＩＤ（プラグインＩＤ）等とを示した情報である。なお、図５の脆弱性情報で用いられているＯＳ  ＩＤ、ブラウザＩＤ、プラグインＩＤに対応するＯＳ、ブラウザ、プラグインがどのような種類およびバージョンかは、例えば、図６Ａに示すＯＳ情報、図６Ｂに示すプラグイン情報、図６Ｃに示すブラウザ情報を参照することで特定できる。このＯＳ情報、プラグイン情報、ブラウザ情報は、例えば、脆弱性情報データベース２２内に保存される。
【００１８】
例えば、図５に示す脆弱性情報における脆弱性ＩＤ「１」のレコードは、ＣＶＥ番号が「ＣＶＥ−２００９−２４７７」であり、攻撃対象がブラウザＩＤ「１０１，１０２」であることを示す。なお、図６Ｃに示すとおり、ブラウザＩＤ「１０１」はブラウザ「Ｄ」のバージョン「８」、ブラウザＩＤ「１０２」はブラウザ「Ｄ」のバージョン「８.５」である（図６参照）。
【００１９】
脆弱性情報データベース２２への脆弱性情報の保存は、例えば、MySQLやSQLite等のＲＤＢＭＳ（Relational  DataBase  Management  System）により行ってもよいし、テキスト形式で保存してもよい。
【００２０】
図１のブラウザエミュレータマネージャ２３は、１以上のブラウザエミュレータ（ブラウザエミュレータ装置）２５を管理し、このブラウザエミュレータ２５に所定のウェブサイト（解析対象ウェブサイト１２）へアクセスさせる。そして、ブラウザエミュレータマネージャ２３は、ブラウザエミュレータ２５のアクセス結果を用いて、ブラウザエミュレータ２５のクライアント環境の違いに応じてアクセス結果に違いを生じるウェブサイトを特定する。これにより、ブラウザエミュレータマネージャ２３は環境依存攻撃を行う可能性のあるウェブサイトを特定する。
【００２１】
具体的には、まず、ブラウザエミュレータマネージャ２３は、ブラウザエミュレータ２５のクライアント環境を設定する。そして、ブラウザエミュレータマネージャ２３は、各ブラウザエミュレータ２５に、ＵＲＬ（Uniform  Resource  Locator）リストに示されるウェブサイト（解析対象ウェブサイト１２）にアクセスさせる。そして、ブラウザエミュレータマネージャ２３は、ブラウザエミュレータ２５から各ウェブサイトへのアクセス結果（例えば、当該ウェブサイトへのアクセス後に遷移したＵＲＬ、攻撃コード等）と、当該ブラウザエミュレータ２５に設定したクライアント環境とを解析情報データベース２４に蓄積する。その後、ブラウザエミュレータマネージャ２３は、解析情報データベース２４に蓄積された情報を参照して、クライアント環境の違いに応じてアクセス結果に違いが生じるウェブサイトを特定する。
【００２２】
なお、ブラウザエミュレータマネージャ２３は、１つ（または複数）のブラウザエミュレータ２５に対し、毎回異なるクライアント環境を設定してアクセス結果を蓄積してもよいし、それぞれ異なるクライアント環境を設定したブラウザエミュレータ２５を動作させてアクセス結果を蓄積してもよい。前者の場合、ブラウザエミュレータマネージャ２３は、ブラウザエミュレータ２５に対しクライアント環境Ａを設定→クライアント環境Ａによるアクセス結果を蓄積→クライアント環境Ｂを設定→クライアント環境Ｂによるアクセス結果を蓄積という処理を繰り返し、アクセス結果を蓄積する。
【００２３】
なお、ブラウザエミュレータマネージャ２３は、任意のＯＳ、任意のブラウザ、および、任意のプラグインを組み合わせてクライアント環境を作成してよいが、ここでは、ブラウザエミュレータマネージャ２３は、環境依存攻撃を行うウェブサイトを効率よく特定するため、脆弱性情報データベース２２に登録された情報を用いてクライアント環境を作成する場合を例に説明する。このブラウザエミュレータマネージャ２３の詳細は後記する。
【００２４】
ブラウザエミュレータ２５は、ブラウザの動作を模擬する装置である。このブラウザエミュレータ２５は、例えば、ハニーネットプロジェクトが提供しているブラウザエミュレータや、オープンソースとして開発されたHtmlUnitやSeleniumが適用できる。このブラウザエミュレータ２５の詳細は後記する。なお、図１においてブラウザエミュレータ２５はブラウザエミュレータマネージャ２３内に構築されるように描かれているが、ブラウザエミュレータマネージャ２３外に構築されてももちろんよい。
【００２５】
解析情報データベース２４は、各ブラウザエミュレータ２５のアクセス結果を蓄積（保存）する。この解析情報データベース２４におけるデータの保存は、脆弱性情報データベース２２と同様に、ＲＤＢＭＳを用いてもよいし、テキスト形式で保存してもよい。この解析情報データベース２４の詳細は後記する。
【００２６】
なお、本実施形態では、ブラウザエミュレータ２５、ブラウザエミュレータマネージャ２３、脆弱性情報収集装置２１、脆弱性情報データベース２２および解析情報データベース２４を同じネットワークに配置しているが、それぞれ別ネットワークに配置してもよい。また、各構成をセキュアに接続するため、既存の暗号技術を適用して通信情報を暗号化したり、各装置が配置されたネットワーク間または各構成間をＶＰＮ（Virtual  Private  Network）で接続したりしてもよい。
【００２７】
次に、図２を用いてブラウザエミュレータマネージャ２３およびブラウザエミュレータ２５を詳細に説明する。ブラウザエミュレータマネージャ２３は制御部２７を備える。制御部２７は、ホストシステム２６上でブラウザエミュレータ２５を動作させる。このホストシステム２６は、例えば、ブラウザエミュレータマネージャ２３が備えるＯＳを用いる。制御部２７の詳細は後記する。
【００２８】
（ブラウザエミュレータ）
次に、ブラウザエミュレータ２５を説明する。ブラウザエミュレータ２５は、情報設定部２５０と、アクセス部２５４と、ＨＴＭＬ／ＣＳＳ（HyperText  Markup  Language／Cascading  Style  Sheets）パーサ２５５と、スクリプトインタプリタ部２５６とを備える。
【００２９】
情報設定部２５０は、設定部２７２から、自身のブラウザエミュレータ２５が模擬すべきクライアント環境の情報（クライアント環境情報）を取得すると、このクライアント環境情報をブラウザエミュレータ２５に設定する。この情報設定部２５０は、ＯＳ情報設定部２５１と、ブラウザ情報設定部２５２と、プラグイン情報設定部２５３とを備える。
【００３０】
ＯＳ情報設定部２５１は、設定部２７２からクライアント環境情報を取得すると、これに基づき、ブラウザエミュレータ２５が動作を模擬するＯＳ情報を設定する。
【００３１】
ブラウザ情報設定部２５２は、設定部２７２からクライアント環境情報を取得すると、これに基づき、ブラウザエミュレータ２５が動作を模擬するブラウザ情報を設定する。
【００３２】
プラグイン情報設定部２５３は、設定部２７２からクライアント環境情報を取得すると、これに基づき、ブラウザエミュレータ２５が動作を模擬するプラグイン情報を設定する。
【００３３】
アクセス部２５４は、ウェブサイト（例えば、図１の解析対象ウェブサイト１２）と、ＨＴＴＰ（HyperText  Transfer  Protocol）またはＨＴＴＰＳ（HyperText  Transfer  Protocol  Secure）による通信を行い、ウェブコンテンツを取得する。ここでアクセス部２５４は、ＨＴＴＰまたはＨＴＴＰＳによる通信時、ＨＴＴＰヘッダのUser-Agentフィールドに、ＯＳ情報設定部２５１およびブラウザ情報設定部２５２で設定したＯＳ情報とブラウザ情報を使用する。これによりブラウザエミュレータ２５は、任意のＯＳおよびブラウザを模擬する。アクセス部２５４には、例えば、フリーソフトウェアとして開発されたｃＵＲＬを用いる。
【００３４】
アクセス部２５４は、ウェブサイトへのアクセス結果をアクセスログに記録する。例えば、アクセス部２５４は、ウェブサイトへアクセスした結果、別のＵＲＬへ遷移した場合、その遷移先のＵＲＬや、ウェブコンテンツを取得した場合、取得したウェブコンテンツの情報等をアクセス結果として記録する。なお、アクセス部２５４は、当該ウェブサイトへのアクセス時に用いたクライアント環境情報についてもアクセスログに記録する。なお、このアクセスログはブラウザエミュレータ２５の記憶部（図示省略）の所定領域に記憶される。
【００３５】
ＨＴＭＬ／ＣＳＳパーサ２５５は、アクセス部２５４で取得したウェブコンテンツを解釈する。また、ＨＴＭＬ／ＣＳＳパーサ２５５は、ウェブコンテンツを解釈した結果、当該ウェブコンテンツにスクリプトが含まれる場合、スクリプトインタプリタ部２５６を用いてスクリプトを解釈する。
【００３６】
スクリプトインタプリタ部２５６は、ウェブコンテンツに含まれるJavaScript（登録商標）等のスクリプトを解釈する。例えば、スクリプトとしてJavaScript（登録商標）が使用されていた場合、スクリプトインタプリタ部２５６は、オープンソースとして開発されたSpiderMonkeyやV8  JavaScript  Engine等を用いてスクリプトを解釈する。
【００３７】
なお、スクリプトには、ＯＳやブラウザ、ブラウザにインストールされているプラグインの情報を取得する関数が存在する。そのため、ブラウザエミュレータ２５は、このような情報を取得するスクリプト関数に対して、自身のブラウザエミュレータ２５で模擬するＯＳ、ブラウザ、プラグインの情報を応答する必要がある。このため、スクリプトインタプリタ部２５６は、スクリプト関数の実行処理に割り込み、任意の処理を実行させるスクリプト関数フック部２５７を備える。
【００３８】
スクリプトインタプリタ部２５６は、ＯＳ、ブラウザ、プラグインの情報を取得する関数が実行された際に、スクリプト関数フック部２５７を用いて、ＯＳ情報設定部２５１、ブラウザ情報設定部２５２、プラグイン情報設定部２５３によってブラウザエミュレータ２５に設定されたＯＳ情報、ブラウザ情報、プラグイン情報をそれぞれ応答する。これにより、ブラウザエミュレータ２５は、設定されたＯＳ、ブラウザ、プラグインを模擬する。このスクリプト関数フック部２５７は、スクリプト関数に関する情報、例えば、実行された関数名や関数に使用された引数情報を取得し、アクセスしたウェブサイトのＵＲＬ、アクセス時に用いたクライアント環境情報とともに、アクセスログに記録する。
【００３９】
また、スクリプトを用いて、外部プラグインの機能を使用することもできる。このプラグインの機能には、プラグイン情報を取得する関数が存在する。そのため、上述したスクリプト関数と同様に、プラグイン情報を取得するプラグイン関数に対して、ブラウザエミュレータ２５で模擬するプラグイン情報を応答する必要がある。
【００４０】
そこで、スクリプトインタプリタ部２５６は、プラグインに関するインスタンス生成処理や生成したインスタンスを通じた関数の実行処理に割り込み、任意の処理を実行させるプラグイン関数フック部２５８を備える。
【００４１】
プラグイン情報を取得する関数が実行された際に、プラグイン関数フック部２５８は、ブラウザエミュレータ２５に設定されたプラグイン情報を応答することで、プラグインを模擬する。
【００４２】
そして、プラグイン関数フック部２５８は、プラグイン関数に関する情報、例えば、インスタンス生成時に指定したプラグイン名や関数使用時に使用する関数名や引数情報を取得し、アクセスしたウェブサイトのＵＲＬ、アクセス時に用いたクライアント環境情報とともに、アクセスログに記録する。
【００４３】
なお、プラグイン関数フック部２５８は、スクリプトインタプリタ部２５６を用いて、本来のスクリプト関数の実行処理結果を応答するようにしてもよいし、あらかじめ設定した任意の処理の実行結果を応答するようにしてもよい。
【００４４】
一方で、プラグイン関数フック部２５８は、対応するプラグインをインストールしていないと本来のプラグイン関数の実行処理結果を応答することができない。したがって、プラグイン関数フック部２５８では、プラグインに関するインスタンス生成にはダミーインスタンスを応答し、インスタンスを通じた関数の実行にはダミーインスタンスが持つダミー関数の実行結果（ダミー関数の実行結果は、再度ダミーインスタンスとなる）を応答する。このように、スクリプト関数フック部２５７やプラグイン関数フック部２５８がスクリプト関数やプラグイン関数の実行処理に対して応答することで、スクリプトの実行エラーの発生を防ぐことができる。
【００４５】
以上説明したブラウザエミュレータ２５によれば、任意のＯＳ上の任意のブラウザを模擬し、ブラウザに任意のプラグインがインストールされた状態を模擬することができる。なお、ブラウザエミュレータ２５は一度のウェブサイトへのアクセスにおいて、ブラウザエミュレータ２５が模擬するＯＳは、単一の種類、単一のバージョンとし、ブラウザは、単一の種類、単一のバージョンとする。また、ブラウザエミュレータ２５はプラグインがインストールされている場合を模擬するとき、複数の種類のプラグインがインストールされた状態を模擬してもよい。この場合、それぞれのプラグインは単一のバージョンとする。なお、ブラウザエミュレータ２５は、プラグインがまったくインストールされていない状態を模擬してもよい。
【００４６】
ここで、ブラウザエミュレータ２５が模擬するクライアント環境であるＯＳ、ブラウザおよびプラグインの関係を、図３を用いて説明する。
【００４７】
図３において、ＯＳはＡ（例えば、Windows（登録商標））とＢ（例えば、Mac  OS（登録商標））、ブラウザはＣ（例えば、Internet  Explorer（登録商標））とＤ（例えば、Firefox（登録商標））、プラグインはＥ（例えば、ActiveX（登録商標））とＦ（例えば、Oracle  JRE（登録商標））とＧ（例えば、Adobe  Acrobat（登録商標））とＨ（例えば、Adobe  Flash  Player（登録商標））であり、それぞれバージョンが複数あれば、そのバージョンの情報も示している。
【００４８】
ブラウザエミュレータ２５には、これらのＯＳ、ブラウザ、プラグインから選択されたＯＳ、ブラウザ、プラグインがクライアント環境として設定される。例えば、ブラウザエミュレータ２５には、ＯＳは「Ａ」のバージョン「７」、ブラウザは「Ｃ」のバージョン「９」、プラグインは「Ｇ」のバージョン「９」および「Ｈ」のバージョン「１２」といったクライアント環境が設定される。
【００４９】
ブラウザエミュレータ２５に設定されるクライアント環境情報の例を図４に示す。例えば、アクセス部２５４がウェブサイトからウェブコンテンツを取得する際、ＨＴＴＰ通信時に使用するUser-Agentとして図４に例示する情報を用いることで、ＯＳは「Ａ」のバージョン「７」、ブラウザは「Ｃ」のバージョン「９」、プラグインは「Ｇ」のバージョン「９」および「Ｈ」のバージョン「１２」がインストールされた状態が模擬される。また、アクセス先のウェブサイトのJavaScript（登録商標）により、navigatorオブジェクトのプロパティnavigator.pluginsが参照された際に、プラグイン関数フック部２５８が、図４に示すnavigator.pluginsの応答例で応答することで、ブラウザにプラグインとして、「Ｇ」のバージョン「９」および「Ｈ」のバージョン「１２」がインストールされた状態が模擬される。
【００５０】
（ブラウザエミュレータマネージャ）
次に、図２のブラウザエミュレータマネージャ２３の制御部２７を詳細に説明する。制御部２７は、クライアント環境作成部２７１と、設定部２７２と、ＵＲＬリスト作成部２７３と、アクセス指示部２７４と、登録処理部２７５と、解析部２７６とを備える。
【００５１】
クライアント環境作成部２７１は、クライアント環境情報を作成する。例えば、クライアント環境作成部２７１は、脆弱性情報データベース２２から脆弱性情報を取得し、この脆弱性情報をもとにクライアント環境情報を作成する。具体例を挙げると、図５および図６Ｃに示す脆弱性情報データベース２２において、「ＣＶＥ−２００９−２４７７」の攻撃対象はブラウザ「Ｄ」のバージョン「８」および「８．５」である。そこで、クライアント環境作成部２７１は、ブラウザエミュレータ２５に用いるクライアント環境情報に、ブラウザ「Ｄ」のバージョン「８」または「８．５」を設定した情報を作成する。これによりブラウザエミュレータ２５にクライアント環境を網羅的に設定する場合よりも、環境依存攻撃を行うウェブサイトを効率よく特定することができる。なお、このクライアント環境情報は、システムの管理者等により設定された情報を用いてもよい。
【００５２】
設定部２７２は、各ブラウザエミュレータ２５にクライアント環境を設定する。具体的には、設定部２７２は、クライアント環境作成部２７１により作成されたクライアント環境情報をブラウザエミュレータ２５のＯＳ情報設定部２５１、ブラウザ情報設定部２５２、および、プラグイン情報設定部２５３へ出力する。
【００５３】
ＵＲＬリスト作成部２７３は、各ブラウザエミュレータ２５が巡回するウェブサイトのＵＲＬリストを作成する。例えば、ＵＲＬリスト作成部２７３は、公開されている悪性ウェブサイトのブラックリストに掲載されているウェブサイトのＵＲＬをもとにＵＲＬリストを作成する。
【００５４】
アクセス指示部２７４は、各ブラウザエミュレータ２５のアクセス部２５４へＵＲＬリストに示されるＵＲＬへのアクセスを指示する。
【００５５】
登録処理部２７５は、各ブラウザエミュレータ２５のアクセスログを取得し、解析情報データベース２４に登録する。
【００５６】
ここで解析情報データベース２４を詳細に説明する。解析情報データベース２４は、例えば、図７Ａに示す解析情報と図７Ｂに示すアクセス情報とを備える。
【００５７】
解析情報は、解析ＩＤごとに、解析対象のウェブサイトのＵＲＬ（解析ＵＲＬ）と、当該ＵＲＬにアクセス時に用いたブラウザエミュレータ２５のクライアント環境情報（ＯＳ情報、ブラウザ情報、プラグイン情報）とを示した情報である。解析ＵＲＬは、アクセス指示部２７４から出力されたＵＲＬリストに示されるＵＲＬと同じＵＲＬが記述される。また、解析情報において、クライアント環境情報のうち、ＯＳ情報はＯＳ  ＩＤ、ブラウザ情報はブラウザＩＤ、プラグイン情報はプラグインＩＤとして記述している。
【００５８】
アクセス情報は、ブラウザエミュレータ２５のアクセス結果、例えば、解析ＵＲＬへのアクセスの過程でアクセスしたＵＲＬ（アクセスＵＲＬ）、そのタイムスタンプ、攻撃コード情報等を示した情報である。例えば、図７Ｂのアクセス情報は、アクセスＩＤごとに、解析ＩＤと、タイムスタンプと、アクセスＵＲＬと、攻撃コード情報とを示している。この解析ＩＤは、解析情報に示される解析ＩＤに対応する。また、攻撃コード情報は、アクセスＵＲＬへのアクセスにより取得されたコンテンツや、実行された関数名や関数に使用された引数情報等の情報である。
【００５９】
例えば、図７Ｂのアクセス情報のうち、アクセスＩＤ「２」の情報は、解析ＩＤ「１」（つまり、解析ＵＲＬ「http://example.com」、ＯＳ  ＩＤ「２」、ブラウザＩＤ「１」、プラグインＩＤ「１」）であり、「２０１４／６／２３  １６：００：０５．００００」に「http://example.com/test.html」にアクセスし、このＵＲＬへのアクセス時に実行された攻撃コードは「Ｇ，Ｅ」に関するものであることを示す。
【００６０】
図２の解析部２７６は、解析情報データベース２４におけるブラウザエミュレータ２５によるアクセス結果を参照して、クライアント環境の違いに応じてアクセス結果に違いが生じるウェブサイトを特定する。
【００６１】
例えば、図７Ａの解析情報データベース２４の解析情報における解析ＩＤ「１，２」の情報は、ブラウザエミュレータ２５がクライアント環境情報のプラグイン情報を変更した上で、同じＵＲＬを解析していることを意味する。そして、図７Ｂのアクセス情報において解析ＩＤ「１，２」に対応する情報（アクセスＩＤ「１，２，３，１０，１１」の情報）を見ると、解析ＩＤ「１」の場合、ブラウザエミュレータ２５は合計３つのＵＲＬにアクセスしている。一方、解析ＩＤ「２」の場合、合計２つのＵＲＬにしかアクセスしていない。また、解析ＩＤ「１」における２番目のアクセス先のＵＲＬでは「Ｇ，Ｅ」に関する関数が実行されているが、解析ＩＤ「２」における２番目のアクセス先のＵＲＬでは「Ｇ」に関する関数のみが実行されている。解析部２７６は、このようなクライアント環境の違いからアクセス結果（例えば、アクセスしたＵＲＬや実行関数等）に違いが生じるウェブサイトを特定する。この解析部２７６の処理の詳細はフローチャートを用いて後記する。
【００６２】
（処理手順）
次に、システムの処理手順を説明する。まず、図８を用いて、脆弱性情報収集装置２１の処理手順を説明する。
【００６３】
まず、脆弱性情報収集装置２１は、脆弱性情報掲載ウェブサイト１１から脆弱性情報を取得し（Ｓ１）、新しい脆弱性情報（まだ脆弱性情報データベース２２に登録されていない脆弱性情報）が存在すれば（Ｓ２のＹｅｓ）、取得した脆弱性情報をパースし、ＣＶＥ番号、影響するＯＳ情報、ブラウザ情報、プラグイン情報を抽出する（Ｓ３）。そして、脆弱性情報収集装置２１は、抽出した脆弱性情報を脆弱性情報データベース２２（図５、図６Ａ、図６Ｂおよび図６Ｃ参照）へ蓄積する（Ｓ４）。一方、新しい脆弱性情報が存在しなければ（Ｓ２のＮｏ）、脆弱性情報収集装置２１は、処理を終了する。
【００６４】
次に、図９を用いて、ブラウザエミュレータマネージャ２３の処理手順を説明する。まず、ブラウザエミュレータマネージャ２３のクライアント環境作成部２７１は、脆弱性情報データベース２２から脆弱性情報を取得し、この脆弱性情報をもとにクライアント環境情報を作成する（Ｓ１１）。そして、設定部２７２は、クライアント環境情報をブラウザエミュレータ２５に設定する（Ｓ１２）。
【００６５】
Ｓ１２の後、ＵＲＬリスト作成部２７３は、ＵＲＬリストを作成する（Ｓ１３）。例えば、ＵＲＬリスト作成部２７３は、公開されている悪性ウェブサイトのブラックリストをもとにＵＲＬリストを作成する。そして、アクセス指示部２７４は、ブラウザエミュレータ２５にＵＲＬリストに示されるＵＲＬへのアクセスを指示する（Ｓ１４）。この指示を受けたブラウザエミュレータ２５のアクセス部２５４は、当該ＵＲＬへアクセスし、ウェブコンテンツを取得する。
【００６６】
Ｓ１４の後、ブラウザエミュレータ２５のＨＴＭＬ／ＣＳＳパーサ２５５は、取得したウェブコンテンツを解釈し、スクリプトインタプリタ部２５６においてスクリプト関数やプラグイン関数の実行を検知したとき、これらの関数の情報（攻撃コード情報）をアクセスログに記録する（Ｓ１５）。つまり、スクリプトインタプリタ部２５６において取得したコンテンツスクリプト関数やプラグイン関数の実行を監視し、その実行結果をアクセスログに記録する。また、アクセス部２５４は、ウェブコンテンツを解釈する過程でアクセスしたＵＲＬ（アクセスＵＲＬ）をアクセスログに記録する（Ｓ１６）。また、このアクセスログには、ブラウザエミュレータ２５に設定されたクライアント環境情報についても記録する。
【００６７】
Ｓ１６の後、ブラウザエミュレータマネージャ２３の登録処理部２７５は、ブラウザエミュレータ２５のアクセスログを解析情報データベース２４に登録する（Ｓ１７）。例えば、登録処理部２７５は、アクセスログに記録される情報のうち、アクセス指示部２７４から指示されたＵＲＬ（解析ＵＲＬ）と、ブラウザエミュレータ２５に設定されたクライアント環境情報については解析情報データベース２４の解析情報（図７Ａ参照）に登録する。また、登録処理部２７５は、アクセス指示部２７４から指示されたＵＲＬおよびそのＵＲＬへのアクセスの結果遷移したＵＲＬ（アクセスＵＲＬ）と、各ＵＲＬにおける攻撃コード情報については解析情報データベース２４のアクセス情報（図７Ｂ参照）に登録する。
【００６８】
Ｓ１７の後、アクセス指示部２７４はＵＲＬリストにまだブラウザエミュレータ２５が巡回していないＵＲＬがあれば（Ｓ１８のＹｅｓ）、Ｓ１４へ戻り、ＵＲＬリストに示されるすべてのＵＲＬを巡回済みであれば（Ｓ１８のＮｏ）、処理を終了する。
【００６９】
次に、図１０を用いて、ブラウザエミュレータマネージャ２３の解析部２７６の処理手順を説明する。ここでは、解析部２７６が、ブラウザのプラグイン情報に起因する攻撃を行っている可能性のあるウェブサイトのＵＲＬを特定する場合を例に説明する。
【００７０】
まず、解析部２７６は、解析情報データベース２４に対し、解析ＵＲＬ、ＯＳ情報、および、ブラウザ情報が同一の解析情報のレコード（レコードＡ）を要求する（Ｓ２１）。ここで、解析部２７６が解析情報データベース２４からレコードＡを取得できたとき（Ｓ２２のＹｅｓ）、解析情報データベース２４のアクセス情報から、レコードＡに関するレコード（レコードＢ）を取得し、レコードＢから攻撃コード情報を取得する（Ｓ２３）。一方、解析部２７６が解析情報データベース２４からレコードＡを取得できなかったとき（Ｓ２２のＮｏ）、処理を終了する。
【００７１】
例えば、解析部２７６は、図７Ａに示す解析情報において、ＯＳ情報、および、ブラウザ情報が同一である解析ＩＤ「１，２，３」のレコードを取得する。そして、解析部２７６は、図７Ｂに示すアクセス情報から、解析ＩＤ「１，２，３」に関するレコードとして、アクセスＩＤ「１，２，３，１０，１１，１２」のレコードをレコードＢとして取得し、レコードＢから攻撃コード情報「Ｇ，Ｅ」を取得する。
【００７２】
Ｓ２３の後、解析部２７６は、Ｓ２３で取得した攻撃コード情報に、プラグインに関連する情報（例えば、プラグインに関連する関数実行ログ等）が含まれていれば（Ｓ２４のＹｅｓ）、環境依存攻撃である可能性があるので、Ｓ２５へ進む。一方、攻撃コード情報にプラグインに関連する情報が含まれていなければ（Ｓ２４のＮｏ）、処理を終了する。例えば、図７Ｂのアクセス情報における攻撃コード情報「Ｇ，Ｅ」がプラグインに関連する情報であれば、Ｓ２５へ進む。
【００７３】
解析部２７６は、レコードＢにおけるアクセスＵＲＬの一覧を取得し、解析ＩＤごとにアクセスＵＲＬを比較し（Ｓ２５）、アクセスＵＲＬが異なっていれば（Ｓ２６のＹｅｓ）、このレコードＢにおける解析ＵＲＬをプラグインに依存してアクセスＵＲＬが変化するウェブサイトのＵＲＬとして特定する（Ｓ２７）。そして、解析部２７６は、このウェブサイトのＵＲＬを解析結果として出力する。一方、アクセスＵＲＬが同じであれば（Ｓ２６のＮｏ）、処理を終了する。
【００７４】
例えば、解析部２７６は、図７Ｂのアクセス情報において、解析ＩＤ「１」を持つレコード（アクセスＩＤ「１，２，３」のレコード）におけるアクセス先ＵＲＬは「http://example.com」、「http://example.com/test.html」、「http://example.com/mal.pdf」であるが、解析ＩＤ「２」を持つレコード（アクセスＩＤ「１０，１１」のレコード）におけるアクセス先ＵＲＬは「http://example.com」、「http://example.com/test.html」であり、解析ＩＤ「３」を持つレコード（アクセスＩＤ「１２」のレコード）におけるアクセス先ＵＲＬは「http://example.com」である。したがって、Ｓ２７において、解析部２７６は、これらのレコードの解析ＵＲＬ「http://example.com」をプラグインに依存してアクセスＵＲＬが変化するウェブサイトのＵＲＬとして特定する。そして、解析部２７６は、このＵＲＬ「http://example.com」を解析結果として出力する。
【００７５】
このようにすることでブラウザエミュレータマネージャ２３は、ブラウザのプラグイン情報に起因する攻撃を行っている可能性のあるウェブサイトのＵＲＬを特定することができる。
【００７６】
なお、ここでは解析部２７６がブラウザのプラグイン情報に起因する攻撃を行っている可能性のあるウェブサイトのＵＲＬを特定する場合を例に説明したが、ＯＳ情報や、ブラウザ情報に起因する攻撃を行っている可能性のあるウェブサイトのＵＲＬを特定してもよい。
【００７７】
以上説明したシステムによれば、ブラウザエミュレータ２５が様々なクライアント環境（ＯＳ、ブラウザ情報、プラグイン情報）を模擬してウェブサイトへアクセスし、そのアクセス結果を得ることができるので、環境依存攻撃を行っている可能性のあるウェブサイトのＵＲＬを特定しやすくなる。また、システムは、脆弱性情報を用いてブラウザエミュレータ２５にクライアント環境情報を作成するので、上記のウェブサイトのＵＲＬの特定を効率よく行うことができる。
【００７８】
（その他の実施形態）
なお、前記した実施形態のシステムにおいて、ブラウザエミュレータ２５のクライアント環境情報は以下のようにして作成してもよい。
【００７９】
例えば、システムにおいて、ＣＶＥの中には、複数のＯＳ、ブラウザ、プラグインに影響する内容の脆弱性が存在する。一方で、ＯＳ、ブラウザ、プラグインの各バージョンには、複数の脆弱性（ＣＶＥ）が存在する。すなわち、異なるクライアント環境だとしても同じＣＶＥが存在する可能性がある。つまり、ブラウザエミュレータ２５のクライアント環境が異なる場合でも、重複して同じ攻撃コードが観測される可能性がある。そこで、解析部２７６による解析を効率化するために、クライアント環境作成部２７１は以下のようにしてクライアント環境情報を作成する。
【００８０】
例えば、プラグインのうちAdobe  Acrobat（登録商標）に影響のあるＣＶＥに関する解析を行いたければ、クライアント環境作成部２７１は、脆弱性情報データベース２２を参照して、Adobe  Acrobat（登録商標）の各バージョンに関するＣＶＥを列挙する。次に、クライアント環境作成部２７１は、より多くのＣＶＥが存在するバージョンのAdobe  Acrobat（登録商標）から順に、クライアント環境として選択していく。そして、クライアント環境作成部２７１は、Adobe  Acrobat（登録商標）に影響のあるＣＶＥを網羅した時点で、クライアント環境の選択を終了する。そして、クライアント環境作成部２７１は選択したクライアント環境を用いてクライアント環境情報を作成する。このようにすることで、クライアント環境作成部２７１は、攻撃コードの重複観測を低減するような、クライアント環境情報を作成することができる。その結果、システムは効率よくＵＲＬの解析を行うことができる。
【００８１】
また、解析部２７６は、クライアント環境の違いによりアクセス結果（例えば、アクセスしたＵＲＬや実行関数等）に違いが生じるウェブサイトを特定することとしたが、これに限定されない。例えば、解析部２７６は、ブラウザエミュレータ２５のクライアント環境の違いによってアクセス結果に違いが生じるとき、このクライアント環境同士の比較により、アクセス結果に違いが生じる原因となったクライアント環境の要素（ＯＳ、ブラウザ、プラグイン等）を特定するようにしてもよい。このようにすることで、解析部２７６は、ウェブサイトがどのようなクライアント環境を持つブラウザに対し攻撃しているかを特定することができる。
【００８２】
また、解析情報データベース２４への情報登録は、登録処理部２７５が行うこととしたがこれに限定されない。例えば、ブラウザエミュレータ２５自身が、アクセスログの情報を解析情報データベース２４へ登録してもよい。
【００８３】
（プログラム）
また、上記実施形態に係るブラウザエミュレータ２５およびブラウザエミュレータマネージャ２３が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成して実行することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータに読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、ブラウザエミュレータ２５およびブラウザエミュレータマネージャ２３と同様の機能を実現するプログラムを実行するコンピュータの一例を説明する。
【００８４】
図１１は、上記のプログラムを実行するコンピュータを示す図である。図１１に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００８５】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【００８６】
ここで、図１１に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【００８７】
また、上記プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ１０９０に記憶される。具体的には、上記実施形態で説明したブラウザエミュレータ２５およびブラウザエミュレータマネージャ２３が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ１０９０に記憶される。
【００８８】
また、上記プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００８９】
なお、上記プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、上記プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００９０】
１，２  ネットワーク
３      パケット転送装置
１１    脆弱性情報掲載ウェブサイト
１２    解析対象ウェブサイト
２１    脆弱性情報収集装置
２２    脆弱性情報データベース
２３    ブラウザエミュレータマネージャ
２４    解析情報データベース
２５    ブラウザエミュレータ
２６    ホストシステム
２７    制御部
２５０  情報設定部
２５１  ＯＳ情報設定部
２５２  ブラウザ情報設定部
２５３  プラグイン情報設定部
２５４  アクセス部
２５５  ＨＴＭＬ／ＣＳＳパーサ
２５６  スクリプトインタプリタ部
２５７  スクリプト関数フック部
２５８  プラグイン関数フック部
２７１  クライアント環境作成部
２７２  設定部
２７３  ＵＲＬリスト作成部
２７４  アクセス指示部
２７５  登録処理部
２７６  解析部
【図１】
2016024480.tif 000003
【図２】
2016024480.tif 000004
【図３】
2016024480.tif 000005
【図４】
2016024480.tif 000006
【図５】
2016024480.tif 000007
【図６Ａ】
2016024480.tif 000008
【図６Ｂ】
2016024480.tif 000009
【図６Ｃ】
2016024480.tif 000010
【図７Ａ】
2016024480.tif 000011
【図７Ｂ】
2016024480.tif 000012
【図８】
2016024480.tif 000013
【図９】
2016024480.tif 000014
【図１０】
2016024480.tif 000015
【図１１】
2016024480.tif 000016
【国際調査報告】
2016024480.tif 000017
2016024480.tif 000018
2016024480.tif 000019