JP5478390B2 - Log extraction system and program - Google Patents
Log extraction system and program Download PDFInfo
- Publication number
- JP5478390B2 JP5478390B2 JP2010157819A JP2010157819A JP5478390B2 JP 5478390 B2 JP5478390 B2 JP 5478390B2 JP 2010157819 A JP2010157819 A JP 2010157819A JP 2010157819 A JP2010157819 A JP 2010157819A JP 5478390 B2 JP5478390 B2 JP 5478390B2
- Authority
- JP
- Japan
- Prior art keywords
- log
- application
- unit
- extraction
- identification information
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、アプリケーション実行時の処理を記録したログを処理するログ抽出システムに関する。また、本発明は、本ログ抽出システムとしてコンピュータを機能させるためのプログラムに関する。 The present invention relates to a log extraction system that processes a log in which processing at the time of application execution is recorded. The present invention also relates to a program for causing a computer to function as the log extraction system.
オープンプラットフォームと呼ばれる汎用的なOS(オペレーティングシステム)を採用する携帯端末の普及に伴い、多くの携帯端末向けのアプリケーションが、通信ネットワーク(インターネット)上の専用サイトや個人サイトを通じて販売および配布されている。汎用OSを採用した携帯端末向けのアプリケーションは、既存の専用組み込みOSを採用した携帯端末向けのアプリケーションと比較して、開発や配布を容易に行うことができる。 With the widespread use of mobile terminals that use a general-purpose OS (operating system) called an open platform, many applications for mobile terminals are sold and distributed through dedicated sites and personal sites on the communication network (Internet). . Applications for mobile terminals that use a general-purpose OS can be developed and distributed more easily than applications for mobile terminals that use an existing dedicated embedded OS.
しかし、これに伴って、利用者の個人情報の窃盗や、悪性サイトへの誘導、OSの管理者権限の奪取など、利用者が意図せず不利益を被る可能性のある振る舞いを行うアプリケーションも登場している。よって、アプリケーションの安全性を事前に検証し、不正なアプリケーションを検知することは、利用者が安心してアプリケーションを利用できる環境の実現に有効であると共に、安全性を検証したアプリケーションを提供することで、他社との差別化を図ることも可能であり、重要な技術となる。 However, along with this, there are also applications that perform behavior that may cause the user's unintentional disadvantage, such as stealing personal information of the user, guiding to a malicious site, and taking over the administrator authority of the OS. Has appeared. Therefore, verifying the safety of an application in advance and detecting an unauthorized application is effective for realizing an environment where users can use the application with peace of mind, and providing an application with verified safety. It is also possible to differentiate from other companies, which is an important technology.
特許文献1には、携帯電話などの端末にアプリケーションをダウンロードする際にアプリケーションの認証を行うことで、不正なアプリケーションが端末内で実行されることを防止する技術が記載されている。
注目するアプリケーションが不正なアプリケーションであるか否かを判定する方法の一つとして、アプリケーションが実行されたときのアプリケーションの挙動を解析する方法が考えられる。アプリケーションの挙動を記録したログとして、アプリケーションログとカーネルログがある。アプリケーションログは、アプリケーションの実行条件や状態に関する情報を記録したログである。カーネルログは、アプリケーションの処理と関連するプロセスが呼び出したシステムコールの情報を記録したログである。 As one of methods for determining whether or not the application of interest is an unauthorized application, a method of analyzing the behavior of the application when the application is executed can be considered. There are application logs and kernel logs as logs that record application behavior. The application log is a log in which information related to the execution condition and state of the application is recorded. The kernel log is a log in which information on system calls called by processes related to application processing is recorded.
アプリケーションログには、アプリケーションを実行したときのプロセスの起動や終了等のタイミングは記録されているが、プロセスの処理内容は記録されていない。一方、カーネルログには、プロセスの処理内容は記録されているが、各プロセスがどのアプリケーションの処理と関連しているのかということに関する情報は記録されていない。このため、アプリケーションログとカーネルログのそれぞれ単体からは、特定のアプリケーションによる挙動の詳細を知ることが困難であった。 In the application log, the timing of starting and ending the process when the application is executed is recorded, but the processing contents of the process are not recorded. On the other hand, although the process contents of the process are recorded in the kernel log, information regarding which application process each process is associated with is not recorded. For this reason, it is difficult to know the details of the behavior of a specific application from each of the application log and the kernel log.
また、アプリケーションログとカーネルログには、注目するアプリケーションの挙動に対応するプロセス以外のプロセスに関する多量の情報も記録されている。この情報は、アプリケーションの挙動を解析する際には冗長な情報である。このような冗長な情報が含まれているため、アプリケーションログとカーネルログの解析が非効率的となる。 The application log and the kernel log also record a large amount of information related to processes other than the process corresponding to the behavior of the application of interest. This information is redundant information when analyzing the behavior of the application. Since such redundant information is included, the analysis of the application log and the kernel log becomes inefficient.
収集したアプリケーションログとカーネルログを記録することや、必要に応じてアプリケーションログとカーネルログの目視による検証を行うことがあるため、ログ中の不要なメッセージを削減するが望ましい。これによって、システムのディスク容量の削減や、解析に要する時間あるいは計算量の削減、目視による検証の効率的な実行が可能となる。 It is desirable to reduce unnecessary messages in the log because the collected application log and kernel log may be recorded and the application log and kernel log may be visually verified as necessary. This makes it possible to reduce the disk capacity of the system, reduce the time or amount of calculation required for analysis, and efficiently perform visual verification.
本発明は、上述した課題に鑑みてなされたものであって、アプリケーションの挙動を記録したログから自動解析や目視による検証に有効な部分を抽出し、不要な部分を削減することができるログ抽出システムおよびプログラムを提供することを目的とする。 The present invention has been made in view of the problems described above, and extracts a log that can extract an effective part for automatic analysis and visual verification from a log that records the behavior of an application, thereby reducing unnecessary parts. The object is to provide a system and program.
本発明は、上記の課題を解決するためになされたもので、アプリケーションの識別情報と、前記アプリケーションの処理の際に生成されたプロセスの識別情報と、前記アプリケーションの処理内容とが関連付けられた第1のログを記憶すると共に、前記プロセスの識別情報と、システムコールの実行内容とが関連付けられた第2のログを記憶するログ記憶部と、前記第1のログから、特定のアプリケーションの識別情報と関連付けられた前記プロセスの識別情報を抽出する第1の抽出部と、前記第1のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第2の抽出部と、前記第2のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第3の抽出部と、ログを集約する際のルールを示すルール情報を記憶するルール情報記憶部と、前記第2の抽出部または前記第3の抽出部が抽出した部分から、前記ルール情報に従って一部を削除することによって前記第1のログまたは前記第2のログを集約するログ集約部と、を備えたことを特徴とするログ抽出システムである。 The present invention has been made in order to solve the above-described problem, and is a first example in which application identification information, process identification information generated during the processing of the application, and processing contents of the application are associated with each other. 1 log, a log storage unit for storing a second log in which the identification information of the process and the execution contents of the system call are associated, and identification information of a specific application from the first log A first extraction unit that extracts identification information of the process associated with the second extraction unit that extracts a portion having the identification information of the process extracted by the first extraction unit from the first log And a third extraction unit for extracting a part having identification information of the process extracted by the first extraction unit from the second log, and aggregating the logs A rule information storage unit that stores rule information indicating a rule of the first log, and a part extracted by the second extraction unit or the third extraction unit according to the rule information to delete the first log Alternatively, the log extracting system includes a log aggregating unit that aggregates the second log.
また、本発明のログ抽出システムにおいて、前記ルール情報は、前記アプリケーションの処理内容または前記システムコールの実行内容が類似する部分を削除することを示し、前記ログ集約部は、前記第2の抽出部または前記第3の抽出部が抽出した部分から、前記アプリケーションの処理内容または前記システムコールの実行内容が類似する部分を削除することを特徴とする。 Further, in the log extraction system of the present invention, the rule information indicates that a part with a similar processing content of the application or execution content of the system call is deleted, and the log aggregation unit includes the second extraction unit. Alternatively, a portion similar to the processing content of the application or the execution content of the system call is deleted from the portion extracted by the third extraction unit.
また、本発明のログ抽出システムにおいて、前記ルール情報は、前記アプリケーションの処理内容がガーベージコレクションを示している部分を削除することを示し、前記ログ集約部は、前記第2の抽出部が抽出した部分から、前記アプリケーションの処理内容がガーベージコレクションを示している部分を削除することを特徴とする。 Further, in the log extraction system of the present invention, the rule information indicates that a portion of the application processing content indicating garbage collection is deleted, and the log aggregation unit is extracted by the second extraction unit. A part in which the processing content of the application indicates garbage collection is deleted from the part.
また、本発明のログ抽出システムにおいて、前記ルール情報は、前記システムコールの実行内容がドライバ操作を示している部分を削除することを示し、前記ログ集約部は、前記システムコールの実行内容がドライバ操作を示している部分を削除することを特徴とする。 Further, in the log extraction system of the present invention, the rule information indicates that a portion in which the execution content of the system call indicates a driver operation is deleted, and the log aggregation unit is configured such that the execution content of the system call is a driver. It is characterized in that a part indicating an operation is deleted.
また、本発明のログ抽出システムにおいて、前記ルール情報は、前記システムコールの実行内容が、前記特定のアプリケーションに割り当てられたディレクトリに対するファイル操作を示している部分を削除することを示し、前記ログ集約部は、前記システムコールの実行内容が、前記特定のアプリケーションに割り当てられたディレクトリに対するファイル操作を示している部分を削除することを特徴とする。 In the log extraction system of the present invention, the rule information indicates that the execution content of the system call deletes a portion indicating a file operation for a directory assigned to the specific application, and the log aggregation The section deletes a portion in which the execution content of the system call indicates a file operation on a directory assigned to the specific application.
また、本発明は、アプリケーションの識別情報と、前記アプリケーションの処理の際に生成されたプロセスの識別情報と、前記アプリケーションの処理内容とが関連付けられた第1のログを記憶すると共に、前記プロセスの識別情報と、システムコールの実行内容とが関連付けられた第2のログを記憶するログ記憶部と、前記第1のログから、特定のアプリケーションの識別情報と関連付けられた前記プロセスの識別情報を抽出する第1の抽出部と、前記第1のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第2の抽出部と、前記第2のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第3の抽出部と、ログを集約する際のルールを示すルール情報を記憶するルール情報記憶部と、前記第2の抽出部または前記第3の抽出部が抽出した部分から、前記ルール情報に従って一部を削除することによって前記第1のログまたは前記第2のログを集約するログ集約部と、としてコンピュータを機能させるためのプログラムである。 In addition, the present invention stores a first log in which application identification information, process identification information generated during processing of the application, and processing contents of the application are associated with each other. A log storage unit that stores a second log in which the identification information and the execution content of the system call are associated; and the process identification information associated with the identification information of a specific application is extracted from the first log From the first extraction unit, the second extraction unit that extracts the process identification information extracted by the first extraction unit from the first log, and the second log, A third extraction unit for extracting a part having identification information of the process extracted by the first extraction unit, and rule information indicating a rule for collecting logs are stored. The first log or the second log is aggregated by deleting a part from a part extracted by the rule information storage unit and the second extraction unit or the third extraction unit according to the rule information A log aggregating unit for causing the computer to function.
本発明によれば、第2の抽出部または第3の抽出部が抽出した部分から、ルール情報に従って一部を削除し、第1のログまたは第2のログを集約することによって、ログから自動解析や目視による検証に有効な部分を抽出し、不要な部分を削減することができる。 According to the present invention, from the part extracted by the second extraction unit or the third extraction unit, a part is deleted according to the rule information, and the first log or the second log is aggregated, thereby automatically from the log. It is possible to extract portions that are effective for analysis and visual verification, and to reduce unnecessary portions.
以下、図面を参照し、本発明の実施形態を説明する。図1は、本発明の一実施形態によるログ抽出システムの構成を示している。本実施形態によるログ抽出システムは、携帯電話端末、携帯情報端末、スマートフォン等の携帯端末1と、PC等のログ解析装置2とを有する。携帯端末1とログ解析装置2は、RS232C等のケーブル3で接続されており、ログ解析装置2から携帯端末1を操作することができる。本実施形態によるログ抽出システムは、例えば携帯端末用のアプリケーションを通信ネットワーク上で販売する販売サイトを管理する企業に設置される。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 shows the configuration of a log extraction system according to an embodiment of the present invention. The log extraction system according to the present embodiment includes a
図2は携帯端末1の機能構成を示している。携帯端末1は、アプリケーション10、アプリケーションログ生成部11、カーネルログ生成部12、ログ生成制御部13、操作情報制御部14、OS15、ファイル記憶部16、操作部17、表示部18、通信部19、および作業領域W1(ログ記憶部)を有する。
FIG. 2 shows a functional configuration of the
アプリケーション10、アプリケーションログ生成部11、カーネルログ生成部12、ログ生成制御部13、操作情報制御部14、およびOS15は、SRAM等のデバイスで構成される作業領域W1上で動作する。これらの実行ファイル(プログラム)はファイル記憶部16に格納されており、これらの実行ファイルがファイル記憶部16から作業領域W1に読み込まれることで、これらが起動する。なお、作業領域W1では、アプリケーション10等のプロセスのほか、図示していない各種プロセスも起動する。これらのプロセスがOS15にシステムコールの呼び出しを通知し、OS15がシステムコールを呼び出すことによって、各プロセスは、図示していないCPUの資源を利用して各種処理を行う。
The
アプリケーション10は、OS15に対するシステムコールの呼び出しやOS15からの実行結果の受け取り等を行う。これによって、アプリケーション10は、アプリケーションの処理として規定された各種処理の実行やファイル記憶部16へのアクセス等を行う。
The
アプリケーションログ生成部11は、アプリケーション10の実行条件や状態に関する情報を記録したアプリケーションログ(第1のログ)を生成する。生成されたアプリケーションログは作業領域W1に保持される。
The application
図4はアプリケーションログの一例を示している。アプリケーションログは、タイムスタンプ400、プロセスID410、プロセスID420、メッセージ種別430、メッセージタグおよびメッセージ本体440からなる。タイムスタンプ400は日付および時刻を含む。1つのタイムスタンプ400、親プロセスID410、プロセスID420、メッセージ種別430、メッセージタグおよびメッセージ本体440の組を記録単位としてアプリケーションの挙動がアプリケーションログに記録される。図4に示す例では、5つの記録単位分のアプリケーションログの内容が示されている。
FIG. 4 shows an example of the application log. The application log includes a
プロセスは、プロセス起動のシステムコールを呼び出すことによって、他のプロセスを起動することができる。以下では、起動元のプロセスを親プロセスと呼び、親プロセスによって起動されたプロセスを子プロセスと呼ぶ。プロセスID410およびプロセスID420が異なる場合、プロセスID410は親プロセスのプロセスIDを示し、プロセスID420は子プロセスのプロセスIDを示す。プロセスID410およびプロセスID420が同一の場合、それらのプロセスIDを有する記録単位は同一のプロセスの挙動を示している。
A process can start another process by calling a process call system call. In the following, the starting process is called a parent process, and the process started by the parent process is called a child process. When the
カーネルログ生成部12は、アプリケーション10の処理に関連するプロセスが呼び出したシステムコールの情報を記録したカーネルログ(第2のログ)を生成する。生成されたカーネルログは作業領域W1に保持される。
The kernel
図5はカーネルログの一例を示している。カーネルログは、プロセスID500、メッセージ本体510からなる。1つのプロセスID500とメッセージ本体510の組を記録単位としてシステムコールの情報がカーネルログに記録される。図5に示す例では、5つの記録単位分のカーネルログの内容が示されている。なお、アプリケーションログとカーネルログとでは、プロセスIDの管理体系が異なる。このため、同一のプロセスについて、アプリケーションログに記録されるプロセスIDとカーネルログに記録されるプロセスIDは異なる。
FIG. 5 shows an example of the kernel log. The kernel log includes a
ログ生成制御部13は、アプリケーションログ生成部11およびカーネルログ生成部12を起動する処理を行う。また、ログ生成制御部13は、アプリケーションログおよびカーネルログをログ解析装置2へ送信する処理を行う。
The log
操作情報制御部14は、操作者がログ解析装置2を操作して入力する操作情報に関する制御を行う。具体的には、操作情報制御部14はログ解析装置2と通信を行い、ログ解析装置2に入力された操作内容を示す操作情報を受信し、操作情報の内容を解釈してOS15に通知する。通知を受けたOS15は各種処理を実行する。また、操作情報制御部14は、OS15から処理の実行結果の通知を受け、実行結果を示す実行結果情報をログ解析装置2へ送信する。以下の動作の説明では、実行結果情報に関する処理の説明を省略する。
The operation
OS15は、アプリケーション10、アプリケーションログ生成部11、カーネルログ生成部12、ログ生成制御部13、および操作情報制御部14の処理のスケジューリングや作業領域W1の割り当て等を制御すると共に、ファイル記憶部16、操作部17、表示部18、および通信部19の各デバイスの入出力を制御する。
The
ファイル記憶部16は、フラッシュメモリ等のデバイスで構成され、携帯端末1内で使用する実行ファイル等の各種ファイルを記憶する。操作部17は、キー(ボタン)やスイッチ等のデバイスで構成され、操作者が操作した結果に基づく信号を出力する。表示部18は、液晶表示装置等のデバイスで構成され、携帯端末1で実行された処理の結果や携帯端末1の状態等を表示する。通信部19は、通信モジュール等のデバイスで構成され、ログ解析装置2と通信を行う。
The
図3はログ解析装置2の機能構成を示している。ログ解析装置2は、ログ解析部20、操作情報制御部21、OS22、ファイル記憶部23(ルール記憶部)、操作部24、表示部25、および通信部26を有する。
FIG. 3 shows a functional configuration of the
ログ解析部20、操作情報制御部21、およびOS22は、SRAM等のデバイスで構成される作業領域W2上で動作する。これらの実行ファイル(プログラム)はファイル記憶部23に格納されており、これらの実行ファイルがファイル記憶部23から作業領域W2に読み込まれることで、これらが起動する。なお、作業領域W2では、ログ解析部20等のプロセスのほか、図示していない各種プロセスも起動する。これらのプロセスがOS22にシステムコールの呼び出しを通知し、OS22がシステムコールを呼び出すことによって、各プロセスは、図示していないCPUの資源を利用して各種処理を行う。
The
ログ解析部20は、携帯端末1から受信したアプリケーションログおよびカーネルログを解析し、注目するアプリケーションが不正なアプリケーションであるか否かを判定する。
The
操作情報制御部21は、操作者が操作部24を操作して入力する操作内容に基づく操作情報に関する制御を行う。具体的には、操作情報制御部21は携帯端末1と通信を行い、操作部24に入力された操作内容を示す操作情報を送信し、また、実行結果を示す実行結果情報を受信する。OS22は、ログ解析部20および操作情報制御部21の処理のスケジューリングや作業領域W2の割り当て等を制御すると共に、ファイル記憶部23、操作部24、表示部25、および通信部26の各デバイスの入出力を制御する。
The operation
ファイル記憶部23は、ハードディスクドライブ等のデバイスで構成され、ログ解析装置2内で使用する実行ファイル等の各種ファイルを記憶する。操作部24は、キーボードやマウス等のデバイスで構成され、操作者が操作した結果に基づく信号を出力する。表示部25は、液晶表示装置等のデバイスで構成され、実行結果情報に基づく実行結果やログ解析部20の処理結果等を表示する。通信部26は、通信モジュール等のデバイスで構成され、携帯端末1と通信を行う。
The
図6はログ解析部20の機能構成を示している。ログ解析部20は、プロセスID抽出部20a(第1の抽出部)、アプリケーションログ抽出部20b(第2の抽出部)、カーネルログ抽出部20c(第3の抽出部)、ログ集約部20d、ファイル操作内容抽出部20e、通信内容抽出部20f、判定部20g、および制御部20hを有する。
FIG. 6 shows a functional configuration of the
プロセスID抽出部20aは、注目するアプリケーション10の処理に関するプロセスのプロセスIDをアプリケーションログから抽出する。図7は、プロセスの親子関係の一例を示している。図7では、システム上で最初に起動するinitプロセスが子プロセスを起動し、その子プロセスが親プロセスとして自身の子プロセスを起動する様子が示されている。
The process
一例として、注目するアプリケーション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が抽出される。
As an example, the process sshd (process ID: 2005) of the
アプリケーションログ抽出部20bは、プロセスID抽出部20aが抽出したプロセスIDを有する部分、すなわち注目するアプリケーションの処理に関係する部分をアプリケーションログから抽出する。カーネルログ抽出部20cは、プロセスID抽出部20aが抽出したプロセスIDを有する部分、すなわち注目するアプリケーションの処理に関係する部分をカーネルログから抽出する。
The application
ログ集約部20dは、アプリケーションログ抽出部20bが抽出した部分、およびカーネルログ抽出部20cが抽出した部分から、所定の集約ルールに従って不要な部分を削除することによって、アプリケーションログおよびカーネルログを集約する。ファイル記憶部23には、集約ルールを示す集約ルール(ルール情報)が格納されており、ログ集約部20dは、この集約ルールに基づいてログを集約する。
The
本実施形態のログ解析部20は、ログの自動解析の一例として、アプリケーションが不正であるか否かを判定するアプリケーション判定機能を有している。ファイル操作内容抽出部20e、通信内容抽出部20f、および判定部20gは、アプリケーション判定機能に関する処理を行う。
The
アプリケーションが処理を実行する際には、端末が有する機能の利用や設定の変更に係る権限が設定され、アプリケーションはその権限の範囲内で処理を実行することが可能である。例えば、一般ユーザ権限が設定された場合、一般ユーザ権限の範囲内で各種処理の実行が可能となる。また、最高権限(管理者権限)であるroot権限(スーパーユーザ権限)が設定された場合、一般ユーザ権限の範囲内で可能な処理に加えて、端末内の重要な設定の変更等が可能となる。 When an application executes a process, an authority relating to use of a function of the terminal and a change in setting is set, and the application can execute the process within the scope of the authority. For example, when the general user authority is set, various processes can be executed within the range of the general user authority. In addition, when the root authority (superuser authority), which is the highest authority (administrator authority), is set, in addition to the processing that is possible within the scope of general user authority, it is possible to change important settings in the terminal, etc. Become.
通常、アプリケーションは一般ユーザ権限で動作するように設定されており、一般ユーザ権限が設定されたアプリケーションがアクセスできるディレクトリは限定されている。しかし、不正なアプリケーションはOSの脆弱性を突いてroot権限を不正に取得し、ディレクトリに設定されているアクセス権限(パーミッション)を変更して携帯端末内のディレクトリに自由にアクセスできるようになる。これによって、携帯端末に障害を発生させたり、個人情報を漏洩させたりするなどの不正な行為が行われる。そこで、アプリケーションがディレクトリやファイルにアクセスする挙動を解析することで、注目するアプリケーションが不正なアプリケーションであるか否かを判定することが可能となる。 Normally, an application is set to operate with a general user authority, and directories that can be accessed by an application with the general user authority set are limited. However, unauthorized applications can exploit OS vulnerabilities to obtain root privileges illegally, change the access privileges (permissions) set in the directory, and freely access directories on mobile devices. As a result, an illegal act such as causing a failure in the mobile terminal or leaking personal information is performed. Therefore, by analyzing the behavior of applications accessing directories and files, it is possible to determine whether or not the application of interest is an unauthorized application.
また、一般ユーザ権限が設定されたアプリケーションが通信できる相手は、端末内のiptablesによって制限されている。しかし、不正なアプリケーションはOSの脆弱性を突いてroot権限を不正に取得し、iptablesによる制限を解除して不正なウェブサイトにアクセスできるようになる。そこで、アプリケーションが通信を行う挙動を解析することで、注目するアプリケーションが不正なアプリケーションであるか否かを判定することが可能となる。 Also, the parties with whom the application with general user authority can communicate are limited by iptables in the terminal. However, an unauthorized application can exploit the OS vulnerability to obtain root privileges illegally, remove the restrictions of iptables, and gain access to unauthorized websites. Therefore, by analyzing the behavior of the application communicating, it is possible to determine whether the application of interest is an unauthorized application.
ファイル操作内容抽出部20eは、カーネルログ抽出部20cが抽出した部分から、ファイル操作に関係するシステムコールの実行内容を抽出する。通信内容抽出部20fは、カーネルログ抽出部20cが抽出した部分から、通信(ソケット通信)に関係するシステムコールの実行内容を抽出する。
The file operation
判定部20gは、ファイル操作内容抽出部20eが抽出したシステムコールの実行内容が、ファイル記憶部16中の特定のディレクトリに対する操作を示しているか否かを判定することによって、注目するアプリケーション10が不正なアプリケーションであるか否かを判定する。また、判定部20gは、通信内容抽出部20fが抽出したシステムコールの実行内容が、特定のIPアドレス(または特定のIPアドレスおよびポート番号)を通信相手とする通信を示しているか否かを判定することによって、注目するアプリケーション10が不正なアプリケーションであるか否かを判定する。
The
制御部20hは、プロセスID抽出部20a、アプリケーションログ抽出部20b、カーネルログ抽出部20c、ログ集約部20d、ファイル操作内容抽出部20e、通信内容抽出部20f、および判定部20gに対する処理の振り分けの制御を行う。
The
次に、本実施形態によるログ抽出システムの動作を説明する。図8は、ログ抽出システムの動作の手順を示している。図8に示す動作の開始前、注目するアプリケーションは携帯端末1にインストールされてなく、携帯端末1では操作情報制御部14は起動しているが、アプリケーションログ生成部11、カーネルログ生成部12、およびログ生成制御部13は起動していないものとする。また、図8に示す動作の開始前、ログ解析装置2では、操作情報制御部21は起動しているがログ解析部20は起動していないものとする。
Next, the operation of the log extraction system according to the present embodiment will be described. FIG. 8 shows an operation procedure of the log extraction system. Before starting the operation shown in FIG. 8, the application of interest is not installed in the
まず、ログ解析装置2において、操作者は操作部24を操作し、アプリケーションログ生成部11およびカーネルログ生成部12を起動する指示を入力する。操作部24が操作されると、OS22は操作部24の操作内容を操作情報制御部21に通知する。操作情報制御部21は、通知された操作内容に基づいて、アプリケーションログ生成部11およびカーネルログ生成部12を起動するための操作情報であるログ生成部起動指示を生成する。このログ生成部起動指示は通信部26から携帯端末1へ送信される(ステップS100)。
First, in the
携帯端末1において、通信部19はログ生成部起動指示を受信する(ステップS105)。OS15は、ログ生成部起動指示を操作情報制御部14に通知し、操作情報制御部14は、ログ生成部起動指示に基づいて、ログ生成制御部13を起動するためのシステムコールの呼び出しをOS15に通知する。OS15はログ生成制御部13を起動し、起動したログ生成制御部13はアプリケーションログ生成部11およびカーネルログ生成部12を起動する(ステップS110)。起動したアプリケーションログ生成部11およびカーネルログ生成部12はログの生成を開始する。
In the
続いて、ログ解析装置2において、操作者は操作部24を操作し、判定対象のアプリケーションをインストールする指示を入力する。操作部24が操作されると、OS22は操作部24の操作内容を操作情報制御部21に通知する。操作情報制御部21は、通知された操作内容に基づいて、判定対象のアプリケーションの圧縮ファイルをファイル記憶部23から読み出す。この圧縮ファイルは通信部26から携帯端末1へ送信される(ステップS115)。
Subsequently, in the
携帯端末1において、通信部19はアプリケーションの圧縮ファイルを受信する(ステップS120)。続いて、アプリケーションのインストールが実行され、伸張されたアプリケーションの実行ファイルがファイル記憶部16に格納される(ステップS125)。
In the
図9はアプリケーションの実行ファイルの構成を示している。図9に示すように実行ファイル900は、命令列を含む実行コード901、アプリケーションのパッケージ名称やアプリケーションが利用するコンポーネント等の情報を含むマニフェストファイル902、実行コード901の実行時に参照されるライブラリ903、およびパラメータ904等のファイルで構成されている。
FIG. 9 shows the configuration of the execution file of the application. As shown in FIG. 9, an
アプリケーションのインストール後、操作者は操作部17を操作し、アプリケーションを起動する指示を入力する。操作部17が操作されると、OS15はアプリケーション10を起動する(ステップS130)。アプリケーション10の挙動は、アプリケーションログ生成部11によってアプリケーションログとして記録されると共に、カーネルログ生成部12によってカーネルログとして記録される。
After installing the application, the operator operates the
続いて、ログ解析装置2において、操作者は操作部24を操作し、ログを送信する指示を入力する。操作部24が操作されると、OS22は操作部24の操作内容を操作情報制御部21に通知する。操作情報制御部21は、通知された操作内容に基づいて、ログを送信するための操作情報であるログ送信指示を生成する。このログ送信指示は通信部26から携帯端末1へ送信される(ステップS135)。
Subsequently, in the
携帯端末1において、通信部19はログ送信指示を受信する(ステップS140)。OS15は、ログ送信指示を操作情報制御部14に通知し、操作情報制御部14は、ログ送信指示に基づいて、OS15を介してログ生成制御部13にログの送信を指示する。ログ生成制御部13は、アプリケーションログおよびカーネルログを送信する処理を行う。アプリケーションログおよびカーネルログは通信部19からログ解析装置2へ送信される(ステップS145)。
In the
ログ解析装置2において、通信部19はアプリケーションログおよびカーネルログを受信する(ステップS150)。受信されたアプリケーションログおよびカーネルログは作業領域W2に保持される。続いて、操作者は操作部24を操作し、ログを解析する指示を入力する。操作部24が操作されると、OS22はログ解析部20を起動する(ステップS155)。ログ解析部20は、アプリケーションログおよびカーネルログを集約する(ステップS160)。
In the
図10は、ステップS160におけるログ解析部20の動作の詳細を示している。前述したように、ファイル記憶部23にはアプリケーションの圧縮ファイルが格納されている。プロセスID抽出部20aは、ファイル記憶部23からアプリケーションの圧縮ファイルを読み出して伸張し、図9に示したマニフェストファイル902から、アプリケーションを識別するパッケージ名称を取得する(ステップS200)。
FIG. 10 shows details of the operation of the
図11はマニフェストファイルの一例を示している。「package=」に続く文字列1100がパッケージ名称を示している。プロセスID抽出部20aは、マニフェストファイルから「package=」という文字列を検索し、その文字列に続く「"」で挟まれた文字列をパッケージ名称として取得する。なお、携帯端末1からアプリケーションログおよびカーネルログと共にマニフェストファイルをログ解析装置2へ送信し、ログ解析装置2においてログの解析に使用するようにしてもよい。
FIG. 11 shows an example of a manifest file. A
続いて、プロセスID抽出部20aは、アプリケーションログから、パッケージ名称と一致する文字列を有する部分を抽出し、抽出した部分からプロセスIDを抽出する(ステップS205)。図12はアプリケーションログの一例を示している。プロセスの起動を示す「Start Proc」に続く文字列1200がパッケージ名称を示している。さらに、「pid=」に続く数字1210が、アプリケーション10が起動したプロセスのプロセスIDを示している。プロセスID抽出部20aは、アプリケーションログから「Start Proc」という文字列を検索し、その文字列に続く空白で挟まれた文字列が、ステップS200で取得したパッケージ名称と一致する場合に、そのパッケージ名称に続く部分から「pid=」という文字列を検索し、その文字列に続く数字をプロセスIDとして取得する。このプロセスIDは、カーネルログの管理体系におけるプロセスIDと一致する。
Subsequently, the process
続いて、プロセスID抽出部20aは、ステップS205で抽出したプロセスIDを親プロセスのプロセスID(以下、親プロセスIDとする)とし、カーネルログから子プロセスのプロセスID(以下、子プロセスIDとする)を抽出する(ステップS210)。カーネルログにおいて、プロセスの生成に関するシステムコールが記録された部分には、親プロセスと子プロセスも記録されている。本実施形態では、プロセスの生成に関するシステムコールとして、forkに注目する。
Subsequently, the process
図13はカーネルログの一例を示している。1つの記録単位1300のメッセージ本体に、プロセスの生成に関するシステムコールを示す「fork」が記録されている。また、メッセージ本体の前のプロセスID「1391」が親プロセスIDを示し、メッセージ本体の最後尾のプロセスID「1392」が子プロセスIDを示す。プロセスID抽出部20aは、カーネルログから、「fork」の文字列を検索し、それらのいずれかの文字列を含むメッセージ本体の直前の親プロセスIDが、ステップS205で抽出したプロセスIDと一致する場合に、メッセージ本体の最後尾のプロセスIDを子プロセスIDとして抽出する。プロセスID抽出部20aは、抽出した子プロセスIDを親プロセスIDとして、上記のようにして子プロセスIDを抽出する処理を繰り返す。
FIG. 13 shows an example of the kernel log. In the message body of one
続いて、アプリケーションログ抽出部20bは、ステップS205,S210で抽出したプロセスIDと一致するプロセスIDが行の先頭に記録されている部分(記録単位)をアプリケーションログから抽出する(ステップS215)。ステップS205,S210で抽出したプロセスIDは、注目するアプリケーション10に関連するプロセスのプロセスIDであるため、ステップS215で抽出した部分は、アプリケーション10の挙動を示している。
Subsequently, the application
続いて、カーネルログ抽出部20cは、ステップS205,S210で抽出したプロセスIDと一致するプロセスIDが行の先頭に記録されている部分(記録単位)をカーネルログから抽出する(ステップS220)。ステップS205,S210で抽出したプロセスIDは、注目するアプリケーション10に関連するプロセスのプロセスIDであるため、ステップS220で抽出した部分は、アプリケーション10の挙動を示している。
Subsequently, the kernel
続いて、ログ集約部20dは、ファイル記憶部23から集約ルールを読み出し、集約ルールに基づいて、アプリケーションログ抽出部20bがアプリケーションログから抽出した部分の集約を行うと共に、カーネルログ抽出部20cがカーネルログから抽出した部分の集約を行う(ステップS225)。以下、アプリケーションログとカーネルログに分けて集約方法を説明する。
Subsequently, the
図14は、集約ルールとして設定される判定条件を示している。図14(a)はアプリケーションログに係る判定条件を示している。第1の判定条件は、類似する内容を削除するための判定条件である。同一のシステムコール(関数)の処理によって、類似した内容が連続してログに記録されることがあるため、そのような内容が記録された部分は削除される。具体的には、アプリケーションログの記録単位の種別が1つ前の記録単位の種別と一致し、メッセージタグが1つ前の記録単位のメッセージタグと一致し、メッセージ本体の先頭8文字が1つ前の記録単位のメッセージ本体の先頭8文字と一致する場合に、その記録単位が削除される。 FIG. 14 shows determination conditions set as an aggregation rule. FIG. 14A shows determination conditions related to the application log. The first determination condition is a determination condition for deleting similar contents. Since similar contents may be continuously recorded in the log by the processing of the same system call (function), the part in which such contents are recorded is deleted. Specifically, the recording unit type of the application log matches the type of the previous recording unit, the message tag matches the message tag of the previous recording unit, and the first 8 characters of the message body are one. If it matches the first 8 characters of the message body of the previous recording unit, the recording unit is deleted.
第1の判定条件は、アプリケーションの処理用に動的に確保したメモリ領域のうち不要になったものを開放するガーベージコレクションに関する部分を削除するための判定条件である。ガーベージコレクションはアプリケーションの不正判定に関係しない動作であるため、ガーベージコレクションに関する記録は削除される。具体的には、判定条件が示すように、アプリケーションログの記録単位の種別が「D」であって、メッセージタグが「dalvik」であって、メッセージ本体が「GC」から始まっている場合に、その記録単位が削除される。 The first determination condition is a determination condition for deleting a portion related to garbage collection for releasing an unnecessary memory area dynamically reserved for processing of an application. Since the garbage collection is an operation not related to the fraud determination of the application, the record related to the garbage collection is deleted. Specifically, as indicated by the judgment condition, when the type of the recording unit of the application log is “D”, the message tag is “dalvik”, and the message body starts with “GC”, The recording unit is deleted.
図14(b)はカーネルログに係る判定条件を示している。第1の判定条件は、類似する内容を削除するための条件である。具体的には、カーネルログの記録単位のプロセスIDが1つ前の記録単位のプロセスIDと一致し、メッセージ本体の先頭8文字が1つ前の記録単位のメッセージ本体の先頭8文字と一致する場合に、その記録単位が削除される。 FIG. 14B shows determination conditions related to the kernel log. The first determination condition is a condition for deleting similar contents. Specifically, the process ID of the recording unit of the kernel log matches the process ID of the previous recording unit, and the first 8 characters of the message body match the first 8 characters of the message body of the previous recording unit. In that case, the recording unit is deleted.
第2〜第4の判定条件は、明確に安全であると定義することができる処理に関する内容を削除するための条件である。第2および第3の判定条件は、周辺機器を制御するためのプログラムであるドライバ(デバイスドライバ)の操作(組み込みおよび取り外し)に関する部分を削除するための条件である。具体的には、第2の判定条件では、ドライバ操作に関するシステムコールであるopenに関する記録単位について、openの引数(ドライバのプログラムの格納場所を示す)が「/dev/ashmem」である場合に、その記録単位が削除される。また、第3の判定条件では、openに関する記録単位について、openの引数が「/dev/binder」を含んでいる場合に、その記録単位が削除される。 The second to fourth determination conditions are conditions for deleting contents related to processing that can be clearly defined as safe. The second and third determination conditions are conditions for deleting a part related to operation (incorporation and removal) of a driver (device driver) which is a program for controlling peripheral devices. Specifically, in the second determination condition, when the open argument (indicating the storage location of the driver program) is “/ dev / ashmem” for the recording unit related to open, which is a system call related to driver operation, The recording unit is deleted. In the third determination condition, when the open argument includes “/ dev / binder” for the recording unit related to open, the recording unit is deleted.
第4の判定条件は、アプリケーションが、自身に割り当てられたディレクトリに対して行うファイル操作に関する内容を削除するための条件である。図17を参照して後述するが、アプリケーションは、通常、自身に割り当てられたディレクトリおよびそのディレクトリ下にあるディレクトリにしかアクセスすることができない。したがって、第4の判定条件では、ファイル操作に関するシステムコールであるreadまたはwriteに関する記録単位について、readまたはwriteの引数が「/home/data/app/aaa」(aaaはアプリケーションのパッケージ名称)である場合に、その記録単位が削除される。 The fourth determination condition is a condition for the application to delete the contents related to the file operation performed on the directory assigned to itself. As will be described later with reference to FIG. 17, an application can usually access only a directory assigned to the application and a directory under the directory. Therefore, in the fourth determination condition, the read or write argument is “/ home / data / app / aaa” (aaa is the package name of the application) for the recording unit related to read or write which is a system call related to file operation. In that case, the recording unit is deleted.
カーネルログに関しては、本実施形態では、以下で説明する特定のシステムコールに注目してログの集約を行う。このため、ステップS220でカーネルログ抽出部20cがカーネルログから抽出した部分のうち、特定のシステムコールに関する部分をさらに抽出した上でログの集約を行う。本実施形態では、fork等のプロセス制御のシステムコールと、read、write、open等のファイル操作のシステムコールと、connect、recv、send等のソケット通信のシステムコールとに注目する。特定のシステムコールに関する部分を抽出する方法は、後述するファイル操作内容抽出部20e、通信内容抽出部20fが使用する方法と同様である。
Regarding the kernel log, in this embodiment, logs are aggregated by paying attention to a specific system call described below. For this reason, the log is aggregated after further extracting the part related to the specific system call from the part extracted from the kernel log by the kernel
ステップS225においてログ集約部20dは、上記のようにして、アプリケーションログ抽出部20bがアプリケーションログから抽出した部分およびカーネルログ抽出部20cがカーネルログから抽出した部分の集約を行い、集約後の部分からなるアプリケーションログおよびカーネルログをファイル記憶部23に保存する。このとき、ステップS205,S210で抽出したプロセスIDを含む付加情報がファイル記憶部23に保存される。
In step S225, the
集約されたアプリケーションログおよびカーネルログは自動解析または目視による検証に使用される。目視による検証では、集約後のアプリケーションログおよびカーネルログがファイル記憶部23から読み出され、表示部25にその内容が表示される。操作者は、表示された各ログの内容に基づいて、目視でアプリケーションの挙動を検証する。アプリケーションログには、カーネルログには記録されないアプリケーションのエラーメッセージが記録されており、カーネルログには、アプリケーションログには記録されないシステムコールの実行内容が記録されており、同一のアプリケーションの挙動に関するアプリケーションログとカーネルログを関連付けて検証することで、アプリケーションの挙動を詳細に調べることができる。また、目視による検証に不要な部分が削除されているため、検証を効率的に行うことができる。
The aggregated application log and kernel log are used for automatic analysis or visual verification. In the visual verification, the application log and the kernel log after aggregation are read from the
本実施形態では、自動解析を行うことも可能である。以下では、集約後のカーネルログに基づく自動解析の一例を説明する。図15は、自動解析におけるログ解析部20の第1の動作例を示している。
In this embodiment, automatic analysis can also be performed. In the following, an example of automatic analysis based on the aggregated kernel log will be described. FIG. 15 shows a first operation example of the
ファイル操作内容抽出部20eは、ファイル記憶部23から集約後のカーネルログおよび付加情報を読み出し、読み出したカーネルログから、ファイル操作に関するシステムコールの実行内容を抽出する(ステップS300)。本実施形態では、ファイル操作に関するシステムコールとして、read、write、およびopenに注目する。
The file operation
図16は、openが記録されたカーネルログの一例を示している。1記録単位分に相当する部分1600には、システムコールを呼び出したプロセスのプロセスID(695)と、システムコールを識別するシステムコール名称(open)と、システムコールの実行内容とが記録されている。システムコールの実行内容には、システムコールによってアクセスされたディレクトリの名称(/data/data/xxx/yyy/zzz)が含まれる。ファイル操作内容抽出部20eは、付加情報に含まれるプロセスIDと一致するプロセスIDを行の先頭に有し、「read」、「write」、および「open」のいずれかと一致する文字列をメッセージ本体に有する記録単位があった場合に、その記録単位のメッセージ本体(記録単位全体でもよい)をシステムコールの実行内容として抽出する。
FIG. 16 shows an example of a kernel log in which “open” is recorded. In a
続いて、判定部20gは、ステップS300で抽出したシステムコールの実行内容に基づいて、注目するアプリケーション10が不正なアプリケーションであるか否かを判定する(ステップS305)。この判定には、不正なアプリケーションが行うファイル操作に基づいて予め定義した不正ファイル操作ルールが用いられる。不正ファイル操作ルールはファイル記憶部23に格納されている。
Subsequently, the
携帯端末向けのオープンプラットフォームでは、アプリケーションがアクセスできるディレクトリは、そのアプリケーション専用に割り当てられた特定の領域に制限されている。図17は、ファイル記憶部16のディレクトリ構成を示している。ファイル記憶部16には階層構造を有するディレクトリが作成されている。ディレクトリD1には、インストールされたアプリケーションの実行ファイルが格納される。また、ディレクトリD2は、各アプリケーションが用いるデータを保管するディレクトリであり、ディレクトリD2の下に、各アプリケーションの名称と同じ名称を有するディレクトリD3a〜D3cが並んでいる。
In the open platform for mobile terminals, the directory that an application can access is limited to a specific area allocated exclusively for the application. FIG. 17 shows the directory structure of the
アプリケーションは、通常、そのアプリケーションに対応するディレクトリおよびそのディレクトリ下にあるディレクトリにしかアクセスすることができない。したがって、自身に専用に割り当てられたディレクトリとは異なる、他のアプリケーションに専用に割り当てられたディレクトリにアクセスするアプリケーションは不正なアプリケーションである。 An application can usually access only a directory corresponding to the application and a directory under the directory. Therefore, an application that accesses a directory dedicated to another application that is different from the directory dedicated to itself is an unauthorized application.
また、図17において、領域ROMは、OS等の重要なファイルが格納されている領域であり、一般ユーザ権限が設定されたアプリケーションがアクセスできないよう、領域ROMにはアクセス権限(パーミッション)が設定されている。このアクセス権限の変更は、root権限を有する場合のみ可能である。root権限を不正に取得した悪意のアプリケーションは、領域ROMのアクセス権限を変更し、領域ROMの重要なファイルにアクセスする。したがって、root権限を不正に取得して領域ROMにアクセスするアプリケーションは不正なアプリケーションである。 In FIG. 17, an area ROM is an area where important files such as an OS are stored, and an access authority (permission) is set in the area ROM so that an application with general user authority cannot be accessed. ing. This access authority can be changed only when the user has root authority. A malicious application that has illegally acquired the root authority changes the access authority of the area ROM and accesses an important file in the area ROM. Therefore, an application that illegally acquires root authority and accesses the area ROM is an unauthorized application.
不正ファイル操作ルールには、各アプリケーションがアクセスしてはならない上記のようなディレクトリの名称が含まれる。すなわち、不正ファイル操作ルールには、ディレクトリD2下のディレクトリであって、注目するアプリケーション以外のアプリケーション専用のディレクトリの名称と、図17の領域ROMに含まれるディレクトリの名称とが含まれる。 The illegal file operation rule includes the name of the directory as described above that should not be accessed by each application. That is, the illegal file operation rule includes the names of directories dedicated to applications other than the application of interest and the names of directories included in the area ROM of FIG.
判定部20gは、ステップS300で抽出したシステムコールの実行内容の文字列と、不正ファイル操作ルールに含まれる文字列とを比較し、ステップS300で抽出したシステムコールの実行内容の文字列の中に、不正ファイル操作ルールに含まれる文字列と一致する文字列があった場合、注目するアプリケーションが不正なアプリケーションであると判定する。また、ステップS300で抽出したシステムコールの実行内容の文字列の中に、不正ファイル操作ルールに含まれる文字列と一致する文字列がなかった場合、判定部20gは、注目するアプリケーションが不正なアプリケーションではないと判定する。
The
上記の判定において、不正ファイル操作ルールの内容に基づいて、不正なアプリケーションの種別を識別してもよい。例えば、ステップS300で抽出したシステムコールの実行内容の文字列の中に、注目するアプリケーション以外のアプリケーション専用のディレクトリの名称と一致する文字列があった場合、注目するアプリケーションが、他のアプリケーションによって管理される個人情報等にアクセスする情報漏洩タイプのアプリケーションであると識別することができる。また、ステップS300で抽出したシステムコールの実行内容の文字列の中に、図17の領域ROMに含まれるディレクトリの名称と一致する文字列があった場合、注目するアプリケーションが、root権限を不正に取得するタイプのアプリケーションであると識別することができる。上記の判定結果に応じて、不正なアプリケーションの種別を示す種別情報を生成し、判定結果と共にファイル記憶部23に保存してもよい。
In the above determination, an unauthorized application type may be identified based on the contents of the unauthorized file operation rule. For example, when the character string of the system call execution content extracted in step S300 includes a character string that matches the name of a directory dedicated to an application other than the application of interest, the application of interest is managed by another application. It can be identified as an information leakage type application that accesses personal information or the like. Also, if the character string of the execution contents of the system call extracted in step S300 includes a character string that matches the name of the directory included in the area ROM in FIG. It can be identified as the type of application to be acquired. Depending on the determination result, type information indicating the type of an unauthorized application may be generated and stored in the
図18は、自動解析におけるログ解析部20の第2の動作例を示している。通信内容抽出部20fは、ファイル記憶部23から集約後のカーネルログおよび付加情報を読み出し、読み出したカーネルログから、通信(ソケット通信)に関するシステムコールの実行内容を抽出する(ステップS400)。本実施形態では、通信に関するシステムコールとして、recv、connect、およびsendに注目する。
FIG. 18 shows a second operation example of the
図19は、connectが記録されたカーネルログの一例を示している。1記録単位分に相当する部分1900には、システムコールを呼び出したプロセスのプロセスID(5205)と、システムコールを識別するシステムコール名称(connect)と、システムコールの実行内容とが記録されている。システムコールの実行内容には、システムコールによって実行された通信の相手のIPアドレス(aaa.bbb.ccc.ddd)とポート番号(xx)が含まれる。通信内容抽出部20fは、付加情報に含まれるプロセスIDと一致するプロセスIDを行の先頭に有し、「recv」、「connect」、および「send」のいずれかと一致する文字列をメッセージ本体に有する記録単位があった場合に、その記録単位のメッセージ本体(記録単位全体でもよい)をシステムコールの実行内容として抽出する。
FIG. 19 shows an example of a kernel log in which “connect” is recorded. In a
続いて、判定部20gは、ステップS400で抽出したシステムコールの実行内容に基づいて、注目するアプリケーション10が不正なアプリケーションであるか否かを判定する(ステップS405)。この判定には、不正なアプリケーションが行う通信に基づいて予め定義した不正通信相手リストが用いられる。不正通信相手リストはファイル記憶部23に格納されている。
Subsequently, the
インターネット上では、フィッシングサイトやウイルス感染サイト等、悪性のウェブサイトの情報をブラックリストとして公表しているウェブサイトがある。このウェブサイトから、不正な通信相手のIPアドレス等を取得することが可能である。また、既知の不正なアプリケーションが通信を行ったときの挙動を解析することによって、そのアプリケーションが通信を行った際の通信相手のIPアドレス等を取得することが可能である。上記のようにして取得したIPアドレス等が不正通信相手リストに記録されている。 On the Internet, there are websites that publish information on malignant websites such as phishing sites and virus-infected sites as a blacklist. From this website, it is possible to obtain the IP address of an unauthorized communication partner. Further, by analyzing the behavior when a known unauthorized application communicates, it is possible to acquire the IP address of the communication partner when the application communicates. The IP address obtained as described above is recorded in the unauthorized communication partner list.
図20は不正通信相手リストの一例を示している。不正通信相手リストには、IPアドレス、ポート番号、FQDN(Fully Qualified Domain Name)、および種別が含まれる。IPアドレス、ポート番号、およびFQDNは、不正なアプリケーションが行う通信の相手(宛先)の情報である。2つのIPアドレスが「〜」で結ばれている場合は、2つのIPアドレスを起点および終点とするIPアドレスの範囲を示している。種別は、通信の種別を示している。 FIG. 20 shows an example of the unauthorized communication partner list. The unauthorized communication partner list includes an IP address, a port number, an FQDN (Fully Qualified Domain Name), and a type. The IP address, port number, and FQDN are information on a communication partner (destination) of communication performed by an unauthorized application. When two IP addresses are connected by “˜”, it indicates a range of IP addresses having the two IP addresses as a starting point and an ending point. The type indicates the type of communication.
判定部20gは、ステップS400で抽出したシステムコールの実行内容から「sin_addr=inet_addr」という文字列を検索し、その文字列に続く部分から、「"」で挟まれた数字列を通信相手のIPアドレスとして取得する。また、判定部20gは、ステップS400で抽出したシステムコールの実行内容から「sin_port=htons」という文字列を検索し、その文字列に続く「(」と「)」で挟まれた数字をポート番号として取得する。
The
さらに、判定部20gは、システムコールの実行内容から取得したIPアドレスとポート番号との組合せを、不正通信相手リストに含まれるIPアドレスとポート番号との組合せと比較する。システムコールの実行内容から取得したIPアドレスとポート番号との組合せが、不正通信相手リストに含まれるIPアドレスとポート番号との組合せのいずれかと一致した場合、判定部20gは、注目するアプリケーションが不正なアプリケーションであると判定する。また、システムコールの実行内容から取得したIPアドレスとポート番号との組合せが、不正通信相手リストに含まれるIPアドレスとポート番号との組合せのいずれとも一致しなかった場合、判定部20gは、注目するアプリケーションが不正なアプリケーションではないと判定する。なお、不正通信相手リストにIPアドレスは記録されているがポート番号は記録されていない場合、IPアドレスのみについて、上記と同様の判定が行われる。
Furthermore, the
上記の判定において、不正通信相手リストに含まれる通信相手の種別に基づいて、不正なアプリケーションの種別を識別してもよい。例えば、ステップS400で抽出したシステムコールの実行内容が、広告サイトとの通信として不正通信相手リストに記録されている場合、注目するアプリケーションが、広告サイトへ誘導する通信を行うタイプのアプリケーションであると識別することができる。また、ステップS400で抽出したシステムコールの実行内容が、ボットネットの通信として不正通信相手リストに記録されている場合、注目するアプリケーションが、マルウェア感染を企むボットネットと通信を行うタイプのアプリケーションであると識別することができる。上記の判定結果に応じて、不正なアプリケーションの種別を示す種別情報を生成し、判定結果と共にファイル記憶部23に保存してもよい。
In the above determination, the type of the unauthorized application may be identified based on the type of the communication partner included in the unauthorized communication partner list. For example, when the execution content of the system call extracted in step S400 is recorded in the unauthorized communication partner list as communication with the advertisement site, the application of interest is the type of application that performs communication that leads to the advertisement site. Can be identified. When the execution contents of the system call extracted in step S400 are recorded in the unauthorized communication partner list as botnet communication, the application of interest is a type of application that communicates with a botnet that attempts to infect malware. Can be identified. Depending on the determination result, type information indicating the type of an unauthorized application may be generated and stored in the
次に、本実施形態の変形例を説明する。ログ解析装置2におけるログ解析の機能を携帯端末1が有していてもよい。図21は、ログ解析の機能を実装した携帯端末の機能構成を示している。図21に示す携帯端末1aは、図2に示した携帯端末1の構成に加えて、図3に示したログ解析装置2が有するログ解析部20を有している。アプリケーション10の起動後、ログ解析部20は、作業領域W1に保持されているアプリケーションログおよびカーネルログに基づいて、図10に示した処理を行う。なお、マニフェストファイルは、ファイル記憶部16に格納されているアプリケーションの実行ファイルから取得される。また、ファイル記憶部16には集約ルールや、不正ファイル操作ルール、不正通信相手リストが格納されている。
Next, a modification of this embodiment will be described. The
また、ログ解析装置2はログの収集機能とログの解析機能とを有しているが、ログの収集機能をログ解析装置2とは別の装置に持たせてもよい。例えば、携帯端末1からログを収集する機能を有する端末を用意し、ログ解析装置2はその端末からログを受信して解析を行う。
The
上述した携帯端末1,1aおよびログ解析装置2の各機能は、各装置の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより、実現される。ここで、「コンピュータ」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
Each function of the
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。 The program described above may be transmitted from a computer storing the program in a storage device or the like to another computer via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting a program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. Further, the above-described program may be for realizing a part of the above-described function. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer, what is called a difference file (difference program) may be sufficient.
上述したように、本実施形態によれば、アプリケーションの挙動を記録したアプリケーションログおよびカーネルログから自動解析や目視による検証に有効な部分を抽出し、不要な部分を削減することができる。このため、ログ解析装置2のディスク容量の削減や、解析に要する時間あるいは計算量の削減、目視による検証の効率的な実行が可能となる。
As described above, according to the present embodiment, a portion effective for automatic analysis or visual verification can be extracted from the application log and kernel log in which the behavior of the application is recorded, and unnecessary portions can be reduced. For this reason, it is possible to reduce the disk capacity of the
また、本実施形態によれば、注目するアプリケーションが不正であるか否かを判定することができる。特に、注目するアプリケーションの挙動に対応するプロセス以外のプロセスに関する多量の冗長な情報を解析対象から排除することが可能となるので、アプリケーションログおよびカーネルログの解析を効率的に行うことができ、注目するアプリケーションが不正であるか否かを判定する際の判定精度を向上することができる。 Further, according to the present embodiment, it can be determined whether or not the application of interest is illegal. In particular, since it is possible to exclude a large amount of redundant information related to processes other than the process corresponding to the behavior of the application of interest from the analysis target, it is possible to efficiently analyze the application log and kernel log. It is possible to improve the determination accuracy when determining whether or not the application to be performed is illegal.
また、カーネルログから、親プロセスIDと関連付けられた子プロセスIDを抽出し、ログの解析に用いることによって、アプリケーションの挙動をより詳細に解析することができ、注目するアプリケーションが不正であるか否かを判定する際の判定精度を向上することができる。 In addition, by extracting the child process ID associated with the parent process ID from the kernel log and using it for log analysis, the behavior of the application can be analyzed in more detail, and whether or not the application of interest is illegal It is possible to improve the determination accuracy when determining whether or not.
また、カーネルログに記録されたシステムコールの実行内容が、root権限を有している場合に操作が可能なディレクトリ(図17の領域ROMのディレクトリ)に対する操作を示しているか否か、あるいはファイル記憶部16において特定のアプリケーションに割り当てられたディレクトリ(図17のディレクトリD3a〜D3c)に対する操作を示しているか否かを判定することによって、携帯端末のroot権限を奪うアプリケーションや、個人情報を漏洩させるアプリケーションを検出することができる。
Whether or not the execution content of the system call recorded in the kernel log indicates an operation on a directory (a directory in the area ROM in FIG. 17) that can be operated when the user has root authority, or file storage An application for depriving the root authority of the mobile terminal or an application for leaking personal information by determining whether or not an operation on a directory (directory D3a to D3c in FIG. 17) assigned to a specific application is indicated in the
また、カーネルログに記録されたシステムコールの実行内容が、既知の悪性ウェブサイトのIPアドレスを通信相手とする通信を示しているか否か、あるいは既知の悪性アプリケーションの挙動を解析して得られるIPアドレスを通信相手とする通信を示しているか否かを判定することによって、広告サイトへ誘導する通信を行うアプリケーションや、マルウェア感染を企むボットネットと通信を行うアプリケーション等の不正なアプリケーションを検出することができる。 In addition, whether the system call execution contents recorded in the kernel log indicate communication with the IP address of a known malicious website as the communication partner, or IP obtained by analyzing the behavior of a known malicious application Detecting unauthorized applications such as an application that communicates with an advertising site or an application that communicates with a botnet that attempts to infect malware by determining whether communication with an address is a communication partner Can do.
また、カーネルログに記録されたシステムコールの実行内容からIPアドレスとポート番号を抽出し、不正通信相手リストに含まれるIPアドレスとポート番号の組合せと一致するか否かを判定することによって、通信プロトコル毎に通信相手を区別して詳細に判定を行うことができる。 In addition, the IP address and port number are extracted from the execution contents of the system call recorded in the kernel log, and communication is determined by determining whether or not the combination of the IP address and port number included in the unauthorized communication partner list is matched. It is possible to make a detailed determination by distinguishing the communication partner for each protocol.
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。 As described above, the embodiments of the present invention have been described in detail with reference to the drawings. However, the specific configuration is not limited to the above-described embodiments, and includes design changes and the like without departing from the gist of the present invention. .
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・・・作業領域
DESCRIPTION OF
Claims (6)
前記第1のログから、特定のアプリケーションの識別情報と関連付けられた前記プロセスの識別情報を抽出する第1の抽出部と、
前記第1のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第2の抽出部と、
前記第2のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第3の抽出部と、
ログを集約する際のルールを示すルール情報を記憶するルール情報記憶部と、
前記第2の抽出部または前記第3の抽出部が抽出した部分から、前記ルール情報に従って一部を削除することによって前記第1のログまたは前記第2のログを集約するログ集約部と、
を備えたことを特徴とするログ抽出システム。 A first log in which application identification information, process identification information generated during processing of the application, and processing contents of the application are associated with each other is stored, the process identification information, and a system call A log storage unit for storing a second log associated with the execution content of
A first extraction unit that extracts identification information of the process associated with identification information of a specific application from the first log;
A second extraction unit that extracts a part having identification information of the process extracted by the first extraction unit from the first log;
A third extraction unit for extracting a part having identification information of the process extracted by the first extraction unit from the second log;
A rule information storage unit for storing rule information indicating a rule for collecting logs;
A log aggregating unit that aggregates the first log or the second log by deleting a part from the portion extracted by the second extracting unit or the third extracting unit according to the rule information;
A log extraction system characterized by comprising:
前記ログ集約部は、前記第2の抽出部または前記第3の抽出部が抽出した部分から、前記アプリケーションの処理内容または前記システムコールの実行内容が類似する部分を削除する
ことを特徴とする請求項1に記載のログ抽出システム。 The rule information indicates that a part similar to the processing content of the application or the execution content of the system call is deleted,
The log aggregating unit deletes a part similar to the processing content of the application or the execution content of the system call from the part extracted by the second extraction unit or the third extraction unit. Item 2. The log extraction system according to Item 1.
前記ログ集約部は、前記第2の抽出部が抽出した部分から、前記アプリケーションの処理内容がガーベージコレクションを示している部分を削除する
ことを特徴とする請求項1に記載のログ抽出システム。 The rule information indicates that the processing content of the application deletes a portion indicating garbage collection,
The log extraction system according to claim 1, wherein the log aggregating unit deletes a part where the processing content of the application indicates garbage collection from the part extracted by the second extracting unit.
前記ログ集約部は、前記システムコールの実行内容がドライバ操作を示している部分を削除する
ことを特徴とする請求項1に記載のログ抽出システム。 The rule information indicates that a part in which the execution content of the system call indicates a driver operation is deleted,
The log extraction system according to claim 1, wherein the log aggregating unit deletes a portion where the execution content of the system call indicates a driver operation.
前記ログ集約部は、前記システムコールの実行内容が、前記特定のアプリケーションに割り当てられたディレクトリに対するファイル操作を示している部分を削除する
ことを特徴とする請求項1に記載のログ抽出システム。 The rule information indicates that the execution content of the system call deletes a portion indicating a file operation on a directory assigned to the specific application,
The log extraction system according to claim 1, wherein the log aggregating unit deletes a portion in which the execution contents of the system call indicate a file operation for a directory assigned to the specific application.
前記第1のログから、特定のアプリケーションの識別情報と関連付けられた前記プロセスの識別情報を抽出する第1の抽出部と、
前記第1のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第2の抽出部と、
前記第2のログから、前記第1の抽出部が抽出した前記プロセスの識別情報を有する部分を抽出する第3の抽出部と、
ログを集約する際のルールを示すルール情報を記憶するルール情報記憶部と、
前記第2の抽出部または前記第3の抽出部が抽出した部分から、前記ルール情報に従って一部を削除することによって前記第1のログまたは前記第2のログを集約するログ集約部と、
としてコンピュータを機能させるためのプログラム。 A first log in which application identification information, process identification information generated during processing of the application, and processing contents of the application are associated with each other is stored, the process identification information, and a system call A log storage unit for storing a second log associated with the execution content of
A first extraction unit that extracts identification information of the process associated with identification information of a specific application from the first log;
A second extraction unit that extracts a part having identification information of the process extracted by the first extraction unit from the first log;
A third extraction unit for extracting a part having identification information of the process extracted by the first extraction unit from the second log;
A rule information storage unit for storing rule information indicating a rule for collecting logs;
A log aggregating unit that aggregates the first log or the second log by deleting a part from the portion extracted by the second extracting unit or the third extracting unit according to the rule information;
As a program to make the computer function as.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010157819A JP5478390B2 (en) | 2010-07-12 | 2010-07-12 | Log extraction system and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010157819A JP5478390B2 (en) | 2010-07-12 | 2010-07-12 | Log extraction system and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012022380A JP2012022380A (en) | 2012-02-02 |
JP5478390B2 true JP5478390B2 (en) | 2014-04-23 |
Family
ID=45776651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010157819A Active JP5478390B2 (en) | 2010-07-12 | 2010-07-12 | Log extraction system and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5478390B2 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5613000B2 (en) * | 2010-10-08 | 2014-10-22 | Kddi株式会社 | Application characteristic analysis apparatus and program |
US9439077B2 (en) * | 2012-04-10 | 2016-09-06 | Qualcomm Incorporated | Method for malicious activity detection in a mobile station |
JP6501159B2 (en) * | 2015-09-04 | 2019-04-17 | 株式会社網屋 | Analysis and translation of operation records of computer devices, output of information for audit and trend analysis device of the system. |
JP6919569B2 (en) * | 2015-11-13 | 2021-08-18 | 日本電気株式会社 | Log analysis systems, methods, and recording media |
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 (en) * | 2018-01-23 | 2018-08-10 | 晶晨半导体(上海)股份有限公司 | A kind of collection method of system log |
JP7241281B2 (en) | 2019-12-05 | 2023-03-17 | パナソニックIpマネジメント株式会社 | Information processing device, control method and program |
-
2010
- 2010-07-12 JP JP2010157819A patent/JP5478390B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2012022380A (en) | 2012-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wei et al. | Deep ground truth analysis of current android malware | |
US10235524B2 (en) | Methods and apparatus for identifying and removing malicious applications | |
Malik et al. | CREDROID: Android malware detection by network traffic analysis | |
JP5478390B2 (en) | Log extraction system and program | |
Zhou et al. | Dissecting android malware: Characterization and evolution | |
Jiang et al. | Android malware | |
KR101558715B1 (en) | System and Method for Server-Coupled Malware Prevention | |
CN102306256B (en) | Prestige inspection is carried out to the file obtained | |
Liu et al. | On manually reverse engineering communication protocols of linux-based iot systems | |
JP5144488B2 (en) | Information processing system and program | |
US10142343B2 (en) | Unauthorized access detecting system and unauthorized access detecting method | |
CN103607385A (en) | Method and apparatus for security detection based on browser | |
US20100058479A1 (en) | Method and system for combating malware with keystroke logging functionality | |
CN111163095B (en) | Network attack analysis method, network attack analysis device, computing device, and medium | |
JP2012008732A (en) | Installation control device and program | |
CN110071924B (en) | Big data analysis method and system based on terminal | |
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 (en) | Mobile terminal, server end in mobile office system and its virus method and system | |
JP5478384B2 (en) | Application determination system and program | |
JP2011233081A (en) | Application determination system and program | |
Kazdagli et al. | Morpheus: Benchmarking computational diversity in mobile malware | |
KR100571695B1 (en) | Hacking protect method of keyboard, mouse and image | |
Heid et al. | Android Data Storage Locations and What App Developers Do with It from a Security and Privacy Perspective. | |
JP5478381B2 (en) | Application determination system and program |
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 |