(57)【特許請求の範囲】
【請求項１】
複数のアプリケーションを実行した通信ログから抽出した通信パケットに対して送信先の類似度にて階層的クラスタリングにより作成された解析済クラスタを記憶している記憶部と、  
検査対象アプリケーションを実行した通信ログから抽出した通信パケットそれぞれが割り当てられる前記解析済クラスタにおける最下位クラスタを抽出し、前記解析済クラスタの最上位と最下位の間の任意の階層のクラスタに前記最下位クラスタを1以上含んでいるクラスタの数を共通クラスタ数として計数し、当該共通クラスタ数を評価値とするクラスタ抽出手段と、
前記評価値が多いほど、当該アプリケーションの影響度合いが高いと評価する評価手段と、
前記評価結果を検査対象アプリケーションの評価結果として出力する結果出力部と、
を有することを特徴とするアプリケーション検査システム。
【請求項２】
前記クラスタ抽出手段は、前記検査対象アプリケーションについて抽出した前記最下位クラスタの数を最下位クラスタ数として計数し前記評価値に加えることを特徴とする請求項１に記載のアプリケーション検査システム。
【請求項３】
前記解析済クラスタは、更に通信パケットの送信内容の類似度を用いて階層的クラスタリングを行なって作成されたことを特徴とする請求項1又は請求項２に記載のアプリケーション検査システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯端末上で動作する端末アプリケーションを検査するアプリケーション検査システムに関する。
【背景技術】
【０００２】
スマートフォンや携帯情報端末、携帯電話等の携帯端末には、利用者の電話番号やメールアドレス等の情報をはじめ、位置情報やアドレス帳やスケジュールなど、さまざまな個人情報が記憶されている。一方、これらの携帯端末には、さまざまなベンダーが開発したメールソフト、ゲームソフト、便利ツール等の携帯端末用の端末アプリケーションプログラム（以下、単にアプリケーションと称する）が利用者によって自由にインストールされ、使用される。
【０００３】
ところで、このようなアプリケーションは、さまざまなベンダーによって任意に開発されるため、例えば利用者がそのアプリケーションを利用しているときに、利用者の許可を求めることなく、その携帯端末に記憶された個人情報を外部に送信してしまうおそれがある。また、利用者が携帯端末を操作していないときも外部に送信するおそれがある。このように、利用者の意図しない状況で個人情報が送信されてしまう潜在的なおそれが存在する可能性があっても、アプリケーションが主目的として提供する機能・サービスの利便性を求めて、利用者は携帯端末上にアプリケーションをインストールし、利用している。
【０００４】
一方、多種多様なアプリケーションを提供するサービスプロバイダーは、提供予定のアプリケーションが既知のマルウェアやスパイウェアではないかを検査した上で提供するようにしており、アプリケーションを検査する技術が知られている（例えば、特許文献１）。
【０００５】
特許文献１では、多くのプログラムのプロファイルを簡単かつ短時間で行うために、仮想オペレーティングシステムでプログラムを実行し、プログラムの動作履歴から動作の特徴を見つけ、プログラムの種類を例えば、「マクロウィルス」「ボット」「Ｐ２Ｐワーム」「スパイウェア」「トロイの木馬」「非悪性プログラム」のように分類するプログラム分析方法が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１２９７０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の方法ではグレーウェアに対応することは困難であった。ここで、グレーウェアとは、利用者が了承した範囲（すなわち、アプリケーションが主目的として提供する機能・サービス）で正常に動作しつつ、更に利用者の意図と無関係に端末内の個人情報を外部へ送信するというもので、情報収集を主目的とするスパイウェアとの区別があいまいなアプリケーションである。このようなグレーウェアは、利用者が了承した正規のサービスを受けるための外部への送信と利用者が意図しない端末内の個人情報を送信するための外部への送信とから複数の異なる送信先へ外部の送信が行われるため、一概に悪いと判断することはできなくても、利用者によっては不利益をもたらす場合があるアプリケーションとして扱いたい。
【０００８】
そこで、本発明は、このようなグレーウェアについても、利用者が端末でアプリケーションを動作させるとセキュリティの観点でどのような影響を受ける可能性があるかを示せるように評価することを目的とする。
【課題を解決するための手段】
【０００９】
かかる課題を解決するために、本発明は、複数のアプリケーションを実行した通信ログから抽出した通信パケットに対して送信先の類似度にて階層的クラスタリングにより作成された解析済クラスタを記憶している記憶部と、検査対象アプリケーションを実行した通信ログから抽出した通信パケットそれぞれが割り当てられる前記解析済クラスタにおける最下位クラスタを抽出し、前記解析済クラスタの最上位と最下位の間の任意の階層のクラスタに前記最下位クラスタを1以上含んでいるクラスタの数を共通クラスタ数として計数し、当該共通クラスタ数を評価値とするクラスタ抽出手段と、前記評価値が多いほど、当該アプリケーションの影響度合いが高いと評価する評価手段と、前記評価結果を検査対象アプリケーションの評価結果として出力する結果出力部と、を有するアプリケーション検査システムを提供する。これにより、統計的に複数のアプリケーションを送信先に基づいて類似するアプリケーション群に分類した結果を用い、検査対象のある一つのアプリケーションに着目したときには、異なるアプリケーション群をまたがって属するアプリケーションほど、影響度合いを高く算出することができる。
【００１０】
かかるアプリケーション検査システムにおいて、前記クラスタ抽出手段は、前記検査対象アプリケーションについて抽出した前記最下位クラスタの数を最下位クラスタ数として計数し前記評価値に加えることが好ましい。これにより、所属するアプリケーション群に多数出現するアプリケーションほど、影響度合いを高く算出することができる。
【００１１】
また、かかるアプリケーション検査システムにおいて、前記解析済クラスタは、更に通信パケットの送信内容の類似度を用いて階層的クラスタリングを行なって作成されることが好ましい。これにより、検査対象のアプリケーションを送信先だけでなく送信内容にも基づいて類似するアプリケーション群に分類した結果を用いて評価することができる。
【発明の効果】
【００１２】
本発明によれば、グレーウェアについても、ユーザが端末でアプリケーションを動作させるとセキュリティの観点でどのような影響を受ける可能性があるかのセキュリティリスクを示せるように評価するアプリケーション検査システムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明によるアプリケーション検査システムを説明する図である。
【図２】本発明によるアプリケーションの分類結果のイメージ図である。
【図３】複数のアプリケーションを分類し、解析済みクラスタを生成する処理フローチャートである。
【図４】新たにアプリケーションを追加したときの解析済みクラスタを生成する処理フローチャートである。
【図５】解析済みクラスタを用いて検査対象のアプリケーションを検査する処理フローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明に係るアプリケーション検査システムについて、図を参照しつつ説明する。図１は、本発明によるアプリケーション検査システムの構成図である。図１に示すアプリケーション検査システム１は、アプリケーション検査サーバ装置２と外部サーバ４と携帯端末５がネットワーク３を介して接続されて構成される。
【００１５】
アプリケーション検査サーバ装置２は、検査対象のアプリケーションを検査する装置であって、記憶部２１と、制御部２２と、通信部２３と、表示操作部２４と、を有する。アプリケーション検査サーバ装置２は、アプリケーションをインストールして実行する携帯端末をエミュレートしてアプリケーションを実行するパーソナルコンピュータやサーバであってもよい。
【００１６】
記憶部２１は、ＲＯＭ、ＲＡＭ、磁気ハードディスク等の記憶装置であり、各種プログラムや各種データを記憶し、アプリケーションプログラム２１１と固有情報２１２と通信ログ２１３と動作ログ２１４とクラスタ２１５と解析済みクラスタ２１６とクラスタ分類結果２１７の記憶領域を持つ。
【００１７】
アプリケーションプログラム２１１は、検査対象の複数のアプリケーションを記憶する領域である。例えば、Ｎ個のアプリケーションを検査する場合は、アプリケーション１〜ＮのＮ個のアプリケーションがアプリケーションプログラム２１１に記憶される。
【００１８】
固有情報２１２は、携帯端末に記憶される携帯端末特有の複数の固有情報を記憶する領域である。固有情報は、例えば、携帯端末を識別するために付与される端末固有番号や各種端末識別情報、緯度経度による現在位置を示す位置情報、アドレス帳、メール情報、スケジュール情報等を含む。
【００１９】
通信ログ２１３は、検査対象のアプリケーションを実行したときに生成される通信ログを記憶する領域である。
【００２０】
動作ログ２１４は、検査対象のアプリケーションを実行したときに生成される動作ログを記憶する領域である。動作ログには、ユーザがアプリケーションの入力受付に対して行った入力を記憶した操作ログを含む。
【００２１】
クラスタ２１５は、後述する分類評価のためのクラスタリング処理に用いるクラスタを記憶する領域である。通信ログ２１６から通信ログを取り出し、クラスタとして割り当て、クラスタ２１５に保存する。
【００２２】
解析済みクラスタ２１６は、後述する分類評価のためのクラスタリング処理中にクラスタ２１５から取り出され解析を済ませたクラスタ、他のクラスタと最もクラスタ間の距離が近くまとめて新しく作成されるクラスタを階層的に記憶する領域である。
【００２３】
クラスタ分類結果２１７は、分類評価のためのクラスタリング処理が完了したときの解析済みクラスタ２１６のクラスタの階層的な構成をクラスタ分類結果として記憶する領域である。図２にクラスタ分類結果２１７の出力イメージを示す。外側の末端クラスタが、通信ログから割り当ててクラスタ２１５に最初の保存されたクラスタである。そして、クラスタリング処理の結果、中央で１つのクラスタにまとめられている。
【００２４】
制御部２２は、ＣＰＵやＭＰＵ等から構成され、アプリケーション検査サーバ装置２の制御全般についてプログラムに従って処理を行い、通信ログ取得手段２２１、動作ログ取得手段２２２、クラスタ作成手段２２３、クラスタ間距離計算手段２２４、クラスタ抽出手段２２５、評価手段２２６、結果出力手段２２７を有する。
【００２５】
通信ログ取得手段２２１は、アプリケーションプログラム２１１に記憶された各アプリケーションの実行中に外部サーバ４にデータを送信するとき、また、外部サーバ４からデータを受信するとき、通信部２３を介して行われる送受信の通信ログを取得し、通信ログ２１３に記憶する。
【００２６】
動作ログ取得手段２２２は、アプリケーションプログラム２１１に記憶された各アプリケーションの実行中に利用者が行った操作のログを動作ログ２１４に記憶する。また、動作ログ取得手段２２２は、アプリケーションプログラム２１１に記憶された各アプリケーションの実行中にアプリケーションが固有情報２１２から読み出すと、いつどの情報を取得したか等を動作ログ２１４に記憶する。
【００２７】
クラスタ作成手段２２３は、クラスタを作成する際に、通信ログ記憶部から外部送信の通信ログを取り出し、取り出した通信ログをクラスタとして記憶部２１のクラスタ２１５に保存する。また、クラスタ作成手段２２３は、クラスタリング処理において主体的に動き、クラスタ２１５に保存されたクラスタに階層的クラスタリングを適用し、アプリケーションの分類を行い、分類中に作成する新しいクラスタを改めてクラスタ２１５に保存すると共にクラスタは解析済みクラスタ２１６に保存する。具体的には、クラスタ作成手段２２３は、クラスタ間距離計算手段２２４に処理対象として着目してクラスタ２１５から取り出した１つのクラスタとクラスタ２１５に記憶されている他のクラスタとのクラスタ間距離を算出させ、処理対象のクラスタと最もクラスタ間の距離が近いクラスタとをまとめて新しいクラスタを作成し、まとめる前のクラスタはクラスタ２１５から削除し、新しいクラスタをクラスタ２１５に保存すると共に、まとめる前のクラスタと新しいクラスタを解析済みクラスタ２１６に階層的に記憶させる。また、クラスタリングが終了すると、そのときの解析済みクラスタ２１６の内容を複数のアプリケーションの分類結果としてクラスタ分類結果２１７に記憶する。
【００２８】
クラスタ間距離計算手段２２４は、クラスタ作成手段２２３の要求により、指定されたクラスタとクラスタ２１５に保存されたクラスタとのクラスタ間の距離を計算する。そして、指定されたクラスタと最もクラスタ間距離が近いクラスタを出力する。
【００２９】
クラスタ抽出手段２２５は、クラスタ分類結果２１７に保存された複数のアプリケーションの分類結果について、検査対象として指定された特定のアプリケーションに属する最下位クラスタを抽出し、抽出した最下位クラスタの数を最下位クラスタ数として計数する。また、抽出した最下位クラスタを含む任意の上位階層でのクラスタの数を共通クラスタ数として計数する。共通クラスタ数は、指定された任意の上位階層において異なるアプリケーション群にまたがって最下位クラスタが出現しているかを評価できる評価値となる。共通クラスタ数を求める上位階層には最上位と最下位は含まれず、上位階層は、最上位と最下位の間の任意の階層で指定されるものとする。なお、最上位はクラスタが１つにまとまって作成され、すなわち、すべての最下位クラスタが含まれるため、任意の上位階層の対象としない。
【００３０】
評価手段２２６は、検査対象のアプリケーションの影響度合いを評価する。このため、評価手段２２６は、クラスタ抽出手段２２５が出力する最下位クラスタ数を評価値として、評価値が多いほど、検査対象のアプリケーションの影響度合いが高いと評価する。また、評価手段２２６は、クラスタ抽出手段２２５が出力する共通クラスタ数を評価値として、評価値が多いほど、検査対象のアプリケーションの影響度合いが高いと評価する。また、評価手段２２６は、最下位クラスタ数と共通クラスタ数の合計を評価値としてもよい。
【００３１】
結果出力手段２２７は、評価手段２２６が出力した検査対象アプリケーションの影響度合いを表示操作部２４に表示させるほか、ネットワーク３を介して外部から要求を受けたときは外部に送信をして出力する。また、クラスタ分類結果２１７に保存された複数のアプリケーションの分類結果を用いて、指定されたある特定のアプリケーションに対する分類結果を、クラスタ分類結果２１７にクラスタ抽出手段２２５が抽出した最下位クラスタを識別可能に重ねて出現頻度の状態として出力してもよい。
【００３２】
通信部２３は、ネットワーク３を介して外部サーバ４との通信を行なうインタフェースであり、接続するネットワークに対応している。
【００３３】
表示操作部２４は、タッチパネル付き液晶ディスプレイなどで構成された入出力インタフェースであり、アプリケーション実行時の画面表示や確認操作の受付を行う。なお、表示操作部２４は、表示機能だけもつ表示用デバイスと、操作ボタン等の入力デバイスとで構成してもよい。
【００３４】
ネットワーク３は、アプリケーション検査サーバ装置２及び外部サーバ４に接続され、インターネット等の広域通信網あるいは閉域通信網などのネットワークである。一般電話回線網であってもよい。
【００３５】
外部サーバ４は、ネットワーク３を介してアプリケーションが主目的として提供する機能・サービスを提供する際のサーバやアプリケーションが端末内の個人情報を勝手に外部へ送信する際の情報収集を行うサーバである。
【００３６】
携帯端末５は、利用者が所持し、評価結果をふまえてアプリケーションがインストールされる装置で、スマートフォンや携帯情報端末、携帯電話等である。
【００３７】
ここで、通信ログに対するクラスタ間の距離の計算方法を説明する。通信ログに含まれるHTTPパケットの類似度を求め、このHTTPパケットの類似度を利用してクラスタ間の距離とし、クラスタリングを行う。このとき、通信ログに含まれるHTTPパケットの類似度は、HTTPパケット送信先類似度とHTTPパケット送信内容類似度とから求める。
【００３８】
まず、HTTPパケット送信先類似度について説明する。HTTPパケット送信先類似度は、送信先ＩＰアドレスの類似度、Ｐｏｒｔ番号の類似度、及び、HTTPヘッダフィールドのHostヘッダ（以降、単にHostヘッダという）の類似度を用いて算出する。送信先ＩＰアドレスの類似度はＩＰアドレスの上位ビットの最長一致を適用し、Ｐｏｒｔ番号の類似度は値が同一か否かを適用し、Hostヘッダの類似度は文字列の距離を表す編集距離を適用する。
【００３９】
例えば、２つのHTTPパケットＰｘとＰｙのHTTPパケット送信先類似度を求める場合を説明する。ここで、任意のHTTPパケットＰｎの送信先は、送信先ＩＰアドレスｉｐｎとＰｏｒｔ番号ｐｏｒｔｎとHostヘッダｈｏｓｔｎを用いて、Ｐｎ＝｛ｉｐｎ；ｐｏｒｔｎ；ｈｏｓｔｎ｝で構成されるとする。
【００４０】
まず、送信先ＩＰアドレス類似度について説明する。送信先ＩＰアドレスをＩＰｖ４とすると、ＩＰアドレスは、２３２のアドレス空間であり、上位から８ビット毎に、ＩＰアドレスの範囲となる。ＩＰアドレスは一定の範囲ごとに利用者に割り当てられることから、同一組織あるいはネットワークの場合は、上位ビットが共通となる可能性が高い。そこで、HTTPパケットＰｘとＰｙにおいて、ＩＰアドレスの類似度は、２つのＩＰアドレスｉｐｘとｉｐｙの先頭から最長一致ビット数を求めることで得られる。
【００４１】
次に、Ｐｏｒｔ番号類似度について説明する。Ｐｏｒｔ番号は、２１６の空間であり、一部のＰｏｒｔ番号は、特定のサービスに対し登録され使用されることがほとんどである。そこで、HTTPパケットＰｘとＰｙにおいて、Ｐｏｒｔ番号の類似度は、２つのＰｏｒｔ番号ｐｏｒｔｘとｐｏｒｔｙが一致するかしないかを求めることで得られる。
【００４２】
次に、Hostヘッダ類似度について説明する。Hostヘッダは、ＦＱＤＮとしてホスト名とドメイン名から構成される文字列となる。そこで、任意の文字列の距離として編集距離を用いると、HTTPパケットＰｘとＰｙにおいて、Hostヘッダの類似度は、２つのHostヘッダｈｏｓｔｘとｈｏｓｔｙの編集距離を求めることで得られる。
【００４３】
従って、HTTPパケットＰｘとＰｙについて求めた送信先ＩＰアドレス類似度、Ｐｏｒｔ番号類似度、Hostヘッダ類似度を用いて、例えば単純加算すると、２つのHTTPパケットＰｘとＰｙのHTTPパケット送信先類似度とすることができる。
【００４４】
次に、HTTPパケット送信内容類似度について説明する。HTTPパケット送信内容類似度は、HTTPヘッダフィールドのRequest-Line、Cookie、Message-Bodyの類似度を用いて算出する。各要素の類似度は、コルモゴルフ複雑性を利用したnormalized compression distance (NCD) により求める。
【００４５】
例えば、２つのHTTPパケットＰｘとＰｙのHTTPパケット送信内容類似度を求める場合を説明する。ここで、任意のHTTPパケットＰｎの送信内容は、HTTPパケットに含まれるRequest-Lineをｒｌｉｎｅｎ、Cookieをｃｏｏｋｉｅｎ、Message-Bodyをｂｏｄｙｎとして、Ｐｎ＝｛ｒｌｉｎｅｎ；ｃｏｏｋｉｅｎ；ｂｏｄｙｎ｝で構成されるとする。
【００４６】
Request-Line、Cookie、Message-Bodyはいずれも文字列で構成され、その値はアプリケーションやサービス毎に異なるため、コルモゴルフ複雑性を利用し，文字列の文脈に依存することなく情報量としての距離を求めることが可能なNCDを用いることで、類似度を求められる。HTTPパケットＰｘとＰｙにおけるRequest-Line類似度は、ｒｌｉｎｅｘとｒｌｉｎｅｙのNCDを求めることで得られる。また、HTTPパケットＰｘとＰｙにおけるCookie類似度は、ｃｏｏｋｉｅｘとｃｏｏｋｉｅｙのNCDを求めることで得られる。また、HTTPパケットＰｘとＰｙにおけるMessage-Body類似度は、ｂｏｄｙｘとｂｏｄｙｙのNCDを求めることで得られる。
【００４７】
従って、HTTPパケットＰｘとＰｙについて求めたRequest-Line類似度、Cookie類似度、Message-Bodyの類似度を用いて、例えば単純加算すると、２つのHTTPパケットＰｘとＰｙのHTTPパケット送信内容類似度とすることができる。
【００４８】
次に、クラスタリングの方法に説明する。クラスタは、アプリケーション単位又はHTTPパケット単位で構成する。なお、アプリケーション単位にするときのアプリケーションは、HTTPパケットの集合となるため、HTTPパケットの階層的クラスタリングを行う。HTTPパケットの階層的クラスタリングは、クラスタ間の距離は上述の通り、HTTP パケット送信先類似度及びHTTP パケット送信内容類似度に基づいたHTTP パケット類似度の距離を用い、距離の近いクラスタ毎にまとめていき、クラスタリングは群平均法を用いる。
【００４９】
図３を参照し、アプリケーションプログラム２１１に記憶されたアプリケーション１〜Ｎのすべてに対する、アプリケーション検査サーバ装置２の分類評価の処理フローを説明する。なお、以下に説明する処理フローは、制御部２２で実行されるプログラムによって制御される。
【００５０】
複数のアプリケーションの分類評価を開始するように指示を受けると処理が開始し、検査対象のすべてのアプリケーションを実行する（ステップＳ１）。このとき、通信ログ取得手段２２１は、アプリケーションの通信ログを取得し、取得した通信ログを通信ログ２１３に保存する。また、動作ログ取得手段２２２は、アプリケーションの動作ログを取得し、取得した動作ログを動作ログ２１４に保存する。
【００５１】
次に、クラスタ作成手段２２３は、通信ログ２１３からHTTPパケットなどの通信パケットを抽出する（ステップＳ２）。そして、クラスタ作成手段２２３は、抽出した通信パケット毎にクラスタを割り当て、割り当てたクラスタをクラスタ２１５に保存する（ステップＳ３）。
【００５２】
クラスタ作成手段２２３は、クラスタ２１５に保存されているクラスタ数を確認し（ステップＳ４）、クラスタ２１５内のクラスタ数が１ならば（ステップＳ４−Ｙｅｓ）、ステップＳ８に進む。クラスタ２１５内のクラスタ数が１でなければ（ステップＳ４−Ｎｏ）、処理対象としてクラスタ２１５より任意のクラスタを１つ取り出す（ステップＳ５）。このとき、クラスタを取り出したことによりクラスタが１つ減るため、クラスタ数は−１されることになる。
【００５３】
次に、クラスタ作成手段２２３は、取り出した処理対象のクラスタと他のクラスタのクラスタ間距離を計算するようにクラスタ間距離計算手段２２４を呼び出す。クラスタ間距離計算手段２２４は、取り出した処理対象のクラスタとクラスタ２１５に保存されている他の全てのクラスタとの間でクラスタ間距離を計算する（ステップＳ６）。クラスタ間距離を得ると、クラスタ作成手段２２３は、取り出した処理対象のクラスタと最もクラスタ間の距離が近いクラスタを新しいクラスタとして1つのクラスタにまとめ、この新しいクラスタをクラスタ２１５および解析済みクラスタ２１６に格納し、ステップＳ４へ戻る（ステップＳ７）。このとき、ステップＳ５でクラスタ２１５から取り出した処理対象のクラスタと最もクラスタ間の距離が近いクラスタもクラスタ２１５から取り出されるため、１つにまとめられて作成された新しいクラスタをクラスタ２１５に格納しても、クラスタ２１５のクラスタ数は増減することはない。また、解析済みクラスタ２１６には、クラスタ２１６から取り出された２つのクラスタ（すなわち、処理対象としてステップＳ５で取り出されたクラスタと、処理対象のクラスタと最もクラスタ間の距離が近いクラスタとしてステップＳ７で取り出されたクラスタ）がまとめられてどのように新しい１つのクラスタとなったかが、階層的に記憶されることになる。
【００５４】
ステップＳ８では、解析済みクラスタ２１６に保存されたクラスタを複数アプリケーションの分類結果としてクラスタ分類結果２１７に保存して、処理を終了する。
【００５５】
これにより、複数のアプリケーションに対し、通信ログに基づいて送信先及び送信内容の類似度による分類を新たに行うことができる。
【００５６】
次に、図４を参照し、アプリケーションプログラム２１１に記憶された複数アプリケーションに更に新たにアプリケーションプログラムを加えて、分類評価を行う処理フローを説明する。新規アプリケーションの追加は、図３の処理において、クラスタリングを適用し分類済みのクラスタに対して、新規アプリケーションの通信ログのクラスタとの距離を計算し、新たな分類結果とすることを目的としている。そのため、分類済みのクラスタとして、解析済みクラスタ２１６に格納されているクラスタを利用して処理を行う。このとき、どの階層に追加したいかを予め指定して処理を開始する。
【００５７】
まず、新規アプリケーションを実行し、通信ログ取得手段２２１は、新規アプリケーションの通信ログを取得し通信ログ２１３に保存する（ステップＳ１１）。そして、クラスタ作成手段２２３において、通信ログ２１３から通信パケットのうちHTTPパケットを取り出し（ステップＳ１２）、取り出したHTTPパケット毎にクラスタを割り当て、クラスタ２１５に保存する（ステップＳ１３）。
【００５８】
クラスタ作成手段２２３は、クラスタ２１５に保存されているクラスタ数を確認し（ステップＳ１４）、クラスタ２１５内のクラスタ数が０ならば（ステップＳ１４−Ｙｅｓ）、ステップＳ１８へ進む。クラスタ２１５内のクラスタ数が０でなければ（ステップＳ１４−Ｎｏ）、クラスタ２１５よりステップＳ１３で追加した新規クラスタの中からまだ未処理クラスタとして残る任意のクラスタを１つ取り出す（ステップＳ１５）。このとき、クラスタが１つ減り、クラスタ数は−１となる。
【００５９】
クラスタ間距離計算手段２２４は、ステップＳ１５で取り出した処理対象のクラスタと解析済みクラスタ２１６に保存されている追加したいとして指定した階層の全てのクラスタとの間でクラスタ間距離を計算する（ステップＳ１６）。
【００６０】
次に、クラスタ作成手段２２３は、処理対象のクラスタと最もクラスタ間の距離が近いクラスタを新しいクラスタとして1つのクラスタにまとめ、この新しいクラスタを解析済みクラスタ２１６に格納し、ステップＳ１４へ戻る（ステップＳ１７）。このとき、解析済みクラスタ２１６には、ステップＳ１５で取り出されたクラスタがどこに追加されて１つのクラスタにまとめられたかが、階層的に記憶されることになる。
【００６１】
ステップＳ１８では、解析済みクラスタ２１６に保存されている各層のクラスタから新しい分類結果を生成し、新たにクラスタ分類結果２１７に保存して、処理を終了する。このクラスタ分類結果２１７に保存された結果が、新規アプリケーションを追加した複数アプリケーションの分類結果となる。
【００６２】
これにより、既存の分類済みのクラスタに対し、新規のアプリケーションを追加しても分類結果を得ることができる。なお、図４の処理フローでは、追加したい階層のクラスタとのクラスタ間の距離からクラスタリングを行うことになるため、増えたアプリケーションも含めて図３の処理フローのように再度新しくクラスタリングし直す場合に比べ、分類結果の精度は劣ってしまう一方処理量は少なくて済むため、分類結果を早く得たいという場合に有効である。
【００６３】
次に、図５を参照し、分類結果から検査対象のアプリケーションに対する分類のみを抽出して結果出力する処理フローについて説明する。本処理は、図３及び図４において複数アプリケーションの分類結果が得られた後に、個々のアプリケーション評価も続いて行う場合、及び携帯端末５から利用予定のアプリケーションに対する個別の評価結果の問い合わせに応える場合等に実行される。
【００６４】
階層的クラスタリングの最下位のクラスタは、アプリケーション毎に区別することができる。従って、クラスタ抽出手段２２５が、クラスタ分類結果２１７に格納された分類結果において、アプリケーション毎に最下位のクラスタを抽出すると、当該アプリケーションにおける出現状況を把握できる。このとき、クラスタ分類結果では送信先が類似するアプリケーション群、送信内容が類似するアプリケーション群として分類結果が得られているので、異なるアプリケーション群に同じアプリケーションが出現する頻度を得られる。すべてのアプリケーションに対し、異なるアプリケーション群に属する頻度を求め、頻度の値でソートを行い、相対的に頻度が大きい、すなわち、異なるアプリケーション群を複数にまたがって属しているアプリケーションほど、グレーウェアらしく影響度が大きいといえる。
【００６５】
図５では、検査対象のアプリケーション及び評価値に使用する階層を指定して、検査の処理を開始する。まず、クラスタ抽出手段２２５は、最下位クラスタ数の値を０に初期化し、クラスタ分類結果２１７から複数アプリケーションの分類結果を読み出す（ステップＳ２１）。次に、クラスタ抽出手段２２５は、読み出した分類結果の最下位クラスタの１つを処理対象として選択する（ステップＳ２２）。
【００６６】
処理対象として選択した最下位クラスタが検査対象のアプリケーションのクラスタかを判定する（ステップＳ２３）。検査対象のアプリケーションのクラスタであれば（ステップＳ２３−Ｙｅｓ）、処理対象のクラスタを抽出し、最下位クラスタ数を＋１としてカウントアップして計数し（ステップＳ２４）、ステップＳ２５へ進む。検査対象のアプリケーションのクラスタでなければ（ステップＳ２３−Ｎｏ）、ステップＳ２５へ進む。
【００６７】
ステップＳ２５において、すべての最下位クラスタについて確認が終了したか否かを判定する。すべての最下位クラスタについて確認が終了していれば（ステップＳ２５−Ｙｅｓ）、クラスタ抽出手段２２５は、検査対象アプリケーションの最下位クラスタの抽出と最下位クラスタ数の計数を完了する。そして、指定された上位階層でのクラスタの中から抽出した最下位クラスタが１つ以上含まれている上位階層のクラスタを抽出し、そのクラスタ数を共通クラスタ数として計数する（ステップＳ２６）。一方、すべての最下位クラスタについて確認が終了していなければ（ステップＳ２５−Ｎｏ）、ステップＳ２２に戻り、検査対象アプリケーションの最下位クラスタの抽出と最下位クラスタ数の計数を継続する。
【００６８】
次に、評価手段２２６は、クラスタ抽出手段２２５が出力した最下位クラスタ数と共通クラスタ数を評価値として用いて、影響度合いの評価を行う（ステップＳ２７）。このとき、最下位クラスタ数が多いほど、影響度合いを高く評価する。また、共通クラスタ数が多いほど、影響度合いを高く評価する。そして、結果出力手段２２７は、評価手段２２６が出力した影響度合いを検査対象のアプリケーションの評価結果として出力し（ステップＳ２８）、処理を終了する。
【００６９】
グレーウェアなアプリケーションで、例えば、広告配信、利用統計を目的として端末情報の取得を行う場合は、携帯端末内の複数のアプリケーションが同一サーバと通信していることがあることから、他のアプリケーションとの類似性からアプリケーション群に分類し、その結果を用いてグレーウェアらしさを判断することができる。このように、複数のアプリケーションから得られる統計的な傾向を把握することで、これまで知られていなかった送信意図や用途を抽出し、改めてアプリケーション単体の評価に反映することが可能になる。
【００７０】
本発明は、上記実施の形態に限定されるものではなく、幾多の変更及び変形が可能である。例えば、ステップＳ２及びステップＳ１２において通信ログ２１３から通信パケットのうちHTTPパケットを取り出す際に、動作ログ取得手段２２２が取得した動作ログ２１４もあわせて参照し、通信パケットにユーザの意図によるものか否かの情報を付加するようにしてもよい。このとき、付加されたユーザの意図によるものか否かの情報を用い、ユーザの意図による通信パケットと明らかであるHTTPパケットについては、ステップＳ３及びステップＳ１３においてクラスタの割り当てをせず、分類評価の対象からはずしてもよい。また、目的が明らかでユーザの操作がなくてもユーザの意図による通信パケットの送信先となる送信先について予めホワイトリストとして情報を記憶しておき、ステップＳ２及びステップＳ１２において、抽出する通信パケットの対象外としてもよい。これにより、処理対象のクラスタ数を減らすことができ、クラスタリング処理を効率よく行うことができると共に、評価値を構成する最下位クラスタ数も少なくすることができる。
【符号の説明】
【００７１】
１・・・アプリケーション検査システム
２・・・アプリケーション検査サーバ装置
２１・・・記憶部
２１１・・・アプリケーションプログラム
２１２・・・固有情報
２１３・・・通信ログ
２１４・・・動作ログ
２１５・・・クラスタ
２１６・・・解析済みクラスタ
２１７・・・クラスタ分類結果
２２・・・制御部
２２１・・・通信ログ取得手段
２２２・・・動作ログ取得手段
２２３・・・クラスタ作成手段
２２４・・・クラスタ間距離計算手段
２２５・・・クラスタ抽出手段
２２６・・・評価手段
２２７・・・結果出力手段
２３・・・通信部
２４・・・表示操作部
３・・・ネットワーク
４・・・外部サーバ
５・・・携帯端末
【図１】
0005806630.tif 000002
【図２】
0005806630.tif 000003
【図３】
0005806630.tif 000004
【図４】
0005806630.tif 000005
【図５】
0005806630.tif 000006