説明

ソフトウェア検知ルール生成装置、ソフトウェア検知ルール生成方法およびソフトウェア検知ルール生成プログラム

【課題】マルウェアの検知を高精度に行うことができるソフトウェア検知ルール(マルウェア検知ルール)を生成する。
【解決手段】ソフトウェア検知ルール生成装置1は、マルウェアを構成する挙動ログまたは構成ファイルのうちの単一の挙動ログまたは単一の構成ファイルを抽出する単一ログ/ファイル抽出部11と、単一ログ/ファイル抽出部11により抽出された単一の挙動ログまたは単一の構成ファイルから、あらかじめ定められた条件に応じた文字列を、2つ以上の異なる条件について抽出する文字列抽出部12と、文字列抽出部12により抽出された文字列に基づいて、2つ以上の異なる条件について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成するルール生成部13と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア検知ルール生成装置、ソフトウェア検知ルール生成方法およびソフトウェア検知ルール生成プログラムに関する。
【背景技術】
【0002】
従来では、Android(登録商標)向けのマルウェア(悪性のアプリケーション)の検知手法は、特徴的な文字列に注目したシグネチャベースの方式が一般的である。
この方式は、マルウェアの挙動ログや構成ファイルの中に、攻撃に関連する文字列(通信先IP(Internet Protocol)アドレス、重要ファイルの操作、パッケージ名、コードの特定文字列)が含まれていることを検知(検出)する方式である。
【0003】
ここで、マルウェアの検出に利用する文字列は、Andriod向けのアプリケーションが安全であるか否かを解析するオペレータが手動で抽出している。
また、挙動ログや構成ファイルの特定の一行に現れる文字列からマルウェアを判断することができるように、マルウェアの検出に利用する文字列として、正規表現で記述することが可能な単純な文字列を設定している。
【0004】
なお、Android(登録商標)向けのマルウェア検知について、従来から研究がなされている(例えば、非特許文献1、2参照。)。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】竹森敬祐、磯原隆将、窪田歩、高野智秋、「Android携帯電話上での情報漏洩検知」、暗号と情報セキュリティシンポジウム2011、The Institute of Electronics, Information and Communication Engineers、2011年1月
【非特許文献2】磯原隆将、竹森敬祐、窪田歩、高野智秋、「Android向けアプリケーションの挙動に注目したマルウェア検知」、暗号と情報セキュリティシンポジウム2011、The Institute of Electronics, Information and Communication Engineers、2011年1月
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述のように、マルウェアの検知に利用する攻撃に関連する文字列は、Android(登録商標)向けのアプリケーションが安全であるか否かを解析するオペレータが手動で抽出しており、さらに、その文字列は正規表現で記述することが可能な単純な文字列である。
このため、類似の挙動を示すマルウェアにその文字列が含まれているとは限らず、マルウェアの検知において見逃し(False Negative)が生じるという問題がある。また、正常なアプリケーションがその文字列に該当する可能性も高くなり、マルウェアの検知において積極的誤検知(False Positive)が生じるという問題がある。
【0007】
本発明は、このような事情を考慮してなされたもので、マルウェアの検知を高精度に行うことができるソフトウェア検知ルール(マルウェアを検知するルール)を生成することができるソフトウェア検知ルール生成装置、ソフトウェア検知ルール生成方法およびソフトウェア検知ルール生成プログラムを提供することを課題とする。
【課題を解決するための手段】
【0008】
(1)上記の課題を解決するために、本発明に係るソフトウェア検知ルール生成装置は、マルウェアを構成する挙動ログまたは構成ファイルのうちの単一の挙動ログまたは単一の構成ファイルを抽出する単一ログ/ファイル抽出部と、前記単一ログ/ファイル抽出部により抽出された単一の挙動ログまたは単一の構成ファイルから、あらかじめ定められた条件に応じた文字列を、2つ以上の異なる条件について抽出する文字列抽出部と、前記文字列抽出部により抽出された文字列に基づいて、2つ以上の異なる条件について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成するルール生成部と、を備えたことを特徴とする。
【0009】
(2)上記の課題を解決するために、本発明に係るソフトウェア検知ルール生成装置は、マルウェアを構成する挙動ログまたは構成ファイルのうちの複数種類を抽出する複数ログ/ファイル抽出部と、前記複数ログ/ファイル抽出部により抽出された挙動ログまたは構成ファイルのうちの複数種類のそれぞれから、あらかじめ定められた条件に応じた文字列を抽出する文字列抽出部と、前記文字列抽出部により抽出された文字列に基づいて、挙動ログまたは構成ファイルのうちの複数種類について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成するルール生成部と、を備えたことを特徴とする。
【0010】
(3)本発明は、上記した(1)または上記した(2)に記載のソフトウェア検知ルール生成装置において、さらに、前記ルール生成部により生成されたマルウェア検知ルールの有効性を検証するルール検証部を備えた、ことを特徴とする。
【0011】
(4)上記の課題を解決するために、本発明に係るソフトウェア検知ルール生成方法は、単一ログ/ファイル抽出部が、マルウェアを構成する挙動ログまたは構成ファイルのうちの単一の挙動ログまたは単一の構成ファイルを抽出し、文字列抽出部が、前記単一ログ/ファイル抽出部により抽出された単一の挙動ログまたは単一の構成ファイルから、あらかじめ定められた条件に応じた文字列を、2つ以上の異なる条件について抽出し、ルール生成部が、前記文字列抽出部により抽出された文字列に基づいて、2つ以上の異なる条件について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成する、ことを特徴とする。
【0012】
(5)上記の課題を解決するために、本発明に係るソフトウェア検知ルール生成方法は、複数ログ/ファイル抽出部が、マルウェアを構成する挙動ログまたは構成ファイルのうちの複数種類を抽出し、文字列抽出部が、前記複数ログ/ファイル抽出部により抽出された挙動ログまたは構成ファイルのうちの複数種類のそれぞれから、あらかじめ定められた条件に応じた文字列を抽出し、ルール生成部が、前記文字列抽出部により抽出された文字列に基づいて、挙動ログまたは構成ファイルのうちの複数種類について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成する、ことを特徴とする。
【0013】
(6)上記の課題を解決するために、本発明に係るソフトウェア検知ルール生成プログラムは、単一ログ/ファイル抽出部が、マルウェアを構成する挙動ログまたは構成ファイルのうちの単一の挙動ログまたは単一の構成ファイルを抽出するステップと、文字列抽出部が、前記単一ログ/ファイル抽出部により抽出された単一の挙動ログまたは単一の構成ファイルから、あらかじめ定められた条件に応じた文字列を、2つ以上の異なる条件について抽出するステップと、ルール生成部が、前記文字列抽出部により抽出された文字列に基づいて、2つ以上の異なる条件について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成するステップと、をコンピュータに実行させるためのソフトウェア検知ルール生成プログラムである。
【0014】
(7)上記の課題を解決するために、本発明に係るソフトウェア検知ルール生成プログラムは、複数ログ/ファイル抽出部が、マルウェアを構成する挙動ログまたは構成ファイルのうちの複数種類を抽出するステップと、文字列抽出部が、前記複数ログ/ファイル抽出部により抽出された挙動ログまたは構成ファイルのうちの複数種類のそれぞれから、あらかじめ定められた条件に応じた文字列を抽出するステップと、ルール生成部が、前記文字列抽出部により抽出された文字列に基づいて、挙動ログまたは構成ファイルのうちの複数種類について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成するステップと、をコンピュータに実行させるためのソフトウェア検知ルール生成プログラムである。
【発明の効果】
【0015】
本発明によれば、マルウェアの検知を高精度に行うことができるソフトウェア検知ルール(マルウェアを検知するルール)を生成することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の第1実施形態に係るAndroid(登録商標)のソフトウェア検知ルール生成装置の概略的な構成を示すブロック図である。
【図2】文字列抽出部におけるシステムコール「execve」に関する入力の例と出力の例を示す図である。
【図3】文字列抽出部におけるシステムコール「connect」に関する入力の例と出力の例を示す図である。
【図4】(a)はシステムコールの時系列データの一例を示す図であり、(b)はアソシエーションルール生成結果の一例を示す図であり、(c)は時系列アソシエーションルール生成結果の一例を示す図である。
【図5】マルウェアと正常なアプリケーションについてルールの該当数の一例を示す図である。
【図6】(a)〜(d)は本発明の第1実施形態に係るソフトウェア検知ルール生成装置により行われる処理の全体の概略を示す図である。
【図7】本発明の第2実施形態に係るAndroid(登録商標)のソフトウェア検知ルール生成装置の概略的な構成を示すブロック図である。
【図8】(a)はカーネルログにおけるシステムコールと文字列との対応の一例を示す図であり、(b)はマニフェストファイルにおけるパーミッション情報の文字列の一例を示す図であり、(c)はアソシエーションルール生成結果の一例を示す図である。
【図9】本発明の第3実施形態に係るAndroid(登録商標)のソフトウェア検知ルール生成システムの概略的な構成を示すブロック図である。
【発明を実施するための形態】
【0017】
以下、図面を参照し、本発明の実施形態について説明する。
【0018】
[第1実施形態]
図1は、本発明の第1実施形態に係るAndroid(登録商標)のソフトウェア検知ルール生成装置1の概略的な構成を示すブロック図である。
また、図1には、アプリケーションデータベース(アプリケーションDB)21と、ルールデータベース(ルールDB)22も示してある。
【0019】
アプリケーションデータベース21は、Android(登録商標)のアプリケーションを記憶する。
本実施形態では、アプリケーションデータベース21は、正常なアプリケーションを記憶するデータベース(正常アプリケーションデータベース)と、マルウェア(悪性のアプリケーション)を記憶するデータベース(マルウェアデータベース)と、正常なものであるかあるいは悪性のものであるかが不明なアプリケーションを記憶するデータベース(不明アプリケーションデータベース)と、を有する。
【0020】
ここで、それぞれのアプリケーション(マルウェアも含む)のデータは、挙動ログのデータと、構成ファイルのデータから構成される。
また、アプリケーションデータベース21に記憶されるそれぞれのアプリケーションが正常なものであるか、悪性のものであるか、あるいは、いずれであるかが不明なものであるかは、任意の手法により、あらかじめ確認されて既知になっているとする。
【0021】
ソフトウェア検知ルール生成装置1は、アプリケーションデータベース21に記憶されたアプリケーションに基づいて、マルウェアを検知するルール(マルウェア検知ルール)をソフトウェア検知ルールとして生成し、生成したマルウェア検知ルールを検証する。ソフトウェア検知ルール生成装置1は、有効であると検証されたマルウェア検知ルールをルールデータベース22に記憶させる。
【0022】
ルールデータベース22は、ソフトウェア検知ルール生成装置1により有効であると検証されたマルウェア検知ルールを記憶する。
ルールデータベース22に記憶されたマルウェア検知ルールは、マルウェアの検知に使用することができる。
【0023】
本実施形態に係るソフトウェア検知ルール生成装置1について詳しく説明する。
本実施形態に係るソフトウェア検知ルール生成装置1は、単一ログ/ファイル抽出部11と、文字列抽出部12と、ルール生成部13と、ルール検証部14と、を備える。
【0024】
本実施形態に係るソフトウェア検知ルール生成装置1において行われる概略的な動作の例を示す。
単一ログ/ファイル抽出部11は、アプリケーションデータベース21のマルウェアデータベースに記憶されたマルウェアを入力し、入力したマルウェアを構成する挙動ログと構成ファイルについて、単一の挙動ログまたは単一の構成ファイルを抽出する。単一ログ/ファイル抽出部11は、抽出した単一の挙動ログまたは単一の構成ファイルを文字列抽出部12に出力する。
ここで、抽出する単一の挙動ログまたは単一の構成ファイルの種類は、例えば、あらかじめ定められている。
【0025】
文字列抽出部12は、単一ログ/ファイル抽出部11から入力された単一の挙動ログまたは単一の構成ファイルを解析し、この単一の挙動ログまたは単一の構成ファイルから、あらかじめ定められた手順(条件)で、文字列を抽出する。文字列抽出部12は、抽出した文字列に関する情報をルール生成部13に出力する。
【0026】
ルール生成部13は、文字列抽出部12から入力された文字列に関する情報に基づいて、マルウェア検知ルールを生成(作成)する。ルール生成部13は、生成したマルウェア検知ルールをルール検証部14に出力する。
【0027】
ルール検証部14は、ルール生成部13から入力されたマルウェア検知ルール(本実施形態では、マルウェア検知ルールの候補)について、有効性を検証する。ルール検証部14は、有効であると検証したマルウェア検知ルールをルールデータベース22に記憶させる。
【0028】
ここで、本実施形態では、ルール検証部14は、アプリケーションデータベース21のマルウェアデータベースに記憶されたマルウェアおよび正常アプリケーションデータベースに記憶された正常なアプリケーションを入力し、入力したマルウェアにマルウェア検知ルールを適用してマルウェアの検知を行った結果および入力した正常なアプリケーションに当該マルウェア検知ルールを適用してマルウェアの検知を行った結果に基づいて、当該マルウェア検知ルールが有効であるか否かを判定(検証)する。
【0029】
なお、アプリケーションデータベース21のマルウェアデータベースに複数のマルウェアが記憶されている場合には、例えば、個々のマルウェアについて、単一ログ/ファイル抽出部11と文字列抽出部12による処理を行い、その後、これら複数のマルウェアについての処理結果に基づいて、ルール生成部13による処理を行い、その後、この処理結果に基づいて、ルール検証部14による処理を行う。
【0030】
次に、本実施形態に係るソフトウェア検知ルール生成装置1において行われる具体的な動作の例を示す。
本実施形態では、挙動ログの中の一例であるカーネルログに関するマルウェア検知ルールを生成する場合を示す。
【0031】
単一ログ/ファイル抽出部11は、アプリケーションデータベース21のマルウェアデータベースに記憶された1個のマルウェアを入力し、入力したマルウェアを構成するカーネルログを抽出する。単一ログ/ファイル抽出部11は、抽出したカーネルログを文字列抽出部12に出力する。
ここで、単一ログ/ファイル抽出部11は、複数のマルウェアを入力する場合には、それぞれのマルウェアのカーネルログを抽出して取得し、それぞれのマルウェアのカーネルログを文字列抽出部12に出力する。
【0032】
文字列抽出部12は、単一ログ/ファイル抽出部11から入力されたカーネルログを解析し、このカーネルログから、あらかじめ定められた手順(条件)で、マルウェア検知ルールの生成に必要となる文字列を抽出する。文字列抽出部12は、抽出した文字列に関する情報をルール生成部13に出力する。
ここで、文字列抽出部12は、複数のマルウェアのカーネルログを入力する場合には、それぞれのマルウェアのカーネルログから文字列を抽出して取得し、それぞれのマルウェアのカーネルログごとに、抽出した文字列に関する情報を文字列抽出部12に出力する。
【0033】
文字列抽出の処理手順として、(カーネルログにおける文字列抽出の処理手順1)〜(カーネルログにおける文字列抽出の処理手順2)を示す。
(カーネルログにおける文字列抽出の処理手順1)
文字列抽出部12は、マルウェアのカーネルログの全て(全ての行)を文字列抽出の対象とし、または、当該カーネルログからあらかじめ定められた特定のシステムコールの行の部分を抽出して、抽出した特定のシステムコールの行の部分のみを文字列抽出の対象とする。
【0034】
ここで、特定のシステムコールとしては、任意のものが用いられてもよく、例えば、ファイルの読み書きに関するシステムコール、あるいは、外部との通信に関するシステムコールなどを用いることができる。
【0035】
(カーネルログにおける文字列抽出の処理手順2)
文字列抽出部12は、文字列抽出の対象(カーネルログの全ての行、または、特定のシステムコールの行の部分)を構成する各行から、あらかじめ定められた条件(この例では、システムコール)に応じて文字列を抽出する。
ここで、抽出する文字列としては、任意のものが用いられてもよく、例えば、ファイル名、あるいは、通信相手などの文字列を用いることができる。
【0036】
一例として、特定のシステムコールとして「execve」を用いる場合を示す。
このシステムコール「execve」は、アプリケーションがファイルを実行する際にログに出現する。したがって、文字列抽出部12は、このシステムコール「execve」の行の部分から、ファイル名のデータを文字列として抽出する。
【0037】
図2は、文字列抽出部12におけるシステムコール「execve」に関する入力の例と出力の例を示す図である。
図2に示される入力は、システムコール「execve」の行の部分に相当する。
そして、文字列抽出部12は、図2に示される入力から、図2に示される出力(「sleep」というファイル名)のデータを文字列のデータとして抽出する。
【0038】
他の一例として、特定のシステムコールとして「connect」を用いる場合を示す。
このシステムコール「connect」は、外部のネットワークとの接続の際に出現する。したがって、文字列抽出部12は、このシステムコール「connect」の行の部分から、通信相手のデータを文字列として抽出する。
この通信相手のデータとして、本実施形態では、接続先のIPアドレスとポート番号を用いる。
【0039】
図3は、文字列抽出部12におけるシステムコール「connect」に関する入力の例と出力の例を示す図である。
図3に示される入力は、システムコール「connect」の行の部分に相当する。
そして、文字列抽出部12は、図3に示される入力から、図3に示される出力(「210.196.3.183_80」という接続先のIPアドレスとポート番号)のデータを文字列のデータとして抽出する。
【0040】
文字列抽出部12からルール生成部13に出力する、抽出した文字列に関する情報について説明する。
文字列抽出部12は、抽出した文字列に関する情報として、抽出した文字列のデータと、この抽出に用いたシステムコールを含み、これら(文字列のデータとシステムコール)が対応付けられる情報を用いる。これにより、抽出した文字列に関する情報に基づいて、どのような文字列がどのようなシステムコールに出現したかを把握することができる。
【0041】
なお、抽出した文字列に関する情報としては、上記の例に限定されず、例えば、抽出した文字列のデータに、この抽出に用いたシステムコールを特定する情報が付与されれば、他の態様の情報が用いられてもよい。
【0042】
また、文字列抽出部12は、一度出現して抽出した文字列(例えば、同一のシステムコールと文字列との対応)については、二度目以降に出現した場合には抽出しない(または、抽出したときには、削除する)。つまり、同じ文字列の情報については、最初の1回だけ採用する。
【0043】
なお、このような同じ文字列の情報の重複は、例えば、1個のマルウェアにおいて存在する場合や、あるいは、複数のマルウェアにわたって存在する場合があり得る。
また、他の構成例として、同じ文字列の情報について重複して抽出して採用する構成が用いられてもよい。
【0044】
また、文字列抽出部12は、抽出した文字列に関する情報に、時系列順の番号(タイムスタンプ)の情報を付与して含める。これにより、1個のマルウェア(この例では、カーネルログ)において、抽出した文字列に関する情報が複数ある場合には、文字列抽出部12は、タイムスタンプが付与された複数の抽出した文字列に関する情報を列挙して、時系列データとして生成する。
【0045】
なお、時系列順の番号としては、例えば、1個のマルウェア(この例では、カーネルログ)において、文字列(または、システムコール)が出現した行が早い方に小さい番号を付与し、連続の番号とする。この場合、2つ以上の文字列(または、システムコール)が同一の行に出現したときには、これら全てに同一の番号を付与する。
【0046】
ここで、本実施形態では、抽出した文字列に関する情報に基づいて、時系列的な処理(例えば、時系列アソシエーションの処理)を行うために、抽出した文字列に関する情報に時系列順の番号(タイムスタンプ)の情報を付与するが、他の構成例として、タイムスタンプの情報を使用する必要がない場合には、タイムスタンプの情報は用いられなくてもよい。
【0047】
ルール生成部13は、文字列抽出部12から入力された文字列に関する情報に基づいて、マルウェア検知ルールを生成する。ルール生成部13は、生成したマルウェア検知ルールをルール検証部14に出力する。
本実施形態では、ルール生成部13は、マルウェア検知ルールの生成対象となる全てのマルウェアについて、生成された時系列データを用いて、アソシエーション分析の処理または時系列アソシエーション分析の処理のうちのいずれかを行い、これによりマルウェア検知ルールを導出する。
【0048】
ここで、ルール生成部13によりアソシエーション分析の処理または時系列アソシエーション分析の処理のうちのいずれを行うかについては、例えば、あらかじめいずれかの処理に設定されてもよく、または、ソフトウェア検知ルール生成装置1に対するユーザ(人)による操作あるいは外部の装置からの制御(信号)に応じて、実行する処理を切り替えることが可能な構成が用いられてもよい。
【0049】
また、アソシエーション分析や時系列アソシエーション分析としては、それぞれ、一般的に知られる技術を用いることができる。このため、本実施形態では、これらの概略を説明する。
【0050】
(アソシエーション分析の説明)
アソシエーション分析は、組み合わせ(アソシエーションルール)を効率的に発見する方法である。前提部(antecedent)と結論部(consequence)から構成され、前提部と結論部の組み合わせで1つのルールとなる。
信頼度(C:Confidence)は、ルールの前提(X)が発生したときに、結論(Y)が起こる割合を示す。つまり、信頼度の数値が高いほど、ルールの前提と結論との結び付きが強いことを意味する。信頼度は、式(1)で表される。
【0051】
信頼度 = {前提(X)と結論(Y)を共に含むトランザクションの件数}
/{前提(X)を含むトランザクションの件数}
・・(1)
【0052】
支持度(S:Support)は、条件となる前提(X)と結論(Y)を同時に満たすトランザクションが全てのトランザクションに占める割合を示す。支持度は、式(2)で表される。
【0053】
支持度 = {前提(X)と結論(Y)を共に含むトランザクションの件数}
/{全てのトランザクションの件数}
・・(2)
【0054】
アソシエーション分析では、信頼度と支持度を利用して、ルールを生成する。ルールの生成には、アプリオリ・アルゴリズムを用いる。
アプリオリ・アルゴリズムは、信頼度と支持度に閾値を設け、その閾値を超える信頼度と支持度を持つルールを重要なものと見なすようにするアルゴリズムである。なお、閾値は、ユーザが指定する。
【0055】
さらに、アソシエーション分析では、アプリオリ・アルゴリズムを用いて生成したルール(ここでは、ルールの候補)のうちで、リフト値(L:Lift)を計算して、リフト値が所定の閾値を超えたもの(ルールの候補)のみをルールとして出力する。リフト値は、式(3)で表される。
【0056】
リフト値 = 信頼度(X→Y)/結論(Y)
・・(3)
【0057】
本実施形態では、文字列抽出部12によりアソシエーション分析の処理を行って、各マルウェアに出現する文字列の組み合わせを抽出することにより、効率的にマルウェアに関するルール(マルウェア検知ルール)を生成することができる。
【0058】
ここで、アソシエーション分析による頻出パターン分析においては、信頼度(C)、支持度(S)、リフト値(L)等を用いて有効性を判断するが、一例として、次のような値を利用することができる。
C=0
S=0
L=1
【0059】
(時系列アソシエーション分析の説明)
時系列アソシエーション分析は、アソシエーション分析の際に、時間的な前後関係を考慮して、ルールを生成する方法である。
【0060】
図4(a)、図4(b)、図4(c)を参照して、アソシエーション分析の具体例および時系列アソシエーション分析の具体例を示す。
図4(a)は、システムコールの時系列データの一例を示す図である。
システムコールの時系列データとして、時系列の(1)番目に、{システムコール「execve」において、ファイル名「xxxxxxxx」の文字列が出現する}という情報が取得されており、時系列の(2)番目に、{システムコール「connect」において、通信相手(接続先のIPアドレスとポート番号)「x x x x x x x」の文字列が出現する}という情報が取得されているとする。
【0061】
図4(b)は、図4(a)に示される順番でシステムコールおよび対応する文字列が存在した場合における、アソシエーション分析の処理により生成されるルール(アソシエーションルール生成結果)の一例を示す図である。
この例では、アソシエーションルール生成結果として、2つのルールが生成される。この場合、ルール生成部13は、これら2つのルールを、マルウェア検知ルールとして、ルール検証部14に出力する。
【0062】
1つ目のルールは、[{システムコール「execve」において、ファイル名「xxxxxxxx」の文字列が出現する}ことが成立した場合に、それより後の行で、{システムコール「connect」において、通信相手(接続先のIPアドレスとポート番号)「x x x x x x x」の文字列が出現する}ことが成立する]というルールである。
このルールでは、前提部(X)は{システムコール「execve」において、ファイル名「xxxxxxxx」の文字列が出現する}ことであり、結論部(Y)は{システムコール「connect」において、通信相手(接続先のIPアドレスとポート番号)「x x x x x x x」の文字列が出現する}ことである。
【0063】
2つ目のルールは、[{システムコール「connect」において、通信相手(接続先のIPアドレスとポート番号)「x x x x x x x」の文字列が出現する}ことが成立した場合に、それより後の行で、{システムコール「execve」において、ファイル名「xxxxxxxx」の文字列が出現する}ことが成立する]というルールである。
このルールでは、前提部(X)は{システムコール「connect」において、通信相手(接続先のIPアドレスとポート番号)「x x x x x x x」の文字列が出現する}ことであり、結論部(Y)は{システムコール「execve」において、ファイル名「xxxxxxxx」の文字列が出現する}ことである。
【0064】
図4(c)は、図4(a)に示される順番でシステムコールおよび対応する文字列が存在した場合における、時系列アソシエーション分析の処理により生成されるルール(時系列アソシエーションルール生成結果)の一例を示す図である。
この例では、時系列アソシエーションルール生成結果として、1つのルールが生成される。この場合、ルール生成部13は、この1つのルールを、マルウェア検知ルールとして、ルール検証部14に出力する。
【0065】
この1つのルールは、[{システムコール「execve」において、ファイル名「xxxxxxxx」の文字列が出現する}ことが成立した場合に、それより後の行で、{システムコール「connect」において、通信相手(接続先のIPアドレスとポート番号)「x x x x x x x」の文字列が出現する}ことが成立する]というルールである。
このルールでは、前提部(X)は{システムコール「execve」において、ファイル名「xxxxxxxx」の文字列が出現する}ことであり、結論部(Y)は{システムコール「connect」において、通信相手(接続先のIPアドレスとポート番号)「x x x x x x x」の文字列が出現する}ことである。
【0066】
ここで、時系列アソシエーション分析により取得されるルールでは、必ず、前提部(X)が発生する時間が、結論部(Y)が発生する時間よりも前でなければならない。
なお、本実施形態では、早い行に出現する方が早い時間であるとしている。
【0067】
ルール検証部14は、ルール生成部13から入力されたマルウェア検知ルール(本実施形態では、マルウェア検知ルールの候補)について、有効性を検証する。ルール検証部14は、有効であると検証したマルウェア検知ルールをルールデータベース22に記憶させる。
【0068】
ここで、本実施形態では、ルール検証部14は、アプリケーションデータベース21のマルウェアデータベースに記憶されたマルウェアおよび正常アプリケーションデータベースに記憶された正常なアプリケーションを入力し、入力したマルウェアにマルウェア検知ルールを適用してマルウェアの検知を行った結果および入力した正常なアプリケーションに当該マルウェア検知ルールを適用してマルウェアの検知を行った結果に基づいて、当該マルウェア検知ルールが有効であるか否かを判定(検証)する。
【0069】
この例では、ルール検証部14は、ルール生成部13により生成されて入力されたそれぞれのマルウェア検知ルールの有効性を検証するために、アプリケーションデータベース21から入力したマルウェアのカーネルログと、アプリケーションデータベース21から入力した正常なアプリケーションのカーネルログの両方を使用する。
具体的には、ルール検証部14は、それぞれのマルウェア検知ルールについて、そのルールのパターンに該当するマルウェアが幾つ存在するか、および、そのルールのパターンに該当する正常なアプリケーションが幾つ存在するかを検出して、有効性の検証を行う。
【0070】
図5は、マルウェアと正常なアプリケーションについてルールの該当数の一例を示す図である。
図5の例では、ルール検証部14は、[{システムコール「execve」において、ファイル名「xxxxxxxx」の文字列が出現する}ことが成立した場合に、それより後の行で、{システムコール「connect」において、通信相手(接続先のIPアドレスとポート番号)「x x x x x x x」の文字列が出現する}ことが成立する]というルールについて、有効性の検証を行っている。
【0071】
そして、ルール検証部14は、アプリケーションデータベース21から入力されたn(nは1以上の整数)個のマルウェアのそれぞれについて、このルールが該当するか否かを判定し、この結果、このルールがn個のうちのa(aは0以上でn以下の整数)個のマルウェアに該当することを判定している。つまり、a/n件該当している。
【0072】
また、ルール検証部14は、アプリケーションデータベース21から入力されたm(mは1以上の整数)個の正常なアプリケーションのそれぞれについて、このルールが該当するか否かを判定し、この結果、このルールがm個のうちのb(bは0以上でm以下の整数)個のマルウェアに該当することを判定している。つまり、b/m件該当している。
【0073】
一例として、ルール検証部14は、マルウェアについて判定したルールの該当数の割合(a/n)と、正常なアプリケーションについて判定した当該ルールの該当数の割合(b/m)とを比較して、マルウェアについて判定した当該ルールの該当数の割合(a/n)の方が大きい場合に、当該ルールが有効であると検証する。
他の一例として、ルール検証部14は、マルウェアについて判定したルールの該当数の割合(a/n)があらかじめ定められた閾値(第1の閾値)を超え、且つ、正常なアプリケーションについて判定した当該ルールの該当数の割合(b/m)があらかじめ定められた閾値(第2の閾値)以下である場合に、当該ルールが有効であると検証する。
【0074】
ここで、ルールが有効であるか否かを判定する方法としては、様々な方法が用いられてもよい。
例えば、本実施形態では、マルウェアにルールを適用した結果と正常なアプリケーションに当該ルールを適用した結果の両方に基づいて当該ルールが有効であるか否かを判定するが、他の構成例として、マルウェアにルールを適用した結果のみに基づいて当該ルールが有効であるか否かを判定する構成が用いられてもよく、あるいは、正常なアプリケーションにルールを適用した結果のみに基づいて当該ルールが有効であるか否かを判定する構成が用いられてもよい。
【0075】
具体例として、ルール検証部14は、マルウェアについて判定したルールの該当数の割合(a/n)があらかじめ定められた閾値(第3の閾値)を超える場合に、当該ルールが有効であると検証する。
他の具体例として、ルール検証部14は、正常なアプリケーションについて判定したルールの該当数の割合(b/m)があらかじめ定められた閾値(第4の閾値)以下である場合に、当該ルールが有効であると検証する。
【0076】
なお、ルール検証部14は、ルールの検証にマルウェアと正常なアプリケーションのうちの一方のみを使用する場合には、使用するもののみをアプリケーションデータベース21から入力すればよい。
【0077】
ルール検証部14は、有効性を確認したルール(マルウェア検知ルール)をルールデータベース22に記憶させて登録する。
これにより、ルールデータベース22に記憶されたマルウェア検知ルールを使用して、アプリケーション(例えば、新たなアプリケーション)がマルウェアであるか否かの評価を行うことができる。
【0078】
なお、例えば、ソフトウェア検知ルール生成装置1によりメールデータベース22に記憶されたマルウェア検知ルールのうちで、ユーザ(ここでは、例えば、ルールを管理する者)により選択して取得したソフトウェア検知ルールを新たなアプリケーションの評価を行う際に利用することもできる。
【0079】
ここで、この例では、アプリケーション(マルウェアも含む)を構成する挙動ログの中の一例であるカーネルログに関するマルウェア検知ルールを生成する場合を示したが、他の例として、挙動ログの中の他の例であるアプリケーションログやパケットキャプチャログなどに関するマルウェア検知ルールを生成することもできる。
【0080】
また、他の例として、アプリケーション(マルウェアも含む)を構成する構成ファイルに関するマルウェア検知ルールを生成することもできる。具体例として、構成ファイルの中の一例であるマニフェストファイルなどに関するマルウェア検知ルールを生成することができる。この場合、例えば、ログにおける「システムコール」および「それに対応する文字列」の代わりに、構成ファイルにおける「抽出情報の種別(例えば、パーミッション情報などの種別)」および「それに対応する文字列」を用いることができる。
なお、文字列を抽出する対象として、ペイロードを用いることも可能である。
【0081】
図6(a)、図6(b)、図6(c)、図6(d)は、本実施形態に係るソフトウェア検知ルール生成装置1により行われる処理の全体の概略を示す図である。
図6(a)は、単一ログ/ファイル抽出部11によりマルウェアから抽出される情報の例を示す。
具体的には、各マルウェアから単一の挙動ログまたは単一の構成ファイルが抽出され、z(zは1以上の整数)個のマルウェアについて、z個のログ/ファイル抽出情報(それぞれ、単一の挙動ログまたは単一の構成ファイル)101−1〜101−zが抽出される。
【0082】
図6(b)は、文字列抽出部12により各ログ/ファイル抽出情報101−1〜101−zに基づいて抽出される文字列に関する情報の例を示す。
具体的には、各ログ/ファイル抽出情報101−1〜101−zに基づいて文字列に関する情報が抽出され、z個のログ/ファイル抽出情報101−1〜101−zについて、z個の文字列抽出情報(抽出した文字列に関する情報)111−1〜111−zが得られる。
【0083】
図6(c)は、ルール生成部13により生成されるルール(マルウェア検知ルール)の例を示す。
具体的には、ルール生成部13によりz個の文字列抽出情報111−1〜111−nに基づいてk(この例では、kは1以上の整数)個のルールが生成される。
【0084】
図6(d)は、ルール検証部14により各ルールの有効性を検証した結果の例を示す。
具体的には、ルール検証部14により、k個のルールのそれぞれについて、ルールに該当するマルウェアの件数と、ルールに該当する正常なアプリケーションの件数が得られる。
なお、この例では、各ルールに該当するか否かを判定する対象とするマルウェアの数(図5に示されるnに相当する値)および正常なアプリケーションの数(図5に示されるmに相当する値)があらかじめ定められているとする。
【0085】
本実施形態に係るソフトウェア検知ルール生成装置1は、図6(a)〜(d)に示される一連の処理を行うことで、マルウェア検知ルールを生成することができ、さらに、生成したマルウェア検知ルールについて検証を行って、有効性があると判定されるマルウェア検知ルールのみを選び出すことができる。
【0086】
以上のように、本実施形態に係るソフトウェア検知ルール生成装置1では、Android(登録商標)向けの悪意のあるアプリケーション(マルウェア)に関する挙動ログや構成ファイルの中から、マルウェアの検知に適した特徴的な文字列を自動的に抽出し、マルウェア検知ルールを自動的に生成する。
【0087】
具体的には、本実施形態に係るソフトウェア検知ルール生成装置1では、単一ログ/ファイル抽出部11が、マルウェアを構成する挙動ログまたは構成ファイルのうちの単一の挙動ログまたは単一の構成ファイルを抽出し、文字列抽出部12が、単一ログ/ファイル抽出部11により抽出された単一の挙動ログまたは単一の構成ファイルから、あらかじめ定められた条件(例えば、システムコール、パーミッション情報など)に応じた文字列を、2つ以上の異なる条件について抽出し、ルール生成部13が、文字列抽出部12により抽出された文字列に基づいて、2つ以上の異なる条件について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成し、ルール検証部14が、ルール生成部13により生成されたマルウェア検知ルールの有効性を検証する。これにより、マルウェアの検知を高精度に行うことができるソフトウェア検知ルール(マルウェア検知ルール)を生成する。
【0088】
本実施形態に係るソフトウェア検知ルール生成装置1によれば、例えば、従来のシグネチャベースの方式では得ることができなかった、マルウェアに共通する文字列の組み合わせからなるルール(例えば、図4(b)や図4(c)に示されるルール)を得ることができる。これにより、より高精度にマルウェアやその亜種を発見することができ、さらに、積極的誤検知(False Positive)が少ないマルウェア検知ルールを生成することができる。
【0089】
また、従来では、Android(登録商標)向けのアプリケーションが安全であるか否かを解析するオペレータ(人)が、マルウェアの検知に利用する文字列を、手動で抽出しており、マルウェア検知ルールを生成する作業にコストや時間を要していたが、本実施形態に係るソフトウェア検知ルール生成装置1によれば、このようなコストや時間を大幅に削減することができる。
【0090】
本実施形態に係るソフトウェア検知ルール生成装置1によれば、マルウェアを構成する挙動ログと構成ファイルについて、単一の挙動ログまたは単一の構成ファイルを抽出して文字列を抽出する構成であるため、例えば、様々な種類の挙動ログや構成ファイルを抽出して文字列を抽出する場合と比べて、種類が少ないという点で、演算量を少なくすることが可能である。
【0091】
具体例として、本実施形態に係るソフトウェア検知ルール生成装置1では、マルウェアの挙動ログや構成ファイルに含まれる、攻撃に関わる特徴的な文字列の抽出作業において、精度の高い文字列を自動的に抽出することができ、抽出した文字列を使用して、マルウェアに頻出する文字列の組み合わせを導出することにより、精度の高いマルウェア検知ルールを自動的に生成することができる。
例えば、挙動ログの一つであるカーネルログにはAndroid(登録商標)のアプリケーションがいずれのファイルを実行したのかを示す記録や、誰と通信したのかを示す記録が含まれており、これらに関連する文字列を抽出することができる。また、構成ファイルの一つであるマニフェストファイルに含まれるパーミッション情報はAndroid(登録商標)のアプリケーションに特有の文字列であり、マルウェアに用いられやすいパーミッション、要するに文字列を自動的に抽出することができる。
このような方法により、マルウェアの見逃し(False Negative)や積極的誤検知(False Positive)を低減することができる。
【0092】
ここで、本実施形態では、図4(b)や図4(c)に示されるマルウェア検知ルールのように、システムコールなどとそれに対応する文字列との対応を2つ組み合わせたルールを生成する場合を示したが、他の例として、システムコールなどとそれに対応する文字列との対応を3つ以上組み合わせたルールを生成することも可能である。
【0093】
また、本実施形態では、ルール生成部13によりマルウェア検知ルールを生成した後に、ルール生成部13により生成したマルウェア検知ルールの有効性をルール検証部14により検証する構成を示したが、他の構成例として、ソフトウェア検知ルール生成装置1にルール検証部14を備えない構成を用いることも可能である。
ルール検証部14を備えないソフトウェア検知ルール生成装置1では、ルール生成部13により生成されたマルウェア検知ルールをルールデータベース22に記憶させる。
なお、ソフトウェア検知ルール生成装置1にルール検証部14を備えるか否かは任意であるが、通常は、ルール検証部14を備えた方が、ソフトウェア検知ルール生成装置1により生成されるマルウェア検知ルール(ルール検証部14を備えない場合にはルール生成部13により生成されるマルウェア検知ルール、ルール検証部14を備える場合にはルール検証部14により有効であると検証されたマルウェア検知ルール)の精度が高くなると考えられる。
【0094】
[第2実施形態]
図7は、本発明の第2実施形態に係るAndroid(登録商標)のソフトウェア検知ルール生成装置31の概略的な構成を示すブロック図である。
また、図7には、アプリケーションデータベース(アプリケーションDB)51と、ルールデータベース(ルールDB)52も示してある。
【0095】
ここで、アプリケーションデータベース51は、第1実施形態に係る図1に示されるアプリケーションデータベース21と同様に、Android(登録商標)のアプリケーションを記憶する。そして、アプリケーションデータベース51は、正常なアプリケーションを記憶するデータベース(正常アプリケーションデータベース)と、マルウェア(悪性のアプリケーション)を記憶するデータベース(マルウェアデータベース)と、正常なものであるかあるいは悪性のものであるかが不明なアプリケーションを記憶するデータベース(不明アプリケーションデータベース)と、を有する。
【0096】
また、ルールデータベース52は、第1実施形態に係る図1に示されるルールデータベース22と同様に、ソフトウェア検知ルール生成装置31により有効であると検証されたマルウェア検知ルールを記憶する。
【0097】
本実施形態に係るソフトウェア検知ルール生成装置31について詳しく説明する。
本実施形態に係るソフトウェア検知ルール生成装置31は、複数ログ/ファイル抽出部41と、文字列抽出部42と、ルール生成部43と、ルール検証部44と、を備える。
【0098】
本実施形態に係るソフトウェア検知ルール生成装置31において行われる概略的な動作の例を示す。
複数ログ/ファイル抽出部41は、アプリケーションデータベース21のマルウェアデータベースに記憶されたマルウェアを入力し、入力したマルウェアを構成する挙動ログと構成ファイルについて、複数の種類のものを抽出する。複数ログ/ファイル抽出部41は、抽出した挙動ログや構成ファイルを文字列抽出部42に出力する。
【0099】
ここで、複数ログ/ファイル抽出部41が、マルウェアを構成する挙動ログと構成ファイルについて、複数を抽出する態様としては、様々な態様が用いられてもよい。第1の例として、複数ログ/ファイル抽出部41が、1個のマルウェアについて、複数の種類の挙動ログを抽出する態様、あるいは、複数の種類の構成ファイルを抽出する態様、あるいは、1種類以上の挙動ログと1種類以上の構成ファイルを抽出する態様を用いることができる。第2の例として、複数ログ/ファイル抽出部41が、あるマルウェアについて1種類の挙動ログまたは1種類の構成ファイルを抽出し、これとは異なる種類のもの(挙動ログまたは構成ファイル)を他のマルウェアについて抽出する態様を用いることができる。また、前記した第1の例と第2の例を組み合わせた態様を用いることもできる。
【0100】
文字列抽出部42は、複数ログ/ファイル抽出部41から入力された複数種類の抽出結果(挙動ログや構成ファイル)を解析し、この複数種類の抽出結果から、あらかじめ定められた手順(条件)で、文字列を抽出する。文字列抽出部42は、抽出した文字列に関する情報をルール生成部43に出力する。
【0101】
ルール生成部43は、文字列抽出部42から入力された文字列に関する情報に基づいて、マルウェア検知ルールを生成する。ルール生成部43は、生成したマルウェア検知ルールをルール検証部44に出力する。
【0102】
ルール検証部44は、第1実施形態に係る図1に示されるルール検証部14と同様に、ルール生成部43から入力されたマルウェア検知ルール(本実施形態では、マルウェア検知ルールの候補)について、有効性を検証する。ルール検証部44は、有効であると検証したマルウェア検知ルールをルールデータベース52に記憶させる。
【0103】
次に、本実施形態に係るソフトウェア検知ルール生成装置31において行われる具体的な動作の例を示す。
本実施形態では、挙動ログの中の一例であるカーネルログおよび構成ファイルの中の一例であるマニフェストファイルに関するマルウェア検知ルールを生成する場合を示す。
【0104】
複数ログ/ファイル抽出部41は、アプリケーションデータベース51のマルウェアデータベースに記憶された1個のマルウェアを入力し、入力したマルウェアを構成するカーネルログおよびマニフェストファイルを抽出する。複数ログ/ファイル抽出部41は、抽出したカーネルログおよびマニフェストファイルを文字列抽出部42に出力する。
ここで、複数ログ/ファイル抽出部41は、複数のマルウェアを入力する場合には、それぞれのマルウェアのカーネルログおよびマニフェストファイルを抽出して取得し、それぞれのマルウェアのカーネルログおよびマニフェストファイルを文字列抽出部42に出力する。
【0105】
文字列抽出部42は、複数ログ/ファイル抽出部41から入力されたカーネルログおよびマニフェストファイルについて、それぞれを解析し、それぞれから、あらかじめ定められた手順(条件)で、マルウェア検知ルールの生成に必要となる文字列を抽出する。文字列抽出部42は、抽出した文字列に関する情報をルール生成部43に出力する。
ここで、文字列抽出部42は、複数のマルウェアのカーネルログおよびマニフェストファイルを入力する場合には、それぞれのマルウェアのカーネルログおよびマニフェストファイルから文字列を抽出して取得し、それぞれのマルウェアのカーネルログおよびマニフェストファイルごとに、抽出した文字列に関する情報を文字列抽出部42に出力する。
【0106】
文字列抽出の処理手順の例を示す。
カーネルログにおける文字列抽出の処理手順としては、第1実施形態で示した(カーネルログにおける文字列抽出の処理手順1)〜(カーネルログにおける文字列抽出の処理手順2)と同様な処理手順を用いることができる。具体例として、文字列抽出部42は、カーネルログにおいて、システムコール「execve」の行の部分からファイル名のデータを文字列として抽出すること、あるいは、システムコール「connect」の行の部分から通信相手のデータを文字列として抽出することができる。
【0107】
また、文字列抽出の処理手順として、(マニフェストファイルにおける文字列抽出の処理手順1)〜(マニフェストファイルにおける文字列抽出の処理手順2)を示す。
(マニフェストファイルにおける文字列抽出の処理手順1)
文字列抽出部42は、マルウェアのマニフェストファイルの全て(全ての行)を文字列抽出の対象とし、または、当該マニフェストファイルからあらかじめ定められた特定のパーミッション情報の行の部分を抽出して、抽出した特定のパーミッション情報の行の部分のみを文字列抽出の対象とする。
(マニフェストファイルにおける文字列抽出の処理手順2)
文字列抽出部42は、文字列抽出の対象(マニフェストファイルの全ての行、または、特定のパーミッション情報の行の部分)を構成する各行から、あらかじめ定められた条件(この例では、パーミッション情報)に応じて文字列を抽出する。
【0108】
文字列抽出部42からルール生成部43に出力する、抽出した文字列に関する情報について説明する。
文字列抽出部42は、抽出した文字列に関する情報として、カーネルログから抽出した文字列のデータと、この抽出に用いたシステムコールを含み、これら(文字列のデータとシステムコール)が対応付けられるとともに、マニフェストファイルから抽出した文字列のデータと、この抽出に用いた抽出情報の種別(この例では、「パーミッション情報」という種別)を含み、これら(文字列のデータと抽出情報の種別)が対応付けられる情報を用いる。これにより、抽出した文字列に関する情報に基づいて、カーネルログにおいてどのような文字列がどのようなシステムコールに出現したか、および、マニフェストファイルにおいてどのような文字列がどのような抽出情報の種別に出現したかを把握することができる。
【0109】
なお、抽出した文字列に関する情報としては、上記の例に限定されず、例えば、カーネルログについては、抽出した文字列のデータに、この抽出に用いたシステムコールを特定する情報が付与されれば、他の態様の情報が用いられてもよい。また、マニフェストファイルについては、抽出した文字列のデータに、この抽出に用いた抽出情報の種別を特定する情報が付与されれば、他の態様の情報が用いられてもよい。
【0110】
また、文字列抽出部42は、一度出現して抽出した文字列の組み合わせ(例えば、同一のシステムコールと文字列との対応と、同一の文字列からなるパーミッション情報との組み合わせ)については、二度目以降に出現した場合には抽出しない(または、抽出したときには、削除する)。つまり、同じ文字列の組み合わせの情報については、最初の1回だけ採用する。
【0111】
なお、このような同じ文字列の組み合わせの情報の重複は、例えば、1個のマルウェアにおいて存在する場合や、あるいは、複数のマルウェアにわたって存在する場合があり得る。
また、他の構成例として、同じ文字列の組み合わせの情報について重複して抽出して採用する構成が用いられてもよい。
【0112】
また、文字列抽出部42は、抽出した文字列に関する情報に、時系列順の番号(タイムスタンプ)の情報を付与して含めることもできる。これにより、1個のマルウェア(この例では、カーネルログあるいはマニフェストファイルのそれぞれ)において、抽出した文字列に関する情報が複数ある場合には、文字列抽出部42は、タイムスタンプが付与された複数の抽出した文字列に関する情報を列挙して、時系列データとして生成する。
【0113】
なお、時系列順の番号としては、例えば、1個のマルウェア(この例では、カーネルログあるいはマニフェストファイルのそれぞれ)において、文字列(または、システムコールあるいは抽出情報の種別)が出現した行が早い方に小さい番号を付与し、連続の番号とする。この場合、2つ以上の文字列(または、システムコールあるいは抽出情報の種別)が同一の行に出現したときには、これら全てに同一の番号を付与する。
【0114】
ここで、本実施形態では、抽出した文字列に関する情報に基づいて、時系列的な処理(例えば、時系列アソシエーションの処理)を行うために、抽出した文字列に関する情報に時系列順の番号(タイムスタンプ)の情報を付与するが、他の構成例として、タイムスタンプの情報を使用する必要がない場合には、タイムスタンプの情報は用いられなくてもよい。
【0115】
他の例として、抽出した文字列に関する情報としては、上記の例に限定されず、それぞれの種類の挙動ログや構成ファイルについて独立した情報が用いられてもよい。例えば、抽出した文字列に関する情報として、カーネルログとマニフェストファイルのそれぞれについて独立した情報を用いることもできる。具体的には、文字列抽出部42は、抽出した文字列に関する情報として、カーネルログから抽出した文字列のデータと、この抽出に用いたシステムコールを含み、これら(文字列のデータとシステムコール)が対応付けられる情報を用い、また、抽出した文字列に関する情報として、マニフェストファイルから抽出した文字列のデータと、この抽出に用いた抽出情報の種別(この例では、「パーミッション情報」という種別)を含み、これら(文字列のデータと抽出情報の種別)が対応付けられる情報を用いる。
【0116】
この他の例では、文字列抽出部42は、一度出現して抽出した文字列(例えば、同一のシステムコールと文字列との対応、同一の文字列からなるパーミッション情報)については、二度目以降に出現した場合には抽出しない(または、抽出したときには、削除する)。つまり、ある1種類の挙動ログまたは構成ファイルについて、同じ文字列の情報については、最初の1回だけ採用する。
なお、このような同じ文字列の情報の重複は、例えば、1個のマルウェアにおいて存在する場合や、あるいは、複数のマルウェアにわたって存在する場合があり得る。
また、他の構成例として、同じ文字列の情報について重複して抽出して採用する構成が用いられてもよい。
【0117】
ルール生成部43は、文字列抽出部42から入力された文字列に関する情報に基づいて、マルウェア検知ルールを生成する。ルール生成部43は、生成したマルウェア検知ルールをルール検証部44に出力する。
本実施形態では、ルール生成部43は、マルウェア検知ルールの生成対象となる全てのマルウェアについて、生成された時系列データを用いて、アソシエーション分析の処理または時系列アソシエーション分析の処理のうちのいずれかを行い、これによりマルウェア検知ルールを導出する。
【0118】
ここで、ルール生成部43によりアソシエーション分析の処理または時系列アソシエーション分析の処理のうちのいずれを行うかについては、例えば、あらかじめいずれかの処理に設定されてもよく、または、ソフトウェア検知ルール生成装置31に対するユーザ(人)による操作あるいは外部の装置からの制御(信号)に応じて、実行する処理を切り替えることが可能な構成が用いられてもよい。
【0119】
また、アソシエーション分析や時系列アソシエーション分析としては、それぞれ、一般的に知られる技術を用いることができる。
なお、これらの概略は、第1実施形態で説明したものと同様である。
【0120】
図8(a)、図8(b)、図8(c)を参照して、アソシエーション分析の具体例を示す。
図8(a)は、カーネルログにおけるシステムコールと文字列との対応の一例を示す図である。
システムコールのデータとして、{システムコール「connect」において、通信相手(接続先のアドレスあるいは他の識別情報など)「example.com」の文字列が出現する}という情報が取得されているとする。
【0121】
図8(b)は、マニフェストファイルにおけるパーミッション情報の文字列の一例を示す図である。
パーミッション情報のデータとして、{パーミッション情報として、「READ_PHONE_STATE」の文字列が出現する}という情報が取得されているとする。
ここで、「READ_PHONE_STATE」は、端末固有の情報を抽出するものである。
【0122】
図8(c)は、図8(a)に示されるシステムコールおよび対応する文字列が存在するとともに、図8(b)に示されるパーミッション情報の文字列が存在した場合における、アソシエーション分析の処理により生成されるルール(アソシエーションルール生成結果)の一例を示す図である。
この例では、アソシエーションルール生成結果として、1つのルールが生成される。この場合、ルール生成部43は、この1つのルールを、マルウェア検知ルールとして、ルール検証部44に出力する。
【0123】
このルールは、[カーネルログに関して{システムコール「connect」において、通信相手(接続先のアドレスあるいは他の識別情報など)「example.com」の文字列が出現する}ことが成立するとともに、マニフェストファイルに関して{パーミッション情報として、「READ_PHONE_STATE」の文字列が出現する}ことが成立する]というルールである。
【0124】
ここで、図8(c)に示されるルールの例では、カーネルログにおいて特定のシステムコールの文字列が出現するとともに、マニフェストファイルにおいて特定のパーミッション情報の文字列が出現すればルールに該当する(ルールを満たす)こととし、これらの文字列などが出現する時間(本実施形態では、行)の前後については考慮していない。
なお、ここでは、アソシエーション分析の例を示したが、他の例として、時系列アソシエーション分析が用いられてもよい。
【0125】
ルール検証部44は、ルール生成部43から入力されたマルウェア検知ルール(本実施形態では、マルウェア検知ルールの候補)について、有効性を検証する。ルール検証部44は、有効であると検証したマルウェア検知ルールをルールデータベース52に記憶させる。
ここで、ルール検証部44により行われる動作は、第1実施形態に係る図1に示されるルール検証部14について説明したものと同様である。
【0126】
以上のように、本実施形態に係るソフトウェア検知ルール生成装置31では、Android(登録商標)向けの悪意のあるアプリケーション(マルウェア)に関する挙動ログや構成ファイルの中から、マルウェアの検知に適した特徴的な文字列を自動的に抽出し、マルウェア検知ルールを自動的に生成する。
【0127】
具体的には、本実施形態に係るソフトウェア検知ルール生成装置31では、複数ログ/ファイル抽出部41が、マルウェアを構成する挙動ログまたは構成ファイルのうちの複数種類を抽出し、文字列抽出部42が、複数ログ/ファイル抽出部41により抽出された挙動ログまたは構成ファイルのうちの複数種類のそれぞれから、あらかじめ定められた条件(例えば、システムコール、パーミッション情報など)に応じた文字列を抽出し、ルール生成部43が、文字列抽出部42により抽出された文字列に基づいて、挙動ログまたは構成ファイルのうちの複数種類について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成し、ルール検証部44が、ルール生成部43により生成されたマルウェア検知ルールの有効性を検証する。これにより、マルウェアの検知を高精度に行うことができるソフトウェア検知ルール(マルウェア検知ルール)を生成する。
【0128】
本実施形態に係るソフトウェア検知ルール生成装置31によれば、例えば、従来のシグネチャベースの方式では得ることができなかった、マルウェアに共通する文字列の組み合わせからなるルール(例えば、図8(c)に示されるルール)を得ることができる。これにより、より高精度にマルウェアやその亜種を発見することができ、さらに、積極的誤検知(False Positive)が少ないマルウェア検知ルールを生成することができる。
【0129】
また、従来では、Android(登録商標)向けのアプリケーションが安全であるか否かを解析するオペレータ(人)が、マルウェアの検知に利用する文字列を、手動で抽出しており、マルウェア検知ルールを生成する作業にコストや時間を要していたが、本実施形態に係るソフトウェア検知ルール生成装置31によれば、このようなコストや時間を大幅に削減することができる。
【0130】
ここで、本実施形態では、第1実施形態のようにそれぞれの種類ごとの挙動ログまたは構成ファイルに対して処理を行ってルールを生成するのではなく、複数の種類(全ての種類でもよい)の挙動ログまたは構成ファイルから文字列を抽出した後に、アソシエーション分析を行うことで、複数の種類(全ての種類でもよい)の挙動ログまたは構成ファイルを考慮したルールを生成する。これにより、例えば、カーネルログにおける文字列とマニフェストファイルにおけるパーミッション情報との組み合わせによるルールなどを生成することができる。
【0131】
具体的に、図8(c)に示される例では、マルウェアを構成するマニフェストファイルの中に端末固有の情報を抽出する「READ_PHONE_STATE」というパーミッション情報が存在し、且つ、当該マルウェアを構成するカーネルログのファイル中にアプリケーションの特定の通信先がある(この例では、connectに対応してexample.comという文字列が存在する)という組み合わせのルールを生成することができる。この例では、「端末固有の情報を取得し、さらに、(例えば、マルウェアに頻出する)通信相手「example.com」に対して通信する」ことからマルウェアの可能性が高いとみなしたルールを生成することができる。これにより、Android(登録商標)向けのアプリケーションに特化したマルウェアの検出を容易化することができる。
【0132】
具体例として、本実施形態に係るソフトウェア検知ルール生成装置31では、マルウェアの挙動ログや構成ファイルに含まれる、攻撃に関わる特徴的な文字列の抽出作業において、精度の高い文字列を自動的に抽出することができ、抽出した文字列を使用して、マルウェアに頻出する文字列の組み合わせを導出することにより、精度の高いマルウェア検知ルールを自動的に生成することができる。
例えば、挙動ログの一つであるカーネルログにはAndroid(登録商標)のアプリケーションがいずれのファイルを実行したのかを示す記録や、誰と通信したのかを示す記録が含まれており、これらに関連する文字列を抽出することができる。また、構成ファイルの一つであるマニフェストファイルに含まれるパーミッション情報はAndroid(登録商標)のアプリケーションに特有の文字列であり、マルウェアに用いられやすいパーミッション、要するに文字列を自動的に抽出することができる。
このような方法により、マルウェアの見逃し(False Negative)や積極的誤検知(False Positive)を低減することができる。
【0133】
このように、本実施形態に係るソフトウェア検知ルール生成装置31では、マルウェアを構成する挙動ログや構成ファイルに含まれる文字列の組み合わせを導出する際に、第1実施形態のように単一の種類の挙動ログまたは構成ファイルに限らず、挙動ログや構成ファイルのうちの複数の種類のものの中に含まれる文字列の組み合わせを選択することにより、Android(登録商標)向けのアプリケーションに特有な複数種類の挙動ログや構成ファイルの関連性を反映させたマルウェア検知ルールを生成することができる。
【0134】
ここで、マルウェア検知ルールを生成するために文字列を抽出する対象とする挙動ログや構成ファイルとしては、任意のものが用いられてもよい。また、挙動ログや構成ファイルからどのような文字列を抽出するかについては、任意の態様が用いられてもよい。
また、本実施形態では、挙動ログと構成ファイルのうちの2種類(本実施形態では、カーネルログとマニフェストファイル)のそれぞれから抽出された文字列(合わせて、2つの文字列)を用いたルールを生成する場合を示したが、他の例として、挙動ログや構成ファイルのうちでルールを生成するために使用するものの種類の数は3種類以上であってもよく、また、ルールを生成するために使用する文字列の数は3つ以上であってもよい。
【0135】
また、本実施形態では、ルール検証部44を備えたソフトウェア検知ルール生成装置31を示したが、第1実施形態において述べたのと同様に、ルール検証部44を備えないソフトウェア検知ルール生成装置31を実施することも可能である。
【0136】
[第3実施形態]
図9は、本発明の第3実施形態に係るAndroid(登録商標)のソフトウェア検知ルール生成システムの概略的な構成を示すブロック図である。
本実施形態に係るソフトウェア検知ルール生成システムは、アプリケーションデータベース(アプリケーションDB)71と、2つのソフトウェア検知ルール生成装置(第1のソフトウェア検知ルール生成装置61、第2のソフトウェア検知ルール生成装置62)と、ルールデータベース(ルールDB)72と、を備える。
【0137】
アプリケーションデータベース71は、第1実施形態に係る図1に示されるアプリケーションデータベース21と同様に、Android(登録商標)のアプリケーションを記憶する。そして、アプリケーションデータベース71は、正常なアプリケーションを記憶するデータベース(正常アプリケーションデータベース)と、マルウェア(悪性のアプリケーション)を記憶するデータベース(マルウェアデータベース)と、正常なものであるかあるいは悪性のものであるかが不明なアプリケーションを記憶するデータベース(不明アプリケーションデータベース)と、を有する。
【0138】
第1のソフトウェア検知ルール生成装置61は、第1実施形態に係る図1に示されるソフトウェア検知ルール生成装置1と概略的に同様な構成を有している。
そして、第1のソフトウェア検知ルール生成装置61は、アプリケーションデータベース71に記憶されたアプリケーションに基づいて、マルウェアを検知するルール(マルウェア検知ルール)をソフトウェア検知ルールとして生成し、生成したマルウェア検知ルールを検証する。第1のソフトウェア検知ルール生成装置61は、有効であると検証されたマルウェア検知ルールをルールデータベース72に記憶させる。
【0139】
第2のソフトウェア検知ルール生成装置62は、第1実施形態に係る図1に示されるソフトウェア検知ルール生成装置1と概略的に同様な構成を有している。
そして、第2のソフトウェア検知ルール生成装置62は、アプリケーションデータベース71に記憶されたアプリケーションに基づいて、マルウェアを検知するルール(マルウェア検知ルール)をソフトウェア検知ルールとして生成し、生成したマルウェア検知ルールを検証する。第2のソフトウェア検知ルール生成装置62は、有効であると検証されたマルウェア検知ルールをルールデータベース72に記憶させる。
【0140】
ルールデータベース72は、第1のソフトウェア検知ルール生成装置61により有効であると検証されたマルウェア検知ルールを記憶するとともに、第2のソフトウェア検知ルール生成装置62により有効であると検証されたマルウェア検知ルールを記憶する。
ルールデータベース72に記憶されたマルウェア検知ルールは、マルウェアの検知に使用することができる。
【0141】
ここで、本実施形態では、アプリケーションデータベース71とルールデータベース72は、それぞれ、2つのソフトウェア検知ルール生成装置(第1のソフトウェア検知ルール生成装置61、第2のソフトウェア検知ルール生成装置62)に共通となっている。
【0142】
また、本実施形態では、第1のソフトウェア検知ルール生成装置61においてマルウェア検知ルールを生成するために単一ログ/ファイル抽出部(図1に示される単一ログ/ファイル抽出部11に相当するもの)によりマルウェアから抽出する挙動ログまたは構成ファイルの種類と、第2のソフトウェア検知ルール生成装置62においてマルウェア検知ルールを生成するために単一ログ/ファイル抽出部(図1に示される単一ログ/ファイル抽出部11に相当するもの)によりマルウェアから抽出する挙動ログまたは構成ファイルの種類とを異ならせて、設定してある。
【0143】
つまり、本実施形態では、第1のソフトウェア検知ルール生成装置61と第2のソフトウェア検知ルール生成装置62とで、マルウェアから異なる種類の挙動ログまたは構成ファイルを抽出して、マルウェア検知ルールを生成する。
これにより、ルールデータベース72には、各ソフトウェア検知ルール生成装置61、62から、マルウェアから異なる種類の挙動ログまたは構成ファイルを抽出して生成されたマルウェア検知ルールが記憶される。
【0144】
具体例として、マルウェアを構成する挙動ログの例であるカーネルログ、アプリケーションログ、パケットキャプチャログなどや、マルウェアを構成する構成ファイルの例であるマニフェストファイルなどについて、2種類のものに関して、それぞれ、第1のソフトウェア検知ルール生成装置61と第2のソフトウェア検知ルール生成装置62により、マルウェア検知ルールを生成してルールデータベース72に記憶させる。
そして、ルールデータベース72に記憶されたマルウェア検知ルールについて、前記した2種類のものを複合的に利用することにより、Android(登録商標)向けのマルウェアを検出する。
【0145】
一例として、第1のソフトウェア検知ルール生成装置61によりカーネルログに基づいてマルウェア検知ルールを生成し、第2のソフトウェア検知ルール生成装置62によりマニフェストファイルに基づいてマルウェア検知ルールを生成する。これらのマルウェア検知ルールが記憶されたルールデータベース72を利用して、例えば、まず、カーネルログから生成されたマルウェア検知ルールを使用してマルウェアである可能性があるアプリケーション(当該マルウェア検知ルールに該当するアプリケーション)を抽出し、その後、当該抽出したアプリケーションについて、マニフェストファイルから生成されたマルウェア検知ルールを使用してマルウェアであるか否かを判定する。
このように、複合的にマルウェア検知ルールを利用することで、例えば、積極的誤検知(False Positive)を低減しながら、高精度にマルウェアを検出することができる。
【0146】
以上のように、本実施形態に係るソフトウェア検知ルール生成システムでは、異なる種類の挙動ログや構成ファイルについて、マルウェア検知ルールを生成することができる。
従って、本実施形態に係るソフトウェア検知ルール生成システムによれば、異なる種類の挙動ログや構成ファイルについて生成されたマルウェア検知ルールを複合的に使用して、Android(登録商標)向けのアプリケーションに特化したマルウェアの検出を容易化することができる。
【0147】
ここで、本実施形態では、2つのソフトウェア検知ルール生成装置(第1のソフトウェア検知ルール生成装置61、第2のソフトウェア検知ルール生成装置62)を備える構成を示したが、他の構成例として、3つ以上のソフトウェア検知ルール生成装置を備える構成が用いられてもよく、この場合、例えば、これら3つ以上のソフトウェア検知ルール生成装置がアプリケーションデータベース71とルールデータベース72のそれぞれと接続される。
【0148】
また、本実施形態では、複数のソフトウェア検知ルール生成装置に共通のアプリケーションデータベース71を備える構成を示したが、他の構成例として、ソフトウェア検知ルール生成装置ごとに異なるアプリケーションデータベースを備える構成が用いられてもよい。
【0149】
また、本実施形態では、複数のソフトウェア検知ルール生成装置のそれぞれとして、全て、第1実施形態に係る図1に示されるソフトウェア検知ルール生成装置1と概略的に同様な構成を有するものを用いる構成を示したが、他の構成例として、複数のソフトウェア検知ルール生成装置のうちの一部として、第1実施形態に係る図1に示されるソフトウェア検知ルール生成装置1と概略的に同様な構成を有するものを用い、残りとして、第2実施形態に係る図7に示されるソフトウェア検知ルール生成装置31と概略的に同様な構成を有するものを用いる構成が実施されてもよい。さらに他の構成例として、複数のソフトウェア検知ルール生成装置のうちのそれぞれとして、全て、第2実施形態に係る図7に示されるソフトウェア検知ルール生成装置31と概略的に同様な構成を有するものを用いる構成が実施されてもよい。
【0150】
また、本実施形態では、複数のソフトウェア検知ルール生成装置のそれぞれにルール検証部(例えば、図1に示されるルール検証部14または図7に示されるルール検証部44に相当するもの)を備える構成を示したが、他の構成例として、複数のソフトウェア検知ルール生成装置の一部または全部にルール検証部を備えない構成が実施されてもよい。
【0151】
(以上の実施形態のまとめ)
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【0152】
また、以上に示した各実施形態に係る各装置の機能(例えば、図1や図7や図9に示されるソフトウェア検知ルール生成装置1、31、61、62における単一ログ/ファイル抽出部11または複数ログ/ファイル抽出部41、文字列抽出部12、42、ルール生成部13、43、あるいはルール検証部14、44のうちの1つ以上の機能)を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、処理を行ってもよい。
【0153】
なお、ここで言う「コンピュータシステム」とは、オペレーティング・システム(Operating System;OS)や周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことを言う。
【0154】
さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことを言う。
また、上記のプログラムは、前述した機能の一部を実現するためのものであっても良い。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0155】
1、31、61、62…ソフトウェア検知ルール生成装置、11…単一ログ/ファイル抽出部、12、42…文字列抽出部、13、43…ルール生成部、14、44…ルール検証部、21、51、71…アプリケーションデータベース、22、52、72…ルールデータベース、41…複数ログ/ファイル抽出部

【特許請求の範囲】
【請求項1】
マルウェアを構成する挙動ログまたは構成ファイルのうちの単一の挙動ログまたは単一の構成ファイルを抽出する単一ログ/ファイル抽出部と、
前記単一ログ/ファイル抽出部により抽出された単一の挙動ログまたは単一の構成ファイルから、あらかじめ定められた条件に応じた文字列を、2つ以上の異なる条件について抽出する文字列抽出部と、
前記文字列抽出部により抽出された文字列に基づいて、2つ以上の異なる条件について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成するルール生成部と、
を備えたことを特徴とするソフトウェア検知ルール生成装置。
【請求項2】
マルウェアを構成する挙動ログまたは構成ファイルのうちの複数種類を抽出する複数ログ/ファイル抽出部と、
前記複数ログ/ファイル抽出部により抽出された挙動ログまたは構成ファイルのうちの複数種類のそれぞれから、あらかじめ定められた条件に応じた文字列を抽出する文字列抽出部と、
前記文字列抽出部により抽出された文字列に基づいて、挙動ログまたは構成ファイルのうちの複数種類について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成するルール生成部と、
を備えたことを特徴とするソフトウェア検知ルール生成装置。
【請求項3】
さらに、前記ルール生成部により生成されたマルウェア検知ルールの有効性を検証するルール検証部を備えた、
ことを特徴とする請求項1または請求項2に記載のソフトウェア検知ルール生成装置。
【請求項4】
単一ログ/ファイル抽出部が、マルウェアを構成する挙動ログまたは構成ファイルのうちの単一の挙動ログまたは単一の構成ファイルを抽出し、
文字列抽出部が、前記単一ログ/ファイル抽出部により抽出された単一の挙動ログまたは単一の構成ファイルから、あらかじめ定められた条件に応じた文字列を、2つ以上の異なる条件について抽出し、
ルール生成部が、前記文字列抽出部により抽出された文字列に基づいて、2つ以上の異なる条件について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成する、
ことを特徴とするソフトウェア検知ルール生成方法。
【請求項5】
複数ログ/ファイル抽出部が、マルウェアを構成する挙動ログまたは構成ファイルのうちの複数種類を抽出し、
文字列抽出部が、前記複数ログ/ファイル抽出部により抽出された挙動ログまたは構成ファイルのうちの複数種類のそれぞれから、あらかじめ定められた条件に応じた文字列を抽出し、
ルール生成部が、前記文字列抽出部により抽出された文字列に基づいて、挙動ログまたは構成ファイルのうちの複数種類について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成する、
ことを特徴とするソフトウェア検知ルール生成方法。
【請求項6】
単一ログ/ファイル抽出部が、マルウェアを構成する挙動ログまたは構成ファイルのうちの単一の挙動ログまたは単一の構成ファイルを抽出するステップと、
文字列抽出部が、前記単一ログ/ファイル抽出部により抽出された単一の挙動ログまたは単一の構成ファイルから、あらかじめ定められた条件に応じた文字列を、2つ以上の異なる条件について抽出するステップと、
ルール生成部が、前記文字列抽出部により抽出された文字列に基づいて、2つ以上の異なる条件について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成するステップと、
をコンピュータに実行させるためのソフトウェア検知ルール生成プログラム。
【請求項7】
複数ログ/ファイル抽出部が、マルウェアを構成する挙動ログまたは構成ファイルのうちの複数種類を抽出するステップと、
文字列抽出部が、前記複数ログ/ファイル抽出部により抽出された挙動ログまたは構成ファイルのうちの複数種類のそれぞれから、あらかじめ定められた条件に応じた文字列を抽出するステップと、
ルール生成部が、前記文字列抽出部により抽出された文字列に基づいて、挙動ログまたは構成ファイルのうちの複数種類について条件に応じて特定の文字列が出現するという要件を含むマルウェア検知ルールを生成するステップと、
をコンピュータに実行させるためのソフトウェア検知ルール生成プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−92981(P2013−92981A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2011−236053(P2011−236053)
【出願日】平成23年10月27日(2011.10.27)
【出願人】(000208891)KDDI株式会社 (2,700)