アプリケーション判定システムおよびプログラム
【課題】アプリケーションの異常性を判定することができるアプリケーション判定システムおよびプログラムを提供する。
【解決手段】パーミッションリスト記憶部11は、アプリケーションの種別を示す第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションが機能およびデータにアクセスする権限を示す第1の権限情報とを対応付けて記憶する。パーミッション抽出部12は、第2の権限情報を含む判定対象のアプリケーションの実行ファイルから第2の権限情報を抽出する。パーミッション比較部13は、判定対象のアプリケーションに対応する第2の種別情報と一致する第1の種別情報に対応する第1の権限情報と、抽出された第2の権限情報とを比較する。判定部14は、権限比較部が行った比較の結果に基づいて、判定対象のアプリケーションが異常であるか否かを判定する。
【解決手段】パーミッションリスト記憶部11は、アプリケーションの種別を示す第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションが機能およびデータにアクセスする権限を示す第1の権限情報とを対応付けて記憶する。パーミッション抽出部12は、第2の権限情報を含む判定対象のアプリケーションの実行ファイルから第2の権限情報を抽出する。パーミッション比較部13は、判定対象のアプリケーションに対応する第2の種別情報と一致する第1の種別情報に対応する第1の権限情報と、抽出された第2の権限情報とを比較する。判定部14は、権限比較部が行った比較の結果に基づいて、判定対象のアプリケーションが異常であるか否かを判定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、携帯電話等で動作するアプリケーションが異常であるか否か(良性であるか悪性であるか)を判定するアプリケーション判定システムに関する。また、本発明は、本アプリケーション判定システムとしてコンピュータを機能させるためのプログラムにも関する。
【背景技術】
【0002】
Web上でソースコードが公開されオープンに開発されている、オープンOSと呼ばれるOS(オペレーティングシステム)がある。また、Android等のオープンOSを用いた携帯電話が普及しており、携帯電話用のアプリケーションを販売するWebサイトが増えている。オープンOSでは、アプリケーションが機能(デバイス)やデータにアクセスする権限がパーミッションリストとして定義されており(例えばhttp://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob_plain;f=core/res/AndroidManifest.xml;hb=HEAD参照)、この範囲内でしか動作できない制限が設けられている。アプリケーションがアクセスする機能(デバイス)は、電話番号発信機能、インターネットアクセス機能、位置情報取得機能、システム設定機能等である。また、アプリケーションがアクセスするデータは、所有者データ、カレンダーデータ、ユーザ定義辞書等である。
【0003】
パーミッションの候補は、あらゆるアプリケーションに共通して適用可能となっている。アプリケーションの作成者は、パーミッションを自由に選択してアプリケーションに付与することができるため、アプリケーションに求められる本来の挙動とは異なる処理を行うアプリケーションを作成することができる。したがって、コンピュータに侵入し、データの消去やファイルの外部流出、他のコンピュータの攻撃などを行う、いわゆるトロイの木馬を作成することもできる。
【0004】
ユーザが携帯電話上でアプリケーションのインストールを行う場合、図15に示す画面が表示され、アプリケーションに付与されているパーミッションの一覧が表示される。図15(a)は、FTPサーバアプリケーションに関する画面の一例である。このアプリケーションは、インターネットアクセスに関するパーミッションと、電話デバイスへのアクセスに関するパーミッションと、無線通信の状態変更等に関するパーミッションとを有している。
【0005】
図15(b)は、コミック系アプリケーションに関する画面の一例である。このアプリケーションは、インターネットアクセスに関するパーミッションを有している。図15(c)は、キーボードアプリケーションに関する画面の一例である。このアプリケーションは、インターネットアクセスに関するパーミッションと、個人情報へのアクセスに関するパーミッションとを有している。
【0006】
ユーザはパーミッションの一覧を確認し、インストールを行う場合には「OK」と書かれたボタンB1をGUI(Graphical User Interface)により操作し、インストールを中止する場合には「Cancel」と書かれたボタンB2をGUIにより操作する。ボタンB1が操作されると、アプリケーションが携帯電話にインストールされ、アプリケーションの使用が可能となる。
【0007】
本発明に関連する技術として、特許文献1には、マルウェアによる通信を検知する方法が記載されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2010−15513号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
図15に示したパーミッションを有するアプリケーションは、本来のアプリケーションの動作とは異なる異常な動作を行うことが確認されたものである。FTPサーバアプリケーションがインターネットアクセスに関するパーミッションを持っていることは問題ないが、電話デバイスへのアクセスに関するパーミッションを持つのは異常である。また、コミック系アプリケーションがインターネットアクセスに関するパーミッションを持つのも異常である。また、キーボードアプリケーションがインターネットアクセスに関するパーミッションと個人情報へのアクセスに関するパーミッションを持つのも異常である。
【0010】
ユーザは、パーミッションに関する知識を有していなければ、図15に示した画面から、アプリケーションの良性/悪性を判定することは困難である。携帯電話用のアプリケーションの販売サイトの多くは、開発者から投稿されたアプリケーションの審査を行わずにそのままアプリケーションをWebに公開するため、ユーザの携帯電話が悪意のソフトウェア(マルウェア)に感染してしまう事例が発生している。
【0011】
本発明は、上述した課題に鑑みてなされたものであって、アプリケーションの異常性を判定することができるアプリケーション判定システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明は、上記の課題を解決するためになされたもので、アプリケーションの種別を示す第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションが機能およびデータにアクセスする権限を示す第1の権限情報とを対応付けて記憶する権限記憶部と、アプリケーションが機能およびデータにアクセスする権限を示す第2の権限情報を含むアプリケーションの実行ファイルと、当該アプリケーションの種別を示す第2の種別情報とを対応付けて記憶するアプリケーション記憶部と、判定対象のアプリケーションの実行ファイルから前記第2の権限情報を抽出する抽出部と、前記判定対象のアプリケーションに対応する前記第2の種別情報と一致する前記第1の種別情報に対応する前記第1の権限情報と、前記抽出部によって抽出された前記第2の権限情報とを比較する権限比較部と、前記権限比較部が行った比較の結果に基づいて、前記判定対象のアプリケーションが異常であるか否かを判定する判定部と、を備えたことを特徴とするアプリケーション判定システムである。
【0013】
また、本発明のアプリケーション判定システムは、前記第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションが通信を行う際の通信相手を示す第1の通信相手情報とを対応付けて記憶する通信相手記憶部と、前記判定対象のアプリケーションの実行ファイルを実行する実行部と、通信を行う通信部と、前記判定対象のアプリケーションの実行ファイルが実行されたときに前記通信部が行う通信を監視し、前記通信部が行った通信の相手を示す第2の通信相手情報を生成する監視部と、前記判定対象のアプリケーションに対応する前記第2の種別情報と一致する前記第1の種別情報に対応する前記第1の通信相手情報と、前記監視部によって生成された前記第2の通信相手情報とを比較する通信相手比較部と、をさらに備え、前記判定部は、前記権限比較部および前記通信相手比較部が行った比較の結果に基づいて、前記判定対象のアプリケーションが異常であるか否かを判定することを特徴とする。
【0014】
また、本発明のアプリケーション判定システムは、アプリケーションによってアクセスされるファイルをディレクトリに格納して記憶するファイル記憶部と、前記第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションがアクセスするファイルまたはディレクトリを示す第1のアクセス情報とを対応付けて記憶するアクセス記憶部と、前記判定対象のアプリケーションの実行ファイルを実行する実行部と、前記判定対象のアプリケーションの実行ファイルが実行されたときに前記ファイル記憶部が記憶しているファイルまたはディレクトリへのアクセスを監視し、アクセスされたファイルまたはディレクトリを示す第2のアクセス情報を生成する監視部と、前記判定対象のアプリケーションに対応する前記第2の種別情報と一致する前記第1の種別情報に対応する前記第1のアクセス情報と、前記監視部によって生成された前記第2のアクセス情報とを比較するアクセス比較部と、をさらに備え、前記判定部は、前記権限比較部および前記アクセス比較部が行った比較の結果に基づいて、前記判定対象のアプリケーションが異常であるか否かを判定することを特徴とする。
【0015】
また、本発明のアプリケーション判定システムにおいて、前記判定部は、前記第1の権限情報と前記第2の権限情報とが一致せず、前記第1の権限情報が示す機能およびデータ毎の権限の数よりも、前記第2の権限情報が示す機能およびデータ毎の権限の数のほうが多い場合に、当該権限の数の差が所定数以上であれば、前記判定対象のアプリケーションが異常であると判定することを特徴とする。
【0016】
また、本発明のアプリケーション判定システムにおいて、前記権限記憶部はさらに、異常なアプリケーションが機能およびデータにアクセスする複数の権限の組合せを示す第3の権限情報を記憶し、前記判定部は、前記第1の権限情報と前記第2の権限情報とが一致せず、前記第2の権限情報が示す権限から前記第1の権限情報が示す権限と一致する権限を除いた残りの権限が複数であって、当該複数の権限の組合せが、前記第3の権限情報が示す複数の権限の組合せと一致する場合に、前記判定対象のアプリケーションが異常であると判定することを特徴とする。
【0017】
また、本発明は、上記のアプリケーション判定システムとしてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0018】
本発明によれば、アプリケーションが機能およびデータにアクセスする権限を示す第2の権限情報を判定対象のアプリケーションの実行ファイルから抽出し、正常なアプリケーションが機能およびデータにアクセスする権限を示す第1の権限情報と比較することによって、アプリケーションの異常性を判定することができる。
【図面の簡単な説明】
【0019】
【図1】本発明の第1の実施形態によるアプリケーション判定装置の構成を示すブロック図である。
【図2】本発明の第1の実施形態におけるアプリケーションの実行ファイルの構成を示す参考図である。
【図3】本発明の第1の実施形態におけるパーミッションを示す参考図である。
【図4】本発明の第1の実施形態によるアプリケーション判定装置の動作の手順を示すフローチャートである。
【図5】本発明の第1の実施形態におけるパーミッションリストの比較およびアプリケーションの判定の様子を示す参考図である。
【図6】本発明の第1の実施形態におけるパーミッションリストの比較およびアプリケーションの判定の様子を示す参考図である。
【図7】本発明の第1の実施形態におけるパーミッションリストの比較およびアプリケーションの判定の様子を示す参考図である。
【図8】本発明の第1の実施形態におけるパーミッションリストの比較およびアプリケーションの判定の様子を示す参考図である。
【図9】本発明の第2の実施形態によるアプリケーション判定システムの構成を示すブロック図である。
【図10】本発明の第2の実施形態によるアプリケーション判定システムの動作の手順を示すシーケンス図である。
【図11】本発明の第3の実施形態によるアプリケーション判定システムの構成を示すブロック図である。
【図12】本発明の第3の実施形態によるアプリケーション判定システムの動作の手順を示すシーケンス図である。
【図13】本発明の他の実施形態によるアプリケーション判定装置の構成を示すブロック図である。
【図14】本発明の他の実施形態によるアプリケーション判定装置の構成を示すブロック図である。
【図15】アプリケーションのインストール時に表示される画面を示す参考図である。
【図16】Androidのディレクトリ構造を示す参考図である。
【発明を実施するための形態】
【0020】
以下、図面を参照し、本発明の実施形態を説明する。以下では、携帯電話用のオープンOSの一つであるAndroidに適用されるアプリケーションを例として説明する。
【0021】
(第1の実施形態)
まず、本発明の第1の実施形態を説明する。図1は、本実施形態によるアプリケーション判定装置(本発明のアプリケーション判定システムに対応)の構成を示している。図1に示すアプリケーション判定装置1aは、例えば携帯電話用のアプリケーションをWeb上で販売する販売サイトを管理する企業に設置される。アプリケーション判定装置1aはPC(Personal Computer)であっても携帯電話であってもよい。このアプリケーション判定装置1aは、アプリケーション記憶部10と、パーミッションリスト記憶部11と、パーミッション抽出部12と、パーミッション比較部13と、判定部14と、表示部15とを有する。
【0022】
アプリケーション記憶部10は、開発者から販売サイトへの登録が申請されたアプリケーションの実行ファイルを記憶する。図2はアプリケーションの実行ファイルの構成を示している。図2に示すように実行ファイル200は、命令列を含む実行コード201、アプリケーションに付与されているパーミッションの情報を含むパーミッションリスト202、実行ファイル202の実行時に参照されるライブラリ203やパラメータ204等のファイルで構成されている。アプリケーションの実行ファイルは、アプリケーションの種別を示す種別情報と対応付けられた形式でアプリケーション記憶部10に格納されている。アプリケーションの種別は、開発者からの申告に基づいて販売サイト側で決定されるものとする。
【0023】
パーミッションリスト記憶部11は、マルウェアを含まないことが確認されている正常なアプリケーションが機能(デバイス)およびデータにアクセスする権限を示すパーミッション情報を含むパーミッションリストを記憶する。本実施形態では、アプリケーションの種別毎にパーミッションリストが用意されている。パーミッションリストは、アプリケーションの種別を示す種別情報と上記のパーミッション情報とが対応付けられた形式でパーミッションリスト記憶部11に格納されている。
【0024】
本実施形態では、一例として、アプリケーションは以下の22種類の種別のいずれかに属するものとしている。
[ゲーム系]
(1)アーケード&アクション
(2)カジュアル
(3)カード&カジノ
(4)パズル
[アプリケーション]
(5)エンターテイメント
(6)ショッピング
(7)ソーシャルネットワーク
(8)ツール
(9)ニュース&天気情報
(10)ファイナンス
(11)マルチメディア
(12)ライフスタイル
(13)リファレンス
(14)仕事効率化
(15)旅行
(16)通信
(17)デモ
(18)ソフトウェアライブラリ
(19)コミック
(20)スポーツ
(21)テーマ
(22)健康
【0025】
図3は、Androidで定義されているパーミッションの一部を抜粋して示している。図3では、パーミッションの名称と、パーミッションの意味(ラベル)と、危険度とが示されている。危険度には「dangerous」と「normal」の2種類があり、危険度が「dangerous」のパーミッションは、アプリケーションのインストール時の初期状態の画面に表示される。危険度が「normal」のパーミッションは、アプリケーションのインストール時の初期状態の画面には表示されていないが、図15に示した「Show all」と書かれた部分をユーザがGUIにより操作することで、危険度が「normal」のパーミッションを画面に表示することができる。本実施形態では、上記の22種類の種別毎に、正常なアプリケーションが本来の機能を実行する上で持っていてよいパーミッションを予め選定し、リスト化しておく。
【0026】
パーミッション抽出部12は、判定対象のアプリケーションの実行ファイルからパーミッションリストを抽出する。パーミッション比較部13は、判定対象のアプリケーションの種別に対応するパーミッションリストをパーミッションリスト記憶部11から読み出し、読み出したパーミッションリストと、パーミッション抽出部12によって抽出されたパーミッションリストとを比較する。判定部14は、パーミッション比較部13がパーミッションリストを比較した結果に基づいて、判定対象のアプリケーションが異常であるか否か(良性であるか悪性であるか)を判定する。表示部15は、判定部14が行った判定の結果を表示する。
【0027】
図1では、アプリケーション記憶部10とパーミッションリスト記憶部11の2つの記憶部が設けられているが、これらは異なる記録媒体で構成されていてもよいし、同一の記録媒体上の異なる記憶領域で構成されていてもよい。
【0028】
次に、本実施形態によるアプリケーション判定装置1aの動作を説明する。図4は、アプリケーション判定装置1aの動作の手順を示している。販売サイトの管理者等により動作開始の指示がなされると、パーミッション抽出部12は、判定対象のアプリケーションの実行ファイルと種別情報のペアをアプリケーション記憶部10から読み出し、読み出した実行ファイルからパーミッションリストを抽出し、抽出したパーミッションリストと種別情報をパーミッション比較部13へ出力する(ステップS100)。
【0029】
続いて、パーミッション比較部13は、パーミッション抽出部12から入力された種別情報と一致する種別情報と対応付けられているパーミッションリストをパーミッションリスト記憶部11から読み出し、読み出したパーミッションリストと、パーミッション抽出部12から出力されたパーミッションリストとを比較する(ステップS105)。この比較は、パーミッションリストを構成する個々のパーミッション情報の単位で行われ、比較の単位毎に「一致」または「不一致」を示す比較結果が判定部14へ出力される。
【0030】
続いて、判定部14は、パーミッション比較部13から出力された比較結果に基づいて、判定対象のアプリケーションが異常であるか否か(良性であるか悪性であるか)を判定する(ステップS110)。続いて、表示部15は、判定部14が行った判定の結果を表示する(ステップS115)。アプリケーションが異常(悪性)であると判定された場合、例えば、販売サイトの管理者は、このアプリケーションの登録を許可しない。
【0031】
図5は、ステップS105,S110の処理の様子を示している。図5に示すパーミッションA〜Eは個々のパーミッション情報である。ステップS110において、パーミッション比較部13は、パーミッションリストを構成する個々のパーミッション情報について一致するか否かを判断する。
【0032】
図5(a)では、判定対象のアプリケーションのパーミッションリストを構成する全てのパーミッション情報(パーミッションA〜C)が、パーミッションリスト記憶部11に格納されているパーミッションリストを構成するパーミッション情報(パーミッションA〜D)のいずれかと一致している。パーミッション比較部13は、判定対象のアプリケーションに関する全てのパーミッション情報について、個々のパーミッション毎に比較結果を出力する。判定部14は、比較結果が全て「一致」であるので、判定対象のアプリケーションが正常(良性)であると判定する。
【0033】
図5(b)では、判定対象のアプリケーションのパーミッションリストを構成するパーミッション情報(パーミッションA〜E)のうち一部(パーミッションA〜C)は、パーミッションリスト記憶部11に格納されているパーミッションリストを構成するパーミッション情報(パーミッションA〜D)のいずれかと一致している。しかし、残りの一部(パーミッションE)は、パーミッションリスト記憶部11に格納されているパーミッションリストを構成するパーミッション情報(パーミッションA〜D)のいずれとも一致しない。パーミッション比較部13は、判定対象のアプリケーションに関する全てのパーミッション情報について、個々のパーミッション毎に比較結果を出力する。
【0034】
同種別のアプリケーションのパーミッションとして付与されてよいものとは異なるものが付与されているアプリケーションは、アプリケーションの本来の動作とは異なる動作を行いうるため、トロイの木馬である可能性がある。判定部14は、比較結果に「不一致」が含まれるので、判定対象のアプリケーションが異常(悪性)であると判定する。
【0035】
次に、ステップS105,S110の処理の変形例を説明する。図6は、第1の変形例に関するステップS105,S110の処理の様子を示している。図6に示すパーミッションA〜Fは個々のパーミッション情報である。ステップS105において、パーミッション比較部13は、パーミッションリストを構成する個々のパーミッション情報について一致するか否かを判断する。
【0036】
図6では、判定対象のアプリケーションのパーミッションリストを構成するパーミッション情報(パーミッションA〜F)のうち一部(パーミッションA〜C)は、パーミッションリスト記憶部11に格納されているパーミッションリストを構成するパーミッション情報(パーミッションA〜D)のいずれかと一致している。しかし、残りの一部(パーミッションE,F)は、パーミッションリスト記憶部11に格納されているパーミッションリストを構成するパーミッション情報(パーミッションA〜D)のいずれとも一致しない。
【0037】
パーミッション比較部13は、判定対象のアプリケーションに関する全てのパーミッション情報について、個々のパーミッション毎に比較結果を出力する。判定部14は、比較結果に「不一致」が含まれるので、判定対象のアプリケーションのパーミッションリストには、同種別のアプリケーションのパーミッションとして付与されてよいものとは異なるものが含まれていると判断し、判定対象のアプリケーションが異常(悪性)であると判定する。
【0038】
また、判定部14は、比較結果が「不一致」であったパーミッション情報の数と所定の閾値(例えば2)とを比較する。図6に示す例では、比較結果が「不一致」であったパーミッション情報の数は2であり、所定の閾値以上であるため、判定部14は危険度が高いと判定する。また、比較結果が「不一致」であったパーミッション情報の数が所定の閾値未満であった場合、判定部14は危険度が低いと判定する。この危険度は、アプリケーションの異常性の度合いを示す。
【0039】
正常なアプリケーションの本来の動作に必要なパーミッションよりも多くのパーミッションが付与されたアプリケーションは、本来の動作を行う以外に他の不要な動作を行い、トロイの木馬として動作する可能性がある。また、携帯電話のCPUやメモリの資源には制約があるため、不要なパーミッションが付与されていることは望ましくない。したがって、第1の変形例では、判定部14は、不要なパーミッションがより多く付与されているアプリケーションについて、危険度が高いと判定している。なお、危険度をより細かく定義しておき、比較結果が「不一致」であったパーミッション情報の数が多くなればなるほど危険度がより高いと判定してもよい。
【0040】
図7は、第2の変形例に関するアプリケーション判定装置の構成を示している。図7に示すアプリケーション判定装置1bは、図1に示したアプリケーション判定装置1aに対して悪性パーミッション記憶部16を追加したものである。悪性パーミッション記憶部16は、異常(悪性)なアプリケーションが機能およびデータにアクセスする権限を示す複数のパーミッション情報の組合せを示すパーミッションリストを記憶する。
【0041】
図8は、第2の変形例に関するステップS105,S110の処理の様子を示している。図8に示すパーミッションA〜Fは個々のパーミッション情報である。ステップS110において、パーミッション比較部13は、パーミッションリストを構成する個々のパーミッション情報について一致するか否かを判断する。
【0042】
パーミッション比較部13は、判定対象のアプリケーションに関する全てのパーミッション情報について、個々のパーミッション毎に比較結果を出力する。また、パーミッション比較部13は、比較結果が「不一致」であった場合、その比較に用いた、判定対象のアプリケーションのパーミッション情報も出力する。判定部14は、比較結果に「不一致」が含まれるので、判定対象のアプリケーションのパーミッションリストには、同種別のアプリケーションのパーミッションとして付与されてよいものとは異なるものが含まれていると判断し、判定対象のアプリケーションが異常(悪性)であると判定する。
【0043】
また、判定部14は、悪性パーミッション記憶部16からパーミッションリストを読み出し、比較結果が「不一致」であったパーミッション情報と、悪性パーミッション記憶部16から読み出したパーミッションリスト内のパーミッション情報の組合せとを比較する。図8に示す例では、比較結果が「不一致」であった2つのパーミッション情報(パーミッションE,F)の組合せと、悪性パーミッション記憶部16から読み出したパーミッションリスト内のパーミッション情報(パーミッションE,F)の組合せとが一致するため、判定部14は危険度が高いと判定する。また、2つの組合せが一致しない場合、判定部14は危険度が低いと判定する。この危険度は、アプリケーションの異常性の度合いを示す。
【0044】
トロイの木馬として動作するアプリケーションは、本来のアプリケーションの動作とは異なる動作として、個人情報にアクセスしてインターネット上に送信したり、録音機能を有する携帯電話では録音を行って録音したデータをインターネット上に送信したりする。このような動作に関する複数のパーミッションの組合せを悪性パーミッション記憶部16に登録しておくことで、トロイの木馬としての動作を行う可能性のあるアプリケーションを検出することができる。第2の変形例では、判定部14は、異常(悪性)なアプリケーションに付与されやすい複数のパーミッションが付与されているアプリケーションについて、危険度が高いと判定している。
【0045】
悪性パーミッション記憶部16に予め登録されるパーミッション情報の組合せの例として、所有者データの読み取りに関する「android.permission.READ_OWNER_DATA」とインターネットアクセスに関する「android.permission.INTERNET」との組合せや、録音に関する「android.permission.RECORD_AUDIO」とインターネットアクセスに関する「android.permission.INTERNET」との組合せ等がある。
【0046】
上述したように、本実施形態によれば、判定対象のアプリケーションの実行ファイルからパーミッションリストを抽出し、マルウェアを含まないことが確認されている正常なアプリケーションのパーミッションリストと比較することによって、アプリケーションの異常性を判定することができる。また、第1の変形例や第2の変形例のように、アプリケーションの危険度も判定することによって、アプリケーションの異常性をより細かく判定することができる。また、このアプリケーションの危険度は、販売サイトの管理者がアプリケーションの登録を許可するか否かを判断する際の判断材料として使用できる。
【0047】
販売サイトの管理者は、アプリケーションの登録を許可するか否かを判断する際に、アプリケーションの危険度を考慮してもしなくてもよい。例えば、図5を用いて説明した方法により異常であると判定された全てのアプリケーションについて登録を許可しないようにしてもよい。また、図5を用いて説明した方法により異常であると判定されたアプリケーションのうち、危険度が高いと判定されたアプリケーションについては登録を許可せず、危険度が低いと判定されたアプリケーションについては、詳細な調査を行った後、登録を許可するか否かを再度判断してもよい。
【0048】
(第2の実施形態)
次に、本発明の第2の実施形態を説明する。本実施形態では、第1の実施形態で説明したパーミッションリストの比較結果のほかに、判定対象のアプリケーションを実行したときに行われる通信の宛先と、正常なアプリケーションを実行したときに行われる通信の宛先とを比較した結果に基づいて、アプリケーションの判定が行われる。
【0049】
図9は、本実施形態によるアプリケーション判定システムの構成を示している。図9に示すアプリケーション判定システムは、例えば携帯電話用のアプリケーションをWeb上で販売する販売サイトを管理する企業に設置される。このアプリケーション判定システムは、PC等のアプリケーション判定装置1cと携帯電話3aとを有する。アプリケーション判定装置1cは、パーミッションリスト記憶部11と、パーミッション比較部13と、判定部14と、表示部15と、通信部17と、通知情報分離部18と、宛先リスト記憶部19と、宛先比較部20とを有する。
【0050】
通信部17は、ネットワーク4を介して、あるいは直接、携帯電話3aと通信を行い、携帯電話3aから通知情報を受信する。通知情報には、判定対象のアプリケーションから抽出したパーミッションリストと、判定対象のアプリケーションを実行したときに行われた通信の宛先を示す宛先リストとが含まれる。通知情報分離部18は、通知情報を上記のパーミッションリストと宛先リストとに分離して、パーミッションリストをパーミッション比較部13へ出力し、宛先リストを宛先比較部20へ出力する。
【0051】
パーミッションリスト記憶部11は、マルウェアを含まないことが確認されている正常なアプリケーションのパーミッションリストとアプリケーションの種別情報とを対応付けて記憶する。パーミッション比較部13は、判定対象のアプリケーションの種別に対応するパーミッションリストをパーミッションリスト記憶部11から読み出し、読み出したパーミッションリストと、通知情報分離部18からのパーミッションリストとを比較する。
【0052】
宛先リスト記憶部19は、マルウェアを含まないことが確認されている正常なアプリケーションの実行ファイルが実行されたときに行われる通信の宛先(通信相手)を示す宛先情報を含む宛先リストを記憶する。本実施形態における個々の宛先情報は、IPアドレス、FQDN(Fully Qualified Domain Name)、Port番号のいずれかで構成されている。本実施形態では、アプリケーションの種別毎に宛先リストが用意されている。宛先リストは、アプリケーションの種別を示す種別情報と上記の宛先情報とが対応付けられた形式で宛先リスト記憶部19に格納されている。
【0053】
宛先比較部20は、判定対象のアプリケーションの種別に対応する宛先リストを宛先リスト記憶部19から読み出し、読み出した宛先リストと、通知情報分離部18からの宛先リストとを比較する。判定部14は、パーミッション比較部13がパーミッションリストを比較した結果および宛先比較部20が宛先リストを比較した結果に基づいて、判定対象のアプリケーションが異常であるか否か(良性であるか悪性であるか)を判定する。表示部15は、判定部14が行った判定の結果を表示する。
【0054】
携帯電話3aは、通信部30と、監視部31と、通信ログ記憶部32と、アプリケーション記憶部33と、パーミッション抽出部34と、通知情報生成部35と、アプリケーション実行部36とを有する。通信部30は、ネットワーク4を介して、あるいは直接、アプリケーション判定装置1cと通信を行い、アプリケーション判定装置1cへ通知情報を送信する。また、通信部30は、ネットワーク4を介して外部の通信装置と通信を行う。
【0055】
監視部31は、判定対象のアプリケーションの実行ファイルが実行されたときに行われる通信を監視し、通信結果を示す通信ログを生成する。通信ログには、通信時刻と、前述した宛先情報とが含まれる。宛先情報は、送信または受信されるパケットから抽出される。IPアドレスは、携帯電話3aから外部へ送信されたパケットのDestination IPまたは携帯電話3aで受信されたパケットのSource IPから抽出される。FQDNは、名前解決のためのDNS用パケットから抽出される。DNS用のパケットは、ポート番号がUDP53であるパケットとして検出することができる。ポート番号は、携帯電話3aから外部へ送信されたパケットのDestination Portまたは携帯電話3aで受信されたパケットのSource Portから抽出される。
【0056】
通信ログ記憶部32は、上記の通信ログを記憶する。アプリケーション記憶部33は、開発者から販売サイトへの登録が申請されたアプリケーションの実行ファイルを記憶する。アプリケーションの実行ファイルは、アプリケーションの種別情報と対応付けられた形式でアプリケーション記憶部33に格納されている。パーミッション抽出部34は、判定対象のアプリケーションの実行ファイルからパーミッションリストを抽出する。
【0057】
通知情報生成部35は、パーミッション抽出部34によって抽出されたパーミッションリストと、通信ログ記憶部32に格納されている通信ログから抽出した宛先情報を含む宛先リストとを含む通知情報を生成する。アプリケーション実行部36は、判定対象のアプリケーションの実行ファイルを実行する。
【0058】
図9では、アプリケーション判定装置1c内にパーミッションリスト記憶部11と宛先リスト記憶部19の2つの記憶部が設けられているが、これらは異なる記録媒体で構成されていてもよいし、同一の記録媒体上の異なる記憶領域で構成されていてもよい。また、携帯電話3a内に通信ログ記憶部32とアプリケーション記憶部33の2つの記憶部が設けられているが、これらは異なる記録媒体で構成されていてもよいし、同一の記録媒体上の異なる記憶領域で構成されていてもよい。
【0059】
次に、本実施形態によるアプリケーション判定システムの動作を説明する。図10は、アプリケーション判定システムの動作の手順を示している。アプリケーション判定装置1cにおいて、販売サイトの管理者等により動作開始の指示がなされると、アプリケーション判定装置1cは通知情報の受信待ちとなる。また、携帯電話3aにおいて、販売サイトの管理者等により動作開始の指示がなされると、アプリケーション実行部36は判定対象のアプリケーションの実行ファイルをアプリケーション記憶部33から読み出し、読み出した実行ファイルを実行する(ステップS200)。
【0060】
続いて、監視部31は、実行ファイルが実行されてから所定時間(例えば30秒間)に行われる通信を監視し、送信または受信されるパケットから宛先情報を抽出して、通信ログとして通信ログ記憶部32に格納する(ステップS205)。なお、通信が行われなかった場合には、通信ログ記憶部32に通信ログは格納されない。
【0061】
続いて、パーミッション抽出部12は、判定対象のアプリケーションの実行ファイルと種別情報のペアをアプリケーション記憶部10から読み出し、読み出した実行ファイルからパーミッションリストを抽出し、抽出したパーミッションリストと種別情報を通知情報生成部35へ出力する(ステップS210)。なお、ステップS210の処理をステップS200の処理の前に行ってもよい。
【0062】
続いて、通知情報生成部35は、通信ログ記憶部32から通信ログを読み出し、通信ログから宛先情報を抽出する。また、通知情報生成部35は、抽出した宛先情報を含む宛先リストを生成する。通知情報生成部35は、上記のパーミッションリストと宛先リストおよび種別情報をパケットに格納して通知情報を生成し、通信部30へ出力する(ステップS215)。通信が行われなかった場合、宛先リストは空となる。続いて、通信部30は、通知情報をアプリケーション判定装置1cへ送信する(ステップS220)。
【0063】
アプリケーション判定装置1cにおいて、通信部17は通知情報を受信し、通知情報分離部18へ出力する(ステップS225)。続いて、通知情報分離部18は、通知情報に含まれるパーミッションリストと種別情報をパーミッション比較部13へ出力し、宛先リストと種別情報を宛先比較部20へ出力する(ステップS230)。
【0064】
続いて、パーミッション比較部13は、通知情報分離部18からの種別情報と一致する種別情報と対応付けられているパーミッションリストをパーミッションリスト記憶部11から読み出し、読み出したパーミッションリストと、通知情報分離部18からのパーミッションリストとを比較する(ステップS235)。この比較は、パーミッションリストを構成する個々のパーミッション情報の単位で行われ、比較の単位毎に「一致」または「不一致」を示す比較結果が判定部14へ出力される。
【0065】
続いて、宛先比較部20は、通知情報分離部18からの種別情報と一致する種別情報と対応付けられている宛先リストを宛先リスト記憶部19から読み出し、読み出した宛先リストと、通知情報分離部18からの宛先リストとを比較する(ステップS240)。この比較は、宛先リストを構成する個々の宛先情報の単位で行われる。通知情報分離部18からの宛先リスト内の全ての宛先情報が、宛先リスト記憶部19から読み出した宛先リスト内の宛先情報のいずれかと一致した場合、「一致」を示す比較結果が判定部14へ出力される。また、通知情報分離部18からの宛先リスト内の宛先情報のうちいずれか1つでも、宛先リスト記憶部19から読み出した宛先リスト内の宛先情報のいずれとも一致しなかった場合、「不一致」を示す比較結果が判定部14へ出力される。また、通知情報分離部18からの宛先リストが空であった場合、宛先リストの比較は行われない。なお、ステップS240の処理をステップS235の処理の前に行ってもよい。
【0066】
続いて、判定部14は、パーミッション比較部13および宛先比較部20から出力された比較結果に基づいて、判定対象のアプリケーションが異常であるか否か(良性であるか悪性であるか)を判定する(ステップS245)。続いて、表示部15は、判定部14が行った判定の結果を表示する(ステップS250)。アプリケーションが異常(悪性)であると判定された場合、例えば、販売サイトの管理者は、このアプリケーションの登録を許可しない。
【0067】
以下、ステップS245の詳細を説明する。まず、判定部14は、第1の実施形態と同様にして、パーミッション比較部13から出力された比較結果に基づいて、アプリケーションの異常性を判定する。アプリケーションが異常であると判定された場合、判定部14は、宛先比較部20から出力された比較結果に基づいて、アプリケーションの危険度を判定する。正常なアプリケーションの通信相手として想定される宛先とは異なる宛先と通信を行うアプリケーションは、攻撃のための通信を行うトロイの木馬である可能性がある。宛先比較部20から出力された比較結果が「不一致」を示す場合、危険度が高いと判定し、宛先比較部20から出力された比較結果が「一致」を示す場合、判定部14は危険度が低いと判定する。
【0068】
上述したように、本実施形態によれば、アプリケーションの異常性を判定することができる。また、アプリケーションが実行されたときに行われる通信相手の情報に基づいてアプリケーションの危険度も判定することによって、アプリケーションの異常性をより細かく判定することができる。
【0069】
(第3の実施形態)
次に、本発明の第3の実施形態を説明する。本実施形態では、第1の実施形態で説明したパーミッションリストの比較結果のほかに、判定対象のアプリケーションを実行したときアクセスされたファイルやディレクトリ(フォルダ)と、正常なアプリケーションを実行したときアクセスされるファイルやディレクトリとを比較した結果に基づいて、アプリケーションの判定が行われる。
【0070】
図11は、本実施形態によるアプリケーション判定システムの構成を示している。図11に示すアプリケーション判定システムは、例えば携帯電話用のアプリケーションをWeb上で販売する販売サイトを管理する企業に設置される。このアプリケーション判定システムは、PC等のアプリケーション判定装置1dと携帯電話3bとを有する。アプリケーション判定装置1dは、パーミッションリスト記憶部11と、パーミッション比較部13と、判定部14と、表示部15と、通信部17と、通知情報分離部18と、ファイルアクセスリスト記憶部21と、ファイルアクセス比較部22とを有する。
【0071】
アプリケーション判定装置1dの構成について、第2の実施形態と同様の部分については説明を省略する。本実施形態において、携帯電話3bからアプリケーション判定装置1dへ送信される通知情報には、判定対象のアプリケーションから抽出したパーミッションリストと、判定対象のアプリケーションを実行したときにアクセスされるファイルやディレクトリを示すファイルアクセス情報を含むファイルアクセスリストとが含まれる。通知情報分離部18は、通知情報を上記のパーミッションリストとファイルアクセスリストとに分離して、パーミッションリストをパーミッション比較部13へ出力し、ファイルアクセスリストをファイルアクセス比較部22へ出力する。
【0072】
ファイルアクセスリスト記憶部21は、マルウェアを含まないことが確認されている正常なアプリケーションの実行ファイルが実行されたときにアクセスされるファイルやディレクトリを示すファイルアクセス情報を含むファイルアクセスリストを記憶する。本実施形態では、アプリケーションの種別毎にファイルアクセスリストが用意されている。ファイルアクセスリストは、アプリケーションの種別を示す種別情報と上記のファイルアクセス情報とが対応付けられた形式でファイルアクセスリスト記憶部21に格納されている。
【0073】
図16は、Androidのディレクトリ構成を示している。携帯電話のメモリ上には階層構造を有するディレクトリが作成されている。ディレクトリD1には、インストールされたアプリケーションの実行ファイルが格納される。また、ディレクトリD2は、各アプリケーションが用いるデータを保管するディレクトリであり、ディレクトリD2の下に、各アプリケーションの名称と同じ名称を有するディレクトリD3a〜D3cが並んでいる。アプリケーションは、そのアプリケーションに対応するディレクトリおよびそのディレクトリ下にあるディレクトリおよびファイルにしかアクセスすることができない。したがって、アプリケーションが、そのアプリケーションに対応するディレクトリやファイル以外のディレクトリやファイルにアクセスするか否かを監視することによって、アプリケーションの異常性を判定することができる。本実施形態における個々のファイルアクセス情報は、ファイルまたはディレクトリの識別情報(ファイル名やディレクトリ名等)で構成されている。
【0074】
携帯電話3bは、通信部30と、アプリケーション記憶部33と、パーミッション抽出部34と、通知情報生成部35と、アプリケーション実行部36と、監視部37と、ファイル記憶部38と、ファイルアクセスログ記憶部39とを有する。携帯電話3bの構成について、第2の実施形態と同様の部分については説明を省略する。
【0075】
監視部37は、判定対象のアプリケーションの実行ファイルが実行されたときに行われるファイルアクセスを監視し、アクセス結果を示すファイルアクセスログを生成する。ファイルアクセスログには、アクセス時刻と、前述したファイルアクセス情報とが含まれる。ファイル記憶部38は、図16に示したようなディレクトリを有し、ディレクトリ内にファイルを格納している。ファイルアクセスログ記憶部39は、上記のアクセスログを記憶する。また、本実施形態の通知情報生成部35は、パーミッション抽出部34によって抽出されたパーミッションリストと、ファイルアクセスログ記憶部39に格納されているファイルアクセスログから抽出したファイルアクセス情報を含むファイルアクセスリストとを含む通知情報を生成する。
【0076】
図11では、アプリケーション判定装置1d内にパーミッションリスト記憶部11と宛先リスト記憶部19の2つの記憶部が設けられているが、これらは異なる記録媒体で構成されていてもよいし、同一の記録媒体上の異なる記憶領域で構成されていてもよい。また、携帯電話3b内にアプリケーション記憶部33とファイル記憶部38とファイルアクセスログ記憶部39の3つの記憶部が設けられているが、これらは異なる記録媒体で構成されていてもよいし、同一の記録媒体上の異なる記憶領域で構成されていてもよい。
【0077】
次に、本実施形態によるアプリケーション判定システムの動作を説明する。図12は、アプリケーション判定システムの動作の手順を示している。アプリケーション判定装置1dにおいて、販売サイトの管理者等により動作開始の指示がなされると、アプリケーション判定装置1dは通知情報の受信待ちとなる。また、携帯電話3bにおいて、販売サイトの管理者等により動作開始の指示がなされると、アプリケーション実行部36は判定対象のアプリケーションの実行ファイルをアプリケーション記憶部33から読み出し、読み出した実行ファイルを実行する(ステップS300)。
【0078】
続いて、監視部37は、実行ファイルが実行されてから所定時間(例えば30秒間)にファイル記憶部38内のファイルおよびディレクトリに対して行われるアクセスを監視し、アクセス結果をファイルアクセスログとしてファイルアクセスログ記憶部39に格納する(ステップS305)。続いて、パーミッション抽出部12は、判定対象のアプリケーションの実行ファイルと種別情報のペアをアプリケーション記憶部10から読み出し、読み出した実行ファイルからパーミッションリストを抽出し、抽出したパーミッションリストと種別情報を通知情報生成部35へ出力する(ステップS310)。なお、ステップS310の処理をステップS300の処理の前に行ってもよい。
【0079】
続いて、通知情報生成部35は、ファイルアクセスログ記憶部39からファイルアクセスログを読み出し、ファイルアクセスログからファイルアクセス情報を抽出する。また、通知情報生成部35は、抽出したファイルアクセス情報を含むファイルアクセスリストを生成する。通知情報生成部35は、上記のパーミッションリストとファイルアクセスリストおよび種別情報をパケットに格納して通知情報を生成し、通信部30へ出力する(ステップS315)。続いて、通信部30は、通知情報をアプリケーション判定装置1dへ送信する(ステップS320)。
【0080】
アプリケーション判定装置1dにおいて、通信部17は通知情報を受信し、通知情報分離部18へ出力する(ステップS325)。続いて、通知情報分離部18は、通知情報に含まれるパーミッションリストと種別情報をパーミッション比較部13へ出力し、ファイルアクセスリストと種別情報をファイルアクセス比較部22へ出力する(ステップS330)。
【0081】
続いて、パーミッション比較部13は、通知情報分離部18からの種別情報と一致する種別情報と対応付けられているパーミッションリストをパーミッションリスト記憶部11から読み出し、読み出したパーミッションリストと、通知情報分離部18からのパーミッションリストとを比較する(ステップS335)。この比較は、パーミッションリストを構成する個々のパーミッション情報の単位で行われ、比較の単位毎に「一致」または「不一致」を示す比較結果が判定部14へ出力される。
【0082】
続いて、ファイルアクセス比較部22は、通知情報分離部18からの種別情報と一致する種別情報と対応付けられているファイルアクセスリストをファイルアクセスリスト記憶部21から読み出し、読み出したファイルアクセスリストと、通知情報分離部18からのファイルアクセスリストとを比較する(ステップS340)。この比較は、ファイルアクセスリストを構成する個々のファイルアクセス情報の単位で行われる。通知情報分離部18からのファイルアクセスリスト内の全てのファイルアクセス情報が、ファイルアクセスリスト記憶部21から読み出したファイルアクセスリスト内のファイルアクセス情報のいずれかと一致した場合、「一致」を示す比較結果が判定部14へ出力される。また、通知情報分離部18からのファイルアクセスリスト内のファイルアクセス情報のうちいずれか1つでも、ファイルアクセスリスト記憶部21から読み出したファイルアクセスリスト内のファイルアクセス情報のいずれとも一致しなかった場合、「不一致」を示す比較結果が判定部14へ出力される。なお、ステップS340の処理をステップS335の処理の前に行ってもよい。
【0083】
続いて、判定部14は、パーミッション比較部13およびファイルアクセス比較部22から出力された比較結果に基づいて、判定対象のアプリケーションが異常であるか否か(良性であるか悪性であるか)を判定する(ステップS345)。続いて、表示部15は、判定部14が行った判定の結果を表示する(ステップS350)。アプリケーションが異常(悪性)であると判定された場合、例えば、販売サイトの管理者は、このアプリケーションの登録を許可しない。
【0084】
以下、ステップS345の詳細を説明する。まず、判定部14は、第1の実施形態と同様にして、パーミッション比較部13から出力された比較結果に基づいて、アプリケーションの異常性を判定する。アプリケーションが異常であると判定された場合、判定部14は、ファイルアクセス比較部22から出力された比較結果に基づいて、アプリケーションの危険度を判定する。正常なアプリケーションがアクセスすると想定されるファイルやディレクトリとは異なるファイルやディレクトリにアクセスするアプリケーションは、個人情報等にアクセスしてネットワーク上に流出させるトロイの木馬である可能性がある。判定部14は、ファイルアクセス比較部22から出力された比較結果が「不一致」を示す場合、判定部14は危険度が高いと判定し、ファイルアクセス比較部22から出力された比較結果が「一致」を示す場合、判定部14は危険度が低いと判定する。
【0085】
上述したように、本実施形態によれば、アプリケーションの異常性を判定することができる。また、アプリケーションが実行されたときにアクセスされるファイルやディレクトリの情報に基づいてアプリケーションの危険度も判定することによって、アプリケーションの異常性をより細かく判定することができる。
【0086】
(他の実施形態)
第2の実施形態および第3の実施形態では、アプリケーション判定装置と携帯電話の2台が連携してアプリケーションの判定を行っているが、1台のコンピュータ(携帯電話でもよい)でアプリケーションの判定を行ってもよい。図13および図14は、この場合の構成を示している。
【0087】
図13に示すアプリケーション判定装置1eは、第2の実施形態によるアプリケーション判定システムに対応しており、パーミッションリスト記憶部11と、パーミッション比較部13と、判定部14と、表示部15と、通信部17と、通知情報分離部18と、宛先リスト記憶部19と、宛先比較部20と、通信部30と、監視部31と、通信ログ記憶部32と、アプリケーション記憶部33と、パーミッション抽出部34と、通知情報生成部35と、アプリケーション実行部36とを有する。アプリケーション判定装置1eは、第2の実施形態で示した動作と同様の動作を行うことによって、アプリケーションの判定を行う。ただし、2台の装置間の通信に係る処理は除く。
【0088】
図14に示すアプリケーション判定装置1fは、第3の実施形態によるアプリケーション判定システムに対応しており、パーミッションリスト記憶部11と、パーミッション比較部13と、判定部14と、表示部15と、通信部17と、通知情報分離部18と、ファイルアクセスリスト記憶部21と、ファイルアクセス比較部22と、通信部30と、アプリケーション記憶部33と、パーミッション抽出部34と、通知情報生成部35と、アプリケーション実行部36と、監視部37と、ファイル記憶部38と、ファイルアクセスログ記憶部39とを有する。アプリケーション判定装置1fは、第3の実施形態で示した動作と同様の動作を行うことによって、アプリケーションの判定を行う。ただし、2台の装置間の通信に係る処理は除く。
【0089】
上述したアプリケーション判定装置1a〜1fの各機能は、各装置の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより、実現される。ここで、「コンピュータ」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0090】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0091】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【0092】
1a,1b,1c,1d,1e,1f・・・アプリケーション判定装置、3a,3b・・・携帯電話、10・・・アプリケーション記憶部、11・・・パーミッションリスト記憶部(権限記憶部)、12・・・パーミッション抽出部(抽出部)、13・・・パーミッション比較部(権限比較部)、14・・・判定部、15・・・表示部、16・・・悪性パーミッション記憶部(権限記憶部)、17,30・・・通信部、18・・・通知情報分離部、19・・・宛先リスト記憶部(通信相手記憶部)、20・・・宛先比較部(通信相手比較部)、21・・・ファイルアクセスリスト記憶部(アクセス記憶部)、22・・・ファイルアクセス比較部(アクセス比較部)、31,37・・・監視部、32・・・通信ログ記憶部、33・・・アプリケーション記憶部、34・・・パーミッション抽出部、35・・・通知情報生成部、36・・・アプリケーション実行部(実行部)、38・・・ファイル記憶部、39・・・ファイルアクセスログ記憶部
【技術分野】
【0001】
本発明は、携帯電話等で動作するアプリケーションが異常であるか否か(良性であるか悪性であるか)を判定するアプリケーション判定システムに関する。また、本発明は、本アプリケーション判定システムとしてコンピュータを機能させるためのプログラムにも関する。
【背景技術】
【0002】
Web上でソースコードが公開されオープンに開発されている、オープンOSと呼ばれるOS(オペレーティングシステム)がある。また、Android等のオープンOSを用いた携帯電話が普及しており、携帯電話用のアプリケーションを販売するWebサイトが増えている。オープンOSでは、アプリケーションが機能(デバイス)やデータにアクセスする権限がパーミッションリストとして定義されており(例えばhttp://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob_plain;f=core/res/AndroidManifest.xml;hb=HEAD参照)、この範囲内でしか動作できない制限が設けられている。アプリケーションがアクセスする機能(デバイス)は、電話番号発信機能、インターネットアクセス機能、位置情報取得機能、システム設定機能等である。また、アプリケーションがアクセスするデータは、所有者データ、カレンダーデータ、ユーザ定義辞書等である。
【0003】
パーミッションの候補は、あらゆるアプリケーションに共通して適用可能となっている。アプリケーションの作成者は、パーミッションを自由に選択してアプリケーションに付与することができるため、アプリケーションに求められる本来の挙動とは異なる処理を行うアプリケーションを作成することができる。したがって、コンピュータに侵入し、データの消去やファイルの外部流出、他のコンピュータの攻撃などを行う、いわゆるトロイの木馬を作成することもできる。
【0004】
ユーザが携帯電話上でアプリケーションのインストールを行う場合、図15に示す画面が表示され、アプリケーションに付与されているパーミッションの一覧が表示される。図15(a)は、FTPサーバアプリケーションに関する画面の一例である。このアプリケーションは、インターネットアクセスに関するパーミッションと、電話デバイスへのアクセスに関するパーミッションと、無線通信の状態変更等に関するパーミッションとを有している。
【0005】
図15(b)は、コミック系アプリケーションに関する画面の一例である。このアプリケーションは、インターネットアクセスに関するパーミッションを有している。図15(c)は、キーボードアプリケーションに関する画面の一例である。このアプリケーションは、インターネットアクセスに関するパーミッションと、個人情報へのアクセスに関するパーミッションとを有している。
【0006】
ユーザはパーミッションの一覧を確認し、インストールを行う場合には「OK」と書かれたボタンB1をGUI(Graphical User Interface)により操作し、インストールを中止する場合には「Cancel」と書かれたボタンB2をGUIにより操作する。ボタンB1が操作されると、アプリケーションが携帯電話にインストールされ、アプリケーションの使用が可能となる。
【0007】
本発明に関連する技術として、特許文献1には、マルウェアによる通信を検知する方法が記載されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2010−15513号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
図15に示したパーミッションを有するアプリケーションは、本来のアプリケーションの動作とは異なる異常な動作を行うことが確認されたものである。FTPサーバアプリケーションがインターネットアクセスに関するパーミッションを持っていることは問題ないが、電話デバイスへのアクセスに関するパーミッションを持つのは異常である。また、コミック系アプリケーションがインターネットアクセスに関するパーミッションを持つのも異常である。また、キーボードアプリケーションがインターネットアクセスに関するパーミッションと個人情報へのアクセスに関するパーミッションを持つのも異常である。
【0010】
ユーザは、パーミッションに関する知識を有していなければ、図15に示した画面から、アプリケーションの良性/悪性を判定することは困難である。携帯電話用のアプリケーションの販売サイトの多くは、開発者から投稿されたアプリケーションの審査を行わずにそのままアプリケーションをWebに公開するため、ユーザの携帯電話が悪意のソフトウェア(マルウェア)に感染してしまう事例が発生している。
【0011】
本発明は、上述した課題に鑑みてなされたものであって、アプリケーションの異常性を判定することができるアプリケーション判定システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明は、上記の課題を解決するためになされたもので、アプリケーションの種別を示す第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションが機能およびデータにアクセスする権限を示す第1の権限情報とを対応付けて記憶する権限記憶部と、アプリケーションが機能およびデータにアクセスする権限を示す第2の権限情報を含むアプリケーションの実行ファイルと、当該アプリケーションの種別を示す第2の種別情報とを対応付けて記憶するアプリケーション記憶部と、判定対象のアプリケーションの実行ファイルから前記第2の権限情報を抽出する抽出部と、前記判定対象のアプリケーションに対応する前記第2の種別情報と一致する前記第1の種別情報に対応する前記第1の権限情報と、前記抽出部によって抽出された前記第2の権限情報とを比較する権限比較部と、前記権限比較部が行った比較の結果に基づいて、前記判定対象のアプリケーションが異常であるか否かを判定する判定部と、を備えたことを特徴とするアプリケーション判定システムである。
【0013】
また、本発明のアプリケーション判定システムは、前記第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションが通信を行う際の通信相手を示す第1の通信相手情報とを対応付けて記憶する通信相手記憶部と、前記判定対象のアプリケーションの実行ファイルを実行する実行部と、通信を行う通信部と、前記判定対象のアプリケーションの実行ファイルが実行されたときに前記通信部が行う通信を監視し、前記通信部が行った通信の相手を示す第2の通信相手情報を生成する監視部と、前記判定対象のアプリケーションに対応する前記第2の種別情報と一致する前記第1の種別情報に対応する前記第1の通信相手情報と、前記監視部によって生成された前記第2の通信相手情報とを比較する通信相手比較部と、をさらに備え、前記判定部は、前記権限比較部および前記通信相手比較部が行った比較の結果に基づいて、前記判定対象のアプリケーションが異常であるか否かを判定することを特徴とする。
【0014】
また、本発明のアプリケーション判定システムは、アプリケーションによってアクセスされるファイルをディレクトリに格納して記憶するファイル記憶部と、前記第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションがアクセスするファイルまたはディレクトリを示す第1のアクセス情報とを対応付けて記憶するアクセス記憶部と、前記判定対象のアプリケーションの実行ファイルを実行する実行部と、前記判定対象のアプリケーションの実行ファイルが実行されたときに前記ファイル記憶部が記憶しているファイルまたはディレクトリへのアクセスを監視し、アクセスされたファイルまたはディレクトリを示す第2のアクセス情報を生成する監視部と、前記判定対象のアプリケーションに対応する前記第2の種別情報と一致する前記第1の種別情報に対応する前記第1のアクセス情報と、前記監視部によって生成された前記第2のアクセス情報とを比較するアクセス比較部と、をさらに備え、前記判定部は、前記権限比較部および前記アクセス比較部が行った比較の結果に基づいて、前記判定対象のアプリケーションが異常であるか否かを判定することを特徴とする。
【0015】
また、本発明のアプリケーション判定システムにおいて、前記判定部は、前記第1の権限情報と前記第2の権限情報とが一致せず、前記第1の権限情報が示す機能およびデータ毎の権限の数よりも、前記第2の権限情報が示す機能およびデータ毎の権限の数のほうが多い場合に、当該権限の数の差が所定数以上であれば、前記判定対象のアプリケーションが異常であると判定することを特徴とする。
【0016】
また、本発明のアプリケーション判定システムにおいて、前記権限記憶部はさらに、異常なアプリケーションが機能およびデータにアクセスする複数の権限の組合せを示す第3の権限情報を記憶し、前記判定部は、前記第1の権限情報と前記第2の権限情報とが一致せず、前記第2の権限情報が示す権限から前記第1の権限情報が示す権限と一致する権限を除いた残りの権限が複数であって、当該複数の権限の組合せが、前記第3の権限情報が示す複数の権限の組合せと一致する場合に、前記判定対象のアプリケーションが異常であると判定することを特徴とする。
【0017】
また、本発明は、上記のアプリケーション判定システムとしてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0018】
本発明によれば、アプリケーションが機能およびデータにアクセスする権限を示す第2の権限情報を判定対象のアプリケーションの実行ファイルから抽出し、正常なアプリケーションが機能およびデータにアクセスする権限を示す第1の権限情報と比較することによって、アプリケーションの異常性を判定することができる。
【図面の簡単な説明】
【0019】
【図1】本発明の第1の実施形態によるアプリケーション判定装置の構成を示すブロック図である。
【図2】本発明の第1の実施形態におけるアプリケーションの実行ファイルの構成を示す参考図である。
【図3】本発明の第1の実施形態におけるパーミッションを示す参考図である。
【図4】本発明の第1の実施形態によるアプリケーション判定装置の動作の手順を示すフローチャートである。
【図5】本発明の第1の実施形態におけるパーミッションリストの比較およびアプリケーションの判定の様子を示す参考図である。
【図6】本発明の第1の実施形態におけるパーミッションリストの比較およびアプリケーションの判定の様子を示す参考図である。
【図7】本発明の第1の実施形態におけるパーミッションリストの比較およびアプリケーションの判定の様子を示す参考図である。
【図8】本発明の第1の実施形態におけるパーミッションリストの比較およびアプリケーションの判定の様子を示す参考図である。
【図9】本発明の第2の実施形態によるアプリケーション判定システムの構成を示すブロック図である。
【図10】本発明の第2の実施形態によるアプリケーション判定システムの動作の手順を示すシーケンス図である。
【図11】本発明の第3の実施形態によるアプリケーション判定システムの構成を示すブロック図である。
【図12】本発明の第3の実施形態によるアプリケーション判定システムの動作の手順を示すシーケンス図である。
【図13】本発明の他の実施形態によるアプリケーション判定装置の構成を示すブロック図である。
【図14】本発明の他の実施形態によるアプリケーション判定装置の構成を示すブロック図である。
【図15】アプリケーションのインストール時に表示される画面を示す参考図である。
【図16】Androidのディレクトリ構造を示す参考図である。
【発明を実施するための形態】
【0020】
以下、図面を参照し、本発明の実施形態を説明する。以下では、携帯電話用のオープンOSの一つであるAndroidに適用されるアプリケーションを例として説明する。
【0021】
(第1の実施形態)
まず、本発明の第1の実施形態を説明する。図1は、本実施形態によるアプリケーション判定装置(本発明のアプリケーション判定システムに対応)の構成を示している。図1に示すアプリケーション判定装置1aは、例えば携帯電話用のアプリケーションをWeb上で販売する販売サイトを管理する企業に設置される。アプリケーション判定装置1aはPC(Personal Computer)であっても携帯電話であってもよい。このアプリケーション判定装置1aは、アプリケーション記憶部10と、パーミッションリスト記憶部11と、パーミッション抽出部12と、パーミッション比較部13と、判定部14と、表示部15とを有する。
【0022】
アプリケーション記憶部10は、開発者から販売サイトへの登録が申請されたアプリケーションの実行ファイルを記憶する。図2はアプリケーションの実行ファイルの構成を示している。図2に示すように実行ファイル200は、命令列を含む実行コード201、アプリケーションに付与されているパーミッションの情報を含むパーミッションリスト202、実行ファイル202の実行時に参照されるライブラリ203やパラメータ204等のファイルで構成されている。アプリケーションの実行ファイルは、アプリケーションの種別を示す種別情報と対応付けられた形式でアプリケーション記憶部10に格納されている。アプリケーションの種別は、開発者からの申告に基づいて販売サイト側で決定されるものとする。
【0023】
パーミッションリスト記憶部11は、マルウェアを含まないことが確認されている正常なアプリケーションが機能(デバイス)およびデータにアクセスする権限を示すパーミッション情報を含むパーミッションリストを記憶する。本実施形態では、アプリケーションの種別毎にパーミッションリストが用意されている。パーミッションリストは、アプリケーションの種別を示す種別情報と上記のパーミッション情報とが対応付けられた形式でパーミッションリスト記憶部11に格納されている。
【0024】
本実施形態では、一例として、アプリケーションは以下の22種類の種別のいずれかに属するものとしている。
[ゲーム系]
(1)アーケード&アクション
(2)カジュアル
(3)カード&カジノ
(4)パズル
[アプリケーション]
(5)エンターテイメント
(6)ショッピング
(7)ソーシャルネットワーク
(8)ツール
(9)ニュース&天気情報
(10)ファイナンス
(11)マルチメディア
(12)ライフスタイル
(13)リファレンス
(14)仕事効率化
(15)旅行
(16)通信
(17)デモ
(18)ソフトウェアライブラリ
(19)コミック
(20)スポーツ
(21)テーマ
(22)健康
【0025】
図3は、Androidで定義されているパーミッションの一部を抜粋して示している。図3では、パーミッションの名称と、パーミッションの意味(ラベル)と、危険度とが示されている。危険度には「dangerous」と「normal」の2種類があり、危険度が「dangerous」のパーミッションは、アプリケーションのインストール時の初期状態の画面に表示される。危険度が「normal」のパーミッションは、アプリケーションのインストール時の初期状態の画面には表示されていないが、図15に示した「Show all」と書かれた部分をユーザがGUIにより操作することで、危険度が「normal」のパーミッションを画面に表示することができる。本実施形態では、上記の22種類の種別毎に、正常なアプリケーションが本来の機能を実行する上で持っていてよいパーミッションを予め選定し、リスト化しておく。
【0026】
パーミッション抽出部12は、判定対象のアプリケーションの実行ファイルからパーミッションリストを抽出する。パーミッション比較部13は、判定対象のアプリケーションの種別に対応するパーミッションリストをパーミッションリスト記憶部11から読み出し、読み出したパーミッションリストと、パーミッション抽出部12によって抽出されたパーミッションリストとを比較する。判定部14は、パーミッション比較部13がパーミッションリストを比較した結果に基づいて、判定対象のアプリケーションが異常であるか否か(良性であるか悪性であるか)を判定する。表示部15は、判定部14が行った判定の結果を表示する。
【0027】
図1では、アプリケーション記憶部10とパーミッションリスト記憶部11の2つの記憶部が設けられているが、これらは異なる記録媒体で構成されていてもよいし、同一の記録媒体上の異なる記憶領域で構成されていてもよい。
【0028】
次に、本実施形態によるアプリケーション判定装置1aの動作を説明する。図4は、アプリケーション判定装置1aの動作の手順を示している。販売サイトの管理者等により動作開始の指示がなされると、パーミッション抽出部12は、判定対象のアプリケーションの実行ファイルと種別情報のペアをアプリケーション記憶部10から読み出し、読み出した実行ファイルからパーミッションリストを抽出し、抽出したパーミッションリストと種別情報をパーミッション比較部13へ出力する(ステップS100)。
【0029】
続いて、パーミッション比較部13は、パーミッション抽出部12から入力された種別情報と一致する種別情報と対応付けられているパーミッションリストをパーミッションリスト記憶部11から読み出し、読み出したパーミッションリストと、パーミッション抽出部12から出力されたパーミッションリストとを比較する(ステップS105)。この比較は、パーミッションリストを構成する個々のパーミッション情報の単位で行われ、比較の単位毎に「一致」または「不一致」を示す比較結果が判定部14へ出力される。
【0030】
続いて、判定部14は、パーミッション比較部13から出力された比較結果に基づいて、判定対象のアプリケーションが異常であるか否か(良性であるか悪性であるか)を判定する(ステップS110)。続いて、表示部15は、判定部14が行った判定の結果を表示する(ステップS115)。アプリケーションが異常(悪性)であると判定された場合、例えば、販売サイトの管理者は、このアプリケーションの登録を許可しない。
【0031】
図5は、ステップS105,S110の処理の様子を示している。図5に示すパーミッションA〜Eは個々のパーミッション情報である。ステップS110において、パーミッション比較部13は、パーミッションリストを構成する個々のパーミッション情報について一致するか否かを判断する。
【0032】
図5(a)では、判定対象のアプリケーションのパーミッションリストを構成する全てのパーミッション情報(パーミッションA〜C)が、パーミッションリスト記憶部11に格納されているパーミッションリストを構成するパーミッション情報(パーミッションA〜D)のいずれかと一致している。パーミッション比較部13は、判定対象のアプリケーションに関する全てのパーミッション情報について、個々のパーミッション毎に比較結果を出力する。判定部14は、比較結果が全て「一致」であるので、判定対象のアプリケーションが正常(良性)であると判定する。
【0033】
図5(b)では、判定対象のアプリケーションのパーミッションリストを構成するパーミッション情報(パーミッションA〜E)のうち一部(パーミッションA〜C)は、パーミッションリスト記憶部11に格納されているパーミッションリストを構成するパーミッション情報(パーミッションA〜D)のいずれかと一致している。しかし、残りの一部(パーミッションE)は、パーミッションリスト記憶部11に格納されているパーミッションリストを構成するパーミッション情報(パーミッションA〜D)のいずれとも一致しない。パーミッション比較部13は、判定対象のアプリケーションに関する全てのパーミッション情報について、個々のパーミッション毎に比較結果を出力する。
【0034】
同種別のアプリケーションのパーミッションとして付与されてよいものとは異なるものが付与されているアプリケーションは、アプリケーションの本来の動作とは異なる動作を行いうるため、トロイの木馬である可能性がある。判定部14は、比較結果に「不一致」が含まれるので、判定対象のアプリケーションが異常(悪性)であると判定する。
【0035】
次に、ステップS105,S110の処理の変形例を説明する。図6は、第1の変形例に関するステップS105,S110の処理の様子を示している。図6に示すパーミッションA〜Fは個々のパーミッション情報である。ステップS105において、パーミッション比較部13は、パーミッションリストを構成する個々のパーミッション情報について一致するか否かを判断する。
【0036】
図6では、判定対象のアプリケーションのパーミッションリストを構成するパーミッション情報(パーミッションA〜F)のうち一部(パーミッションA〜C)は、パーミッションリスト記憶部11に格納されているパーミッションリストを構成するパーミッション情報(パーミッションA〜D)のいずれかと一致している。しかし、残りの一部(パーミッションE,F)は、パーミッションリスト記憶部11に格納されているパーミッションリストを構成するパーミッション情報(パーミッションA〜D)のいずれとも一致しない。
【0037】
パーミッション比較部13は、判定対象のアプリケーションに関する全てのパーミッション情報について、個々のパーミッション毎に比較結果を出力する。判定部14は、比較結果に「不一致」が含まれるので、判定対象のアプリケーションのパーミッションリストには、同種別のアプリケーションのパーミッションとして付与されてよいものとは異なるものが含まれていると判断し、判定対象のアプリケーションが異常(悪性)であると判定する。
【0038】
また、判定部14は、比較結果が「不一致」であったパーミッション情報の数と所定の閾値(例えば2)とを比較する。図6に示す例では、比較結果が「不一致」であったパーミッション情報の数は2であり、所定の閾値以上であるため、判定部14は危険度が高いと判定する。また、比較結果が「不一致」であったパーミッション情報の数が所定の閾値未満であった場合、判定部14は危険度が低いと判定する。この危険度は、アプリケーションの異常性の度合いを示す。
【0039】
正常なアプリケーションの本来の動作に必要なパーミッションよりも多くのパーミッションが付与されたアプリケーションは、本来の動作を行う以外に他の不要な動作を行い、トロイの木馬として動作する可能性がある。また、携帯電話のCPUやメモリの資源には制約があるため、不要なパーミッションが付与されていることは望ましくない。したがって、第1の変形例では、判定部14は、不要なパーミッションがより多く付与されているアプリケーションについて、危険度が高いと判定している。なお、危険度をより細かく定義しておき、比較結果が「不一致」であったパーミッション情報の数が多くなればなるほど危険度がより高いと判定してもよい。
【0040】
図7は、第2の変形例に関するアプリケーション判定装置の構成を示している。図7に示すアプリケーション判定装置1bは、図1に示したアプリケーション判定装置1aに対して悪性パーミッション記憶部16を追加したものである。悪性パーミッション記憶部16は、異常(悪性)なアプリケーションが機能およびデータにアクセスする権限を示す複数のパーミッション情報の組合せを示すパーミッションリストを記憶する。
【0041】
図8は、第2の変形例に関するステップS105,S110の処理の様子を示している。図8に示すパーミッションA〜Fは個々のパーミッション情報である。ステップS110において、パーミッション比較部13は、パーミッションリストを構成する個々のパーミッション情報について一致するか否かを判断する。
【0042】
パーミッション比較部13は、判定対象のアプリケーションに関する全てのパーミッション情報について、個々のパーミッション毎に比較結果を出力する。また、パーミッション比較部13は、比較結果が「不一致」であった場合、その比較に用いた、判定対象のアプリケーションのパーミッション情報も出力する。判定部14は、比較結果に「不一致」が含まれるので、判定対象のアプリケーションのパーミッションリストには、同種別のアプリケーションのパーミッションとして付与されてよいものとは異なるものが含まれていると判断し、判定対象のアプリケーションが異常(悪性)であると判定する。
【0043】
また、判定部14は、悪性パーミッション記憶部16からパーミッションリストを読み出し、比較結果が「不一致」であったパーミッション情報と、悪性パーミッション記憶部16から読み出したパーミッションリスト内のパーミッション情報の組合せとを比較する。図8に示す例では、比較結果が「不一致」であった2つのパーミッション情報(パーミッションE,F)の組合せと、悪性パーミッション記憶部16から読み出したパーミッションリスト内のパーミッション情報(パーミッションE,F)の組合せとが一致するため、判定部14は危険度が高いと判定する。また、2つの組合せが一致しない場合、判定部14は危険度が低いと判定する。この危険度は、アプリケーションの異常性の度合いを示す。
【0044】
トロイの木馬として動作するアプリケーションは、本来のアプリケーションの動作とは異なる動作として、個人情報にアクセスしてインターネット上に送信したり、録音機能を有する携帯電話では録音を行って録音したデータをインターネット上に送信したりする。このような動作に関する複数のパーミッションの組合せを悪性パーミッション記憶部16に登録しておくことで、トロイの木馬としての動作を行う可能性のあるアプリケーションを検出することができる。第2の変形例では、判定部14は、異常(悪性)なアプリケーションに付与されやすい複数のパーミッションが付与されているアプリケーションについて、危険度が高いと判定している。
【0045】
悪性パーミッション記憶部16に予め登録されるパーミッション情報の組合せの例として、所有者データの読み取りに関する「android.permission.READ_OWNER_DATA」とインターネットアクセスに関する「android.permission.INTERNET」との組合せや、録音に関する「android.permission.RECORD_AUDIO」とインターネットアクセスに関する「android.permission.INTERNET」との組合せ等がある。
【0046】
上述したように、本実施形態によれば、判定対象のアプリケーションの実行ファイルからパーミッションリストを抽出し、マルウェアを含まないことが確認されている正常なアプリケーションのパーミッションリストと比較することによって、アプリケーションの異常性を判定することができる。また、第1の変形例や第2の変形例のように、アプリケーションの危険度も判定することによって、アプリケーションの異常性をより細かく判定することができる。また、このアプリケーションの危険度は、販売サイトの管理者がアプリケーションの登録を許可するか否かを判断する際の判断材料として使用できる。
【0047】
販売サイトの管理者は、アプリケーションの登録を許可するか否かを判断する際に、アプリケーションの危険度を考慮してもしなくてもよい。例えば、図5を用いて説明した方法により異常であると判定された全てのアプリケーションについて登録を許可しないようにしてもよい。また、図5を用いて説明した方法により異常であると判定されたアプリケーションのうち、危険度が高いと判定されたアプリケーションについては登録を許可せず、危険度が低いと判定されたアプリケーションについては、詳細な調査を行った後、登録を許可するか否かを再度判断してもよい。
【0048】
(第2の実施形態)
次に、本発明の第2の実施形態を説明する。本実施形態では、第1の実施形態で説明したパーミッションリストの比較結果のほかに、判定対象のアプリケーションを実行したときに行われる通信の宛先と、正常なアプリケーションを実行したときに行われる通信の宛先とを比較した結果に基づいて、アプリケーションの判定が行われる。
【0049】
図9は、本実施形態によるアプリケーション判定システムの構成を示している。図9に示すアプリケーション判定システムは、例えば携帯電話用のアプリケーションをWeb上で販売する販売サイトを管理する企業に設置される。このアプリケーション判定システムは、PC等のアプリケーション判定装置1cと携帯電話3aとを有する。アプリケーション判定装置1cは、パーミッションリスト記憶部11と、パーミッション比較部13と、判定部14と、表示部15と、通信部17と、通知情報分離部18と、宛先リスト記憶部19と、宛先比較部20とを有する。
【0050】
通信部17は、ネットワーク4を介して、あるいは直接、携帯電話3aと通信を行い、携帯電話3aから通知情報を受信する。通知情報には、判定対象のアプリケーションから抽出したパーミッションリストと、判定対象のアプリケーションを実行したときに行われた通信の宛先を示す宛先リストとが含まれる。通知情報分離部18は、通知情報を上記のパーミッションリストと宛先リストとに分離して、パーミッションリストをパーミッション比較部13へ出力し、宛先リストを宛先比較部20へ出力する。
【0051】
パーミッションリスト記憶部11は、マルウェアを含まないことが確認されている正常なアプリケーションのパーミッションリストとアプリケーションの種別情報とを対応付けて記憶する。パーミッション比較部13は、判定対象のアプリケーションの種別に対応するパーミッションリストをパーミッションリスト記憶部11から読み出し、読み出したパーミッションリストと、通知情報分離部18からのパーミッションリストとを比較する。
【0052】
宛先リスト記憶部19は、マルウェアを含まないことが確認されている正常なアプリケーションの実行ファイルが実行されたときに行われる通信の宛先(通信相手)を示す宛先情報を含む宛先リストを記憶する。本実施形態における個々の宛先情報は、IPアドレス、FQDN(Fully Qualified Domain Name)、Port番号のいずれかで構成されている。本実施形態では、アプリケーションの種別毎に宛先リストが用意されている。宛先リストは、アプリケーションの種別を示す種別情報と上記の宛先情報とが対応付けられた形式で宛先リスト記憶部19に格納されている。
【0053】
宛先比較部20は、判定対象のアプリケーションの種別に対応する宛先リストを宛先リスト記憶部19から読み出し、読み出した宛先リストと、通知情報分離部18からの宛先リストとを比較する。判定部14は、パーミッション比較部13がパーミッションリストを比較した結果および宛先比較部20が宛先リストを比較した結果に基づいて、判定対象のアプリケーションが異常であるか否か(良性であるか悪性であるか)を判定する。表示部15は、判定部14が行った判定の結果を表示する。
【0054】
携帯電話3aは、通信部30と、監視部31と、通信ログ記憶部32と、アプリケーション記憶部33と、パーミッション抽出部34と、通知情報生成部35と、アプリケーション実行部36とを有する。通信部30は、ネットワーク4を介して、あるいは直接、アプリケーション判定装置1cと通信を行い、アプリケーション判定装置1cへ通知情報を送信する。また、通信部30は、ネットワーク4を介して外部の通信装置と通信を行う。
【0055】
監視部31は、判定対象のアプリケーションの実行ファイルが実行されたときに行われる通信を監視し、通信結果を示す通信ログを生成する。通信ログには、通信時刻と、前述した宛先情報とが含まれる。宛先情報は、送信または受信されるパケットから抽出される。IPアドレスは、携帯電話3aから外部へ送信されたパケットのDestination IPまたは携帯電話3aで受信されたパケットのSource IPから抽出される。FQDNは、名前解決のためのDNS用パケットから抽出される。DNS用のパケットは、ポート番号がUDP53であるパケットとして検出することができる。ポート番号は、携帯電話3aから外部へ送信されたパケットのDestination Portまたは携帯電話3aで受信されたパケットのSource Portから抽出される。
【0056】
通信ログ記憶部32は、上記の通信ログを記憶する。アプリケーション記憶部33は、開発者から販売サイトへの登録が申請されたアプリケーションの実行ファイルを記憶する。アプリケーションの実行ファイルは、アプリケーションの種別情報と対応付けられた形式でアプリケーション記憶部33に格納されている。パーミッション抽出部34は、判定対象のアプリケーションの実行ファイルからパーミッションリストを抽出する。
【0057】
通知情報生成部35は、パーミッション抽出部34によって抽出されたパーミッションリストと、通信ログ記憶部32に格納されている通信ログから抽出した宛先情報を含む宛先リストとを含む通知情報を生成する。アプリケーション実行部36は、判定対象のアプリケーションの実行ファイルを実行する。
【0058】
図9では、アプリケーション判定装置1c内にパーミッションリスト記憶部11と宛先リスト記憶部19の2つの記憶部が設けられているが、これらは異なる記録媒体で構成されていてもよいし、同一の記録媒体上の異なる記憶領域で構成されていてもよい。また、携帯電話3a内に通信ログ記憶部32とアプリケーション記憶部33の2つの記憶部が設けられているが、これらは異なる記録媒体で構成されていてもよいし、同一の記録媒体上の異なる記憶領域で構成されていてもよい。
【0059】
次に、本実施形態によるアプリケーション判定システムの動作を説明する。図10は、アプリケーション判定システムの動作の手順を示している。アプリケーション判定装置1cにおいて、販売サイトの管理者等により動作開始の指示がなされると、アプリケーション判定装置1cは通知情報の受信待ちとなる。また、携帯電話3aにおいて、販売サイトの管理者等により動作開始の指示がなされると、アプリケーション実行部36は判定対象のアプリケーションの実行ファイルをアプリケーション記憶部33から読み出し、読み出した実行ファイルを実行する(ステップS200)。
【0060】
続いて、監視部31は、実行ファイルが実行されてから所定時間(例えば30秒間)に行われる通信を監視し、送信または受信されるパケットから宛先情報を抽出して、通信ログとして通信ログ記憶部32に格納する(ステップS205)。なお、通信が行われなかった場合には、通信ログ記憶部32に通信ログは格納されない。
【0061】
続いて、パーミッション抽出部12は、判定対象のアプリケーションの実行ファイルと種別情報のペアをアプリケーション記憶部10から読み出し、読み出した実行ファイルからパーミッションリストを抽出し、抽出したパーミッションリストと種別情報を通知情報生成部35へ出力する(ステップS210)。なお、ステップS210の処理をステップS200の処理の前に行ってもよい。
【0062】
続いて、通知情報生成部35は、通信ログ記憶部32から通信ログを読み出し、通信ログから宛先情報を抽出する。また、通知情報生成部35は、抽出した宛先情報を含む宛先リストを生成する。通知情報生成部35は、上記のパーミッションリストと宛先リストおよび種別情報をパケットに格納して通知情報を生成し、通信部30へ出力する(ステップS215)。通信が行われなかった場合、宛先リストは空となる。続いて、通信部30は、通知情報をアプリケーション判定装置1cへ送信する(ステップS220)。
【0063】
アプリケーション判定装置1cにおいて、通信部17は通知情報を受信し、通知情報分離部18へ出力する(ステップS225)。続いて、通知情報分離部18は、通知情報に含まれるパーミッションリストと種別情報をパーミッション比較部13へ出力し、宛先リストと種別情報を宛先比較部20へ出力する(ステップS230)。
【0064】
続いて、パーミッション比較部13は、通知情報分離部18からの種別情報と一致する種別情報と対応付けられているパーミッションリストをパーミッションリスト記憶部11から読み出し、読み出したパーミッションリストと、通知情報分離部18からのパーミッションリストとを比較する(ステップS235)。この比較は、パーミッションリストを構成する個々のパーミッション情報の単位で行われ、比較の単位毎に「一致」または「不一致」を示す比較結果が判定部14へ出力される。
【0065】
続いて、宛先比較部20は、通知情報分離部18からの種別情報と一致する種別情報と対応付けられている宛先リストを宛先リスト記憶部19から読み出し、読み出した宛先リストと、通知情報分離部18からの宛先リストとを比較する(ステップS240)。この比較は、宛先リストを構成する個々の宛先情報の単位で行われる。通知情報分離部18からの宛先リスト内の全ての宛先情報が、宛先リスト記憶部19から読み出した宛先リスト内の宛先情報のいずれかと一致した場合、「一致」を示す比較結果が判定部14へ出力される。また、通知情報分離部18からの宛先リスト内の宛先情報のうちいずれか1つでも、宛先リスト記憶部19から読み出した宛先リスト内の宛先情報のいずれとも一致しなかった場合、「不一致」を示す比較結果が判定部14へ出力される。また、通知情報分離部18からの宛先リストが空であった場合、宛先リストの比較は行われない。なお、ステップS240の処理をステップS235の処理の前に行ってもよい。
【0066】
続いて、判定部14は、パーミッション比較部13および宛先比較部20から出力された比較結果に基づいて、判定対象のアプリケーションが異常であるか否か(良性であるか悪性であるか)を判定する(ステップS245)。続いて、表示部15は、判定部14が行った判定の結果を表示する(ステップS250)。アプリケーションが異常(悪性)であると判定された場合、例えば、販売サイトの管理者は、このアプリケーションの登録を許可しない。
【0067】
以下、ステップS245の詳細を説明する。まず、判定部14は、第1の実施形態と同様にして、パーミッション比較部13から出力された比較結果に基づいて、アプリケーションの異常性を判定する。アプリケーションが異常であると判定された場合、判定部14は、宛先比較部20から出力された比較結果に基づいて、アプリケーションの危険度を判定する。正常なアプリケーションの通信相手として想定される宛先とは異なる宛先と通信を行うアプリケーションは、攻撃のための通信を行うトロイの木馬である可能性がある。宛先比較部20から出力された比較結果が「不一致」を示す場合、危険度が高いと判定し、宛先比較部20から出力された比較結果が「一致」を示す場合、判定部14は危険度が低いと判定する。
【0068】
上述したように、本実施形態によれば、アプリケーションの異常性を判定することができる。また、アプリケーションが実行されたときに行われる通信相手の情報に基づいてアプリケーションの危険度も判定することによって、アプリケーションの異常性をより細かく判定することができる。
【0069】
(第3の実施形態)
次に、本発明の第3の実施形態を説明する。本実施形態では、第1の実施形態で説明したパーミッションリストの比較結果のほかに、判定対象のアプリケーションを実行したときアクセスされたファイルやディレクトリ(フォルダ)と、正常なアプリケーションを実行したときアクセスされるファイルやディレクトリとを比較した結果に基づいて、アプリケーションの判定が行われる。
【0070】
図11は、本実施形態によるアプリケーション判定システムの構成を示している。図11に示すアプリケーション判定システムは、例えば携帯電話用のアプリケーションをWeb上で販売する販売サイトを管理する企業に設置される。このアプリケーション判定システムは、PC等のアプリケーション判定装置1dと携帯電話3bとを有する。アプリケーション判定装置1dは、パーミッションリスト記憶部11と、パーミッション比較部13と、判定部14と、表示部15と、通信部17と、通知情報分離部18と、ファイルアクセスリスト記憶部21と、ファイルアクセス比較部22とを有する。
【0071】
アプリケーション判定装置1dの構成について、第2の実施形態と同様の部分については説明を省略する。本実施形態において、携帯電話3bからアプリケーション判定装置1dへ送信される通知情報には、判定対象のアプリケーションから抽出したパーミッションリストと、判定対象のアプリケーションを実行したときにアクセスされるファイルやディレクトリを示すファイルアクセス情報を含むファイルアクセスリストとが含まれる。通知情報分離部18は、通知情報を上記のパーミッションリストとファイルアクセスリストとに分離して、パーミッションリストをパーミッション比較部13へ出力し、ファイルアクセスリストをファイルアクセス比較部22へ出力する。
【0072】
ファイルアクセスリスト記憶部21は、マルウェアを含まないことが確認されている正常なアプリケーションの実行ファイルが実行されたときにアクセスされるファイルやディレクトリを示すファイルアクセス情報を含むファイルアクセスリストを記憶する。本実施形態では、アプリケーションの種別毎にファイルアクセスリストが用意されている。ファイルアクセスリストは、アプリケーションの種別を示す種別情報と上記のファイルアクセス情報とが対応付けられた形式でファイルアクセスリスト記憶部21に格納されている。
【0073】
図16は、Androidのディレクトリ構成を示している。携帯電話のメモリ上には階層構造を有するディレクトリが作成されている。ディレクトリD1には、インストールされたアプリケーションの実行ファイルが格納される。また、ディレクトリD2は、各アプリケーションが用いるデータを保管するディレクトリであり、ディレクトリD2の下に、各アプリケーションの名称と同じ名称を有するディレクトリD3a〜D3cが並んでいる。アプリケーションは、そのアプリケーションに対応するディレクトリおよびそのディレクトリ下にあるディレクトリおよびファイルにしかアクセスすることができない。したがって、アプリケーションが、そのアプリケーションに対応するディレクトリやファイル以外のディレクトリやファイルにアクセスするか否かを監視することによって、アプリケーションの異常性を判定することができる。本実施形態における個々のファイルアクセス情報は、ファイルまたはディレクトリの識別情報(ファイル名やディレクトリ名等)で構成されている。
【0074】
携帯電話3bは、通信部30と、アプリケーション記憶部33と、パーミッション抽出部34と、通知情報生成部35と、アプリケーション実行部36と、監視部37と、ファイル記憶部38と、ファイルアクセスログ記憶部39とを有する。携帯電話3bの構成について、第2の実施形態と同様の部分については説明を省略する。
【0075】
監視部37は、判定対象のアプリケーションの実行ファイルが実行されたときに行われるファイルアクセスを監視し、アクセス結果を示すファイルアクセスログを生成する。ファイルアクセスログには、アクセス時刻と、前述したファイルアクセス情報とが含まれる。ファイル記憶部38は、図16に示したようなディレクトリを有し、ディレクトリ内にファイルを格納している。ファイルアクセスログ記憶部39は、上記のアクセスログを記憶する。また、本実施形態の通知情報生成部35は、パーミッション抽出部34によって抽出されたパーミッションリストと、ファイルアクセスログ記憶部39に格納されているファイルアクセスログから抽出したファイルアクセス情報を含むファイルアクセスリストとを含む通知情報を生成する。
【0076】
図11では、アプリケーション判定装置1d内にパーミッションリスト記憶部11と宛先リスト記憶部19の2つの記憶部が設けられているが、これらは異なる記録媒体で構成されていてもよいし、同一の記録媒体上の異なる記憶領域で構成されていてもよい。また、携帯電話3b内にアプリケーション記憶部33とファイル記憶部38とファイルアクセスログ記憶部39の3つの記憶部が設けられているが、これらは異なる記録媒体で構成されていてもよいし、同一の記録媒体上の異なる記憶領域で構成されていてもよい。
【0077】
次に、本実施形態によるアプリケーション判定システムの動作を説明する。図12は、アプリケーション判定システムの動作の手順を示している。アプリケーション判定装置1dにおいて、販売サイトの管理者等により動作開始の指示がなされると、アプリケーション判定装置1dは通知情報の受信待ちとなる。また、携帯電話3bにおいて、販売サイトの管理者等により動作開始の指示がなされると、アプリケーション実行部36は判定対象のアプリケーションの実行ファイルをアプリケーション記憶部33から読み出し、読み出した実行ファイルを実行する(ステップS300)。
【0078】
続いて、監視部37は、実行ファイルが実行されてから所定時間(例えば30秒間)にファイル記憶部38内のファイルおよびディレクトリに対して行われるアクセスを監視し、アクセス結果をファイルアクセスログとしてファイルアクセスログ記憶部39に格納する(ステップS305)。続いて、パーミッション抽出部12は、判定対象のアプリケーションの実行ファイルと種別情報のペアをアプリケーション記憶部10から読み出し、読み出した実行ファイルからパーミッションリストを抽出し、抽出したパーミッションリストと種別情報を通知情報生成部35へ出力する(ステップS310)。なお、ステップS310の処理をステップS300の処理の前に行ってもよい。
【0079】
続いて、通知情報生成部35は、ファイルアクセスログ記憶部39からファイルアクセスログを読み出し、ファイルアクセスログからファイルアクセス情報を抽出する。また、通知情報生成部35は、抽出したファイルアクセス情報を含むファイルアクセスリストを生成する。通知情報生成部35は、上記のパーミッションリストとファイルアクセスリストおよび種別情報をパケットに格納して通知情報を生成し、通信部30へ出力する(ステップS315)。続いて、通信部30は、通知情報をアプリケーション判定装置1dへ送信する(ステップS320)。
【0080】
アプリケーション判定装置1dにおいて、通信部17は通知情報を受信し、通知情報分離部18へ出力する(ステップS325)。続いて、通知情報分離部18は、通知情報に含まれるパーミッションリストと種別情報をパーミッション比較部13へ出力し、ファイルアクセスリストと種別情報をファイルアクセス比較部22へ出力する(ステップS330)。
【0081】
続いて、パーミッション比較部13は、通知情報分離部18からの種別情報と一致する種別情報と対応付けられているパーミッションリストをパーミッションリスト記憶部11から読み出し、読み出したパーミッションリストと、通知情報分離部18からのパーミッションリストとを比較する(ステップS335)。この比較は、パーミッションリストを構成する個々のパーミッション情報の単位で行われ、比較の単位毎に「一致」または「不一致」を示す比較結果が判定部14へ出力される。
【0082】
続いて、ファイルアクセス比較部22は、通知情報分離部18からの種別情報と一致する種別情報と対応付けられているファイルアクセスリストをファイルアクセスリスト記憶部21から読み出し、読み出したファイルアクセスリストと、通知情報分離部18からのファイルアクセスリストとを比較する(ステップS340)。この比較は、ファイルアクセスリストを構成する個々のファイルアクセス情報の単位で行われる。通知情報分離部18からのファイルアクセスリスト内の全てのファイルアクセス情報が、ファイルアクセスリスト記憶部21から読み出したファイルアクセスリスト内のファイルアクセス情報のいずれかと一致した場合、「一致」を示す比較結果が判定部14へ出力される。また、通知情報分離部18からのファイルアクセスリスト内のファイルアクセス情報のうちいずれか1つでも、ファイルアクセスリスト記憶部21から読み出したファイルアクセスリスト内のファイルアクセス情報のいずれとも一致しなかった場合、「不一致」を示す比較結果が判定部14へ出力される。なお、ステップS340の処理をステップS335の処理の前に行ってもよい。
【0083】
続いて、判定部14は、パーミッション比較部13およびファイルアクセス比較部22から出力された比較結果に基づいて、判定対象のアプリケーションが異常であるか否か(良性であるか悪性であるか)を判定する(ステップS345)。続いて、表示部15は、判定部14が行った判定の結果を表示する(ステップS350)。アプリケーションが異常(悪性)であると判定された場合、例えば、販売サイトの管理者は、このアプリケーションの登録を許可しない。
【0084】
以下、ステップS345の詳細を説明する。まず、判定部14は、第1の実施形態と同様にして、パーミッション比較部13から出力された比較結果に基づいて、アプリケーションの異常性を判定する。アプリケーションが異常であると判定された場合、判定部14は、ファイルアクセス比較部22から出力された比較結果に基づいて、アプリケーションの危険度を判定する。正常なアプリケーションがアクセスすると想定されるファイルやディレクトリとは異なるファイルやディレクトリにアクセスするアプリケーションは、個人情報等にアクセスしてネットワーク上に流出させるトロイの木馬である可能性がある。判定部14は、ファイルアクセス比較部22から出力された比較結果が「不一致」を示す場合、判定部14は危険度が高いと判定し、ファイルアクセス比較部22から出力された比較結果が「一致」を示す場合、判定部14は危険度が低いと判定する。
【0085】
上述したように、本実施形態によれば、アプリケーションの異常性を判定することができる。また、アプリケーションが実行されたときにアクセスされるファイルやディレクトリの情報に基づいてアプリケーションの危険度も判定することによって、アプリケーションの異常性をより細かく判定することができる。
【0086】
(他の実施形態)
第2の実施形態および第3の実施形態では、アプリケーション判定装置と携帯電話の2台が連携してアプリケーションの判定を行っているが、1台のコンピュータ(携帯電話でもよい)でアプリケーションの判定を行ってもよい。図13および図14は、この場合の構成を示している。
【0087】
図13に示すアプリケーション判定装置1eは、第2の実施形態によるアプリケーション判定システムに対応しており、パーミッションリスト記憶部11と、パーミッション比較部13と、判定部14と、表示部15と、通信部17と、通知情報分離部18と、宛先リスト記憶部19と、宛先比較部20と、通信部30と、監視部31と、通信ログ記憶部32と、アプリケーション記憶部33と、パーミッション抽出部34と、通知情報生成部35と、アプリケーション実行部36とを有する。アプリケーション判定装置1eは、第2の実施形態で示した動作と同様の動作を行うことによって、アプリケーションの判定を行う。ただし、2台の装置間の通信に係る処理は除く。
【0088】
図14に示すアプリケーション判定装置1fは、第3の実施形態によるアプリケーション判定システムに対応しており、パーミッションリスト記憶部11と、パーミッション比較部13と、判定部14と、表示部15と、通信部17と、通知情報分離部18と、ファイルアクセスリスト記憶部21と、ファイルアクセス比較部22と、通信部30と、アプリケーション記憶部33と、パーミッション抽出部34と、通知情報生成部35と、アプリケーション実行部36と、監視部37と、ファイル記憶部38と、ファイルアクセスログ記憶部39とを有する。アプリケーション判定装置1fは、第3の実施形態で示した動作と同様の動作を行うことによって、アプリケーションの判定を行う。ただし、2台の装置間の通信に係る処理は除く。
【0089】
上述したアプリケーション判定装置1a〜1fの各機能は、各装置の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより、実現される。ここで、「コンピュータ」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0090】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0091】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【0092】
1a,1b,1c,1d,1e,1f・・・アプリケーション判定装置、3a,3b・・・携帯電話、10・・・アプリケーション記憶部、11・・・パーミッションリスト記憶部(権限記憶部)、12・・・パーミッション抽出部(抽出部)、13・・・パーミッション比較部(権限比較部)、14・・・判定部、15・・・表示部、16・・・悪性パーミッション記憶部(権限記憶部)、17,30・・・通信部、18・・・通知情報分離部、19・・・宛先リスト記憶部(通信相手記憶部)、20・・・宛先比較部(通信相手比較部)、21・・・ファイルアクセスリスト記憶部(アクセス記憶部)、22・・・ファイルアクセス比較部(アクセス比較部)、31,37・・・監視部、32・・・通信ログ記憶部、33・・・アプリケーション記憶部、34・・・パーミッション抽出部、35・・・通知情報生成部、36・・・アプリケーション実行部(実行部)、38・・・ファイル記憶部、39・・・ファイルアクセスログ記憶部
【特許請求の範囲】
【請求項1】
アプリケーションの種別を示す第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションが機能およびデータにアクセスする権限を示す第1の権限情報とを対応付けて記憶する権限記憶部と、
アプリケーションが機能およびデータにアクセスする権限を示す第2の権限情報を含むアプリケーションの実行ファイルと、当該アプリケーションの種別を示す第2の種別情報とを対応付けて記憶するアプリケーション記憶部と、
判定対象のアプリケーションの実行ファイルから前記第2の権限情報を抽出する抽出部と、
前記判定対象のアプリケーションに対応する前記第2の種別情報と一致する前記第1の種別情報に対応する前記第1の権限情報と、前記抽出部によって抽出された前記第2の権限情報とを比較する権限比較部と、
前記権限比較部が行った比較の結果に基づいて、前記判定対象のアプリケーションが異常であるか否かを判定する判定部と、
を備えたことを特徴とするアプリケーション判定システム。
【請求項2】
前記第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションが通信を行う際の通信相手を示す第1の通信相手情報とを対応付けて記憶する通信相手記憶部と、
前記判定対象のアプリケーションの実行ファイルを実行する実行部と、
通信を行う通信部と、
前記判定対象のアプリケーションの実行ファイルが実行されたときに前記通信部が行う通信を監視し、前記通信部が行った通信の相手を示す第2の通信相手情報を生成する監視部と、
前記判定対象のアプリケーションに対応する前記第2の種別情報と一致する前記第1の種別情報に対応する前記第1の通信相手情報と、前記監視部によって生成された前記第2の通信相手情報とを比較する通信相手比較部と、
をさらに備え、前記判定部は、前記権限比較部および前記通信相手比較部が行った比較の結果に基づいて、前記判定対象のアプリケーションが異常であるか否かを判定する
ことを特徴とする請求項1に記載のアプリケーション判定システム。
【請求項3】
アプリケーションによってアクセスされるファイルをディレクトリに格納して記憶するファイル記憶部と、
前記第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションがアクセスするファイルまたはディレクトリを示す第1のアクセス情報とを対応付けて記憶するアクセス記憶部と、
前記判定対象のアプリケーションの実行ファイルを実行する実行部と、
前記判定対象のアプリケーションの実行ファイルが実行されたときに前記ファイル記憶部が記憶しているファイルまたはディレクトリへのアクセスを監視し、アクセスされたファイルまたはディレクトリを示す第2のアクセス情報を生成する監視部と、
前記判定対象のアプリケーションに対応する前記第2の種別情報と一致する前記第1の種別情報に対応する前記第1のアクセス情報と、前記監視部によって生成された前記第2のアクセス情報とを比較するアクセス比較部と、
をさらに備え、前記判定部は、前記権限比較部および前記アクセス比較部が行った比較の結果に基づいて、前記判定対象のアプリケーションが異常であるか否かを判定する
ことを特徴とする請求項1に記載のアプリケーション判定システム。
【請求項4】
前記判定部は、前記第1の権限情報と前記第2の権限情報とが一致せず、前記第1の権限情報が示す機能およびデータ毎の権限の数よりも、前記第2の権限情報が示す機能およびデータ毎の権限の数のほうが多い場合に、当該権限の数の差が所定数以上であれば、前記判定対象のアプリケーションが異常であると判定することを特徴とする請求項1に記載のアプリケーション判定システム。
【請求項5】
前記権限記憶部はさらに、異常なアプリケーションが機能およびデータにアクセスする複数の権限の組合せを示す第3の権限情報を記憶し、
前記判定部は、前記第1の権限情報と前記第2の権限情報とが一致せず、前記第2の権限情報が示す権限から前記第1の権限情報が示す権限と一致する権限を除いた残りの権限が複数であって、当該複数の権限の組合せが、前記第3の権限情報が示す複数の権限の組合せと一致する場合に、前記判定対象のアプリケーションが異常であると判定する
ことを特徴とする請求項1に記載のアプリケーション判定システム。
【請求項6】
請求項1〜請求項5のいずれか一項に記載のアプリケーション判定システムとしてコンピュータを機能させるためのプログラム。
【請求項1】
アプリケーションの種別を示す第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションが機能およびデータにアクセスする権限を示す第1の権限情報とを対応付けて記憶する権限記憶部と、
アプリケーションが機能およびデータにアクセスする権限を示す第2の権限情報を含むアプリケーションの実行ファイルと、当該アプリケーションの種別を示す第2の種別情報とを対応付けて記憶するアプリケーション記憶部と、
判定対象のアプリケーションの実行ファイルから前記第2の権限情報を抽出する抽出部と、
前記判定対象のアプリケーションに対応する前記第2の種別情報と一致する前記第1の種別情報に対応する前記第1の権限情報と、前記抽出部によって抽出された前記第2の権限情報とを比較する権限比較部と、
前記権限比較部が行った比較の結果に基づいて、前記判定対象のアプリケーションが異常であるか否かを判定する判定部と、
を備えたことを特徴とするアプリケーション判定システム。
【請求項2】
前記第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションが通信を行う際の通信相手を示す第1の通信相手情報とを対応付けて記憶する通信相手記憶部と、
前記判定対象のアプリケーションの実行ファイルを実行する実行部と、
通信を行う通信部と、
前記判定対象のアプリケーションの実行ファイルが実行されたときに前記通信部が行う通信を監視し、前記通信部が行った通信の相手を示す第2の通信相手情報を生成する監視部と、
前記判定対象のアプリケーションに対応する前記第2の種別情報と一致する前記第1の種別情報に対応する前記第1の通信相手情報と、前記監視部によって生成された前記第2の通信相手情報とを比較する通信相手比較部と、
をさらに備え、前記判定部は、前記権限比較部および前記通信相手比較部が行った比較の結果に基づいて、前記判定対象のアプリケーションが異常であるか否かを判定する
ことを特徴とする請求項1に記載のアプリケーション判定システム。
【請求項3】
アプリケーションによってアクセスされるファイルをディレクトリに格納して記憶するファイル記憶部と、
前記第1の種別情報と、当該第1の種別情報が示す種別の正常なアプリケーションがアクセスするファイルまたはディレクトリを示す第1のアクセス情報とを対応付けて記憶するアクセス記憶部と、
前記判定対象のアプリケーションの実行ファイルを実行する実行部と、
前記判定対象のアプリケーションの実行ファイルが実行されたときに前記ファイル記憶部が記憶しているファイルまたはディレクトリへのアクセスを監視し、アクセスされたファイルまたはディレクトリを示す第2のアクセス情報を生成する監視部と、
前記判定対象のアプリケーションに対応する前記第2の種別情報と一致する前記第1の種別情報に対応する前記第1のアクセス情報と、前記監視部によって生成された前記第2のアクセス情報とを比較するアクセス比較部と、
をさらに備え、前記判定部は、前記権限比較部および前記アクセス比較部が行った比較の結果に基づいて、前記判定対象のアプリケーションが異常であるか否かを判定する
ことを特徴とする請求項1に記載のアプリケーション判定システム。
【請求項4】
前記判定部は、前記第1の権限情報と前記第2の権限情報とが一致せず、前記第1の権限情報が示す機能およびデータ毎の権限の数よりも、前記第2の権限情報が示す機能およびデータ毎の権限の数のほうが多い場合に、当該権限の数の差が所定数以上であれば、前記判定対象のアプリケーションが異常であると判定することを特徴とする請求項1に記載のアプリケーション判定システム。
【請求項5】
前記権限記憶部はさらに、異常なアプリケーションが機能およびデータにアクセスする複数の権限の組合せを示す第3の権限情報を記憶し、
前記判定部は、前記第1の権限情報と前記第2の権限情報とが一致せず、前記第2の権限情報が示す権限から前記第1の権限情報が示す権限と一致する権限を除いた残りの権限が複数であって、当該複数の権限の組合せが、前記第3の権限情報が示す複数の権限の組合せと一致する場合に、前記判定対象のアプリケーションが異常であると判定する
ことを特徴とする請求項1に記載のアプリケーション判定システム。
【請求項6】
請求項1〜請求項5のいずれか一項に記載のアプリケーション判定システムとしてコンピュータを機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2011−233081(P2011−233081A)
【公開日】平成23年11月17日(2011.11.17)
【国際特許分類】
【出願番号】特願2010−105215(P2010−105215)
【出願日】平成22年4月30日(2010.4.30)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
【公開日】平成23年11月17日(2011.11.17)
【国際特許分類】
【出願日】平成22年4月30日(2010.4.30)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
[ Back to top ]