(57)【特許請求の範囲】
【請求項１】
携帯端末の利用者を識別する第１の識別情報を記憶する第１の記憶部から前記第１の識別情報を取得し、携帯端末の個体を識別する第２の識別情報を記憶する第２の記憶部から前記第２の識別情報を取得する情報取得部と、
前記情報取得部によって取得された前記第１の識別情報および前記第２の識別情報に基づいてパターンマッチング用のパターンを生成する生成部と、
携帯端末の情報送信時の挙動を示す情報を含むログを記憶する第３の記憶部から前記ログを読み出し、前記ログに含まれる情報と前記パターンとのパターンマッチングを行う処理部と、
を備え、
前記生成部は、情報の送信を示す文字と前記第１の識別情報および前記第２の識別情報とを組み合わせた前記パターンを生成する
ことを特徴とする携帯端末。
【請求項２】
前記生成部は、正規表現で表現された前記パターンを生成することを特徴とする請求項１に記載の携帯端末。
【請求項３】
前記パターンマッチングの結果を表示する表示部をさらに備えたことを特徴とする請求項１または請求項２に記載の携帯端末。
【請求項４】
前記ログは、アプリケーションの挙動を記録したアプリケーションログ、カーネルの挙動を記録したカーネルログ、および通信時に送信および受信されるパケットの情報を記録した通信ログのいずれかであることを特徴とする請求項１〜請求項３のいずれか一項に記載の携帯端末。
【請求項５】
前記第１の識別情報は、電話番号、メールアドレス、IMSI（International Mobile Subscriber Identity）、SIM（Subscriber Identity Module） Serial Numberのいずれかを含むことを特徴とする請求項１〜請求項４のいずれか一項に記載の携帯端末。
【請求項６】
前記第２の識別情報は、IMEI（International Mobile Equipment Identity）またはAndroid（登録商標） IDを含むことを特徴とする請求項１〜請求項５のいずれか一項に記載の携帯端末。
【請求項７】
請求項１〜請求項６のいずれか一項に記載の携帯端末としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯電話端末やスマートフォン等の携帯端末に関する。また、本発明は、本携帯端末としてコンピュータを機能させるためのプログラムにも関する。
【背景技術】
【０００２】
昨今、PCに近い高機能を実現したスマートフォンの普及が進んでいる。また、スマートフォンに実装されるOS（オペレーティングシステム）として、例えばオープンプラットフォームと呼ばれる汎用的なOSであるAndroid（登録商標）が採用されている。このようなOS上で動作する多数のアプリケーションがインターネット上で公開されており、スマートフォンのユーザは必要なアプリケーションを選択してスマートフォンにインストールすることが可能である。
【０００３】
しかし、スマートフォンの普及に伴って、端末の内部で管理される電話番号等の重要な情報を勝手に外部のホストへ送信するスパイウェアが問題になっている。OSとしてAndroid（登録商標）を使用する端末では、アプリケーションに対して、READ_PHONE_STATEと呼ばれるパーミッション（権限）を与えることで、重要な情報を簡単に読み出すことができてしまう。したがって、重要な情報の漏洩を検知することの重要性が高まっている。
【０００４】
なお、特許文献１には、個人情報の一部をダミー情報として保持し、ダミー情報が示す宛先に通信が行われたこと、あるいはダミー情報がネットワーク上に公開されたことを検知することによって、個人情報の漏洩を検知する方法が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−７９２３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に記載された方法では、漏洩した個人情報を取得した第３者が、ダミー情報を使用して通信を行ったり、ダミー情報をネットワーク上に公開したりすることが前提となる。また、この方法では、重要な個人情報そのものが漏洩する挙動を直接的に監視するわけではない。このため、検知に漏れが発生する可能性がある。
【０００７】
本発明は、上述した課題に鑑みてなされたものであって、情報の漏洩を検知することができる携帯端末およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するためになされたもので、携帯端末の利用者を識別する第１の識別情報を記憶する第１の記憶部から前記第１の識別情報を取得し、携帯端末の個体を識別する第２の識別情報を記憶する第２の記憶部から前記第２の識別情報を取得する情報取得部と、前記情報取得部によって取得された前記第１の識別情報および前記第２の識別情報に基づいてパターンマッチング用のパターンを生成する生成部と、携帯端末の情報送信時の挙動を示す情報を含むログを記憶する第３の記憶部から前記ログを読み出し、前記ログに含まれる情報と前記パターンとのパターンマッチングを行う処理部と、を備え、前記生成部は、情報の送信を示す文字と前記第１の識別情報および前記第２の識別情報とを組み合わせた前記パターンを生成することを特徴とする携帯端末である。
【００１０】
また、本発明の携帯端末において、前記生成部は、正規表現で表現された前記パターンを生成することを特徴とする。
【００１１】
また、本発明の携帯端末は、前記パターンマッチングの結果を表示する表示部をさらに備えたことを特徴とする。
【００１２】
また、本発明の携帯端末において、前記ログは、アプリケーションの挙動を記録したアプリケーションログ、カーネルの挙動を記録したカーネルログ、および通信時に送信および受信されるパケットの情報を記録した通信ログのいずれかであることを特徴とする。
【００１３】
また、本発明の携帯端末において、前記第１の識別情報は、電話番号、メールアドレス、IMSI（International Mobile Subscriber Identity）、SIM（Subscriber Identity Module） Serial Numberのいずれかを含むことを特徴とする。
【００１４】
また、本発明の携帯端末において、前記第２の識別情報は、IMEI（International Mobile Equipment Identity）またはAndroid（登録商標） IDを含むことを特徴とする。
【００１５】
また、本発明は、上記の携帯端末としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【００１６】
本発明によれば、携帯端末上で動作するアプリケーションの情報送信時の挙動を示す情報を含むログに含まれる情報と、携帯端末の利用者を識別する第１の識別情報および携帯端末の個体を識別する第２の識別情報に基づいて生成されたパターンとのパターンマッチングを行うことによって、情報の漏洩を検知することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態による携帯端末の構成を示すブロック図である。
【図２】本発明の一実施形態による携帯端末の動作の手順を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、図面を参照し、本発明の実施形態を説明する。図１は、本発明の一実施形態による携帯端末の構成を示している。図１に示す携帯端末は、アプリケーション１０、仮想マシン１１、カーネル１２、通信部１３、操作部１４、表示部１５、アプリケーション監視部１６、システムコール監視部１７、パケット監視部１８、ログ生成部１９、端末記憶部２０、カード記憶部２１、重要情報取得部２２、パターン生成部２３、情報漏洩監視部２４を有する。
【００１９】
アプリケーション１０は仮想マシン１１上で動作する。図１では１つのアプリケーションのみを図示しているが、複数のアプリケーションが動作することが可能である。仮想マシン１１は、Android（登録商標）プラットフォームで提供されているdalvikに相当し、OSであるAndroid（登録商標）上に実装されている。カーネル１２はAndroid（登録商標）の中核部分であり、プロセス管理、メモリ管理、通信部１３等のデバイスに係るデバイス管理、システムコールの制御を行う。
【００２０】
通信部１３は、ネットワークを介して外部の通信装置と通信を行う。操作部１４は、ユーザが操作するキー等の操作部材を有する。表示部１５は、各種の情報を表示する。
【００２１】
アプリケーション監視部１６は、アプリケーション１０と仮想マシン１１の間で入出力される情報を監視し、アプリケーション１０の実行条件や状態に関する情報を出力する。アプリケーション監視部１６の機能は、例えばDDMSやLogcatを利用することで実現することができる。システムコール監視部１７は、カーネル１２内でシステムコールを監視し、アプリケーション１０の処理に関連するプロセスが呼び出したシステムコールの情報を出力する。システムコール監視部１７の機能は、例えばstraceを利用することで実現することができる。
【００２２】
パケット監視部１８は、通信部１３が送受信するパケットを監視し、パケットの宛先等の情報を出力する。パケット監視部１８の機能は、例えばtcpdumpを利用することで実現することができる。ログ生成部１９は、アプリケーション監視部１６から出力された情報を記録したアプリケーションログ、システムコール監視部１７から出力された情報を記録したカーネルログ、パケット監視部１８から出力された情報を記録した通信ログを生成し、端末記憶部２０に格納する。
【００２３】
上記のように、端末記憶部２０には、携帯端末の挙動（特に情報送信時の挙動）を記録した各ログが格納される。アプリケーションログには、アプリケーションの挙動に関する各種情報が記録されている。カーネルログには、カーネルの挙動、特にシステムコールの挙動が記録されている。通信ログには、通信時に送受信されるパケットの情報が記録されている。端末記憶部２０は上記のログのほか、アプリケーション１０の実行ファイル等の各種ファイルを記憶する。
【００２４】
また、端末記憶部２０は、携帯端末の個体を識別する識別情報である端末情報を記憶する。本実施形態の端末情報は、IMEI（International Mobile Equipment Identity）およびAndroid（登録商標） IDである。IMEIは、携帯端末の製造元や、機種、シリアル番号等の情報を含む。Android（登録商標） IDは、携帯端末においてAndroid（登録商標） OSが最初に起動するときにランダムに生成される64ビットの情報である。
【００２５】
カード記憶部２１は、取り外しが可能なSIM（Subscriber Identity Module）カード内の記憶部であり、携帯端末の利用者を識別する個人情報および契約者情報を記憶する。本実施形態の個人情報は電話番号およびメールアドレスである。また、本実施形態の契約者情報はIMSI（International Mobile Subscriber Identity）およびSIM Serial Numberである。IMSIは、契約者毎にユニークな識別子である。SIM Serial NumberはSIMカードのシリアル番号である。端末記憶部２０内の端末情報とカード記憶部２１内の個人情報および契約者情報が、漏洩させてはいけない重要情報である。
【００２６】
重要情報取得部２２は、カード記憶部２１から個人情報および契約者情報を読み出し、端末記憶部２０から端末情報を読み出すことで、重要情報を取得する。重要情報取得部２２は、READ_PHONE_STATEをパーミッション（権限）として与えられて動作する。
【００２７】
パターン生成部２３は、重要情報取得部２２が取得した重要情報に基づいて、パターンマッチングに使用するパターンを生成する。情報漏洩監視部２４は、端末記憶部２０に格納されているアプリケーションログ、カーネルログ、通信ログに記録されている情報と、パターン生成部２３が生成したパターンとのパターンマッチングを行い、重要情報の漏洩を監視する。
【００２８】
次に、パターンマッチング用のパターンについて説明する。パターン生成部２３は、アプリケーションログ用のパターン、カーネルログ用のパターン、通信ログ用のパターンをそれぞれ生成する。パターン生成部２３が生成するパターンは、正規表現で表現された文字列である。以下はパターンの一例である。
【００２９】
アプリケーションログ用のパターン：send(.*(xxx|yyy|zzz).*\)
カーネルログ用のパターン：recv\(.*( xxx|yyy|zzz).*\)
通信ログ用のパターン： xxx|yyy|zzz
【００３０】
アプリケーションログ用のパターンは、外部への送信を示す文字列である“send”と重要情報とを組み合わせた文字列パターンである。“.”は任意の文字を示し、“*”は０文字以上の繰り返しを示す。したがって、“.*”は任意の文字が０文字以上繰り返されることを示す。“xxx”は個人情報を示す。上記の例では個人情報を文字列xxxで表現しているが、実際のパターンでは文字列xxxは具体的な個人情報の文字列である。“yyy”は契約者情報を示す。上記の例では契約者情報を文字列yyyで表現しているが、実際のパターンでは文字列yyyは具体的な契約者情報の文字列である。“zzz”は端末情報を示す。上記の例では端末情報を文字列zzzで表現しているが、実際のパターンでは文字列zzzは具体的な端末情報の文字列である。“|”は前後の文字列を択一的に選択することを示す。
【００３１】
アプリケーションログにおいて、“send(”の後に任意の文字列が続いた後、“(”の直後に個人情報、契約者情報、端末情報のいずれかの文字列と“)”が続き、その後、任意の文字列が続いた後、“\)”が続く文字列があった場合、アプリケーションログの情報とパターンとが一致したことになる。
【００３２】
カーネルログ用のパターンは、外部への送信を示す文字列である“recv\”と重要情報とを組み合わせた文字列パターンである。パターンの内容はアプリケーションログ用のパターンと同様である。
【００３３】
通信ログ用のパターンは、重要情報を含む文字列パターンである。“xxx|yyy|zzz”は個人情報、契約者情報、端末情報のいずれかを示す。通信ログにおいて、１つのパケットの情報を記録した部分のSource IPに携帯端末自身のIPアドレスが記載され、かつ、同じ１つのパケットの情報を記録した部分に個人情報、契約者情報、端末情報のいずれかの文字列があった場合、通信ログの情報とパターンとが一致したことになる。
【００３４】
携帯端末自身のIPアドレスを取得する方法として、例えば以下の方法がある。第１の方法は、ifconfigコマンドを利用する方法である。root権限を持つシェルを起動し、ifconfigコマンドを実行することで、携帯端末自身に割り当てられたIPアドレスを取得することが可能である。
【００３５】
第２の方法は、通信ログから携帯端末自身のIPアドレスを取得する方法である。OSにAndroid（登録商標）を使用している全ての携帯端末は28分周期でDestination IP=72.14.203.188、Destination Port=5228/TCP  の通信を発生する。通信相手のIPアドレスであるDestination IPは変動する可能性があるが、通信相手のPort番号であるDestination Portは必ず5228/TCPとなる。したがって、通信ログにおいて、Destination Portに5228/TCPが記載された１つのパケットの情報を検出し、同じ１つのパケットの情報を記録した部分に含まれるSource IPを検出することで、携帯端末自身に割り当てられたIPアドレスを取得することが可能である。
【００３６】
上記の各パターンは、各ログのフォーマットに合わせて適宜変更することが可能である。例えば、アプリケーションログによっては、外部への送信を示す文字列が“send”でない場合があるので、そのアプリケーションログのフォーマットで外部への送信を示す文字列を用いてパターンを生成すればよい。
【００３７】
本実施形態では、一般的な文字列のパターンマッチングに使用される正規表現を使用しているので、様々な条件に対応したパターンマッチングを容易に行うことができる。
【００３８】
次に、重要情報の漏洩の監視に係る動作を説明する。図２は、重要情報の漏洩の監視を行う際の処理を示している。端末記憶部２０には、ログ生成部１９が生成したアプリケーションログ、カーネルログ、通信ログが格納されているものとする。
【００３９】
まず、重要情報取得部２２は、カード記憶部２１から個人情報および契約者情報を読み出し、端末記憶部２０から端末情報を読み出すことで重要情報を取得し、パターン生成部２３へ出力する（ステップＳ１００）。続いて、パターン生成部２３は、ステップＳ１００で取得された重要情報に基づいて、正規表現で表現されたパターンマッチング用のパターンを生成し、情報漏洩監視部２４へ出力する（ステップＳ１０５）。
【００４０】
続いて、情報漏洩監視部２４は、端末記憶部２０に格納されているアプリケーションログ、カーネルログ、通信ログに記録されている情報と、パターン生成部２３が生成したパターンとのパターンマッチングを行う（ステップＳ１１０）。以下、パターンマッチングの詳細な手順を説明する。
【００４１】
情報漏洩監視部２４は、端末記憶部２０に格納されている解析対象であるアプリケーションログ、カーネルログ、通信ログの中からいずれか１つを選択する（ステップＳ１１１）。続いて、情報漏洩監視部２４は、ステップＳ１１１で選択した解析対象を構成するデータを選択し、端末記憶部２０から読み出す（ステップＳ１１２）。このとき、例えばログ中の１つの記録単位分のデータが選択される。
【００４２】
続いて、情報漏洩監視部２４は、解析対象を構成するデータとパターンとを比較する（ステップＳ１１３）。続いて、情報漏洩監視部２４は、解析対象を構成するデータとパターンとが一致したか否かを判定する（ステップＳ１１４）。解析対象を構成するデータとパターンとが一致した場合、重要情報の漏洩が検知されたことになる。この場合、パターンマッチングが終了し、情報漏洩監視部２４は、重要情報の漏洩が検知されたことを利用者に知らせるための情報を表示部１５へ出力し、その情報に基づく表示を行わせる（ステップＳ１２０）。このとき、どのような重要情報が漏洩したのかを利用者に知らせるため、漏洩した重要情報の種別（個人情報、契約者情報、端末情報）を判別し、その種別を表示してもよい。
【００４３】
一方、解析対象を構成するデータとパターンとが一致しなかった場合、重要情報の漏洩が検知されなかったことになる。この場合、情報漏洩監視部２４は、解析対象中の全てのデータの解析が終了したか否かを判定する（ステップＳ１１５）。解析を行っていないデータが存在する場合、処理がステップＳ１１２に戻り、次のデータが選択される。また、解析対象中の全てのデータの解析が終了した場合、情報漏洩監視部２４は、全ての解析対象の解析が終了したか否かを判定する（ステップＳ１１６）。解析を行っていない解析対象が存在する場合、処理がステップＳ１１１に戻り、次の解析対象が選択される。全ての解析対象の解析が終了した場合、パターンマッチングが終了する。
【００４４】
上記では、重要情報の漏洩が検知された時点でパターンマッチングが終了するため、解析対象を構成するデータの一部については解析が行われないことがある。解析が行われなかったデータから別の重要情報の漏洩が検知される可能性もある。そこで、全ての解析対象のデータの解析が終了するまで、解析を継続してもよい。例えば、ステップＳ１１４で重要情報の漏洩が検知された場合に、重要情報の漏洩が発生したことを示す情報を端末記憶部２０に一時保持してステップＳ１１５に進み、全ての解析対象の解析が終了した後、端末記憶部２０に一時保持した情報に基づいて重要情報の漏洩の発生の有無を判定し、重要情報の漏洩が発生している場合に、その旨を表示部１５に表示してもよい。複数の重要情報の漏洩が発生していた場合には、その旨が表示部１５に表示される。
【００４５】
上述したように、本実施形態によれば、携帯端末上で動作するアプリケーションの情報送信時の挙動を示す情報を含むアプリケーションログ、カーネルログ、通信ログに含まれる情報と、携帯端末の利用者を識別する個人情報および契約者情報や、携帯端末の個体を識別する端末情報に基づいて生成されたパターンとのパターンマッチングを行うことによって、重要情報の漏洩を検知することができる。
【００４６】
また、情報の送信を示す文字列（“send”等）と個人情報、契約者情報、または端末情報とを組み合わせたパターンを生成することによって、携帯端末から外部への重要情報の漏洩をより確実に検知することができる。さらに、正規表現で表現されたパターンを生成することによって、様々な条件に対応したパターンマッチングを容易に行うことができる。
【００４７】
また、パターンマッチングの結果を表示することによって、重要情報の漏洩が発生したか否かを利用者に通知することができる。パターンマッチングの結果として、重要情報の漏洩が発生したことを表示した場合には、携帯端末を安全な状態に修復するように利用者に促すことができる。
【００４８】
本実施形態の利用形態として、携帯電話等の利用者が上記の携帯端末を利用することを想定しているが、これ以外の利用形態も可能である。例えば、携帯端末用のアプリケーションを販売する販売元において、アプリケーションの販売の可否を決定するために、本実施形態の携帯端末を用いてアプリケーションの特性解析を行ってもよい。
【００４９】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上述した実施形態による携帯端末の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させてもよい。
【００５０】
ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００５１】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００５２】
１０・・・アプリケーション、１１・・・仮想マシン、１２・・・カーネル、１３・・・通信部、１４操作部、１５・・・表示部、１６・・・アプリケーション監視部、１７・・・システムコール監視部、１８・・・パケット監視部、１９・・・ログ生成部、２０・・・端末記憶部（第２の記憶部、第３の記憶部）、２１・・・カード記憶部（第１の記憶部）、２２・・・重要情報取得部（情報取得部）、２３・・・パターン生成部（生成部）、２４・・・情報漏洩監視部（処理部）
【図１】
0005698494.tif 000002
【図２】
0005698494.tif 000003