JP2012022380A - ログ抽出システムおよびプログラム - Google Patents

ログ抽出システムおよびプログラム Download PDF

Info

Publication number
JP2012022380A
JP2012022380A JP2010157819A JP2010157819A JP2012022380A JP 2012022380 A JP2012022380 A JP 2012022380A JP 2010157819 A JP2010157819 A JP 2010157819A JP 2010157819 A JP2010157819 A JP 2010157819A JP 2012022380 A JP2012022380 A JP 2012022380A
Authority
JP
Japan
Prior art keywords
log
application
unit
identification information
extracted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010157819A
Other languages
English (en)
Other versions
JP5478390B2 (ja
Inventor
Takamasa Isohara
隆将 磯原
Keisuke Takemori
敬祐 竹森
Masaru Miyake
優 三宅
Yasuhiro Hatase
泰博 畑瀬
Satoshi Ushiyama
聡 牛山
Masanori Yanagihara
正憲 柳原
Tomoaki Takano
智秋 高野
Toshihiko Imagawa
俊彦 今川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2010157819A priority Critical patent/JP5478390B2/ja
Publication of JP2012022380A publication Critical patent/JP2012022380A/ja
Application granted granted Critical
Publication of JP5478390B2 publication Critical patent/JP5478390B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】アプリケーションの挙動を記録したログから自動解析や目視による検証に有効な部分を抽出し、不要な部分を削減することができるログ抽出システムおよびプログラムを提供する。
【解決手段】プロセスID抽出部20aは、アプリケーションログから、特定のアプリケーションの識別情報と関連付けられたプロセスの識別情報を抽出する。アプリケーションログ抽出部20bは、アプリケーションログから、抽出されたプロセスの識別情報を有する部分を抽出する。カーネルログ抽出部20cは、カーネルログから、抽出されたプロセスの識別情報を有する部分を抽出する。ログ集約部20dは、アプリケーションログ抽出部20bまたはカーネルログ抽出部20cが抽出した部分から、ルール情報に従って一部を削除することによってアプリケーションログまたはカーネルログを集約する。
【選択図】図6

Description

本発明は、アプリケーション実行時の処理を記録したログを処理するログ抽出システムに関する。また、本発明は、本ログ抽出システムとしてコンピュータを機能させるためのプログラムに関する。
オープンプラットフォームと呼ばれる汎用的なOS(オペレーティングシステム)を採用する携帯端末の普及に伴い、多くの携帯端末向けのアプリケーションが、通信ネットワーク(インターネット)上の専用サイトや個人サイトを通じて販売および配布されている。汎用OSを採用した携帯端末向けのアプリケーションは、既存の専用組み込みOSを採用した携帯端末向けのアプリケーションと比較して、開発や配布を容易に行うことができる。
しかし、これに伴って、利用者の個人情報の窃盗や、悪性サイトへの誘導、OSの管理者権限の奪取など、利用者が意図せず不利益を被る可能性のある振る舞いを行うアプリケーションも登場している。よって、アプリケーションの安全性を事前に検証し、不正なアプリケーションを検知することは、利用者が安心してアプリケーションを利用できる環境の実現に有効であると共に、安全性を検証したアプリケーションを提供することで、他社との差別化を図ることも可能であり、重要な技術となる。
特許文献1には、携帯電話などの端末にアプリケーションをダウンロードする際にアプリケーションの認証を行うことで、不正なアプリケーションが端末内で実行されることを防止する技術が記載されている。
特開2008−251021号公報
注目するアプリケーションが不正なアプリケーションであるか否かを判定する方法の一つとして、アプリケーションが実行されたときのアプリケーションの挙動を解析する方法が考えられる。アプリケーションの挙動を記録したログとして、アプリケーションログとカーネルログがある。アプリケーションログは、アプリケーションの実行条件や状態に関する情報を記録したログである。カーネルログは、アプリケーションの処理と関連するプロセスが呼び出したシステムコールの情報を記録したログである。
アプリケーションログには、アプリケーションを実行したときのプロセスの起動や終了等のタイミングは記録されているが、プロセスの処理内容は記録されていない。一方、カーネルログには、プロセスの処理内容は記録されているが、各プロセスがどのアプリケーションの処理と関連しているのかということに関する情報は記録されていない。このため、アプリケーションログとカーネルログのそれぞれ単体からは、特定のアプリケーションによる挙動の詳細を知ることが困難であった。
また、アプリケーションログとカーネルログには、注目するアプリケーションの挙動に対応するプロセス以外のプロセスに関する多量の情報も記録されている。この情報は、アプリケーションの挙動を解析する際には冗長な情報である。このような冗長な情報が含まれているため、アプリケーションログとカーネルログの解析が非効率的となる。
収集したアプリケーションログとカーネルログを記録することや、必要に応じてアプリケーションログとカーネルログの目視による検証を行うことがあるため、ログ中の不要なメッセージを削減するが望ましい。これによって、システムのディスク容量の削減や、解析に要する時間あるいは計算量の削減、目視による検証の効率的な実行が可能となる。
本発明は、上述した課題に鑑みてなされたものであって、アプリケーションの挙動を記録したログから自動解析や目視による検証に有効な部分を抽出し、不要な部分を削減することができるログ抽出システムおよびプログラムを提供することを目的とする。
本発明は、上記の課題を解決するためになされたもので、アプリケーションの識別情報と、前記アプリケーションの処理の際に生成されたプロセスの識別情報と、前記アプリケーションの処理内容とが関連付けられた第1のログを記憶すると共に、前記プロセスの識別情報と、システムコールの実行内容とが関連付けられた第2のログを記憶するログ記憶部と、前記第1のログから、特定のアプリケーションの識別情報と関連付けられた前記プロセスの識別情報を抽出する第1の抽出部と、前記第1のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第2の抽出部と、前記第2のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第3の抽出部と、ログを集約する際のルールを示すルール情報を記憶するルール情報記憶部と、前記第2の抽出部または前記第3の抽出部が抽出した部分から、前記ルール情報に従って一部を削除することによって前記第1のログまたは前記第2のログを集約するログ集約部と、を備えたことを特徴とするログ抽出システムである。
また、本発明のログ抽出システムにおいて、前記ルール情報は、前記アプリケーションの処理内容または前記システムコールの実行内容が類似する部分を削除することを示し、前記ログ集約部は、前記第2の抽出部または前記第3の抽出部が抽出した部分から、前記アプリケーションの処理内容または前記システムコールの実行内容が類似する部分を削除することを特徴とする。
また、本発明のログ抽出システムにおいて、前記ルール情報は、前記アプリケーションの処理内容がガーベージコレクションを示している部分を削除することを示し、前記ログ集約部は、前記第2の抽出部が抽出した部分から、前記アプリケーションの処理内容がガーベージコレクションを示している部分を削除することを特徴とする。
また、本発明のログ抽出システムにおいて、前記ルール情報は、前記システムコールの実行内容がドライバ操作を示している部分を削除することを示し、前記ログ集約部は、前記システムコールの実行内容がドライバ操作を示している部分を削除することを特徴とする。
また、本発明のログ抽出システムにおいて、前記ルール情報は、前記システムコールの実行内容が、前記特定のアプリケーションに割り当てられたディレクトリに対するファイル操作を示している部分を削除することを示し、前記ログ集約部は、前記システムコールの実行内容が、前記特定のアプリケーションに割り当てられたディレクトリに対するファイル操作を示している部分を削除することを特徴とする。
また、本発明は、アプリケーションの識別情報と、前記アプリケーションの処理の際に生成されたプロセスの識別情報と、前記アプリケーションの処理内容とが関連付けられた第1のログを記憶すると共に、前記プロセスの識別情報と、システムコールの実行内容とが関連付けられた第2のログを記憶するログ記憶部と、前記第1のログから、特定のアプリケーションの識別情報と関連付けられた前記プロセスの識別情報を抽出する第1の抽出部と、前記第1のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第2の抽出部と、前記第2のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第3の抽出部と、ログを集約する際のルールを示すルール情報を記憶するルール情報記憶部と、前記第2の抽出部または前記第3の抽出部が抽出した部分から、前記ルール情報に従って一部を削除することによって前記第1のログまたは前記第2のログを集約するログ集約部と、としてコンピュータを機能させるためのプログラムである。
本発明によれば、第2の抽出部または第3の抽出部が抽出した部分から、ルール情報に従って一部を削除し、第1のログまたは第2のログを集約することによって、ログから自動解析や目視による検証に有効な部分を抽出し、不要な部分を削減することができる。
本発明の一実施形態によるログ抽出システムの構成を示すブロック図である。 本発明の一実施形態によるログ抽出システムが有する携帯端末の機能構成を示すブロック図である。 本発明の一実施形態によるログ抽出システムが有するログ解析装置の機能構成を示すブロック図である。 本発明の一実施形態におけるアプリケーションログの内容を示す参考図である。 本発明の一実施形態におけるカーネルログの内容を示す参考図である。 本発明の一実施形態におけるログ解析部の機能構成を示すブロック図である。 本発明の一実施形態におけるプロセスの親子関係を示す参考図である。 本発明の一実施形態によるログ抽出システムの動作の手順を示すシーケンス図である。 本発明の一実施形態におけるアプリケーションの実行ファイルの構成を示す参考図である。 本発明の一実施形態によるログ抽出システムの動作の手順を示すフローチャートである。 本発明の一実施形態におけるマニフェストファイルの内容を示す参考図である。 本発明の一実施形態におけるアプリケーションログの内容を示す参考図である。 本発明の一実施形態におけるカーネルログの内容を示す参考図である。 本発明の一実施形態における集約ルールとして設定される判定条件を示す参考図である。 本発明の一実施形態によるログ抽出システムの動作の手順を示すフローチャートである。 本発明の一実施形態におけるカーネルログの内容を示す参考図である。 本発明の一実施形態におけるファイル記憶部のディレクトリ構造を示す参考図である。 本発明の一実施形態によるログ抽出システムの動作の手順を示すフローチャートである。 本発明の一実施形態におけるカーネルログの内容を示す参考図である。 本発明の一実施形態における不正通信相手リストの内容を示す参考図である。 本発明の一実施形態によるログ抽出システムの変形例の機能構成を示すブロック図である。
以下、図面を参照し、本発明の実施形態を説明する。図1は、本発明の一実施形態によるログ抽出システムの構成を示している。本実施形態によるログ抽出システムは、携帯電話端末、携帯情報端末、スマートフォン等の携帯端末1と、PC等のログ解析装置2とを有する。携帯端末1とログ解析装置2は、RS232C等のケーブル3で接続されており、ログ解析装置2から携帯端末1を操作することができる。本実施形態によるログ抽出システムは、例えば携帯端末用のアプリケーションを通信ネットワーク上で販売する販売サイトを管理する企業に設置される。
図2は携帯端末1の機能構成を示している。携帯端末1は、アプリケーション10、アプリケーションログ生成部11、カーネルログ生成部12、ログ生成制御部13、操作情報制御部14、OS15、ファイル記憶部16、操作部17、表示部18、通信部19、および作業領域W1(ログ記憶部)を有する。
アプリケーション10、アプリケーションログ生成部11、カーネルログ生成部12、ログ生成制御部13、操作情報制御部14、およびOS15は、SRAM等のデバイスで構成される作業領域W1上で動作する。これらの実行ファイル(プログラム)はファイル記憶部16に格納されており、これらの実行ファイルがファイル記憶部16から作業領域W1に読み込まれることで、これらが起動する。なお、作業領域W1では、アプリケーション10等のプロセスのほか、図示していない各種プロセスも起動する。これらのプロセスがOS15にシステムコールの呼び出しを通知し、OS15がシステムコールを呼び出すことによって、各プロセスは、図示していないCPUの資源を利用して各種処理を行う。
アプリケーション10は、OS15に対するシステムコールの呼び出しやOS15からの実行結果の受け取り等を行う。これによって、アプリケーション10は、アプリケーションの処理として規定された各種処理の実行やファイル記憶部16へのアクセス等を行う。
アプリケーションログ生成部11は、アプリケーション10の実行条件や状態に関する情報を記録したアプリケーションログ(第1のログ)を生成する。生成されたアプリケーションログは作業領域W1に保持される。
図4はアプリケーションログの一例を示している。アプリケーションログは、タイムスタンプ400、プロセスID410、プロセスID420、メッセージ種別430、メッセージタグおよびメッセージ本体440からなる。タイムスタンプ400は日付および時刻を含む。1つのタイムスタンプ400、親プロセスID410、プロセスID420、メッセージ種別430、メッセージタグおよびメッセージ本体440の組を記録単位としてアプリケーションの挙動がアプリケーションログに記録される。図4に示す例では、5つの記録単位分のアプリケーションログの内容が示されている。
プロセスは、プロセス起動のシステムコールを呼び出すことによって、他のプロセスを起動することができる。以下では、起動元のプロセスを親プロセスと呼び、親プロセスによって起動されたプロセスを子プロセスと呼ぶ。プロセスID410およびプロセスID420が異なる場合、プロセスID410は親プロセスのプロセスIDを示し、プロセスID420は子プロセスのプロセスIDを示す。プロセスID410およびプロセスID420が同一の場合、それらのプロセスIDを有する記録単位は同一のプロセスの挙動を示している。
カーネルログ生成部12は、アプリケーション10の処理に関連するプロセスが呼び出したシステムコールの情報を記録したカーネルログ(第2のログ)を生成する。生成されたカーネルログは作業領域W1に保持される。
図5はカーネルログの一例を示している。カーネルログは、プロセスID500、メッセージ本体510からなる。1つのプロセスID500とメッセージ本体510の組を記録単位としてシステムコールの情報がカーネルログに記録される。図5に示す例では、5つの記録単位分のカーネルログの内容が示されている。なお、アプリケーションログとカーネルログとでは、プロセスIDの管理体系が異なる。このため、同一のプロセスについて、アプリケーションログに記録されるプロセスIDとカーネルログに記録されるプロセスIDは異なる。
ログ生成制御部13は、アプリケーションログ生成部11およびカーネルログ生成部12を起動する処理を行う。また、ログ生成制御部13は、アプリケーションログおよびカーネルログをログ解析装置2へ送信する処理を行う。
操作情報制御部14は、操作者がログ解析装置2を操作して入力する操作情報に関する制御を行う。具体的には、操作情報制御部14はログ解析装置2と通信を行い、ログ解析装置2に入力された操作内容を示す操作情報を受信し、操作情報の内容を解釈してOS15に通知する。通知を受けたOS15は各種処理を実行する。また、操作情報制御部14は、OS15から処理の実行結果の通知を受け、実行結果を示す実行結果情報をログ解析装置2へ送信する。以下の動作の説明では、実行結果情報に関する処理の説明を省略する。
OS15は、アプリケーション10、アプリケーションログ生成部11、カーネルログ生成部12、ログ生成制御部13、および操作情報制御部14の処理のスケジューリングや作業領域W1の割り当て等を制御すると共に、ファイル記憶部16、操作部17、表示部18、および通信部19の各デバイスの入出力を制御する。
ファイル記憶部16は、フラッシュメモリ等のデバイスで構成され、携帯端末1内で使用する実行ファイル等の各種ファイルを記憶する。操作部17は、キー(ボタン)やスイッチ等のデバイスで構成され、操作者が操作した結果に基づく信号を出力する。表示部18は、液晶表示装置等のデバイスで構成され、携帯端末1で実行された処理の結果や携帯端末1の状態等を表示する。通信部19は、通信モジュール等のデバイスで構成され、ログ解析装置2と通信を行う。
図3はログ解析装置2の機能構成を示している。ログ解析装置2は、ログ解析部20、操作情報制御部21、OS22、ファイル記憶部23(ルール記憶部)、操作部24、表示部25、および通信部26を有する。
ログ解析部20、操作情報制御部21、およびOS22は、SRAM等のデバイスで構成される作業領域W2上で動作する。これらの実行ファイル(プログラム)はファイル記憶部23に格納されており、これらの実行ファイルがファイル記憶部23から作業領域W2に読み込まれることで、これらが起動する。なお、作業領域W2では、ログ解析部20等のプロセスのほか、図示していない各種プロセスも起動する。これらのプロセスがOS22にシステムコールの呼び出しを通知し、OS22がシステムコールを呼び出すことによって、各プロセスは、図示していないCPUの資源を利用して各種処理を行う。
ログ解析部20は、携帯端末1から受信したアプリケーションログおよびカーネルログを解析し、注目するアプリケーションが不正なアプリケーションであるか否かを判定する。
操作情報制御部21は、操作者が操作部24を操作して入力する操作内容に基づく操作情報に関する制御を行う。具体的には、操作情報制御部21は携帯端末1と通信を行い、操作部24に入力された操作内容を示す操作情報を送信し、また、実行結果を示す実行結果情報を受信する。OS22は、ログ解析部20および操作情報制御部21の処理のスケジューリングや作業領域W2の割り当て等を制御すると共に、ファイル記憶部23、操作部24、表示部25、および通信部26の各デバイスの入出力を制御する。
ファイル記憶部23は、ハードディスクドライブ等のデバイスで構成され、ログ解析装置2内で使用する実行ファイル等の各種ファイルを記憶する。操作部24は、キーボードやマウス等のデバイスで構成され、操作者が操作した結果に基づく信号を出力する。表示部25は、液晶表示装置等のデバイスで構成され、実行結果情報に基づく実行結果やログ解析部20の処理結果等を表示する。通信部26は、通信モジュール等のデバイスで構成され、携帯端末1と通信を行う。
図6はログ解析部20の機能構成を示している。ログ解析部20は、プロセスID抽出部20a(第1の抽出部)、アプリケーションログ抽出部20b(第2の抽出部)、カーネルログ抽出部20c(第3の抽出部)、ログ集約部20d、ファイル操作内容抽出部20e、通信内容抽出部20f、判定部20g、および制御部20hを有する。
プロセスID抽出部20aは、注目するアプリケーション10の処理に関するプロセスのプロセスIDをアプリケーションログから抽出する。図7は、プロセスの親子関係の一例を示している。図7では、システム上で最初に起動するinitプロセスが子プロセスを起動し、その子プロセスが親プロセスとして自身の子プロセスを起動する様子が示されている。
一例として、注目するアプリケーション10のプロセス群700のプロセスsshd(プロセスID:2005)はinitプロセスによって起動され、プロセスsshd(プロセスID:1921)およびプロセスsshd(プロセスID:8167)を起動している。プロセスsshd(プロセスID:1921)およびプロセスsshd(プロセスID:8167)もそれぞれ子プロセスを起動している。プロセスID抽出部20aは、注目するアプリケーション10について、親子関係にある各プロセスのプロセスIDを抽出する。すなわち、図7に示す例の場合、プロセスIDとして2005、1921、1931、2333、2345、8167、8323、10940が抽出される。
アプリケーションログ抽出部20bは、プロセスID抽出部20aが抽出したプロセスIDを有する部分、すなわち注目するアプリケーションの処理に関係する部分をアプリケーションログから抽出する。カーネルログ抽出部20cは、プロセスID抽出部20aが抽出したプロセスIDを有する部分、すなわち注目するアプリケーションの処理に関係する部分をカーネルログから抽出する。
ログ集約部20dは、アプリケーションログ抽出部20bが抽出した部分、およびカーネルログ抽出部20cが抽出した部分から、所定の集約ルールに従って不要な部分を削除することによって、アプリケーションログおよびカーネルログを集約する。ファイル記憶部23には、集約ルールを示す集約ルール(ルール情報)が格納されており、ログ集約部20dは、この集約ルールに基づいてログを集約する。
本実施形態のログ解析部20は、ログの自動解析の一例として、アプリケーションが不正であるか否かを判定するアプリケーション判定機能を有している。ファイル操作内容抽出部20e、通信内容抽出部20f、および判定部20gは、アプリケーション判定機能に関する処理を行う。
アプリケーションが処理を実行する際には、端末が有する機能の利用や設定の変更に係る権限が設定され、アプリケーションはその権限の範囲内で処理を実行することが可能である。例えば、一般ユーザ権限が設定された場合、一般ユーザ権限の範囲内で各種処理の実行が可能となる。また、最高権限(管理者権限)であるroot権限(スーパーユーザ権限)が設定された場合、一般ユーザ権限の範囲内で可能な処理に加えて、端末内の重要な設定の変更等が可能となる。
通常、アプリケーションは一般ユーザ権限で動作するように設定されており、一般ユーザ権限が設定されたアプリケーションがアクセスできるディレクトリは限定されている。しかし、不正なアプリケーションはOSの脆弱性を突いてroot権限を不正に取得し、ディレクトリに設定されているアクセス権限(パーミッション)を変更して携帯端末内のディレクトリに自由にアクセスできるようになる。これによって、携帯端末に障害を発生させたり、個人情報を漏洩させたりするなどの不正な行為が行われる。そこで、アプリケーションがディレクトリやファイルにアクセスする挙動を解析することで、注目するアプリケーションが不正なアプリケーションであるか否かを判定することが可能となる。
また、一般ユーザ権限が設定されたアプリケーションが通信できる相手は、端末内のiptablesによって制限されている。しかし、不正なアプリケーションはOSの脆弱性を突いてroot権限を不正に取得し、iptablesによる制限を解除して不正なウェブサイトにアクセスできるようになる。そこで、アプリケーションが通信を行う挙動を解析することで、注目するアプリケーションが不正なアプリケーションであるか否かを判定することが可能となる。
ファイル操作内容抽出部20eは、カーネルログ抽出部20cが抽出した部分から、ファイル操作に関係するシステムコールの実行内容を抽出する。通信内容抽出部20fは、カーネルログ抽出部20cが抽出した部分から、通信(ソケット通信)に関係するシステムコールの実行内容を抽出する。
判定部20gは、ファイル操作内容抽出部20eが抽出したシステムコールの実行内容が、ファイル記憶部16中の特定のディレクトリに対する操作を示しているか否かを判定することによって、注目するアプリケーション10が不正なアプリケーションであるか否かを判定する。また、判定部20gは、通信内容抽出部20fが抽出したシステムコールの実行内容が、特定のIPアドレス(または特定のIPアドレスおよびポート番号)を通信相手とする通信を示しているか否かを判定することによって、注目するアプリケーション10が不正なアプリケーションであるか否かを判定する。
制御部20hは、プロセスID抽出部20a、アプリケーションログ抽出部20b、カーネルログ抽出部20c、ログ集約部20d、ファイル操作内容抽出部20e、通信内容抽出部20f、および判定部20gに対する処理の振り分けの制御を行う。
次に、本実施形態によるログ抽出システムの動作を説明する。図8は、ログ抽出システムの動作の手順を示している。図8に示す動作の開始前、注目するアプリケーションは携帯端末1にインストールされてなく、携帯端末1では操作情報制御部14は起動しているが、アプリケーションログ生成部11、カーネルログ生成部12、およびログ生成制御部13は起動していないものとする。また、図8に示す動作の開始前、ログ解析装置2では、操作情報制御部21は起動しているがログ解析部20は起動していないものとする。
まず、ログ解析装置2において、操作者は操作部24を操作し、アプリケーションログ生成部11およびカーネルログ生成部12を起動する指示を入力する。操作部24が操作されると、OS22は操作部24の操作内容を操作情報制御部21に通知する。操作情報制御部21は、通知された操作内容に基づいて、アプリケーションログ生成部11およびカーネルログ生成部12を起動するための操作情報であるログ生成部起動指示を生成する。このログ生成部起動指示は通信部26から携帯端末1へ送信される(ステップS100)。
携帯端末1において、通信部19はログ生成部起動指示を受信する(ステップS105)。OS15は、ログ生成部起動指示を操作情報制御部14に通知し、操作情報制御部14は、ログ生成部起動指示に基づいて、ログ生成制御部13を起動するためのシステムコールの呼び出しをOS15に通知する。OS15はログ生成制御部13を起動し、起動したログ生成制御部13はアプリケーションログ生成部11およびカーネルログ生成部12を起動する(ステップS110)。起動したアプリケーションログ生成部11およびカーネルログ生成部12はログの生成を開始する。
続いて、ログ解析装置2において、操作者は操作部24を操作し、判定対象のアプリケーションをインストールする指示を入力する。操作部24が操作されると、OS22は操作部24の操作内容を操作情報制御部21に通知する。操作情報制御部21は、通知された操作内容に基づいて、判定対象のアプリケーションの圧縮ファイルをファイル記憶部23から読み出す。この圧縮ファイルは通信部26から携帯端末1へ送信される(ステップS115)。
携帯端末1において、通信部19はアプリケーションの圧縮ファイルを受信する(ステップS120)。続いて、アプリケーションのインストールが実行され、伸張されたアプリケーションの実行ファイルがファイル記憶部16に格納される(ステップS125)。
図9はアプリケーションの実行ファイルの構成を示している。図9に示すように実行ファイル900は、命令列を含む実行コード901、アプリケーションのパッケージ名称やアプリケーションが利用するコンポーネント等の情報を含むマニフェストファイル902、実行コード901の実行時に参照されるライブラリ903、およびパラメータ904等のファイルで構成されている。
アプリケーションのインストール後、操作者は操作部17を操作し、アプリケーションを起動する指示を入力する。操作部17が操作されると、OS15はアプリケーション10を起動する(ステップS130)。アプリケーション10の挙動は、アプリケーションログ生成部11によってアプリケーションログとして記録されると共に、カーネルログ生成部12によってカーネルログとして記録される。
続いて、ログ解析装置2において、操作者は操作部24を操作し、ログを送信する指示を入力する。操作部24が操作されると、OS22は操作部24の操作内容を操作情報制御部21に通知する。操作情報制御部21は、通知された操作内容に基づいて、ログを送信するための操作情報であるログ送信指示を生成する。このログ送信指示は通信部26から携帯端末1へ送信される(ステップS135)。
携帯端末1において、通信部19はログ送信指示を受信する(ステップS140)。OS15は、ログ送信指示を操作情報制御部14に通知し、操作情報制御部14は、ログ送信指示に基づいて、OS15を介してログ生成制御部13にログの送信を指示する。ログ生成制御部13は、アプリケーションログおよびカーネルログを送信する処理を行う。アプリケーションログおよびカーネルログは通信部19からログ解析装置2へ送信される(ステップS145)。
ログ解析装置2において、通信部19はアプリケーションログおよびカーネルログを受信する(ステップS150)。受信されたアプリケーションログおよびカーネルログは作業領域W2に保持される。続いて、操作者は操作部24を操作し、ログを解析する指示を入力する。操作部24が操作されると、OS22はログ解析部20を起動する(ステップS155)。ログ解析部20は、アプリケーションログおよびカーネルログを集約する(ステップS160)。
図10は、ステップS160におけるログ解析部20の動作の詳細を示している。前述したように、ファイル記憶部23にはアプリケーションの圧縮ファイルが格納されている。プロセスID抽出部20aは、ファイル記憶部23からアプリケーションの圧縮ファイルを読み出して伸張し、図9に示したマニフェストファイル902から、アプリケーションを識別するパッケージ名称を取得する(ステップS200)。
図11はマニフェストファイルの一例を示している。「package=」に続く文字列1100がパッケージ名称を示している。プロセスID抽出部20aは、マニフェストファイルから「package=」という文字列を検索し、その文字列に続く「"」で挟まれた文字列をパッケージ名称として取得する。なお、携帯端末1からアプリケーションログおよびカーネルログと共にマニフェストファイルをログ解析装置2へ送信し、ログ解析装置2においてログの解析に使用するようにしてもよい。
続いて、プロセスID抽出部20aは、アプリケーションログから、パッケージ名称と一致する文字列を有する部分を抽出し、抽出した部分からプロセスIDを抽出する(ステップS205)。図12はアプリケーションログの一例を示している。プロセスの起動を示す「Start Proc」に続く文字列1200がパッケージ名称を示している。さらに、「pid=」に続く数字1210が、アプリケーション10が起動したプロセスのプロセスIDを示している。プロセスID抽出部20aは、アプリケーションログから「Start Proc」という文字列を検索し、その文字列に続く空白で挟まれた文字列が、ステップS200で取得したパッケージ名称と一致する場合に、そのパッケージ名称に続く部分から「pid=」という文字列を検索し、その文字列に続く数字をプロセスIDとして取得する。このプロセスIDは、カーネルログの管理体系におけるプロセスIDと一致する。
続いて、プロセスID抽出部20aは、ステップS205で抽出したプロセスIDを親プロセスのプロセスID(以下、親プロセスIDとする)とし、カーネルログから子プロセスのプロセスID(以下、子プロセスIDとする)を抽出する(ステップS210)。カーネルログにおいて、プロセスの生成に関するシステムコールが記録された部分には、親プロセスと子プロセスも記録されている。本実施形態では、プロセスの生成に関するシステムコールとして、forkに注目する。
図13はカーネルログの一例を示している。1つの記録単位1300のメッセージ本体に、プロセスの生成に関するシステムコールを示す「fork」が記録されている。また、メッセージ本体の前のプロセスID「1391」が親プロセスIDを示し、メッセージ本体の最後尾のプロセスID「1392」が子プロセスIDを示す。プロセスID抽出部20aは、カーネルログから、「fork」の文字列を検索し、それらのいずれかの文字列を含むメッセージ本体の直前の親プロセスIDが、ステップS205で抽出したプロセスIDと一致する場合に、メッセージ本体の最後尾のプロセスIDを子プロセスIDとして抽出する。プロセスID抽出部20aは、抽出した子プロセスIDを親プロセスIDとして、上記のようにして子プロセスIDを抽出する処理を繰り返す。
続いて、アプリケーションログ抽出部20bは、ステップS205,S210で抽出したプロセスIDと一致するプロセスIDが行の先頭に記録されている部分(記録単位)をアプリケーションログから抽出する(ステップS215)。ステップS205,S210で抽出したプロセスIDは、注目するアプリケーション10に関連するプロセスのプロセスIDであるため、ステップS215で抽出した部分は、アプリケーション10の挙動を示している。
続いて、カーネルログ抽出部20cは、ステップS205,S210で抽出したプロセスIDと一致するプロセスIDが行の先頭に記録されている部分(記録単位)をカーネルログから抽出する(ステップS220)。ステップS205,S210で抽出したプロセスIDは、注目するアプリケーション10に関連するプロセスのプロセスIDであるため、ステップS220で抽出した部分は、アプリケーション10の挙動を示している。
続いて、ログ集約部20dは、ファイル記憶部23から集約ルールを読み出し、集約ルールに基づいて、アプリケーションログ抽出部20bがアプリケーションログから抽出した部分の集約を行うと共に、カーネルログ抽出部20cがカーネルログから抽出した部分の集約を行う(ステップS225)。以下、アプリケーションログとカーネルログに分けて集約方法を説明する。
図14は、集約ルールとして設定される判定条件を示している。図14(a)はアプリケーションログに係る判定条件を示している。第1の判定条件は、類似する内容を削除するための判定条件である。同一のシステムコール(関数)の処理によって、類似した内容が連続してログに記録されることがあるため、そのような内容が記録された部分は削除される。具体的には、アプリケーションログの記録単位の種別が1つ前の記録単位の種別と一致し、メッセージタグが1つ前の記録単位のメッセージタグと一致し、メッセージ本体の先頭8文字が1つ前の記録単位のメッセージ本体の先頭8文字と一致する場合に、その記録単位が削除される。
第1の判定条件は、アプリケーションの処理用に動的に確保したメモリ領域のうち不要になったものを開放するガーベージコレクションに関する部分を削除するための判定条件である。ガーベージコレクションはアプリケーションの不正判定に関係しない動作であるため、ガーベージコレクションに関する記録は削除される。具体的には、判定条件が示すように、アプリケーションログの記録単位の種別が「D」であって、メッセージタグが「dalvik」であって、メッセージ本体が「GC」から始まっている場合に、その記録単位が削除される。
図14(b)はカーネルログに係る判定条件を示している。第1の判定条件は、類似する内容を削除するための条件である。具体的には、カーネルログの記録単位のプロセスIDが1つ前の記録単位のプロセスIDと一致し、メッセージ本体の先頭8文字が1つ前の記録単位のメッセージ本体の先頭8文字と一致する場合に、その記録単位が削除される。
第2〜第4の判定条件は、明確に安全であると定義することができる処理に関する内容を削除するための条件である。第2および第3の判定条件は、周辺機器を制御するためのプログラムであるドライバ(デバイスドライバ)の操作(組み込みおよび取り外し)に関する部分を削除するための条件である。具体的には、第2の判定条件では、ドライバ操作に関するシステムコールであるopenに関する記録単位について、openの引数(ドライバのプログラムの格納場所を示す)が「/dev/ashmem」である場合に、その記録単位が削除される。また、第3の判定条件では、openに関する記録単位について、openの引数が「/dev/binder」を含んでいる場合に、その記録単位が削除される。
第4の判定条件は、アプリケーションが、自身に割り当てられたディレクトリに対して行うファイル操作に関する内容を削除するための条件である。図17を参照して後述するが、アプリケーションは、通常、自身に割り当てられたディレクトリおよびそのディレクトリ下にあるディレクトリにしかアクセスすることができない。したがって、第4の判定条件では、ファイル操作に関するシステムコールであるreadまたはwriteに関する記録単位について、readまたはwriteの引数が「/home/data/app/aaa」(aaaはアプリケーションのパッケージ名称)である場合に、その記録単位が削除される。
カーネルログに関しては、本実施形態では、以下で説明する特定のシステムコールに注目してログの集約を行う。このため、ステップS220でカーネルログ抽出部20cがカーネルログから抽出した部分のうち、特定のシステムコールに関する部分をさらに抽出した上でログの集約を行う。本実施形態では、fork等のプロセス制御のシステムコールと、read、write、open等のファイル操作のシステムコールと、connect、recv、send等のソケット通信のシステムコールとに注目する。特定のシステムコールに関する部分を抽出する方法は、後述するファイル操作内容抽出部20e、通信内容抽出部20fが使用する方法と同様である。
ステップS225においてログ集約部20dは、上記のようにして、アプリケーションログ抽出部20bがアプリケーションログから抽出した部分およびカーネルログ抽出部20cがカーネルログから抽出した部分の集約を行い、集約後の部分からなるアプリケーションログおよびカーネルログをファイル記憶部23に保存する。このとき、ステップS205,S210で抽出したプロセスIDを含む付加情報がファイル記憶部23に保存される。
集約されたアプリケーションログおよびカーネルログは自動解析または目視による検証に使用される。目視による検証では、集約後のアプリケーションログおよびカーネルログがファイル記憶部23から読み出され、表示部25にその内容が表示される。操作者は、表示された各ログの内容に基づいて、目視でアプリケーションの挙動を検証する。アプリケーションログには、カーネルログには記録されないアプリケーションのエラーメッセージが記録されており、カーネルログには、アプリケーションログには記録されないシステムコールの実行内容が記録されており、同一のアプリケーションの挙動に関するアプリケーションログとカーネルログを関連付けて検証することで、アプリケーションの挙動を詳細に調べることができる。また、目視による検証に不要な部分が削除されているため、検証を効率的に行うことができる。
本実施形態では、自動解析を行うことも可能である。以下では、集約後のカーネルログに基づく自動解析の一例を説明する。図15は、自動解析におけるログ解析部20の第1の動作例を示している。
ファイル操作内容抽出部20eは、ファイル記憶部23から集約後のカーネルログおよび付加情報を読み出し、読み出したカーネルログから、ファイル操作に関するシステムコールの実行内容を抽出する(ステップS300)。本実施形態では、ファイル操作に関するシステムコールとして、read、write、およびopenに注目する。
図16は、openが記録されたカーネルログの一例を示している。1記録単位分に相当する部分1600には、システムコールを呼び出したプロセスのプロセスID(695)と、システムコールを識別するシステムコール名称(open)と、システムコールの実行内容とが記録されている。システムコールの実行内容には、システムコールによってアクセスされたディレクトリの名称(/data/data/xxx/yyy/zzz)が含まれる。ファイル操作内容抽出部20eは、付加情報に含まれるプロセスIDと一致するプロセスIDを行の先頭に有し、「read」、「write」、および「open」のいずれかと一致する文字列をメッセージ本体に有する記録単位があった場合に、その記録単位のメッセージ本体(記録単位全体でもよい)をシステムコールの実行内容として抽出する。
続いて、判定部20gは、ステップS300で抽出したシステムコールの実行内容に基づいて、注目するアプリケーション10が不正なアプリケーションであるか否かを判定する(ステップS305)。この判定には、不正なアプリケーションが行うファイル操作に基づいて予め定義した不正ファイル操作ルールが用いられる。不正ファイル操作ルールはファイル記憶部23に格納されている。
携帯端末向けのオープンプラットフォームでは、アプリケーションがアクセスできるディレクトリは、そのアプリケーション専用に割り当てられた特定の領域に制限されている。図17は、ファイル記憶部16のディレクトリ構成を示している。ファイル記憶部16には階層構造を有するディレクトリが作成されている。ディレクトリD1には、インストールされたアプリケーションの実行ファイルが格納される。また、ディレクトリD2は、各アプリケーションが用いるデータを保管するディレクトリであり、ディレクトリD2の下に、各アプリケーションの名称と同じ名称を有するディレクトリD3a〜D3cが並んでいる。
アプリケーションは、通常、そのアプリケーションに対応するディレクトリおよびそのディレクトリ下にあるディレクトリにしかアクセスすることができない。したがって、自身に専用に割り当てられたディレクトリとは異なる、他のアプリケーションに専用に割り当てられたディレクトリにアクセスするアプリケーションは不正なアプリケーションである。
また、図17において、領域ROMは、OS等の重要なファイルが格納されている領域であり、一般ユーザ権限が設定されたアプリケーションがアクセスできないよう、領域ROMにはアクセス権限(パーミッション)が設定されている。このアクセス権限の変更は、root権限を有する場合のみ可能である。root権限を不正に取得した悪意のアプリケーションは、領域ROMのアクセス権限を変更し、領域ROMの重要なファイルにアクセスする。したがって、root権限を不正に取得して領域ROMにアクセスするアプリケーションは不正なアプリケーションである。
不正ファイル操作ルールには、各アプリケーションがアクセスしてはならない上記のようなディレクトリの名称が含まれる。すなわち、不正ファイル操作ルールには、ディレクトリD2下のディレクトリであって、注目するアプリケーション以外のアプリケーション専用のディレクトリの名称と、図17の領域ROMに含まれるディレクトリの名称とが含まれる。
判定部20gは、ステップS300で抽出したシステムコールの実行内容の文字列と、不正ファイル操作ルールに含まれる文字列とを比較し、ステップS300で抽出したシステムコールの実行内容の文字列の中に、不正ファイル操作ルールに含まれる文字列と一致する文字列があった場合、注目するアプリケーションが不正なアプリケーションであると判定する。また、ステップS300で抽出したシステムコールの実行内容の文字列の中に、不正ファイル操作ルールに含まれる文字列と一致する文字列がなかった場合、判定部20gは、注目するアプリケーションが不正なアプリケーションではないと判定する。
上記の判定において、不正ファイル操作ルールの内容に基づいて、不正なアプリケーションの種別を識別してもよい。例えば、ステップS300で抽出したシステムコールの実行内容の文字列の中に、注目するアプリケーション以外のアプリケーション専用のディレクトリの名称と一致する文字列があった場合、注目するアプリケーションが、他のアプリケーションによって管理される個人情報等にアクセスする情報漏洩タイプのアプリケーションであると識別することができる。また、ステップS300で抽出したシステムコールの実行内容の文字列の中に、図17の領域ROMに含まれるディレクトリの名称と一致する文字列があった場合、注目するアプリケーションが、root権限を不正に取得するタイプのアプリケーションであると識別することができる。上記の判定結果に応じて、不正なアプリケーションの種別を示す種別情報を生成し、判定結果と共にファイル記憶部23に保存してもよい。
図18は、自動解析におけるログ解析部20の第2の動作例を示している。通信内容抽出部20fは、ファイル記憶部23から集約後のカーネルログおよび付加情報を読み出し、読み出したカーネルログから、通信(ソケット通信)に関するシステムコールの実行内容を抽出する(ステップS400)。本実施形態では、通信に関するシステムコールとして、recv、connect、およびsendに注目する。
図19は、connectが記録されたカーネルログの一例を示している。1記録単位分に相当する部分1900には、システムコールを呼び出したプロセスのプロセスID(5205)と、システムコールを識別するシステムコール名称(connect)と、システムコールの実行内容とが記録されている。システムコールの実行内容には、システムコールによって実行された通信の相手のIPアドレス(aaa.bbb.ccc.ddd)とポート番号(xx)が含まれる。通信内容抽出部20fは、付加情報に含まれるプロセスIDと一致するプロセスIDを行の先頭に有し、「recv」、「connect」、および「send」のいずれかと一致する文字列をメッセージ本体に有する記録単位があった場合に、その記録単位のメッセージ本体(記録単位全体でもよい)をシステムコールの実行内容として抽出する。
続いて、判定部20gは、ステップS400で抽出したシステムコールの実行内容に基づいて、注目するアプリケーション10が不正なアプリケーションであるか否かを判定する(ステップS405)。この判定には、不正なアプリケーションが行う通信に基づいて予め定義した不正通信相手リストが用いられる。不正通信相手リストはファイル記憶部23に格納されている。
インターネット上では、フィッシングサイトやウイルス感染サイト等、悪性のウェブサイトの情報をブラックリストとして公表しているウェブサイトがある。このウェブサイトから、不正な通信相手のIPアドレス等を取得することが可能である。また、既知の不正なアプリケーションが通信を行ったときの挙動を解析することによって、そのアプリケーションが通信を行った際の通信相手のIPアドレス等を取得することが可能である。上記のようにして取得したIPアドレス等が不正通信相手リストに記録されている。
図20は不正通信相手リストの一例を示している。不正通信相手リストには、IPアドレス、ポート番号、FQDN(Fully Qualified Domain Name)、および種別が含まれる。IPアドレス、ポート番号、およびFQDNは、不正なアプリケーションが行う通信の相手(宛先)の情報である。2つのIPアドレスが「〜」で結ばれている場合は、2つのIPアドレスを起点および終点とするIPアドレスの範囲を示している。種別は、通信の種別を示している。
判定部20gは、ステップS400で抽出したシステムコールの実行内容から「sin_addr=inet_addr」という文字列を検索し、その文字列に続く部分から、「"」で挟まれた数字列を通信相手のIPアドレスとして取得する。また、判定部20gは、ステップS400で抽出したシステムコールの実行内容から「sin_port=htons」という文字列を検索し、その文字列に続く「(」と「)」で挟まれた数字をポート番号として取得する。
さらに、判定部20gは、システムコールの実行内容から取得したIPアドレスとポート番号との組合せを、不正通信相手リストに含まれるIPアドレスとポート番号との組合せと比較する。システムコールの実行内容から取得したIPアドレスとポート番号との組合せが、不正通信相手リストに含まれるIPアドレスとポート番号との組合せのいずれかと一致した場合、判定部20gは、注目するアプリケーションが不正なアプリケーションであると判定する。また、システムコールの実行内容から取得したIPアドレスとポート番号との組合せが、不正通信相手リストに含まれるIPアドレスとポート番号との組合せのいずれとも一致しなかった場合、判定部20gは、注目するアプリケーションが不正なアプリケーションではないと判定する。なお、不正通信相手リストにIPアドレスは記録されているがポート番号は記録されていない場合、IPアドレスのみについて、上記と同様の判定が行われる。
上記の判定において、不正通信相手リストに含まれる通信相手の種別に基づいて、不正なアプリケーションの種別を識別してもよい。例えば、ステップS400で抽出したシステムコールの実行内容が、広告サイトとの通信として不正通信相手リストに記録されている場合、注目するアプリケーションが、広告サイトへ誘導する通信を行うタイプのアプリケーションであると識別することができる。また、ステップS400で抽出したシステムコールの実行内容が、ボットネットの通信として不正通信相手リストに記録されている場合、注目するアプリケーションが、マルウェア感染を企むボットネットと通信を行うタイプのアプリケーションであると識別することができる。上記の判定結果に応じて、不正なアプリケーションの種別を示す種別情報を生成し、判定結果と共にファイル記憶部23に保存してもよい。
次に、本実施形態の変形例を説明する。ログ解析装置2におけるログ解析の機能を携帯端末1が有していてもよい。図21は、ログ解析の機能を実装した携帯端末の機能構成を示している。図21に示す携帯端末1aは、図2に示した携帯端末1の構成に加えて、図3に示したログ解析装置2が有するログ解析部20を有している。アプリケーション10の起動後、ログ解析部20は、作業領域W1に保持されているアプリケーションログおよびカーネルログに基づいて、図10に示した処理を行う。なお、マニフェストファイルは、ファイル記憶部16に格納されているアプリケーションの実行ファイルから取得される。また、ファイル記憶部16には集約ルールや、不正ファイル操作ルール、不正通信相手リストが格納されている。
また、ログ解析装置2はログの収集機能とログの解析機能とを有しているが、ログの収集機能をログ解析装置2とは別の装置に持たせてもよい。例えば、携帯端末1からログを収集する機能を有する端末を用意し、ログ解析装置2はその端末からログを受信して解析を行う。
上述した携帯端末1,1aおよびログ解析装置2の各機能は、各装置の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより、実現される。ここで、「コンピュータ」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
上述したように、本実施形態によれば、アプリケーションの挙動を記録したアプリケーションログおよびカーネルログから自動解析や目視による検証に有効な部分を抽出し、不要な部分を削減することができる。このため、ログ解析装置2のディスク容量の削減や、解析に要する時間あるいは計算量の削減、目視による検証の効率的な実行が可能となる。
また、本実施形態によれば、注目するアプリケーションが不正であるか否かを判定することができる。特に、注目するアプリケーションの挙動に対応するプロセス以外のプロセスに関する多量の冗長な情報を解析対象から排除することが可能となるので、アプリケーションログおよびカーネルログの解析を効率的に行うことができ、注目するアプリケーションが不正であるか否かを判定する際の判定精度を向上することができる。
また、カーネルログから、親プロセスIDと関連付けられた子プロセスIDを抽出し、ログの解析に用いることによって、アプリケーションの挙動をより詳細に解析することができ、注目するアプリケーションが不正であるか否かを判定する際の判定精度を向上することができる。
また、カーネルログに記録されたシステムコールの実行内容が、root権限を有している場合に操作が可能なディレクトリ(図17の領域ROMのディレクトリ)に対する操作を示しているか否か、あるいはファイル記憶部16において特定のアプリケーションに割り当てられたディレクトリ(図17のディレクトリD3a〜D3c)に対する操作を示しているか否かを判定することによって、携帯端末のroot権限を奪うアプリケーションや、個人情報を漏洩させるアプリケーションを検出することができる。
また、カーネルログに記録されたシステムコールの実行内容が、既知の悪性ウェブサイトのIPアドレスを通信相手とする通信を示しているか否か、あるいは既知の悪性アプリケーションの挙動を解析して得られるIPアドレスを通信相手とする通信を示しているか否かを判定することによって、広告サイトへ誘導する通信を行うアプリケーションや、マルウェア感染を企むボットネットと通信を行うアプリケーション等の不正なアプリケーションを検出することができる。
また、カーネルログに記録されたシステムコールの実行内容からIPアドレスとポート番号を抽出し、不正通信相手リストに含まれるIPアドレスとポート番号の組合せと一致するか否かを判定することによって、通信プロトコル毎に通信相手を区別して詳細に判定を行うことができる。
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
1,1a・・・携帯端末、2・・・ログ解析装置、3・・・ケーブル、10・・・アプリケーション、11・・・アプリケーションログ生成部、12・・・カーネルログ生成部、13・・・ログ生成制御部、14,21・・・操作情報制御部、15,22・・・OS、16,23・・・ファイル記憶部、17,24・・・操作部、18,25・・・表示部、19,26・・・通信部、20・・・ログ解析部、20a・・・プロセスID抽出部、20b・・・アプリケーションログ抽出部、20c・・・カーネルログ抽出部、20d・・・ログ集約部、20e・・・ファイル操作内容抽出部、20f・・・通信内容抽出部、20g・・・判定部、20h・・・制御部、W1,W2・・・作業領域

Claims (6)

  1. アプリケーションの識別情報と、前記アプリケーションの処理の際に生成されたプロセスの識別情報と、前記アプリケーションの処理内容とが関連付けられた第1のログを記憶すると共に、前記プロセスの識別情報と、システムコールの実行内容とが関連付けられた第2のログを記憶するログ記憶部と、
    前記第1のログから、特定のアプリケーションの識別情報と関連付けられた前記プロセスの識別情報を抽出する第1の抽出部と、
    前記第1のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第2の抽出部と、
    前記第2のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第3の抽出部と、
    ログを集約する際のルールを示すルール情報を記憶するルール情報記憶部と、
    前記第2の抽出部または前記第3の抽出部が抽出した部分から、前記ルール情報に従って一部を削除することによって前記第1のログまたは前記第2のログを集約するログ集約部と、
    を備えたことを特徴とするログ抽出システム。
  2. 前記ルール情報は、前記アプリケーションの処理内容または前記システムコールの実行内容が類似する部分を削除することを示し、
    前記ログ集約部は、前記第2の抽出部または前記第3の抽出部が抽出した部分から、前記アプリケーションの処理内容または前記システムコールの実行内容が類似する部分を削除する
    ことを特徴とする請求項1に記載のログ抽出システム。
  3. 前記ルール情報は、前記アプリケーションの処理内容がガーベージコレクションを示している部分を削除することを示し、
    前記ログ集約部は、前記第2の抽出部が抽出した部分から、前記アプリケーションの処理内容がガーベージコレクションを示している部分を削除する
    ことを特徴とする請求項1に記載のログ抽出システム。
  4. 前記ルール情報は、前記システムコールの実行内容がドライバ操作を示している部分を削除することを示し、
    前記ログ集約部は、前記システムコールの実行内容がドライバ操作を示している部分を削除する
    ことを特徴とする請求項1に記載のログ抽出システム。
  5. 前記ルール情報は、前記システムコールの実行内容が、前記特定のアプリケーションに割り当てられたディレクトリに対するファイル操作を示している部分を削除することを示し、
    前記ログ集約部は、前記システムコールの実行内容が、前記特定のアプリケーションに割り当てられたディレクトリに対するファイル操作を示している部分を削除する
    ことを特徴とする請求項1に記載のログ抽出システム。
  6. アプリケーションの識別情報と、前記アプリケーションの処理の際に生成されたプロセスの識別情報と、前記アプリケーションの処理内容とが関連付けられた第1のログを記憶すると共に、前記プロセスの識別情報と、システムコールの実行内容とが関連付けられた第2のログを記憶するログ記憶部と、
    前記第1のログから、特定のアプリケーションの識別情報と関連付けられた前記プロセスの識別情報を抽出する第1の抽出部と、
    前記第1のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第2の抽出部と、
    前記第2のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第3の抽出部と、
    ログを集約する際のルールを示すルール情報を記憶するルール情報記憶部と、
    前記第2の抽出部または前記第3の抽出部が抽出した部分から、前記ルール情報に従って一部を削除することによって前記第1のログまたは前記第2のログを集約するログ集約部と、
    としてコンピュータを機能させるためのプログラム。
JP2010157819A 2010-07-12 2010-07-12 ログ抽出システムおよびプログラム Active JP5478390B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010157819A JP5478390B2 (ja) 2010-07-12 2010-07-12 ログ抽出システムおよびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010157819A JP5478390B2 (ja) 2010-07-12 2010-07-12 ログ抽出システムおよびプログラム

Publications (2)

Publication Number Publication Date
JP2012022380A true JP2012022380A (ja) 2012-02-02
JP5478390B2 JP5478390B2 (ja) 2014-04-23

Family

ID=45776651

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010157819A Active JP5478390B2 (ja) 2010-07-12 2010-07-12 ログ抽出システムおよびプログラム

Country Status (1)

Country Link
JP (1) JP5478390B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012083909A (ja) * 2010-10-08 2012-04-26 Kddi Corp アプリケーション特性解析装置およびプログラム
JP2015519789A (ja) * 2012-04-10 2015-07-09 クアルコム,インコーポレイテッド 移動局における悪意のあるアクティビティ検出のための方法
WO2017038221A1 (ja) * 2015-09-04 2017-03-09 株式会社網屋 コンピュータ装置の動作記録の解析、翻訳を行い、監査に対する情報の出力及びシステムの傾向分析装置。
WO2017081865A1 (ja) * 2015-11-13 2017-05-18 日本電気株式会社 ログ分析システム、方法、及び記録媒体
CN108388496A (zh) * 2018-01-23 2018-08-10 晶晨半导体(上海)股份有限公司 一种系统日志的收集方法
WO2021111681A1 (ja) * 2019-12-05 2021-06-10 パナソニックIpマネジメント株式会社 情報処理装置、制御方法及びプログラム
US11366907B2 (en) 2016-10-14 2022-06-21 Nec Corporation Malware analysis device, malware analysis method, and storage medium having malware analysis program contained therein

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012083909A (ja) * 2010-10-08 2012-04-26 Kddi Corp アプリケーション特性解析装置およびプログラム
JP2015519789A (ja) * 2012-04-10 2015-07-09 クアルコム,インコーポレイテッド 移動局における悪意のあるアクティビティ検出のための方法
WO2017038221A1 (ja) * 2015-09-04 2017-03-09 株式会社網屋 コンピュータ装置の動作記録の解析、翻訳を行い、監査に対する情報の出力及びシステムの傾向分析装置。
JP2017049962A (ja) * 2015-09-04 2017-03-09 株式会社網屋 コンピュータ装置の動作記録の解析、翻訳を行い、監査に対する情報の出力及びシステムの傾向分析装置。
WO2017081865A1 (ja) * 2015-11-13 2017-05-18 日本電気株式会社 ログ分析システム、方法、及び記録媒体
JPWO2017081865A1 (ja) * 2015-11-13 2018-08-30 日本電気株式会社 ログ分析システム、方法、及び記録媒体
US11366907B2 (en) 2016-10-14 2022-06-21 Nec Corporation Malware analysis device, malware analysis method, and storage medium having malware analysis program contained therein
CN108388496A (zh) * 2018-01-23 2018-08-10 晶晨半导体(上海)股份有限公司 一种系统日志的收集方法
WO2021111681A1 (ja) * 2019-12-05 2021-06-10 パナソニックIpマネジメント株式会社 情報処理装置、制御方法及びプログラム
JP2021089632A (ja) * 2019-12-05 2021-06-10 パナソニックIpマネジメント株式会社 情報処理装置、制御方法及びプログラム
JP7241281B2 (ja) 2019-12-05 2023-03-17 パナソニックIpマネジメント株式会社 情報処理装置、制御方法及びプログラム
US11615183B2 (en) 2019-12-05 2023-03-28 Panasonic Intellectual Property Management Co., Ltd. Information processing device, control method, and recording medium for detecting an anomaly in behavior of an application operating on a device in a mobility

Also Published As

Publication number Publication date
JP5478390B2 (ja) 2014-04-23

Similar Documents

Publication Publication Date Title
Wei et al. Deep ground truth analysis of current android malware
US20210157920A1 (en) Dynamic analysis techniques for applications
Malik et al. CREDROID: Android malware detection by network traffic analysis
Zhou et al. Dissecting android malware: Characterization and evolution
JP5478390B2 (ja) ログ抽出システムおよびプログラム
KR101558715B1 (ko) 서버 결합된 멀웨어 방지를 위한 시스템 및 방법
Jiang et al. Android malware
CN102306256B (zh) 对获取的文件进行信誉检查
Liu et al. On manually reverse engineering communication protocols of linux-based iot systems
US10142343B2 (en) Unauthorized access detecting system and unauthorized access detecting method
JP5144488B2 (ja) 情報処理システムおよびプログラム
US12026256B2 (en) Context-based analysis of applications
CN111163095B (zh) 网络攻击分析方法、网络攻击分析装置、计算设备和介质
JP2012008732A (ja) インストール制御装置およびプログラム
Tang et al. {iOS}, your {OS}, everybody's {OS}: Vetting and analyzing network services of {iOS} applications
Blasco et al. Automated generation of colluding apps for experimental research
CN104239798B (zh) 移动办公系统及其杀毒方法和系统中的移动端、服务器端
JP5478384B2 (ja) アプリケーション判定システムおよびプログラム
JP2011233081A (ja) アプリケーション判定システムおよびプログラム
Cao et al. Rotten apples spoil the bunch: An anatomy of Google Play malware
Kazdagli et al. Morpheus: Benchmarking computational diversity in mobile malware
Heid et al. Android Data Storage Locations and What App Developers Do with It from a Security and Privacy Perspective.
JP5478381B2 (ja) アプリケーション判定システムおよびプログラム
Spreitzenbarth Dissecting the Droid: Forensic analysis of android and its malicious applications
Oliveira et al. Honeypotlabsac: a virtual honeypot framework for android

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140210

R150 Certificate of patent or registration of utility model

Ref document number: 5478390

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150