(57)【特許請求の範囲】
【請求項１】
アプリケーションの識別情報と、前記アプリケーションの処理の際に生成されたプロセスの識別情報と、前記アプリケーションの処理内容とが関連付けられた第１のログを記憶すると共に、前記プロセスの識別情報と、システムコールの実行内容とが関連付けられた第２のログを記憶するログ記憶部と、
前記第１のログから、特定のアプリケーションの識別情報と関連付けられた前記プロセスの識別情報を抽出する第１の抽出部と、
前記第１のログから、前記第１の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第２の抽出部と、
前記第２のログから、前記第１の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第３の抽出部と、
ログを集約する際のルールを示すルール情報を記憶するルール情報記憶部と、
前記第２の抽出部または前記第３の抽出部が抽出した部分から、前記ルール情報に従って一部を削除することによって前記第１のログまたは前記第２のログを集約するログ集約部と、
を備えたことを特徴とするログ抽出システム。
【請求項２】
前記ルール情報は、前記アプリケーションの処理内容または前記システムコールの実行内容が類似する部分を削除することを示し、
前記ログ集約部は、前記第２の抽出部または前記第３の抽出部が抽出した部分から、前記アプリケーションの処理内容または前記システムコールの実行内容が類似する部分を削除する
ことを特徴とする請求項１に記載のログ抽出システム。
【請求項３】
前記ルール情報は、前記アプリケーションの処理内容がガーベージコレクションを示している部分を削除することを示し、
前記ログ集約部は、前記第２の抽出部が抽出した部分から、前記アプリケーションの処理内容がガーベージコレクションを示している部分を削除する
ことを特徴とする請求項１に記載のログ抽出システム。
【請求項４】
前記ルール情報は、前記システムコールの実行内容がドライバ操作を示している部分を削除することを示し、
前記ログ集約部は、前記システムコールの実行内容がドライバ操作を示している部分を削除する
ことを特徴とする請求項１に記載のログ抽出システム。
【請求項５】
前記ルール情報は、前記システムコールの実行内容が、前記特定のアプリケーションに割り当てられたディレクトリに対するファイル操作を示している部分を削除することを示し、
前記ログ集約部は、前記システムコールの実行内容が、前記特定のアプリケーションに割り当てられたディレクトリに対するファイル操作を示している部分を削除する
ことを特徴とする請求項１に記載のログ抽出システム。
【請求項６】
アプリケーションの識別情報と、前記アプリケーションの処理の際に生成されたプロセスの識別情報と、前記アプリケーションの処理内容とが関連付けられた第１のログを記憶すると共に、前記プロセスの識別情報と、システムコールの実行内容とが関連付けられた第２のログを記憶するログ記憶部と、
前記第１のログから、特定のアプリケーションの識別情報と関連付けられた前記プロセスの識別情報を抽出する第１の抽出部と、
前記第１のログから、前記第１の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第２の抽出部と、
前記第２のログから、前記第１の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第３の抽出部と、
ログを集約する際のルールを示すルール情報を記憶するルール情報記憶部と、
前記第２の抽出部または前記第３の抽出部が抽出した部分から、前記ルール情報に従って一部を削除することによって前記第１のログまたは前記第２のログを集約するログ集約部と、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション実行時の処理を記録したログを処理するログ抽出システムに関する。また、本発明は、本ログ抽出システムとしてコンピュータを機能させるためのプログラムに関する。
【背景技術】
【０００２】
オープンプラットフォームと呼ばれる汎用的なOS（オペレーティングシステム）を採用する携帯端末の普及に伴い、多くの携帯端末向けのアプリケーションが、通信ネットワーク（インターネット）上の専用サイトや個人サイトを通じて販売および配布されている。汎用OSを採用した携帯端末向けのアプリケーションは、既存の専用組み込みOSを採用した携帯端末向けのアプリケーションと比較して、開発や配布を容易に行うことができる。
【０００３】
しかし、これに伴って、利用者の個人情報の窃盗や、悪性サイトへの誘導、OSの管理者権限の奪取など、利用者が意図せず不利益を被る可能性のある振る舞いを行うアプリケーションも登場している。よって、アプリケーションの安全性を事前に検証し、不正なアプリケーションを検知することは、利用者が安心してアプリケーションを利用できる環境の実現に有効であると共に、安全性を検証したアプリケーションを提供することで、他社との差別化を図ることも可能であり、重要な技術となる。
【０００４】
特許文献１には、携帯電話などの端末にアプリケーションをダウンロードする際にアプリケーションの認証を行うことで、不正なアプリケーションが端末内で実行されることを防止する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２５１０２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
注目するアプリケーションが不正なアプリケーションであるか否かを判定する方法の一つとして、アプリケーションが実行されたときのアプリケーションの挙動を解析する方法が考えられる。アプリケーションの挙動を記録したログとして、アプリケーションログとカーネルログがある。アプリケーションログは、アプリケーションの実行条件や状態に関する情報を記録したログである。カーネルログは、アプリケーションの処理と関連するプロセスが呼び出したシステムコールの情報を記録したログである。
【０００７】
アプリケーションログには、アプリケーションを実行したときのプロセスの起動や終了等のタイミングは記録されているが、プロセスの処理内容は記録されていない。一方、カーネルログには、プロセスの処理内容は記録されているが、各プロセスがどのアプリケーションの処理と関連しているのかということに関する情報は記録されていない。このため、アプリケーションログとカーネルログのそれぞれ単体からは、特定のアプリケーションによる挙動の詳細を知ることが困難であった。
【０００８】
また、アプリケーションログとカーネルログには、注目するアプリケーションの挙動に対応するプロセス以外のプロセスに関する多量の情報も記録されている。この情報は、アプリケーションの挙動を解析する際には冗長な情報である。このような冗長な情報が含まれているため、アプリケーションログとカーネルログの解析が非効率的となる。
【０００９】
収集したアプリケーションログとカーネルログを記録することや、必要に応じてアプリケーションログとカーネルログの目視による検証を行うことがあるため、ログ中の不要なメッセージを削減するが望ましい。これによって、システムのディスク容量の削減や、解析に要する時間あるいは計算量の削減、目視による検証の効率的な実行が可能となる。
【００１０】
本発明は、上述した課題に鑑みてなされたものであって、アプリケーションの挙動を記録したログから自動解析や目視による検証に有効な部分を抽出し、不要な部分を削減することができるログ抽出システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、上記の課題を解決するためになされたもので、アプリケーションの識別情報と、前記アプリケーションの処理の際に生成されたプロセスの識別情報と、前記アプリケーションの処理内容とが関連付けられた第１のログを記憶すると共に、前記プロセスの識別情報と、システムコールの実行内容とが関連付けられた第２のログを記憶するログ記憶部と、前記第１のログから、特定のアプリケーションの識別情報と関連付けられた前記プロセスの識別情報を抽出する第１の抽出部と、前記第１のログから、前記第１の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第２の抽出部と、前記第２のログから、前記第１の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第３の抽出部と、ログを集約する際のルールを示すルール情報を記憶するルール情報記憶部と、前記第２の抽出部または前記第３の抽出部が抽出した部分から、前記ルール情報に従って一部を削除することによって前記第１のログまたは前記第２のログを集約するログ集約部と、を備えたことを特徴とするログ抽出システムである。
【００１２】
また、本発明のログ抽出システムにおいて、前記ルール情報は、前記アプリケーションの処理内容または前記システムコールの実行内容が類似する部分を削除することを示し、前記ログ集約部は、前記第２の抽出部または前記第３の抽出部が抽出した部分から、前記アプリケーションの処理内容または前記システムコールの実行内容が類似する部分を削除することを特徴とする。
【００１３】
また、本発明のログ抽出システムにおいて、前記ルール情報は、前記アプリケーションの処理内容がガーベージコレクションを示している部分を削除することを示し、前記ログ集約部は、前記第２の抽出部が抽出した部分から、前記アプリケーションの処理内容がガーベージコレクションを示している部分を削除することを特徴とする。
【００１４】
また、本発明のログ抽出システムにおいて、前記ルール情報は、前記システムコールの実行内容がドライバ操作を示している部分を削除することを示し、前記ログ集約部は、前記システムコールの実行内容がドライバ操作を示している部分を削除することを特徴とする。
【００１５】
また、本発明のログ抽出システムにおいて、前記ルール情報は、前記システムコールの実行内容が、前記特定のアプリケーションに割り当てられたディレクトリに対するファイル操作を示している部分を削除することを示し、前記ログ集約部は、前記システムコールの実行内容が、前記特定のアプリケーションに割り当てられたディレクトリに対するファイル操作を示している部分を削除することを特徴とする。
【００１６】
また、本発明は、アプリケーションの識別情報と、前記アプリケーションの処理の際に生成されたプロセスの識別情報と、前記アプリケーションの処理内容とが関連付けられた第１のログを記憶すると共に、前記プロセスの識別情報と、システムコールの実行内容とが関連付けられた第２のログを記憶するログ記憶部と、前記第１のログから、特定のアプリケーションの識別情報と関連付けられた前記プロセスの識別情報を抽出する第１の抽出部と、前記第１のログから、前記第１の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第２の抽出部と、前記第２のログから、前記第１の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第３の抽出部と、ログを集約する際のルールを示すルール情報を記憶するルール情報記憶部と、前記第２の抽出部または前記第３の抽出部が抽出した部分から、前記ルール情報に従って一部を削除することによって前記第１のログまたは前記第２のログを集約するログ集約部と、としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【００１７】
本発明によれば、第２の抽出部または第３の抽出部が抽出した部分から、ルール情報に従って一部を削除し、第１のログまたは第２のログを集約することによって、ログから自動解析や目視による検証に有効な部分を抽出し、不要な部分を削減することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態によるログ抽出システムの構成を示すブロック図である。
【図２】本発明の一実施形態によるログ抽出システムが有する携帯端末の機能構成を示すブロック図である。
【図３】本発明の一実施形態によるログ抽出システムが有するログ解析装置の機能構成を示すブロック図である。
【図４】本発明の一実施形態におけるアプリケーションログの内容を示す参考図である。
【図５】本発明の一実施形態におけるカーネルログの内容を示す参考図である。
【図６】本発明の一実施形態におけるログ解析部の機能構成を示すブロック図である。
【図７】本発明の一実施形態におけるプロセスの親子関係を示す参考図である。
【図８】本発明の一実施形態によるログ抽出システムの動作の手順を示すシーケンス図である。
【図９】本発明の一実施形態におけるアプリケーションの実行ファイルの構成を示す参考図である。
【図１０】本発明の一実施形態によるログ抽出システムの動作の手順を示すフローチャートである。
【図１１】本発明の一実施形態におけるマニフェストファイルの内容を示す参考図である。
【図１２】本発明の一実施形態におけるアプリケーションログの内容を示す参考図である。
【図１３】本発明の一実施形態におけるカーネルログの内容を示す参考図である。
【図１４】本発明の一実施形態における集約ルールとして設定される判定条件を示す参考図である。
【図１５】本発明の一実施形態によるログ抽出システムの動作の手順を示すフローチャートである。
【図１６】本発明の一実施形態におけるカーネルログの内容を示す参考図である。
【図１７】本発明の一実施形態におけるファイル記憶部のディレクトリ構造を示す参考図である。
【図１８】本発明の一実施形態によるログ抽出システムの動作の手順を示すフローチャートである。
【図１９】本発明の一実施形態におけるカーネルログの内容を示す参考図である。
【図２０】本発明の一実施形態における不正通信相手リストの内容を示す参考図である。
【図２１】本発明の一実施形態によるログ抽出システムの変形例の機能構成を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照し、本発明の実施形態を説明する。図１は、本発明の一実施形態によるログ抽出システムの構成を示している。本実施形態によるログ抽出システムは、携帯電話端末、携帯情報端末、スマートフォン等の携帯端末１と、PC等のログ解析装置２とを有する。携帯端末１とログ解析装置２は、RS232C等のケーブル３で接続されており、ログ解析装置２から携帯端末１を操作することができる。本実施形態によるログ抽出システムは、例えば携帯端末用のアプリケーションを通信ネットワーク上で販売する販売サイトを管理する企業に設置される。
【００２０】
図２は携帯端末１の機能構成を示している。携帯端末１は、アプリケーション１０、アプリケーションログ生成部１１、カーネルログ生成部１２、ログ生成制御部１３、操作情報制御部１４、OS１５、ファイル記憶部１６、操作部１７、表示部１８、通信部１９、および作業領域Ｗ１（ログ記憶部）を有する。
【００２１】
アプリケーション１０、アプリケーションログ生成部１１、カーネルログ生成部１２、ログ生成制御部１３、操作情報制御部１４、およびOS１５は、SRAM等のデバイスで構成される作業領域Ｗ１上で動作する。これらの実行ファイル（プログラム）はファイル記憶部１６に格納されており、これらの実行ファイルがファイル記憶部１６から作業領域Ｗ１に読み込まれることで、これらが起動する。なお、作業領域Ｗ１では、アプリケーション１０等のプロセスのほか、図示していない各種プロセスも起動する。これらのプロセスがOS１５にシステムコールの呼び出しを通知し、OS１５がシステムコールを呼び出すことによって、各プロセスは、図示していないCPUの資源を利用して各種処理を行う。
【００２２】
アプリケーション１０は、OS１５に対するシステムコールの呼び出しやOS１５からの実行結果の受け取り等を行う。これによって、アプリケーション１０は、アプリケーションの処理として規定された各種処理の実行やファイル記憶部１６へのアクセス等を行う。
【００２３】
アプリケーションログ生成部１１は、アプリケーション１０の実行条件や状態に関する情報を記録したアプリケーションログ（第１のログ）を生成する。生成されたアプリケーションログは作業領域Ｗ１に保持される。
【００２４】
図４はアプリケーションログの一例を示している。アプリケーションログは、タイムスタンプ４００、プロセスID４１０、プロセスID４２０、メッセージ種別４３０、メッセージタグおよびメッセージ本体４４０からなる。タイムスタンプ４００は日付および時刻を含む。１つのタイムスタンプ４００、親プロセスID４１０、プロセスID４２０、メッセージ種別４３０、メッセージタグおよびメッセージ本体４４０の組を記録単位としてアプリケーションの挙動がアプリケーションログに記録される。図４に示す例では、５つの記録単位分のアプリケーションログの内容が示されている。
【００２５】
プロセスは、プロセス起動のシステムコールを呼び出すことによって、他のプロセスを起動することができる。以下では、起動元のプロセスを親プロセスと呼び、親プロセスによって起動されたプロセスを子プロセスと呼ぶ。プロセスID４１０およびプロセスID４２０が異なる場合、プロセスID４１０は親プロセスのプロセスIDを示し、プロセスID４２０は子プロセスのプロセスIDを示す。プロセスID４１０およびプロセスID４２０が同一の場合、それらのプロセスIDを有する記録単位は同一のプロセスの挙動を示している。
【００２６】
カーネルログ生成部１２は、アプリケーション１０の処理に関連するプロセスが呼び出したシステムコールの情報を記録したカーネルログ（第２のログ）を生成する。生成されたカーネルログは作業領域Ｗ１に保持される。
【００２７】
図５はカーネルログの一例を示している。カーネルログは、プロセスID５００、メッセージ本体５１０からなる。１つのプロセスID５００とメッセージ本体５１０の組を記録単位としてシステムコールの情報がカーネルログに記録される。図５に示す例では、５つの記録単位分のカーネルログの内容が示されている。なお、アプリケーションログとカーネルログとでは、プロセスIDの管理体系が異なる。このため、同一のプロセスについて、アプリケーションログに記録されるプロセスIDとカーネルログに記録されるプロセスIDは異なる。
【００２８】
ログ生成制御部１３は、アプリケーションログ生成部１１およびカーネルログ生成部１２を起動する処理を行う。また、ログ生成制御部１３は、アプリケーションログおよびカーネルログをログ解析装置２へ送信する処理を行う。
【００２９】
操作情報制御部１４は、操作者がログ解析装置２を操作して入力する操作情報に関する制御を行う。具体的には、操作情報制御部１４はログ解析装置２と通信を行い、ログ解析装置２に入力された操作内容を示す操作情報を受信し、操作情報の内容を解釈してOS１５に通知する。通知を受けたOS１５は各種処理を実行する。また、操作情報制御部１４は、OS１５から処理の実行結果の通知を受け、実行結果を示す実行結果情報をログ解析装置２へ送信する。以下の動作の説明では、実行結果情報に関する処理の説明を省略する。
【００３０】
OS１５は、アプリケーション１０、アプリケーションログ生成部１１、カーネルログ生成部１２、ログ生成制御部１３、および操作情報制御部１４の処理のスケジューリングや作業領域Ｗ１の割り当て等を制御すると共に、ファイル記憶部１６、操作部１７、表示部１８、および通信部１９の各デバイスの入出力を制御する。
【００３１】
ファイル記憶部１６は、フラッシュメモリ等のデバイスで構成され、携帯端末１内で使用する実行ファイル等の各種ファイルを記憶する。操作部１７は、キー（ボタン）やスイッチ等のデバイスで構成され、操作者が操作した結果に基づく信号を出力する。表示部１８は、液晶表示装置等のデバイスで構成され、携帯端末１で実行された処理の結果や携帯端末１の状態等を表示する。通信部１９は、通信モジュール等のデバイスで構成され、ログ解析装置２と通信を行う。
【００３２】
図３はログ解析装置２の機能構成を示している。ログ解析装置２は、ログ解析部２０、操作情報制御部２１、OS２２、ファイル記憶部２３（ルール記憶部）、操作部２４、表示部２５、および通信部２６を有する。
【００３３】
ログ解析部２０、操作情報制御部２１、およびOS２２は、SRAM等のデバイスで構成される作業領域Ｗ２上で動作する。これらの実行ファイル（プログラム）はファイル記憶部２３に格納されており、これらの実行ファイルがファイル記憶部２３から作業領域Ｗ２に読み込まれることで、これらが起動する。なお、作業領域Ｗ２では、ログ解析部２０等のプロセスのほか、図示していない各種プロセスも起動する。これらのプロセスがOS２２にシステムコールの呼び出しを通知し、OS２２がシステムコールを呼び出すことによって、各プロセスは、図示していないCPUの資源を利用して各種処理を行う。
【００３４】
ログ解析部２０は、携帯端末１から受信したアプリケーションログおよびカーネルログを解析し、注目するアプリケーションが不正なアプリケーションであるか否かを判定する。
【００３５】
操作情報制御部２１は、操作者が操作部２４を操作して入力する操作内容に基づく操作情報に関する制御を行う。具体的には、操作情報制御部２１は携帯端末１と通信を行い、操作部２４に入力された操作内容を示す操作情報を送信し、また、実行結果を示す実行結果情報を受信する。OS２２は、ログ解析部２０および操作情報制御部２１の処理のスケジューリングや作業領域Ｗ２の割り当て等を制御すると共に、ファイル記憶部２３、操作部２４、表示部２５、および通信部２６の各デバイスの入出力を制御する。
【００３６】
ファイル記憶部２３は、ハードディスクドライブ等のデバイスで構成され、ログ解析装置２内で使用する実行ファイル等の各種ファイルを記憶する。操作部２４は、キーボードやマウス等のデバイスで構成され、操作者が操作した結果に基づく信号を出力する。表示部２５は、液晶表示装置等のデバイスで構成され、実行結果情報に基づく実行結果やログ解析部２０の処理結果等を表示する。通信部２６は、通信モジュール等のデバイスで構成され、携帯端末１と通信を行う。
【００３７】
図６はログ解析部２０の機能構成を示している。ログ解析部２０は、プロセスID抽出部２０ａ（第１の抽出部）、アプリケーションログ抽出部２０ｂ（第２の抽出部）、カーネルログ抽出部２０ｃ（第３の抽出部）、ログ集約部２０ｄ、ファイル操作内容抽出部２０ｅ、通信内容抽出部２０ｆ、判定部２０ｇ、および制御部２０ｈを有する。
【００３８】
プロセスID抽出部２０ａは、注目するアプリケーション１０の処理に関するプロセスのプロセスIDをアプリケーションログから抽出する。図７は、プロセスの親子関係の一例を示している。図７では、システム上で最初に起動するinitプロセスが子プロセスを起動し、その子プロセスが親プロセスとして自身の子プロセスを起動する様子が示されている。
【００３９】
一例として、注目するアプリケーション１０のプロセス群７００のプロセスsshd（プロセスID：2005）はinitプロセスによって起動され、プロセスsshd（プロセスID：1921）およびプロセスsshd（プロセスID：8167）を起動している。プロセスsshd（プロセスID：1921）およびプロセスsshd（プロセスID：8167）もそれぞれ子プロセスを起動している。プロセスID抽出部２０ａは、注目するアプリケーション１０について、親子関係にある各プロセスのプロセスIDを抽出する。すなわち、図７に示す例の場合、プロセスIDとして2005、1921、1931、2333、2345、8167、8323、10940が抽出される。
【００４０】
アプリケーションログ抽出部２０ｂは、プロセスID抽出部２０ａが抽出したプロセスIDを有する部分、すなわち注目するアプリケーションの処理に関係する部分をアプリケーションログから抽出する。カーネルログ抽出部２０ｃは、プロセスID抽出部２０ａが抽出したプロセスIDを有する部分、すなわち注目するアプリケーションの処理に関係する部分をカーネルログから抽出する。
【００４１】
ログ集約部２０ｄは、アプリケーションログ抽出部２０ｂが抽出した部分、およびカーネルログ抽出部２０ｃが抽出した部分から、所定の集約ルールに従って不要な部分を削除することによって、アプリケーションログおよびカーネルログを集約する。ファイル記憶部２３には、集約ルールを示す集約ルール（ルール情報）が格納されており、ログ集約部２０ｄは、この集約ルールに基づいてログを集約する。
【００４２】
本実施形態のログ解析部２０は、ログの自動解析の一例として、アプリケーションが不正であるか否かを判定するアプリケーション判定機能を有している。ファイル操作内容抽出部２０ｅ、通信内容抽出部２０ｆ、および判定部２０ｇは、アプリケーション判定機能に関する処理を行う。
【００４３】
アプリケーションが処理を実行する際には、端末が有する機能の利用や設定の変更に係る権限が設定され、アプリケーションはその権限の範囲内で処理を実行することが可能である。例えば、一般ユーザ権限が設定された場合、一般ユーザ権限の範囲内で各種処理の実行が可能となる。また、最高権限（管理者権限）であるroot権限（スーパーユーザ権限）が設定された場合、一般ユーザ権限の範囲内で可能な処理に加えて、端末内の重要な設定の変更等が可能となる。
【００４４】
通常、アプリケーションは一般ユーザ権限で動作するように設定されており、一般ユーザ権限が設定されたアプリケーションがアクセスできるディレクトリは限定されている。しかし、不正なアプリケーションはOSの脆弱性を突いてroot権限を不正に取得し、ディレクトリに設定されているアクセス権限（パーミッション）を変更して携帯端末内のディレクトリに自由にアクセスできるようになる。これによって、携帯端末に障害を発生させたり、個人情報を漏洩させたりするなどの不正な行為が行われる。そこで、アプリケーションがディレクトリやファイルにアクセスする挙動を解析することで、注目するアプリケーションが不正なアプリケーションであるか否かを判定することが可能となる。
【００４５】
また、一般ユーザ権限が設定されたアプリケーションが通信できる相手は、端末内のiptablesによって制限されている。しかし、不正なアプリケーションはOSの脆弱性を突いてroot権限を不正に取得し、iptablesによる制限を解除して不正なウェブサイトにアクセスできるようになる。そこで、アプリケーションが通信を行う挙動を解析することで、注目するアプリケーションが不正なアプリケーションであるか否かを判定することが可能となる。
【００４６】
ファイル操作内容抽出部２０ｅは、カーネルログ抽出部２０ｃが抽出した部分から、ファイル操作に関係するシステムコールの実行内容を抽出する。通信内容抽出部２０ｆは、カーネルログ抽出部２０ｃが抽出した部分から、通信（ソケット通信）に関係するシステムコールの実行内容を抽出する。
【００４７】
判定部２０ｇは、ファイル操作内容抽出部２０ｅが抽出したシステムコールの実行内容が、ファイル記憶部１６中の特定のディレクトリに対する操作を示しているか否かを判定することによって、注目するアプリケーション１０が不正なアプリケーションであるか否かを判定する。また、判定部２０ｇは、通信内容抽出部２０ｆが抽出したシステムコールの実行内容が、特定のIPアドレス（または特定のIPアドレスおよびポート番号）を通信相手とする通信を示しているか否かを判定することによって、注目するアプリケーション１０が不正なアプリケーションであるか否かを判定する。
【００４８】
制御部２０ｈは、プロセスID抽出部２０ａ、アプリケーションログ抽出部２０ｂ、カーネルログ抽出部２０ｃ、ログ集約部２０ｄ、ファイル操作内容抽出部２０ｅ、通信内容抽出部２０ｆ、および判定部２０ｇに対する処理の振り分けの制御を行う。
【００４９】
次に、本実施形態によるログ抽出システムの動作を説明する。図８は、ログ抽出システムの動作の手順を示している。図８に示す動作の開始前、注目するアプリケーションは携帯端末１にインストールされてなく、携帯端末１では操作情報制御部１４は起動しているが、アプリケーションログ生成部１１、カーネルログ生成部１２、およびログ生成制御部１３は起動していないものとする。また、図８に示す動作の開始前、ログ解析装置２では、操作情報制御部２１は起動しているがログ解析部２０は起動していないものとする。
【００５０】
まず、ログ解析装置２において、操作者は操作部２４を操作し、アプリケーションログ生成部１１およびカーネルログ生成部１２を起動する指示を入力する。操作部２４が操作されると、OS２２は操作部２４の操作内容を操作情報制御部２１に通知する。操作情報制御部２１は、通知された操作内容に基づいて、アプリケーションログ生成部１１およびカーネルログ生成部１２を起動するための操作情報であるログ生成部起動指示を生成する。このログ生成部起動指示は通信部２６から携帯端末１へ送信される（ステップＳ１００）。
【００５１】
携帯端末１において、通信部１９はログ生成部起動指示を受信する（ステップＳ１０５）。OS１５は、ログ生成部起動指示を操作情報制御部１４に通知し、操作情報制御部１４は、ログ生成部起動指示に基づいて、ログ生成制御部１３を起動するためのシステムコールの呼び出しをOS１５に通知する。OS１５はログ生成制御部１３を起動し、起動したログ生成制御部１３はアプリケーションログ生成部１１およびカーネルログ生成部１２を起動する（ステップＳ１１０）。起動したアプリケーションログ生成部１１およびカーネルログ生成部１２はログの生成を開始する。
【００５２】
続いて、ログ解析装置２において、操作者は操作部２４を操作し、判定対象のアプリケーションをインストールする指示を入力する。操作部２４が操作されると、OS２２は操作部２４の操作内容を操作情報制御部２１に通知する。操作情報制御部２１は、通知された操作内容に基づいて、判定対象のアプリケーションの圧縮ファイルをファイル記憶部２３から読み出す。この圧縮ファイルは通信部２６から携帯端末１へ送信される（ステップＳ１１５）。
【００５３】
携帯端末１において、通信部１９はアプリケーションの圧縮ファイルを受信する（ステップＳ１２０）。続いて、アプリケーションのインストールが実行され、伸張されたアプリケーションの実行ファイルがファイル記憶部１６に格納される（ステップＳ１２５）。
【００５４】
図９はアプリケーションの実行ファイルの構成を示している。図９に示すように実行ファイル９００は、命令列を含む実行コード９０１、アプリケーションのパッケージ名称やアプリケーションが利用するコンポーネント等の情報を含むマニフェストファイル９０２、実行コード９０１の実行時に参照されるライブラリ９０３、およびパラメータ９０４等のファイルで構成されている。
【００５５】
アプリケーションのインストール後、操作者は操作部１７を操作し、アプリケーションを起動する指示を入力する。操作部１７が操作されると、OS１５はアプリケーション１０を起動する（ステップＳ１３０）。アプリケーション１０の挙動は、アプリケーションログ生成部１１によってアプリケーションログとして記録されると共に、カーネルログ生成部１２によってカーネルログとして記録される。
【００５６】
続いて、ログ解析装置２において、操作者は操作部２４を操作し、ログを送信する指示を入力する。操作部２４が操作されると、OS２２は操作部２４の操作内容を操作情報制御部２１に通知する。操作情報制御部２１は、通知された操作内容に基づいて、ログを送信するための操作情報であるログ送信指示を生成する。このログ送信指示は通信部２６から携帯端末１へ送信される（ステップＳ１３５）。
【００５７】
携帯端末１において、通信部１９はログ送信指示を受信する（ステップＳ１４０）。OS１５は、ログ送信指示を操作情報制御部１４に通知し、操作情報制御部１４は、ログ送信指示に基づいて、OS１５を介してログ生成制御部１３にログの送信を指示する。ログ生成制御部１３は、アプリケーションログおよびカーネルログを送信する処理を行う。アプリケーションログおよびカーネルログは通信部１９からログ解析装置２へ送信される（ステップＳ１４５）。
【００５８】
ログ解析装置２において、通信部１９はアプリケーションログおよびカーネルログを受信する（ステップＳ１５０）。受信されたアプリケーションログおよびカーネルログは作業領域Ｗ２に保持される。続いて、操作者は操作部２４を操作し、ログを解析する指示を入力する。操作部２４が操作されると、OS２２はログ解析部２０を起動する（ステップＳ１５５）。ログ解析部２０は、アプリケーションログおよびカーネルログを集約する（ステップＳ１６０）。
【００５９】
図１０は、ステップＳ１６０におけるログ解析部２０の動作の詳細を示している。前述したように、ファイル記憶部２３にはアプリケーションの圧縮ファイルが格納されている。プロセスID抽出部２０ａは、ファイル記憶部２３からアプリケーションの圧縮ファイルを読み出して伸張し、図９に示したマニフェストファイル９０２から、アプリケーションを識別するパッケージ名称を取得する（ステップＳ２００）。
【００６０】
図１１はマニフェストファイルの一例を示している。「package=」に続く文字列１１００がパッケージ名称を示している。プロセスID抽出部２０ａは、マニフェストファイルから「package=」という文字列を検索し、その文字列に続く「"」で挟まれた文字列をパッケージ名称として取得する。なお、携帯端末１からアプリケーションログおよびカーネルログと共にマニフェストファイルをログ解析装置２へ送信し、ログ解析装置２においてログの解析に使用するようにしてもよい。
【００６１】
続いて、プロセスID抽出部２０ａは、アプリケーションログから、パッケージ名称と一致する文字列を有する部分を抽出し、抽出した部分からプロセスIDを抽出する（ステップＳ２０５）。図１２はアプリケーションログの一例を示している。プロセスの起動を示す「Start Proc」に続く文字列１２００がパッケージ名称を示している。さらに、「pid=」に続く数字１２１０が、アプリケーション１０が起動したプロセスのプロセスIDを示している。プロセスID抽出部２０ａは、アプリケーションログから「Start Proc」という文字列を検索し、その文字列に続く空白で挟まれた文字列が、ステップＳ２００で取得したパッケージ名称と一致する場合に、そのパッケージ名称に続く部分から「pid=」という文字列を検索し、その文字列に続く数字をプロセスIDとして取得する。このプロセスIDは、カーネルログの管理体系におけるプロセスIDと一致する。
【００６２】
続いて、プロセスID抽出部２０ａは、ステップＳ２０５で抽出したプロセスIDを親プロセスのプロセスID（以下、親プロセスIDとする）とし、カーネルログから子プロセスのプロセスID（以下、子プロセスIDとする）を抽出する（ステップＳ２１０）。カーネルログにおいて、プロセスの生成に関するシステムコールが記録された部分には、親プロセスと子プロセスも記録されている。本実施形態では、プロセスの生成に関するシステムコールとして、forkに注目する。
【００６３】
図１３はカーネルログの一例を示している。１つの記録単位１３００のメッセージ本体に、プロセスの生成に関するシステムコールを示す「fork」が記録されている。また、メッセージ本体の前のプロセスID「1391」が親プロセスIDを示し、メッセージ本体の最後尾のプロセスID「1392」が子プロセスIDを示す。プロセスID抽出部２０ａは、カーネルログから、「fork」の文字列を検索し、それらのいずれかの文字列を含むメッセージ本体の直前の親プロセスIDが、ステップＳ２０５で抽出したプロセスIDと一致する場合に、メッセージ本体の最後尾のプロセスIDを子プロセスIDとして抽出する。プロセスID抽出部２０ａは、抽出した子プロセスIDを親プロセスIDとして、上記のようにして子プロセスIDを抽出する処理を繰り返す。
【００６４】
続いて、アプリケーションログ抽出部２０ｂは、ステップＳ２０５，Ｓ２１０で抽出したプロセスIDと一致するプロセスIDが行の先頭に記録されている部分（記録単位）をアプリケーションログから抽出する（ステップＳ２１５）。ステップＳ２０５，Ｓ２１０で抽出したプロセスIDは、注目するアプリケーション１０に関連するプロセスのプロセスIDであるため、ステップＳ２１５で抽出した部分は、アプリケーション１０の挙動を示している。
【００６５】
続いて、カーネルログ抽出部２０ｃは、ステップＳ２０５，Ｓ２１０で抽出したプロセスIDと一致するプロセスIDが行の先頭に記録されている部分（記録単位）をカーネルログから抽出する（ステップＳ２２０）。ステップＳ２０５，Ｓ２１０で抽出したプロセスIDは、注目するアプリケーション１０に関連するプロセスのプロセスIDであるため、ステップＳ２２０で抽出した部分は、アプリケーション１０の挙動を示している。
【００６６】
続いて、ログ集約部２０ｄは、ファイル記憶部２３から集約ルールを読み出し、集約ルールに基づいて、アプリケーションログ抽出部２０ｂがアプリケーションログから抽出した部分の集約を行うと共に、カーネルログ抽出部２０ｃがカーネルログから抽出した部分の集約を行う（ステップＳ２２５）。以下、アプリケーションログとカーネルログに分けて集約方法を説明する。
【００６７】
図１４は、集約ルールとして設定される判定条件を示している。図１４（ａ）はアプリケーションログに係る判定条件を示している。第１の判定条件は、類似する内容を削除するための判定条件である。同一のシステムコール（関数）の処理によって、類似した内容が連続してログに記録されることがあるため、そのような内容が記録された部分は削除される。具体的には、アプリケーションログの記録単位の種別が１つ前の記録単位の種別と一致し、メッセージタグが１つ前の記録単位のメッセージタグと一致し、メッセージ本体の先頭８文字が１つ前の記録単位のメッセージ本体の先頭８文字と一致する場合に、その記録単位が削除される。
【００６８】
第１の判定条件は、アプリケーションの処理用に動的に確保したメモリ領域のうち不要になったものを開放するガーベージコレクションに関する部分を削除するための判定条件である。ガーベージコレクションはアプリケーションの不正判定に関係しない動作であるため、ガーベージコレクションに関する記録は削除される。具体的には、判定条件が示すように、アプリケーションログの記録単位の種別が「D」であって、メッセージタグが「dalvik」であって、メッセージ本体が「GC」から始まっている場合に、その記録単位が削除される。
【００６９】
図１４（ｂ）はカーネルログに係る判定条件を示している。第１の判定条件は、類似する内容を削除するための条件である。具体的には、カーネルログの記録単位のプロセスIDが１つ前の記録単位のプロセスIDと一致し、メッセージ本体の先頭８文字が１つ前の記録単位のメッセージ本体の先頭８文字と一致する場合に、その記録単位が削除される。
【００７０】
第２〜第４の判定条件は、明確に安全であると定義することができる処理に関する内容を削除するための条件である。第２および第３の判定条件は、周辺機器を制御するためのプログラムであるドライバ（デバイスドライバ）の操作（組み込みおよび取り外し）に関する部分を削除するための条件である。具体的には、第２の判定条件では、ドライバ操作に関するシステムコールであるopenに関する記録単位について、openの引数（ドライバのプログラムの格納場所を示す）が「/dev/ashmem」である場合に、その記録単位が削除される。また、第３の判定条件では、openに関する記録単位について、openの引数が「/dev/binder」を含んでいる場合に、その記録単位が削除される。
【００７１】
第４の判定条件は、アプリケーションが、自身に割り当てられたディレクトリに対して行うファイル操作に関する内容を削除するための条件である。図１７を参照して後述するが、アプリケーションは、通常、自身に割り当てられたディレクトリおよびそのディレクトリ下にあるディレクトリにしかアクセスすることができない。したがって、第４の判定条件では、ファイル操作に関するシステムコールであるreadまたはwriteに関する記録単位について、readまたはwriteの引数が「/home/data/app/aaa」（aaaはアプリケーションのパッケージ名称）である場合に、その記録単位が削除される。
【００７２】
カーネルログに関しては、本実施形態では、以下で説明する特定のシステムコールに注目してログの集約を行う。このため、ステップＳ２２０でカーネルログ抽出部２０ｃがカーネルログから抽出した部分のうち、特定のシステムコールに関する部分をさらに抽出した上でログの集約を行う。本実施形態では、fork等のプロセス制御のシステムコールと、read、write、open等のファイル操作のシステムコールと、connect、recv、send等のソケット通信のシステムコールとに注目する。特定のシステムコールに関する部分を抽出する方法は、後述するファイル操作内容抽出部２０ｅ、通信内容抽出部２０ｆが使用する方法と同様である。
【００７３】
ステップＳ２２５においてログ集約部２０ｄは、上記のようにして、アプリケーションログ抽出部２０ｂがアプリケーションログから抽出した部分およびカーネルログ抽出部２０ｃがカーネルログから抽出した部分の集約を行い、集約後の部分からなるアプリケーションログおよびカーネルログをファイル記憶部２３に保存する。このとき、ステップＳ２０５，Ｓ２１０で抽出したプロセスIDを含む付加情報がファイル記憶部２３に保存される。
【００７４】
集約されたアプリケーションログおよびカーネルログは自動解析または目視による検証に使用される。目視による検証では、集約後のアプリケーションログおよびカーネルログがファイル記憶部２３から読み出され、表示部２５にその内容が表示される。操作者は、表示された各ログの内容に基づいて、目視でアプリケーションの挙動を検証する。アプリケーションログには、カーネルログには記録されないアプリケーションのエラーメッセージが記録されており、カーネルログには、アプリケーションログには記録されないシステムコールの実行内容が記録されており、同一のアプリケーションの挙動に関するアプリケーションログとカーネルログを関連付けて検証することで、アプリケーションの挙動を詳細に調べることができる。また、目視による検証に不要な部分が削除されているため、検証を効率的に行うことができる。
【００７５】
本実施形態では、自動解析を行うことも可能である。以下では、集約後のカーネルログに基づく自動解析の一例を説明する。図１５は、自動解析におけるログ解析部２０の第１の動作例を示している。
【００７６】
ファイル操作内容抽出部２０ｅは、ファイル記憶部２３から集約後のカーネルログおよび付加情報を読み出し、読み出したカーネルログから、ファイル操作に関するシステムコールの実行内容を抽出する（ステップＳ３００）。本実施形態では、ファイル操作に関するシステムコールとして、read、write、およびopenに注目する。
【００７７】
図１６は、openが記録されたカーネルログの一例を示している。１記録単位分に相当する部分１６００には、システムコールを呼び出したプロセスのプロセスID（695）と、システムコールを識別するシステムコール名称（open）と、システムコールの実行内容とが記録されている。システムコールの実行内容には、システムコールによってアクセスされたディレクトリの名称（/data/data/xxx/yyy/zzz）が含まれる。ファイル操作内容抽出部２０ｅは、付加情報に含まれるプロセスIDと一致するプロセスIDを行の先頭に有し、「read」、「write」、および「open」のいずれかと一致する文字列をメッセージ本体に有する記録単位があった場合に、その記録単位のメッセージ本体（記録単位全体でもよい）をシステムコールの実行内容として抽出する。
【００７８】
続いて、判定部２０ｇは、ステップＳ３００で抽出したシステムコールの実行内容に基づいて、注目するアプリケーション１０が不正なアプリケーションであるか否かを判定する（ステップＳ３０５）。この判定には、不正なアプリケーションが行うファイル操作に基づいて予め定義した不正ファイル操作ルールが用いられる。不正ファイル操作ルールはファイル記憶部２３に格納されている。
【００７９】
携帯端末向けのオープンプラットフォームでは、アプリケーションがアクセスできるディレクトリは、そのアプリケーション専用に割り当てられた特定の領域に制限されている。図１７は、ファイル記憶部１６のディレクトリ構成を示している。ファイル記憶部１６には階層構造を有するディレクトリが作成されている。ディレクトリＤ１には、インストールされたアプリケーションの実行ファイルが格納される。また、ディレクトリＤ２は、各アプリケーションが用いるデータを保管するディレクトリであり、ディレクトリＤ２の下に、各アプリケーションの名称と同じ名称を有するディレクトリＤ３ａ〜Ｄ３ｃが並んでいる。
【００８０】
アプリケーションは、通常、そのアプリケーションに対応するディレクトリおよびそのディレクトリ下にあるディレクトリにしかアクセスすることができない。したがって、自身に専用に割り当てられたディレクトリとは異なる、他のアプリケーションに専用に割り当てられたディレクトリにアクセスするアプリケーションは不正なアプリケーションである。
【００８１】
また、図１７において、領域ＲＯＭは、OS等の重要なファイルが格納されている領域であり、一般ユーザ権限が設定されたアプリケーションがアクセスできないよう、領域ＲＯＭにはアクセス権限（パーミッション）が設定されている。このアクセス権限の変更は、root権限を有する場合のみ可能である。root権限を不正に取得した悪意のアプリケーションは、領域ＲＯＭのアクセス権限を変更し、領域ＲＯＭの重要なファイルにアクセスする。したがって、root権限を不正に取得して領域ＲＯＭにアクセスするアプリケーションは不正なアプリケーションである。
【００８２】
不正ファイル操作ルールには、各アプリケーションがアクセスしてはならない上記のようなディレクトリの名称が含まれる。すなわち、不正ファイル操作ルールには、ディレクトリＤ２下のディレクトリであって、注目するアプリケーション以外のアプリケーション専用のディレクトリの名称と、図１７の領域ＲＯＭに含まれるディレクトリの名称とが含まれる。
【００８３】
判定部２０ｇは、ステップＳ３００で抽出したシステムコールの実行内容の文字列と、不正ファイル操作ルールに含まれる文字列とを比較し、ステップＳ３００で抽出したシステムコールの実行内容の文字列の中に、不正ファイル操作ルールに含まれる文字列と一致する文字列があった場合、注目するアプリケーションが不正なアプリケーションであると判定する。また、ステップＳ３００で抽出したシステムコールの実行内容の文字列の中に、不正ファイル操作ルールに含まれる文字列と一致する文字列がなかった場合、判定部２０ｇは、注目するアプリケーションが不正なアプリケーションではないと判定する。
【００８４】
上記の判定において、不正ファイル操作ルールの内容に基づいて、不正なアプリケーションの種別を識別してもよい。例えば、ステップＳ３００で抽出したシステムコールの実行内容の文字列の中に、注目するアプリケーション以外のアプリケーション専用のディレクトリの名称と一致する文字列があった場合、注目するアプリケーションが、他のアプリケーションによって管理される個人情報等にアクセスする情報漏洩タイプのアプリケーションであると識別することができる。また、ステップＳ３００で抽出したシステムコールの実行内容の文字列の中に、図１７の領域ＲＯＭに含まれるディレクトリの名称と一致する文字列があった場合、注目するアプリケーションが、root権限を不正に取得するタイプのアプリケーションであると識別することができる。上記の判定結果に応じて、不正なアプリケーションの種別を示す種別情報を生成し、判定結果と共にファイル記憶部２３に保存してもよい。
【００８５】
図１８は、自動解析におけるログ解析部２０の第２の動作例を示している。通信内容抽出部２０ｆは、ファイル記憶部２３から集約後のカーネルログおよび付加情報を読み出し、読み出したカーネルログから、通信（ソケット通信）に関するシステムコールの実行内容を抽出する（ステップＳ４００）。本実施形態では、通信に関するシステムコールとして、recv、connect、およびsendに注目する。
【００８６】
図１９は、connectが記録されたカーネルログの一例を示している。１記録単位分に相当する部分１９００には、システムコールを呼び出したプロセスのプロセスID（5205）と、システムコールを識別するシステムコール名称（connect）と、システムコールの実行内容とが記録されている。システムコールの実行内容には、システムコールによって実行された通信の相手のIPアドレス（aaa.bbb.ccc.ddd）とポート番号（xx）が含まれる。通信内容抽出部２０ｆは、付加情報に含まれるプロセスIDと一致するプロセスIDを行の先頭に有し、「recv」、「connect」、および「send」のいずれかと一致する文字列をメッセージ本体に有する記録単位があった場合に、その記録単位のメッセージ本体（記録単位全体でもよい）をシステムコールの実行内容として抽出する。
【００８７】
続いて、判定部２０ｇは、ステップＳ４００で抽出したシステムコールの実行内容に基づいて、注目するアプリケーション１０が不正なアプリケーションであるか否かを判定する（ステップＳ４０５）。この判定には、不正なアプリケーションが行う通信に基づいて予め定義した不正通信相手リストが用いられる。不正通信相手リストはファイル記憶部２３に格納されている。
【００８８】
インターネット上では、フィッシングサイトやウイルス感染サイト等、悪性のウェブサイトの情報をブラックリストとして公表しているウェブサイトがある。このウェブサイトから、不正な通信相手のIPアドレス等を取得することが可能である。また、既知の不正なアプリケーションが通信を行ったときの挙動を解析することによって、そのアプリケーションが通信を行った際の通信相手のIPアドレス等を取得することが可能である。上記のようにして取得したIPアドレス等が不正通信相手リストに記録されている。
【００８９】
図２０は不正通信相手リストの一例を示している。不正通信相手リストには、IPアドレス、ポート番号、FQDN（Fully Qualified Domain Name）、および種別が含まれる。IPアドレス、ポート番号、およびFQDNは、不正なアプリケーションが行う通信の相手（宛先）の情報である。２つのIPアドレスが「〜」で結ばれている場合は、２つのIPアドレスを起点および終点とするIPアドレスの範囲を示している。種別は、通信の種別を示している。
【００９０】
判定部２０ｇは、ステップＳ４００で抽出したシステムコールの実行内容から「sin_addr=inet_addr」という文字列を検索し、その文字列に続く部分から、「"」で挟まれた数字列を通信相手のIPアドレスとして取得する。また、判定部２０ｇは、ステップＳ４００で抽出したシステムコールの実行内容から「sin_port=htons」という文字列を検索し、その文字列に続く「(」と「)」で挟まれた数字をポート番号として取得する。
【００９１】
さらに、判定部２０ｇは、システムコールの実行内容から取得したIPアドレスとポート番号との組合せを、不正通信相手リストに含まれるIPアドレスとポート番号との組合せと比較する。システムコールの実行内容から取得したIPアドレスとポート番号との組合せが、不正通信相手リストに含まれるIPアドレスとポート番号との組合せのいずれかと一致した場合、判定部２０ｇは、注目するアプリケーションが不正なアプリケーションであると判定する。また、システムコールの実行内容から取得したIPアドレスとポート番号との組合せが、不正通信相手リストに含まれるIPアドレスとポート番号との組合せのいずれとも一致しなかった場合、判定部２０ｇは、注目するアプリケーションが不正なアプリケーションではないと判定する。なお、不正通信相手リストにIPアドレスは記録されているがポート番号は記録されていない場合、IPアドレスのみについて、上記と同様の判定が行われる。
【００９２】
上記の判定において、不正通信相手リストに含まれる通信相手の種別に基づいて、不正なアプリケーションの種別を識別してもよい。例えば、ステップＳ４００で抽出したシステムコールの実行内容が、広告サイトとの通信として不正通信相手リストに記録されている場合、注目するアプリケーションが、広告サイトへ誘導する通信を行うタイプのアプリケーションであると識別することができる。また、ステップＳ４００で抽出したシステムコールの実行内容が、ボットネットの通信として不正通信相手リストに記録されている場合、注目するアプリケーションが、マルウェア感染を企むボットネットと通信を行うタイプのアプリケーションであると識別することができる。上記の判定結果に応じて、不正なアプリケーションの種別を示す種別情報を生成し、判定結果と共にファイル記憶部２３に保存してもよい。
【００９３】
次に、本実施形態の変形例を説明する。ログ解析装置２におけるログ解析の機能を携帯端末１が有していてもよい。図２１は、ログ解析の機能を実装した携帯端末の機能構成を示している。図２１に示す携帯端末１ａは、図２に示した携帯端末１の構成に加えて、図３に示したログ解析装置２が有するログ解析部２０を有している。アプリケーション１０の起動後、ログ解析部２０は、作業領域Ｗ１に保持されているアプリケーションログおよびカーネルログに基づいて、図１０に示した処理を行う。なお、マニフェストファイルは、ファイル記憶部１６に格納されているアプリケーションの実行ファイルから取得される。また、ファイル記憶部１６には集約ルールや、不正ファイル操作ルール、不正通信相手リストが格納されている。
【００９４】
また、ログ解析装置２はログの収集機能とログの解析機能とを有しているが、ログの収集機能をログ解析装置２とは別の装置に持たせてもよい。例えば、携帯端末１からログを収集する機能を有する端末を用意し、ログ解析装置２はその端末からログを受信して解析を行う。
【００９５】
上述した携帯端末１，１ａおよびログ解析装置２の各機能は、各装置の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより、実現される。ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００９６】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００９７】
上述したように、本実施形態によれば、アプリケーションの挙動を記録したアプリケーションログおよびカーネルログから自動解析や目視による検証に有効な部分を抽出し、不要な部分を削減することができる。このため、ログ解析装置２のディスク容量の削減や、解析に要する時間あるいは計算量の削減、目視による検証の効率的な実行が可能となる。
【００９８】
また、本実施形態によれば、注目するアプリケーションが不正であるか否かを判定することができる。特に、注目するアプリケーションの挙動に対応するプロセス以外のプロセスに関する多量の冗長な情報を解析対象から排除することが可能となるので、アプリケーションログおよびカーネルログの解析を効率的に行うことができ、注目するアプリケーションが不正であるか否かを判定する際の判定精度を向上することができる。
【００９９】
また、カーネルログから、親プロセスIDと関連付けられた子プロセスIDを抽出し、ログの解析に用いることによって、アプリケーションの挙動をより詳細に解析することができ、注目するアプリケーションが不正であるか否かを判定する際の判定精度を向上することができる。
【０１００】
また、カーネルログに記録されたシステムコールの実行内容が、root権限を有している場合に操作が可能なディレクトリ（図１７の領域ＲＯＭのディレクトリ）に対する操作を示しているか否か、あるいはファイル記憶部１６において特定のアプリケーションに割り当てられたディレクトリ（図１７のディレクトリＤ３ａ〜Ｄ３ｃ）に対する操作を示しているか否かを判定することによって、携帯端末のroot権限を奪うアプリケーションや、個人情報を漏洩させるアプリケーションを検出することができる。
【０１０１】
また、カーネルログに記録されたシステムコールの実行内容が、既知の悪性ウェブサイトのIPアドレスを通信相手とする通信を示しているか否か、あるいは既知の悪性アプリケーションの挙動を解析して得られるIPアドレスを通信相手とする通信を示しているか否かを判定することによって、広告サイトへ誘導する通信を行うアプリケーションや、マルウェア感染を企むボットネットと通信を行うアプリケーション等の不正なアプリケーションを検出することができる。
【０１０２】
また、カーネルログに記録されたシステムコールの実行内容からIPアドレスとポート番号を抽出し、不正通信相手リストに含まれるIPアドレスとポート番号の組合せと一致するか否かを判定することによって、通信プロトコル毎に通信相手を区別して詳細に判定を行うことができる。
【０１０３】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【０１０４】
１，１ａ・・・携帯端末、２・・・ログ解析装置、３・・・ケーブル、１０・・・アプリケーション、１１・・・アプリケーションログ生成部、１２・・・カーネルログ生成部、１３・・・ログ生成制御部、１４，２１・・・操作情報制御部、１５，２２・・・OS、１６，２３・・・ファイル記憶部、１７，２４・・・操作部、１８，２５・・・表示部、１９，２６・・・通信部、２０・・・ログ解析部、２０ａ・・・プロセスID抽出部、２０ｂ・・・アプリケーションログ抽出部、２０ｃ・・・カーネルログ抽出部、２０ｄ・・・ログ集約部、２０ｅ・・・ファイル操作内容抽出部、２０ｆ・・・通信内容抽出部、２０ｇ・・・判定部、２０ｈ・・・制御部、Ｗ１，Ｗ２・・・作業領域
【図１】
0005478390.tif 000002
【図２】
0005478390.tif 000003
【図３】
0005478390.tif 000004
【図４】
0005478390.tif 000005
【図５】
0005478390.tif 000006
【図６】
0005478390.tif 000007
【図７】
0005478390.tif 000008
【図８】
0005478390.tif 000009
【図９】
0005478390.tif 000010
【図１０】
0005478390.tif 000011
【図１１】
0005478390.tif 000012
【図１２】
0005478390.tif 000013
【図１３】
0005478390.tif 000014
【図１４】
0005478390.tif 000015
【図１５】
0005478390.tif 000016
【図１６】
0005478390.tif 000017
【図１７】
0005478390.tif 000018
【図１８】
0005478390.tif 000019
【図１９】
0005478390.tif 000020
【図２０】
0005478390.tif 000021
【図２１】
0005478390.tif 000022