特許第6860070号(P6860070)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧
特許6860070分析装置、ログの分析方法及び分析プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6860070
(24)【登録日】2021年3月30日
(45)【発行日】2021年4月14日
(54)【発明の名称】分析装置、ログの分析方法及び分析プログラム
(51)【国際特許分類】
   G06F 11/34 20060101AFI20210405BHJP
   G06F 21/55 20130101ALI20210405BHJP
   G06F 21/56 20130101ALI20210405BHJP
【FI】
   G06F11/34 176
   G06F21/55 320
   G06F21/56 360
【請求項の数】10
【全頁数】47
(21)【出願番号】特願2019-524817(P2019-524817)
(86)(22)【出願日】2017年6月23日
(86)【国際出願番号】JP2017023136
(87)【国際公開番号】WO2018235252
(87)【国際公開日】20181227
【審査請求日】2019年12月9日
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100124154
【弁理士】
【氏名又は名称】下坂 直樹
(72)【発明者】
【氏名】池田 聡
【審査官】 多賀 実
(56)【参考文献】
【文献】 国際公開第2016/092834(WO,A1)
【文献】 特開2014−153723(JP,A)
【文献】 特開2002−259168(JP,A)
【文献】 岡野 靖 ほか,「データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定」,コンピュータセキュリティシンポジウム2016論文集(情報処理学会シンポジウムシリーズ),一般社団法人情報処理学会,2016年10月,第2016巻, 第2号,pp.640-646,特に第3章
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 11/28−11/36
G06F 13/00
G06F 21/55−21/56
G06N 3/00−99/00
(57)【特許請求の範囲】
【請求項1】
ソフトウェア・プログラムの動作を表す情報が記録された、ログエントリである第1ログエントリから抽出した第1特徴量と、前記ログエントリである1以上の第2ログエントリから抽出した、前記第1特徴量とは異なる第2特徴量と、を用いて、前記第1ログエントリに関する特徴情報を作成可能に構成された特徴抽出手段と、
前記第1ログエントリに関する前記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の前記ログエントリに関する重要度を判定可能な分析モデルを作成する分析モデル作成手段と、を備える
分析装置。
【請求項2】
前記特徴抽出手段は、それぞれの前記第2ログエントリに記録された情報を計数することで作成される情報であるコンテキスト情報を、前記第2特徴量として抽出する
請求項1に記載の分析装置。
【請求項3】
前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
前記特徴抽出手段は、ある前記ソフトウェア・プログラムについて記録された全ての前記第2ログエントリに記録された情報を用いて、
前記ソフトウェア・プログラムの実行過程で実行されたプロセス毎の、前記第2ログエントリの数に関する情報と、
前記第2ログエントリの数を、それぞれの前記ログ種別について集計したヒストグラムを表す情報と、
それぞれの前記ログ種別について集計した、前記ソフトウェア・プログラムの実行過程でアクセスされたリソースの数に関する情報と、
のいずれか1つ以上を算出することで、前記コンテキスト情報を作成する
請求項2に記載の分析装置。
【請求項4】
前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
前記特徴抽出手段は、前記第1ログエントリが記録されたプロセスと同じプロセスについて記録された複数の前記第2ログエントリに記録された情報を用いて、
前記第2ログエントリの数を、それぞれの前記ログ種別について集計したヒストグラムを表す情報と、
それぞれの前記ログ種別について集計した、前記ソフトウェア・プログラムの実行過程でアクセスされたリソースの数に関する情報と、
前記ソフトウェア・プログラムの実行過程で記録された前記ログエントリの総数と、前記第1ログエントリが記録されたプロセスと同じプロセスについて記録された前記第2ログエントリの総数と、の割合に関する情報と、
のいずれか1つ以上を算出することで、前記コンテキスト情報を作成する
請求項2に記載の分析装置。
【請求項5】
前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
前記特徴抽出手段は、前記第1ログエントリが記録さたタイミングから、時系列において特定の範囲内に記録された複数の前記第2ログエントリに記録された情報を用いて、
前記第2ログエントリの数を、それぞれの前記ログ種別について集計したヒストグラムを表す情報と、
前記第1ログエントリが記録されたタイミングから、時系列において特定の範囲内に記録された複数の前記第2ログエントリの総数と、前記第1ログエントリが記録されたタイミングから、時系列において特定の範囲内に記録された複数の前記第2ログエントリのうち、前記第1ログエントリと同じプロセスについて記録された前記第2ログエントリの総数と、の割合に関する情報と、
のいずれか1つ以上を算出することで、前記コンテキスト情報を作成する
請求項2に記載の分析装置。
【請求項6】
前記特徴抽出手段は、それぞれの前記第2ログエントリに記録された情報から抽出した特徴量を用いて作成される情報であるコンテキスト情報を、前記第2特徴量として抽出する
請求項1に記載の分析装置。
【請求項7】
前記特徴抽出手段は、前記第1ログエントリに対する前記第1特徴量と同様の特徴量を、各前記第2ログエントリから抽出し、各前記第2ログエントリから抽出した特徴量を用いて、前記第2特徴量を作成する
請求項1乃至請求項6のいずれか一項に記載の分析装置。
【請求項8】
前記特徴抽出手段は、
前記第1ログエントリに記録された情報を文字列及び数値の少なくとも一方を用いて表すデータから、前記第1特徴量を抽出し、
前記第2ログエントリに記録された情報を文字列及び数値の少なくとも一方を用いて表するデータを、全ての前記第2ログエントリについて統合することで統合データを作成し、その統合データから前記第1ログエントリに対する前記第1特徴量と同様の特徴量を抽出することで、前記第2特徴量を作成する
請求項7に記載の分析装置。
【請求項9】
ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、前記ログエントリである1以上の第2ログエントリから抽出した、前記第1特徴量とは異なる第2特徴量と、を用いて、前記第1ログエントリに関する特徴情報を作成し、
前記第1ログエントリに関する前記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の前記ログエントリに関する重要度を判定可能な分析モデルを作成する
ログの分析方法。
【請求項10】
ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、前記ログエントリである1以上の第2ログエントリから抽出した、前記第1特徴量とは異なる第2特徴量と、を用いて、前記第1ログエントリに関する特徴情報を作成する処理と、
前記第1ログエントリに関する前記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の前記ログエントリに関する重要度を判定可能な分析モデルを作成する処理とを、コンピュータに、実行させる
分析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ログを分析する技術に関する。
【背景技術】
【0002】
ソフトウェア・プログラムの活動を検知して分析する技術として、ソフトウェア・プログラムが実行された際に記録されたログを分析する技術をもちいることができる。
【0003】
ログの分析に関連する技術として、例えば、以下の特許文献が知られている。
【0004】
特許文献1には、ある情報システムに関するログの記録をフィルタリング(制限)する条件を設定する操作画面を、ユーザに対して提示する技術が記載されている。
【0005】
特許文献2には、ユーザ毎に作成された、電子ファイルに対する操作の重要度を表すモデルと、ユーザにより実行された電子ファイルに対する操作を表す情報とから、当該電子ファイルの価値を算出する技術が記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2010−218313号公報
【特許文献2】特開2010−204824号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ログを分析する技術は、例えば、悪意のあるソフトウェア・プログラム(マルウェア等)の分析にも適用可能である。この場合、あるソフトウェア・プログラムの活動に応じて記録されるログを分析することで、分析者は、そのソフトウェア・プログラムが悪意のある活動を実行するか否かを調査する。以下、分析対象のソフトウェア・プログラムを、検体(サンプル(sample))と記載することがある。
【0008】
検体によっては、記録されるログが多くなることがある。また、セキュリティに関連する技術知識を習得することは必ずしも容易ではなく、分析者の経験、習熟度によって、ログを適切に分析することが困難なことがある。即ち、記録されたログのうち、着目すべき重要な部分を判断することは、分析者にとって困難なことがある、という問題がある。
【0009】
これに対して、上記特許文献1に記載された技術は、ユーザが手作業でログのフィルタリングを設定するための技術である。また、上記特許文献2に記載された技術は、電子ファイルに関するユーザの操作及び価値判断に応じて、ある電子ファイルの価値を判定する技術である。即ち、上記各特許文献に記載された技術は、上述した問題を解決可能な技術ではない。
【0010】
本開示に係る技術は、このような事情を鑑みて開発されたものである。即ち、本開示は、あるログの重要性を適切に判定可能な技術を提供することを、主たる目的の一つとする。
【課題を解決するための手段】
【0011】
上記目的を達成すべく、本開示の一態様に係る分析装置は、以下のような構成を備える。即ち、本開示の一態様に係る分析装置は、ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、上記ログエントリである1以上の第2ログエントリから抽出した、上記第1特徴量とは異なる第2特徴量と、を用いて、上記第1ログエントリに関する特徴情報を作成可能に構成された特徴抽出部と、上記第1ログエントリに関する上記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の上記ログエントリに関する重要度を判定可能な分析モデルを作成する分析モデル作成部と、を備える。
【0012】
また、本開示の他の一態様に係る分析方法は、以下のような構成を備える。即ち、本開示の一態様に係る分析方法は、ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、上記ログエントリである1以上の第2ログエントリから抽出した、上記第1特徴量とは異なる第2特徴量と、を用いて、上記第1ログエントリに関する特徴情報を作成し、上記第1ログエントリに関する上記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の上記ログエントリに関する重要度を判定可能な分析モデルを作成することを含む。
【0013】
また、上記目的は、上記構成を有する分析装置、分析方法等をコンピュータによって実現するコンピュータ・プログラム(分析プログラム)、及び、そのコンピュータ・プログラムが格納されているコンピュータ読み取り可能な記録媒体等によっても達成される。
【0014】
即ち、本開示の他の一態様に係る分析プログラムは、以下のような構成を備える。即ち、本開示の一態様に係る分析プログラムは、ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、上記ログエントリである1以上の第2ログエントリから抽出した、上記第1特徴量とは異なる第2特徴量と、を用いて、上記第1ログエントリに関する特徴情報を作成する処理と、上記第1ログエントリに関する上記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の上記ログエントリに関する重要度を判定可能な分析モデルを作成する処理とを、コンピュータに、実行させる。なお、本開示の一態様に係る記録媒体には、上記したコンピュータ・プログラムが記録されてもよい。
【発明の効果】
【0015】
本開示によれば、あるログの重要性を適切に判定することができる。
【図面の簡単な説明】
【0016】
図1図1は、本開示の第1実施形態における分析装置の機能的な構成を例示するブロック図である。
図2図2は、ログの具体例を示す説明図である。
図3図3は、ログから特徴情報を生成する過程の概要を例示する説明図である。
図4図4は、教師データの具体例を示す説明図である。
図5図5は、教師ラベルが設定されたログの具体例を示す説明図である。
図6図6は、本開示の第1実施形態における分析装置の動作の一例を示すフローチャートである。
図7図7は、本開示の第2実施形態における分析装置の機能的な構成を例示するブロック図である。
図8図8は、本開示の第2実施形態における分析装置の、他の機能的な構成を例示するブロック図である。
図9図9は、本開示の第2実施形態における分析装置の、更に他の機能的な構成を例示するブロック図である。
図10図10は、本開示の第2実施形態におけるログの具体例を示す説明図である。
図11図11は、本開示の第2実施形態における教師データの具体例を示す説明図である。
図12図12は、本開示の第2実施形態における第1特徴量の具体例を示す説明図である。
図13図13は、本開示の第2実施形態における第2特徴量の具体例を示す説明図である。
図14図14は、本開示の第2実施形態における第2特徴量の他の具体例を示す説明図である。
図15図15は、本開示の第2実施形態における第2特徴量の更に他の具体例を示す説明図である。
図16図16は、本開示の第2実施形態における第2特徴量の更に他の具体例を示す説明図である。
図17図17は、本開示の第2実施形態における分析モデルの学習フェーズ及び評価フェーズの概要を示す説明図である。
図18図18は、本開示の第2実施形態における分析装置が生成するユーザインタフェースの具体例を示す説明図である。
図19図19は、本開示の第2実施形態における分析装置が生成するユーザインタフェースの他の具体例を示す説明図である。
図20図20は、本開示の第2実施形態における分析装置が生成するユーザインタフェースの更に他の具体例を示す説明図である。
図21図21は、本開示の第2実施形態における分析装置の動作の一例を示すフローチャートである。
図22図22は、本開示の第2実施形態の変形例1における分析装置の機能的な構成を例示するブロック図である。
図23図23は、本開示の第2実施形態の変形例1において、外部コンテキスト情報を用いて特徴情報を作成する過程の概要を示す説明図である。
図24図24は、本開示の第2実施形態の変形例1における分析装置の動作の一例を示すフローチャートである。
図25図25は、本開示の第2実施形態の変形例2における分析装置の機能的な構成を例示するブロック図である。
図26図26は、本開示の第2実施形態の変形例3における分析装置の機能的な構成を例示するブロック図である。
図27図27は、本開示の各実施形態に係る分析装置を実現可能なハードウェア装置の構成を示すブロック図である。
【発明を実施するための形態】
【0017】
各実施形態の詳細な説明に先立って、本開示における技術的な検討事項等について説明する。以下、説明の便宜上、悪意のあるソフトウェア・プログラムを総称して、マルウェアと記載する。
【0018】
マルウェアの活動を検知して分析する技術として、例えば、シグネチャ型の分析技術と、サンドボックス型の分析技術とが知られている。
【0019】
シグネチャ型の分析技術においては、検出すべきデータや動作パターンが、予めシグネチャとして定義される。例えば、ある検体に関連するデータや、その検体の挙動が、シグネチャに合致する場合、その検体がマルウェアとして検知される。
【0020】
シグネチャ型の分析技術では、多種多様なマルウェア(新種、亜種含む)に対処しきれないことがあることから、サンドボックス型の分析技術が用いられることがある。
【0021】
サンドボックスは、分析対象の検体を実行可能な、保護された隔離環境である。サンドボックスは、例えば、仮想環境等を用いて実現することができる。サンドボックス内における検体の動作は、サンドボックス外に影響を与えることがない。このため、サンドボックス型の分析技術においては、例えば、サンドボックス内にて検体を実行し、その動作を監視することで、その検体に関する分析結果を生成することができる。
【0022】
サンドボックス型の分析技術を用いて検体を分析した場合、例えば、分析結果として、その検体がマルウェアであるか否かの判定結果、検体の動作に関するサマリ、検体の動作のログ(動作ログ)、等が得られる。
【0023】
一方、サンドボックス型の分析技術による分析結果の信頼性が、必ずしも十分ではないことがある。例えば、カスタマイズされた新種のマルウェア等、未知の検体については、必ずしも信頼性が高い分析結果が得られないことがある。
【0024】
このような状況においては、分析者は、例えば、サンドボックス環境において検体を実行することで得られたログを詳しく確認することで、その検体の挙動を調査することになる。検体ごとに記録されるログの量、頻度が異なることから、分析者は、場合によっては、大量のログの中から重要なログを確認することを求められる。また、あるログの重要度を判定するために、分析者は、ログの間の関連性、ログの出力順序、特定の特徴を有するログの量及び頻度等、種々の要素を考慮することを求められる。分析に要する時間、分析者の経験(習熟度)等の制約から、ログの分析は、分析者にとって必ずしも容易ではない。
【0025】
上記のような状況から、本出願人は、人手に依らずに、あるログの重要度を適切に判定可能な技術である、本開示に係る技術を着想するに至った。
【0026】
以下において説明する本開示に係る技術は、例えば、ソフトウェア・プログラムの動作が記録されたログと、そのログの重要度を表す情報と、を学習データとして用いて、他のログの重要度を判定可能なモデルを学習する構成を含んでもよい。また、本開示に係る技術は、ログを構成する、ある一つのログエントリから取得した特徴量と、そのログのコンテキストを表す特徴量と、を用いて、当該一つのエントリに関する特徴情報を生成する構成を含んでもよい。ログエントリ及びログのコンテキストについては後述する。また、本開示に係る技術は、例えば、学習済みのモデルを用いて判定したログの重要度に応じて、あるログを分析者に方法を制御可能な構成を含んでもよい。
【0027】
上記のような構成を含む本開示に係る技術によれば、例えば、学習されたモデルを用いてログの重要度を判定することで、分析者の人手によらずに、あるログの重要性を適切に判定可能である。
【0028】
また、本開示に係る技術によれば、あるログの重要性に応じて、そのログを分析者に提示する方法を制御可能である。これにより、例えば、分析者は、大量のログの中から比較的重要性が高いログに着目して、検体の分析をすすめることができる。
【0029】
以下、本開示に係る技術について、具体的な実施形態を用いて更に詳細に説明する。以下の具体的な実施形態(及びその変形例)の構成は例示であり、本開示に係る技術の技術範囲は、それらには限定されない。以下の各実施形態を構成する構成要素の分割(例えば、機能的な単位による分割)は、その実施形態を実現可能な一例である。各実施形態を実現可能な構成は、以下の例示に限定されず、様々な構成が想定され得る。以下の各実施形態を構成する構成要素は、更に分割されてもよく、また、以下の各実施形態を構成する1以上の構成要素が統合されてもよい。
【0030】
以下に例示する各実施形態が1以上の物理的装置、仮想的装置、及びその組合せを用いて実現される場合、1以上の構成要素が1以上の装置により実現されてもよく、1つの構成要素が複数の装置を用いて実現されてもよい。
【0031】
<第1実施形態>
以下、本開示に係る技術を実現可能な第1の実施形態(第1実施形態)について説明する。以下において説明する分析装置は、単体の装置(物理的又は仮想的な装置)として実装されてもよく、複数の離間した装置(物理的又は仮想的な装置)を用いたシステムとして実装されてもよい。分析装置が、複数の装置を用いて実装される場合、各装置の間は有線、無線、又はそれらを適切に組み合わせた通信ネットワークにより通信可能に接続されてもよい。以下において説明する分析装置を実現可能なハードウェア構成については、後述する。
【0032】
図1は、本実施形態における分析装置100の機能的な構成を概念的に示すブロック図である。
【0033】
図1に例示するように、本実施形態における分析装置100は、特徴抽出部101(特徴抽出手段)と、分析モデル作成部102(分析モデル作成手段)とを備える。分析装置100を構成するこれらの構成要素の間は、適切な通信方法を用いて通信可能に接続されていてよい。
【0034】
分析装置100には、あるソフトウェア・プログラム(検体)の動作に関する情報が記録されたログが提供される。
【0035】
ログには、例えば、あるソフトウェア・プログラムが実行した各種の処理(例えば、API(Application Programming Interface)コール、ファイルアクセス、プロセス制御(起動及び終了等)、通信処理、レジストリアクセス、システムコール、等)を表す情報が含まれてもよい。
【0036】
ログの一例を、図2に示す。なお、図2に示すログは、説明の便宜のための具体例であり、本開示に係る技術は、これに限定されない。
【0037】
ログ200には、レコード識別子200aと、ログエントリ200bとを含む1以上のレコードが記録される。ログ200に含まれる個々のレコードは、あるソフトウェア・プログラムを実行することで観察されたソフトウェア・プログラムの動作を表す動作情報である。図2に示す具体例の場合、6個のレコードが例示されている。
【0038】
レコード識別子200aは、例えば、あるログに含まれるレコードを特定可能な識別情報である。レコード識別子200aには、ソフトウェア・プログラムの動作のシーケンス(順序)を特定可能な情報が記録されてもよい。レコード識別子200aには、例えば、各処理が実行されたタイミングを特定可能な情報(時刻又は、経過時間を表す情報等)が記録されてもよい。
【0039】
ログエントリ200bには、ソフトウェア・プログラムにより実行された処理の内容(ソフトウェア・プログラムの動作)を表す情報が記録される。ログエントリ200bに記録される情報は特に限定されず、ソフトウェア・プログラムにより実行される処理に応じて、適切な情報が記録される。ログエントリ200bには、例えば、ソフトウェア・プログラムにより実行された処理を特定可能な情報、その処理に用いられるデータを表す情報、その処理の対象を特定可能な情報、等が適宜含まれてよい。
【0040】
以下、分析装置100の各構成要素について説明する。
【0041】
特徴抽出部101は、ソフトウェア・プログラムの動作が記録されたログ(例えば、ログ200)に含まれる1以上のレコードから、そのレコード(特には、そのレコードに含まれるログエントリ)を表す特徴情報を作成する。具体的には、特徴抽出部101は、ログ200のうち、学習データとして用いられるある一つのレコードを選択(特定)し、そのログエントリの特徴を表す特徴量を抽出する。以下、学習データとして用いられるレコードのログエントリを、「第1ログエントリ」と記載し、そのログエントリから抽出される特徴量を「第1特徴量」と記載する場合がある。
【0042】
本実施形態における第1特徴量は、特に限定されず、第1ログエントリの形式、内容等に応じて適切な特徴量が選択されてよい。第1特徴量は、例えば、第1ログエントリに記録された情報を文字列表現した場合の、文字列から抽出可能な特徴量であってもよい。第1特徴量は、例えば、第1ログエントリに記録された情報を数値として表現した特徴量であってもよい。第1特徴量は、1以上の要素からなるベクトル(特徴ベクトル)として表されてもよい。
【0043】
特徴抽出部101は、ログ(例えばログ200)に含まれる1以上のレコードから、第1特徴量とは別の特徴量(「第2特徴量」と記載することがある)を抽出する。以下、第2特徴量の作成に用いられるレコードのログエントリを、「第2ログエントリ」と記載する。図2に示す具体例の場合、特徴抽出部101は、ログ200に含まれる1以上のレコードを選択(特定)し、それらレコードのログエントリ(第2ログエントリ)に基づいて第2特徴量を抽出する。第2特徴量は、第1特徴量は異なる特徴量であってよい。
【0044】
第2ログエントリは、例えば、記録された内容が、ある特定の基準を満たすようなログエントリであってもよい。係る基準の具体例として、以下に例示する基準のいずれか一つ以上が用いられてもよいが、これらには限定されない。
【0045】
(1)同じソフトウェア・プログラムの実行過程で記録されたログエントリであること
【0046】
(2)あるソフトウェア・プログラムの実行過程で実行された、同じプロセスに関するログエントリであること
【0047】
(3)あるログエントリが記録されたタイミングと前後するタイミングで記録されたログエントリであること。
【0048】
ある一つのレコードのログエントリが、第1ログエントリ及び第2ログエントリのいずれか一方にのみに用いられてもよく、両方に用いられてもよい。特徴抽出部101は、第1ログエントリを含むログ200から、第2ログエントリを抽出してもよく、第1ログエントリを含まない他のログ200から、第2ログエントリを特定してもよい。
【0049】
第2特徴量は、例えば、あるログに含まれる1以上の第2ログエントリに基づいて抽出される、そのログのコンテキストを表す特徴量である。コンテキストは、例えば、あるログに関連する背景情報や、あるログの包括的な特徴を表す情報であってよい。なお、第2特徴量は、1以上の要素からなるベクトル(特徴ベクトル)として表されてもよい。
【0050】
特徴抽出部101は、あるログに含まれる一つの第1ログエントリから抽出した第1特徴量と、そのログに含まれる1以上の第2ログエントリから抽出した第2特徴量と、を用いて、その第1ログエントリに関する特徴情報を生成する。即ち、第1ログエントリの特徴情報は、第1ログエントリから直接的に抽出される特徴量と、1以上の第2ログエントリに基づいて抽出される、ログのコンテキストを表す特徴量と、を含む。第1特徴量及び第2特徴量が特徴ベクトルとして表される場合、第1ログエントリの特徴情報は、それらの特徴ベクトルの要素をすべて含むベクトル(特徴ベクトル)として表されてもよい。
【0051】
図2に示す具体例において、符号”L1”が付されたレコード201が、第1ログエントリ(以下「第1ログエントリL1」と記載する)を含むレコード、符号”L2_1”〜”L2_4”が付されたレコードが、第2ログエントリ(以下「第2ログエントリL2_1」等と記載する)レコードであることを想定する。以下、図3を参照して、図2に示すログ200から、第1ログエントリL1に関する特徴情報を生成する過程について説明する。
【0052】
特徴抽出部101は、第1ログエントリL1から、当該第1ログエントリL1に関する第1特徴量を抽出する。図3においては、第1特徴量は、要素”x1”〜”xN”を含む”N”次元(”N”は自然数)の特徴ベクトル(第1特徴ベクトル)として表される。
【0053】
特徴抽出部101は、第2ログエントリL2_1〜第2ログエントリL2_4から、第1ログエントリL1に関する第2特徴量を抽出する。図3においては、第2特徴量は、要素”y1”〜”yM”を含む”M”次元(”M”は自然数)の特徴ベクトル(第2特徴ベクトル)として表される。
【0054】
特徴抽出部101は、抽出した第1特徴量、及び、第2特徴量を用いて、第1ログエントリL1に関する特徴情報を作成する。図3においては、第1ログエントリL1の特徴情報は、要素”x1”〜”xN”及び”y1”〜”yM”を含む(”M+N”)次元の特徴ベクトルとして表される。なお、特徴ベクトルにおける要素の並び順は、特に限定されない。特徴抽出部101は、図3に例示するように、第1特徴ベクトルの要素と、第2特徴ベクトルの要素を直列的に並べてもよく、他の並び順で並べてもよい。
【0055】
特徴抽出部101は、ログに含まれる1以上の第1ログエントリについて作成した特徴情報を、学習データとして分析モデル作成部102に提供してもよい。
【0056】
分析モデル作成部102は、特徴抽出部101により作成された、あるログエントリに関する特徴情報と、そのログエントリの重要度を表す重要度情報とを用いて、他のログエントリに関する重要度を判定可能な分析モデルを作成する。具体的には、分析モデル作成部102は、例えば、複数の第1ログエントリに関する特徴情報と、重要度情報とを学習データ(訓練データ)として用いて、分析モデル(後述)を学習(訓練)する処理を実行する。
【0057】
本実施形態においては、学習データとして用いられる各ログエントリに対して、予め重要度情報が教師データとして提供されることを想定する。例えば、学習データとして用いられる各ログエントリに対して、熟練した(習熟度が高い)分析者が重要度情報を設定することにより、各ログエントリに対して適切な重要度を付与することができる。このようにして作成された特徴情報を含む学習データと、重要度情報を含む教師データとには、分析者の知見が反映されているとも考えられる。そのような学習データ及び教師データを用いて訓練された分析モデルは、分析者の知見に基づいて、各ログエントリの重要度を判定可能であると考えられる。
【0058】
ログエントリの重要度を表す重要度情報は、学習データとして用いられるログエントリに付与される教師ラベルに相当する。重要度情報の具体的な表現方法は、特に限定されない。重要度情報は、例えば、何らかのラベル(例えば「高」「中」「低」等)を用いて表されてもよく、数値を用いて表されてもよい。重要度情報は、例えば、離散値(例えば、「非重要:0」、「重要:1」等)を用いて表されてもよく、ある範囲内の連続値を用いて表されてもよい。
【0059】
本実施形態においては、学習データとして用いられるログエントリに関連付けされた重要度情報を含む教師データが、分析装置100(特には分析モデル作成部102)に提供されることを想定する。図4は、この場合の教師データの具体例を示す説明図である。図4に示す教師データは、図2に例示された各ログエントリを特定する情報(レコード識別子400a)と、各ログエントリに付与された重要度情報(重要度情報400b)と、を含む。
【0060】
上記に限定されず、例えば、第1ログエントリに関する重要度情報を含むログが、教師データを含む学習データとして提供されてもよい。図5は、この場合の具体例を示す説明図である。図5に示すログ500は、重要度情報400bを含むように、図2に示すログ200から変更されている。
【0061】
本実施形態においては、上記のような重要度情報を含む教師データが、予め(例えば、ログと共に)分析装置100に与えられてもよい。また、分析装置100は、他の装置に記憶された教師データを参照してもよい。
【0062】
分析モデルは、あるログエントリに関する特徴情報を入力として受け付け、そのログエントリの重要度を判定可能なモデルである。分析モデルとして、例えば、教師有り機械学習及びパターン認識の分野で用いられる各種のモデル(例えば、SVM(Support Vector Machine)、多層ニューラルネットワーク(NN:Neural Network)、勾配ブースト木、ランダムフォレスト、等)を採用可能である。なお、本実施形態は上記例示に限定されず、他のアルゴリズムを採用した分析モデルが採用されてもよい。
【0063】
分析モデル作成部102は、特徴抽出部101から提供された第1ログエントリに関する特徴情報と、教師データとを用いて、分析モデルを学習するための適切な学習アルゴリズムを実行する。これにより、ログエントリに関する重要度を判定可能な分析モデルが学習される。
【0064】
上記のように構成された分析装置100の動作を、図6に例示するフローチャートを参照して説明する。
【0065】
分析装置100は、あるソフトウェア・プログラムの動作に関する情報が記録されたログを受け付ける(ステップS601)。
【0066】
分析装置100は、受け付けたログから、学習データとして用いられる各ログエントリに関する特徴情報を作成する(ステップS602)。この際、特徴抽出部101は、ある一つの第1ログエントリから第1特徴量を抽出し、1以上の第2ログエントリから第2特徴量を抽出する。特徴抽出部101は、第1及び第2特徴量を用いて、ある一つのログエントリに関する特徴情報を作成する。特徴抽出部101は、作成した特徴情報を、学習データとして分析モデル作成部102に提供してよい。
【0067】
分析装置100は、ログエントリの特徴情報を含む学習データと、そのログエントリに付与された重要度情報を含む教師データと、を用いて、分析モデルの学習処理を実行する。これにより、分析装置100は、あるログエントリに関する重要度を判定可能な分析モデルを作成することができる。
【0068】
上記のように構成された本実施形態における分析装置100によれば、あるログの重要性を適切に判定することが可能である。その理由は、以下の通りである。
【0069】
分析装置100は、学習データとして用いられるログに含まれるログエントリの特徴情報を作成する。分析装置100は、上記のように作成された特徴情報を含む学習データと、ログエントリに付与された重要度情報を含む教師データと、を用いて分析モデルを学習する。上記のようにして学習された分析モデルを用いることで、分析装置100は、例えば、学習データに含まれないログエントリの重要度を判定することができる。
【0070】
例えば、熟練した分析者が作成した教師データを用いて分析モデルを学習することにより、分析者の知見が反映された分析モデルを作成可能であると考えられる。このような分析モデルを用いることで、ログエントリの重要度を、より適切に判定可能であると考えられる。
【0071】
また、本実施形態における分析装置100は、ログに含まれる一つのログエントリから抽出される第1特徴量と、1以上のログエントリに基づいて抽出される、ログのコンテキストを表す第2特徴量と、を用いて、ある一つのログエントリに関する特徴情報を作成する。即ち、ある一つのログエントリに関する特徴情報には、ログのコンテキストが反映される。
【0072】
分析者があるログエントリの重要性を判断する際、単独のログエントリだけではなく、ログに記録された情報の全体像、前後のログエントリの内容、そのログエントリに記録された情報に関連する他のログエントリの内容、等を確認することがある。このように、単独のログエントリだけではなく、ログのコンテキストを確認することで、あるログエントリの重要性を、より適切に判断することができると考えられる。
【0073】
これに対して、本実施形態において、分析装置100は、一つのログエントリから抽出した特徴量と、ログに関するコンテキストから抽出した特徴量と、を含む特徴情報を作成することができる。即ち、分析装置100は、ログのコンテキストが反映された特徴情報を用いることで、ログエントリの重要性をより適切に判断可能な分析モデルを作成可能であると考えられる。
【0074】
<第2実施形態>
以下、上記第1実施形態を基本とした、本開示に係る技術の第2の実施形態(第2実施形態)について説明する。
【0075】
〔分析装置700の構成〕
図7は、本実施形態における分析装置700の機能的な構成を概念的に示すブロック図である。分析装置700は、調査対象のソフトウェア・プログラム(後述する「検体」)の実行により生成されるログを分析する装置である。
【0076】
検体検査装置800は、サンドボックス型の技術を用いて隔離された環境において検体801を実行することにより、検体801を動的に解析することが可能な装置である。検体検査装置800は、例えば、セキュリティアプライアンス製品等を用いて実現されてもよく、サンドボックス環境を実現するソフトウェア・プログラムが導入されたコンピュータ等の情報処理装置を用いて実現されてもよい。
【0077】
検体検査装置800は、検体801によって実行される処理(即ち、検体801の動作)を検知する機能を備えている。検体検査装置800が検知可能な検体801の動作には、例えば、特定のAPI(Application Programming Interface)の呼び出し、システムコールの呼び出し、コードインジェクション、実行ファイルの作成、スクリプトファイルの実行、特定のサービスの停止、ファイルアクセス、レジストリアクセス、特定の通信先との通信等、が含まれてよい。
【0078】
検体検査装置800は、検体を解析する過程で検知した検体801の動作を、ログ(動作ログ)として記録し、分析装置700に提供する。検体検査装置800により提供されるログの具体的な内容については、後述する。
【0079】
検体検査装置800は、検体801を解析することで得られるログ以外の情報を、分析装置700に提供してもよい。ログ以外の情報には、例えば、検体801がマルウェアか否かの一次的な判定結果が含まれてもよい。また、係る情報には、例えば、検体801の動作に関するサマリ(悪質な行動、プロセスの起動及び終了、ファイルアクセス、通信、レジストリアクセス、APIコール等に関する概要)が含まれてもよい。
【0080】
以下、本実施形態における分析装置700の具体的な構成について説明する。分析装置700は、基本的な構成として、特徴抽出部701(特徴抽出手段)と、分析モデル作成部702(分析モデル作成手段)と、を備える。分析装置700は、例えば、図8に示すように、重要度算出部703(重要度算出手段)と、表示制御部704(表示制御手段)とを更に備えてもよい。分析装置700は、例えば、図9に示すように、動作ログ提供部705(ログ提供手段)と、教師データ提供部706(教師データ提供手段)と、を更に備えてもよい。これらの構成要素の間は、適切な通信方法を用いて通信可能に接続されていてよい。以下、各構成要素について説明する。
【0081】
特徴抽出部701は、検体検査装置800から提供されるログに含まれる1以上のレコードのログエントリについて、そのログエントリを表す特徴情報を作成する。特徴抽出部701は、第1実施形態における特徴抽出部101と同様、第1ログエントリから抽出された第1特徴量と、複数の第2ログエントリから抽出された第2特徴量とを用いて、あるログエントリに関する特徴情報を作成する。各特徴量の具体例については後述する。
【0082】
分析装置700に、後述する動作ログ提供部705が含まれる場合、特徴抽出部701は、動作ログ提供部705からログを取得してもよい。
【0083】
特徴抽出部701は、あるログの内、重要度の評価対象であるレコードのログエントリに関する特徴情報を作成し、評価対象データとして重要度算出部703に提供してもよい。
【0084】
分析モデル作成部702は、特徴抽出部701により作成された、あるログエントリに関する特徴情報と、そのログエントリの重要度を表す重要度情報(教師データ)とを用いて、他のログエントリに関する重要度を判定可能な分析モデルを作成する。
【0085】
具体的には、分析モデル作成部702は、例えば、第1実施形態における分析モデル作成部102と同様、複数の第1ログエントリに関する特徴情報を含む学習データと、重要度情報を含む教師データとを用いて、分析モデル(後述)を学習(訓練)する処理を実行する。本実施形態における分析モデルについては、後述する。
【0086】
分析装置700が、後述する教師データ提供部706を含む場合、分析モデル作成部702は、教師データ提供部706から、教師データを取得してもよい。また、分析モデル作成部702は、作成された分析モデルを、重要度算出部703に提供してもよい。
【0087】
重要度算出部703は、分析モデル作成部702において作成された分析モデルを用いて、あるログに含まれるログエントリの重要度を算出する。具体的には、重要度算出部703は、あるログエントリについて作成された特徴情報を分析モデルに入力として与えることで、そのログエントリに関する重要度を算出する。重要度を算出するための具体的な方法については、後述する。重要度算出部703は、あるログエントリに関して算出された重要度を、表示制御部704に提供する。
【0088】
表示制御部704は、重要度算出部703において算出された重要度に応じて、ある検体に関するログの表示方法を制御する。表示制御部704は、例えば、後述する動作ログ提供部705から、ある検体に関するログを取得し、重要度算出部703から、そのログに含まれるログエントリに関する重要度を受け付けてもよい。
【0089】
具体的には、表示制御部704は、例えば、提供されたログに含まれる各ログエントリを表示するか否かを制御可能なユーザインタフェースの表示に用いられるデータ(以下「表示データ」と記載する)を生成する。係るユーザインタフェースは、例えば、あるログエントリの重要度に応じて、そのログエントリの表示方法を制御可能な制御要素を含んでもよい。表示制御部704は、適切な表示装置(各種モニタ画面、パネル等)に対して表示データを提供することで、係るユーザインタフェースを、分析装置100のユーザに提示してもよい。表示装置の具体的な構成は特に限定されず、適宜選択されてよい。表示装置は、分析装置700の内部に設けられてもよく、外部に設けられてもよい。
【0090】
上記に限定されず、表示制御部704は、通信ネットワークを介して接続された外部デバイスに表示データを提供してもよい。表示制御部704により作成される表示データの具体例については、後述する。
【0091】
動作ログ提供部705は、検体検査装置800から、検体801を実行する過程で記録されたログを受け付け、そのログを保持(記憶)する。動作ログ提供部705は、特徴抽出部701及び表示制御部704からのリクエストに応じて、それらに対してログを提供してもよい。
【0092】
教師データ提供部706は、あるログに含まれるログエントリに対して付与された重要度情報を保持(記憶)する。教師データ提供部706には、例えば、分析装置700のユーザ等により、予め教師データが提供されてよい。係る教師データは、例えば、上記したように、あるログについて、分析者が人手により判定した重要度を表す情報が含まれてもよい。
【0093】
教師データ提供部706は、例えば、学習データとして用いられるログエントリを特定可能な情報と、そのログエントリについて分析者等により予め設定された重要度情報とを、関連付けて記憶してもよい。
【0094】
教師データ提供部706は、例えば、分析モデル作成部702からのリクエストに応じて、あるログエントリに関する重要度情報を、教師データとして提供してもよい。また、教師データ提供部706は、表示制御部704からのリクエストに応じて、あるログエントリに関する重要度情報を提供してもよい。
【0095】
〔ログの内容〕
以下、検体検査装置800において記録されたログについて説明する。図10は、検体検査装置800において記録されたログ(ログ1000)の一例を示す説明図である。
【0096】
図10に例示するように、ログ1000には、例えば、ソフトウェア・プログラムにより実行された処理を表す情報が記録された、1以上のレコード(行)が含まれる。ログ1000のレコードには、例えば、ログエントリ毎に、検体ID1000aと、シーケンス番号1000bと、ログエントリ1000cとが含まれる。
【0097】
検体ID1000aは、実行された検体を特定可能な識別情報(ID:Identifier)である。シーケンス番号1000bは、ログエントリが記録されたシーケンス(順序)を特定可能な情報である。シーケンス番号1000bには、検体ID1000aにより識別される検体ごとに、重複しない値が設定されてよい。
【0098】
ログエントリ1000cには、検体により実行される処理に応じて、適切な情報が記録される。ログエントリ1000cは、1以上のフィールドが含まれてもよい。ログエントリ1000cを構成する各フィールドに記録される情報は特に限定されず、例えば、以下のような情報が記録されてもよい。
【0099】
ログエントリ1000cには、検体により実行された処理の種類(以下「ログ種別」と記載する)を特定可能な情報として、”type”フィールドが記録されてもよい。ログ種別を表す”type”フィールドには、一例として、ファイルアクセス(”type:file”)、プロセス制御(”type:process”)、レジストリアクセス(”type:registry”)、通信処理(”type:network”)、等が含まれてもよい。ログ種別には、上記以外の情報が設定されてもよい。
【0100】
ログエントリ1000cには、ログ種別により特定された処理の具体的な実行内容を表す情報(”mode” フィールド)が記録されてよい。例えば、ログ種別がプロセス制御(”type:process”)である場合、”mode”フィールドにはプロセスの開始(”start”)、停止(”stop”)を表す情報が設定されてもよい。例えば、ログ種別がファイルアクセス(”type:file”)である場合、”mode”フィールドにはファイルオープン(”open”)、クローズ(”close”)を表す情報が設定されてもよい。例えば、ログ種別がレジストリアクセス(”type:registry”)である場合、”mode”フィールドにはレジストリに対する値の設定(”set−value”)を表す情報が設定されてもよい。例えば、ログ種別が通信処理(”type:network”)である場合、”mode”フィールドには通信処理に関するプロトコルを特定可能な情報(たとえば、”dns”、”http”等)を表す情報が設定されてもよい。
【0101】
ログエントリ1000cには、例えば、検体により実行された処理に関連するリソースや、処理において用いられたパラメータを表す情報が記録されてもよい。図10に示す具体例の場合、”path”フィールドには、例えば、実行されるファイル、アクセスされるファイルのパスを表す情報が記録されている。”key”フィールドには、レジストリキーを表す情報が記録されている。”value”フィールドには、レジストリに設定される値を表す情報が記録されている。”host”フィールドには、通信先を特定可能な情報が記録されている。”ip”フィールドには、通信先のIP(Internet Protocol)アドレスを表す情報が記録されている。”headers”フィールドには、ある通信プロトコルにより送受信されるデータに含まれるヘッダを表す情報が記録されている。
【0102】
ログエントリ1000cには、例えば、あるログエントリが出力された処理を実行したプロセスを特定可能な情報(”pid”フィールド)が記録されてもよい。
【0103】
ログエントリ1000cには、例えば、あるログエントリが記録されたタイミング(例えば、時刻や経過時間等)を特定可能な情報(”timestamp”フィールド)が記録されてもよい。
【0104】
ログエントリ1000cには、上記例示した各フィールドのうち、一部が記録されてもよく、上記例示したフィールド以外のフィールドが記録されてもよい。
【0105】
例えば、図10に示すシーケンス番号が”1”であるレコードは、実行ファイル”¥temp¥abcde.exe”を実行するプロセスが開始されたことを示す。シーケンス番号が”9”であるレコードは、”¥temp¥abcde.exe”のプロセスが停止されたことを示す。また、シーケンス番号が”2”及び”3”のレコードは、”key”により指定された特定のレジストリキーに対して”value”により指定された値を設定することを示す。また、シーケンス番号が”4”、”5”及び”8”のレコードは、それぞれファイルアクセス(ファイルオープン、クローズ、削除)を示す。また、シーケンス番号が”6”、”7”のレコードは、それぞれ特定の通信先との間の通信を示す。
【0106】
〔教師データ〕
以下、分析装置700に提供される教師データについて説明する。上記したように、分析装置700が教師データ提供部706を含む場合、教師データは教師データ提供部706に記憶されてよい。
【0107】
図11は、本実施形態における教師データの具体例を示す説明図である。図11に例示するように、教師データは、検体ID1100aと、シーケンス番号1100bと、教師スコア1100cと、を含む、1以上のレコード(行)を含む。検体ID1100aは、図10に例示する検体ID1000aと同様、ある検体801を特定可能な識別情報である。また、シーケンス番号1100bは、図10に例示するシーケンス番号1000bと同様、ログエントリが記録されたシーケンス(順序)を特定可能な情報である。
【0108】
教師スコア1100cは、検体ID1100a及びシーケンス番号1100bにより特定されるログエントリに関する重要度を表す。教師スコア1100cには、例えば、重要度に応じてある特定の範囲の連続値(例えば、”0.0”〜”1.0”の間の数値)が設定されてもよい。また、教師スコア1100cには、重要、非重要を表す数値(例えば重要:”1”、非重要:”0”)や、ラベルが設定されてもよい。教師スコア1100cは、後述する分析モデルの学習過程で、教師ラベルとして用いられる。
【0109】
〔第1特徴量〕
以下、特徴抽出部701が第1ログエントリから抽出する第1特徴量について説明する。以下においては、説明の便宜上、あるレコードのログエントリに記録されたデータを、文字列又は数値により表現可能なデータとして扱う事を想定する。なお、この場合、特徴抽出部701は、第1ログエントリに記録された情報を、適宜文字列及び数値に変換してもよい。
【0110】
一例として、第1特徴量は、ログエントリ1000cの記録を文字列として表した場合の、N−グラム(N−gram)の出現頻度を表してもよい。ここでは、N−グラムは、1文字以上の文字で構成される文字列の並びを表す。例えば、ユニグラムは1つの文字列の並び、2−グラム(バイグラム)は2つの文字列の並び、3−グラム(トライグラム)は、3つの文字列の並びを表す。
【0111】
例えば、ログエントリ1000cが、ASCII(American Standard Code for Information Interchange)コードの印字可能文字(0x21〜0x7E、94個)により表現可能な文字列として表されることを想定する。特徴量として1文字単位のユニグラム(1文字の並び)の出現頻度(ヒストグラム)を用いる場合、図12の(A)部分に示すような、94次元の特徴量(特徴ベクトル)が得られる。図12の(A)に示す特徴ベクトル(図12の1201)における各要素は、一つのログエントリの中で、特定のASCIIコードで表される文字が出現する数を表す。2文字以上の並びについても、同様の方法で特徴量を抽出可能である。また、特徴抽出部701は、ログエントリに含まれるフィールドごとのN−グラムの出現頻度を、特徴量として用いてもよい。この場合、例えば、”mode”フィールドにおける出現頻度、”type”フィールドにおける出現頻度、等が特徴量として用いられる。
【0112】
他の一例として、第1特徴量は、特定の区切り文字(セパレータ)によりログエントリを単語に分割した際の、各単語の出現頻度を表してもよい。
【0113】
一例として、特徴抽出部701は、あるログ1000に出現する単語を含む辞書を用いて、その辞書に含まれる各単語が、ログエントリにおいて出現する頻度を計数してもよい。この場合、図12の(B)部分に示すような”N”次元(”N”は自然数)の特徴ベクトル(図12の1202)が得られる。ここで、Nは辞書に含まれる単語の数であり、特徴ベクトルの各要素は、辞書に含まれる各単語の出現頻度を表す。
【0114】
辞書は予め分析装置700に提供されてもよい。また、特徴抽出部101が、1以上のログから、適切な基準を用いて単語を選択することで、辞書を作成してもよい。セパレータは適宜選択可能であり、例えば、”;”、”,”、”/”等の文字がセパレータとして用いられてもよい。
【0115】
図12に示す具体例の場合、特徴ベクトル1202の第1要素は、単語”type”の出現頻度を表し、第2要素は、単語”process”の出現頻度を表す。同様にして、特徴ベクトル1202の各要素には、辞書に含まれる各単語の出現頻度が設定される。
【0116】
他の一例として、特徴抽出部701は、例えば、分割した単語からインデックスを算出してもよい。特徴抽出部701は、例えば、”N”次元の特徴ベクトル(初期値は全要素が”0”)を生成する。そして、特徴抽出部701は、例えば、分割した単語のハッシュ値を計算し、そのハッシュ値の”N”による剰余(”0”〜(”N−1”))を、その単語のインデックスとして算出する。特徴抽出部701は、”N”次元の特徴ベクトルの内、算出されたインデックス番目の要素の値をインクリメントする。ログエントリに含まれる全ての単語についてこのような処理を実行することで、特徴抽出部701は、ログエントリに含まれる各単語の出現頻度を表す特徴ベクトルを生成可能である。この場合、ハッシュ値を生成するアルゴリズムは、周知のアルゴリズムを採用してよい。また、特徴ベクトルの次元数(”N”の値)は、異なる単語が同じインデックスに割り当てられる衝突の影響を考慮して、適切な値を選択すればよい。
【0117】
他の一例として、ログエントリに含まれるフィールドごとの意味を表す値を用いて、第1特徴量が作成されてもよい。特徴抽出部701は、例えば、一つのログエントリをフィールドごとに分割し、各フィールドに記録された情報を表す値を要素として有する特徴ベクトルを生成する。この場合、例えば、図12の(C)部分に示すようなM次元(Mは自然数)の特徴ベクトル(図12の1203)が得られる。ここで、Mは、ログエントリに含まれ得るフィールドの総数である。一例として、”type”フィールドに対応する特徴ベクトルの要素には、”type”フィールドに記録された内容を表す値が設定される。また、”mode”フィールドに対応する特徴ベクトルの要素には、”mode”フィールドの内容を表す値が設定される。ログエントリにおいて数値が設定されるフィールド(例えば”pid”、”value”等)に対応する特徴ベクトルの要素には、その数値が設定されてもよい。また、例えば、API呼び出しの引数等を表すビットフィールドについては、ビットごとに個別に特徴ベクトルの要素が割り当てられてもよい。
【0118】
特徴抽出部701は、上記に限定されず、ログエントリの内容を表現可能な他の特徴量を採用してもよい。ログエントリの内容を文字列として扱う場合、係る特徴量として、例えば、一般的な自然言語処理技術において用いられる各種特徴量が用いられてもよい。
【0119】
〔第2特徴量〕
以下、特徴抽出部701が抽出する第2特徴量について説明する。以下においては、説明の便宜上、第2ログエントリに記録されたデータを、文字列又は数値により表現可能なデータとして扱う事を想定する。なお、この場合、特徴抽出部701は、第2ログエントリに記録された情報を、適宜文字列及び数値に変換してもよい。
【0120】
上記したように、分析者がログを分析する際、ある一つのログエントリにのみ着目するのではなく、ログの全容や関連情報を参照することがある。分析者は、例えば、関連する複数のログエントリを確認することで、ある一つのログエントリからは得られない、あるログに特徴的なパターン(即ち、検体801の動作に関するパターン)を見出しているとも考えられる。このようなログに関するコンテキストから抽出した情報を特徴量として用いることにより、単一のログエントリから抽出した特徴量のみを用いる場合に比して、より適切にログエントリの重要度を判定可能な特徴量が得られると考えられる。
【0121】
特徴抽出部701は、例えば、それぞれの第2ログエントリに記録された情報から作成可能な、ログに関するコンテキストを表す情報を、第2特徴量として用いてもよい。特徴抽出部701は、例えば、それぞれの第2ログエントリに記載された情報を計数することで、第2特徴量を作成してもよく、それぞれの第2ログエントリに記載された情報から抽出した特徴量を用いて、第2特徴量を作成してもよい。具体的には、特徴抽出部701は、ログに関するコンテキストを表す第2特徴量として、以下のような特徴量を抽出してもよい。
【0122】
一例として、特徴抽出部701は、例えば、ある検体801を実行することで得られるログ全体のコンテキストを表す情報を、第2特徴量として抽出する。この場合の第2ログエントリは、第1ログエントリと同一の検体801に関するログエントリである、という基準を満たすログエントリであると言える。特徴抽出部701は、例えば、あるログの内、第1ログエントリを含むレコードと検体ID1000aが同一である他のレコードを選択することで、第2ログエントリを含むレコードを特定可能である。以下、この場合の第2特徴量の具体例について説明する。
【0123】
特徴抽出部701は、例えば、特定した全ての第2ログエントリから、プロセス毎(”pid”フィールドの値毎)に第2ログエントリの件数を集計し、上位”x”件の件数を並べた情報を、第2特徴量として採用してよい。図13は、この場合の第2特徴量の具体例を示す説明図である。この場合、特徴抽出部701は、あるログに含まれる各レコードのログエントリについて、”pid”フィールドの値毎に、ログエントリの件数を集計する。特徴抽出部701は、集計された上位N件(Nは自然数、図13の例では”N=3”)の件数(図13の例では、”pid:111”の30件、”pid:112”の20件、”pid:110”の10件)から、第2特徴量を作成する。この場合、第2特徴量は、3次元の特徴ベクトルとして表される。
【0124】
なお、集計された件数を全てのログエントリの件数で除算することで、第2特徴量の要素が正規化されてもよい。この場合、例えば、ある検体801の実行過程で実行されるプロセスの傾向(例えば、実行されるプロセスの多寡等)を、コンテキストとして第2特徴量に反映することができる。
【0125】
特徴抽出部701は、また、例えば、特定した第2ログエントリから算出した、ログ種別のヒストグラムを表す情報を、第2特徴量として採用してよい。図14は、この場合の第2特徴量の具体例を示す説明図である。この場合、特徴抽出部701は、あるログに含まれる全ての第2ログエントリについて、”type”フィールドに記録された情報を集計することでヒストグラムを作成する。特徴抽出部701は、そのヒストグラムの各要素(例えば、”file”、”process”、”registry”、及び、”network”)について計数された度数を用いて、第2特徴量(4次元の特徴ベクトル)を作成する。この場合、例えば、ある検体801の実行過程で実行される処理内容の傾向を、コンテキストとして第2特徴量に反映することができる。
【0126】
特徴抽出部701は、例えば、特定した全ての第2ログエントリから抽出した、通信先の数、実行されたプロセスの数、アクセスされたファイルの数、アクセスされたレジストリの数、等の情報を、第2特徴量として採用してよい。図15は、この場合の第2特徴量の具体例を示す説明図である。この場合、特徴抽出部701は、例えば、あるログから、”type”フィールドに”network”が記録された全ての第2ログエントリを選択し、そのログエントリの”host”フィールド又は”ip”フィールドから、通信先の数を集計可能である。
【0127】
特徴抽出部701は、例えば、あるログから、”type”フィールドに”file”が記録された全ての第2ログエントリを選択し、そのログエントリの”path”フィールドから、アクセスされたファイル数を集計可能である。
【0128】
特徴抽出部701は、例えば、あるログから、”type”フィールドに”registry”が記録された全ての第2ログエントリを選択し、そのログエントリの”key”フィールドから、アクセスされたレジストリ数を集計可能である。
【0129】
特徴抽出部701は、例えば、ログ1000から、”type”フィールドに”process”が記録された全ての第2ログエントリを選択し、そのログエントリの”path”フィールドから、実行されたプロセス数を集計可能である。
【0130】
図15に示す具体例の場合、特徴抽出部701は、例えば、ログエントリの種別(”type”)毎に、通信先の数、実行されたプロセスの数、アクセスされたファイルの数、アクセスされたレジストリの数を含む第2特徴量(4次元の特徴ベクトル)を作成する。この場合、例えば、ある検体801の実行過程で実行される処理によりアクセスされる、ログ種別毎のリソースの情報を、コンテキストとして第2特徴量に反映することができる。
【0131】
他の一例として、特徴抽出部701は、例えば、ある検体801を実行することで得られるログに含まれる、ある特定のプロセスに関するコンテキストを表す情報を、第2特徴量として抽出してもよい。
【0132】
具体的には、特徴抽出部701は、ある検体801を実行することで得られるログから第1ログエントリを選択し、第1ログエントリと同じプロセス(”pid”フィールドが同じ)に関する他のログエントリを、第2ログエントリとして特定する。この場合、第2ログエントリは、第1ログエントリと同じプロセス(”pid”フィールドが同じ)に関するログである、という基準を満たすと言える。
【0133】
この場合も上記と同様に、特徴抽出部701は、例えば、特定した第2ログエントリから算出したログ種別のヒストグラムを表す情報を、第2特徴量として採用してよい。また、特徴抽出部701は、例えば、特定した全ての第2ログエントリから抽出した、通信先の数、実行されたプロセスの数、アクセスされたファイルの数、アクセスされたレジストリの数、等の情報を、第2特徴量として採用してよい。
【0134】
特徴抽出部701は、また、あるログに含まれる、第1ログエントリと同じプロセスに関するログエントリの割合を、第2特徴量として採用してもよい。図16は、この場合の第2特徴量の具体例を示す説明図である。この場合、特徴抽出部701は、あるログに含まれるログエントリの総数と、第1ログエントリと同じ”pid”フィールドを有する第2ログエントリの総数との割合を算出することで、第2特徴量(1次元ベクトル)を作成する。この場合、例えば、ある検体801の実行過程において、あるプロセスが実行された割合を、コンテキストとして第2特徴量に反映することができる。
【0135】
他の一例として、特徴抽出部701は、例えば、第1ログエントリを含むレコードが記録されたタイミングから、時系列において特定の範囲内に記録された1以上のレコードから得られるコンテキストを表す情報を、第2特徴量として抽出してもよい。
【0136】
より具体的には、特徴抽出部701は、ある検体801を実行することで得られるログから第1ログエントリを選択する。特徴抽出部701は、例えば、選択した第1ログエントリを含むレコードが記録されたタイミングから、時系列においてNサンプル(Nは自然数)前のタイミングまでに記録された1以上のレコードを選択してよい。また、特徴抽出部701は、例えば、選択した第1ログエントリを含むレコードが記録されたタイミングから、時系列においてMサンプル(Mは自然数)後のタイミングまでに記録された1以上のレコードを選択してよい。特徴抽出部701は、上記のように選択したレコードのうち、少なくとも1件以上のレコードに含まれるログエントリを、第2ログエントリとして特定してよい。この場合、第2ログエントリは、第1ログエントリが記録されたタイミングを含む、時系列における特定の時間範囲内に記録されたログエントリである、という基準を満たす。
【0137】
この場合も上記と同様に、特徴抽出部701は、例えば、特定した第2ログエントリから算出したログ種別のヒストグラムを表す情報を、第2特徴量として採用してよい。また、特徴抽出部701は、例えば、特定した全ての第2ログエントリのうち、第1ログエントリと同じプロセスに関するログの割合を、第2特徴量として採用してもよい。
【0138】
他の一例として、特徴抽出部701は、例えば、ある検体801を実行することで得られる、当該検体801の動作に関するサマリを表す情報(サマリ情報)を、第2特徴量として用いてもよい。例えば、ブラックボックス技術を採用した一般的なセキュリティ製品を用いて検体検査装置800が構成された場合を想定する。この場合、検体検査装置800は、典型的には、検体801の動作ログ以外に、検体801の動作を分析した結果をサマリとして提供することができる。なお、係る製品は特段限定されず、当業者であれば適宜選択可能である。
【0139】
上記のような製品から提供されるサマリには、典型的には、以下のような情報が含まれていることがある。
【0140】
(1)検体801がマルウェアであるか否かの一次的な判定結果
【0141】
(2)検体801が実行した悪質な活動(例えば、「特定プロセスの実行及び終了」、「特定のAPIコール」、「特定のシステムコール」、「外部通信の試行」、「特定サービスの停止」、「セキュリティに関する設定の変更」、「アカウント情報へのアクセス」、「実行ファイルの作成」、「実行可能なデータ(スクリプト含む)のダウンロード」、「ファイルアクセス」、「レジストリアクセス」等)。
【0142】
サマリに含まれる情報は、上記に限定されない。サマリには、例えば、検体検査装置800が、検体801の活動(振る舞い)をもとに、ルールベースである活動の有無を判定した結果を表す情報が含まれてもよい。
【0143】
提供されたサマリに、上記説明した検体801の活動を表す情報が含まれる場合、特徴抽出部701は、その情報に基づいて第2特徴量を作成してもよい。特徴抽出部701は、例えば、悪質な活動の種別毎に、検体801がその活動を実行したか否かを、2値データ(例えば0又は1)を用いて表す第2特徴量を作成してもよい。例えば、悪質な活動の種別の個数がM個である場合、第2特徴量は、M次元の2値ベクトルとして表される。上記したようなサマリから第2特徴量を作成する場合、例えば、検体801がマルウェアである否かを判定するための根拠となる情報が特徴量として含まれる。このような第2特徴量を用いることで、分析装置700は、例えば、ある悪質な行動の有無が、ログエントリの重要度に影響するような場合であっても、そのログの重要度を適切に判定することが可能となる。
【0144】
上記に限定されず、例えば、上記説明した、第2ログエントリに記録された情報を計数することで得られる各種の第2特徴量(その少なくとも一部)が、提供されたサマリに含まれる場合、特徴抽出部701は、その特徴量を第2特徴量として用いて良い。 上記に限定されず、特徴抽出部701は、例えば、それぞれの第2ログエントリから上記第1特徴量と同様の特徴量を抽出し、その特徴量を用いて第2特徴量を作成してもよい。この場合、特徴抽出部701は、例えば、上記第1ログエントリから第1特徴量を抽出する方法と同様の方法を用いて、各第2ログエントリから特徴量を抽出することができる。特徴抽出部701は、例えば、それぞれの第2ログエントリから抽出した特徴量を適宜並べることで、第2特徴量を作成してもよい。また、特徴抽出部701は、例えば、それぞれの第2ログエントリから抽出した特徴量に関する統計量(例えば、最大値、最小値、中央値、平均値、分散、偏差等)を算出することで、第2特徴量を作成してもよい。特徴抽出部701は、また、複数の第2ログエントリを統合したデータ(統合データ)を作成してもよい。統合データは、例えば、各第2ログエントリに記録された情報を全て並べたデータであってもよい。特徴抽出部701は、統合データから、上記説明した第1特徴量と同様の特徴量を抽出し、抽出した特徴量を第2特徴量として用いてもよい。
【0145】
特徴抽出部701は、上記第1実施形態における特徴抽出部101と同様に、第1ログエントリから抽出した第1特徴量と、1以上の第2ログエントリから抽出した第2特徴量と、を用いて、第1ログエントリに関する特徴情報を生成する。
【0146】
〔分析モデル〕
以下、分析モデル作成部702が作成する分析モデルについて説明する。
【0147】
上記したように、分析モデルは、あるログエントリに関する特徴情報を入力として与えることで、そのログエントリに関する重要度を判定可能なモデルである。そのようなモデルとして、例えば、機械学習やパターン認識において用いられるモデルを用いることができる。分析モデルとして採用可能なモデルの具体例として、例えば、SVM、多層NN、勾配ブースト木、ランダムフォレスト、等を採用可能である。以下、これらのモデルを採用する場合の、分析モデルの学習及び分析モデルを用いた重要度の評価について説明する。
【0148】
図17は、分析モデルの学習、及び、分析モデルを用いた重要度評価の概要を示す説明図である。分析モデル作成部702は、特徴抽出部701により抽出された第1ログエントリに関する特徴情報を含む学習データと、教師データ提供部706から提供された教師データと、を用いて分析モデルに関する学習処理を実行する(図17における「学習フェーズ」)。
【0149】
例えば、分析モデルとしてSVMを用いる場合、分析モデル作成部702は、学習データと、教師データとを用いて、SVMの識別関数(識別平面)を学習する。SVMは回帰に適用することができる(SVR:Support Vector Regression)。この場合、学習データとして与えられた特徴情報を識別関数に入力することで算出される値と、教師データとして与えられる値との間の許容誤差を最小化するように、識別関数のパラメータが学習される。SVRにおけるパラメータの学習方法は、周知技術を含め、適切な方法を採用可能である。
【0150】
例えば、分析モデルとして多層NNを用いる場合、分析モデル作成部702は、学習データと、教師データとを用いて多層NNを構成するノード(ニューロン)の結合パラメータを学習する。多層NNの具体的なネットワーク構造(層の数、各層のノード数等)は、適宜定められてよい。なお、多層NNの入力層は、例えば、特徴情報を表すベクトルの要素の数(次元数)と同じ数の入力ノードにより構成されてもよい。この場合、入力層の各ノードに、特徴情報を表すベクトルの各要素がそれぞれ入力される。また、多層NNの出力層は1つの出力ノード(回帰用の出力ノード)により構成されてもよい。この場合、出力層のノードには、例えば、活性化関数として正規化線形関数等が設定されてもよい。多層NNの学習方法は、周知技術を含め、適切な方法を採用可能である。
【0151】
例えば、分析モデルとして、勾配ブースト木又はランダムフォレストを用いる場合、分析モデル作成部702は、学習データと、教師データとを用いてこれらを構成する1以上の決定木を学習する。決定木の数、各決定木の構成は、適宜選択されてよい。勾配ブースト木及びランダムフォレストの学習方法は、周知技術を含め、適切な方法を採用可能である。
【0152】
重要度算出部703は、分析モデル作成部702により作成された分析モデルを用いて、評価対象であるログエントリに関する重要度を算出する。より具体的には、重要度算出部703は、あるログエントリについて、特徴抽出部701により作成された特徴情報を分析モデルに入力することで、当該特徴情報に関する重要度を算出する(図17の評価フェーズ)。
【0153】
例えば、分析モデルとしてSVMが用いられる場合、特徴情報をSVMの識別関数に入力することで算出される値が、その特徴情報に関する重要度を表す値として用いられてよい。例えば、分析モデルとして多層NNを用いられる場合、多層NNの入力層に特徴情報の各要素を入力することで出力層から得られる値が、その特徴情報に関する重要度を表す値として用いられてよい。例えば、分析モデルとして、勾配ブースト木又はランダムフォレストが用いられる場合、ある特徴情報が入力として与えられた際の、各決定木の出力の加重和又は平均値が、その特徴情報に関する重要度を表す値として用いられてよい。
【0154】
なお、本実施形態における分析モデルの数は1つに限定されず、複数の分析モデルが用いられてよい。より具体的には、分析モデル作成部702は、ログエントリの内容や種別に応じて、複数の分析モデルを作成することができる。例えば、ログ種別(”type”フィールドの情報)毎に、各ログエントリに含まれる他の情報(フィールド)が異なる場合、分析モデル作成部702は、ログ種別毎にそれぞれ分析モデルを作成してよい。一例として、ログ種別に4つのタイプ(例えば、”type”フィールドの値が”file”、”process”、”registry”及び”network”)が含まれる場合を想定する。この場合、分析モデル作成部702は、ログエントリの種別毎に4つの分析モデル(”type”フィールドの値が”file”のログエントリに関する分析モデル、”process” のログエントリに関する分析モデル、”registry” のログエントリに関する分析モデル及び”network” のログエントリに関する分析モデル)を作成する。この場合、分析モデル作成部702は、学習データに含まれる各ログ種別のログエントリを用いて、各ログ種別の分析モデルを学習する。また、重要度算出部は、評価対象のレコードのログエントリに記録されたログ種別に応じて、そのログ種別用の分析モデルを用いて、重要度を算出する。
【0155】
〔ログの表示〕
以下、表示制御部704によるログの表示について説明する。上記したように、表示制御部704は、重要度算出部703において算出された重要度に応じてある検体801に関するログの表示を制御可能なユーザインタフェースを表示する。より具体的には、表示制御部704は、係るユーザインタフェースの表示に用いられる表示データを生成してもよい。
【0156】
表示制御部704は、一例として、図18に例示するようなユーザインタフェース1800を表示する表示データを生成することができる。
【0157】
図18に例示するユーザインタフェース1800は、分析装置700のユーザに対して表示されるGUI(Graphical User Interface)の少なくとも一部を構成する。
【0158】
ユーザインタフェース1800には、例えば、ログエントリ表示領域(図18の1801)、閾値設定領域(図18の1802)、更新ボタン(図18の1803)、及び、検体設定領域(図18の1804)が含まれてもよい。
【0159】
ログエントリ表示領域1801は、動作ログ提供部705より提供されるログに含まれるレコードのログエントリを表示可能な領域である。ログエントリ表示領域1801には、検体設定領域1804(後述)において設定された検体IDにより特定される検体801を実行した際のログが表示される。なお、表示制御部704は、検体設定領域1804に設定された検体IDが変更されたタイミングで、動作ログ提供部705から、当該検体IDにより特定される検体に関するログを取得してもよい。
【0160】
ログエントリ表示領域1801には、動作ログ提供部705から提供されたログのうち、閾値設定領域1802(後述)において設定された閾値以上の重要度を有するログエントリが表示される。即ち、ログエントリ表示領域1801に表示されるログエントリについて、重要度算出部703において算出された重要度は、閾値設定領域1802(後述)において設定された閾値以上である。
【0161】
動作ログ提供部705から提供されたログに、教師スコアが付与されたログエントリが含まれる場合(即ち、学習データとして用いられたログエントリが含まれる場合)、重要度1801aには、教師スコアが表示されてもよい。
【0162】
閾値設定領域1802及び更新ボタン1803は、ログエントリ表示領域に表示されるログエントリの重要度を設定(調整)可能な、制御要素(コントロール)である。閾値設定領域1802は、ユーザインタフェース1800を操作するユーザが閾値を設定可能な入力フィールドである。閾値設定領域1802は、一例として、テキストボックス、数値入力コントロール等を用いて実現可能であるが、これに限定されない。更新ボタン1803は、閾値設定領域1802に設定された閾値に応じて、ログエントリ表示領域1801の表示内容を更新するための制御要素である。例えば、ユーザが更新ボタン1803を押下することにより、閾値設定領域1802に設定された閾値以上のログエントリが表示されるように、ログエントリ表示領域1801の表示内容が更新される。
【0163】
具体的には、例えば、ユーザが更新ボタン1803を押下したことを表すイベントと、そのタイミングにおいて閾値設定領域1802に設定された閾値とが、ユーザインタフェース1800を介して、表示制御部704に伝達される。表示制御部704は、通知された閾値以上の重要度を有するログエントリを特定し、そのログエントリを表示するよう表示データを生成する。GUIを介したイベントなどの送受信及び表示の更新は、周知技術を用いて実現されてよい。
【0164】
例えば、図18に例示するユーザインタフェースにおいて、閾値設定領域1802に”0.3”が設定され、更新ボタン1803が押下されたことを想定する。この場合、表示制御部704は、例えば、図19に例示するユーザインタフェース1800が表示されるように、表示データを作成(更新)する。図19において、ログエントリ表示領域1801には、重要度が”0.3”以上のログエントリのみが表示される。即ち、表示制御部704は、重要度が閾値未満のログエントリが表示されないように、表示内容を制御する。
【0165】
表示制御部704は、他の一例として、図20に例示するようなユーザインタフェース2000を表示する表示データを生成してもよい。ユーザインタフェース2000は、ユーザインタフェース1800における閾値設定領域1802及び更新ボタン1803に替えて、スライダー2001を含む。ユーザインタフェース2000を構成する他の要素は、ユーザインタフェース1800と同様としてよい。
【0166】
スライダー2001は、ログエントリ表示領域に表示されるログエントリの重要度を設定(調整)可能な、制御要素である。たとえば、スライダー2001を操作することで、スライダーの位置に応じて閾値が更新される。表示制御部704は、例えば、スライダーの位置により表される閾値以上の重要度を有するログエントリを特定し、そのログエントリを表示するような表示データを生成する。
【0167】
更に他の一例として、表示制御部704は、各ログエントリの重要度に応じて、各ログエントリの表示方法を変更(調整)してもよい。図18図20に示す具体例の場合、表示制御部704は、閾値未満の重要度のログエントリを表示しないユーザインタフェースを作成する。これに限定されず、表示制御部704は、例えば、閾値以上の重要度を有するログエントリを強調表示するとともに、閾値未満の重要度を有するログエントリを抑制的に(目立たないように)表示してもよい。表示制御部704が、各ログエントリを強調表示する方法、及び、各ログエントリを抑制的に表示する方法は、特に限定されず、適宜選択可能である。例えば、表示制御部704は、閾値以上の重要度を有するログエントリをハイライトするともに、閾値未満の重要度を有するログエントリをグレーアウトするユーザインタフェースを作成してもよい。また、例えば、表示制御部704は、閾値以上の重要度を有するログエントリが、閾値未満の重要度を有するログエントリよりも大きく表示されるようなユーザインタフェースを作成してもよい。
【0168】
〔分析装置700の動作〕
上記のように構成された分析装置700の動作について説明する。図21は、分析装置700の動作の一例を示すフローチャートである。
【0169】
分析装置700は、検体検査装置800において検体801を実行した際に記録されたログを受け付ける(ステップS2101)。分析装置700が動作ログ提供部705を含む場合、動作ログ提供部705が、検体検査装置800から提供されたログを保持(記憶)してもよい。
【0170】
分析装置700は、検体検査装置800から提供されたログのうち、学習データとして用いられるレコードのログエントリについて、そのログエントリの特徴を表す特徴情報を作成する(ステップS2102)。
【0171】
具体的には、特徴抽出部701は、ある一つのレコードのログエントリ(第1ログエントリ)から、第1特徴量を抽出する。また、特徴抽出部は、ログに含まれる1以上のレコードのログエントリ(第2ログエントリ)から、第2特徴量を抽出する。特徴抽出部701は、第1特徴量と、第2特徴量と、を用いて、当該一つのレコードのログエントリに関する特徴情報を作成する。第1特徴量及び第2特徴量を抽出する方法の具体例は、上記説明した通りである。
【0172】
特徴抽出部701は、例えば、教師スコアが付与されたログエントリを含むレコードを、学習データとして用いられるレコードとして特定してよい。特徴抽出部701は、更に、ログに含まれる評価対象のレコードのログエントリについて、特徴情報を作成してもよい。なお、学習データとして用いられるレコードと、評価対象データとして用いられるレコードとは、同じログに含まれてもよく、異なるログに含まれてもよい。特徴抽出部701は、各ログエントリについて作成された特徴情報を含む学習データを、分析モデル作成部702に提供してよい。
【0173】
分析装置700は、ステップS2102において作成された学習データと、教師データとを用いて、分析モデルを作成する(ステップS2103)。
【0174】
具体的には、分析モデル作成部702は、特徴抽出部701により作成された学習データと、教師データ提供部706に記憶された教師データとを用いて、分析モデルの学習処理を実行する。上記したように、分析モデル作成部702は、ログエントリの内容等に応じて複数の分析モデルを作成してよい。分析モデル及びその学習処理の具体例は、上記に記載した通りである。
【0175】
ステップS2101〜ステップS2103の処理により、分析装置700は、あるレコードに含まれるログエントリの重要度を判定可能な分析モデルを作成することができる。
【0176】
分析装置700は、ステップS2103において分析モデルを作成した際、処理を終了してもよく、ログの評価及び表示(ステップS2104以降の処理)を実行してもよい。
【0177】
以下、分析装置700によるログの評価及び表示に関する動作を説明する。
【0178】
分析装置700は、ステップS2101〜ステップS2103において作成された分析モデルを用いて、評価対象のレコードのログエントリについて、重要度を算出する(ステップS2104)。
【0179】
具体的には、特徴抽出部701が、評価対象のレコードのログエントリに関する特徴情報を生成する。評価対象のレコードは、あるログに含まれる全てのレコードであってもよく、学習データとして用いられていないレコードであってもよい。
【0180】
重要度算出部703は、特徴抽出部701において作成された、評価対象のレコードのログエントリに関する特徴情報を分析モデルに入力し、重要度を算出する。重要度算出部703は、算出した重要度を、表示制御部704に提供する。
【0181】
なお、ログの内容に応じて複数の分析モデルが作成されている場合、分析装置700は、評価対象のレコードのログエントリの内容に応じて、適切な分析モデルを選択して重要度を算出してよい。
【0182】
分析装置700は、ステップS2104において算出された評価対象のログエントリに関する重要度に応じて、そのログエントリを含むログ(より具体的には、そのログエントリを含むレコードが記録されたログ)の表示を制御する(ステップS2105)。
【0183】
具体的には、例えば、表示制御部704が、動作ログ提供部705からログを取得し、そのログに記録されたレコードのうち、評価対象のレコードのログエントリについて算出された重要度を、重要度算出部703から受け付ける。
【0184】
表示制御部704は、重要度算出部703において算出された重要度に応じてある検体801に関するログの表示を制御可能なユーザインタフェースを表示する。係るユーザインタフェースの具体例は、上記説明した通りである。
【0185】
ステップS2104〜ステップS2105の処理により、分析装置700は、あるレコードに含まれる各ログエントリの重要度に応じて、各ログエントリを表示する方法を制御可能である。
【0186】
上記のように構成された本実施形態における分析装置700により、例えば、以下のような現実的な効果が得られる。
【0187】
本実施形態における分析装置700は、あるログの重要性を適切に判定することを可能とする。具体的には、分析装置700は、学習データとして用いられるログエントリから、その特徴情報を作成し、作成した特徴情報を含む学習データと、ログエントリに付与された重要度情報を含む教師データと、を用いて分析モデルを学習する。上記のようして学習された分析モデルを用いることで、分析装置700は、例えば、ログに含まれる各ログエントリの重要度を判定することができる。
【0188】
また、分析装置700は、1以上の第2ログエントリから、ログのコンテキストを表す第2特徴量を抽出することができる。具体的には、分析装置700は、例えば、ある検体801の実行過程で得られたログの全体的な特徴、ある検体801の実行過程で実行された特定のプロセスに関するログの特徴、及び、あるログエントリの前後に記録されたログエントリに関する特徴、等を第2特徴量として抽出する。これにより、分析装置700は、あるログエントリから作成される特徴情報に、ログのコンテキストを表す情報を含めることができる。
【0189】
また、分析装置700は、上記第1実施形態同様、あるログエントリの特徴を表す第1特徴量と、ログのコンテキストを表す第2特徴量と、を用いて、ある一つのログエントリに関する特徴情報を作成する。これにより、分析装置700は、ある一つのログエントリに関する特徴情報に、ログのコンテキストを反映することができる。このような特徴情報を用いて分析モデルを学習することで、分析装置700は、ログエントリの重要性をより適切に判断可能な分析モデルを作成可能である。
【0190】
また、分析装置700は、あるログに含まれるログエントリの重要度に応じて、そのログエントリの表示態様を制御可能である。具体的には、分析装置700は、作成された分析モデルを用いて、評価対象のログエントリに関する重要度を算出し、その重要度に応じて当該ログエントリの表示態様を制御することができる。分析装置700は、例えば、ユーザにより指定された重要度以上の重要度のログエントリを表示し、ユーザにより指定された重要度よりも低い重要度のログエントリを抑制することができる。これにより、分析装置700は、ユーザにより指定された重要度に応じて、着目すべきログエントリを提示することができることから、ユーザによる分析作業の効率を改善することができる。
【0191】
また、分析装置700は、ログの内容等に応じて複数の分析モデルを作成することができる。例えば、ログ種別に応じてログエントリに記録されるフィールドの内容及びフィールドの個数が異なる場合を想定する。この場合、全てのログ種別を表現可能な特徴量(特徴ベクトル)を作成すると、次数が大きい(要素数が大きい)特徴量や、スパースな特徴量が作成される可能性がある。そのような特徴量を用いた学習処理には、比較的大きな記憶領域(メモリ領域)が必要となることがある。また、そのような特徴量を用いて分析モデルを学習した場合、例えば、ログ種別毎の特徴が希釈されてしまう可能性がある。これに対して、例えば、ログ種別毎に異なる分析モデルを作成する場合、不要に大きな次数の特徴量を作成する必要がないことから、処理効率を改善可能である。また、この場合、ログ種別毎に特有の特徴が反映された分析モデルが作成されると考えられる。このような分析モデルを用いることで、各エントリの重要度をより適切に算出可能である。
【0192】
<第2実施形態の変形例1>
以下、第2実施形態の第1の変形例(「変形例1」と記載する)について説明する。以下、上記各実施形態と同様の構成については、同様の参照符号を付し、詳細な説明を省略する。
【0193】
図22は、本変形例1における分析装置2200の機能的な構成を概念的に示すブロック図である。本変形例1における分析装置2200は、第2実施形態における分析装置700に対して、更に情報収集部2202を備える。また、分析装置2200における特徴抽出部2201の機能が、第2実施形態の分析装置700における特徴抽出部701から拡張されている。以下、係る相違点を中心に説明する。
【0194】
情報収集部2202(情報収集手段)は、ある検体801を実行することで得られたログに関連する情報等を、分析装置2200の外部に存在する情報源3000から取得する。具体的には、情報収集部2202は、第1ログエントリに記録された内容に関連する情報を、外部の情報源3000から取得してもよい。以下、情報収集部2202が外部の情報源3000から取得した情報を、外部コンテキスト情報と記載する。
【0195】
本変形例1において、情報源3000の種類は特に限定されず、適宜選択可能である。情報源3000には、例えば、各種セキュリティ製品等のベンダが提供する情報提供サービスが含まれてもよい。また、情報源3000には、各種セキュリティ情報が蓄積されたデータベースが含まれてもよい。また、情報源3000には、セキュリティ事象(インシデント)に対処する各種組織(例えば、各種CSIRT(Computer Security Incident Response Team)等)が情報を発信するサイト等が含まれてもよい。また情報源3000には、現在では一般的なインターネットにおける情報検索サービスや、ソーシャルネットワークサービスが含まれてもよい。また、情報源3000には、DNS(Domain Name Service)、WHOIS等、ネットワークに関連する情報を提供するサービスが含まれてもよい。
【0196】
情報収集部2202は、例えば、特徴抽出部2201(後述)からの依頼に応じて、第1ログエントリに記録された内容に関する適切な情報を提供する情報源3000を選択し、外部コンテキスト情報を取得する。情報収集部2202が外部コンテキストを取得する具体的な方法は、情報源3000の構成や仕様等に応じて、適切に選択されてよい。具体的には、情報収集部2202は、例えば、特定の通信プロトコルに従って、情報源3000から外部コンテキスト情報を取得してもよい。情報収集部2202は、例えば、特定のクエリを情報源3000に送信し、そのレスポンスを受信してもよい。情報収集部2202は、情報源3000により提供される特定のAPIを利用して、外部コンテキスト情報を取得してもよい。
【0197】
情報収集部2202は、情報源3000から取得した外部コンテキスト情報を、特徴抽出部2201に提供する。
【0198】
本変形例1における特徴抽出部2201は、第2実施形態の分析装置700における特徴抽出部701と同様の機能を備える。特徴抽出部2201は、更に、外部コンテキスト情報から特徴量を抽出するよう構成される。以下、外部コンテキスト情報から抽出される特徴量を、「第3特徴量」と記載する事がある。
【0199】
特徴抽出部2201は、例えば、情報収集部2202に対して、外部コンテキスト情報の取得を依頼してもよい。この際、特徴抽出部2201は、第1ログエントリに記録された内容を、情報収集部2202に提供してもよい。
【0200】
特徴抽出部2201は、情報収集部2202が収集した外部コンテキスト情報から第3特徴量を抽出し、その第1ログエントリに関する特徴情報を作成する。具体的には、特徴抽出部2201は、第1特徴量と、第3特徴量とを用いて、ある第1ログエントリに関する特徴情報を作成してもよく、第1特徴量と、第2特徴量と、第3特徴量と、を用いて、ある第1ログエントリに関する特徴情報を作成してもよい。
【0201】
本変形例1における分析装置2200の他の構成要素は、概略上記第2実施形態における分析装置700の構成要素と同様としてよい。
【0202】
即ち、分析モデル作成部702は、特徴抽出部2201から提供される学習データと、教師データ提供部706に記憶される教師データとを用いて、分析モデルを作成する。 重要度算出部703は、上記第2実施形態と同様、分析モデル作成部702により作成された分析モデルを用いて、あるログエントリに関する重要度を算出し、表示制御部704に提供するよう構成される。
【0203】
表示制御部704は、上記第2実施形態と同様、重要度算出部703により算出された各ログエントリの重要度に応じて、当該ログエントリの表示を制御可能なインタフェースを生成するよう構成される。
【0204】
動作ログ提供部705は、上記第2実施形態と同様、ある検体801の実行に伴い記録されたログを保持(記憶)し、教師データ提供部706は、学習データとして用いられるログエントリに付与された教師スコアを含む教師データを保持(記憶)する。
【0205】
〔外部コンテキスト情報及び第3特徴量〕
以下、外部コンテキスト情報及び、外部コンテキストから抽出される第3特徴量について説明する。上記したように、情報収集部2202は、情報源3000から、第1ログエントリの内容に関連する外部コンテキスト情報を取得する。一例として、情報収集部2202は、第1ログエントリのログ種別(”type”フィールドの情報)に応じて、適切な情報源3000を選択し、外部コンテキスト情報を取得する。この場合、情報収集部2202は、例えば、第1ログエントリのログ種別と、そのログ種別に関する外部コンテキスト情報を取得可能な情報源3000と、を関連付けたテーブル等を予め保持(記憶)していてもよい。
【0206】
一例として、第1ログエントリのログ種別”type”フィールドに”file”が設定されている場合を想定する。この場合、例えば、第1ログコンテキストの”path”フィールドから、具体的なファイルを特定可能である。
【0207】
情報収集部2202は、例えば、特定されたファイルがウィルス対策製品に検知されるか否かを判定可能な情報を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。この場合、特徴抽出部2201は、例えば、第1ログエントリの”path”フィールドにより特定されるファイルがウィルス対策製品に検知されるか否かを表す値(例えばブール値)を、第3特徴量に含めてよい。
【0208】
また、情報収集部2202は、例えば、そのファイルが取得された数(例えば、そのファイルをダウンロードしたユーザ数)を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。この場合、特徴抽出部2201は、例えば、第1ログエントリの”path”フィールドにより特定されるファイルがダウンロードされた数を表す値を、第3特徴量に含めてよい。
【0209】
また、情報収集部2202は、例えば、ある情報源3000から、そのファイルの信頼度を表す情報を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。この場合、特徴抽出部2201は、例えば、第1ログエントリの”path”フィールドにより特定されるファイルの信頼度を表す値を、第3特徴量に含めてよい。なお、ファイルの信頼度は、そのファイルが実行する処理の内容、ファイルの提供元、そのファイルに関するインシデントの有無等に応じて、情報源3000において適宜設定されてよい。
【0210】
上記の場合、情報源3000として、例えば、各種セキュリティ製品等のベンダ、セキュリティ事象に対処する各種組織が情報を発信するサイト等が含まれてよい。情報収集部2202は、例えば、情報源3000において、そのファイルの名称(ファイル名)や、そのファイルのハッシュ値を含むコンテンツ、データ等を検索することで、上記したような外部コンテキスト情報を収集することが可能である。この場合、情報収集部2202は、例えば、あるファイルのセキュリティに関する評判(レピュテーション)を表す情報を、外部コンテキスト情報として取得すると考えられる。
【0211】
他の一例として、第1ログエントリのログ種別”type”フィールドに”registry”が設定されている場合を想定する。この場合、例えば、第1ログコンテキストの”key”フィールドから、具体的なレジストリキーを特定可能である。
【0212】
情報収集部2202は、例えば、特定されたレジストリキーにアクセスする既知のマルウェアが存在するか否かを判定可能な情報を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。更に、情報収集部2202は、特定されたレジストリキーにアクセスする既知のマルウェアが存在する場合、その名称、分類名、ハッシュ値等を取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。
【0213】
この場合、特徴抽出部2201は、例えば、第1ログエントリの”key”フィールドにより特定されるレジストリにアクセスする既知のマルウェアが存在するか否かを表す値(例えば、ブール値)を、第3特徴量に含めてよい。なお、特定されたレジストリキーにアクセスする既知のマルウェアが存在する場合、特徴抽出部2201は、そのマルウェアの名称、分類名、ハッシュ値等を第3特徴量に含めてもよい。この際、マルウェアの名称、分類名等は適宜文字列表現や数値表現に変換されてもよい。この場合、情報収集部2202は、例えば、あるレジストリのキーのセキュリティに関連する評判(レピュテーション)を表す情報を、外部コンテキスト情報として取得すると考えられる。
【0214】
更に他の一例として、第1ログエントリのログ種別”type”フィールドに”network”が設定されている場合を想定する。この場合、例えば、第1ログコンテキストの”host”フィールド、”ip”フィールド、”url”フィールド等から、通信先を特定可能である。
【0215】
情報収集部2202は、例えば、特定された通信先に関する評価を表す情報を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。通信先に関する評価を表す情報には、例えば、通信先のホスト自体に関する評価、通信先が属するドメインに関する評価、URLに関する評価等が含まれてよい。係る評価には、例えば、そのホストにアクセスする利用者の数、そのドメインにアクセスする利用者の数、そのURLにアクセスする利用者の数、等が含まれてもよい。また、係る評価には、そのホスト、ドメイン、URL等が、既知のブラックリストに登録されているか否か、等が含まれてもよい。ブラックリストは、セキュリティの観点から問題がある通信先等が登録されたリストである。この場合、特徴抽出部2201は、例えば、特定された通信先に関する評価を表す情報を、第3特徴量に含めてよい。具体的には、特徴抽出部2201は、例えば、ある通信先にアクセスする利用者の数を表す値、ある通信先がブラックリストに登録されているか否かを表す値(例えばブール値)等を、第3特徴量に含めてもよい。この場合、情報収集部2202は、例えば、ある通信先のセキュリティに関連する評判(レピュテーション)を表す情報を、外部コンテキスト情報として取得すると考えられる。
【0216】
上記に限定されず、情報収集部2202は、例えば、特定された通信先が存在する地域(国、領域等)を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。情報収集部2202は、例えば、”ip”フィールドに設定されたIPアドレスが割り当てられた国を特定し、その国を表す情報を、特徴抽出部2201に提供してもよい。この場合、特徴抽出部2201は、例えば、特定された通信先が存在する地域(国、領域等)を表す情報を、第3特徴量に含めてよい。この際、通信先が存在する地域の名称は、適宜文字列表現や数値表現に変換されてもよい。
【0217】
上記に限定されず、情報収集部2202は、例えば、特定された通信先の所有者(より具体的には、通信先のIPアドレスの所有者)を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。情報収集部2202は、例えば、”ip”フィールドに設定されたIPアドレスから、現在では一般的なWHOISプロトコル等を用いて、そのIPアドレスの所有者に関する情報を取得することができる。この場合、特徴抽出部2201は、例えば、特定された通信先の所有者を表す情報の少なくとも一部を、第3特徴量に含めてよい。この際、通信先の所有者を表す情報は、適宜文字列表現や数値表現に変換されてもよい。
【0218】
図23は、情報収集部2202が外部コンテキストを取得し、特徴抽出部2201が第3特徴量を抽出する過程を模式的に表す説明図である。図23に例示するように、特徴抽出部2201は、例えば、第1特徴量を表す特徴ベクトルの要素と、第3特徴量を表す特徴ベクトルの要素とを適宜並べることで、第1ログエントリの特徴情報を表す特徴ベクトルを作成してもよい。また、特徴抽出部2201は、例えば、第1特徴量を表す特徴ベクトルの要素と、第2特徴量を表す特徴ベクトルの要素と、第3特徴量を表す特徴ベクトルの要素と、を適宜並べることで、第1ログエントリの特徴情報を表す特徴ベクトルを作成してもよい。
【0219】
〔動作〕
以下、分析装置2200の動作について説明する。図24は、分析装置2200の動作の一例を示すフローチャートである。図24に示すフローチャートの各ステップのうち、第2実施形態における分析装置700の動作と同様の処理については、図21に例示するフローチャートと同じ参照符号を付すことで、詳細な説明を省略する。
【0220】
分析装置2200は、上記第2実施形態と同様、検体検査装置800から、ある検体801を実行する過程で記録されたログを受け付ける(ステップS2101)。
【0221】
分析装置2200は、受け付けたログのうち、学習データとして用いられるレコードのログエントリ(第1ログエントリ)に関する外部コンテキスト情報を取得する(ステップS2401)。
【0222】
具体的には、特徴抽出部2201は、第1ログエントリの内容に関連する外部コンテキスト情報の取得を、情報収集部2202に依頼する。情報収集部2202は、第1ログエントリの内容に応じて情報源3000を選択し、その情報源3000から第1ログエントリの内容に応じた情報を取得する。情報収集部2202は、取得した情報を、外部コンテキスト情報として特徴抽出部2201に提供する。外部コンテキスト情報の具体例は、上記説明した通りである。
【0223】
ステップS2102乃至ステップS2104の処理は、概略上記第2実施形態と同様としてよい。即ち、分析装置700は、ステップS2102において、第1ログエントリから抽出した第1特徴量と、外部コンテキスト情報から抽出した第3特徴量と、を用いて第1ログエントリに関する特徴情報を作成する。この際、分析装置700は、第1、第3特徴量に加えて、ログのコンテキストを表す第2特徴量を用いて、第1ログエントリに関する特徴情報を作成してもよい。分析装置700は、ステップS2103において作成した特徴情報を含む学習データと、教師データとをもちいて分析モデルを作成し(ステップS2103)、評価対象のログエントリに関する重要度を算出し(ステップS2104)、重要度に応じてログエントリの表示を制御する(ステップS2105)。
【0224】
上記のように構成された本実施形態における分析装置700により、例えば、以下のような現実的な効果が得られる。
【0225】
上記のように構成された分析装置2200は、学習データとして用いられるログエントリの特徴情報に、外部コンテキスト情報を含めることができる。現在では、各種セキュリティ製品等のベンダや、セキュリティ事象に対処する各種組織により、各種セキュリティ事象に関する各種の情報が提供されている。例えば、分析者が、このような情報を確認することで、あるログエントリの重要性を、より適切に判断することができると考えられる。これに対して、本変形例1において、分析装置2200は、一つのログエントリから抽出した特徴量と、外部コンテキストから抽出した特徴量と、を含む特徴情報を作成する。即ち、分析装置2200は、外部コンテキスト情報が含まれる特徴情報を用いることで、ログエントリの重要性をより適切に判断可能な分析モデルを作成できると考えられる。以上より、本変形例1における分析装置2200は、ログの重要性をより適切に判定することが可能である。
【0226】
<第2実施形態の変形例2>
以下、第2実施形態の第2の変形例(「変形例2」と記載する)について説明する。以下、上記各実施形態及び変形例と同様の構成については、同様の参照符号を付し、詳細な説明を省略する。
【0227】
図25は、本変形例2における分析装置2500の機能的な構成を概念的に示すブロック図である。本変形例2における分析装置2500は、第2実施形態における分析装置700に対して、更に事前学習部2503を備える。また、分析装置2500における特徴抽出部2501の機能が、第2実施形態の分析装置700における特徴抽出部701から拡張されている。また、分析装置2500における分析モデル作成部2502の機能が、第2実施形態の分析装置700における分析モデル作成部702から拡張されている。以下、係る相違点を中心に説明する。なお、本変形例においては、分析モデル作成部702により作成される分析モデルが、多層NNであることを想定する。
【0228】
特徴抽出部2501は、検体検査装置800から提供されたログに含まれるレコードのログエントリに関する特徴情報を作成する。特徴情報を作成する具体的な方法は、例えば、上記第2実施形態及びその変形例1と同様としてよい。
【0229】
本変形例2において、特徴抽出部2501は、教師スコアが付与されたレコードのログエントリに加え、これらに含まれないログエントリについても、特徴情報を作成するよう構成される。即ち、特徴抽出部2501は、例えば、分析モデルの学習データとして用いられないログエントリ(教師スコアが付与されていないレコードのログエントリ)についても、特徴情報を作成する。典型的には、本変形例2における特徴抽出部2501は、あるログに含まれる全てのレコードのログエントリについて、それぞれ特徴情報を作成してよい。
【0230】
事前学習部2503は、特徴抽出部2501において作成された各ログエントリに関する特徴情報を用いて、分析モデルとして用いられる多層NNに関する事前学習を実行する。
【0231】
多層NNを事前学習(プレトレーニング)する具体的な方法は、周知技術を含め、適宜選択されてよい。事前学習の方法として、例えば、自己符号化器(オートエンコーダ:autoencoder)を用いてもよく、制限付きボルツマンマシン(RBM:Restricted Boltzmann Machines)を用いてもよい。一例として、事前学習部2503は、分析モデルとして用いる多層NNを1層ずつ複数の単層ネットワークに分解し、各層を自己符号化器として上記特徴情報を用いた教師なし学習を行うことで、各層に含まれるノードのパラメータを算出することができる。上記に限定されず、事前学習部2503は、例えば、周知の他の事前学習の方法(例えば、深層自己符号化器や、深層RBM等)を適宜採用してもよい。事前学習部2503は、このようにして作成された多層NN(具体的には、多層NNの各ノードのパラメータ)を、分析モデル作成部2502に提供する。
【0232】
分析モデル作成部2502は、事前学習部2503から提供された多層NNに対して、回帰用の層(例えば、1つの出力ノードを有する出力層)を追加する。これにより、分析モデルとして用いられる多層NNのネットワーク構造が決定される。
【0233】
分析モデル作成部2502は、上記のように作成された事前学習済みの分析モデルについて、学習データ及び教師データを用いた学習処理を実行する。この学習処理より、分析モデル作成部2502は、分析モデルのパラメータを、回帰用に微調整することが可能である。なお、過学習を抑制するため、多層NNの下層については、ノードの重みが固定されてもよい。
【0234】
分析装置2500における他の要素は、上記第2実施形態と同様としてよい。
【0235】
上記ように構成された本変形例2における分析装置2500によれば、あるログエントリの重要度をより適切に判断可能な分析モデルを作成することができる。その理由は、事前学習部2503が、ある検体801の実行過程で記録されたログから作成された特徴情報を用いて、分析モデルに関する事前学習を実行するからである。事前学習により、分析モデルとして用いられる多層NNについて、適切な初期値を与えることが可能である。これにより、分析装置2500は、多層NNの学習処理における各種の問題(例えば、勾配消失等)を回避して、より適切な分析モデルを作成することができる。
【0236】
<第2実施形態の変形例3>
以下、第2実施形態の第3の変形例(「変形例3」と記載する)について説明する。以下、上記各実施形態及び変形例と同様の構成については、同様の参照符号を付し、詳細な説明を省略する。
【0237】
図26は、本変形例3における分析装置2600の機能的な構成を概念的に示すブロック図である。本変形例3における分析装置2600は、上記変形例1と、変形例2とを組合せた構成を備える。本実施形態においては、上記変形例2と同様、分析モデルとして多層NNが用いられることを想定する。
【0238】
本実施形態における特徴抽出部2601は、上記変形例1における特徴抽出部2201と同様、外部コンテキスト情報から抽出した第3特徴量を含む特徴情報を作成する。特徴抽出部2601が備える他の機能は、上記変形例1及び変形例2と同様としてよい。
【0239】
事前学習部2603は、第3特徴量を含む特徴情報を用いて、分析モデルに関する事前学習を実行する。事前学習部2603が備える他の機能は、変形例2と同様としてよい。
【0240】
分析モデル作成部2602は、第3特徴量を含む特徴情報を含む学習データと、教師データとを用いて、事前学習部2603による事前学習済みの分析モデルに関する学習処理を実行する。分析モデル作成部2602が備える他の機能は、上記変形例1及び変形例2と同様としてよい。
【0241】
分析装置2600の他の構成は、上記変形例1及び変形例2と同様としてよい。
【0242】
上記のように構成された分析装置2600は、上記変形例1及び変形例2の組合せに相当し、上記変形例1及び変形例2と同様、あるログに関する重要度をより適切に判定可能である。
【0243】
<ハードウェア及びソフトウェア・プログラム(コンピュータ・プログラム)の構成>
以下、上記説明した各実施形態及び変形例を実現可能なハードウェア構成について説明する。以下の説明においては、上記各実施形態において説明した各分析装置(100、700、2200、2500、2600)を、まとめて「分析装置」と記載する。
【0244】
上記各実施形態において説明した各分析装置は、1つ又は複数の専用のハードウェア装置により構成されてもよい。その場合、上記各図(例えば、図1、7−9、22、25、26)に示した各構成要素は、一部又は全部を統合したハードウェア(処理ロジックを実装した集積回路等)として実現してもよい。即ち、
例えば、分析装置をハードウェア装置により実現する場合、分析装置の構成要素は、それぞれの機能を提供可能な集積回路(例えば、SoC(System on a Chip)等)として実装されてもよい。この場合、例えば、分析装置の構成要素が有するデータは、SoCに統合されたRAM(Random Access Memory)領域やフラッシュメモリ領域に記憶されてもよい。
【0245】
この場合、分析装置は、例えば、特徴抽出部(101、701、2201、2501、2601)、分析モデル作成部(102、702、2502、2602)、重要度算出部703、表示制御部704、動作ログ提供部705、教師データ提供部706、情報収集部2202、事前学習部(2503、2603)の機能を実現可能な1以上の処理回路(processing circuitry)、通信回路、及び記憶回路等を用いて実現されてよい。なお、分析装置を実現する回路構成の実装においては、様々なバリエーションが想定される。
【0246】
分析装置を複数のハードウェア装置により構成する場合、それぞれのハードウェア装置の間は、適切な通信方法(有線、無線、またはそれらの組み合わせ)により通信可能に接続されていてもよい。
【0247】
また、上述した分析装置は、図27に例示するような汎用のハードウェア装置2700と、ハードウェア装置2700によって実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、分析装置は、1以上の適切な数のハードウェア装置2700及びソフトウェア・プログラムにより構成されてもよい。
【0248】
図27におけるプロセッサ2701は、例えば、汎用のCPU(中央処理装置:Central Processing Unit)やマイクロプロセッサである。プロセッサ2701は、例えば、後述する不揮発性記憶装置2703に記憶された各種ソフトウェア・プログラムをメモリ2702に読み出し、そのソフトウェア・プログラムに従って処理を実行してもよい。この場合、上記各実施形態における分析装置の構成要素は、例えば、プロセッサ2701により実行されるソフトウェア・プログラムとして実現可能である。
【0249】
上記各実施形態における分析装置は、例えば、特徴抽出部(101、701、2201、2501、2601)、分析モデル作成部(102、702、2502、2602)、重要度算出部703、表示制御部704、動作ログ提供部705、教師データ提供部706、情報収集部2202、事前学習部(2503、2603)の機能を実現可能な1以上のプログラムにより実現されてよい。なお、係るプログラムの実装においては、様々なバリエーションが想定される。
【0250】
メモリ2702は、プロセッサ2701から参照可能な、RAM等のメモリデバイスであり、ソフトウェア・プログラムや各種データ等を記憶する。なお、メモリ2702は、揮発性のメモリデバイスであってもよい。
【0251】
不揮発性記憶装置2703は、例えば磁気ディスクドライブや、半導体記憶装置(フラッシュメモリ等)のような、不揮発性の記憶装置である。不揮発性記憶装置2703は、各種ソフトウェア・プログラムやデータ等を記憶可能である。上記分析装置において、動作ログ提供部705及び教師データ提供部706が記憶するデータは、不揮発性記憶装置2703に記憶されてもよい。
【0252】
リーダライタ2704は、例えば、後述する記録媒体2705に対するデータの読み込みや書き込みを処理する装置である。分析装置は、例えば、リーダライタ2704を介して、記録媒体2705に記録されたログや、教師データを読み込んでもよい。
【0253】
記録媒体2705は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な記録媒体である。本開示において、記録媒体の種類及び記録方法(フォーマット)は、特に限定されず、適宜選択されてよい。
【0254】
ネットワークインタフェース2706は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のLAN(Local Area Network)接続用インタフェース装置等を採用してもよい。分析装置は、ネットワークインタフェース2706を介して、情報源3000及び検体検査装置800と通信可能に接続されてよい。
【0255】
入出力インタフェース2707は、外部装置との間の入出力を制御する装置である。外部装置は、例えば、ユーザからの入力を受け付け可能な入力機器(例えば、キーボード、マウス、タッチパネル等)であってもよい。また、外部装置は、例えばユーザに対して各種出力を提示可能出力機器であってもよい(例えば、モニタ画面、タッチパネル等)。分析装置は、例えば、入出力インタフェースを介して、ユーザインタフェースの表示を制御してもよい。
【0256】
本開示に係る技術は、例えば、ハードウェア装置2700に対して供給されたソフトウェア・プログラムを、プロセッサ2701が実行することによって、実現されてもよい。この場合、ハードウェア装置2700で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが、各処理の一部を実行してもよい。
【0257】
上述した各実施形態において、上記各図に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能(処理)の単位である、ソフトウェアモジュールとして実現されてもよい。例えば、上記各部をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールは、不揮発性記憶装置2703に記憶されてもよい。そして、プロセッサ2701が、それぞれの処理を実行する際に、これらのソフトウェアモジュールをメモリ2702に読み出してもよい。また、これらのソフトウェアモジュールは、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成されてもよい。
【0258】
更に、上記各ソフトウェア・プログラムは、記録媒体2705に記録されてもよい。この場合、上記各ソフトウェア・プログラムは、適当な治具(ツール)を利用してハードウェア装置2700内にインストールされてもよい。また、各種ソフトウェア・プログラムは、インターネット等の通信回線を介して外部からダウンロードされてもよい。ソフトウェア・プログラムを供給する方法として、各種の一般的な手順を採用することができる。
【0259】
このような場合において、本開示に係る技術は、ソフトウェア・プログラムを構成するコード、あるいはコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されてもよい。この場合、記録媒体は、ハードウェア装置2700と独立した非一時的な記録媒体であってもよく、LANやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記録媒体であってもよい。
【0260】
また、上述した分析装置、あるいは、当該分析装置の構成要素は、図27に例示するハードウェア装置2700を仮想化した仮想環境と、その仮想環境において実行されるソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、図27に例示するハードウェア装置2700の構成要素は、仮想環境における仮想デバイスとして提供される。
【0261】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【0262】
なお、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
【0263】
(付記1)
ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、前記ログエントリである1以上の第2ログエントリから抽出した、前記第1特徴量とは異なる第2特徴量と、を用いて、前記第1ログエントリに関する特徴情報を作成可能に構成された特徴抽出手段と、
前記第1ログエントリに関する前記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の前記ログエントリに関する重要度を判定可能な分析モデルを作成する分析モデル作成手段と、を備える
分析装置。
【0264】
(付記2)
前記特徴抽出手段は、それぞれの前記第2ログエントリに記録された情報を計数することで作成される情報であるコンテキスト情報を、前記第2特徴量として抽出する
付記1に記載の分析装置。
【0265】
(付記3)
前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
前記特徴抽出手段は、ある前記ソフトウェア・プログラムについて記録された全ての前記第2ログエントリに記録された情報を用いて、
前記ソフトウェア・プログラムの実行過程で実行されたプロセス毎の、前記第2ログエントリの数に関する情報と、
前記第2ログエントリの数を、それぞれの前記ログ種別について集計したヒストグラムを表す情報と、
それぞれの前記ログ種別について集計した、前記ソフトウェア・プログラムの実行過程でアクセスされたリソースの数に関する情報と、
のいずれか1つ以上を算出することで、前記コンテキスト情報を作成する
付記2に記載の分析装置。
【0266】
(付記4)
前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
前記特徴抽出手段は、前記第1ログエントリが記録されたプロセスと同じプロセスについて記録された複数の前記第2ログエントリに記録された情報を用いて、
前記第2ログエントリの数を、それぞれの前記ログ種別について集計したヒストグラムを表す情報と、
それぞれの前記ログ種別について集計した、前記ソフトウェア・プログラムの実行過程でアクセスされたリソースの数に関する情報と、
前記ソフトウェア・プログラムの実行過程で記録された前記ログエントリの総数と、前記第1ログエントリが記録されたプロセスと同じプロセスについて記録された前記第2ログエントリの総数と、の割合に関する情報と、
のいずれか1つ以上を算出することで、前記コンテキスト情報を作成する
付記2に記載の分析装置。
【0267】
(付記5)
前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
前記特徴抽出手段は、前記第1ログエントリが記録さえたタイミングから、時系列において特定の範囲内に記録された複数の前記第2ログエントリに記録された情報を用いて、
前記第2ログエントリの数を、それぞれの前記ログ種別について集計したヒストグラムを表す情報と、
前記第1ログエントリが記録されたタイミングから、時系列において特定の範囲内に記録された複数の前記第2ログエントリの総数と、前記第1ログエントリが記録されたタイミングから、時系列において特定の範囲内に記録された複数の前記第2ログエントリのうち、前記第1ログエントリと同じプロセスについて記録された前記第2ログエントリの総数と、の割合に関する情報と、
のいずれか1つ以上を算出することで、前記コンテキスト情報を作成する
付記2に記載の分析装置。
【0268】
(付記6)
前記特徴抽出手段は、それぞれの前記第2ログエントリに記録された情報から抽出した特徴量を用いて作成される情報であるコンテキスト情報を、前記第2特徴量として抽出する
付記1に記載の分析装置。
【0269】
(付記7)
前記特徴抽出手段は、前記第1ログエントリに対する前記第1特徴量と同様の特徴量を、各前記第2ログエントリから抽出し、各前記第2ログエントリから抽出した特徴量を用いて、前記第2特徴量を作成する
付記1乃至付記6のいずかれ一項に記載の分析装置。
【0270】
(付記8)
前記特徴抽出手段は、
前記第1ログエントリに記録された情報を文字列及び数値の少なくとも一方を用いて表すデータから、前記第1特徴量を抽出し、
前記第2ログエントリに記録された情報を文字列及び数値の少なくとも一方を用いて表するデータを、全ての前記第2ログエントリについて統合することで統合データを作成し、その統合データから前記第1ログエントリに対する前記第1特徴量と同様の特徴量を抽出することで、前記第2特徴量を作成する
付記7に記載の分析装置。
【0271】
(付記9)
前記特徴抽出手段は、
前記ソフトウェア・プログラムの動作を解析可能な解析装置により前記ソフトウェア・プログラムの動作を解析した結果を表すサマリ情報から、前記第2特徴量を抽出する
付記1に記載の分析装置。
【0272】
(付記10)
前記特徴抽出手段は、
前記サマリ情報に含まれる、前記ソフトウェア・プログラムが1以上の特定の活動を実行したか否かを表す情報を、前記第2特徴量として抽出する
付記9に記載の分析装置。
【0273】
(付記11)
前記第1ログエントリに記録された情報に関連する情報を、情報源から外部コンテキスト情報として取得する情報収集手段を更に備え、
前記特徴抽出手段は、前記情報収集手段により取得された外部コンテキスト情報に基づいて、第3特徴量を抽出し、
前記第2特徴量及び第3特徴量の少なくとも一方と、前記第1特徴量と、を用いて前記第1ログエントリに関する前記特徴情報を作成する
付記1乃至付記10のいずれか一項に記載の分析装置。
【0274】
(付記12)
前記情報収集手段は、前記ソフトウェア・プログラムの実行過程でアクセスされたリソースの、セキュリティに関する評判を表す情報を、前記外部コンテキスト情報として前記情報源から収集する
付記11に記載の分析装置。
【0275】
(付記13)
前記第1ログエントリに、あるファイルへのアクセスが記録されている場合、
前記情報収集手段は、
そのファイルがマルウェアとして検知されるファイルであるか否か、を表す情報と、
そのファイルが取得された数を表す情報と、
そのファイルの信頼度を表す情報と、
のいずれか1つ以上を、前記外部コンテキスト情報として前記情報源から取得する
付記11に記載の分析装置。
【0276】
(付記14)
前記第1ログエントリに、あるレジストリへのアクセスが記録されている場合、
前記情報収集手段は、そのレジストリがマルウェアによりアクセスされるか否かを表す情報を、前記外部コンテキスト情報として前記情報源から取得する
付記11に記載の分析装置。
【0277】
(付記15)
前記第1ログエントリに、ある通信先への通信が記録されている場合、
前記情報収集手段は、その通信先のセキュリティに関する評判を表す情報を、前記外部コンテキスト情報として前記情報源から取得する
付記11に記載の分析装置。
【0278】
(付記16)
前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
前記分析モデル作成手段は、それぞれの前記ログ種別に該当する前記ログエントリに関して作成された前記特徴情報を用いて、それぞれの前記ログ種別について個別に前記分析モデルを作成する
付記1又は2に記載の分析装置。
【0279】
(付記17)
前記分析モデルを用いて、前記ログエントリに関する重要度を算出する重要度算出手段と、
前記ログエントリについて算出された重要度に応じて、当該ログエントリの表示方法を制御可能なユーザインタフェースを生成する表示制御手段と、を更に備える
付記1乃至付記16のいずれかに記載の分析装置。
【0280】
(付記18)
前記表示制御手段は、
表示される前記ログエントリの重要度を表す閾値を設定可能な制御要素を含む前記ユーザインタフェースを生成し、
前記ユーザインタフェースは、前記閾値以上の重要度が算出された前記ログエントリと、前記閾値未満の重要度が算出された前記ログエントリと、をそれぞれ異なる表示方法を用いて表示する
付記17に記載の分析装置。
【0281】
(付記19)
前記表示制御手段は、
表示される前記ログエントリの重要度を表す閾値を設定可能な制御要素を含む前記ユーザインタフェースを生成し、
前記ユーザインタフェースは、前記閾値以上の重要度が算出された前記ログエントリを表示し、前記閾値未満の重要度が算出された前記ログエントリの表示を抑制する
付記18に記載の分析装置。
【0282】
(付記20)
前記表示制御手段は、
表示される前記ログエントリの重要度を表す閾値を設定可能な制御要素を含む前記ユーザインタフェースを生成し、
前記ユーザインタフェースは、前記閾値の重要度が算出された前記ログエントリを、前記閾値未満の重要度が算出された前記ログエントリよりも強調して表示する
付記19に記載の分析装置。
【0283】
(付記21)
前記分析モデルは、複数の層を有するニューラルネットワークであり、
前記特徴抽出手段は、前記重要度情報が付与されていない前記ログエントリについて、前記特徴情報を作成し、
前記分析モデル作成手段は、前記重要度情報が付与されていない前記ログエントリについて作成された前記特徴情報と、前記重要度情報が付与された前記第1ログエントリについて作成された前記特徴情報と、の両方を用いて、前記分析モデルに関する事前学習を実行する、
付記1乃至付記20のいずれかに記載の分析装置。
【0284】
(付記22)
ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、前記ログエントリである1以上の第2ログエントリから抽出した、前記第1特徴量とは異なる第2特徴量と、を用いて、前記第1ログエントリに関する特徴情報を作成し、
前記第1ログエントリに関する前記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の前記ログエントリに関する重要度を判定可能な分析モデルを作成する
ログの分析方法。
【0285】
(付記23)
ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、前記ログエントリである1以上の第2ログエントリから抽出した、前記第1特徴量とは異なる第2特徴量と、を用いて、前記第1ログエントリに関する特徴情報を作成する処理と、
前記第1ログエントリに関する前記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の前記ログエントリに関する重要度を判定可能な分析モデルを作成する処理とを、コンピュータに、実行させる
分析プログラムが記録された記録媒体。
【符号の説明】
【0286】
100 分析装置
101 特徴抽出部
102 分析モデル作成部
700 分析装置
701 特徴抽出部
702 分析モデル作成部
703 重要度算出部
704 表示制御部
705 動作ログ提供部
706 教師データ提供部
2200 分析装置
2201 特徴抽出部
2202 情報収集部
2500 分析装置
2501 特徴抽出部
2502 分析モデル作成部
2503 事前学習部
2600 分析装置
2601 特徴抽出部
2602 分析モデル作成部
2603 事前学習部
2701 プロセッサ
2702 メモリ
2703 不揮発性記憶装置
2704 リーダライタ
2705 記録媒体
2706 ネットワークインタフェース
2707 入出力インタフェース
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27