(57)【特許請求の範囲】
【請求項１】
悪性アプリケーションの挙動に関連する情報で構成される複数のパターンと、前記パターンに関連付けられ、前記悪性アプリケーションの挙動の代表的な特性を示す代表特性情報と、前記代表特性情報に関連付けられ、前記悪性アプリケーションの危険度を示す数値とを記憶する記憶部と、
アプリケーションの挙動を記録したアプリケーションログ、カーネルの挙動を記録したカーネルログ、および通信時に送信および受信されるパケットの情報を記録した通信ログのそれぞれに記録されている情報と前記複数のパターンとを比較する比較部と、
前記アプリケーションログ、前記カーネルログ、または前記通信ログに記録されている情報と一致した前記パターンに関連付けられた前記代表特性情報および前記数値の組合せを抽出する抽出部と、
前記抽出部によって複数種類の前記組合せが抽出された場合、抽出された複数種類の前記組合せの前記数値を比較し、最も高い危険度を示す前記数値を含む前記組合せを選択する選択部と、
を備えたことを特徴とするアプリケーション特性解析装置。
【請求項２】
前記選択部によって選択された前記組合せを表示する表示部をさらに備えたことを特徴とする請求項１に記載のアプリケーション特性解析装置。
【請求項３】
前記比較部はさらに、アプリケーションを構成するファイルの情報と前記複数のパターンとを比較することを特徴とする請求項１または請求項２に記載のアプリケーション特性解析装置。
【請求項４】
前記比較部はさらに、第１の時点と第２の時点の間に追加または変更されたファイルの情報と前記複数のパターンとを比較することを特徴とする請求項１〜請求項３のいずれか一項に記載のアプリケーション特性解析装置。
【請求項５】
前記比較部はさらに、アプリケーションのコード解析を行って得られる情報と前記複数のパターンとを比較することを特徴とする請求項１〜請求項４のいずれか一項に記載のアプリケーション特性解析装置。
【請求項６】
前記抽出部は、前記比較部が所定の単位で比較を行う毎に前記組合せを抽出し、
前記選択部は、前記比較部が所定の単位で比較を行う毎に、前記抽出部によって抽出された複数種類の前記組合せの前記数値を比較し、最も高い危険度を示す前記数値を含む前記組合せを選択し、
前記選択部によって選択された前記組合せに含まれる前記数値が所定の数値である場合に、前記比較部は、比較を行う動作を停止する
ことを特徴とする請求項１〜請求項５のいずれか一項に記載のアプリケーション特性解析装置。
【請求項７】
悪性アプリケーションの挙動に関連する情報で構成される複数のパターンと、前記パターンに関連付けられ、前記悪性アプリケーションの挙動の代表的な特性を示す代表特性情報と、前記代表特性情報に関連付けられ、前記悪性アプリケーションの危険度を示す数値とを記憶する記憶部と、
アプリケーションの挙動を記録したアプリケーションログ、カーネルの挙動を記録したカーネルログ、および通信時に送信および受信されるパケットの情報を記録した通信ログのそれぞれに記録されている情報と前記複数のパターンとを比較する比較部と、
前記アプリケーションログ、前記カーネルログ、または前記通信ログに記録されている情報と一致した前記パターンに関連付けられた前記代表特性情報および前記数値の組合せを抽出する抽出部と、
前記抽出部によって複数種類の前記組合せが抽出された場合、抽出された複数種類の前記組合せの前記数値を比較し、最も高い危険度を示す前記数値を含む前記組合せを選択する選択部と、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数種類のログの情報からアプリケーションの特性を解析するアプリケーション特性解析装置に関する。また、本発明は、本アプリケーション特性解析装置としてコンピュータを機能させるためのプログラムにも関する。
【背景技術】
【０００２】
昨今、PCに近い高機能を実現したスマートフォンの普及が進んでいる。また、スマートフォンに実装されるOS（オペレーティングシステム）として、例えばオープンプラットフォームと呼ばれる汎用的なOSであるAndroidが採用されている。このようなOS上で動作する多数のアプリケーションがインターネット上で公開されており、スマートフォンのユーザは必要なアプリケーションを選択してスマートフォンにインストールすることが可能である。
【０００３】
しかし、スマートフォンの普及に伴って、利用者の個人情報の窃盗や、悪性サイトへの誘導、OSの管理者権限の奪取など、利用者が意図せず不利益を被る可能性のある振る舞いを行う悪性アプリケーションも登場している。このような悪性アプリケーションを検知することが重要である。
【０００４】
Androidでは、悪性アプリケーションを検知する方法として、Dalvikと呼ばれる仮想マシン上でのアプリケーションのデバッグツールであるDalvik Debug Monitor Service（DDMS）またはLogcatを利用して収集されるアプリケーションログを解析する手法がある。また、Dalvik仮想マシンよりも下のレイヤとなるLinux（登録商標）のカーネル内でシステムコールを監視するstraceを利用して収集されるカーネルログや、Linux（登録商標）に組み込まれるネットワークデバイスドライバで送受信用のパケットを監視するtcpdumpを利用して収集される通信ログも利用できる。
【０００５】
この他、アプリケーションの実行コードを解析する手法もある。また、Androidアプリケーションは複数のファイルで構成されており、アプリケーションを構成する構成ファイルのファイル名を解析する手法（例えばアンチウイルスソフト）や、アプリケーションのインストールによって追加または変更されるファイルのファイル名を解析する手法（例えば特定のIDS（Intrusion Detection System））もある。なお、特許文献１には、ネットワーク機器から出力されるログの分析を行う手法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２４３３３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記のような複数のログや、ファイル、実行コードのそれぞれを解析することで、悪性アプリケーションを見逃しなく検知できるようになる。しかし、Dalvik仮想マシン上の挙動は、Linux（登録商標）層での挙動にも現れるため、挙動がログに二重に記録される問題がある。さらに、ネットワーク攻撃を行う悪性アプリケーションが動作する場合には、その挙動が通信ログにも記録されることで、挙動がログに三重に記録されることになる。
【０００８】
特定の実行コードを含んだファイルをアプリケーションに内包することで上記のような悪意の挙動が実現される場合があり、その場合には、実行コードや、アプリケーションを構成するファイル、アプリケーションのインストール前後で変化するファイルにも攻撃の痕跡が現れる。１つのアプリケーションの特性を解析するために、重複した悪意の挙動を個々に解析すると、同一の挙動に関連する情報を何度も検知することになり、アプリケーションの特性が過剰に強調されてしまうことになる。
【０００９】
例えば、個人情報を漏洩するアプリケーションの挙動に関して、上記のログやファイル等の解析を行うと、以下のように複数の情報が検知される。
アプリケーションログ（DDMSログ）の解析結果： 端末の電話番号の外部への送信を検知（危険度：2）。
アプリケーションログ（Straceログ）の解析結果：ディスクからメモリへの端末の電話番号の読み出しを検知（危険度：1）。
通信ログ（Tcpdumpログ）の解析結果：特定のIPアドレスへの端末の電話番号の送信を検知（危険度：2）。
実行コードの解析結果： 端末の電話番号の読み取り機能を検知（危険度：1）、外部ホストとの通信機能を検知（危険度：0）。
アプリケーションの構成ファイルのファイル名の解析結果：端末の電話番号を外部ホストへ送信する機能を検知（危険度：2）。
追加されたファイルのファイル名の解析結果：端末の電話番号を外部ホストへ送信する機能を検知（危険度：2）。
【００１０】
上記のように検知された複数の情報を区別して解析結果として出力すると、解析結果が分かりにくくなり、危険な挙動が多数検知されたと管理者等を錯覚させてしまい、複数の情報に共通する悪意の挙動を管理者等が把握することが困難となる。したがって、ログやファイル等の解析によって検知される複数の情報を集約した解析結果を得ることが望ましい。
【００１１】
本発明は、上述した課題に鑑みてなされたものであって、悪性アプリケーションの挙動に関連する代表的な情報を得ることができる情報アプリケーション特性解析装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、上記の課題を解決するためになされたもので、悪性アプリケーションの挙動に関連する情報で構成される複数のパターンと、前記パターンに関連付けられ、前記悪性アプリケーションの挙動の代表的な特性を示す代表特性情報と、前記代表特性情報に関連付けられ、前記悪性アプリケーションの危険度を示す数値とを記憶する記憶部と、アプリケーションの挙動を記録したアプリケーションログ、カーネルの挙動を記録したカーネルログ、および通信時に送信および受信されるパケットの情報を記録した通信ログのそれぞれに記録されている情報と前記複数のパターンとを比較する比較部と、前記アプリケーションログ、前記カーネルログ、または前記通信ログに記録されている情報と一致した前記パターンに関連付けられた前記代表特性情報および前記数値の組合せを抽出する抽出部と、前記抽出部によって複数種類の前記組合せが抽出された場合、抽出された複数種類の前記組合せの前記数値を比較し、最も高い危険度を示す前記数値を含む前記組合せを選択する選択部と、を備えたことを特徴とするアプリケーション特性解析装置である。
【００１３】
また、本発明のアプリケーション特性解析装置は、前記選択部によって選択された前記組合せを表示する表示部をさらに備えたことを特徴とする。
【００１４】
また、本発明のアプリケーション特性解析装置において、前記比較部はさらに、アプリケーションを構成するファイルの情報と前記複数のパターンとを比較することを特徴とする。
【００１５】
また、本発明のアプリケーション特性解析装置において、前記比較部はさらに、第１の時点と第２の時点の間に追加または変更されたファイルの情報と前記複数のパターンとを比較することを特徴とする。
【００１６】
また、本発明のアプリケーション特性解析装置において、前記比較部はさらに、アプリケーションのコード解析を行って得られる情報と前記複数のパターンとを比較することを特徴とする。
【００１８】
また、本発明のアプリケーション特性解析装置において、前記抽出部は、前記比較部が所定の単位で比較を行う毎に前記組合せを抽出し、前記選択部は、前記比較部が所定の単位で比較を行う毎に、前記抽出部によって抽出された複数種類の前記組合せの前記数値を比較し、最も高い危険度を示す前記数値を含む前記組合せを選択し、前記選択部によって選択された前記組合せに含まれる前記数値が所定の数値である場合に、前記比較部は、比較を行う動作を停止することを特徴とする。
【００１９】
また、本発明は、悪性アプリケーションの挙動に関連する情報で構成される複数のパターンと、前記パターンに関連付けられ、前記悪性アプリケーションの挙動の代表的な特性を示す代表特性情報と、前記代表特性情報に関連付けられ、前記悪性アプリケーションの危険度を示す数値とを記憶する記憶部と、アプリケーションの挙動を記録したアプリケーションログ、カーネルの挙動を記録したカーネルログ、および通信時に送信および受信されるパケットの情報を記録した通信ログのそれぞれに記録されている情報と前記複数のパターンとを比較する比較部と、前記アプリケーションログ、前記カーネルログ、または前記通信ログに記録されている情報と一致した前記パターンに関連付けられた前記代表特性情報および前記数値の組合せを抽出する抽出部と、前記抽出部によって複数種類の前記組合せが抽出された場合、抽出された複数種類の前記組合せの前記数値を比較し、最も高い危険度を示す前記数値を含む前記組合せを選択する選択部と、としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【００２０】
本発明によれば、第２の情報抽出部によって複数種類の組合せが抽出された場合、抽出された複数種類の組合せの数値を比較し、最も高い危険度を示す数値を含む組合せを選択することによって、悪性アプリケーションの挙動に関連する代表的な情報を得ることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態によるアプリケーション特性解析装置の構成を示すブロック図である。
【図２】本発明の一実施形態におけるアプリケーションの実行ファイルの構成を示す参考図である。
【図３】本発明の一実施形態における解析対象、悪性パターン、代表特性の関係を示す参考図である。
【図４】本発明の一実施形態における悪性パターンファイルの内容を示す参考図である。
【図５】本発明の一実施形態における解析処理の手順を示すフローチャートである。
【図６】本発明の一実施形態における解析処理によって解析結果が得られる様子を示す参考図である。
【図７】本発明の一実施形態における解析処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、図面を参照し、本発明の実施形態を説明する。本実施形態では、ログ等から検知されるアプリケーションの各種特性を代表的な特性に集約する手法を提案している。この手法では、悪性アプリケーションのパターンと一致する様々なパターンがログ等から検知されるが、最終的に解析結果として得られるのは、詳細なパターンを集約した概念を示す代表的な特性である。例えば、数万行のデータからなるログ等と数百種類の悪性パターンとを比較して解析を行った結果、「個人情報の漏洩を検知  危険度：2」というような情報が出力される。このように代表的な特性を示す情報のみを出力することによって、解析結果が分かりやすくなり、管理者等が悪意の挙動およびその程度を容易に把握することができる。
【００２３】
検知された情報に危険度を付与して解析結果として出力する場合、検知された個々の危険度を単純に合計して出力すると、必要以上に危険度の数値が高くなり、非常に危険な挙動が検知されたと管理者等を錯覚させてしまう。そこで、本実施形態では、ログ等から検知されるアプリケーションの各種特性に関連付けられている危険度を合計するのではなく、予め用意された代表的な特性に関連付けられている危険度をそのまま出力することによって、悪性アプリケーションの挙動が過剰に強調されないようにしている。
【００２４】
図１は、本発明の一実施形態によるアプリケーション特性解析装置の構成を示している。図１に示すアプリケーション特性解析装置は、アプリケーション１０、仮想マシン１１、カーネル１２、通信部１３、操作部１４、表示部１５、アプリケーション監視部１６、システムコール監視部１７、パケット監視部１８、ログ生成部１９、記憶部２０、コード解析部２１、アプリケーション構成ファイル解析部２２、追加・変更ファイル解析部２３、解析部２４、パターン比較部２５、代表特性抽出部２６、選択部２７、解析結果出力部２８を有する。
【００２５】
アプリケーション１０は仮想マシン１１上で動作する。図１では１つのアプリケーションのみを図示しているが、複数のアプリケーションが動作することが可能である。仮想マシン１１は、Androidプラットフォームで提供されているdalvikに相当し、OSであるAndroid上に実装されている。カーネル１２はAndroidの中核部分であり、プロセス管理、メモリ管理、通信部１３等のデバイスに係るデバイス管理、システムコールの制御を行う。
【００２６】
通信部１３は、ネットワークを介して外部の通信装置と通信を行う。操作部１４は、ユーザが操作する操作部材を有する。表示部１５は、各種の情報を表示する。
【００２７】
アプリケーション監視部１６は、アプリケーション１０と仮想マシン１１の間で入出力される情報を監視し、アプリケーション１０の実行条件や状態に関する情報を出力する。アプリケーション監視部１６の機能は、例えばDDMSやLogcatを利用することで実現することができる。システムコール監視部１７は、カーネル１２内でシステムコールを監視し、アプリケーション１０の処理に関連するプロセスが呼び出したシステムコールの情報を出力する。システムコール監視部１７の機能は、例えばstraceを利用することで実現することができる。
【００２８】
パケット監視部１８は、通信部１３が送受信するパケットを監視し、パケットの宛先等の情報を出力する。パケット監視部１８の機能は、例えばtcpdumpを利用することで実現することができる。ログ生成部１９は、アプリケーション監視部１６から出力された情報を記録したアプリケーションログ、システムコール監視部１７から出力された情報を記録したカーネルログ、パケット監視部１８から出力された情報を記録した通信ログを生成し、記憶部２０に格納する。
【００２９】
上記のように、記憶部２０には各ログが格納される。アプリケーションログには、アプリケーションの挙動に関する各種情報が記録されている。カーネルログには、カーネルの挙動、特にシステムコールの挙動が記録されている。通信ログには、通信時に送受信されるパケットの情報が記録されている。
【００３０】
記憶部２０は上記のログのほか、アプリケーション１０の実行ファイル等の各種ファイルを記憶する。コード解析部２１は、記憶部２０に格納されているアプリケーション１０の実行ファイルのコード解析を行ってアプリケーション１０の機能（命令列）を抽出し、コード解析結果を記憶部２０に格納する。
【００３１】
アプリケーション構成ファイル解析部２２は、記憶部２０に格納されている、アプリケーション１０を構成する各ファイルのファイル名を抽出し、構成ファイル名として記憶部２０に格納する。図２はアプリケーションの実行ファイルの構成を示している。図２に示すように実行ファイル２００は、命令列を含む実行コード２０１、アプリケーションのパッケージ名称やアプリケーションが利用するコンポーネント等の情報を含むマニフェストファイル２０２、実行コード２０１の実行時に参照されるライブラリ２０３、およびパラメータ２０４等のファイルで構成されている。アプリケーション構成ファイル解析部２２はこれらのファイルのファイル名を抽出する。アプリケーション構成ファイル解析部２２の機能は、例えばアンチウイルスソフトを利用することで実現することができる。
【００３２】
追加・変更ファイル解析部２３は、異なる２つの時点の間に追加または変更されたファイルのファイル名を抽出し、追加・変更ファイル名として記憶部２０に格納する。本実施形態では、追加・変更ファイル解析部２３は、特にアプリケーションのインストールによって追加または変更されたファイルを解析対象としている。このため、追加・変更ファイル解析部２３は、アプリケーションのインストールが実行されるタイミングの前後のタイミングで記憶部２０内のファイルの解析を行う。追加・変更ファイル解析部２３の機能は、例えば特定のIDSを利用することで実現することができる。
【００３３】
解析部２４は、記憶部２０に格納されているアプリケーションログ等を用いて、アプリケーション１０の挙動に関する解析を行う。解析部２４は、パターン比較部２５、代表特性抽出部２６、選択部２７、解析結果出力部２８を有する。
【００３４】
解析部２４が有する各部の機能を説明する前に、解析対象、悪性パターン、代表特性の関係を説明する。解析対象、悪性パターン、代表特性は、図３に示すように関連付けられている。解析対象は、アプリケーションログ、カーネルログ、通信ログ、構成ファイル名、追加・変更ファイル名、コード解析結果（アプリケーションの機能）である。これらの解析対象は、各解析対象に対応した悪性パターンと関連付けられている。例えば、アプリケーションログおよびカーネルログは、悪性アプリケーションに関する所定の挙動パターン、および悪性アプリケーションが行う通信の通信先と関連付けられている。通信ログは、悪性アプリケーションが行う通信の通信先、および悪性アプリケーションが通信を行った場合の通信量と関連付けられている。構成ファイル名および追加・変更ファイル名は、悪性アプリケーションに関係するファイル名と関連付けられている。コード解析結果は、悪性アプリケーションに含まれるコードと関連付けられている。本実施形態では、各解析対象のデータと、各解析対象に関連付けられた悪性パターンとのパターンマッチングによって悪性パターンの検知が行われる。
【００３５】
これらの悪性パターンは、各悪性パターンに対応した代表特性に関連付けられている。本実施形態では、代表特性の大分類として、「スパイウェア（情報漏洩）」、「攻撃」、「その他」の３種類が用意されている。また、それぞれの大分類には、より具体的な特性である小項目と危険度が関連付けられている。例えば、「スパイウェア（情報漏洩）」という大分類には、漏洩される情報の種類を示す小項目である「個人情報」と、「その他情報」とが関連付けられている。「攻撃」という大分類には、攻撃の種類を示す小項目である「root権限奪取」と、「端末破壊」と、「ネットワーク攻撃」とが関連付けられている。「その他」という大分類には、「多量な通信」という小項目が関連付けられている。また、それぞれの小項目には危険度が関連付けられている。
【００３６】
ある解析対象と悪性パターンとのパターンマッチングによって特定の悪性パターンが検知された場合、上記の関係をたどって、解析結果となる代表特性が抽出される。すなわち、どのような悪性パターンが検知された場合でも、解析結果は最終的に上記の代表特性のいずれかに集約されることになる。本実施形態では、検知された複数の悪性パターンから、大分類が同一で小項目および危険度が異なる代表特性が抽出された場合、最も高い危険度を有する代表特性が選択される。例えば、「スパイウェア（情報漏洩）」という大分類を有する代表特性のうち、小項目および危険度が異なる２つの代表特性の全てが抽出された場合、危険度が「2」であり、小項目が「個人情報」である代表特性が選択され、解析結果として出力される。
【００３７】
上記の解析対象、悪性パターン、代表特性の関係は、悪性パターンファイルとして予め記憶部２０に格納されている。図４は悪性パターンファイルの内容を示している。悪性パターンファイルは、番号４００と関連付けられた情報４１０〜４５０の５種類の情報を含む。情報４１０は解析対象を示している。アプリケーションログ、カーネルログ、通信ログ、構成ファイル名、追加・変更ファイル名、コード解析結果（アプリケーションの機能）が解析対象である。情報４１０が複数の解析対象の情報を含む場合もある。
【００３８】
情報４２０は、悪性パターンを示している。悪性パターンは、実際の悪性アプリケーションの挙動の痕跡を示す情報で構成されている。悪性パターンの具体例については後述する。情報４３０（代表特性情報）は、代表特性の大分類を示している。「スパイウェア（情報漏洩）」、「攻撃」、「その他」が代表特性の大分類である。情報４４０（代表特性情報）は、大分類中の小項目を示している。例えば、「スパイウェア（情報漏洩）」に関連付けられた「個人情報」や「その他情報」が小項目である。情報４５０は危険度を示している。
【００３９】
本実施形態では、上記の悪性パターンファイルを予め作成して記憶部２０に格納しておく必要がある。悪性パターンは、既知の悪性アプリケーションを動作させてその挙動を各種ツールで監視することによって取得される。また、悪性パターンと代表特性の大分類・小項目や危険度との関連付けは、悪性パターンファイルを作成する作成者の意思によって決定される。例えば、解析部２４の機能を有するアプリケーションを開発する開発者の意思によって、この関連付けが決定される。この関連付けは、後述する解析対象の解析を行うときまでに決定されていればよいので、開発者等によって一旦決定された関連付けを利用者が変更できるようにしてもよい。
【００４０】
以下、解析部２４が有する各部の機能を説明する。パターン比較部２５は、上記の解析対象中のデータと、記憶部２０に格納されている悪性パターンファイル中の悪性パターンとを比較する。代表特性抽出部２６は、解析対象中のデータと悪性パターンとが一致した場合に、その悪性パターンと関連付けられている代表特性を抽出する。選択部２７は、代表特性抽出部２６によって抽出された代表特性の中から、解析結果として出力するものを選択する。解析結果出力部２８は、選択部２７によって選択された代表特性を解析結果として表示部１５へ出力する。
【００４１】
次に、本実施形態における悪性パターンを説明する。図３に示したように、悪性パターンは、悪性アプリケーションに関する所定の挙動パターン、悪性アプリケーションが行う通信の通信先、悪性アプリケーションが通信を行った場合の通信量、悪性アプリケーションに関係するファイル名、悪性アプリケーションに含まれるコードの情報を含む。
【００４２】
悪性アプリケーションに関する所定の挙動パターンは、アプリケーションログおよびカーネルログに出現する特定の文字列で構成される。例えば、個人情報を漏洩するスパイウェアの挙動パターンには、電話番号に関する文字列である“phone number=”や、契約者情報に関する文字列である“imsi=”がある。また、例えば、root権限を奪取する攻撃の挙動パターンには、実行権限の変更コマンドに関する文字列である“/system/xbin/su”があり、端末破壊による攻撃の挙動パターンには、ファイルシステムのマウントコマンドに関する文字列である“mount -r,w re.mount”がある。なお、“と”で囲まれた部分が、悪性パターンとなる文字列である。これは以下でも同様である。
【００４３】
悪性アプリケーションが行う通信の通信先を示す悪性パターンは、アプリケーションログ、カーネルログ、および通信ログに出現する特定の文字列で構成される。例えば、個人情報を漏洩するスパイウェアの通信先を示す悪性パターンには、個人情報を収集するWebサイトのFQDN（Fully Qualified Domain Name）に関する文字列である“FQDN=admob.com”や、個人情報を収集するWebサイトのIPアドレスに関する文字列である“IP=xxx.xxx.xxx.xxx”（ただしxは実際には0〜9の任意の数字）がある。また、ネットワーク攻撃の通信先を示す悪性パターンには、宛先のポート番号に関する文字列である“port=yyy”（ただしyyyは実際には135,137,138,445,1433,1434のいずれか）がある。
【００４４】
悪性アプリケーションが通信を行った場合の通信量を示す悪性パターンは、通信ログから検出される単位時間当たりのパケット数あるいは単位時間当たりの通信データ量を示す数値で構成される。携帯端末に設定されている本来の機能を変更して通信モデムとして使用する、テザリングと呼ばれる機能を実現する悪性アプリケーションがある。この悪性アプリケーションによってテザリングが実現されると、多量のデータ通信が行われる。本実施形態では、通信ログから検出された通信量が悪性パターンとしての通信量を超えた場合に、悪性パターンと一致したと判定される。
【００４５】
悪性アプリケーションに関係するファイル名を示す悪性パターンは、悪意のコードを含んだ共通ライブラリのファイル名を示す文字列で構成される。例えば、個人情報を漏洩するスパイウェアに関係するファイル名を示す悪性パターンには、“admob”がある。また、例えば、root権限を奪取する攻撃を行う悪性アプリケーションに関係するファイル名を示す悪性パターンには“asroot”があり、端末破壊による攻撃を行う悪性アプリケーションに関係するファイル名を示す悪性パターンには“recovery flasher”がある。
【００４６】
悪性アプリケーションに含まれるコードを示す悪性パターンは、悪意の命令列を示す文字列で構成される。例えば、個人情報を漏洩するスパイウェアのコードを示す悪性パターンには、“send_sim_info()”がある。また、例えば、端末破壊による攻撃を行う悪性アプリケーションのコードを示す悪性パターンには、“mount_system()”がある。
【００４７】
次に、本実施形態における解析処理の詳細を説明する。以下では、２つの例を説明する。まず、第１の例を説明する。図５は解析処理の手順を示している。パターン比較部２５は、記憶部２０に格納されている解析対象であるアプリケーションログ、カーネルログ、通信ログ、構成ファイル名、追加・変更ファイル名、コード解析結果（アプリケーションの機能）の中からいずれか１つを選択する（ステップＳ１００）。続いて、パターン比較部２５は、ステップＳ１００で選択した解析対象を構成するデータを選択し、記憶部２０から読み出す（ステップＳ１０５）。このとき、例えばログ中の１つの記録単位分のデータが選択される。
【００４８】
続いて、パターン比較部２５は、記憶部２０から悪性パターンファイルを読み出し、解析対象を構成するデータと悪性パターンファイル中の悪性パターンとを順次比較するパターンマッチングを行う（ステップＳ１１０）。悪性パターンファイルには複数の悪性パターンが含まれているが、解析対象に対応する悪性パターンがパターンマッチングに用いられる。例えば、ステップＳ１００でアプリケーションログが選択された場合、図４の情報４１０がアプリケーションログとなっている悪性パターンのみがパターンマッチングに用いられる。また、ステップＳ１１０では、同一の解析対象に対応する全ての悪性パターンとのパターンマッチングが行われる。
【００４９】
ステップＳ１１０では、悪性アプリケーションに関する所定の挙動パターン、悪性アプリケーションが行う通信の通信先、悪性アプリケーションに関係するファイル名、悪性アプリケーションに含まれるコードの情報に関するパターンマッチングは、文字列に比較により行われる。また、ステップＳ１１０では、悪性アプリケーションが通信を行った場合の通信量に関するパターンマッチングは、通信ログから検出された通信量が、悪性パターンとして登録されている通信量を超えるか否かの判定により行われる。
【００５０】
続いて、パターン比較部２５は、解析対象を構成するデータと一致した悪性パターンに関する番号（図４の番号４００）をパターンマッチング結果として記憶部２０に格納する（ステップＳ１１５）。続いて、パターン比較部２５は、解析対象中の全てのデータの解析が終了したか否かを判定する（ステップＳ１２０）。
【００５１】
解析を行っていないデータが存在する場合、処理がステップＳ１０５に戻り、次のデータが選択される。また、解析対象中の全てのデータの解析が終了した場合、パターン比較部２５は、全ての解析対象の解析が終了したか否かを判定する（ステップＳ１２５）。解析を行っていない解析対象が存在する場合、処理がステップＳ１００に戻り、次の解析対象が選択される。
【００５２】
全ての解析対象の解析が終了した場合、代表特性抽出部２６は、記憶部２０からパターンマッチング結果および悪性パターンファイルを読み出し、パターンマッチング結果として記録された番号に対応する代表特性の大分類および小項目の情報（図４の情報４３０，４４０）と危険度（図４の情報４５０）を悪性パターンファイルから抽出する（ステップＳ１３０）。パターンマッチング結果として複数の番号が記録されている場合、各番号に対応する代表特性の大分類および小項目の情報と危険度がパターンファイルから抽出される。
【００５３】
続いて、選択部２７は、ステップＳ１３０で抽出された各情報の危険度の数値を比較し、最も高い危険度に関連付けられている代表特性の大分類および小項目の情報と危険度を選択して解析結果とする（ステップＳ１３５）。パターンマッチング結果として１つのみの番号が記録されている場合、ステップＳ１３０で抽出された情報がそのまま解析結果となる。一方、パターンマッチング結果として複数の番号が記録されている場合、代表特性の大分類および小項目の情報と危険度の組合せが複数抽出され、これら複数の組合せのうち、最も高い危険度を有する組合せが選択され、解析結果となる。同一の大分類の中で、最も高い危険度を有する組合せが複数ある場合（ただし、それらの組合せの小項目は異なる場合）、それらの各々が選択され、解析結果となる。解析結果は記憶部２０に格納される。
【００５４】
続いて、解析結果出力部２８は、ステップＳ１３５で得られた解析結果を表示部１５へ出力し、解析結果を表示させる（ステップＳ１４０）。これによって、例えば、「個人情報の漏洩を検知  危険度：2」という文字列が表示部１５の画面に表示される。
【００５５】
図６は、上記の解析処理によって解析結果が得られる様子を模式的に示している。図６は一例である。図６中の矢印は、解析処理によって検知された情報の関連性を示している。
【００５６】
アプリケーションログおよびカーネルログから、悪性アプリケーションに関する所定の挙動パターンが検知されている。この例では、大分類が「スパイウェア（情報漏洩）」であり、小項目が「個人情報」であり、危険度が「2」である代表特性６００に関連付けられた挙動パターンと、大分類が「スパイウェア（情報漏洩）」であり、小項目が「その他情報」であり、危険度が「1」である代表特性６１０に関連付けられた挙動パターンとが検知されている。また、通信ログから、悪性アプリケーションが行う通信の通信先が検知されている。この例では、代表特性６００に関連付けられた通信先が検知されている。
【００５７】
また、アプリケーションの構成ファイル名および追加・変更ファイル名から、悪性アプリケーションに関係するファイル名が検知されている。この例では、代表特性６００に関連付けられたファイル名が検知されている。また、コード解析結果から、悪性アプリケーションに含まれるコードの情報が検知されている。この例では、代表特性６１０に関連付けられたコードが検知されている。
【００５８】
図６に示すように、解析結果の候補として、２種類の代表特性６００，６１０が抽出される。これらの代表特性６００，６１０の危険度が「2」と「1」であるため、危険度が最も高い「2」である代表特性６００が解析結果として選択される。
【００５９】
次に、解析処理の第２の例を説明する。図７は解析処理の手順を示している。図７において、ステップＳ２００〜Ｓ２１５の処理は図５のステップＳ１００〜Ｓ１１５の処理と同様である。ステップＳ２００〜Ｓ２１５において、解析対象を構成するデータと悪性パターンとのパターンマッチングが行われ、解析対象を構成するデータと一致した悪性パターンに関するパターンマッチング結果が記憶部２０に格納される。
【００６０】
ステップＳ２１５に続いて、パターン比較部は、解析対象がアプリケーションログ、カーネルログ、通信ログのいずれかであるか否かを判定する（ステップＳ２２０）。解析対象がアプリケーションログ、カーネルログ、通信ログのいずれでもなかった場合、処理はステップＳ２４５に進む。ステップＳ２４５〜Ｓ２６５の処理は図５のステップＳ１２０〜Ｓ１４０の処理と同様である。
【００６１】
解析対象がアプリケーションログ、カーネルログ、通信ログのいずれかであった場合、パターン比較部２５は、解析対象を構成するデータについて、所定の解析単位分の解析が終了したか否かを判定する（ステップＳ２２５）。所定の解析単位とは、１つのログを構成するデータを複数に分割した場合のそれぞれの分割単位である。例えば、１つのログを構成するデータを１００個に分割した場合、分割された１００個のデータのそれぞれが所定の解析単位である。所定の解析単位分のデータの解析が終了する毎にステップＳ２３０〜Ｓ２４０の処理を行う目的でステップＳ２２５の判定が行われる。
【００６２】
所定の解析単位分のデータの解析が終了していない場合、処理がステップＳ２０５に戻り、次のデータが選択される。所定の解析単位分のデータの解析が終了した場合、代表特性抽出部２６は、記憶部２０からパターンマッチング結果および悪性パターンファイルを読み出し、パターンマッチング結果として記録された番号に対応する代表特性の大分類および小項目の情報（図４の情報４３０，４４０）と危険度（図４の情報４５０）を悪性パターンファイルから抽出する（ステップＳ２３０）。パターンマッチング結果として複数の番号が記録されている場合、各番号に対応する代表特性の大分類および小項目の情報と危険度がパターンファイルから抽出される。
【００６３】
続いて、選択部２７は、ステップＳ２３０で抽出された各情報の危険度の中で、所定の最高値の危険度があるか否かを判定する（ステップＳ２３５）。図３に示した例では、最高値の危険度は危険度「2」である。危険度の段階は何段階でもよく、例えば危険度「1」から危険度「5」までの５段階の危険度が用意されている場合、最高値の危険度は危険度「5」である。
【００６４】
所定の最高値の危険度がなかった場合、処理はステップＳ２４５に進む。ステップＳ２４５において、解析を行っていないデータが存在すると判定された場合、処理がステップＳ２０５に戻り、次の解析単位のデータが選択される。また、所定の最高値の危険度があった場合、選択部２７は、最高値の危険度に関連付けられている代表特性の大分類および小項目の情報と危険度を選択して解析結果とする（ステップＳ２４０）。解析結果は記憶部２０に格納される。続いて、処理がステップＳ２６５に進み、解析結果が表示部１５の画面に表示される。
【００６５】
本実施形態では、検知される悪性アプリケーションの特性が、最も高い危険度を有する代表特性に集約される。また、図７に示す解析処理では、解析対象がアプリケーションログ、カーネルログ、通信ログのいずれかである場合、所定の解析単位分のデータについてのパターンマッチングが終了する毎に代表特性が抽出される。ある解析単位分のデータのパターンマッチング結果から、最高値の危険度を有する代表特性が抽出された場合、それ以降の解析単位分のパターンマッチング結果あるいは他の解析対象のパターンマッチング結果から、最高値ではない危険度を有する代表特性が抽出されても、解析結果には影響を与えない。
【００６６】
そこで、図７に示す解析処理では、所定の解析単位分のデータについてのパターンマッチングが終了する毎に代表特性が抽出され、最高値の危険度を有する代表特性が抽出された場合のみ、その代表特性が解析結果として選択され、解析処理が終了する。数万行のデータからなるログと数百種類の悪性パターンとのパターンマッチングには処理時間を要するが、図７に示す解析処理によれば、処理時間を短縮することができる。図７に示す解析処理は、複数種類の悪性アプリケーションが同時に動作する場合の特性解析あるいは複合的な特性を有する悪性アプリケーションの特性解析に対しては検知の見逃しの可能性があるが、単一の特性を有する悪性アプリケーションの特性解析に対しては有効である。
【００６７】
解析対象の選択の順番については任意でよいが、アプリケーションログ、カーネルログ、通信ログよりも構成ファイル名、追加・変更ファイル名、コード解析結果を先に選択して解析処理を行ってもよい。さらに、構成ファイル名、追加・変更ファイル名、コード解析結果についてのパターンマッチングが終了した時点で代表特性の抽出を行い、最高値の危険度を有する代表特性が抽出された場合に、その代表特性を解析結果として選択し、解析処理を終了してもよい。これによって、ログのパターンマッチングを行う必要がなくなり、処理時間をより短縮することができる。
【００６８】
上述したように、本実施形態によれば、パターンマッチング結果から、複数種類の代表特性が抽出された場合、抽出された複数種類の代表特性の危険度を比較した結果に基づいて、いずれかの代表特性を選択することによって、悪性アプリケーションの挙動を最も良く表す代表特性を得ることができる。このようにして選択した代表特性を管理者等に提示することによって、管理者等が悪意の挙動およびその程度を容易に把握することができる。
【００６９】
また、代表特性の大分類が同一で危険度が異なる複数の代表特性が抽出された場合、危険度が最も高い代表特性を解析結果として選択することによって、システムに重大な影響を与える悪性アプリケーションの挙動に関する解析結果を得ることができる。また、複数の代表特性が抽出された場合でも、それぞれの代表特性の危険度を合計しないので、悪性アプリケーションの挙動を過剰に強調することがない。
【００７０】
また、解析対象がアプリケーションログ、カーネルログ、通信ログのいずれかである場合、所定の解析単位分のデータについてのパターンマッチングが終了する毎に代表特性を抽出し、最高値の危険度を有する代表特性が抽出されたときに、その代表特性を解析結果として選択し、解析処理を終了することによって、処理時間を短縮することができる。
【００７１】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上述した実施形態によるアプリケーション特性解析装置の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させてもよい。
【００７２】
ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００７３】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００７４】
１０・・・アプリケーション、１１・・・仮想マシン、１２・・・カーネル、１３・・・通信部、１４操作部、１５・・・表示部、１６・・・アプリケーション監視部、１７・・・システムコール監視部、１８・・・パケット監視部、１９・・・ログ生成部、２０・・・記憶部、２１・・・コード解析部、２２・・・アプリケーション構成ファイル解析部、２３・・・追加・変更ファイル解析部、２４・・・解析部、２５・・・パターン比較部、２６・・・代表特性抽出部、２７・・・選択部、２８・・・解析結果出力部
【図１】
0005613000.tif 000002
【図２】
0005613000.tif 000003
【図３】
0005613000.tif 000004
【図４】
0005613000.tif 000005
【図５】
0005613000.tif 000006
【図６】
0005613000.tif 000007
【図７】
0005613000.tif 000008