(57)【特許請求の範囲】
【請求項１】
ウェブサイトのコンテンツ及びスクリプトコードを解析する解析装置であって、
実システムのブラウザである実ブラウザにおける解析対象のウェブサイトのURL（Uniform  Resource  Locator）へのアクセスログと、前記実ブラウザの環境を模擬する疑似ブラウザにおける前記解析対象のウェブサイトのURLへのアクセスログとを入力とし、悪性URLに基づき、前記疑似ブラウザにおいて前記悪性URLへ転送されない転送パスであって前記実ブラウザにおいて前記悪性URLへ転送される転送パスを前記悪性URLへの特定転送パスとして特定する転送パス照合部と、
前記特定転送パスを基に、前記解析対象のウェブサイトにおいて実行されたスクリプトコードの中から、ブラウザ特有の機能或いは前記実ブラウザと前記疑似ブラウザとの実装差異を利用して解析を回避する解析回避コードを特定する特定部と、
を有し、
前記転送パス照合部は、前記実ブラウザ及び前記疑似ブラウザのアクセスログからそれぞれ転送グラフを構築し、構築した二つの転送グラフについて各転送パス同士を照合して前記特定転送パスを特定し、
前記特定部は、前記特定転送パスのうち前記疑似ブラウザにおいて前記悪性URLへ転送されない転送パスにおける前記悪性URLの直前のURLに相当するURLを末端のURLとして特定し、前記解析対象のウェブサイトにおいて実行されたスクリプトコードの中から、特定した前記末端のURLのアクセスに起因して実行されたスクリプトコードを、前記解析回避コードとして特定することを特徴とする解析装置。
【請求項２】
前記転送パス照合部は、ドメイン名、パス、クエリキー、クエリバリューの少なくとも一つを用いて転送パスを照合することを特徴とする請求項１に記載の解析装置。
【請求項３】
前記転送パス照合部は、ドメイン名、パス、クエリキー、クエリバリューの少なくとも一つの粒度で転送パスの照合を行い、各粒度で一致する数が最も多いURLを等しいとみなすことを特徴とする請求項２に記載の解析装置。
【請求項４】
ウェブサイトのコンテンツ及びスクリプトコードを解析する解析装置が実行する解析方法であって、
実システムのブラウザである実ブラウザにおける解析対象のウェブサイトのURLへのアクセスログと、前記実ブラウザの環境を模擬する疑似ブラウザにおける前記解析対象のウェブサイトのURLへのアクセスログとを入力とし、悪性URLに基づき、前記疑似ブラウザにおいて前記悪性URLへ転送されない転送パスであって前記実ブラウザにおいて前記悪性URLへ転送される転送パスを前記悪性URLへの特定転送パスとして特定する工程と、
前記特定転送パスを基に、前記解析対象のウェブサイトにおいて実行されたスクリプトコードの中から、ブラウザ特有の機能或いは前記実ブラウザと前記疑似ブラウザとの実装差異を利用して解析を回避する解析回避コードを特定する工程と、
を含み、
前記特定転送パスとして特定する工程は、前記実ブラウザ及び前記疑似ブラウザのアクセスログからそれぞれ転送グラフを構築し、構築した二つの転送グラフについて各転送パス同士を照合して前記特定転送パスを特定し、
前記解析回避コードを特定する工程は、前記特定転送パスのうち前記疑似ブラウザにおいて前記悪性URLへ転送されない転送パスにおける前記悪性URLの直前のURLに相当するURLを末端のURLとして特定し、前記解析対象のウェブサイトにおいて実行されたスクリプトコードの中から、特定した前記末端のURLのアクセスに起因して実行されたスクリプトコードを、前記解析回避コードとして特定することを特徴とする解析方法。
【請求項５】
コンピュータを、請求項１〜３のいずれか一つに記載の解析装置として機能させるための解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、解析装置、解析方法及び解析プログラムに関する。
【背景技術】
【０００２】
ドライブバイダウンロード攻撃（Drive-by  Download攻撃）は、ウェブサイトにアクセスしたクライアントを、主にHTML（HyperText  Markup  Language）タグやJavaScript（登録商標）を用いて異なるウェブサイトへ転送した後、攻撃コードを実行する悪性ウェブサイトへ転送する攻撃である。クライアントが悪性ウェブサイトにアクセスすると、ウェブブラウザ（以下、ブラウザと呼ぶ。）やブラウザのプラグイン（以下、プラグインと呼ぶ。）の脆弱性を悪用する攻撃コードが実行され、コンピュータウィルスなどの悪性プログラム（マルウェア）をダウンロード、インストールしてしまう。なお、以下、攻撃コードが実行されるウェブサイトやマルウェアをダウンロードするウェブサイトのURL（Uniform  Resource  Locator）を悪性URLと呼ぶ。【０００３】
ドライブバイダウンロード攻撃を検知する方法として、実システムのブラウザ（以下、実ブラウザと呼ぶ。）で悪性ウェブサイトへアクセスし、マルウェアをダウンロード、インストールすることによって、発生するファイルシステムの変化を検知する方法（例えば、非特許文献１参照）がある。また、ドライブバイダウンロード攻撃を検知する他の方法として、JavaScriptをブラウザのエミュレータ（以下、疑似ブラウザと呼ぶ。）で実行し、実行結果を解析することで悪性なJavaScriptを検知する方法（例えば、非特許文献２参照）などもある。【０００４】
これらの検知方法に対し、攻撃者は、アクセスしてきたクライアントを悪性URLへ転送する前に、このクライアントの種別やバージョンを識別し（以下、ブラウザフィンガープリンティングと呼ぶ。）、予め定めた攻撃対象とするクライアントのみを悪性URLへ転送するようJavaScriptの制御フローを変更することによって、攻撃の成功率を向上させる（例えば、非特許文献３参照）。【０００５】
ブラウザフィンガープリンティングには、例えば、HTTP（Hyper  Text  Transfer  Protocol）  cookie（クッキー）を使用してクライアントを個別に管理する方法、JavaScriptの機能を用いてクライアントを識別する方法、及び、プラグインの機能を用いてクライアントを識別する方法が一般的に知られている。【０００６】
これらの方法はいずれも、ブラウザやプラグインに実装されている機能を利用して、ブラウザやプラグインの種別、バージョン或いは識別子を文字列や数値として確認する。このため、ブラウザフィンガープリンティングのコードを検知、特定することは比較的容易である。【０００７】
一方、ブラウザフィンガープリンティングには、ブラウザ特有の機能を利用するものが存在する（例えば、非特許文献４、非特許文献５、非特許文献６参照）。【０００８】
また、悪性ウェブサイトでは、ブラウザ特有の機能を使用したり、意図的な例外処理を発生させたりすることによって、攻撃対象以外のクライアントで解析できないよう既存方法による解析を回避、妨害するコード（以下、解析回避コードと呼ぶ。）が用いられるものがある（例えば、非特許文献７参照）。【０００９】
この解析回避コードについては、例えば、各ブラウザで使用されているレンダリングエンジンやJavaScriptエンジンによるウェブコンテンツの解釈差異を悪用する方法がある。特に、疑似ブラウザは、実ブラウザにおける一般的な機能を模擬するよう実装されていることが多く、ブラウザ特有の機能が実装されていないことから、解析回避コードを実行（解釈）できない。【００１０】
また、解析回避コードは、一般的に公開されていない機能を使用することから、実ブラウザにおいても、監視や解析すべきコードを特定することができず、対策を講じることが困難であった。【００１１】
上述した複数の転送、ブラウザフィンガープリンティングコード及び解析回避コードは、エクスプロイトキットと呼ばれるツールで悪性ウェブサイトを構築すると、自動的に組み込まれる。そのため、近年では多くの悪性ウェブサイトに用いられている。【００１２】
したがって、上記した解析回避コードを特定し、既存技術で当該コードを解釈できるよう対策を講じることは、今後、悪性ウェブサイトを解析、検知する上で重要となってくる。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】L.  Lu,  V.  Yegneswaran,  P.  Porras,  and  W.  Lee,  “BLADE:  An  Attack-Agnostic  Approach  for  Preventing  Drive-By  Malware  Infections”,  Proc.  ACM  on  Conference  Computer  and  Communications  Security,  pp.  440−450,  2010.
【非特許文献２】M.  Cova,  C.  Kruegel,  and  G.  Vigna,  “Detection  and  Analysis  of  Drive-by-Download  Attacks  and  Malicious  JavaScript  Code”,  Proc.  World  Wide  Web  Conference,  pp.  281−290,  2010.
【非特許文献３】Y.  Takata,  M.  Akiyama,  T.  Yagi,  T.  Hariu,  and  S.  Goto,  “MineSpider:  Extracting  Hidden  URLs  Behind  Evasive  Drive-by  Download  Attacks”,  IEICE  Trans.  Information  and  System,  vol.  E99.D,  no.  4,  pp.  860−872,  2016.
【非特許文献４】N.  Nikiforakis,  A.  Kapravelos,  W.  Joosen,  C.  Kruegel,  F.  Piessens,  and  G.  Vigna,  “Cookieless  Monster:  Exploring  the  Ecosystem  of  Web-based  Device  Fingerprinting”,  Proc.  IEEE  Symposium  on  Security  and  Privacy,  2013.
【非特許文献５】C.  F.  Torres,  H.  Jonker,  and  S.  Mauw,  “FP-Block:  usable  web  privacy  by  controlling  browser  fingerprinting”,  Proc.  European  Symposium  on  Research  in  Computer  Security,  pp.  1−17,  2015.
【非特許文献６】Mozilla  Developer  Network,  “Vendor  Prefix”,  ［online］、［平成２８年１１月７日検索］、インターネット＜URL：https://developer.mozilla.org/en-US/docs/Glossary/Vendor_Prefix＞
【非特許文献７】A.  Kapravelos,  Y.  Shoshitaishvili,  M.  Cova,  C.  Kruegel,  and  G.  Vigna,  “Revolver:  An  Automated  Approach  to  the  Detection  of  Evasive  Web-based  Malware”,  In  Proceedings  of  the  USENIX  Security  Symposium,  2013.
【発明の概要】
【発明が解決しようとする課題】
【００１４】
このように、従来、ドライブバイダウンロード攻撃方法の一つとして、ブラウザフィンガープリンティングを用いて、特定のブラウザのみを悪性URLへ転送する方法が知られていた。そして、ドライブバイダウンロード攻撃の検知や特定する方法として、実ブラウザ、または、疑似ブラウザにより悪性URLにアクセスして動作を解析する方法がいくつか提案されている。【００１５】
しかしながら、ブラウザ特有の機能や実ブラウザと疑似ブラウザとの実装差異を悪用する解析回避コードを用いたドライブバイダウンロード攻撃に対して、疑似ブラウザを用いた既存技術では、ブラウザ特有の機能が実装されていないことが多いため、解析回避コードを解釈できず、ウェブサイトを解析できないという問題があった。また、解析回避コードは、悪用する機能や実装差異の特定が困難であるという問題があった。【００１６】
本発明は、上記に鑑みてなされたものであって、解析対象ウェブサイトで実行されたすべてのスクリプトコードの中から、ブラウザ特有の機能或いは実ブラウザと疑似ブラウザとの実装差異を利用して解析を回避する解析回避コードを解析対象として特定することができる解析装置、解析方法及び解析プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明の解析装置は、ウェブサイトのコンテンツ及びスクリプトコードを解析する解析装置であって、実システムのブラウザである実ブラウザにおける解析対象のウェブサイトのURLへのアクセスログと、実ブラウザの環境を模擬する疑似ブラウザにおける解析対象のウェブサイトのURLへのアクセスログとを入力とし、悪性URLに基づき、疑似ブラウザにおいて悪性URLへ転送されない転送パスであって実ブラウザにおいて悪性URLへ転送される転送パスを特定転送パスとして特定する転送パス照合部と、特定転送パスを基に、ウェブサイトにおいて実行されたスクリプトコードの中から、ブラウザ特有の機能或いは実ブラウザと疑似ブラウザとの実装差異を利用して解析を回避する解析回避コードを特定する特定部と、を有することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、解析対象ウェブサイトで実行されたすべてのスクリプトコードの中から、ブラウザ特有の機能或いは実ブラウザと疑似ブラウザとの実装差異を利用して解析を回避する解析回避コードを解析対象として特定することができる。
【図面の簡単な説明】
【００１９】
【図１】図１は、本実施の形態に係る解析装置の構成を示すブロック図である。
【図２】図２は、図１に示す転送パス照合部の処理を説明するための図である。
【図３】図３は、図１に示す転送パス照合部が実行するURLの分解について説明するための図である。
【図４】図４は、図１に示す転送パス照合部の処理を説明するための図である。
【図５】図５は、図１に示す解析装置による解析回避コードを特定するまでの解析処理の処理手順を示すフローチャートである。
【図６】図６は、図５に示す悪性転送パスの照合処理の処理手順を示すフローチャートである。
【図７】図７は、プログラムが実行されることにより解析装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００２１】
［実施の形態］
本発明の実施の形態について説明する。本発明の実施の形態では、ウェブサイトのコンテンツ及びスクリプトコードを解析する解析装置、解析方法及び解析プログラムについて説明する。まず、実施の形態における解析装置の概略について説明する。
【００２２】
［解析装置の構成］
図１は、本実施の形態に係る解析装置の構成を示すブロック図である。図１に示すように、解析装置１０は、入力部１１、通信部１２、記憶部１３、悪性URLデータベース１４、制御部１５及び出力部１６を有する。解析装置１０は、ウェブブラウザの特有な機能や実ブラウザと疑似ブラウザとの実装差異を使用してブラウザの種別やバージョンを識別し、解析を回避する解析回避コードを特定する。なお、実施の形態では、スクリプトコードのうち、JavaScriptコードを解析する場合を例に説明する。
【００２３】
入力部１１は、解析装置１０の操作者からの各種操作を受け付ける入力インタフェースである。例えば、入力部１１は、タッチパネル、音声入力デバイス、キーボードやマウス等の入力デバイスによって構成される。
【００２４】
通信部１２は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部１２は、NIC（Network  Interface  Card）等で実現され、LAN（Local  Area  Network）やインターネットなどの電気通信回線を介した他の装置と制御部１５との間の通信を行う。
【００２５】
具体的には、通信部１２は、実システムのブラウザである実ブラウザにおいて取得された解析対象ウェブサイトへのアクセスログである実ブラウザログＬａを、ネットワークなどを介して、制御部１５に入力する。そして、通信部１２は、この実ブラウザを動作させる実ブラウザの環境（OS（Operating  System）、ブラウザ或いはプラグイン）を模擬する疑似ブラウザにおいて取得された解析対象ウェブサイトへのアクセスログであるブラウザエミュレータログＬｂ（疑似ブラウザのアクセスログ）を、ネットワークなどを介して、制御部１５に入力する。この通信部１２を介して入力される実ブラウザログＬａ及びブラウザエミュレータログＬｂは、それぞれ同じ解析対象ウェブサイトのURLにアクセスした際のログである。そして、実ブラウザログＬａは、悪性URLへ転送されるログを含み、ブラウザエミュレータログＬｂは、悪性URLへ転送されるログを含まないものとする。
【００２６】
なお、疑似ブラウザは、実ブラウザが動作する環境を模擬するものとする。また、疑似ブラウザは、実ブラウザと同じブラウザ種別と同じバージョンを模擬するが、実ブラウザとは内部実装が異なるものである。これは、疑似ブラウザで実ブラウザが動作する環境とは異なる環境を模擬した場合、解析回避コードではなく、通常のブラウザフィンガープリンティングコードも解析対象となってしまうためである。これは、疑似ブラウザの代わりに、異なる環境の実ブラウザを使用した場合も同様である。
【００２７】
さらに、通信部１２は、このウェブサイトで実行されたJavaScriptコードを示す実行されたJavaScriptコード情報Ｄｃを、ネットワークなどを介して、制御部１５に入力する。
【００２８】
記憶部１３は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、解析装置１０を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。
【００２９】
悪性URLデータベース１４は、既知の悪性URLを記録したデータベースである。悪性URLデータベース１４は、アンチウィルス等の既知の悪性URLを記録する。また、これらの既知の悪性URLは、既存の攻撃検知技術（例えば、非特許文献１及び非特許文献２参照）で検知したURLであってもよい。転送パス照合部１５１（後述）は、悪性URLデータベース１４に記録された悪性URLと、照合対象のURLとを照合することによって、悪性URLを特定する。なお、解析装置１０は、悪性URLデータベース１４を有する構成に限らず、既知の悪性URLを記録したリストを記憶部１３に記憶する構成であってもよい。
【００３０】
制御部１５は、各種の処理手順などを規定したプログラム及び所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部１５は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。制御部１５は、転送パス照合部１５１及び解析回避コード特定部１５２（特定部）を有する。
【００３１】
転送パス照合部１５１は、実ブラウザログＬａと、ブラウザエミュレータログＬｂとを入力とし、悪性URLに基づき、疑似ブラウザにおいて悪性URLへ転送されない転送パスであって実ブラウザにおいて悪性URLへ転送される転送パスを特定転送パスとして特定する。転送パス照合部１５１は、実ブラウザ及び疑似ブラウザで取得したアクセスログ（実ブラウザログＬａ、ブラウザエミュレータログＬｂ）からそれぞれ転送グラフを構築する。そして、転送パス照合部１５１は、構築した二つの転送グラフについて各転送パス同士を照合して、特定転送パスを特定する。
【００３２】
具体的には、転送パス照合部１５１は、実ブラウザログＬａ及びブラウザエミュレータログＬｂに含まれる転送元URL情報と転送先URL情報とに基づき転送グラフを構築する（詳細は、例えば、T.  Nelms,  R.  Perdisci,  M.  Antonakakis,  and  M.  Ahamad,  “WebWitness:  Investigating,  Categorizing,  and  Mitigating  Malware  Download  Paths”,  in  Proceedings  of  USENIX  Security  Symposium,  2015を参照）。
【００３３】
そして、転送パス照合部１５１は、構築した転送グラフにおける各転送パス同士を照合する。転送パス照合部１５１は、悪性URLデータベース１４に記録された悪性URLと、各転送パス内のURLとを照合することによって、各転送パス内の悪性URLを特定する。続いて、転送パス照合部１５１は、疑似ブラウザにおいて悪性URLへ転送されない転送パスであって実ブラウザにおいて悪性URLへ転送される転送パスを特定する。言い換えると、転送パス照合部１５１は、照合した転送パスに基づき、実ブラウザに含まれる悪性URLへの転送パスに該当する疑似ブラウザの転送パスを特定転送パスとして特定する。なお、転送パス照合部１５１は、ドメイン名、パス、クエリキー、クエリバリューを用いて転送パスを照合する。
【００３４】
解析回避コード特定部１５２は、転送パス照合部１５１によって特定された特定転送パスを基に、解析対象のウェブサイトで実行されたJavaScriptコード情報Ｄｃに含まれるJavaScriptコードの中から、解析回避コードを特定する。解析回避コードは、ブラウザ特有の機能或いは実ブラウザと疑似ブラウザとの実装差異を利用して解析を回避するコードである。
【００３５】
具体的には、解析回避コード特定部１５２は、転送パス照合部１５１が特定した特定転送パスのうち末端のURLである末端URLを特定する。解析回避コード特定部１５２は、実行されたJavaScriptコード情報Ｄｃに含まれるJavaScriptコードの中から、特定した末端URLのアクセスに起因して実行されたJavaScriptコードを、解析回避コードとして特定する。言い換えると、解析回避コード特定部１５２は、特定した末端URLで実行されたJavaScriptコードを、解析回避コードとして特定する。
【００３６】
出力部１６は、例えば、液晶ディスプレイなどの表示装置、プリンター等の印刷装置、情報通信装置等によって実現される。出力部１６は、解析結果等を操作者に対して出力する。
【００３７】
［転送パス照合部の処理］
次に、転送パス照合部１５１の処理について具体的に説明する。図２は、図１に示す転送パス照合部１５１の処理を説明するための図である。図２は、実ブラウザと疑似ブラウザの二つのアクセスログで構築した転送グラフの一例を示す。図２の（ａ）は、実ブラウザログＬａで構築した転送グラフを示し、図２の（ｂ）は、ブラウザエミュレータログＬｂで構築した転送グラフを示す。
【００３８】
具体的には、転送パス照合部１５１は、図２の（ａ）に示すように、実ブラウザログＬａを用いて転送グラフを構築することによって、実ブラウザログＬａにおける転送パス（URL1、URL2）、（URL1、URL3、URL5）、（URL1、URL4、URL6、URL7）、（URL1、URL4、URL6、URL8）を取得する。また、転送パス照合部１５１は、図２の（ｂ）に示すように、ブラウザエミュレータログＬｂを用いて転送グラフを構築することによって、疑似ブラウザにおける転送パスＰ１１（URL1、URL2）、Ｐ１２（URL1、URL3、URL5）、Ｐ１３（URL1、URL4、URL6、URL8）を取得する。
【００３９】
ここで、URL7が悪性URLである場合を例に説明する。この場合、転送パス照合部１５１は、悪性URLデータベース１４を参照することによって、実ブラウザにおける転送パスＰ１（URL1、URL4、URL6、URL7）におけるURL7が、悪性URLであることを特定する（図２の（１）参照）。そして、転送パス照合部１５１は、この悪性URLであるURL7を含む、実ブラウザにおける転送パスＰ１が悪性URLへの転送パスであることを特定する。
【００４０】
続いて、転送パス照合部１５１は、実ブラウザにおける転送パスと、疑似ブラウザにおける転送パスとを照合する（図２の（２）参照）。そして、転送パス照合部１５１は、疑似ブラウザにおける転送パスＰ１１〜Ｐ１３のうち、実ブラウザにおける悪性URLへの転送パスＰ１と、同じURLの数が最も多い転送パスＰ１３（URL1、URL4、URL6、URL8）を、疑似ブラウザにおいて悪性URLへ転送されない転送パスであって実ブラウザにおいて悪性URLへ転送される転送パスである特定転送パスとして特定する（図２の（３）参照）。
【００４１】
そして、解析回避コード特定部１５２は、実ブラウザの転送パスＰ１と、疑似ブラウザにおいて特定した転送パスＰ１３との共通ノードにおける末端URLとして、URL6を特定する（図２の（４）参照）。なお、疑似ブラウザにおける転送パスＰ１３内のURL8は、実ブラウザの転送パスに含まれないため、末端URLの特定対象からは除外される。
【００４２】
これによって、解析回避コード特定部１５２は、転送パス照合部１５１が特定した末端URLであるURL6で実行されたJavaScriptコードを、解析回避コードとして特定する。
【００４３】
続いて、転送パス照合部１５１の処理の他の例について説明する。図３は、図１に示す転送パス照合部１５１が実行するURLの分解について説明するための図である。図３に示すように、転送パス照合部１５１は、URLをドメイン名、パス、クエリキー、クエリバリューに分解する。例えば、転送パス照合部１５１は、枠Ｕａに示す「URL：http://a.example/b/c.html?d=e&f=g」を、枠Ｐａに示すように、「ドメイン名：a.example」、「パス：/b/c.html」、「クエリキー：d,f」、「クエリバリュー：e,g」に分解する。
【００４４】
そして、転送パス照合部１５１は、転送パスをそれぞれドメイン名、パス、クエリキー、クエリバリューに分解し、分解した各ドメイン名、パス、クエリキー、クエリバリューを用いて転送パス同士を照合する。図４は、図１に示す転送パス照合部１５１の処理を説明するための図である。図４は、図３で説明したようにURLをドメイン名、パス、クエリキー、クエリバリューに分解して表記した実ブラウザと疑似ブラウザの二つのアクセスログで構築した転送グラフの一例を示す。図４の（ａ）は、実ブラウザログＬａで構築した転送グラフを示し、図４の（ｂ）は、ブラウザエミュレータログＬｂで構築した転送グラフを示す。
【００４５】
具体的には、転送パス照合部１５１は、図４の（ａ）に示すように、実ブラウザログＬａについては、転送パス（domain1/path1?query1、domain2/path2?query2）、（domain1/path1?query1、domain3/path3?query3）、（domain1/path1?query1、domain4/path4?query4、domain5/path5?query5）、（domain1/path1?query1、domain4/path4?query4、domain6/path6?query6）を取得する。また、転送パス照合部１５１は、図４の（ｂ）に示すように、ブラウザエミュレータログＬｂについては、転送パスＰ２１（domain1/path1?query1、domain2/path2?query2）、Ｐ２２（domain1/path1?query1、domain3/path3?query3）、Ｐ２３（domain1/path1?query1、domain4/path4?query7、domain6/path6?query6）を取得する。
【００４６】
ここで、「domain5/path5?query5」が悪性URLである場合を例に説明する。この場合、転送パス照合部１５１は、実ブラウザにおける転送パスＰ２の「domain5/path5?query5」（図４の（ａ）の枠Ｕ１参照）が、悪性URLであることを特定する（図４の（１）参照）。そして、転送パス照合部１５１は、「domain5/path5?query5」を含む、実ブラウザにおける転送パスＰ２が悪性URLへの転送パスであることを特定する。
【００４７】
そして、転送パス照合部１５１は、実ブラウザにおける転送パスと、疑似ブラウザにおける転送パスとを照合する（図４の（２）参照）。この場合、疑似ブラウザにおける転送パスＰ２１〜Ｐ２３は、実ブラウザにおける転送パスＰ２に対し、URLの粒度ではいずれの転送パスも同じURLの数が等しい。すなわち、疑似ブラウザにおける転送パスＰ２１〜Ｐ２３は、実ブラウザログＬａにおける転送パスＰ２に対し、いずれの転送パスも「domain1/path1?query1」と「domain2/path2?query2」または「domain3/path3?query3」または「domain6/path6?query6」の２つのURLが等しい。
【００４８】
このような場合は、転送パス照合部１５１は、ドメイン名、パス、クエリキー、クエリバリューの粒度で照合を行い、各粒度で一致する数が最も多いURLを等しいとみなし、転送パスの照合を行う。
【００４９】
具体的には、転送パス照合部１５１は、疑似ブラウザにおける転送パスＰ２１〜Ｐ２３のうち、実ブラウザにおける転送パスＰ２におけるURL「domain4/path4?query4」（図４の枠Ｕ２参照）と一致する数が最も多い疑似ブラウザのURLを求める（図４の（３）参照）。
【００５０】
図４の例では、転送パス照合部１５１は、実ブラウザにおける転送パスＰ２におけるURL「domain4/path4?query4」と一致する数が最も多い疑似ブラウザのURＬとして、転送パスＰ２３の「domain4/path4?query7」（図４の枠Ｕ３参照）を求める。そして、転送パス照合部１５１は、この転送パスＰ２３の「domain4/path4?query7」（図４の枠Ｕ３参照）を、実ブラウザにおける転送パスＰ２におけるURL「domain4/path4?query4」（図４の枠Ｕ２参照）と等しいとみなす。
【００５１】
なお、転送パス照合部１５１は、URLの照合粒度のうち、ドメイン名、パス、クエリキー、クエリバリューの全てを考慮して照合を行ってもよいし、ドメイン名、パス、クエリキー、クエリバリューいずれかを考慮するように照合処理を変更してもよい。
【００５２】
続いて、解析回避コード特定部１５２は、疑似ブラウザの転送パスＰ２３（domain1/path1?query1、domain4/path4?query7、domain6/path6?query6）上の「domain4/path4?query7」を、末端URLとして特定する（図４の（４）参照）。なお、疑似ブラウザにおける転送パスＰ２３内の「domain6/path6?query6」は、末端URLの特定対象からは除外される。
【００５３】
そして、解析回避コード特定部１５２は、特定した末端URLである「domain4/path4?query7」で実行されたJavaScriptコードを、解析回避コードとして特定する。
【００５４】
［解析処理の処理手順］
図５は、図１に示す解析装置１０による解析回避コードを特定するまでの解析処理の処理手順を示すフローチャートである。
【００５５】
まず、図５に示すように、転送パス照合部１５１は、実ブラウザ及び疑似ブラウザによるウェブサイトへのアクセスログを取得する（ステップＳ１）。この場合、転送パス照合部１５１は、同じ解析対象のウェブサイトに対する実ブラウザログＬａ、ブラウザエミュレータログＬｂを取得する。続いて、転送パス照合部１５１は、悪性URLデータベース１４から悪性URLを一つ取得する（ステップＳ２）。
【００５６】
そして、転送パス照合部１５１は、ステップＳ１において取得した実ブラウザログＬａに、ステップＳ２において取得した悪性URLを含むか否かを判断する（ステップＳ３）。転送パス照合部１５１は、取得した実ブラウザログＬａに悪性URLを含むと判断した場合（ステップＳ３：Ｙｅｓ）、ステップＳ４に進む。
【００５７】
転送パス照合部１５１は、ステップＳ１において取得した疑似ブラウザのアクセスログ（ブラウザエミュレータログＬｂ）に、ステップＳ２において取得した悪性URLを含まないか否かを判断する（ステップＳ４）。
【００５８】
ブラウザエミュレータログＬｂに悪性URLを含まないと転送パス照合部１５１が判断した場合（ステップＳ４：Ｙｅｓ）、転送パス照合部１５１及び解析回避コード特定部１５２は、悪性転送パスの照合処理を行う（ステップＳ５）。このステップＳ５の処理においては、転送パス照合部１５１及び解析回避コード特定部１５２は、実ブラウザログＬａ、ブラウザエミュレータログＬｂ、及び、解析対象のウェブサイトにおいて実行されたJavaScriptコード情報Ｄｃを入力とする。そして、転送パス照合部１５１は、ステップＳ５の処理においては、実ブラウザ中の悪性URLへの転送パスに該当する疑似ブラウザログ中の転送パスを照合し、解析回避コード特定部１５２は、照合して得られた疑似ブラウザログ中の転送パスの末端URLを特定する。続いて、解析回避コード特定部１５２は、実行されたJavaScriptコード情報Ｄｃから、特定した末端URLへのアクセスに起因して実行されたJavaScriptコードを解析回避コードとして特定する。
【００５９】
そして、転送パス照合部１５１が、取得した実ブラウザログＬａに悪性URLを含まないと判断した場合（ステップＳ３：Ｎｏ）、ブラウザエミュレータログＬｂに悪性URLを含むと判断した場合（ステップＳ４：Ｎｏ）、或いは、悪性転送パスの照合処理を終了した場合、ステップＳ６に進む。転送パス照合部１５１は、ステップＳ６として、取得した実ブラウザログＬａ及びブラウザエミュレータログＬｂに対し、悪性URLデータベース１４に含まれるすべての悪性URLを照合したか否かを判断する（ステップＳ６）。
【００６０】
転送パス照合部１５１は、悪性URLデータベース１４に含まれるすべての悪性URLを照合していないと判断した場合（ステップＳ６：Ｎｏ）、ステップＳ２に戻り、次に照合対象となる悪性URLを悪性URLデータベース１４から取得する。一方、転送パス照合部１５１は、悪性URLデータベース１４に含まれるすべての悪性URLを照合したと判断した場合（ステップＳ６：Ｙｅｓ）、解析結果を出力して、解析処理を終了する。
【００６１】
［悪性転送パスの照合処理の処理手順］
次に、図５に示す悪性転送パスの照合処理の処理手順について説明する。図６は、図５に示す悪性転送パスの照合処理の処理手順を示すフローチャートである。
【００６２】
まず、図６に示すように、転送パス照合部１５１は、実ブラウザログＬａ内におけるルートURLから悪性URLまでの転送パス−Ａ（URLのリスト）を取得する（ステップＳ７）。次に、転送パス照合部１５１は、疑似ブラウザのアクセスログ（ブラウザエミュレータログＬｂ）内におけるルートURLから各末端URLまでの転送パス群−Ｂを取得する（ステップＳ８）。転送パス照合部１５１は、このステップＳ７，Ｓ８の処理において、図２を用いて説明したように、アクセスログに含まれる転送元URL情報と転送先URL情報とに基づき転送グラフを構築することによって転送パスを取得する。或いは、転送パス照合部１５１は、アクセスログに含まれるURLをドメイン名、パス、クエリキー、クエリバリューに分解後に転送グラフを構築することによって転送パスを取得する。
【００６３】
転送パス照合部１５１は、取得した転送パス群−Ｂから一つずつ転送パスを取得し、転送パス−Ａに含まれるURLと最もマッチした数の多い転送パス−Ｃを取得する（ステップＳ９）。そして、転送パス照合部１５１は、取得した転送パス−Ｃが単一か否かを判断する（ステップＳ１０）。
【００６４】
転送パス照合部１５１は、取得した転送パス−Ｃが単一でない、すなわち、転送パス−Ｃが複数あると判断した場合（ステップＳ１０：Ｎｏ）、ステップＳ１１に進む。
【００６５】
転送パス照合部１５１は、ステップＳ１１において、転送パス−Ａ及び転送パス群−Ｂに含まれるURLをドメイン名、パス、クエリ（クエリキー、クエリバリュー）に分解し、転送パス群−Ｂの転送パスの内、転送パス−Ａ内のURLと最もマッチした数の多い転送パス−Ｃを取得する。すなわち、転送パス照合部１５１は、ステップＳ１１において、ステップＳ９におけるURLの照合処理と同様に、URLごとに、転送パス−Ａと転送パス群−Ｂとにおけるドメイン名、パス、クエリをそれぞれ照合し、最もマッチした数の多い転送パス−Ｃを取得する。転送パス照合部１５１が取得した転送パス−Ｃは、疑似ブラウザにおいて悪性URLへ転送されない転送パスであって実ブラウザにおいて悪性URLへ転送される転送パスである特定転送パスである。
【００６６】
なお、転送パス照合部１５１は、ステップＳ１１を行っても転送パス−Ｃが一つに定まらない場合は、例えば、複数の転送パス−Ｃの中からランダムに選択した一つの転送パスを転送パス−Ｃとする。
【００６７】
転送パス−Ｃが単一であると転送パス照合部１５１が判断した場合（ステップＳ１０：Ｙｅｓ）、または、ステップＳ１１の処理が終了した場合、解析回避コード特定部１５２は、ステップＳ１２の処理を実行する。すなわち、解析回避コード特定部１５２は、実行されたJavaScriptコード情報Ｄｃに含まれるJavaScriptコードの中から、転送パス照合部１５１が取得した転送パス−Ｃの末端URLにおいて実行されたJavaScriptコードを、攻撃回避コードとして取得し、悪性転送パスの照合処理を終了する。
【００６８】
［実施の形態の効果］
上述のように、本実施の形態では、解析対象のウェブサイトのURLに対する実ブラウザログＬａ及びブラウザエミュレータログＬｂを入力とし、悪性URLに基づいて疑似ブラウザにおいて悪性URLへ転送されない転送パスであって実ブラウザにおいて悪性URLへ転送される転送パスを特定転送パスとして特定し、該特定した転送パスを基に、ウェブサイトにおいて実行されたスクリプトコードの中から解析回避コードを特定している。
【００６９】
したがって、実施の形態によれば、これまで特定が難しかった、ブラウザ特有の機能或いは実ブラウザと疑似ブラウザとの実装差異を利用して解析を回避する解析回避コードの特定することが可能になる。そして、本実施の形態によれば、特定した解析回避コードを手動等で解析することによって、解析回避コードの特定の効率化、悪性ウェブサイト検知のためのシグネチャの生成、疑似ブラウザの文字性能の改善を図ることができる。
【００７０】
また、本実施の形態では、実ブラウザ及び当該実ブラウザ環境を模擬する疑似ブラウザで取得したアクセスログからそれぞれ転送グラフを構築し、構築した二つの転送グラフについて各転送パス同士を照合する。この結果、本実施の形態では、特定転送パスを適切に特定することができる。そして、本実施の形態では、この特定した転送パスのうちの末端URLを求め、実行されたJavaScriptコードの中から末端URLのアクセスに起因して実行されたJavaScriptコードを特定することによって、解析回避コードを適切に特定することができる。
【００７１】
また、本実施の形態では、疑似ブラウザにおいて悪性URLへ転送されない転送パスであって実ブラウザにおいて悪性URLへ転送される転送パスが複数ある場合であっても、ドメイン名、パス、クエリキー、クエリバリューを用いて転送パスを分解した上で転送パスの照合を行う。このため、本実施の形態によれば、特定転送パスを適切に特定することができ、解析回避コードの特定も適切に実行することができる。
【００７２】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７３】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７４】
［プログラム］
図７は、プログラムが実行されることにより、解析装置１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００７５】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００７６】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、解析装置１０の各処理を規定するプログラムは、コンピュータ１０００により実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、解析装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００７７】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００７８】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００７９】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００８０】
１０  解析装置
１１  入力部
１２  通信部
１３  記憶部
１４  悪性URLデータベース
１５  制御部
１６  出力部
１５１  転送パス照合部
１５２  解析回避コード特定部
【図１】
0006666475.tif 000002
【図２】
0006666475.tif 000003
【図３】
0006666475.tif 000004
【図４】
0006666475.tif 000005
【図５】
0006666475.tif 000006
【図６】
0006666475.tif 000007
【図７】
0006666475.tif 000008