(57)【要約】  アクセス分類装置（１０）は、木構築部（１３）とノード対応付け部（１４）と類似度算出部（１５）と分類部（１６）とを有する。木構築部（１３）は、少なくとも第１の宛先及び第２の宛先をノードとし、該ノードに対応するコンテンツの情報を該ノードに付加し、第１の宛先から第２の宛先へ一連のアクセスを転送する命令をエッジとする複数の木を作成する。ノード対応付け部（１４）は、複数の木について、木の各々の局所的な構造の類似性を基に複数の木のノード同士を対応付ける。類似度算出部（１５）は、対応付けられたノード同士の類似度をコンテンツの情報に基づいて算出し、該算出したノード同士の類似度を用いて複数の木の類似度を算出する。分類部（１６）は、算出された類似度に基づいて、アクセスを特徴が類似する集合に分類する分類する。
2017217163.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１の宛先及び第２の宛先をノードとし、該ノードに対応するコンテンツの情報を該ノードに付加し、前記第１の宛先から前記第２の宛先へアクセスを転送する命令をエッジとする複数の木を構築する木構築部と、
前記木構築部によって構築された複数の木について、前記木の各々の局所的な構造の類似性を基に前記複数の木のノード同士を対応付けるノード対応付け部と、
前記複数の木において対応付けられたノード同士の類似度を、これらのノードに付加されたコンテンツの情報に基づいて算出し、該算出した前記対応付けられたノード同士の類似度を用いて前記複数の木の類似度を算出する類似度算出部と、
前記類似度算出部によって算出された類似度に基づいて、前記アクセスを、特徴が類似する集合に分類する分類部と、
を有することを特徴とするアクセス分類装置。
【請求項２】
前記木構築部は、構築した前記複数の木から部分木をそれぞれ抽出し、
前記ノード対応付け部は、前記複数の木について前記木構築部が抽出した部分木のうち、前記エッジが一致する複数の部分木を特定し、該特定した前記複数の部分木における前記ノードの対応関係によって、前記複数の木におけるノードの対応関係を決定することを特徴とする請求項１に記載のアクセス分類装置。
【請求項３】
前記ノード対応付け部は、前記複数の木について、前記ノードに接続する前記エッジの一致度が高い組み合わせのノードを対応付けることを特徴とする請求項１に記載のアクセス分類装置。
【請求項４】
前記分類部は、前記類似度算出部によって算出された前記類似度を用いて、前記複数の木の特徴量の空間での内積値を算出し、前記アクセスを分類することを特徴とする請求項１〜３のいずれか一つに記載のアクセス分類装置。
【請求項５】
前記類似度算出部によって算出された前記類似度に基づき、前記複数の木を、類似度の高い複数の木により構成される複数の集合に分類し、各集合の特徴を表す部分木を、代表木として作成する代表木作成部と、
をさらに有し、
前記ノード対応付け部は、前記木構築部によって構築された宛先へのアクセスに対応する木と、前記代表木とのノード同士を対応付け、
前記類似度算出部は、前記宛先へのアクセスに対応する木と、前記代表木との類似度を算出し、
前記分類部は、前記代表木と前記宛先へのアクセスに対応する木との類似度に基づき、前記アクセスを分類することを特徴とする請求項１または２に記載のアクセス分類装置。
【請求項６】
入力されたアクセスを、特徴が類似する集合に分類するアクセス分類装置が実行するアクセス分類方法であって、
少なくとも第１の宛先及び第２の宛先をノードとし、該ノードに対応するコンテンツの情報を該ノードに付加し、前記第１の宛先から前記第２の宛先へアクセスを転送する命令をエッジとする複数の木を構築する木構築工程と、
前記木構築工程において構築された複数の木について、前記木の各々の局所的な構造の類似性を基に前記複数の木のノード同士を対応付けるノード対応付け工程と、
前記複数の木において対応付けられたノード同士の類似度を、これらのノードに付加されたコンテンツの情報に基づいて算出し、該算出した前記対応付けられたノード同士の類似度を用いて前記複数の木の類似度を算出する類似度算出工程と、
前記類似度算出工程において算出された類似度に基づいて、前記アクセスを、特徴が類似する集合に分類する分類工程と、
を含んだことを特徴とするアクセス分類方法。
【請求項７】
少なくとも第１の宛先及び第２の宛先をノードとし、該ノードに対応するコンテンツの情報を該ノードに付加し、前記第１の宛先から前記第２の宛先へアクセスを転送する命令をエッジとする複数の木を構築する木構築ステップと、
前記木構築ステップにおいて構築された複数の木について、前記木の各々の局所的な構造の類似性を基に前記複数の木のノード同士を対応付けるノード対応付けステップと、
前記複数の木において対応付けられたノード同士の類似度を、これらのノードに付加されたコンテンツの情報に基づいて算出し、該算出した前記対応付けられたノード同士の類似度を用いて前記複数の木の類似度を算出する類似度算出ステップと、
前記類似度算出ステップにおいて算出された類似度に基づいて、前記アクセスを、特徴が類似する集合に分類する分類ステップと、
をコンピュータに実行させるためのアクセス分類プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス分類装置、アクセス分類方法及びアクセス分類プログラムに関する。
【背景技術】
【０００２】
従来、ユーザ端末がアクセスするｗｅｂサイトの中から、マルウェアを感染させる悪性ｗｅｂサイトを識別する手法である悪性ｗｅｂサイト識別手法が存在する。この様な悪性ｗｅｂサイト識別手法は、ホスト上の挙動に基づく手法とコンテンツの特徴に基づく手法とに分類される。【０００３】
ホスト上の挙動に基づく手法は、ｗｅｂサーバ等のサーバから取得されたＨＴＭＬ（HyperText  Markup  Language）やJavaScript（登録商標）等のコンテンツを実行し、その時のホスト上での挙動から脆弱性に対する攻撃を検知することにより、悪性ｗｅｂサイトを識別する手法である。【０００４】
これに対し、コンテンツの特徴に基づく手法は、サーバからコンテンツの取得を行い、該コンテンツのコード解析を行い、悪性なコードに特徴的に出現する関数や文字列等の特徴、ドメインやＵＲＬ（Uniform  Resource  Locator）に関連する情報、及び、リダイレクト（転送）の情報をもとに、機械学習を適用して、悪性ｗｅｂサイトを識別する手法である。【０００５】
以下、コンテンツの特徴に基づく手法による悪性ｗｅｂサイトの識別に係る従来技術について説明する。コンテンツの特徴に基づく手法による悪性ｗｅｂサイト識別手法には、単一ページから取得されたコンテンツの特徴を用いて識別する手法と、ｗｅｂサイトのリダイレクトによって発生した複数ページへのアクセスから特徴を抽出して識別する手法とがある。【０００６】
前者の識別手法では、コンテンツ中のJavaScriptを解析して識別する手法が多く提案されている。これらの手法の中には、例えば、スクリプトの行数や文字数、スクリプト中のキーワードの出現回数を用いて特徴ベクトルを記述し、機械学習の手法を用いて識別する手法（非特許文献１）がある。或いは、for文やwhile文中での処理を抽出し、特徴ベクトルを作成して識別する手法（非特許文献２）がある。さらに、JavaScriptから作成された抽象構文木のノードタイプから構成される系列を作成し、該系列の類似度によって識別する手法（非特許文献３）等がある。【０００７】
また、JavaScript以外にも、ＨＴＭＬやＵＲＬ及びホストの情報を利用する手法も存在する。例えば、ＨＴＭＬを利用する手法には、iframeやscriptタグの出現回数、タグのサイズ特徴量を抽出して識別する手法（非特許文献４）がある。また、ＵＲＬ及びホストの情報を利用する手法には、ＵＲＬに含まれるキーワード、ＤＮＳ（Domain  Name  System）問合せの結果、ＩＰ（Internet  Protocol）アドレスに紐付く地理的情報を用いて、ＵＲＬの悪性判定を行う手法（非特許文献５）がある。【０００８】
そして、JavaScript、ＨＴＭＬ、ＵＲＬ及びホストの各情報から悪性判定を行う識別器をそれぞれ構築し、複数の識別器の判定を総合してｗｅｂサイトの悪性判定を行う手法（非特許文献６）も存在する。あるいは、同一のページに異なる時刻にアクセスした際に取得されるコンテンツから差分を抽出し、該差分を基に悪性判定を行う手法（非特許文献７）も提案されている。【０００９】
上記以外にも、転送により発生した複数回のｗｅｂサイトへのアクセスを基に識別を行う手法では、さまざまな観点から特徴量を抽出して悪性ｗｅｂサイトの識別を行っている。例えば、Matsunakaらの手法（非特許文献８）では、実行ファイルのダウンロード時におけるＨＴＴＰ（HyperText  Transfer  Protocol）ヘッダや、ダウンロード以前に取得されたコンテンツにダウンロードを示す情報がないこと等を根拠として、脆弱性への攻撃によって発生した転送が検知される。【００１０】
また、Stringhiniらの手法（非特許文献９）では、各ユーザが自動転送によってアクセスした一連のページの時系列から、最終ページが同一のアクセス群を作成した後、それらのアクセス群から、ＩＰアドレス数やリダイレクト数等の特徴ベクトルを作成し、悪性ｗｅｂサイトを識別する。さらに、Rafiqueらの手法（非特許文献１０）では、リダイレクトによってアクセスしたページの系列からマルウェアのダウンロードに必須な部分を、系列中の複数のページへ個別にアクセスすることによって抽出し、シグネチャを作成することで、悪性ｗｅｂサイトの識別を行っている。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】Peter  Likarish,  Eunjin  Jung,  and  Insoon  Jo.,  “Obfuscated  Malicious  Javascript  Detection  using  Classification  Techniques.”,  IEEE  4th  International  Conference  on  Malicious  and  Unwanted  Software  (MALWARE),  2009.
【非特許文献２】Charlie  Curtsinger,  et  al.,  “ZOZZLE:  Fast  and  Precise  In-Browser  JavaScript  Malware  Detection.”,  USENIX  Security  Symposium,  2011.
【非特許文献３】Alexandros  Kapravelos,  et  al.,  “Revolver:  An  Automated  Approach  to  the  Detection  of  Evasive  Web-based  Malware.”,  USENIX  Security,  2013.
【非特許文献４】Christian  Seifert,  Ian  Welch,  and  Peter  Komisarczuk.,  “Identification  of  Malicious  Web  Pages  with  Static  Heuristics.”,  IEEE  Telecommunication  Networks  and  Applications  Conference,  2008.
【非特許文献５】Justin  Ma,  et  al.,  “Beyond  Blacklists:  Learning  to  Detect  Malicious  Web  Sites  from  Suspicious  URLs.”,  Proceedings  of  the  15th  ACM  SIGKDD  international  conference  on  Knowledge  discovery  and  data  mining,  2009.
【非特許文献６】Davide  Canali,  et  al.,  “Prophiler:  A  Fast  Filter  for  the  Large-Scale  Detection  of  Malicious  Web  Pages.”,  Proceedings  of  the  20th  international  conference  on  World  wide  web,  2011.
【非特許文献７】Kevin  Borgolte,  Christopher  Kruegel,  and  Giovanni  Vigna.,  “Delta:  Automatic  Identification  of  Unknown  Web-based  Infection  Campaigns.”  Proceedings  of  the  2013  ACM  SIGSAC  conference  on  Computer  &  communications  security,  2013.
【非特許文献８】Takashi  Matsunaka,  Ayumu  Kubota,  and  Takahiro  Kasama.,  “An  Approach  to  Detect  Drive-by  Download  by  Observing  the  Web  Page  Transition  Behaviors.”,  Ninth  Asia  Joint  Conference  on  Information  Security,  2014.
【非特許文献９】Gianluca  Stringhini,  Christopher  Kruegel,  and  Giovanni  Vigna.,  “Shady  Paths:  Leveraging  Surfing  Crowds  to  Detect  Malicious  Web  Pages.”,  Proceedings  of  the  2013  ACM  SIGSAC  conference  on  Computer  &  communications  security,  2013.
【非特許文献１０】M.  Zubair  Rafique,  et  al.,  “Network  Dialog  Minimization  and  Network  Dialog  Diffing:  Two  Novel  Primitives  for  Network  Security  Applications.”,  Proceedings  of  the  30th  Annual  Computer  Security  Applications  Conference,  2014.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
悪性ｗｅｂサイトによる被害を削減するためには、網羅的に悪性ｗｅｂサイトの情報を収集することが重要である。一方、攻撃者は、悪性ｗｅｂサイトが検知されるのを防ぐために、解析システムによるアクセスを検知して攻撃コードを隠蔽する回避策を実施している。このため、被害削減のためには、このような悪性ページも検知することが重要である。しかしながら、従来の手法では、攻撃者の隠ぺい等により攻撃コードが得られない悪性ｗｅｂサイトについては、検知できない、または、検知精度が低いという問題があった。【００１３】
例えば、コンテンツの特徴に基づく手法では、攻撃コードが得られない悪性ｗｅｂサイトについては、ページから悪性なコンテンツが取得されず、特徴量がほぼ０となり、良性と判定されるため、悪性であることを検知できないという問題があった。【００１４】
また、複数のページの関係性に着目した手法は、攻撃コードへのリダイレクトに着目している手法と、リダイレクトをもとに形成されたグラフの形に着目する手法とに大別できる。この複数のページの関係性に着目した手法のうち、攻撃コードへのリダイレクトに着目する手法では、攻撃コードが得られないと着目しているリダイレクトが発生しないため、攻撃コードが得られない悪性ｗｅｂサイトを検知できないという問題があった。【００１５】
一方、複数のページの関係性に着目した手法のうち、リダイレクトグラフの形に着目する手法では、攻撃コードが得られない場合、良性サイトのグラフ形状との判別が困難であり、悪性ｗｅｂサイトに対する検知精度が低いという問題がある。一般的に、リダイレクトグラフの形は、リダイレクトの段数等に基づき、悪性ｗｅｂサイトのリダイレクトでは段数が長く、良性サイトのリダイレクトでは段数が短い傾向がある。このことから、リダイレクトグラフの形に着目する手法では、攻撃コードが得られない場合、悪性ｗｅｂサイトであった場合でも、リダイレクトの段数が短くなり、グラフの形が良性サイトに近くなるため、悪性ｗｅｂサイトであることの検知が困難となる。この結果、悪性ｗｅｂサイトをブラックリストに記載することができず、ユーザの悪性ｗｅｂサイトへのアクセスを許可してしまうという問題があった。【００１６】
このように、従来の技術では、攻撃者の隠ぺい等により攻撃コードが得られない悪性ｗｅｂサイトについては、検知できない、または、検知精度が低いという問題があった。【００１７】
本発明は、上記に鑑みてなされたものであって、攻撃コードが取得できない悪性ｗｅｂサイトを精度よく検知することができるアクセス分類装置、アクセス分類方法及びアクセス分類プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
上述した課題を解決し、目的を達成するために、本発明に係るアクセス分類装置は、少なくとも第１の宛先及び第２の宛先をノードとし、該ノードに対応するコンテンツの情報を該ノードに付加し、第１の宛先から第２の宛先へアクセスを転送する命令をエッジとする複数の木を構築する木構築部と、木構築部によって構築された複数の木について、木の各々の局所的な構造の類似性を基に複数の木のノード同士を対応付けるノード対応付け部と、複数の木において対応付けられたノード同士の類似度を、これらのノードに付加されたコンテンツの情報に基づいて算出し、該算出した対応付けられたノード同士の類似度を用いて複数の木の類似度を算出する類似度算出部と、類似度算出部によって算出された類似度に基づいて、アクセスを、特徴が類似する集合に分類する分類部と、を有する。
【発明の効果】
【００１９】
本発明によれば、攻撃コードが取得できない悪性ｗｅｂサイトを精度よく検知することができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、実施の形態１に係るアクセス分類装置の概略構成を示す模式図である。
【図２Ａ】図２Ａは、図１に示すアクセス分類装置に入力される解析対象アクセスの例を示す図である。
【図２Ｂ】図２Ｂは、図１に示すアクセス分類装置に入力される解析対象アクセスの例を示す図である。
【図３Ａ】図３Ａは、図１に示すアクセス分類装置に入力される既知アクセスの例を示す図である。
【図３Ｂ】図３Ｂは、図１に示すアクセス分類装置に入力される既知アクセスの例を示す図である。
【図４】図４は、図１に示す木構築部による木の構築処理を説明する図である。
【図５】図５は、木から部分木が抽出される過程を示す図である。
【図６】図６は、複数の木の間におけるノードの対応付けの一例について説明する図である。
【図７】図７は、複数の木の間におけるノードの対応付けの他の例について説明する図である。
【図８】図８は、複数の木の間におけるノードの対応付けの他の例について説明する図である。
【図９】図９は、図１に示す類似度算出部による木の類似度算出処理を説明する図である。
【図１０】図１０は、類似度を内積値として用いる場合の識別モデル作成処理を説明するためのフローチャートである。
【図１１】図１１は、類似度を内積値として用いる場合のアクセス識別処理の処理手順を示すフローチャートである。
【図１２】図１２は、実施の形態２に係るアクセス分類装置の概略構成を示す模式図である。
【図１３】図１３は、複数の木を、複数の集合へ分類する方法を示す図である。
【図１４】図１４は、木の集合から代表木を作成する方法を示す図である。
【図１５】図１５は、代表木との類似度を用いる場合の識別モデル作成処理の処理手順を示すフローチャートである。
【図１６】図１６は、代表木との類似度を用いる場合のアクセス識別処理を説明するためのフローチャートである。
【図１７】図１７は、プログラムが実行されることにより、アクセス分類装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００２２】
［実施の形態１］
まず、実施の形態１に係るアクセス分類装置について、概略構成、アクセス分類処理の流れ及び具体例を説明する。
【００２３】
図１は、実施の形態１に係るアクセス分類装置の概略構成を示す模式図である。図１に示すように、実施の形態１に係るアクセス分類装置１０は、対象アクセス入力部１１、既知アクセス入力部１２、木構築部１３、ノード対応付け部１４、類似度算出部１５及び分類部１６を有する。これら各構成部分は、一方向又は双方向に、各種信号やデータの入出力が可能な様に接続されている。
【００２４】
対象アクセス入力部１１は、解析対象の宛先へのアクセスを入力として許容する。対象アクセス入力部１１は、解析対象の宛先へのアクセスとして、リダイレクトに関する情報とコンテンツに関する情報とを入力として許容する。
【００２５】
既知アクセス入力部１２は、悪性ｗｅｂサイトを提供する宛先へのアクセスであることが既知である既知悪性アクセスと、これとは反対に良性ｗｅｂサイトを提供する宛先へのアクセスであることが既知である既知良性アクセスとを入力として許容する。既知アクセス入力部１２は、既知のアクセスとして、リダイレクトに関する情報とコンテンツに関する情報とを入力として許容する。
【００２６】
木構築部１３は、対象アクセス入力部１１と既知アクセス入力部１２とにより入力された各アクセスから、少なくとも解析対象の宛先（第１の宛先）へのアクセス元（自動転送元）及びアクセス先（自動転送先）の宛先（第２の宛先）を「ノード」とし、自動転送命令を「エッジ」とする木を構築する。また、木構築部１３は、各ノードに対し、各ノードに対するコンテンツの情報をそれぞれ付加する。
【００２７】
ノード対応付け部１４は、木構築部１３によって作成された複数の木について、該複数の木を構成する各ノードの対応関係を決定する。このノード対応付け部１４は、複数の木の各々の局所的な構造の類似性を基に、複数の木のノード同士を対応付ける。
【００２８】
類似度算出部１５は、複数の木の間において対応付けられたノード同士の類似度を、これらのノードに付加されたコンテンツの情報に基づいて算出し、該算出した対応付けられたノード同士の類似度を用いて複数の木の類似度を算出する。
【００２９】
分類部１６は、類似度算出部１５によって算出された類似度に基づいて、アクセスを、特徴が類似する集合に分類する。例えば、分類部１６は、類似度算出部１５によって算出された類似度を用いて、対象アクセス入力部１１により入力されたアクセスが、悪性ｗｅｂサイトへのアクセスであるか否かの判定を行う。
【００３０】
［解析対象アクセスの例］
図２Ａ及び図２Ｂは、アクセス分類装置１０に入力される解析対象アクセスの例を示す図である。図２Ａ及び図２Ｂに示すように、解析対象アクセスは、リダイレクトに関する情報（図２Ａ参照）と、コンテンツに関する情報（図２Ｂ参照）とである。
【００３１】
まず、図２Ａを参照し、リダイレクトに関する情報について説明する。図２Ａに示すように、リダイレクトに関する情報は、通番、転送先、転送元、及び、転送命令の情報を有する。なお、ＨＴＴＰのステータスコード３００番代のリダイレクトだけではなく、ＨＴＭＬタグで指定されたコンテンツの取得によって発生する自動転送も、リダイレクトと呼ぶ。
【００３２】
通番として、図２Ａに示すように、同一の一連のアクセスに含まれるリダイレクトに同一の番号が与えられる。また、転送先、転送元としてはＵＲＬがあるが、これに限るものではなく、ＦＱＤＮ（Fully  Qualified  Domain  Name）、ドメイン、ホスト名、ＩＰアドレス等であってもよい。また、宛先を明示しなくても、宛先を他の文字列等に置き換えてもよい。ただし、この場合には、文字列と宛先とが一対一で対応している必要がある。
【００３３】
そして、転送命令としては、ＨＴＭＬタグのiframeタグによるリンクを表す「ＳＲＣ−ＩＦＲＡＭＥ」やＨＴＭＬタグのScriptタグによるリンクを表す「ＳＲＣ−ＳＣＲＩＰＴ−ＳＲＣ」などがあるが、これに限るものではない。例えば、ＨＴＭＬタグのAppletタグによるリンクを表す「ＳＲＣ−ＡＰＰＬＥＴ−ＡＲＣＨＩＶＥ」、ＨＴＴＰによる転送を表す「ＨＴＴＰ３０２Ｒｅｄｉｒｅｃｔ」、ＨＴＭＬタグのObjectタグによるリンクを表す「ＳＲＣ−ＯＢＪＥＣＴ−ＣＯＤＥＢＡＳＥ」等であってもよい。また、転送命令を明示せずに他の文字列等に置き換えてもよい。ただし、この場合には、文字列と転送命令とが一対一で対応している必要がある。
【００３４】
また、リダイレクトに関する情報は、図２Ａに示す例に限らず、転送が発生した時刻等を含んでいてもよい。これは、リダイレクトが発生した時刻とコンテンツが取得された時刻とを組み合わせて使うことを想定した場合、これらから、ＵＲＬにアクセスしてからリダイレクトが発生するまでの時間が計測できるためである。ここで、悪性なJavaScriptは、難読化されているため処理に時間がかかることが知られているため、処理に必要な時間を考慮することが可能になる。なお、リダイレクトに関する情報に含めるかは、良性ｗｅｂサイトと悪性ｗｅｂサイトとで傾向が異なるかという点で検討を行えばよい。
【００３５】
次に、図２Ｂを参照し、コンテンツに関する情報について説明する。図２Ｂに示すように、コンテンツに関する情報は、通番、宛先、及び、コンテンツの情報を有する。
【００３６】
図２Ｂに示すように、通番は、図２Ａに示すリダイレクトに関する情報と同一のものを用いる。ただし、異なるアクセスで同一宛先から取得されたコンテンツが同一の場合には、通番はなくてもよい。そして、宛先としては、図２Ｂに示すように、ＵＲＬがあるがこれに限るものではなく、リダイレクトに関する情報と同様に、ＦＱＤＮ（Fully  Qualified  Domain  Name）、ドメイン、ホスト名、ＩＰアドレス等であってもよい。
【００３７】
また、図２Ｂに示すように、コンテンツとしては、ＨＴＭＬ、JavaScriptがあるが、これに限るものではなくＰＨＰ（Hypertext  Preprocessor）、ＣＳＳ（Cascading  Style  Sheets）或いは画像等でもよい。また、コンテンツに関する情報は、図２Ｂに示す例に限らず、コンテンツが取得された時刻や、取得にかかった時間等の情報を含んでいてもよい。リダイレクトに関する情報と同様に、リダイレクトが発生した時刻とコンテンツが取得された時刻とを組み合わせて使うことを想定した場合、これらから、ＵＲＬにアクセスしてからリダイレクトが発生するまでの時間が計測できるためである。
【００３８】
［既知アクセスの例］
図３Ａ及び図３Ｂは、アクセス分類装置１０に入力される既知アクセスの例を示す図である。図３Ａ及び図３Ｂに示すように、既知アクセスは、リダイレクトに関する情報（図３Ａ参照）と、コンテンツに関する情報（図３Ｂ参照）とである。
【００３９】
図３Ａに示すように、リダイレクトに関する情報は、通番、ラベル、転送先、転送元及び転送命令が含まれる。図３Ａに示すように、通番は、図２Ａの例と同様に、同一の一連のアクセスに含まれるリダイレクトに同一の番号が与えられる。そして、図３Ａに示すように、転送先或いは転送元としては、図２Ａの例と同様に、ＵＲＬが考えられるが、もちろん、これに限るものではない。また、宛先を明示しなくても、宛先を他の文字列等に置き換えてもよい。ただし、文字列と宛先とが一対一で対応している必要がある。
【００４０】
また、図３Ａに示すように、転送命令としては、図２Ａの例と同様に、「ＳＲＣ−ＩＦＲＡＭＥ」や「ＳＲＣ−ＳＣＲＩＰＴ−ＳＲＣ」などが考えられるが、これに限るものではない。また、転送命令を文字列等に置き換えてもよく、この場合には、対象アクセスと同じ方法で置き換える必要がある。
【００４１】
また、図３Ａに示すように、通信先の性質を識別するラベルを各アクセスに付与する。このラベルは、図３Ａに示す「良性」や「悪性」に限るものではなく、「広告」、「Ｄｒｉｖｅ−ｂｙ−Ｄｏｗｎｌｏａｄ」、「Ｐｈｉｓｈｉｎｇ」等であってもよい。なお、リダイレクトに関する情報は、図３Ａに示す例に限るものではない。
【００４２】
そして、図３Ｂに示すように、コンテンツに関する情報は、通番、宛先及びコンテンツの情報を有する。図３Ｂに示すように、通番は、図３Ａに示すリダイレクトに関する情報と同一のものを用いる。ただし、異なるアクセスで同一宛先から取得されたコンテンツが同一の場合には通番はなくてもよい。図３Ｂに示すように、宛先としては、ＵＲＬが考えられるがこれに限るものではない。
【００４３】
コンテンツは、ＨＴＭＬ、JavaScriptがあるが、これに限るものではない。なお、コンテンツに関する情報は、既知アクセス入力部１２からの入力のうちコンテンツに関するものであり、コンテンツは、ＨＴＭＬ、JavaScriptのコード等であり、コンテンツの情報は、コンテンツを数値化したものとして、以降の説明を行う。また、コンテンツに関する情報としては、図３Ｂに示す例に限るものではない。
【００４４】
［木の構築］
次に、図１に示す木構築部１３による木の構築について説明する。図４は、木構築部１３による木の構築処理を説明する図である。図４に示すように、木構築部１３は、図２及び図３に示したアクセスの転送情報を基に、転送元及び転送先を「ノード」とし、転送命令を「エッジ」とする木Ｔ１を構築する。そして、木構築部１３は、各ノードに対し、ノードに対するコンテンツの情報をノードに付加する。
【００４５】
例えば、木構築部１３は、ｗｅｂサイトのＵＲＬをノードＮ１〜Ｎ４とし、該ＵＲＬ間の転送命令に対応するエッジＥ１〜Ｅ３を、転送元ＵＲＬと転送先ＵＲＬとの間に作成する。
【００４６】
そして、各ノードＮ１〜Ｎ４に、ノードＮ１〜Ｎ４のＵＲＬに対するコンテンツの情報を付加する。本実施の形態１では、コンテンツの情報として、ノードに対応するコンテンツやＵＲＬから、悪性判定に有効な複数の情報を数値化し、ベクトルとして表現している。
【００４７】
具体的には、図４に示すように、ノードＮｎに対応するコンテンツの情報ｘｎを、ｘｎ＝［ｅｎ，ｉｎ，ｐｎ］とし、コンテンツの情報を数値化する。ここで、ｅｎは、eval数である。ｉｎは、ifame数である。ｐｎは、ドメインに対応するＩＰアドレス数である。例えば、ノードＮ１については、コンテンツの情報ｘ１は、ｘ１＝［０，１，２］である。なお、後述の図６〜図９においては、説明のため、表示した二つの木のうち、一方の木のコンテンツの情報ｘｎを、ｘｎ＝［ｅｎ，ｉｎ，ｐｎ］とし、他方の木のコンテンツの情報を、ｙｍ＝［ｅｍ，ｉｍ，ｐｍ］として表す。
【００４８】
また、コンテンツの情報は、eval数、ifame数、ドメインに対応するＩＰアドレス数に限らず、ＨＴＭＬのタグの出現回数、JavaScript関数の出現回数、ＵＲＬにおける悪性なパターンの出現回数などでもよい。これら全てを、コンテンツの情報として用いてもよいし、一部のみを用いてもよい。ただし、コンテンツの情報は、複数の種別を含むことが望ましい。
【００４９】
このように、ノードに付加するコンテンツの情報として、コンテンツを数値化し、悪性なコンテンツの情報のみ抽出したものを生成する。これによって、悪性なコンテンツに意味のないコードが追加されたり、攻撃に関係ないコードが削除されたりしていた場合も、数値化されたベクトルの変化は少ないため、悪性ｗｅｂサイトを検知することができ、攻撃者による回避を困難にすることができる。
【００５０】
そして、木構築部１３は、コンテンツの情報の付加が完了すると、各ノードＮ１〜Ｎ４に付されているＵＲＬの情報を除去する。これにより、ＵＲＬに依存しないリダイレクト構造に着目した、ｗｅｂサイトの識別が可能となる。
【００５１】
なお、図４では、ノードＮ１〜Ｎ４に一旦付されたＵＲＬが除去された例を示したが、ＵＲＬは、除去されなくてもよい。また、コンテンツの情報として、数値化を行わず、コンテンツそのものやＵＲＬそのものを用いてもよいし、これらから一部（コードの一部やドメイン等）を抽出して用いてもよい。このように、悪性ｗｅｂサイトで固定的に使われるＵＲＬの一部等を数値化しないことによって、誤検知を削減することができる。
【００５２】
［部分木の抽出］
次に、木構築部１３が構築した木から部分木を抽出する処理について説明する。図５は、木から部分木が抽出される過程を示す図である。図５に示すように、木構築部１３は、構築された木（図４参照）から、該木を構成する部分木を抽出する。
【００５３】
例えば、木構築部１３は、図５（ａ）に示すように、木Ｔ１から、一連のアクセスの中で最初にアクセスした宛先に対応するノードＮ１から、他の末端ノードＮ３、Ｎ４までのパスを抽出する。次に、木構築部１３は、図５（ｂ）に示すように、パス中に含まれる全ての部分パス（例えば、Ｔ１−１，Ｔ１−２参照）を抽出する。そして、木構築部１３は、図５（ｃ）に示す様に、抽出された部分パスを部分木Ｔ１−１，Ｔ１−３，Ｔ１−４，Ｔ１−２に分解する。
【００５４】
このとき、重複する部分木がある場合には、木構築部１３は、重複する部分木の一方を削除することが望ましい。ここで、改ざんページから複数の画像の取得等が発生すると、重複する部分木が抽出される。これらの部分木が多数存在すると、類似度を算出する際に、悪性な部分木の影響が小さくなってしまう。このため、木構築部１３は、重複する部分木を削除することが望ましい。
【００５５】
また、悪性ｗｅｂサイトは、改ざんサイトにアクセスしたユーザを攻撃コードにリダイレクトさせるため、パスの構造に悪性な特徴が現れる。例えば、悪性ｗｅｂサイトは、改ざんサイト、踏み台サイト、ブラウザのバージョン等の識別を行うサイト、攻撃コードが置かれているサイトへの多段のリダイレクトが発生する。このため、例示したように、パスに着目して部分木を抽出することで、悪性な特徴を表現する部分木を抽出し、全体の部分木の数を減らすことで、計算量を削減できるものと考えられる。なお、重複する部分木を削除したが、削除しなくとも、検知処理は可能である。また、部分木の抽出方法は一例であり、これに限るものではなく、分岐をもつ部分木を抽出してもよい。
【００５６】
［ノードの対応付け例１］
次に、図６を参照して、複数の木の間におけるノードの対応付けの一例について説明する。図６は、複数の木の間におけるノードの対応付け例の一つについて説明する図である。ノード対応付け部１４は、図５で抽出した部分木をもとにノードの対応付けを行う。例えば、ノードの情報を無視した場合、図６に示すように、部分木のエッジのつながり方が一致する部分木が木構築部１３によって抽出される。そして、ノード対応付け部１４は、複数の木について木構築部１３が抽出した部分木のうち、エッジが一致する複数の部分木を特定し、該特定した複数の部分木におけるノードの対応関係によって、複数の木におけるノードの対応関係を決定する。
【００５７】
図６の例では、木Ｔ２の部分木のうち部分木Ｔ２−１と、木Ｔ３のうち部分木Ｔ３−１とが、エッジのつながり方が一致する。言い換えると、部分木Ｔ２−１と部分木Ｔ３−１とは、リダイレクトが共通な部分木である（図６の（１）参照）。そこで、ノード対応付け部１４は、これらの部分木Ｔ２−１，Ｔ３−１において、ノードの対応関係を決定する。なお、ノード対応付け部１４は、木Ｔ２の部分木のうちのノードＮ７からノードＮ８のパスを有する部分木と、木Ｔ３のうちノードＮ１１からノードＮ１２のパスを有する部分木とは、リダイレクトが一致しないため、この二つの部分木については、ノードの対応付けを行わない。
【００５８】
具体的には、ノード対応付け部１４は、部分木Ｔ２−１の転送元に対応するノードＮ５と部分木Ｔ３−１の転送元に対応するノードＮ９とを対応付ける（図６の（２−１）参照）。また、ノード対応付け部１４は、部分木Ｔ２−１の転送先に対応するノードＮ６と部分木Ｔ３−１の転送元に対応するノードＮ１０とを対応付ける（図６の（２−２）参照）。
【００５９】
なお、図６で説明したノードの対応付けの方法は、一例であり、これに限るものではない。例えば、ノード対応付け部１４は、エッジが一致する部分木ではなく、エッジの一致数が閾値以上の部分木を抽出してもよい。
【００６０】
［ノードの対応付け例２］
また、ノード対応付け部１４は、複数の木について、ノードに接続するエッジの一致度が高い組み合わせのノードを対応付けてもよい。この場合、ノード対応付け部１４は、二つの木におけるノードの組み合わせごとに、ノード同士のリダイレクトの一致度を数値化したコストを算出し、コストが最小となる組み合わせのノードを対応付ける。
【００６１】
例えば、ノード対応付け部１４は、ノード同士を対応付けた場合のコストを、対象のノードがリダイレクト先となるリダイレクトの異なるエッジ数と、対象のノードがリダイレクト元となるリダイレクトの異なるエッジ数と、の和と定義する。そして、ノード対応付け部１４は、考えられるノードの組み合わせの中で、各ノードの組み合わせにおけるコストのうち、コストが最小となる組み合わせのノードを対応付ける。
【００６２】
そこで、図７及び図８を参照して、詳細に説明する。図７及び図８は、複数の木の間におけるノードの対応付け例の他の例について説明する図である。例えば、図７の木Ｔ１のノードＮ２と、木Ｔ４のノードＮ２４とのコストの算出について説明する。
【００６３】
まず、ノード対応付け部１４は、ノードＮ２とノードＮ２４との場合、対象のノードＮ２とノードＮ２４とがそれぞれリダイレクト先となるリダイレクトの比較を行う。この場合、ノードＮ２がリダイレクト先となるリダイレクトのエッジが「ＳＲＣ−ＩＦＲＡＭＥ」であり、ノードＮ２４がリダイレクト先となるリダイレクトのエッジが「ＨＴＴＰ３０２Ｒｅｄｉｒｅｃｔ」であるため、異なる。したがって、ノード対応付け部１４は、ノードＮ２とノードＮ２４との場合、対象のノードＮ２とノードＮ２４とがリダイレクト先となるリダイレクトの異なるエッジ数が「１」であることを求める（図７の（１）参照）。
【００６４】
続いて、ノード対応付け部１４は、対象のノードＮ２とノードＮ２４とがそれぞれリダイレクト元となるリダイレクトの比較を行う。この場合、ノードＮ２がリダイレクト元となるリダイレクトのエッジが「ＳＲＣ−ＡＰＰＬＥＴ−ＡＲＣＨＩＶＥ」であり、ノードＮ２４がリダイレクト元となるリダイレクトのエッジがない。このように、ノード対応付け部１４は、対応するエッジがない場合も、「１」と計算する（図７の（２）参照）。
【００６５】
したがって、ノードＮ２とノードＮ２４とを対応付けた場合のコストは、対象のノードがリダイレクト先となるリダイレクトの異なるエッジ数「１」と、対象のノードがリダイレクト元となるリダイレクトの異なるエッジ数「１」と、の和であるため、「２」となる（図７の（３）参照）。
【００６６】
このように、ノード対応付け部１４は、木Ｔ１と木Ｔ４とにおけるノードの組み合わせごとに、コストを計算する。この結果、ノード対応付け部１４は、図８に例示すように、木Ｔ１のノードＮ２と木Ｔ４のノードＮ２４との組み合わせについては、上述したように、コスト「２」を取得できる（図８の（１）参照）。また、ノード対応付け部１４は、ノードＮ２とノードＮ２１との組み合わせについては、コスト「３」を取得できる（図８の（２）参照）。また、ノード対応付け部１４は、ノードＮ２とノードＮ２２との組み合わせについては、コスト「０」を取得できる（図８の（３）参照）。また、ノード対応付け部１４は、ノードＮ２とノードＮ２３との組み合わせについては、コスト「２」を取得できる（図８の（４）参照）。このように、すべての木Ｔ１のノードと木Ｔ４のノードとの組み合わせにおけるコストを取得する。
【００６７】
そして、ノード対応付け部１４は、木Ｔ１のノードと木Ｔ４のノードとの対応付け方のうち、対応づいたノードのコストの総和が最小となる組み合わせを求める。例えば、ノード数が小さい木の全てのノードをもう一方のノードに対応付けたときのコストの総和を可能な対応付け方全てで算出し、コストの総和が最小となる対応付けを求める。このとき、複数のノードが一つのノードに対応づくことは許さない。ノードの対応付け方は一例であり、接続するエッジが類似するノードの対応付けが可能であればよい。
【００６８】
なお、ノード対応付け部１４は、全てのノードの対応付けを出力してもよいし、接続するエッジがすべて同一のノードの組み合わせ、または、接続するエッジ数に対する同一なエッジ数の割合が閾値以上となるノードの組み合わせのみを出力してもよい。また、コストの定義は一例であり、これに限るものではなく、同一なエッジが多い場合にコストが小さくなるように、コストを定義すれば足りる。
【００６９】
また、以上で説明したノードの対応付け例１及びノードの対応付け例２のうち、ノードの対応付け例１に示す部分木に基づく手法は、長いリダイレクトの影響が大きくなるように設計してある。このため、長いリダイレクトが発生することが確認できている場合は、ノードの対応付け例１に示す部分木に基づく手法が有効である。一方、長いリダイレクトが仮定できない場合であっても、ノードの対応付け例２に示す隣接するエッジに基づく方法は適用可能である。
【００７０】
また、ノードの対応付け例１及びノードの対応付け例２のいずれも、対応付け方法は、局所的な構造に基づくため、攻撃コードが隠蔽されても問題なくノードの対応付けが可能となる。このため、ノードの対応付けを行った上で木の類似性を求めることによって、対象アクセスが悪性ｗｅｂサイトであるか否かを検知することが可能になる。そこで、次に、木の類似度の算出処理について説明する。
【００７１】
［木の類似度の算出］
次に、図１に示す類似度算出部１５による木の類似度の算出について説明する。類似度算出部１５は、図６または図７，８に示す手法を用いてノード対応付け部１４によって決定された複数の木のノードの対応付け結果を基に、類似度を算出する。図９は、類似度算出部１５による木の類似度算出処理を説明する図である。
【００７２】
図９では、木Ｔ１と木Ｔ４との類似度を算出する例を示す。木Ｔ１と木Ｔ４とにおいては、各ノードのうち、木Ｔ１のノードＮ２と木Ｔ４のノードＮ２２とが対応関係にあり、木Ｔ１のノードＮ３と木Ｔ４のノードＮ２３とが対応関係にある。
【００７３】
類似度算出部１５は、まず、対応関係にあるノード同士の類似度を、各ノードのコンテンツの情報を用いて算出する。この場合、類似度算出部１５は、対応関係にあるノード同士の類似度を特徴ベクトルのユークリッド距離で定義する。すなわち、類似度算出部１５は、一方の木の、コンテンツの情報ｘｋが付加されたノードＮｋと、他方の木の、コンテンツの情報ｙｈが付加されたノードＮｈについては、（１）式を用いて演算したユークリッド距離ｓｋ，ｈを、対応するノードＮｋとノードＮｈとの類似度とする。なお、対応関係にあるノード同士の類似度は、特徴ベクトルのユークリッド距離に限るものではなく、Ｌ１ノルム（各次元の差分の絶対値の和）等を用いてもよい。
【００７４】
【数１】
2017217163.tif 000003
【００７５】
例えば、類似度算出部１５は、木Ｔ１のノードＮ２と木Ｔ４のノードＮ２２との類似度ｓ２，２２を、ノードＮ２に付加されたコンテンツの情報ｘ２と、ノードＮ２２に付加されたコンテンツの情報ｙ２を（１）式に適用した（２）式を用いて、算出する。
【００７６】
【数２】
2017217163.tif 000004
【００７７】
また、類似度算出部１５は、木Ｔ１のノードＮ３と木Ｔ４のノードＮ２３との類似度ｓ３，２３を、ノードＮ３に付加されたコンテンツの情報ｘ３と、ノードＮ２３に付加されたコンテンツの情報ｙ３を（１）式に適用することによって、算出する。このように、類似度算出部１５は、類似度算出対象の二つの木について対応関係にあるノードの組み合わせごとに、対応関係にあるノードに付加されたコンテンツの情報を用いて、類似度を算出する。
【００７８】
そして、類似度算出部１５は、二つの木の類似度を、「２×「対応づけられたノードの類似度の総和」÷「ノード数の和」」で定義する。例えば、図９に示す木Ｔ１と木Ｔ４との類似度を求める場合、類似度算出部１５は、対応関係にあるノードＮ２とノードＮ２２との類似度ｓ２、及び、対応関係にあるノードＮ３とノードＮ２３との類似度ｓ３をこの定義に適用する。そして、類似度算出部１５は、ノード数の和として、木Ｔ１のノード数「４」と木Ｔ４のノード数「４」をこの定義に適用する。したがって、類似度算出部１５は、この定義に、対応づけられたノードの類似度の総和である（ｓ２＋ｓ３）とノード数の和である（４＋４）を適用した、（２×（ｓ２＋ｓ３）／（４＋４））（枠Ｍ１参照）を算出することによって、木Ｔ１と木Ｔ４との類似度を求める。
【００７９】
なお、図９では、２つの木Ｔ１，Ｔ４の類似度算出方法を例示したが、比較する木の数は、２以上であればよい。また、図９を用いて算出した類似度の算出方法は、一例であり、対応付けられたノードの類似度に基づくものであれば、これに限るものではない。
【００８０】
［分類部の処理］
次に、分類部１６による分類対象の木に対する分類方法を説明する。類似度算出部１５によって算出された、アクセス同士の類似度を用いて機械学習アルゴリズムを適用し、識別モデルや識別結果を出力する。
【００８１】
［識別モデル作成処理の処理手順］
次に、図１０及び図１１を参照しながら、アクセス分類装置１０の動作について、より詳細に説明する。
【００８２】
まず、類似度算出部１５が算出した複数の木の類似度を、特徴量空間上のベクトルへ変換した後の内積値として利用する場合の識別モデル作成例を示す。なお、識別モデルとは、入力データ（各データの数値ベクトル、または、データ同士の内積値）を入力したときに、識別結果（良性の識別、悪性の識別等）を出力するものである。図１０は、類似度を内積値として用いる場合の識別モデル作成処理の処理手順を示すフローチャートである。
【００８３】
まず、既知アクセス入力部１２は、既知悪性アクセス及び既知良性アクセス（図３参照）を入力する（ステップＳ１）。続いて、木構築部１３は、入力されたアクセスから木を構築し（図４参照）、構築された木から部分木を抽出する（図５参照）（ステップＳ２）。
【００８４】
そして、ノード対応付け部１４は、複数の木の間におけるノードの対応付けを行う（ステップＳ３）。この場合、ノード対応付け部１４は、図６または図７，８に示す手法を用いて、複数の木の間でノードの対応付けを行い、複数の木の間におけるノードの対応関係を決定する。
【００８５】
続いて、類似度算出部１５は、ノード対応付け部１４によって決定された複数の木のノードの対応付け結果を基に、図９で説明した手法を用いて、各ノードに付加されたコンテンツの情報を用いて、複数の木の類似度を算出する（ステップＳ４）。
【００８６】
そして、分類部１６は、入力の高次元空間への変換後の内積値を利用する既存の教師あり機械学習を、木の類似度を内積値として用い、既知悪性アクセスと既知良性アクセスを教師データとして適用し（ステップＳ５）、識別モデルを出力する（ステップＳ６）。言い換えると、分類部１６は、ステップＳ１にて入力されたアクセスとステップＳ４にて算出された類似度とを、入力の高次元空間への変換後の内積値を利用する教師あり機械学習に適用する。すなわち、分類部１６は、ステップＳ１において入力された既知良性アクセスと既知悪性アクセスとを「教師データ」とし、ステップＳ４にて算出された類似度を、教師データを特徴量空間上のベクトルへ変換した後の「内積値」とした教師あり機械学習により、識別モデルを作成する。分類部１６は、例えば、識別モデルとして、既知悪性アクセスおよび既知良性アクセスと識別対象のアクセスとの内積値の重み付け和の正負で識別結果を決定する手法を用いる場合は、各既知アクセスに対応する重みをモデルパラメータとして出力する。なお、教師あり機械学習の手法は、例えば、サポートベクターマシン等であるが、これに限らない。
【００８７】
また、分類部１６は、作成された識別モデルを、後述するハードディスクドライブ１０９０に出力する。出力された識別モデルは、ハードディスクドライブ１０９０内にデータとして保存される。
【００８８】
［アクセス識別処理］
続いて、類似度算出部１５が算出した複数の木の間における類似度を、特徴量空間上のベクトルへ変換した後の内積値として利用する場合のアクセス識別例を示す。図１１は、類似度を内積値として用いる場合のアクセス識別処理の処理手順を示すフローチャートである。
【００８９】
まず、対象アクセス入力部１１は、解析対象アクセス（図２参照）を入力する（ステップＳ１１）。続いて、木構築部１３は、入力されたアクセスから木を構築し（図４参照）、構築された木から部分木を抽出する（図５参照）（ステップＳ１２）。
【００９０】
そして、ノード対応付け部１４は、解析対象アクセスに対応する木と、比較対象である既知アクセスに対応する木との間におけるノードの対応付けを行う（ステップＳ１３）。この場合、ノード対応付け部１４は、図６または図７，８に示す手法を用いて、解析対象アクセスに対応する木と、比較対象である既知アクセスに対応する木との間でノードの対応付けを行い、この二つの木の間におけるノードの対応関係を決定する。
【００９１】
そして、類似度算出部１５は、各ノードに付加されたコンテンツの情報を用いて、解析対象アクセスに対応する木と、比較対象である既知アクセスに対応する木との類似度を算出する（ステップＳ１４）。この場合、類似度算出部１５は、ノード対応付け部１４によって決定された解析対象アクセスに対応する木と、比較対象である既知アクセスに対応する木とのノードの対応付け結果を基に、図９で説明した手法を用いて、解析対象アクセスに対応する木と、比較対象である既知アクセスに対応する木の類似度を算出する。
【００９２】
続いて、分類部１６は、事前に学習した識別モデルを読み込み、入力の高次元空間への変換後の内積値を利用する既存の教師あり機械学習を、木の類似度を内積値として用い、解析対象アクセスをテストデータとすることで適用し（ステップＳ１５）、識別結果を出力する（ステップＳ１６）。言い換えると、分類部１６は、ステップＳ１１にて入力されたアクセスとステップＳ１４にて算出された類似度とを、入力の高次元空間への変換後の内積値を利用する教師あり機械学習に適用する。すなわち、分類部１６は、ステップＳ１１にて入力された解析対象アクセスを「テストデータ」とし、ステップＳ１４にて算出された類似度を、テストデータを特徴量空間上のベクトルへ変換した後の「内積値」とした教師あり機械学習により、識別結果を作成する。
【００９３】
例えば、分類部１６は、識別結果として、解析対象アクセスが、比較対象の既知アクセスと特徴が類似するものであるか否かを分類する。例えば、比較対象の既知アクセスが悪性の既知アクセスであって、解析対象アクセスが比較対象の既知アクセスと特徴が類似するものであると分類した場合には、悪性ｗｅｂサイトへのアクセスであると判定した識別結果を出力する。
【００９４】
なお、教師あり機械学習の手法は、例えば、サポートベクターマシン等であるが、上述した識別モデル作成処理に用いた手法と同一の手法であれば、これに限らない。ステップＳ１６では、分類部１６は、作成された識別結果を、後述するディスプレイ１１３０等の表示装置に出力する。また、図１１に示す処理は、比較対象として設定された既知アクセスごとに実行する。
【００９５】
［実施の形態１の効果］
このように、本実施の形態１に係るアクセス分類装置１０は、入力されたアクセスから木を構築する際に、木のノードにコンテンツの情報を付加する。そして、アクセス分類装置１０は、複数の木を構成する各ノードの対応関係を決定し、木同士において対応付けられたノード同士の類似度を用いて木同士の類似度を算出した後、算出した類似度を用いて、自動転送を含む宛先への一連のアクセスを分類している。
【００９６】
これによって、本実施の形態１では、ユーザ端末からｗｅｂサーバへのアクセスを自動転送し、転送先のｗｅｂサイトでブラウザやプラグインの脆弱性を攻撃することでマルウェアをダウンロードさせる悪性ｗｅｂサイトがあっても、アクセス分類装置１０は、類似したリダイレクト関係にあるコンテンツの類似度をもとに検知することができる。したがって、アクセス分類装置１０は、悪性と判定されたｗｅｂサイトへのユーザ端末のアクセスを遮断することで、ユーザ端末のマルウェアへの感染を未然に防ぐことができる。このため、本実施の形態１によれば、自動転送を含むｗｅｂサイトの構造とコンテンツの特徴から悪性ｗｅｂサイトを識別することができる。また、実施の形態１によれば、１回のアクセスにより識別可能な悪性ｗｅｂサイト識別手法の構築が可能となる。
【００９７】
そして、アクセス分類装置１０は、木のノードに付加するコンテンツの情報として、コンテンツを数値化し、悪性なコンテンツの情報のみ抽出したものを生成する。この結果、本実施の形態１では、悪性なコンテンツに意味のないコードが追加されたり、攻撃に関係ないコードが削除されたりしていた場合も、数値化されたベクトルの変化は少ないため、悪性ｗｅｂサイトを検知することができ、攻撃者による回避を困難にすることができる。
【００９８】
そして、アクセス分類装置１０は、部分木を抽出する処理において、パスに着目して部分木を抽出している。言い換えると、アクセス分類装置１０は、悪性な特徴を表現する部分木を抽出して、以降の処理のノード対応付け対象となる部分木の数を減らすことで、計算量を削減できるものと考えられる。
【００９９】
また、アクセス分類装置１０は、木の局所的な構造に基づいてノードの対応付けを行うため、攻撃コードが隠蔽されてもノードの対応付けが可能となる。アクセス分類装置１０は、このノードの対応付けを行った上で、コンテンツの情報を基に木の類似性を求めることによって、解析対象アクセスと悪性ｗｅｂサイト或いは良性サイトとの類似度を精度よく算出することができる。すなわち、本実施の形態１では、攻撃コードが隠蔽されていた場合であっても、解析対象アクセスの分類を精度よく行うことができる。
【０１００】
以上のように、本実施の形態１では、リダイレクトグラフの形への着目に加えて、複数のコンテンツのリダイレクトによる関連性も考慮することによって、悪性の特徴、良性の特徴のいずれに近いかの識別精度を向上させている。したがって、本実施の形態１によれば、攻撃者によって回避されにくいｗｅｂ検索が可能であり、また、攻撃コードが取得できずグラフが小さくなった悪性ｗｅｂサイトについても、高い検知精度での検知を実現することができる。
【０１０１】
［実施の形態２］
次に、実施の形態２に係るアクセス分類装置について、概略構成、アクセス分類処理の流れ及び具体例を説明する。
【０１０２】
図１２は、実施の形態２に係るアクセス分類装置の概略構成を示す模式図である。図１２に示すように、実施の形態２に係るアクセス分類装置２１０は、図１に示すノード対応付け部１４、類似度算出部１５及び分類部１６に代えて、ノード対応付け部２１４、類似度算出部２１５及び分類部２１６を有する。そして、アクセス分類装置２１０は、図１のアクセス分類装置１０と比して、代表木作成部２１７をさらに有する。
【０１０３】
ノード対応付け部２１４は、ノード対応付け部１４と同様の機能を有するとともに、既知アクセスに対応する木、或いは、解析対象の宛先へのアクセスに対応する木と、代表木（後述）とのノード同士を対応付ける。類似度算出部２１５は、類似度算出部１５と同様の機能を有するとともに、アクセスに対応する木と、代表木（後述）との類似度を、これらの木同士において対応付けられたノード同士の類似度を用いて算出する。
【０１０４】
分類部２１６は、代表木（後述）とアクセスに対応する木との類似度に基づき、アクセスを分類する。
【０１０５】
代表木作成部２１７は、類似度算出部２１５によって算出された類似度に基づき、複数の木を、類似度の高い木から構成される複数の集合に分類する。そして、各集合の特徴を表す部分木を、代表木として作成する。代表木作成部２１７は、既知アクセス入力部１２により入力されたアクセスを、類似度算出部２１５により算出された類似度を基に複数の集合に分割し、各集合内の木に共通する部分木を代表木として作成する。
【０１０６】
［代表木の作成］
代表木の作成では、複数の木を複数の集合に分割し、各集合から代表木を作成する。図１３は、複数の木を、複数の集合へ分類する方法を示す図である。
【０１０７】
図１３に示すように、代表木作成部２１７は、図４に示した複数の木（アクセス）を、類似度の高い木で構成される複数の集合へ分割する。代表木作成部２１７は、各集合がそれぞれ１つずつの木のみで構成されている状態から、各集合に属する木同士の上記類似度の最大値が閾値以上の場合に集合を結合する。代表木作成部２１７は、この結合処理を、結合させる集合がなくなるまで繰り返し実行する。
【０１０８】
例えば、図１３（ａ）に示す例では、各集合Ｃ１〜Ｃ５が、それぞれ１つずつの木（木Ｔ１１〜Ｔ１５）のみにより構成されている。分類部１６は、複数の木Ｔ１１〜Ｔ１５を、類似度の高い木で構成される複数の集合Ｃ１’〜Ｃ３’へ分類する。図１３（ｂ）に示す例では、類似度の最大値が閾値以上の木Ｔ１１と木Ｔ１２とがそれぞれ属する集合Ｃ１と集合Ｃ２とが結合され、同一の集合Ｃ１’に分類される。同様に、類似度の最大値が閾値以上の木Ｔ１３と木Ｔ１５とがそれぞれ属する集合Ｃ３と集合Ｃ５とが結合され、同一の集合Ｃ２’に分類される。
【０１０９】
この結合処理は繰り返し実行されるため、図１３（ｃ）に示す様に、集合Ｃ１”に属する全ての木Ｔ１１，Ｔ１２において、同じ集合Ｃ１”に属する他の木との類似度の最大値が閾値以上となる。同様に、集合Ｃ２”に属する全ての木Ｔ１３〜Ｔ１５において、同じ集合Ｃ２”に属する他の木との類似度の最大値が閾値以上となる。これにより、類似度が高い木（木Ｔ１１，Ｔ１２と木Ｔ１３〜Ｔ１５）で構成される複数の集合（集合Ｃ１”と集合Ｃ２”）への分類が可能となる。
【０１１０】
なお、集合を結合させる基準として、分類部２１６は、類似度の最大値を用いたが、これに限らず、類似度の最小値や平均値を用いてもよい。類似度の最大値を用いた場合、複数の木に共通して含まれる一部の部分木が共通な木の集合が作成されるが、最大値の代わりに類似度の最小値を用いた場合、分類部１６は、多くの部分木が共通な木の集合を作成することができる。また、平均値を用いた場合、分類部１６は、それらの中間の木の集合を作成することができる。また、集合を結合させる基準として閾値を設定したが、分類部１６は、閾値を設定することなく、類似度が最大となる集合同士から優先的に結合させ、該結合処理を、全体が１つの集合になるまで繰り返し、その後、各集合を結合させた過程の内、何れの段階を採用するかを決定するものとしてもよい。さらに、結合対象の集合の数は、２に限らず、２以上であればよい。
【０１１１】
図１４は、木の集合から代表木を作成する方法を示す図である。図１４に示すように、アクセス分類装置２１０は、代表木作成部２１７により、木構築部１３の抽出した部分木（図５参照）を基に、代表木作成部２１７の作成した木の集合（図１３参照）から、代表木を作成する。例えば、代表木作成部２１７は、集合中の全ての木に共通する部分木を代表木とする。図１４に示す例では、代表木作成部２１７は、同一集合中の木Ｔ１，Ｔ５に共通する部分木（Ｎ１−Ｅ３−Ｎ４）を、この集合の特徴を表す代表木Ｔ９とする。また、代表木としては、コンテンツを無視して共通な部分木を抽出し、コンテンツの情報として各ノードの特徴ベクトルの平均を用いてもよい。
【０１１２】
なお、代表木作成部２１７は、集合中の全ての木に共通する部分木を代表木としたが、これに限らず、集合中の所定割合以上の木に含まれる部分木の集合を代表木としてもよい。また、ノードＮ１〜Ｎ４，Ｎ５５〜Ｎ５８に付されたＵＲＬ情報を除去しない態様の場合には、代表木作成部２１７は、転送命令だけでなくＵＲＬ情報も含めて、代表木Ｔ９の作成のための一致・不一致の判定を行うものとしてもよい。さらに、比較対象の木の数は、２に限らず、２以上であればよい。
【０１１３】
［識別モデル作成処理の処理手順］
次に、図１５及び図１６を参照しながら、アクセス分類装置２１０の動作について、より詳細に説明する。
【０１１４】
図１５は、代表木との類似度を用いる場合の識別モデル作成処理の処理手順を示すフローチャートである。なお、図１５は、図１０と同様のステップを複数含むので、共通するステップには、末尾が同一の参照符号を付すと共に、その詳細な説明は省略する。具体的には、図１５のステップＳ２１〜Ｓ２４，Ｓ２９の各処理は、図１０に示したステップＳ１〜Ｓ４，Ｓ６の各処理にそれぞれ対応する。
【０１１５】
代表木作成部２１７は、ステップＳ２４にて算出された類似度に基づき、ステップＳ２２にて構築された複数の木を、類似度の高い木から構成される複数の集合に分類し（図１３参照）、集合ごとに、各集合の特徴を表す部分木（例えば、同一集合内の共通部分木）を、代表木として作成する（図１４参照）（ステップＳ２５）。
【０１１６】
続いて、ノード対応付け部２１４は、図６または図７，８に示す手法を用いて、代表木と既知アクセスの木とのノードの対応付けを行う（ステップＳ２６）。そして、類似度算出部２１５は、各ノードに付加されたコンテンツの情報を用いて、代表木と既知アクセスの木の類似度を算出する（図９参照）（ステップＳ２７）。なお、アクセス分類装置２１０は、ステップＳ２６，Ｓ２７は、入力された既知アクセスごとに処理を行い、全ての既知アクセスについてステップＳ２６，Ｓ２７を行った後に次のステップＳ２８の処理に進む。
【０１１７】
そして、分類部２１６は、代表木との類似度を並べたベクトルをアクセスの特徴ベクトルとして用いた教師あり機械学習を適用し（ステップＳ２８）、識別モデルを作成する。なお、教師あり機械学習の手法は、線形判別分析、サポートベクターマシン、ランダムフォレスト等であるが、これらの手法に限らない。
【０１１８】
［アクセス識別処理］
図１６は、代表木との類似度を用いる場合のアクセス識別処理の処理手順を示すフローチャートである。図１６は、図１１と同様のステップを複数含むので、共通するステップには、末尾が同一の参照符号を付すと共に、その詳細な説明は省略する。具体的には、図１６のステップＳ３１，Ｓ３２，Ｓ３６の各処理は、図１１に示したステップＳ１１，Ｓ１２，Ｓ１６の各処理にそれぞれ対応する。
【０１１９】
ノード対応付け部２１４は、代表木と対象アクセスの木とのノードの対応付けを行う（ステップＳ３３）。そして、類似度算出部２１５は、対象アクセスの木と、代表木作成部２１７により作成された代表木との類似度を、これらの木同士において対応付けられたノード同士の類似度を用いて算出する（ステップＳ３４）。
【０１２０】
続いて、代表木との類似度を並べたベクトルをアクセスの特徴ベクトルとして用い、教師あり機械学習を適用し（ステップＳ３５）、識別結果を出力する（ステップＳ３６）。
なお、教師あり機械学習の手法は、例えば、線形判別分析、サポートベクターマシン、ランダムフォレスト等であるが、図１５における識別モデル作成処理に用いた手法と同一の手法であれば、これらの手法に限らない。
【０１２１】
［実施の形態２の効果］
このように、実施の形態２に係るアクセス分類装置２１０では、代表木とアクセスとの類似度を、この代表木とアクセスに対応する木との間で対応付けられたノードのコンテンツの類似度を用いて算出し、アクセスを分類する。したがって、実施の形態２に示す代表木とアクセスとを比較する構成においても、この代表木とアクセスに対応する木との間で対応付けられたノードのコンテンツの類似度も考慮することによって、識別精度を向上させることが可能になる。
【０１２２】
［他の実施の形態］
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ（Central  Processing  Unit）及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１２３】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１２４】
［プログラム］
図１７は、プログラムが実行されることにより、アクセス分類装置１０，２１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【０１２５】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【０１２６】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、アクセス分類装置１０，２１０の各処理を規定するプログラムは、コンピュータ１０００により実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、アクセス分類装置１０，２１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【０１２７】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【０１２８】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【０１２９】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【０１３０】
１０，２１０  アクセス分類装置
１１  対象アクセス入力部
１２  既知アクセス入力部
１３  木構築部
１４，２１４  ノード対応付け部
１５，２１５  類似度算出部
１６，２１６  分類部
２１７  代表木作成部
Ｃ１〜Ｃ５，Ｃ１’〜Ｃ３’，Ｃ１”，Ｃ２”  集合
Ｅ１〜Ｅ７，Ｅ２１〜Ｅ２３，Ｅ５４〜Ｅ５６  エッジ
Ｎ１〜Ｎ１２，Ｎ２１〜Ｎ２４，Ｎ５５〜Ｎ５８  ノード
Ｔ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５，Ｔ１１〜Ｔ１５  木
Ｔ１−１，Ｔ１−２，Ｔ１−３，Ｔ１−４，Ｔ２−１，Ｔ３−１  部分木
Ｔ９  代表木
【図１】
2017217163.tif 000005
【図２Ａ】
2017217163.tif 000006
【図２Ｂ】
2017217163.tif 000007
【図３Ａ】
2017217163.tif 000008
【図３Ｂ】
2017217163.tif 000009
【図４】
2017217163.tif 000010
【図５】
2017217163.tif 000011
【図６】
2017217163.tif 000012
【図７】
2017217163.tif 000013
【図８】
2017217163.tif 000014
【図９】
2017217163.tif 000015
【図１０】
2017217163.tif 000016
【図１１】
2017217163.tif 000017
【図１２】
2017217163.tif 000018
【図１３】
2017217163.tif 000019
【図１４】
2017217163.tif 000020
【図１５】
2017217163.tif 000021
【図１６】
2017217163.tif 000022
【図１７】
2017217163.tif 000023
【国際調査報告】
2017217163.tif 000024
2017217163.tif 000025