(57)【要約】  解析装置（４）は、解析対象のＷｅｂページのＵＲＬにアクセスし、解析対象のＷｅｂページをカテゴリに分類するカテゴリ分類部（３２）と、分類されたカテゴリに対し予め設定された検出方法にしたがい、解析対象のＷｅｂページから、ユーザ操作の操作対象を検出する操作対象検出部（３３）と、検出された操作対象に対して操作を実行する操作実行部（３４）と、操作対象への操作の実行後に発生する操作イベントを検出する関数フック部（３５）と、操作によって発生した通信、検出された操作イベント、及び、操作によって遷移したＷｅｂブラウザ画面を、解析対象のＷｅｂページのＵＲＬと対応付けて示したログデータを出力するログ出力部（３６）と、を有する。
2019142398.tif 000002
【特許請求の範囲】
【請求項１】
ＷｅｂページのＵＲＬ（Uniform  Resource  Locator）を解析する解析装置であって、
解析対象のＷｅｂページのＵＲＬの入力を受け付けると、前記解析対象のＷｅｂページのＵＲＬにアクセスし、該解析対象のＷｅｂページを、Ｗｅｂページの誘導方法を表す指標であるカテゴリに分類する分類部と、
前記分類部が分類したカテゴリに対して予め設定された検出方法にしたがい、前記解析対象のＷｅｂページから、ユーザ操作の操作対象を検出する第１の検出部と、
前記第１の検出部が検出した操作対象に対して操作を実行する実行部と、
前記実行部による前記操作対象への操作の実行後に発生する操作イベントを検出する第２の検出部と、
前記実行部による操作によって発生した通信、前記第２の検出部において検出された操作イベント、及び、前記実行部による操作によって遷移したＷｅｂブラウザ画面を、前記解析対象のＷｅｂページのＵＲＬと対応付けて示したログデータを出力する出力部と、
を有することを特徴とする解析装置。
【請求項２】
前記分類部は、
前記解析対象のＷｅｂページのＵＲＬにアクセスし、アクセスしたＷｅｂページの通信先情報、ＨＴＭＬ（Hypertext  Markup  Language）ソースコード情報或いはＷｅｂブラウザ画面の画面情報を特徴情報として抽出する抽出部と、
前記抽出部が抽出した特徴量を基に前記Ｗｅｂページのカテゴリを決定する決定部と、
を有することを特徴とする請求項１に記載の解析装置。
【請求項３】
前記第１の検出部は、
前記抽出部が抽出したＨＴＭＬソースコードから、前記分類部が分類したカテゴリに対して予め設定された文字列を含むＷｅｂエレメントを、文字列検索を行って抽出する第１の解析部と、
前記抽出部が抽出したＷｅｂブラウザ画面の画面情報から、前記分類部が分類したカテゴリに対して予め設定された文字列を含む画像エレメントを、画像処理及び文字列検索を行って抽出する第２の解析部と、
前記第１の解析部が抽出したＷｅｂエレメントと、前記第２の解析部が抽出した画像エレメントとを集約して操作対象として決定する集約部と、
を有することを特徴とする請求項２に記載の解析装置。
【請求項４】
前記分類部は、前記解析対象のＷｅｂページが切り替わると、該切り替わったＷｅｂページを、前記カテゴリに分類し、
前記第１の検出部は、前記分類部によって前記Ｗｅｂページのカテゴリが分類されると、前記Ｗｅｂページから前記操作対象を検出し、
前記実行部は、前記第１の検出部が検出した操作対象に対して、順次操作を実行し、
前記第２の検出部は、前記実行部による操作が起因となる前記Ｗｅｂページの変化を検出し、
前記分類部、前記第１の検出部、前記実行部及び前記第２の検出部は、予め設定された終了条件に達した場合に処理を終了し、
前記出力部は、前記終了条件に達した場合に、前記ログデータを出力することを特徴とする請求項１に記載の解析装置。
【請求項５】
前記第２の検出部は、
前記解析対象のＷｅｂページの読み込み開始時に、ＪａｖａＳｃｒｉｐｔ（登録商標）関数を上書きして、ＪａｖａＳｃｒｉｐｔ関数に入力された引数を通知する処理を追加する上書部と、
前記通知を受けて、前記ユーザ操作を誘導する操作イベントに関わるＪａｖａＳｃｒｉｐｔ関数が呼び出された時に前記ＪａｖａＳｃｒｉｐｔ関数に入力された引数を取得して、前記操作イベントを検出する第３の検出部と、
を有することを特徴とする請求項１に記載の解析装置。
【請求項６】
ＷｅｂページのＵＲＬ（Uniform  Resource  Locator）を解析する解析装置が実行する解析方法であって、
解析対象のＷｅｂページのＵＲＬの入力を受け付けると、前記解析対象のＷｅｂページのＵＲＬにアクセスし、該解析対象のＷｅｂページを、Ｗｅｂページの誘導方法を表す指標であるカテゴリに分類する工程と、
分類された前記カテゴリに対して予め設定された検出方法にしたがい、前記解析対象のＷｅｂページから、ユーザ操作の操作対象を検出する工程と、
検出された前記操作対象に対して操作を実行する工程と、
前記操作対象への操作の実行後に発生する操作イベントを検出する工程と、
前記操作によって発生した通信、前記操作イベントを検出する工程において検出された操作イベント、及び、前記操作によって遷移したＷｅｂブラウザ画面を、前記解析対象のＷｅｂページのＵＲＬと対応付けて示したログデータを出力する工程と、
を含んだことを特徴とする解析方法。
【請求項７】
解析対象のＷｅｂページのＵＲＬ（Uniform  Resource  Locator）の入力を受け付けると、前記解析対象のＷｅｂページのＵＲＬにアクセスし、該解析対象のＷｅｂページを、Ｗｅｂページの誘導方法を表す指標であるカテゴリに分類するステップと、
分類された前記カテゴリに対して予め設定された検出方法にしたがい、前記解析対象のＷｅｂページから、ユーザ操作の操作対象を検出するステップと、
検出された前記操作対象に対して操作を実行するステップと、
前記操作対象への操作の実行後に発生する操作イベントを検出するステップと、
前記操作によって発生した通信、前記操作イベントを検出するステップにおいて検出された操作イベント、及び、前記操作によって遷移したＷｅｂブラウザ画面を、前記解析対象のＷｅｂページのＵＲＬと対応付けて示したログデータを出力するステップと、
をコンピュータに実行させるための解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、解析装置、解析方法及び解析プログラムに関する。
【背景技術】
【０００２】
悪意のあるソフトウェアの総称であるマルウェアの感染は、ユーザのＷｅｂページ閲覧に起因することが多い。このマルウェアのユーザへの侵入の際に、ドライブ・バイ・ダウンロード（Drive-By  Download：ＤＢＤ）攻撃が用いられる。ＤＢＤ攻撃は、Ｗｅｂブラウザを用いて、Ｗｅｂページに接続したユーザを、自動で攻撃ページに転送し、マルウェアに感染させる攻撃である。ＤＢＤ攻撃は、Ｗｅｂブラウザやそれに導入されるプラグインの脆弱性を悪用してユーザにマルウェアを感染させる。【０００３】
ＤＢＤ攻撃を発生させるＷｅｂページを分析するために、Ｗｅｂページを巡回する手法の他に、脆弱性を内包するおとりのシステムであるＷｅｂクライアント型ハニーポットを使用する方法がある。この方法では、Ｗｅｂクライアント型ハニーポットを用いてＷｅｂページを分析し、ＤＢＤ攻撃を発生する悪性なＷｅｂページであると判明した場合、そのＷｅｂページのＵＲＬ（Uniform  Resource  Locator）、ドメイン名、ＩＰ（Internet  Protocol）アドレスを代表とする通信先情報をブラックリストとして設定する。そして、各セキュリティ装置は、このブラックリストに対するＷｅｂアクセスを遮断することによって、ユーザがマルウェアに感染することを防止する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】L.  Invernizzi,  P.  M.  Comparetti,  S.  Benvenuti,  C.  Kruegel,  M.  Cova,  and  G.  Vigna,  “EVILSEED:  A  Guided  Approach  to  Finding  Malicious  Web  Pages”,  IEEE  S&P.,  pp.428−442,  2012.
【非特許文献２】T.  Nelms,  R.  Perdisci,  M.  Antonakakis,  and  M.  Ahamad,  “Towards  Measuring  and  Mitigating  Social  Engineering  Software  Download  Attacks”,  USENIX  Security  Symposium,  pp.773−789,  2016.
【非特許文献３】S.  Duman,  K.  Onarlioglu,  A.  O.  Ulusoy,  W.  Robertson,  and  E.  Kirda,  “TrueClick:  Automatically  Distinguishing  Trick  Banners  from  Genuine  Download  Links”,  ACSAC,  2014.
【非特許文献４】A.  Moshchuk,  T.  Bragin,  S.  D.  Gribble,  and  H.  M.  Levy,  “A  Crawler-based  Study  of  Spyware  on  the  Web”,  The  Network  and  Distributed  System  Security  Symposium,  2006.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
悪性Ｗｅｂページの通信先情報を示すブラックリストを生成するためには、Ｗｅｂページを解析して、Ｗｅｂページを経由した攻撃の発生の有無を分析する必要がある。【０００６】
ここで、Ｗｅｂページ上には多数の操作可能な箇所が存在し、それらに対するユーザの操作が起点となってマルウェアをダウンロードさせる攻撃が存在する。また、Ｗｅｂページの遷移やＷｅｂページ構造の変更を行い、複数の操作を誘導する攻撃も存在する。【０００７】
従来のＷｅｂページ巡回技術やＷｅｂクライアント型ハニーポットは、攻撃の発生を受動的に解析する技術である。このため、従来のＷｅｂページ巡回技術やＷｅｂクライアント型ハニーポットでは、操作を実施しなければ攻撃が発生しない、ユーザ操作を誘導する攻撃を観測することが難しい。【０００８】
また、Ｗｅｂページの遷移を再構成する技術がある。このＷｅｂページの遷移を再構成する技術は、プロキシサーバやＤＰＩ（Deep  Packet  Inspection）でＷｅｂトラヒックを観測し、マルウェアのダウンロードを起点として、ユーザ操作を誘導する攻撃を構成する技術であるしかしながら、Ｗｅｂページの遷移を再構成する技術では、多数あるユーザの操作内容や操作対象を正確に再現することができず、ユーザ操作を誘導する攻撃を観測することが難しい。【０００９】
このように、従来の技術では、ユーザ操作を誘導する攻撃の観測を行うことが難しく、Ｗｅｂページを経由した攻撃の発生の有無を分析することが困難であった。【００１０】
本発明は、上記に鑑みてなされたものであって、Ｗｅｂページを介してユーザ操作を誘導する攻撃を観測することができる解析装置、解析方法及び解析プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明に係る解析装置は、ＷｅｂページのＵＲＬを解析する解析装置であって、解析対象のＷｅｂページのＵＲＬの入力を受け付けると、解析対象のＷｅｂページのＵＲＬにアクセスし、該解析対象のＷｅｂページを、Ｗｅｂページの誘導方法を表す指標であるカテゴリに分類する分類部と、分類部が分類したカテゴリに対して予め設定された検出方法にしたがい、解析対象のＷｅｂページから、ユーザ操作の操作対象を検出する第１の検出部と、第１の検出部が検出した操作対象に対して操作を実行する実行部と、実行部による操作対象への操作の実行後に発生する操作イベントを検出する第２の検出部と、実行部による操作によって発生した通信、第２の検出部において検出された操作イベント、及び、実行部による操作によって遷移したＷｅｂブラウザ画面を、解析対象のＷｅｂページのＵＲＬと対応付けて示したログデータを出力する出力部と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、Ｗｅｂページを介してユーザ操作を誘導する攻撃を観測することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施の形態における解析システムの構成の一例を示す図である。
【図２】図２は、図１に示す解析装置の構成の一例を示す図である。
【図３】図３は、図２に示す特徴抽出部がＷｅｂページから抽出した特徴情報の一例を示す図である。
【図４】図４は、図２に示すカテゴリ決定部が決定するカテゴリの一例を示す図である。
【図５】図５は、図２に示すＨＴＭＬ（Hypertext  Markup  Language）解析部の検出対象の一例を示す図である。
【図６】図６は、解析対象のＨＴＭＬソースコードの一例を示す図である。
【図７】図７は、検出対象の画像エレメントの一例を示す図である。
【図８】図８は、図２に示す画像解析部が出力する画像エレメントの一例を示す図である。
【図９】図９は、重複するＷｅｂエレメントと画像エレメントとの一例を示す図である。
【図１０】図１０は、ＪａｖａＳｃｒｉｐｔ（登録商標）関数の上書き処理の挿入の一例を示す図である。
【図１１】図１１は、図２に示す関数フック部が検出した操作イベント、操作対象及び操作の例を示す図である。
【図１２】図１２は、図２に示す解析装置における操作対象への操作を含む繰り返し処理を説明する図である。
【図１３】図１３は、実施の形態を適用したブラウザ自動操作システムの構成例を説明する図である。
【図１４】図１４は、実施の形態に係る解析処理の処理手順を示すフローチャートである。
【図１５】図１５は、図１４に示すカテゴリ分類処理の処理手順を示すフローチャートである。
【図１６】図１６は、プログラムが実行されることにより、解析装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１５】
［実施の形態］
本発明の実施の形態について説明する。図１は、実施の形態における解析システムの構成の一例を示す図である。
【００１６】
図１に示すように、実施の形態に係る解析システム１は、判定装置３と、ネットワーク２と判定装置３との間に設けられた解析装置４とを有する。解析装置４は、ネットワーク２を介して、外部装置（不図示）と接続する。
【００１７】
解析装置４は、ユーザ操作を誘導するＷｅｂページのＵＲＬを特定するために、入力されたＷｅｂページを解析する。解析装置４は、ネットワーク２を介して収集したＷｅｂページに対して能動的に操作を実施して、Ｗｅｂページを介してユーザ操作を誘導する攻撃を観測する。解析装置４は、Ｗｅｂページ上のユーザ操作を誘導する箇所を操作対象として検出し、操作対象や、操作対象に対する操作内容を記録したログデータを、判定装置３に出力する。なお、ユーザ操作を誘導する攻撃は、ユーザの興味を引いたり、警告したり、欺いたりすることによって、ユーザの心理的な隙を突き、ユーザ自らにマルウェアをインストールさせる攻撃である。
【００１８】
判定装置３は、解析装置４が出力したログデータを参照し、マルウェアや悪性のブラウザ拡張機能を取得するとともに、攻撃に繋がる操作内容や操作対象を特定する。そして、判定装置３は、解析装置４が出力したログデータを参照し、ユーザ操作を誘導する攻撃が発生するＷｅｂページのＵＲＬを判別する。判定装置３は、判別結果を基にブラックリストを生成する。そして、各セキュリティ装置（不図示）は、このブラックリストに対するＷｅｂアクセスを遮断することによって、ユーザがマルウェアに感染することを防止する。
【００１９】
ここで、攻撃者にとって、ユーザ操作を誘導する攻撃は、攻撃を発動させるユーザ操作をどれだけ発生させるかが重要である。この観点で、デジタルデータのダウンロードボタンを表示することによる誘導は広く行われていると考えられる。解析装置４は、実際にＷｅｂページのＵＲＬにアクセスし、Ｗｅｂページ上のユーザ操作を誘導する箇所を検出し、能動的に操作を実行することによって、ユーザ操作を誘導する攻撃を誘発させて攻撃の観測を行う。
【００２０】
［解析装置の構成］
次に、解析装置４の構成について説明する。図２は、図１に示す解析装置４の構成の一例を示す図である。図２に示すように、解析装置４は、通信部１０、記憶部２０及び制御部３０を有する。また、解析装置４は、操作者からの各種操作を受け付ける入力インタフェース（不図示）や、表示装置、印刷装置、情報通信装置等によって実現された出力装置（不図示）を有する。
【００２１】
通信部１０は、ネットワーク２等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部１０は、ＮＩＣ（Network  Interface  Card）等で実現され、ＬＡＮ（Local  Area  Network）やインターネットなどの電気通信回線を介した他の装置と制御部３０（後述）との間の通信を行う。例えば、通信部１０は、ネットワーク２を介して、Ｗｅｂページを収集する。また、通信部１０は、制御部３０によるＷｅｂページの観測結果を、ログとして判定装置３に出力する。具体的には、ログは、Ｗｅｂページの操作対象に対する実際の操作によって発生した通信、操作の実行後に発生する操作イベント、及び、操作によって遷移したＷｅｂブラウザ画面を、解析対象のＷｅｂページのＵＲＬと対応付けて示したデータである。
【００２２】
記憶部２０は、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、光ディスク等の記憶装置である。なお、記憶部２０は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）等のデータを書き換え可能な半導体メモリであってもよい。記憶部２０は、解析装置４で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。さらに、記憶部２０は、プログラムの実行で用いられる各種情報を記憶する。記憶部２０は、第１キーワード記憶部２１、第２キーワード記憶部２２及びログデータ記憶部２３である。
【００２３】
第１キーワード記憶部２１は、第１キーワードを記憶する。第１キーワードは、Ｗｅｂページ内のボタンやリンクなどのＷｅｂエレメント内に含まれる文字列である。第１キーワードは、予めＷｅｂページのカテゴリごとに設定される。例えば、第１キーワードとして、Ｗｅｂページがダウンロードページである場合には「Download」が考えられる。また、第１キーワードとして、Ｗｅｂページが動画ページである場合には「Play  Now」が考えられる。第１キーワードは、これらの文字列に限るものではない。カテゴリごとに第１キーワードが設定されることによって、操作対象検出部３３（後述）は、Ｗｅｂページごとに異なるユーザ操作を誘導するＷｅｂエレメントを、操作対象として、適切に検出することができる。
【００２４】
第２キーワード記憶部２２は、第２キーワードを記憶する。第２キーワードは、ユーザ操作を誘導するＷｅｂエレメントに描画されている文字列である。第２キーワードは、カテゴリごとに設定される。例えば、第２キーワードとして、「Download」、「Play  Now」、「Click  Here」等の文字列が設定される。第２キーワードは、これらの文字列に限るものではない。カテゴリごとに第２キーワードが設定されることによって、操作対象検出部３３（後述）は、Ｗｅｂページごとに異なるユーザ操作を誘導する画像エレメントを、操作対象として、適切に検出することができる。
【００２５】
ログデータ記憶部２３は、ログ出力部３６によって生成されたログデータを記憶する。ログデータは、Ｗｅｂページ上のユーザ操作を誘導する操作対象に対する実際の操作によって発生した通信、操作の実行後に発生した操作イベント、及び、操作によって遷移したＷｅｂブラウザ画面を、解析対象のＷｅｂページのＵＲＬと対応付けて示したデータである。
【００２６】
制御部３０は、解析装置４全体を制御する。制御部３０は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。また、制御部３０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部３０は、各種のプログラムが動作することにより各種の処理部として機能する。制御部３０は、ＵＲＬ入力部３１、カテゴリ分類部３２（分類部）、操作対象検出部３３（第１の検出部）、操作実行部３４（実行部）、関数フック部３５（第２の検出部）及びログ出力部３６（出力部）を有する。
【００２７】
ＵＲＬ入力部３１は、解析対象のＷｅｂページのＵＲＬを入力として受け付ける。解析対象のＷｅｂページのＵＲＬは、例えば、ネットワーク２及び通信部１０を介して、外部装置（不図示）から入力される。
【００２８】
カテゴリ分類部３２は、ＵＲＬ入力部３１が解析対象のＷｅｂページのＵＲＬの入力を受け付けると、解析対象のＷｅｂページのＵＲＬにアクセスし、該解析対象のＷｅｂページを、Ｗｅｂページの誘導方法を表す指標であるカテゴリに分類する。カテゴリは、Ｗｅｂページの誘導方法を表す指標である。カテゴリの異なるＷｅｂページは、異なる性質のユーザ操作を誘導するＷｅｂエレメントを有する。カテゴリ分類部３２は、操作対象検出部３３が、Ｗｅｂページに合わせて、操作対象のＷｅｂエレメントを適切に検出するルールを選択できるように、カテゴリ分類を行う。
【００２９】
カテゴリは、例えば、ダウンロードページ、中間ページ、ソーシャルメディアページ或いは動画ページなどである。ダウンロードページは、Ｗｅｂページ内にダウンロードボタンが存在し、それに操作を行うことでファイルがダウンロードされる可能性のあるＷｅｂページである。中間ページは、別のＷｅｂページへのリダイレクトの途中に到達し、スキップボタンへの操作や、リダイレクト完了までの待機を必要とするＷｅｂページである。ソーシャルメディアページは、動画やメッセージをユーザが投稿できるＷｅｂページである。動画ページは、ストリーミング動画が再生されるＷｅｂページである。なお、カテゴリは、これらの項目に限るものではない。また、カテゴリ分類部３２は、解析対象のＷｅｂページが切り替わると、該切り替わったＷｅｂページを、カテゴリに分類する。
【００３０】
操作対象検出部３３は、カテゴリ分類部３２が分類したカテゴリに対して予め設定された検出方法にしたがい、解析対象のＷｅｂページから、ユーザ操作の操作対象を検出する。操作対象検出部３３は、カテゴリ分類部３２によってＷｅｂページのカテゴリが分類されると、Ｗｅｂページから操作対象を検出する。
【００３１】
操作対象検出部３３は、第１キーワードを用いて、Ｗｅｂページごとに異なる、ユーザ操作を誘導するＷｅｂエレメントを、操作対象として検出する。Ｗｅｂエレメントは、ＨＴＭＬを構成する要素の一つである。また、操作対象検出部３３は、Ｗｅｂページごとに異なる、ユーザ操作を誘導する画像エレメントを、操作対象として検出する。画像エレメントは、Ｗｅｂブラウザによって描画された画面において、エッジ検出を代表とする画像処理技術で判別可能な領域である。
【００３２】
操作実行部３４は、操作対象検出部３３が検出した操作対象に対して操作を実行する。操作実行部３４は、操作対象検出部３３が検出した操作対象に対して、順次操作を実行する。
【００３３】
関数フック部３５は、操作実行部３４による操作対象への操作の実行後に発生する操作イベントを検出する。関数フック部３５は、操作実行部３４による操作が起因となるＷｅｂページの変化を検出する。関数フック部３５は、予め設定したＪａｖａＳｃｒｉｐｔ関数をＷｅｂページの読み込み時に上書きし、関数が呼び出された際に通知する処理を追加する。関数フック部３５は、この通知を受けて、ＪａｖａＳｃｒｉｐｔ関数の呼出を検出することによって、操作イベントを検出する。
【００３４】
ログ出力部３６は、ログデータをログデータ記憶部２３に記憶するとともに、ログデータを判定装置３に出力する。ログデータは、操作実行部３４による操作によって発生した通信、関数フック部３５において検出された操作イベント、及び、操作実行部３４による操作によって遷移したＷｅｂブラウザ画面を、解析対象のＷｅｂページのＵＲＬと対応付けて示したデータである。判定装置３は、解析装置４が出力したログデータを参照し、ユーザ操作を誘導する攻撃が発生するＷｅｂページのＵＲＬを判別する。
【００３５】
［カテゴリ分類部］
次に、カテゴリ分類部３２の構成について説明する。カテゴリ分類部３２は、特徴抽出部３２１（抽出部）及びカテゴリ決定部３２２（決定部）を有する。
【００３６】
特徴抽出部３２１は、Ｗｅｂページのカテゴリを決定するための特徴情報を抽出する。具体的には、特徴抽出部３２１は、解析対象のＷｅｂページのＵＲＬにアクセスする。そして、特徴抽出部３２１は、アクセスしたＷｅｂページの通信先情報、ＨＴＭＬソースコード情報或いはＷｅｂブラウザ画面の画面情報を特徴情報として抽出する。特徴抽出部３２１は、Ｗｅｂページの通信先情報として、ＵＲＬやドメイン名を抽出する。
【００３７】
図３は、図２に示す特徴抽出部３２１がＷｅｂページから抽出した特徴情報の一例を示す図である。図３の各項目に示すように、Ｗｅｂページの特徴情報には、ドメイン名やＵＲＬといった通信先情報、ｖｉｄｅｏタグの有無や、中間ページ等を表す特定の文字列（例えば、“Wait  5  seconds”）の有無などのＨＴＭＬソースコード情報、Ｗｅｂブラウザに描画されたページの高さなどの画像情報がある。なお、特徴抽出部３２１は、タグの有無や特定の文字列の有無については、有る場合には「1」、ない場合には「0」を特徴情報とする。また、特徴情報は、これらの項目に限るものではない。
【００３８】
例えば、特徴抽出部３２１は、Ｗｅｂアクセスを行ったＵＲＬ「http://movie.example.com/」であるＷｅｂページから、ドメイン名「movie.example.com」、ｖｉｄｅｏタグ有を示す「1」、ページの高さ「1700」、“Wait  5  seconds”文字列がないことを示す「0」を抽出する（通番「1」参照）。
【００３９】
カテゴリ決定部３２２は、特徴抽出部３２１が抽出した特徴量を基にＷｅｂページのカテゴリを決定する。カテゴリ決定部３２２は、特徴抽出部３２１が抽出した特徴量を基に、Ｗｅｂページを、例えば、ダウンロードページ、中間ページ、ソーシャルメディアページ、動画ページ或いは基本ページに分類する。
【００４０】
具体的には、カテゴリ決定部３２２は、ＵＲＬのドメイン名が既知のソーシャルメディアサイトのドメイン名に一致する場合、このＵＲＬのＷｅｂページをソーシャルメディアページに分類する。また、カテゴリ決定部３２２は、Ｗｅｂページから抽出したＨＴＭＬソースコードにｖｉｄｅｏタグが存在する場合には、このＵＲＬのＷｅｂページを動画ページに分類する。
【００４１】
また、カテゴリ決定部３２２は、Ｗｅｂページから抽出したＨＴＭＬソースコードに中間ページを表す文字列が存在する場合、このＵＲＬのＷｅｂページを中間ページに分類する。また、カテゴリ決定部３２２は、Ｗｅｂページの高さが所定の閾値以上である場合、このＵＲＬのＷｅｂページをダウンロードページに分類する。そして、カテゴリ決定部３２２は、上記以外のカテゴリに分類されないＷｅｂページを基本ページに分類する。
【００４２】
図４は、図２に示すカテゴリ決定部３２２が決定するカテゴリの一例を示す図である。図４に示すように、カテゴリ決定部３２２は、ＨＴＭＬソースコードにｖｉｄｅｏタグが存在するＵＲＬ「http://movie.example.com/」を、動画ページに分類する（通番「2」参照）。カテゴリ決定部３２２は、Ｗｅｂページの高さが所定の閾値以上であるＵＲＬ「http://download.example.com/」のＷｅｂページを、ダウンロードページに分類する（通番「3」参照）。
【００４３】
また、カテゴリ決定部３２２は、ＨＴＭＬソースコードに中間ページを表す文字列が存在するＵＲＬ「http://redirect.example.com/」のＷｅｂページを、中間ページに分類する（通番「4」参照）。カテゴリ決定部３２２は、ドメイン名が既知のソーシャルメディアサイトのドメイン名に一致するＵＲＬ「http://social.example.com/」のＷｅｂページを、ソーシャルメディアページに分類する（通番「5」参照）。そして、カテゴリ決定部３２２は、上記以外のカテゴリに分類されないＷｅｂページＵＲＬ「http://www.movie.example.com/」のＷｅｂページを、基本ページに分類する（通番「1」参照）。
【００４４】
なお、上記では、Ｗｅｂページとカテゴリとが一対一である例を説明したが、これに限らない。例えば、複数のカテゴリの性質を持ったＷｅｂページに対しては、混合したカテゴリ（「ダウンロード＋動画」カテゴリ）のように、カテゴリを拡張することによって、カテゴリの分類に柔軟に対応することができる。
【００４５】
［操作対象検出部］
次に、操作対象検出部３３の構成について説明する。操作対象検出部３３は、ＨＴＭＬ解析部３３１（第１の解析部）、画像解析部３３２（第２の解析部）及び操作対象集約部３３３（集約部）を有する。
【００４６】
ＨＴＭＬ解析部３３１は、特徴抽出部３２１が抽出したＨＴＭＬソースコードから、所定の文字列を含むＷｅｂエレメントを、文字列検索を行って抽出する。所定の文字列は、カテゴリ分類部３２が分類したカテゴリに対して予め設定された文字列である。
【００４７】
ここで、Ｗｅｂエレメントは、ＨＴＭＬを構成する要素の一つである。例えば、ＨＴＭＬ解析部３３１は、ＨＴＭＬ内のＷｅｂエレメントを検出するために、ブラウザやブラウザ操作を行うツールに実装されるＣＳＳセレクタ機能を用いる。また、ＣＳＳセレクタと同様にＷｅｂエレメントを検出するための機能としてＸＰａｔｈがある。ＨＴＭＬ解析部３３１は、ＨＴＭＬ内のＷｅｂエレメントを検出するために、ＸＰａｔｈ機能を用いる。
【００４８】
ＨＴＭＬ解析部３３１は、ユーザ操作を誘導するＷｅｂエレメントを検出するために、そのＷｅｂエレメントのプロパティやタグに囲まれたテキストコンテンツ内に含まれる文字列を第１キーワードとして、ＣＳＳセレクタやＸＰａｔｈを用いて検索を実行する。第１キーワードは、前述したように、Ｗｅｂページのカテゴリごとに予め設定され、第１キーワード記憶部２１に記憶される。例えば、第１キーワードとして、カテゴリがダウンロードページである場合には「Download」が考えられ、カテゴリが動画ページである場合には「Play  Now」が考えられる。
【００４９】
ＨＴＭＬ解析部３３１は、カテゴリごとに設定された第１キーワードをＨＴＭＬソースコードから検索を行うことによって、Ｗｅｂページごとに異なる、ユーザ操作を誘導するＷｅｂエレメントを適切に検出することができる。なお、Ｗｅｂエレメントを検索するための機能は、ＣＳＳセレクタとＸＰａｔｈに限るものではない。
【００５０】
図５は、図２に示すＨＴＭＬ解析部３３１の検出対象の一例を示す図である。図５に示すように、ＨＴＭＬ解析部３３１は、検出対象が「ｃｌａｓｓプロパティに「Download」を含むＷｅｂエレメント」である場合には、ＣＳＳセレクタに「*[class*=‘Download’]」を設定する（通番「1」参照）。そして、通番「2」，「3」のように、検索対象に対応させてＣＳＳセレクタを設定する。また、ＨＴＭＬ解析部３３１は、検出対象が「テキストコンテンツに「Play  Now」を含むＷｅｂエレメント」である場合には、ＸＰａｔｈの検索条件として「//*[contains(text(),  ‘Play  Now’)]」を設定する（通番「4」参照）。なお、検出対象と使用するＣＳＳセレクタ及びＸＰａｔｈは、図に示す例に限るものではない。
【００５１】
図６は、解析対象のＨＴＭＬソースコードの一例を示す図である。上記のように、ＨＴＭＬ解析部３３１は、ＣＳＳセレクタやＸＰａｔｈを用いて、ＨＴＭＬソースコードから、行Ｒ１〜Ｒ４に示すＷｅｂエレメントをそれぞれ検出することができる。すなわち、ＨＴＭＬ解析部３３１は、図５の通番「1」のＣＳＳセレクタによって、行Ｒ１に示すＷｅｂエレメント「<a  class=“download-button”>link</a>」を検出できる。また、ＨＴＭＬ解析部３３１は、図５の通番「4」のＸＰａｔｈによって、行Ｒ４に示すＷｅｂエレメント「<div>Play  Now</div>」を検出できる。
【００５２】
画像解析部３３２は、特徴抽出部３２１が抽出したＷｅｂブラウザ画面の画面情報から、カテゴリ分類部３２が分類したカテゴリに対して予め設定された文字列を含む画像エレメントを、画像処理及び文字列検索を行って抽出する。
【００５３】
図７は、検出対象の画像エレメントの一例を示す図である。本実施の形態では、Ｗｅｂブラウザによって描画された画面において、エッジ検出を代表とする画像処理技術で判別可能な領域を画像エレメントとする。
【００５４】
画像解析部３３２は、ユーザ操作を誘導する操作対象を画像エレメントとして検出するために、まず、既存の画像処理技術によって、Ｗｅｂページのカテゴリごとに予め設定した輪郭と領域サイズとが一致する領域を抽出する。検出する輪郭は、ユーザに対して視覚的に目立たせることで操作を誘導するＷｅｂエレメントに共通する図形である。検出する輪郭の例として、カテゴリごとに説明する。例えば、カテゴリがダウンロードページの場合は、ダウンロードボタンとなる長方形が、検出する輪郭として考えられる。また、カテゴリが動画ページの場合は、動画再生ボタンとなる三角形が、検出する輪郭として考えられる。これらの輪郭は一例であり、検出する輪郭は、これらに限るものではない。
【００５５】
図７に示すように、画像解析部３３２は、Ｗｅｂページのカテゴリごとに予め設定した円形、楕円形、長方形、三角形を示す輪郭と領域サイズが一致する、領域Ｇ１〜Ｇ４を抽出する。
【００５６】
続いて、画像解析部３３２は、抽出した領域を画像として出力し、既存の光学文字認識技術を用いて画像内の文字列を抽出する。画像解析部３３２は、抽出した文字列が、予め設定された第２のキーワードを含む場合には、抽出した画像を、操作対象の画像エレメントとして出力する。第２キーワードは、前述したように、ユーザ操作を誘導するＷｅｂエレメントに描画されている文字列であり、カテゴリごとに設定される。第２キーワードは、第２キーワード記憶部２２に記憶される。例えば、第２キーワードとして、「Download」、「Play  Now」、「Click  Here」が考えられる。
【００５７】
画像解析部３３２は、図７に示すように、「Click  Here」を含む領域Ｇ１、「Play  Now」を含む領域Ｇ２、「Download」を含む領域Ｇ３を、操作対象の画像エレメントとして出力する。また、画像解析部３３２は、図７に示すように、動画再生ボタンとなる三角形を含む領域Ｇ４を、操作対象の画像エレメントとして出力する。
【００５８】
図８は、図２に示す画像解析部３３２が出力する画像エレメントの一例を示す図である。図８に示すように、画像解析部３３２は、画像エレメントの画像領域を表す情報である、横（座標）、縦（座標）、幅（領域サイズ）及び高さ（領域サイズ）を、検出に使用した第２キーワードに対応付けて出力する。画像エレメントの画像領域を表す情報は、これらの項目に限るものではない。
【００５９】
例えば、図８に示すように、画像解析部３３２は、「Download」を含む領域Ｇ３（図７参照）の画像エレメントの情報として、横「100」、縦「300」、幅「300」及び高さ「600」と、第２キーワード「Download」とを出力する。
【００６０】
操作対象集約部３３３は、ＨＴＭＬ解析部３３１が抽出したＷｅｂエレメントと、画像解析部３３２が抽出した画像エレメントとを集約して操作対象として決定する。例えば、操作対象集約部３３３は、抽出したＷｅｂエレメントと画像エレメントとの重複を排除して操作対象を出力する。
【００６１】
この場合、まず、操作対象集約部３３３は、Ｗｅｂエレメントの領域と画像エレメント領域とを比較し、領域が小さい方の面積に占める重複領域の面積の割合を重複率とする。操作対象集約部３３３は、重複率が予め設定された閾値を超えている場合に、Ｗｅｂエレメントと画像エレメントとが同一の操作対象であると判定する。そして、操作対象集約部３３３は、重複するＷｅｂエレメント及び画像エレメントから画像エレメントを排除し、Ｗｅｂエレメントのみを操作対象として出力する。
【００６２】
図９は、重複するＷｅｂエレメントと画像エレメントとの一例を示す図である。例えば、重複率の閾値値を７０％と設定する。図９では、画像エレメント１（座標（横=110px，縦=190px）,幅=600px，高さ=110  px）とＷｅｂエレメント１（座標（横=100px,  縦=200  px），幅=500px，高さ=100px）とが重複する場合について説明する。この場合、画像エレメント１とＷｅｂエレメント１とが重複する面積は40000pxである。
【００６３】
この結果、操作対象集約部３３３は、重複率が、領域が小さいＷｅｂエレメント１の面積（50000px）の８０％であると計算し、画像エレメント１とＷｅｂエレメント１とが重複していると判定する。そして、操作対象集約部３３３は、画像エレメント１とＷｅｂエレメント１とから画像エレメント１を排除し、Ｗｅｂエレメント１を操作対象として出力する。
【００６４】
［操作実行部］
次に、操作実行部３４の処理について説明する。操作実行部３４は、操作対象検出部３３が検出した操作対象に対して操作を実行する。操作実行部３４は、解析対象のＷｅｂページに示された操作対象に対して操作を行う。操作実行部３４が実行する操作は、操作対象検出部３３が検出した操作対象に対するクリック、ブラウザ履歴の戻る操作などが考えられる。操作は、これらに限るものではない。
【００６５】
［関数フック部］
次に、関数フック部３５について説明する。関数フック部３５は、操作実行部３４による操作が起因となるＷｅｂページの変化を検出するために、関数上書部３５１（上書部）と、関数呼出検出部３５２（第３の検出部）とを有する。
【００６６】
関数上書部３５１は、解析対象のＷｅｂページの読み込み開始時に、ＪａｖａＳｃｒｉｐｔ関数を上書きして、ＪａｖａＳｃｒｉｐｔ関数に入力された引数を関数呼出検出部３５２に通知する処理を追加する。
【００６７】
関数フック部３５は、ユーザ操作を誘導する操作イベントに関わるＪａｖａＳｃｒｉｐｔ関数に、その関数が呼ばれた瞬間に入力された引数をブラウザ拡張機能に対して通知する処理を挿入するＪａｖａＳｃｒｉｐｔソースコードを予め作成する。関数上書部３５１は、解析対象のＷｅｂページのＨＴＭＬソースコードに、ＪａｖａＳｃｒｉｐｔ関数を上書きする。
【００６８】
図１０は、ＪａｖａＳｃｒｉｐｔ関数の上書き処理の挿入の一例を示す図である。図１０の枠内に示すように、作成されたＪａｖａＳｃｒｉｐｔソースコードは、ＷｅｂブラウザがＷｅｂページ読み込みを行うたびに、読み込み開始時に、ＷｅｂページのＨＴＭＬソースコードの先頭にＳｃｒｉｐｔタグとして挿入して、ブラウザの拡張機能を追加する。なお、ユーザ操作を誘導する操作イベントに関わるＪａｖａＳｃｒｉｐｔ関数として、ａｌｅｒｔ関数、ｃｏｎｆｉｒｍ関数、或いは、ブラウザ拡張機能をインストールする関数などが考えられるが、これらの項目に限るものではない。
【００６９】
関数呼出検出部３５２は、通知を受けて、ユーザ操作を誘導する操作イベントに関わるＪａｖａＳｃｒｉｐｔ関数が呼び出された時にＪａｖａＳｃｒｉｐｔ関数に入力された引数を取得して、操作イベントを検出する。言い換えると、関数呼出検出部３５２は、上書きしたＪａｖａＳｃｒｉｐｔ関数が呼び出されたことを検出する。上書きしたＪａｖａＳｃｒｉｐｔ関数が呼び出されるとは、ユーザ操作を誘導する操作イベントが発生した場合であると言える。
【００７０】
したがって、関数フック部３５は、関数呼出検出部３５２の検出処理によって、ユーザ操作を誘導する操作イベントの発生を検出することができる。すなわち、関数フック部３５は、操作実行部３４による操作が起因となるＷｅｂページの変化を検出する。後述するように、ログ出力部３６によるログデータには、ユーザ操作を誘導する操作イベントの発生と、この際の、ユーザ操作を誘導する操作イベントに導いた操作内容や操作対象とが対応付けて記録される。
【００７１】
［ログ出力部］
次に、ログ出力部３６について説明する。ログ出力部３６は、通信記録部３６１、イベント記録部３６２及び画像キャプチャ記録部３６３を有する。
【００７２】
通信記録部３６１は、関数フック部３５による操作イベントの検出と連動し、Ｗｅｂページ解析のための操作実行部３４による操作によって発生した通信を記録する。イベント記録部３６２は、関数フック部３５による操作イベントの検出と連動し、関数フック部３５において検出された操作イベントを記録する。そして、画像キャプチャ記録部３６３は、関数フック部３５による操作イベントの検出と連動し、操作実行部３４による操作によって遷移したＷｅｂブラウザ画面を記録する。ログ出力部３６は、通信記録部３６１が記録した通信、イベント記録部３６２が記録したイベント、及び、画像キャプチャ記録部３６３が記録したＷｅｂブラウザ画面を、前記解析対象のＷｅｂページのＵＲＬと対応付けて示したログデータを出力する。
【００７３】
図１１は、図２に示す関数フック部３５が検出した操作イベント、操作対象及び操作の例を示す図である。図１１に示すように、操作実行部３４による操作対象への操作実行中に、関数呼出検出部３５２が操作イベントを検出した場合、イベント記録部３６２は、操作実行部３４が直前に実施した操作と、操作対象と、操作を実行したＷｅｂページのＵＲＬと、を抽出する。
【００７４】
図１１に示すように、操作イベントは、操作実行部３４による操作が起因となり発生したＷｅｂブラウザのイベントであり、ファイルダウンロード、ブラウザ拡張機能のインストール及びアラートダイアログの表示が考えられる。操作イベントは、これらの項目に限るものではない。また、操作対象の項目には、操作実行部３４が操作を行った対象を示す情報が記録される。操作対象の項目には、例えば、操作対象の座標、領域サイズ及び実際の画像が記録される。また、操作の項目には、クリック、戻る操作等の各種操作が記録される。また、ＵＲＬの項目には、操作実行部３４が操作を実行したＷｅｂページのＵＲＬが記録される。
【００７５】
［繰り返し処理］
ここで、解析装置４では、解析対象のＷｅｂページが切り替わるごとに、カテゴリ分類部３２がカテゴリ分類を行う。そして、解析装置４では、操作対象検出部３３が、Ｗｅｂページのカテゴリが分類されると、Ｗｅｂページから操作対象を検出し、操作実行部３４が各操作対象に対して、順次操作を実行する。そして、解析装置４では、操作対象に対する操作及びこの操作までに要する各処理は、所定の終了条件に達するまで、繰り返し再帰的に実行される。そして、解析装置４では、操作が実行されるごとに、操作実行部３４による操作対象への操作の実行後に発生する操作イベントが検出される。
【００７６】
ここで、解析装置４における繰り返し処理について説明する。まず、ＵＲＬ入力部３１により入力された、Ｗｅｂページの解析開始時に最初に到達するページを、ルートページとする。解析装置４では、操作実行部３４による操作後にＷｅｂページの変化があった場合は、変化後のページに対して再帰的にＷｅｂページのカテゴリ分類、操作対象の検出、Ｗｅｂページの操作を繰り返す。Ｗｅｂページの変化は、ＨＴＭＬ構造の変化や異なるＷｅｂページへの遷移が考えられるが、これらの項目に限るものではない。
【００７７】
遷移前のＷｅｂページに移動する条件として、例えば、予め設定された再帰回数を超えること、或いは、操作対象が検出されないことが設定される。このため、解析装置４は、再帰処理の途中で予め設定された再帰回数を超えた場合や、操作対象が検出されなかった場合は、遷移前のＷｅｂページに移動し、操作を実行していない操作対象に操作を行う。そして、終了条件として、例えば、ルートページ内の全ての操作対象に対する操作が完了したことが設定される。このため、解析装置４は、ルートページ内の全ての操作対象に対する操作が完了した場合、Ｗｅｂページの解析を終了する。
【００７８】
図１２は、図２に示す解析装置４における操作対象への操作を含む繰り返し処理を説明する図である。例えば、図１２では、ルートページ「root」が、最上位に示されている。このルートページ「root」には、操作対象として「Download」ボタン、「Play」ボタン、「Click」ボタンがある。
【００７９】
操作実行部３４は、「Download」ボタンを操作すると、Ｗｅｂページ「1」に移動する。この場合、このＷｅｂページ「1」に対し、カテゴリ分類部３２がカテゴリの分類を行い、操作対象検出部３３が操作対象の検出を行う。そして、操作実行部３４は、Ｗｅｂページ「1」の操作対象に順次操作を実行する。この結果、Ｗｅｂページ「1-1」に移動する。続いて、Ｗｅｂページ「1-1」に対して、カテゴリ分類部３２がカテゴリの分類を行い、操作対象検出部３３が操作対象の検出を行い、操作実行部３４が、操作対象の一方に操作を実行する。
【００８０】
ここで、再帰回数（繰り返し回数）を超えた場合には、解析装置４では、遷移前のＷｅｂページ「1」に移動し、Ｗｅｂページ「1」の操作対象の他方に対する操作を実行する。そして、解析装置４は、Ｗｅｂページ「1-2」に移動した場合にも、同様に、カテゴリの分類、操作対象の検出、操作の実行を行う。
【００８１】
続いて、解析装置４では、Ｗｅｂページ「1」の全ての操作対象について処理が終了した場合には、ルートページ「root」に戻り、「Play」ボタンを操作して、遷移したＷｅｂページ「2」に対し、同様に、カテゴリの分類、操作対象の検出、操作の実行を行う。このように、解析装置４は、ルートページ内の全ての操作対象に対する操作が完了するまで、カテゴリの分類、操作対象の検出、操作の実行を行う。すなわち、カテゴリ分類部３２、操作対象検出部３３、操作実行部３４及び関数フック部３５は、予め設定された終了条件に達した場合に処理を終了する。そして、ルートページ内の全ての操作対象に対する操作が完了すると、このＷｅｂページの解析を終了する。
【００８２】
［実施例］
図１３は、実施の形態を適用したブラウザ自動操作システムの構成例を説明する図である。図１３に示すように、本実施の形態に係る解析装置４の実施例として、例えば、ＷｅｂブラウザＭ１を操作するソフトウェアと、ブラウザ拡張機能によって実装した機能とを設けた構成がある。
【００８３】
カテゴリ分類部３２、操作対象検出部３３、操作実行部３４及び画像キャプチャ記録部３６３については、ブラウザ操作を自動化するソフトウェアＷ１を用いて、予めＷｅｂブラウザを操作する処理が設定される。また、関数フック部３５、通信記録部３６１及びイベント記録部３６２については、ブラウザ拡張機能Ｗ２によって実装される。
【００８４】
この実施例のように、Ｗｅｂブラウザを操作する機能と、ブラウザ拡張機能によって実装した機能との双方がログ記録用のページにログの読み込みと書き込みとを行うことによって、実施した操作と、操作が起因となり発生した操作イベントとの対応付けが可能になる。そして、ログ出力部３６が、ログデータを出力する。なお、ブラウザ操作を自動化するソフトウェアは、ブラウザ操作自動化ツールＳｅｌｅｎｉｕｍが考えられる。ブラウザ操作を自動化するソフトウェアは、これに限るものではない。
【００８５】
すなわち、本実施例のように、Ｗｅｂブラウザの操作処理を記述可能なソフトウェアを適用することによって、操作設定の簡易化による開発コストの削減、ファイル入出力操作、及び、外部ツールとの連携が可能になる。そして、本実施例のように、上記のソフトウェアで取得不可能な通信ログやＷｅｂブラウザ上の操作イベントを取得するためにＷｅｂブラウザの拡張機能を適用する。これによって、本実施例では、ブラウザ操作を自動化するソフトウェアとブラウザ拡張機能とが相互に通信を行うことによって、ユーザ操作を誘導する攻撃を観測した際に、攻撃の内容、起点となった操作対象、それに対する操作を特定することが可能になる。
【００８６】
［解析処理の処理手順］
次に、解析装置４が実行する解析処理について説明する。図１４は、実施の形態に係る解析処理の処理手順を示すフローチャートである。
【００８７】
図１４に示すように、まず、ＵＲＬ入力部３１が、解析対象のＷｅｂページのＵＲＬの入力を受け付けると（ステップＳ１）、図１３において示したブラウザ自動操作システムを用いてＷｅｂブラウザを起動し（ステップＳ２）、Ｗｅｂページの解析処理を開始する。そして、関数フック部３５では、関数上書部３５１が、解析対象のＷｅｂページのＨＴＭＬソースコードに、ＪａｖａＳｃｒｉｐｔ関数を上書きする関数上書処理を行う（ステップＳ３）。
【００８８】
そして、カテゴリ分類部３２は、解析対象のＷｅｂページのＵＲＬにアクセスし、該解析対象のＷｅｂページをカテゴリに分類するカテゴリ分類処理を行う（ステップＳ４）。操作対象検出部３３は、カテゴリ分類部３２が分類したカテゴリに対して予め設定された検出方法にしたがい、解析対象のＷｅｂページから、ユーザ操作の操作対象を検出する（ステップＳ５）。ステップＳ５では、ＨＴＭＬ解析部３３１が、ＨＴＭＬソースコードから、所定の文字列を含むＷｅｂエレメントを、文字列検索を行って抽出し、画像解析部３３２が、Ｗｅｂブラウザ画面の画面情報から、カテゴリに対して予め設定された文字列を含む画像エレメントを、画像処理及び文字列検索を行って抽出する。そして、操作対象集約部３３３が、重複するＷｅｂエレメントと画像エレメントの除外を行う。
【００８９】
そして、解析装置４は、図１２で説明したように、操作対象への操作を行い、操作後にＷｅｂページの変化があった場合は、変化後のページに対して再帰的にＷｅｂページのカテゴリ分類、操作対象の検出、Ｗｅｂページの操作を繰り返す。
【００９０】
まず、操作実行部３４は、解析対象のＷｅｂページについて操作対象検出部３３が検出した操作対象のうち、未操作の操作対象が存在するか否かを判定する（ステップＳ６）。操作実行部３４は、未操作の操作対象が存在すると判定した場合（ステップＳ６：Ｙｅｓ）、操作対象に対して操作を実行する（ステップＳ７）。そして、関数フック部３５は、関数呼出検出部３５２による検出において、操作実行部３４による操作が起因となるＷｅｂページの変化が発生するか否かを判定する（ステップＳ８）。
【００９１】
関数フック部３５が、Ｗｅｂページの変化が発生したと判定した場合（ステップＳ８：Ｙｅｓ）、操作実行部３４は、終了条件に一致するか否かを判定する（ステップＳ９）。終了条件は、例えば、ルートページ内の全ての操作対象に対する操作が完了した場合である。操作実行部３４は、終了条件に一致しないと判定した場合（ステップＳ９：Ｎｏ）、解析対象のウィンドウを切り替え（ステップＳ１０）、ステップＳ３に進む。この場合、関数上書部３５１が、切り替えたＷｅｂページのＨＴＭＬソースコードに、ＪａｖａＳｃｒｉｐｔ関数を上書きする関数上書処理を行う。
【００９２】
一方、関数フック部３５が、Ｗｅｂページの変化が発生しないと判定した場合（ステップＳ８：Ｎｏ）、または、操作実行部３４が、終了条件に一致すると判定した場合（ステップＳ９：Ｙｅｓ）、ステップＳ６に戻る。
【００９３】
操作実行部３４は、未操作の操作対象が存在しないと判定した場合（ステップＳ６：Ｎｏ）、現在のページがルートページか否かを判定する（ステップＳ１１）。操作実行部３４は、現在のページがルートページでないと判定した場合（ステップＳ１１：Ｎｏ）、切り替え前のウィンドウに戻る（ステップＳ１２）。なお、ステップＳ６，Ｓ１１，Ｓ１２の処理は、ページが、ルートページに戻るまで繰り返される。
【００９４】
そして、操作実行部３４が、現在のページがルートページであると判定した場合（ステップＳ１１：Ｙｅｓ）、ログ出力部３６は、関数フック部３５が検出した操作イベントと、操作対象検出部３３が検出した操作対象とを対応付けて（ステップＳ１３）、対応付けた操作イベントと操作対象とを含むログデータを出力して（ステップＳ１４）、処理を終了する。なお、ログデータは、操作イベントと操作対象ととともに、操作実行部３４による操作によって遷移したＷｅｂブラウザ画面を、解析対象のＷｅｂページのＵＲＬと対応付けて示したデータである。
【００９５】
［カテゴリ分類処理］
次に、カテゴリ分類処理（ステップＳ４）について説明する。図１５は、図１４に示すカテゴリ分類処理の処理手順を示すフローチャートである。
【００９６】
図１５に示すように、カテゴリ分類部３２では、特徴抽出部３２１は、解析対象のＷｅｂページのＵＲＬにアクセスし、アクセスしたＷｅｂページの通信先情報、ＨＴＭＬソースコード情報或いはＷｅｂブラウザ画面の画面情報を特徴情報として抽出する（ステップＳ２１）。続いて、カテゴリ決定部３２２は、Ｗｅｂページのカテゴリを決定するために、所定の特徴抽出部３２１が抽出した特徴量を基に、所定の分類ルールを用いる。例えば、カテゴリ決定部３２２は、以下のような判定ルールを用いて、Ｗｅｂページのカテゴリを決定する。
【００９７】
まず、カテゴリ決定部３２２は、特徴情報が、既知のソーシャルメディアサイトのドメイン名と一致するか否かを判定する（ステップＳ２２）。カテゴリ決定部３２２は、特徴情報が、既知のソーシャルメディアサイトのドメイン名と一致すると判定した場合（ステップＳ２２：Ｙｅｓ）、このＷｅｂページのカテゴリを、ソーシャルメディアページに分類して（ステップＳ２３）、処理を終了する。
【００９８】
また、カテゴリ決定部３２２は、特徴情報が、既知のソーシャルメディアサイトのドメイン名と一致しないと判定した場合（ステップＳ２２：Ｎｏ）、特徴情報として抽出したＨＴＭＬソースコードにｖｉｄｅｏタグが存在するか否かを判定する（ステップＳ２４）。
【００９９】
カテゴリ決定部３２２は、特徴情報として抽出したＨＴＭＬソースコードにｖｉｄｅｏタグが存在すると判定した場合（ステップＳ２４：Ｙｅｓ）、このＷｅｂページのカテゴリを、動画ページに分類して（ステップＳ２５）、処理を終了する。
【０１００】
一方、カテゴリ決定部３２２は、特徴情報として抽出したＨＴＭＬソースコードにｖｉｄｅｏタグが存在しないと判定した場合（ステップＳ２４：Ｎｏ）、特徴情報として抽出したＨＴＭＬソースコードに中間ページを表す文字列が存在するか否かを判定する（ステップＳ２６）。中間ページを表す文字列は、例えば、「Wait  5  seconds」や「Skip  Ad」等である。カテゴリ決定部３２２は、特徴情報として抽出したＨＴＭＬソースコードに中間ページを表す文字列が存在すると判定した場合（ステップＳ２６：Ｙｅｓ）、このＷｅｂページのカテゴリを、中間ページに分類して（ステップＳ２７）、処理を終了する。
【０１０１】
カテゴリ決定部３２２は、特徴情報として抽出したＨＴＭＬソースコードに中間ページを表す文字列が存在しないと判定した場合（ステップＳ２６：Ｎｏ）、Ｗｅｂページの高さが予め設定された閾値以上であるか否かを判定する（ステップＳ２８）。カテゴリ決定部３２２は、Ｗｅｂページの高さが予め設定された閾値以上であると判定した場合（ステップＳ２８：Ｙｅｓ）、このＷｅｂページのカテゴリを、ダウンロードページに分類して（ステップＳ２９）、処理を終了する。また、カテゴリ決定部３２２は、Ｗｅｂページの高さが予め設定された閾値以上でないと判定した場合（ステップＳ２８：Ｎｏ）、このＷｅｂページのカテゴリを、基本ページに分類して（ステップＳ３０）、処理を終了する。
【０１０２】
［実施の形態の効果］
このように、本実施の形態に係る解析装置４は、対象のＷｅｂページのＵＲＬにアクセスし、該解析対象のＷｅｂページを、Ｗｅｂページの誘導方法を表す指標であるカテゴリに分類する。そして、解析装置４は、分類したカテゴリに対して予め設定された検出方法にしたがい、解析対象のＷｅｂページから、ユーザ操作の操作対象を検出する。そして、解析装置４は、検出した操作対象に対して操作を実行し、操作対象への操作の実行後に発生する操作イベントを検出する。そして、解析装置４は、操作によって発生した通信、検出された操作イベント、及び、操作によって遷移したＷｅｂブラウザ画面を、解析対象のＷｅｂページのＵＲＬと対応付けて示したログデータを出力する。
【０１０３】
したがって、解析装置４は、対象のＷｅｂページのＵＲＬにアクセスし、該解析対象のＷｅｂページを、Ｗｅｂページの誘導方法を表す指標であるカテゴリに分類することによって、Ｗｅｂページ内に存在する多数の操作可能な領域から、操作対象を適切に検出することができる。そして、解析装置４は、検出された操作対象に対して実際に操作を行い、操作ごとにユーザ操作を誘導する操作イベントの発生の有無を検出する。この結果、解析装置４によれば、攻撃の起点となる操作と、その操作対象とを、正確かつ効率的に特定することができる。
【０１０４】
以上の処理を行うことによって、解析装置４は、Ｗｅｂページを介してユーザ操作を誘導する攻撃を観測することができる。また、解析装置４は、観測結果としてログデータを出力する。このため、判定装置３では、ログデータを用いて、ユーザ操作を攻撃まで誘導する起点となった操作と、その操作対象とを特定することが可能になる。
【０１０５】
また、解析装置４は、カテゴリ分類部３２が、解析対象のＷｅｂページのＵＲＬに実際にアクセスし、アクセスしたＷｅｂページの通信先情報、ＨＴＭＬソースコード情報或いはＷｅｂブラウザ画面の画面情報を特徴情報として抽出する。そして、解析装置４では、抽出した特徴量を基にＷｅｂページを分析することによって、ユーザ操作を誘導する攻撃の起点となる操作対象の検出方法と、それに対して実施する操作を決定するための、Ｗｅｂカテゴリを決定することが可能になる。
【０１０６】
また、解析装置４では、操作対象検出部３３が、抽出したＨＴＭＬソースコードから、カテゴリに対して予め設定された文字列を含むＷｅｂエレメントを、文字列検索を行って抽出する。そして、操作対象検出部３３が、抽出したＷｅｂブラウザ画面の画面情報から、カテゴリに対して予め設定された文字列を含む画像エレメントを、画像処理及び文字列検索を行って抽出する。すなわち、解析装置４では、分類されたカテゴリごとに操作対象の検出方法を変更することによって、Ｗｅｂページ内に存在する多数の操作可能な領域から、ユーザ操作を誘導する攻撃の起点となる可能性の高い操作対象を、適切に抽出することができる。また、解析装置４では、操作対象検出部３３が、抽出したＷｅｂエレメントと画像エレメントとを集約して操作対象として決定するため、操作対象の重複を回避することができる。この結果、解析装置４によれば、攻撃を誘発する可能性の高い操作対象に対する操作を効率的に実施することができ、解析時間を削減することができる。
【０１０７】
また、解析装置４では、抽出した操作対象に対して順次操作を実行し、操作の実行に対応させて、操作が起因となるＷｅｂページの変化を検出している。そして、解析装置４では、Ｗｅｂページの分類と操作対象の検出と操作対象への操作の実行を繰り返すことによって、攻撃に繋がる操作内容や操作対象を適切に観測することができる。また、解析装置４では、繰り返し処理によって、解析段階に合わせた最適な操作を選択することができるため、複数の操作を誘導する複雑な攻撃の誘発を可能にし、これらの複雑な攻撃に至るまでのそれぞれの経緯を正確に観測することができる。
【０１０８】
また、解析装置４では、関数フック部３５が、解析対象のＷｅｂページの読み込み開始時に、ＪａｖａＳｃｒｉｐｔ関数を上書きして、ＪａｖａＳｃｒｉｐｔ関数に入力された引数を通知する処理を追加する。そして、関数フック部３５は、通知を受けて、ユーザ操作を誘導する操作イベントに関わるＪａｖａＳｃｒｉｐｔ関数が呼び出された時にＪａｖａＳｃｒｉｐｔ関数に入力された引数を取得して、操作イベントを検出する。すなわち、関数フック部３５は、ＪａｖａＳｃｒｉｐｔ関数に入力された引数を、その関数が呼ばれた瞬間に取得可能にすることによって、ユーザ操作を誘導する操作イベントに係る可能性がある関数が、攻撃目的に使用されたかを分析することができる。
【０１０９】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１１０】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１１１】
［プログラム］
図１６は、プログラムが実行されることにより、解析装置４が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【０１１２】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【０１１３】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、解析装置４の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、解析装置４における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【０１１４】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【０１１５】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【０１１６】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【０１１７】
１  解析システム
２  ネットワーク
３  判定装置
４  解析装置
１０  通信部
２０  記憶部
２１  第１キーワード記憶部
２２  第２キーワード記憶部
２３  ログデータ記憶部
３０  制御部
３１  ＵＲＬ入力部
３２  カテゴリ分類部
３３  操作対象検出部
３４  操作実行部
３５  関数フック部
３６  ログ出力部
３２１  特徴抽出部
３２２  カテゴリ決定部
３３１  ＨＴＭＬ解析部
３３２  画像解析部
３３３  操作対象集約部
３５１  関数上書部
３５２  関数呼出検出部
３６１  通信記録部
３６２  イベント記録部
３６３  画像キャプチャ記録部
【図１】
2019142398.tif 000003
【図２】
2019142398.tif 000004
【図３】
2019142398.tif 000005
【図４】
2019142398.tif 000006
【図５】
2019142398.tif 000007
【図６】
2019142398.tif 000008
【図７】
2019142398.tif 000009
【図８】
2019142398.tif 000010
【図９】
2019142398.tif 000011
【図１０】
2019142398.tif 000012
【図１１】
2019142398.tif 000013
【図１２】
2019142398.tif 000014
【図１３】
2019142398.tif 000015
【図１４】
2019142398.tif 000016
【図１５】
2019142398.tif 000017
【図１６】
2019142398.tif 000018
【国際調査報告】
2019142398.tif 000019
2019142398.tif 000020
2019142398.tif 000021