(57)【特許請求の範囲】
【請求項１】
アプリケーションおよび当該アプリケーションの動作に必要なオペレーティングシステムが導入済みであって、当該アプリケーションにおいてデータの外部漏洩に繋がる可能性を有するデータ通信を検知する携帯通信端末であって、
導入済みのアプリケーションにより生成され、当該アプリケーションの動作を示す動作ログを記憶するログ記憶手段と、
アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該携帯通信端末に接続されているハードウェアへの接続に関する動作ログが、前記ログ記憶手段に記憶された動作ログに含まれるか否かによって、前記データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知する検知手段と、
を備えることを特徴とする携帯通信端末。
【請求項２】
前記検知手段で、前記データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知した場合に、前記アプリケーションのソースコードについて、前記グローバル変数が使用されている箇所や前記ハードウェアへの接続に関する箇所に動的解析または静的解析の少なくとも１つを施す第１の解析手段を備えることを特徴とする請求項１に記載の携帯通信端末。
【請求項３】
前記検知手段で、前記データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知した場合に、前記アプリケーションのソースコードについて、前記システムコールのログを出力した箇所に動的解析または静的解析の少なくとも１つを施す第２の解析手段を備えることを特徴とする請求項１または２に記載の携帯通信端末。
【請求項４】
前記アプリケーション間のデータ通信が、プロセスを用いたデータ通信、ファイルシステムを用いた通信、およびリソースを用いた通信を含むことを特徴とする請求項１から３のいずれかに記載の携帯通信端末。
【請求項５】
前記オペレーティングシステムが、Ａｎｄｒｏｉｄｅ（登録商標）ＯＳであることを特徴とする請求項１から４のいずれかに記載の携帯通信端末。
【請求項６】
アプリケーションにおいてデータの外部漏洩に繋がる可能性があるデータ通信を検知するデータ通信検知端末であって、
前記アプリケーションの実行環境を提供する実行環境提供手段と、
前記実行環境提供手段で実行されたアプリケーションにより生成され、当該アプリケーションの動作を示す動作ログを記憶するログ記憶手段と、
アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該データ通信検知端末に接続されているハードウェアへの接続に関する動作ログが、前記ログ記憶手段に記憶された動作ログに含まれるか否かによって、前記データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知する検知手段と、
を備えることを特徴とするデータ通信検知端末。
【請求項７】
前記検知手段で、前記データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知した場合に、前記アプリケーションのソースコードについて、前記グローバル変数が使用されている箇所や前記ハードウェアへの接続に関する箇所に動的解析または静的解析の少なくとも１つを施す第１の解析手段を備えることを特徴とする請求項６に記載のデータ通信検知端末。
【請求項８】
前記検知手段で、前記データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知した場合に、前記アプリケーションのソースコードについて、前記システムコールのログを出力した箇所に動的解析または静的解析の少なくとも１つを施す第２の解析手段を備えることを特徴とする請求項６または７に記載のデータ通信検知端末。
【請求項９】
前記アプリケーション間のデータ通信が、プロセスを用いたデータ通信、ファイルシステムを用いた通信、およびリソースを用いた通信を含むことを特徴とする請求項６から８のいずれかに記載のデータ通信検知端末。
【請求項１０】
前記アプリケーションの実行環境が、Ａｎｄｒｏｉｄｅ（登録商標）ＯＳの機能を有することを特徴とする請求項６から９のいずれかに記載のデータ通信検知端末。
【請求項１１】
アプリケーションおよび当該アプリケーションの動作に必要なオペレーティングシステムが導入済みであって、当該アプリケーションにおいてデータの外部漏洩に繋がる可能性を有するデータ通信を検知する携帯通信端末におけるデータ通信検知方法であって、
前記携帯通信端末は、導入済みのアプリケーションにより生成され、当該アプリケーションの動作を示す動作ログを記憶するログ記憶手段、および検知手段を備え、
前記検知手段が、前記ログ記憶手段から動作ログを取得する第１のステップと、
前記検知手段が、前記第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該携帯通信端末に接続されているハードウェアへの接続に関する動作ログが、含まれるか否かを判断する第２のステップと、
前記検知手段が、前記第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該携帯通信端末に接続されているハードウェアへの接続に関する動作ログが含まれる場合に、前記データの外部漏洩に繋がる可能性を有するデータ通信があることを検知し、一方、前記第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該携帯通信端末に接続されているハードウェアへの接続に関する動作ログが含まれない場合に、前記データの外部漏洩に繋がる可能性を有するデータ通信がないことを検知する第３のステップと、
を含むことを特徴とするデータ通信検知方法。
【請求項１２】
アプリケーションにおいてデータの外部漏洩に繋がる可能性があるデータ通信を検知するデータ通信検知装置におけるデータ通信検知方法であって、
前記データ通信検知装置は、前記アプリケーションの実行環境を提供する実行環境提供手段、前記実行環境提供手段で実行されたアプリケーションにより生成され、当該アプリケーションの動作を示す動作ログを記憶するログ記憶手段、および検知手段を備え、
前記検知手段が、前記ログ記憶手段から動作ログを取得する第１のステップと、
前記検知手段が、前記第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該データ通信検知装置に接続されているハードウェアへの接続に関する動作ログが、含まれるか否かを判断する第２のステップと、
前記検知手段が、前記第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該データ通信検知装置に接続されているハードウェアへの接続に関する動作ログが含まれる場合に、前記データの外部漏洩に繋がる可能性を有するデータ通信があることを検知し、一方、前記第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該データ通信検知装置に接続されているハードウェアへの接続に関する動作ログが含まれない場合に、前記データの外部漏洩に繋がる可能性を有するデータ通信がないことを検知する第３のステップと、
を含むことを特徴とするデータ通信検知方法。
【請求項１３】
請求項１１または１２に記載のデータ通信検知方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの外部漏洩につながる可能性があるデータ通信を検知する携帯通信端末、データ通信検知装置、データ通信検知方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、ｉＰｈｏｎｅ（登録商標）やＡｎｄｒｏｉｄ（登録商標）携帯電話といったスマートフォンが急速に普及してきている。スマートフォンは、様々なアプリケーション（以下、簡略化のためアプリという）をインストールすることで様々な機能を搭載することができ、利便性が向上する。そこで、利用者は、提供されている数多くのアプリの中から自由にアプリを選択し、インストールしている。しかしながら、提供されているアプリの中には、人気のアプリに見せかけたりした不正なアプリがあり、近年増えてきている。利用者が不正なアプリをインストールし実行することによって、スマートフォンに保存されているプライバシデータ（端末情報、電話帳、位置情報等）が利用者の許可なく外部漏洩してしまうという問題点があった。
【０００３】
そこで、例えば、Ａｎｄｒｏｉｄ携帯電話はサンドボックスという概念に基づき、異なるアプリを独立したＬｉｎｕｘ（登録商標）プロセス上で実行している（例えば、非特許文献１参照）。ここで、サンドボックスとは、保護された領域内でプログラムを動作させることで、領域外へ悪影響が及ぶのを防止するセキュリティモデルである。具体的には、実行されるプログラムは保護された領域に入り、領域外のプログラムやデータ等を操作できない状態で動作するため、プログラムが暴走したりウイルスを動作させたりしようとしても、領域外のプログラムやデータ等に影響を与えることができないようになっている。
【０００４】
そのため、領域外のプログラムやデータ等にアクセスする必要がある場合には、アクセスに必要な権限をプログラム中に宣言し、この宣言されている権限を追加する許可を利用者から得る必要がある。その結果、スマートフォンに保存されているプライバシデータを、不正なアプリが利用者の許可なく外部漏洩させることを防止することができる。
【０００５】
一方、アプリを提供する事業者が提供するアプリの中から不正なアプリを見つけるためや、利用者がインストールしたアプリが不正なアプリであるかを判断するためのシステムとして、アプリがアクセスすべきでないプログラムやデータ領域を設定したルールとアプリの挙動を記録したログとに基づいて、対象アプリが不正なアプリであるか否かを判定するシステムを提案している（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−００８７７７号公報
【非特許文献】
【０００７】
【非特許文献１】ｈｔｔｐ：／／ｄｅｖｅｌｏｐｅｒ．ａｎｄｒｏｉｄ．ｃｏｍ／ｇｕｉｄｅ／ｔｏｐｉｃｓ／ｓｅｃｕｒｉｔｙ／ｓｅｃｕｒｉｔｙ．ｈｔｍｌ［２０１２年５月１７日検索］
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、アプリのサンドボックス化を厳密に行うと、アプリ間での連携ができず利用者に不便を強いることになる。そこで、例えば、スマートフォンに保存されている電話帳のデータをＷｅｂブラウザで利用するためには、スマートフォンに保存されている電話帳のデータにアクセスする権限を持つメールクライアントが、ブラウザに電話帳のデータを渡す通信を許可するといったように、サンドボックス化したアプリ間での通信を許可し、連携を認めている。そのために、アプリをサンドボックス化しても、利用者の利便性から他のアプリとの連携を認めてしまうと、不正なアプリが他のアプリとの連携によってプライバシデータを取得して外部漏洩させることを防止することができないという問題点があった。
【０００９】
また、特許文献１に記載のシステムでは、不正なアプリが、ルールに設定されているアクセスすべきでないプログラムやデータ領域にアクセスする権限を持っているアプリと上述したアプリ間連携によって連携することによって、ルールに設定されているアクセスすべきでないプログラムやデータ領域に間接的にアクセスする不正なアプリを検知することができない。そのため、他のアプリと連携してスマートフォンに保存されているプライバシデータを取得する不正なアプリによるプライバシデータの外部漏洩を防止することができないという問題点があった。
【００１０】
そこで、本発明は、上述の課題に鑑みてなされたものであり、プライバシデータといった携帯通信端末に保存されているデータの外部漏洩を防止するために、アプリの動作を記録したログに基づいて、データの外部漏洩に繋がる可能性があるデータ通信を検知する携帯通信端末、データ通信検知装置、データ通信検知方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、上述した課題を解決するために以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【００１２】
（１）  本発明は、アプリケーションおよび当該アプリケーションの動作に必要なオペレーティングシステムが導入済みであって、当該アプリケーションにおいてデータの外部漏洩に繋がる可能性を有するデータ通信を検知する携帯通信端末であって、導入済みのアプリケーションにより生成され、当該アプリケーションの動作を示す動作ログを記憶するログ記憶手段（例えば、図１のログ記憶部６３０に相当）と、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該携帯通信端末に接続されているハードウェアへの接続に関する動作ログが、前記ログ記憶手段に記憶された動作ログに含まれるか否かによって、前記データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知する検知手段（例えば、図１の検知部６４０に相当）と、を備えることを特徴とする携帯通信端末を提案している。
【００１３】
この発明によれば、ログ記憶手段は、携帯通信端末に導入済みのアプリケーションにより生成され、アプリケーションの動作を示す動作ログを記憶する。検知手段は、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、アプリケーション内でのグローバル変数の使用や携帯通信端末に接続されているハードウェアへの接続に関する動作ログが、ログ記憶手段に記憶された動作ログに含まれるか否かによって、データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知する。したがって、アプリケーション間のデータ通信を行うためのシステムコールのログの有無、およびアプリケーション内のデータ通信に関するログの有無によって、携帯通信端末に保存されているデータの外部漏洩に繋がる可能性があるデータ通信を検知することができる。その結果、詳細な解析を行う範囲を限定することやアプリケーション内のデータの流れを正確に追跡することができ、解析に係るコストを削減することや検証の精度を向上させることができる。また、アプリケーション間のデータ通信およびアプリケーション内のデータ通信のいずれも検知されないアプリケーションについては、データの外部漏洩が発生していないことを証明することができる。
【００１４】
（２）  本発明は、（１）の携帯通信端末について、前記検知手段で、前記データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知した場合に、前記アプリケーションのソースコードについて、前記グローバル変数が使用されている箇所や前記ハードウェアへの接続に関する箇所に動的解析または静的解析の少なくとも１つを施す第１の解析手段（例えば、図１０の解析部６５０に相当）を備えることを特徴とする携帯通信端末を提案している。
【００１５】
この発明によれば、検知手段で、データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知した場合に、アプリケーションのソースコードについて、グローバル変数が使用されている箇所やハードウェアへの接続に関する箇所に動的解析または静的解析の少なくとも１つを施す。したがって、アプリケーションのソースコードにおいて、アプリケーション内でのデータ通信に関する箇所も含めて、携帯通信端末に保存されているデータの外部漏洩に繋がる可能性がある箇所を解析することにより、時間や労力を軽減して、より精度よくデータを外部漏洩させるアプリケーションを特定することができる。
【００１６】
（３）  本発明は、（１）または（２）の携帯通信端末について、前記検知手段で、前記データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知した場合に、前記アプリケーションのソースコードについて、前記システムコールのログを出力した箇所に動的解析または静的解析の少なくとも１つを施す第２の解析手段（例えば、図１０の解析部６５０に相当）を備えることを特徴とする携帯通信端末を提案している。
【００１７】
この発明によれば、解析手段は、検知手段で、データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知した場合に、アプリケーションのソースコードについて、システムコールのログを出力した箇所に動的解析または静的解析の少なくとも１つを施す。したがって、アプリケーションのソースコードにおいて、携帯通信端末に保存されているデータの外部漏洩に繋がる可能性がある箇所のみを解析することにより、時間や労力を軽減して、データを外部漏洩させるアプリケーションを特定することができる。
【００１８】
（４）  本発明は、（１）から（３）の携帯通信端末について、前記アプリケーション間のデータ通信が、プロセスを用いたデータ通信、ファイルシステムを用いた通信、およびリソースを用いた通信を含むことを特徴とする携帯通信端末を提案している。
【００１９】
この発明によれば、アプリケーション間のデータ通信が、プロセスを用いたデータ通信、ファイルシステムを用いた通信、およびリソースを用いた通信を含む。
【００２０】
（５）  本発明は、（１）から（４）の携帯通信端末について、前記オペレーティングシステムが、Ａｎｄｒｏｉｄｅ（登録商標）ＯＳであることを特徴とする携帯通信端末を提案している。
【００２１】
この発明によれば、携帯通信端末のオペレーティングシステムとして、Ａｎｄｒｏｉｄｅ（登録商標）ＯＳを用いることができる。
【００２２】
（６）  本発明は、アプリケーションにおいてデータの外部漏洩に繋がる可能性があるデータ通信を検知するデータ通信検知端末であって、前記アプリケーションの実行環境を提供する実行環境提供手段（例えば、図１１のエミュレータ部６６０に相当）と、前記実行環境提供手段で実行されたアプリケーションにより生成され、当該アプリケーションの動作を示す動作ログを記憶するログ記憶手段（例えば、図１１のログ記憶部６３０に相当）と、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該データ通信検知端末に接続されているハードウェアへの接続に関する動作ログが、前記ログ記憶手段に記憶された動作ログに含まれるか否かによって、前記データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知する検知手段（例えば、図１１の検知部６４０に相当）と、を備えることを特徴とするデータ通信検知端末を提案している。
【００２３】
この発明によれば、実行環境提供手段は、アプリケーションの実行環境を提供する。ログ記憶手段は、実行環境提供手段で実行されたアプリケーションにより生成され、アプリケーションの動作を示す動作ログを記憶する。検知手段は、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、アプリケーション内でのグローバル変数の使用やデータ通信検知端末に接続されているハードウェアへの接続に関する動作ログが、ログ記憶手段に記憶された動作ログに含まれるか否かによって、データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知する。したがって、携帯通信端末でアプリケーションを実行することなしに、アプリケーションの動作ログを取得し、携帯通信端末でアプリケーションが実行された際に、携帯通信端末に保存されているデータの外部漏洩に繋がる可能性があるデータ通信を検知することができる。データ通信検知装置を用いて事前検証を行うことで、アプリケーション間のデータ通信およびアプリケーション内のデータ通信のいずれも検知されないアプリケーションについて、携帯通信端末に保存されているデータを外部漏洩させるアプリでないことを配布時に保証することができる。
【００２４】
（７）  本発明は、（６）のデータ通信検知端末について、前記検知手段で、前記データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知した場合に、前記アプリケーションのソースコードについて、前記グローバル変数が使用されている箇所や前記ハードウェアへの接続に関する箇所に動的解析または静的解析の少なくとも１つを施す第１の解析手段を備えることを特徴とするデータ通信検知端末を提案している。
【００２５】
この発明によれば、検知手段で、データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知した場合に、アプリケーションのソースコードについて、グローバル変数が使用されている箇所やハードウェアへの接続に関する箇所に動的解析または静的解析の少なくとも１つを施す解析手段を備える。したがって、データ通信検知端末にて、アプリケーションのソースコードにおいて、アプリケーション内でのデータ通信に関する箇所も含めて、携帯通信端末に保存されているデータの外部漏洩に繋がる可能性がある箇所を解析することにより、時間や労力を軽減して、より精度よくデータを外部漏洩させるアプリケーションを特定することができる。
【００２６】
（８）  本発明は、（６）または（７）のデータ通信検知端末について、前記検知手段で、前記データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知した場合に、前記アプリケーションのソースコードについて、前記システムコールのログを出力した箇所に動的解析または静的解析の少なくとも１つを施す第２の解析手段を備えることを特徴とするデータ通信検知端末を提案している。
【００２７】
この発明によれば、検知手段で、データの外部漏洩に繋がる可能性を有するデータ通信の有無を検知した場合に、アプリケーションのソースコードについて、システムコールのログを出力した箇所に動的解析または静的解析の少なくとも１つを施す解析手段を備える。したがって、データ通信検知端末にて、アプリケーションのソースコードにおいて、携帯通信端末に保存されているデータの外部漏洩に繋がる可能性がある箇所のみを解析することにより、時間や労力を軽減して、データを外部漏洩させるアプリケーションを特定することができる。
【００２８】
（９）  本発明は、（６）から（８）のデータ通信検知端末について、前記アプリケーション間のデータ通信が、プロセスを用いたデータ通信、ファイルシステムを用いた通信、およびリソースを用いた通信を含むことを特徴とするデータ通信検知端末を提案している。
【００２９】
この発明によれば、アプリケーション間のデータ通信が、プロセスを用いたデータ通信、ファイルシステムを用いた通信、およびリソースを用いた通信を含む。
【００３０】
（１０）  本発明は、（６）から（９）のデータ通信検知端末について、前記アプリケーションの実行環境が、Ａｎｄｒｏｉｄｅ（登録商標）ＯＳの機能を有することを特徴とするデータ通信検知端末を提案している。
【００３１】
この発明によれば、アプリケーションの実行環境は、Ａｎｄｒｏｉｄｅ（登録商標）ＯＳの機能を有する。
【００３２】
（１１）  本発明は、アプリケーションおよび当該アプリケーションの動作に必要なオペレーティングシステムが導入済みであって、当該アプリケーションにおいてデータの外部漏洩に繋がる可能性を有するデータ通信を検知する携帯通信端末におけるデータ通信検知方法であって、前記携帯通信端末は、導入済みのアプリケーションにより生成され、当該アプリケーションの動作を示す動作ログを記憶するログ記憶手段、および検知手段を備え、前記検知手段が、前記ログ記憶手段から動作ログを取得する第１のステップ（例えば、図３のステップＳ１に相当）と、前記検知手段が、前記第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該携帯通信端末に接続されているハードウェアへの接続に関する動作ログが、含まれるか否かを判断する第２のステップ（例えば、図３のステップＳ２に相当）と、
前記検知手段が、前記第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該携帯通信端末に接続されているハードウェアへの接続に関する動作ログが含まれる場合に、前記データの外部漏洩に繋がる可能性を有するデータ通信があることを検知し、一方、前記第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該携帯通信端末に接続されているハードウェアへの接続に関する動作ログが含まれない場合に、前記データの外部漏洩に繋がる可能性を有するデータ通信がないことを検知する第３のステップ（例えば、図３のステップＳ３、Ｓ４に相当）と、を含むことを特徴とするデータ通信検知方法を提案している。
【００３３】
この発明によれば、まず、第１のステップにおいて、検知手段が、ログ記憶手段から動作ログを取得する。次に、第２のステップにおいて、検知手段が、第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、アプリケーション内でのグローバル変数の使用や携帯通信端末に接続されているハードウェアへの接続に関する動作ログが、含まれるか否かを判断する。次に、第３のステップにおいて、検知手段が、第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、アプリケーション内でのグローバル変数の使用や携帯通信端末に接続されているハードウェアへの接続に関する動作ログが含まれる場合に、データの外部漏洩に繋がる可能性を有するデータ通信があることを検知し、一方、第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、アプリケーション内でのグローバル変数の使用や携帯通信端末に接続されているハードウェアへの接続に関する動作ログが含まれない場合に、データの外部漏洩に繋がる可能性を有するデータ通信がないことを検知する。したがって、アプリケーション間のデータ通信を行うためのシステムコールのログの有無、およびアプリケーション内のデータ通信に関するログの有無によって、携帯通信端末に保存されているデータの外部漏洩に繋がる可能性があるデータ通信を検知することができる。その結果、詳細な解析を行う範囲を限定することやアプリケーション内のデータの流れを正確に追跡することができ、解析に係るコストを削減することや検証の精度を向上させることができる。また、アプリケーション間のデータ通信およびアプリケーション内のデータ通信のいずれも検知されないアプリケーションについては、データの外部漏洩が発生していないことを証明することができる。
【００３４】
（１２）  本発明は、アプリケーションにおいてデータの外部漏洩に繋がる可能性があるデータ通信を検知するデータ通信検知装置におけるデータ通信検知方法であって、前記データ通信検知装置は、前記アプリケーションの実行環境を提供する実行環境提供手段、前記実行環境提供手段で実行されたアプリケーションにより生成され、当該アプリケーションの動作を示す動作ログを記憶するログ記憶手段、および検知手段を備え、前記検知手段が、前記ログ記憶手段から動作ログを取得する第１のステップ（例えば、図３のステップＳ１に相当）と、前記検知手段が、前記第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該データ通信検知装置に接続されているハードウェアへの接続に関する動作ログが含まれるか否かを判断する第２のステップ（例えば、図３のステップＳ２に相当）と、前記検知手段が、前記第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該データ通信検知装置に接続されているハードウェアへの接続に関する動作ログが含まれる場合に、前記データの外部漏洩に繋がる可能性を有するデータ通信があることを検知し、一方、前記第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、当該アプリケーション内でのグローバル変数の使用や当該データ通信検知装置に接続されているハードウェアへの接続に関する動作ログが含まれない場合に、前記データの外部漏洩に繋がる可能性を有するデータ通信がないことを検知する第３のステップ（例えば、図３のステップＳ３、Ｓ４に相当）と、を含むことを特徴とするデータ通信検知方法を提案している。
【００３５】
この発明によれば、まず、第１のステップにおいて、検知手段が、ログ記憶手段から動作ログを取得する。次に、第２のステップにおいて、検知手段が、第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、アプリケーション内でのグローバル変数の使用やデータ通信検知装置に接続されているハードウェアへの接続に関する動作ログが含まれるか否かを判断する。次に、第３のステップにおいて、検知手段が、第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、アプリケーション内でのグローバル変数の使用やデータ通信検知装置に接続されているハードウェアへの接続に関する動作ログが含まれる場合に、データの外部漏洩に繋がる可能性を有するデータ通信があることを検知し、一方、第１のステップで取得した動作ログに、アプリケーション間のデータ通信を行うためのシステムコールのログ、およびアプリケーション内のデータ通信を示す、アプリケーション内でのグローバル変数の使用やデータ通信検知装置に接続されているハードウェアへの接続に関する動作ログが含まれない場合に、データの外部漏洩に繋がる可能性を有するデータ通信がないことを検知する。したがって、携帯通信端末でアプリケーションを実行することなしに、アプリケーションの動作ログを取得し、携帯通信端末でアプリケーションが実行された際に、携帯通信端末に保存されているデータの外部漏洩に繋がる可能性があるデータ通信を検知することができる。その結果、データ通信検知装置を用いることにより、利用者にアプリケーションを配布する前に、携帯通信端末に保存されているデータを外部漏洩させるアプリであるか否かの事前検証を行うことができる。また、アプリケーション間のデータ通信およびアプリケーション内のデータ通信のいずれも検知されないアプリケーションについては、データの外部漏洩が発生していないことを証明することができる。
【００３６】
（１３）  本発明は、（１１）または（１２）に記載のデータ通信検知方法をコンピュータに実行させるためのプログラムを提案している。
【００３７】
この発明によれば、データ通信検知方法をコンピュータに実行させるためのプログラムとして提供することができる。
【発明の効果】
【００４０】
本発明によれば、アプリケーション間のデータ通信を行うためのシステムコールのログが、アプリの動作を記録したログに含まれるか否かによって、携帯通信端末に保存されているデータの外部漏洩に繋がる可能性があるデータ通信を検知することができる。その結果、詳細な解析を行う範囲を限定することができ、解析に係るコストを削減することや検証の精度を向上させることができる。また、携帯通信端末のアプリケーションを動作可能なデータ通信検知装置を用いて、携帯通信端末に保存されているデータの外部漏洩に繋がる可能性があるデータ通信を検知するアプリケーションを特定することもできる。
【図面の簡単な説明】
【００４１】
【図１】本発明の第１の実施形態に係る携帯通信端末の機能構成を示す図である。
【図２】一般的な携帯通信端末のアプリ間におけるデータ通信を示す図である。
【図３】本発明の第１の実施形態に係る携帯通信端末におけるデータ通信検知処理フローを示す図である。
【図４】Ａｎｄｏｒｏｉｄ用アプリケーションにおいて、インテントを用いる場合のアプリ間データ通信を示す関数名一覧である。
【図５】Ａｎｄｏｒｏｉｄ用アプリケーションにおいて、サービスを用いる場合のアプリ間データ通信を示す関数名一覧である。
【図６】Ａｎｄｏｒｏｉｄ用アプリケーションにおいて、ファイル操作を用いる場合のアプリ間データ通信を示す関数名一覧である。
【図７】Ａｎｄｏｒｏｉｄ用アプリケーションにおいて、データベースを用いる場合のアプリ間データ通信を示す関数名一覧である。
【図８】Ａｎｄｏｒｏｉｄ用アプリケーションにおいて、プリファレンスを用いる場合のアプリ間データ通信を示す関数名一覧である。
【図９】Ａｎｄｏｒｏｉｄ用アプリケーションにおいて、外部サーバを用いる場合のアプリ間データ通信を示す関数名一覧である。
【図１０】本発明の第２の実施形態に係る携帯通信端末の機能構成を示す図である。
【図１１】本発明の第３の実施形態に係るデータ通信検知装置の機能構成を示す図である。
【発明を実施するための形態】
【００４２】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。なお、本実施形態における構成要素は適宜、既存の構成要素等との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載を持って、特許請求の範囲に記載された発明の内容を限定するものではない。
【００４３】
＜第１の実施形態＞
＜携帯通信端末の機能構成＞
図１は、本発明の第１の実施形態に係る携帯通信端末１０の機能構成を示す図である。本実施形態において、携帯通信端末１０で実行されるアプリケーション（以下、アプリという）により生成された動作ログを用いて、外部漏洩に繋がる可能性が有るデータ通信を検知することができる。図１に示すように、携帯通信端末１０は、キーボードやマウスであってユーザからの入力を受け付ける入力部１００、ディスプレイやスピーカであって画面や音声を出力する出力部２００、他装置とネットワークを介して通信を行う通信部３００、オペレーティングシステム（ＯＳ）４００、プログラム記憶部５００、ＣＰＵ６００、アプリ６１０、ログ生成部６２０、ログ記憶部６３０、および検知部６４０から構成される。
【００４４】
なお、ＯＳ４００、アプリ６１０、ログ生成部６２０、ログ記憶部６３０、および検知部６４０それぞれのプログラムはプログラム記憶部５００に記憶されており、プログラム記憶部５００に記憶されているプログラムがＣＰＵ６００に読み込まれることにより各部が起動される。
【００４５】
ＯＳ４００は、入力部１００や出力部２００の制御やディスクやメモリの管理等、アプリ６１０の実行に必要な機能を提供し、携帯通信端末１０を管理する。ＯＳ４００としては、例えば、ＡｎｄｒｏｉｄＯＳが挙げられる。
【００４６】
アプリ６１０は、ネットワーク等を介して携帯通信端末１０にダウンロードされ、携帯通信端末１０にインストールされることにより、携帯通信端末１０に様々な機能を提供する。アプリ６１０は、ＯＳ４００に対するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）の呼び出し（システムコール）やＯＳ４００からの実行結果の受け取り等を行う。それにより、アプリ６１０は、規定されている各種処理を実行する。図１において、携帯通信端末１０にはアプリ６１０の１つしか図示していないが、複数であってもよい。
【００４７】
ログ生成部６２０は、アプリ６１０が実行されると、アプリの動作を記録した動作ログを生成する。生成された動作ログには、データ通信に関するＡＰＩの呼び出しに関するログが少なくとも記録される。例えば、データ通信に関するＡＰＩの呼び出しに関するログとして、データ通信に関するＡＰＩに含まれる関数の関数名が記録される。
【００４８】
また、動作ログには、アプリ内でのグローバル変数の使用に関するログや携帯通信端末１０に接続されているハードウェアへの接続に関するログが含まれてもよい。アプリ内でのグローバル変数の使用に関するログとして、例えば、アプリ６１０にて実行された関数や使用された変数の宣言が記録され、宣言には、関数や変数の修飾子と、関数名や変数名とが含まれる。また、ハードウェアへの接続に関するログとして、例えば、アプリが実行したネイティブコードで実装された関数の関数名が記録される。
【００４９】
ログ記憶部６３０は、ログ生成部６２０で生成された動作ログを記憶する。記憶されている動作ログは、検知部６４０にてデータ通信の有無の検知が終わると削除されるのが望ましい。
【００５０】
検知部６４０は、ログ記憶部６３０に記憶された動作ログに、データ通信に関するＡＰＩの呼び出しに関するログ、具体的には、データ通信に関するＡＰＩに含まれる関数の関数名が含まれるか否かによって、アプリ間のデータ通信の有無を検知する。アプリ間のデータ通信の有無を検知することにより、データの外部漏洩に繋がる可能性があるデータ通信の有無を検知することができる。検知部６４０は、出力部２００にて、データの外部漏洩に繋がる可能性があるデータ通信の有無を出力する。なお、検知部６４０は、アプリ間のデータ通信の有無を検知した場合に、ログ記憶部６３０に記憶された動作ログに含まれる、データ通信に関するＡＰＩに含まれる関数の関数名を出力部２００にて出力してもよい。
【００５１】
また、検知部６４０は、ログ記憶部６３０に記憶された動作ログに、アプリ内でのグローバル変数の使用に関するログや携帯通信端末１０に接続されているハードウェアへの接続に関するログ、具体的には、グローバルであることを示す修飾子が付加された関数名や変数名、またはネイティブコードで実装された関数の関数名が含まれているか否かによって、アプリ内のデータ通信の有無を検知する。アプリ内のデータ通信は、データの外部漏洩に直接は繋がらないため、単体では致命的な脅威をもたらすものではない。しかし、実際のプライバシデータの漏洩を検知するためには、アプリ内の情報フローを正確に追跡する必要があるため、本データ通信についても検知を行うことが望ましい。
【００５２】
検知部６４０は、出力部２００にて、データの外部漏洩に繋がる可能性があるデータ通信の有無を出力する。なお、検知部６４０は、アプリ間のデータ通信の有無を検知した場合に、ログ記憶部６３０に記憶された動作ログに含まれる、データ通信に関するＡＰＩに含まれる関数の関数名を出力部２００にて出力してもよいし、ログ記憶部６３０に記憶された動作ログに含まれる、グローバルであることを示す修飾子が付加された関数名や変数名、またはネイティブコードで実装された関数の関数名を出力部２００にて出力してもよい。
【００５３】
ここで、アプリ間のデータ通信およびアプリ内のデータ通信について、図２を用いて詳細に説明する。図２は、一般的な携帯通信端末のアプリ間におけるデータ通信を示す図である。携帯通信端末にインストールされたアプリＡ、Ｂは、それぞれサンドボックス化されている。また、アクティビティ１、３はアプリＡの構成要素を示し、アクティビティ２はアプリＢの構成要素を示す。携帯通信端末のアプリ間のデータ通信には、プロセス間通信を用いる方式８１０、ファイルシステムを用いる方式８２０、およびリソースを用いる方式８３０の３つがある。
【００５４】
まず、プロセス間通信を用いる方式８１０は、ＯＳ４００から提供されたアプリ間連携機能を用いて、複数のアプリ間でデータをやり取りする方式である。この方式を用いたアプリ間のデータ通信の有無は、アプリ間連携機能を利用するためのＡＰＩの有無、すなわち、アプリ間連携機能を利用するためのＡＰＩに含まれるメソッドが、ログ記憶部６３０に記憶されたログに含まれるか否かによって、確認することができる。
【００５５】
次に、ファイルシステムを用いる方式８２０は、一般的なファイルの他に、データベース、アプリの設定管理用のファイルを介して、複数のアプリ間でデータをやり取りする方式である。この方式を用いたアプリ間のデータ通信の有無は、ファイルへの書き出し、読み込みを行うＡＰＩの有無、すなわち、ファイルへの書き出し、読み込みを行うＡＰＩに含まれるメソッドが、ログ記憶部６３０に記憶されたログに含まれるか否かによって、確認することができる。
【００５６】
最後に、リソースを用いる方式８３０は、サンドボックスの境界を超えて、他のアプリのリソースにアクセスすることで、複数のアプリ間でデータをやり取りする方式である。この方式を用いたアプリ間のデータ通信の有無は、リソースの操作を行うためのＡＰＩの有無、すなわち、リソースの操作を行うためのＡＰＩに含まれるメソッドが、ログ記憶部６３０に記憶されたログに含まれるか否かによって、確認することができる。なお、この方式を用いたアプリ間のデータ通信は、サンドボックスの境界を超えるアクセスを行うため、利用者により承認が必要である。
【００５７】
アプリ内のデータ通信８４０は、アプリを構成するアクティビティ間でのデータ通信であって、関数内のグローバル変数やネイティブコードで実装された関数等によって実現される。このため、アプリ内のデータ通信８４０は、関数または変数の識別子やネイティブコード実装した関数の有無、すなわち、グローバルであることを示す修飾子が付加された関数や変数、またはネイティブコードで実装された関数の関数名が、ログ記憶部６３０に記憶されたログに含まれるか否かによって、確認することができる。
【００５８】
＜データ通信検知処理フロー＞
図３は、本実施形態に係る携帯通信端末におけるデータ通信検知処理フローを示す図である。
【００５９】
まず、ステップＳ１において、検知部６４０は、ログ記憶部６３０から動作ログを取得する。
【００６０】
次に、ステップＳ２において、検知部６４０は、ステップＳ１で取得した動作ログに、データ通信に関するＡＰＩの呼び出しに関するログが含まれるか否かによって、アプリ間のデータ通信の有無を検知する。データ通信に関するＡＰＩの呼び出しに関するログが含まれると判断した場合は、ステップＳ３に処理を進める。一方、データ通信に関するＡＰＩの呼び出しに関するログが含まれないと判断した場合は、ステップＳ４に処理を進める。
【００６１】
次に、ステップＳ３において、検知部６４０は、ステップＳ２において、データ通信に関するＡＰＩの呼び出しに関するログが含まれると判断した場合は、アプリ間のデータ通信が検知されたことを出力部２００に出力する。
【００６２】
次に、ステップＳ４において、検知部６４０は、ステップＳ２において、データ通信に関するＡＰＩの呼び出しに関するログが含まれないと判断した場合は、アプリ間のデータ通信が検知されなかったことを出力部２００に出力する。
【００６３】
＜実施例＞
図１に示したＯＳ４００がＡｎｄｒｏｉｄＯＳであって、アプリ６１０がＡｎｄｒｏｉｄＯＳ上で動作するＡｎｄｒｏｉｄ用アプリである場合を例に、Ａｎｄｒｏｉｄ用アプリにおけるアプリ間のデータ通信の有無の判断要素であるデータ通信に関するＡＰＩに含まれる関数の関数名を示す。また、アプリ内のデータ通信の有無の判断要素である変数や関数の修飾子も示す。
【００６４】
Ａｎｄｒｏｉｄ用アプリにおいて、アプリ間のデータ通信方式のプロセス間通信の方式８１０は、インテント（Ｉｎｔｅｎｔ）を用いる場合と、サービスを用いる場合に分類される。インテントを用いる場合のアプリ間のデータ通信の有無については、図４に示した関数名が動作ログに含まれるか否かによって検証することができる。同様に、サービスを用いる場合については図５に示した関数名が動作ログに含まれるか否かによって検証することができる。
【００６５】
Ａｎｄｒｏｉｄ用アプリにおいて、アプリ間のデータ通信方式のファイルシステムを用いる方式８２０は、ファイル操作を用いる場合、データベース（ＳＱＬｉｔｅ）を用いる場合、およびプリファレンスを用いる場合の３つに分類される。ファイル操作を用いる場合のアプリ間のデータ通信の有無については、図６に示した関数名が動作ログに含まれるが否かによって検証することができる。同様に、データベース（ＳＱＬｉｔｅ）を用いる場合については図７に示した関数名、プリファレンスを用いる場合については図８に示した関数名が動作ログに含まれるか否かによって検証することができる。
【００６６】
Ａｎｄｒｏｉｄ用アプリにおいて、アプリ間のデータ通信方式のリソースを用いた方式８３０は、ファイル操作を用いる場合、および外部のサーバを用いる場合の２つに分類される。外部のサーバを用いる場合については図９に示した関数名が動作ログに含まれるか否かによって検証することができる。なお、ファイル操作を用いる場合は、外部ストレージ（ＳＤカード等）へのデータの書き出しの際にユーザによるパーミッションの承認が必要であるため、上述したプロセス間通信の方式８１０とファイルシステムを用いる方式８２０の場合の双方に含まれ、ファイル操作を用いる場合に動作ログに含まれる関数名は図４から図８に含まれている。
【００６７】
次に、Ａｎｄｒｏｉｄ用アプリにおいて、アプリ内のデータ通信としては、Ａｐｐｌｉｃａｔｉｏｎクラスを用いた通信、Ｓｉｎｇｌｅｔｏｎクラスを用いた通信、静的フィールドを用いた通信、およびネイティブメソッドを用いた通信がある。
【００６８】
Ａｐｐｌｉｃａｔｉｏｎクラスを用いた通信の場合には、アプリ内のデータ通信の有無は、関数「ａｎｄｒｏｉｄ．ａｐｐ．Ａｃｔｉｖｉｔｙ．ｇｅｔＡｐｐｌｉｃａｔｉｏｎ」が動作ログに含まれるか否かによって検証することができる。
【００６９】
Ｓｉｎｇｌｅｔｏｎクラスを用いた通信の場合には、アプリ内のデータ通信の有無は、Ｓｉｎｇｌｅｔｏｎクラスのフィールドの呼び出しログおよびＳｉｎｇｌｅｔｏｎクラスの関数の呼び出しログ、具体的には、Ｓｉｎｇｌｅｔｏｎクラスのフィールド名および関数名が動作ログに含まれるか否かによって検証することができる。クラスがＳｉｎｇｌｅｔｏｎであることは、コンストラクタの修飾子が「ｐｒｉｖａｔｅ」であることにより判定する。
【００７０】
静的フィールドを用いた通信の場合には、アプリ内のデータ通信の有無は、「ｓｔａｔｉｃ」を含む修飾子が付加された変数が動作ログに含まれるか否かによって検証することができる。具体的には、修飾子が、「ｓｔａｔｉｃ」、「ｓｔａｔｉｃ  ｐｕｂｌｉｃ」、「ｐｒｏｔｅｃｔｅｄ  ｓｔａｔｉｃ」、または「ｐｒｏｔｅｃｔｅｄ  ｓｔａｔｉｃ  ｐｕｂｌｉｃ」のいずれかであるか静的フォールドが動作ログに含まれるか否かによって検証することができる。
【００７１】
ネイティブメソッドを用いた通信の場合には、アプリ内のデータ通信の有無は、ネイティブコードで実装された関数の関数名が動作ログに含まれるか否かによって、アクティビティにおけるネイティブメソッドの有無を判定することによって検証することができる。
【００７２】
上記したいずれの関数名も修飾子も動作ログに含まないＡｎｄｒｏｉｄ用アプリは、携帯通信端末に保存されているデータを外部漏洩させないことが証明される。
【００７３】
以上説明したように、本実施形態によれば、携帯通信端末１０に保存されているデータの外部漏洩に繋がる可能性があるデータ通信を検知することにより、詳細な解析を行う範囲を限定することができる。その結果、解析に係るコストを削減することや検証の精度を向上させることができる。また、携帯通信端末１０に保存されているデータの外部漏洩に繋がる可能性があるデータ通信を検知しなかったアプリについては、携帯通信端末１０に保存されているデータを外部漏洩は生じないことを証明することができる。
【００７４】
＜第２の実施形態＞
図１０を用いて、本発明の第２の実施形態について説明する。本実施形態に係る携帯通信端末では、解析部を備える点において第１の実施携帯に係る携帯通信端末と異なる。なお、第１の実施形態と同一の符号を付す構成要素については、同一の機能を有することから、その詳細な説明は省略する。
【００７５】
図１０は、本発明の第２の実施形態に係る携帯通信端末２０の機能構成を示す図である。図１０に示すように、携帯通信端末２０は、キーボードやマウスであってユーザからの入力を受け付ける入力部１００、ディスプレイやスピーカであって画面や音声を出力する出力部２００、他装置とネットワークを介して通信を行う通信部３００、オペレーティングシステム（ＯＳ）４００、プログラム記憶部５００、ＣＰＵ６００、アプリ６１０、ログ生成部６２０、ログ記憶部６３０、検知部６４１、および解析部６５０から構成される。
【００７６】
検知部６４１は、アプリ間のデータ通信を検知した場合に、ログ記憶部６３０に記憶された動作ログに含まれる、データ通信に関するＡＰＩに含まれる関数の関数名を抽出する。また、検知部６４１は、アプリ内のデータ通信を検知した場合も同様に、ログ記憶部６３０に記憶された動作ログに含まれる、グローバルであることを示す修飾子が付加された関数名や変数名、またはネイティブコードで実装された関数の関数名を抽出する。
【００７７】
解析部６５０は、アプリ６１０のソースコードに対し、検知部６４１で抽出されたデータ通信に関するＡＰＩに含まれる関数の関数名や、検知部６４１で抽出されたグローバルであることを示す修飾子が付加された関数名や変数名、またはネイティブコードで実装された関数の関数名により特定される箇所について、静的解析および動的解析の少なくとも一方を施し、通信内容や通信経路を特定する。それにより、アプリ６１０が携帯通信端末２０に保存されているデータを外部漏洩させているか否か検知することができる。
【００７８】
以上説明したように、本実施形態によれば、アプリのソースコードにおいて、携帯通信端末２０に保存されているデータの外部漏洩に繋がる可能性があるアプリ間データ通信に関する箇所を解析することにより、時間や労力を軽減して、データを外部漏洩させるアプリを特定することができる。また、アプリ内データ通信に関する箇所も解析することにより、より精度よくデータを外部漏洩させるアプリを特定することができる。
【００７９】
＜第３の実施形態＞
図１１を用いて、本発明の第３の実施形態について説明する。本実施形態に係るデータ通信検知装置では、携帯通信端末でアプリを実行することなしに、携帯通信端末にダウンロードされるアプリを実行し、データ通信を検証するための装置である。なお、第１の実施形態と同一の符号を付す構成要素については、同一の機能を有することから、その詳細な説明は省略する。
【００８０】
図１１は、本発明の第３の実施形態に係るデータ通信検知装置３０の機能構成を示す図である。図１１に示すように、データ通信検知装置３０は、キーボードやマウスであってユーザからの入力を受け付ける入力部１００、ディスプレイやスピーカであって画面や音声を出力する出力部２００、他装置とネットワークを介して通信を行う通信部３００、プログラム記憶部５００、ＣＰＵ６００、アプリ６１０、ログ生成部６２０、ログ記憶部６３０、検知部６４０、エミュレータ部６６０、およびＯＳ８００から構成される。なお、本実施形態のデータ通信検知装置３０は、第２の実施形態に係る携帯通信端末２０の解析部６５０を備え、アプリ間データ通信に関する箇所やアプリ内データ通信に関する箇所に静的解析や動的解析を施し、通信内容や通信経路を特定してもよい。
【００８１】
エミュレータ部６６０は、第１の実施形態におけるＯＳ４００の機能を再現し、アプリ６１０を動作させる。
【００８２】
以上説明したように、本実施形態によれば、携帯通信端末でアプリを実行することなしに、アプリの動作ログを取得し、携帯通信端末に保存されているデータの外部漏洩に繋がる可能性があるデータ通信を検知することができる。データ通信検知装置３０を用いることにより、利用者にアプリを配布する前に、携帯通信端末に保存されているデータを外部漏洩させるアプリであるか否かの事前検証を行うことができる。
【００８３】
なお、携帯通信端末またはデータ通信検知端末の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを機器に読み込ませ、実行することによって本発明の携帯通信端末またはデータ通信検知端末を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００８４】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００８５】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。更に、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００８６】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００８７】
１０    携帯通信端末
１００  入力部
２００  出力部
３００  通信部
４００  ＯＳ
５００  プログラム記憶部
６００  ＣＰＵ
６１０  アプリ
６２０  ログ生成部
６３０  ログ記憶部
６４０  検知部
【図１】
0005865180.tif 000002
【図２】
0005865180.tif 000003
【図３】
0005865180.tif 000004
【図４】
0005865180.tif 000005
【図５】
0005865180.tif 000006
【図６】
0005865180.tif 000007
【図７】
0005865180.tif 000008
【図８】
0005865180.tif 000009
【図９】
0005865180.tif 000010
【図１０】
0005865180.tif 000011
【図１１】
0005865180.tif 000012