(57)【要約】  調査対象であるソフトウェアと既知のマルウェアとの動作の類似性を、効率的に高い精度で解析する。  マルウェア解析装置４０は、検体であるソフトウェアが動作した結果を表す、第１の動作情報４４０を抽象化した第１の抽象化情報４１０を生成する抽象化部４１と、１以上の、検体に対する比較対象のソフトウェアごとに動作した結果を表す、第２の動作情報が抽象化された第２の抽象化情報４５０が記憶された抽象化情報記憶部４５と、第１の抽象化情報４１０と第２の抽象化情報４５０との類似度を算出する算出部４２と、その類似度が基準を満たす比較対象のソフトウェアを特定する特定部４３と、を備える。
2018070404.tif 000002
【特許請求の範囲】
【請求項１】
検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成する抽象化手段と、
１以上の、前記検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶された抽象化情報記憶手段と、
前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出する算出手段と、
前記類似度が基準を満たす前記比較対象のソフトウェアを特定する特定手段と、
を備えるマルウェア解析装置。
【請求項２】
前記抽象化手段は、前記第一の動作情報に含まれる項目ごとに、項目削除、あるいは、前記項目に含まれる情報の少なくとも一部を削除あるいは変更することによって、前記第一の抽象化情報を生成する、
請求項１に記載のマルウェア解析装置。
【請求項３】
前記第一の動作情報に含まれる項目ごとに、項目削除、あるいは、前記項目に含まれる情報の少なくとも一部を削除あるいは変更することを指示する抽象化規則が記憶された抽象化規則記憶手段をさらに備え、
前記抽象化手段は、前記抽象化規則に基づいて前記第一の抽象化情報を生成し、
前記抽象化情報記憶手段には、前記第二の動作情報が前記抽象化規則に基づいて抽象化された、前記第二の抽象化情報が記憶されている、
請求項１に記載のマルウェア解析装置。
【請求項４】
前記抽象化情報記憶手段には、前記項目に含まれる、プロセスを識別可能な識別子、タイムスタンプ、ファイル名、及び、メモリにおけるアドレスを表す情報を削除することを指示する前記抽象化規則が記憶されている、
請求項３に記載のマルウェア解析装置。
【請求項５】
前記抽象化手段は、前記抽象化規則に登録されていない前記項目については、前記項目削除を行う、
請求項３または４のいずれか一項に記載のマルウェア解析装置。
【請求項６】
前記算出手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリに関するヒストグラムに基づいて、前記第一の抽象化情報と前記第二の抽象化情報との距離を算出し、
前記特定手段は、前記距離の近さに関して所定の順位までに入る前記比較対象のソフトウェア、あるいは、前記距離を示す値が閾値以下である前記比較対象のソフトウェアを特定する、
請求項１乃至５のいずれか一項に記載のマルウェア解析装置。
【請求項７】
前記算出手段は、前記第一の抽象化情報と前記第二の抽象化情報とのユークリッド距離あるいはマンハッタン距離を算出する、
請求項６に記載のマルウェア解析装置。
【請求項８】
前記第一の抽象化情報と、前記第二の抽象化情報との差分を示す情報を生成する差分解析手段
をさらに備える請求項１に記載のマルウェア解析装置。
【請求項９】
前記差分解析手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリを単位とする、前記第一の抽象化情報から前記第二の抽象化情報を生成するための編集スクリプトを求め、求めた前記編集スクリプトに基づいて、前記第一の抽象化情報に含まれる前記ログエントリと、前記第二の抽象化情報に含まれる前記ログエントリとの対応関係を示す情報を生成する、
請求項８に記載のマルウェア解析装置。
【請求項１０】
前記差分解析手段は、前記第一の抽象化情報に対する、共通、削除、追加、及び、変更の少なくともいずれかを含む編集操作を示す前記編集スクリプトを求める、
請求項９に記載のマルウェア解析装置。
【請求項１１】
前記差分解析手段は、前記第一及び第二の動作情報、及び、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリのうち、内容が所定の条件を満たす特定のログエントリを抽出して、前記特定のログエントリに関して、前記差分を示す情報を生成する、
請求項８乃至１０のいずれか一項に記載のマルウェア解析装置。
【請求項１２】
前記特定手段によって特定された前記比較対象のソフトウェアに関して、前記第二の動作情報あるいは前記第二の抽象化情報と、前記算出手段によって算出された前記類似度と、前記差分解析手段によって生成された前記差分を示す情報と、の少なくともいずれかを提示装置に提示する提示制御手段
をさらに備える請求項８乃至１１のいずれか一項に記載のマルウェア解析装置。
【請求項１３】
前記提示制御手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリを単位として、前記差分を示す情報において差分が無いことが示されている前記ログエントリ同士を、同一の行に並べた提示態様によって、前記提示装置に提示する、
請求項１２に記載のマルウェア解析装置。
【請求項１４】
前記提示制御手段は、前記差分を示す情報における差分箇所を、前記差分箇所を除く箇所とは異なる提示態様によって前記提示装置に提示する、
請求項１２または１３に記載のマルウェア解析装置。
【請求項１５】
前記提示制御手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリを単位として、前記提示装置に提示しているときに、外部からの指示により特定のログエントリが選択された場合は、前記抽象化手段によって抽象化される前の前記特定のログエントリを、前記提示装置に提示する、
請求項１２乃至１４のいずれか一項に記載のマルウェア解析装置。
【請求項１６】
前記項目に含まれる情報が取り得る値の種類が基準を満たすように、前記抽象化規則を生成する抽象化規則生成手段
をさらに備える請求項３に記載のマルウェア解析装置。
【請求項１７】
前記抽象化規則生成手段は、階層構造を備えたデータを表す前記項目に対して、抽象化することによって、前記データが取り得る値の種類が閾値以下となるような階層の深さを表す、前記抽象化規則を生成する、
請求項１６に記載のマルウェア解析装置。
【請求項１８】
１以上の、検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶手段に記憶されている場合に、
情報処理装置によって、
前記検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成し、
前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出し、
前記類似度が基準を満たす前記比較対象のソフトウェアを特定する、
マルウェア解析方法。
【請求項１９】
１以上の、検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶された記憶手段にアクセス可能なコンピュータに、
前記検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成する抽象化処理と、
前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出する算出処理と、
前記類似度が基準を満たす前記比較対象のソフトウェアを特定する特定処理と、
を実行させるためのマルウェア解析プログラムが格納された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、マルウェアであることが疑われるソフトウェアの動作内容に基づいて、当該ソフトウェアの不正動作を解析する技術に関する。
【背景技術】
【０００２】
近年、一日あたり数万件もの新種のマルウェア（不正動作を引き起こすソフトウェア）が出現し、これらのマルウェアが高度に情報化された現代社会に与える影響は、非常に深刻になってきている。したがって、このようなマルウェアを効率よく検知して解析する技術に対する期待が高まってきている。【０００３】
このような技術に関連する技術として、特許文献１には、攻撃シナリオに沿ってログを分析し、サイバー攻撃を検知する場合において、検知漏れを減らすようにしたログ分析装置が開示されている。この装置は、攻撃シナリオにおいて定義されている複数の攻撃のうち、コンピュータシステムに備えられた検知装置により未だ検知されておらず、当該攻撃シナリオにおいて定義されている順番が当該検知装置により既に検知されている少なくとも１つの攻撃よりも前の攻撃を抽出する。この装置は、そのコンピュータシステムのログを分析して、そのコンピュータシステムが抽出された攻撃を受けていたかどうかを判定し、受けていたと判定した場合に、攻撃の検知漏れが発生したと判断する。【０００４】
また、特許文献２には、アプリケーションの挙動を記録したログから自動解析や目視による検証に有効な部分を抽出し、不要な部分を削減するようにしたログ抽出システムが開示されている。このシステムは、アプリケーションログから、特定のアプリケーションの識別情報と関連付けられたプロセスの識別情報を抽出する。このシステムは、アプリケーションログから、抽出されたプロセスの識別情報を有する部分を抽出する。このシステムは、カーネルログから、抽出されたプロセスの識別情報を有する部分を抽出する。そして、このシステムは、抽出した部分から、ルール情報に従って一部を削除することによってアプリケーションログまたはカーネルログを集約する。【０００５】
また、特許文献３には、ネットワーク上で他のコンピュータに対して不正処理を行うマルウェアが送信する系列データと、検査対象のソフトウェアが送信する系列データとを比較して、その類似性を検査する類似性検査方法が開示されている。この方法では、マルウェアにより送信された系列データ、及び、検査対象ソフトウェアにより送信された系列データを得る。この方法では、それら両方の系列データをフーリエ変換して正規化した後に、両者の相関係数を算出する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2015-121968号公報
【特許文献２】特開2012-22380号公報
【特許文献３】特開2008-176752号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
マルウェアによる不正動作を検出する技術の１つとして、シグネチャ型の検出がある。このシグネチャ型の検出では、異常なデータや通常とは異なる動作パターンを事前にシグネチャとして定義しておき、そのシグネチャに合致するデータや動作パターンを、マルウェアによる不正動作として検出する。【０００８】
しかしながら、このようなシグネチャ型の検出では、続々と発生する多種多様にカスタマイズされた新種のマルウェアに対応しきれないという問題がある。このような問題に対応する技術の１つとして、サンドボックスを利用してマルウェアを実行して検出する技術が注目されている。サンドボックスとは、調査対象であるソフトウェア（検体）を実行するために例えば仮想環境として構築された隔離環境のことであり、不正動作が発生してもシステムに影響を与えない保護された領域（ソフトウェアの実行環境）のことである。このサンドボックスを利用してマルウェアを実行して検出する技術では、サンドボックスにおいて検体（被検体）を実行し、その検体がマルウェアに特徴的な挙動を示すか否かを監視することにより、検体がマルウェアであることを検出する。その際の検出結果としては、検体がマルウェアか否かの判定結果に加え、検体の動作ログが出力される。【０００９】
マルウェアが検出された場合、その検体の挙動に応じて適切な対策を講じる必要がある。例えば、検出したマルウェアの亜種が既に組織のネットワーク内に侵入していないかどうかを、検体の動作ログから抽出した痕跡情報を検索することによって確認できる。検体の挙動の類似性が高い場合には、同様の対策が有効となるので、検出された検体と動作の類似する検体の過去における検出の有無を把握することが重要である。【００１０】
動作ログには検体の動作によって生じる様々な種別の動作情報を含めることが要求されることから、通常、動作ログ（に含まれる動作情報は）は非構造データとして管理される。そのため、種別が同じ動作情報であっても含まれる項目が異なる場合がある。さらに、同じ検体であっても実行のタイミングによって異なる値となるデータを含む項目がある。したがって、動作ログのこれらの特徴により、動作が本質的に類似しているにもかかわらず、その類似性が隠蔽され、マルウェアを解析する精度が低下するという問題がある。特許文献１乃至３は、この問題について言及していない。本願発明の主たる目的は、この問題を解決するマルウェア解析装置等を提供することである。
【課題を解決するための手段】
【００１１】
本願発明の一態様に係るマルウェア解析装置は、検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成する抽象化手段と、１以上の、前記検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶された抽象化情報記憶手段と、前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出する算出手段と、前記類似度が基準を満たす前記比較対象のソフトウェアを特定する特定手段と、を備える。【００１２】
上記目的を達成する他の見地において、本願発明の一態様に係るマルウェア解析方法は、１以上の、検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶手段に記憶されている場合に、情報処理装置によって、前記検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成し、前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出し、前記類似度が基準を満たす前記比較対象のソフトウェアを特定する。【００１３】
また、上記目的を達成する更なる見地において、本願発明の一態様に係るマルウェア解析プログラムは、１以上の、検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶された記憶手段にアクセス可能なコンピュータに、前記検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成する抽象化処理と、前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出する算出処理と、前記類似度が基準を満たす前記比較対象のソフトウェアを特定する特定処理と、を実行させるためのプログラムである。【００１４】
更に、本願発明は、係るマルウェア解析プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００１５】
本願発明は、調査対象であるソフトウェアと既知のマルウェアとの動作の類似性を、効率的に高い精度で解析することを可能とする。
【図面の簡単な説明】
【００１６】
【図１】本願発明の第１の実施形態に係るマルウェア解析装置１０の構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係る抽象化規則１６０の構成を例示する図である。
【図３】本願発明の第１の実施形態に係る検体動作ログ１４０の構成を例示する図である。
【図４】本願発明の第１の実施形態に係る検体抽象化ログ１１０の構成を例示する図である。
【図５】本願発明の第１の実施形態に係る既知マルウェア動作ログ１４１の構成を例示する図である。
【図６】本願発明の第１の実施形態に係る既知マルウェア抽象化ログ１５０の構成を例示する図である。
【図７】本願発明の第１の実施形態に係る算出部１２が、度数ヒストグラムによるマンハッタン距離を算出する例を説明する表である。
【図８】本願発明の第１の実施形態に係る差分解析部１８が、最短編集スクリプトＳＥＳを求めた例を説明する表である。
【図９Ａ】本願発明の第１の実施形態に係る提示制御部１９が、検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０とについて、ログエントリの対応関係を提示装置３０に提示する場合における提示例（１／２）である。
【図９Ｂ】本願発明の第１の実施形態に係る提示制御部１９が、検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０とについて、ログエントリの対応関係を提示装置３０に提示する場合における提示例（２／２）である。
【図１０】本願発明の第１の実施形態に係るマルウェア解析装置１０の動作を示すフローチャートである。
【図１１】本願発明の第２の実施形態に係るマルウェア解析装置４０の構成を示すブロック図である。
【図１２】本願発明の各実施形態に係るマルウェア解析装置を実行可能な情報処理装置９００の構成を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１８】
＜第１の実施形態＞
図１は、本願発明の第１の実施の形態に係るマルウェア解析装置１０の構成を概念的に示すブロック図である。マルウェア解析装置１０は、調査対象のソフトウェアである、マルウェアであることが疑われる検体２１が、既知のマルウェアとは異なる新種のマルウェアであるかどうかを解析する装置である。マルウェア解析装置１０は、検体２１の動作と、既知のマルウェアの動作との類似性に基づいて、検体２１が新種のマルウェアであるかどうかを解析する。
【００１９】
検体２１は、マルウェア解析装置１０と通信可能に接続された検体実行装置２０によって実行される。検体実行装置２０は、例えば、検体２１を実行するための隔離環境であるサンドボックスを構築した情報処理装置である。検体実行装置２０は、検体２１を実行したときの動作ログを生成し、その動作ログをマルウェア解析装置１０へ入力する。検体実行装置２０は、この際、検体２１を識別可能な識別子として、例えば、検体２１の実行ファイル名、あるいはＭＤ５（Message Digest Algorithm 5）ハッシュ値を、その動作ログとともに、マルウェア解析装置１０へ入力する。
【００２０】
検体実行装置２０は、検体２１によって行なわれる不正動作を検知する機能を備えている。不正動作としては、例えば、特定ＡＰＩ（Application Programming Interface）の呼び出し、コードインジェクション、セキュリティ関連サービスの停止、実行ファイルの作成、スクリプトファイルの実行、特定のレジストリ（システムに対する設定情報等が格納された記憶領域）に対する値の変更、不審な通信先との通信等がある。
【００２１】
本実施形態に係るマルウェア解析装置１０は、抽象化部１１、算出部１２、特定部１３、動作ログ記憶部１４、抽象化ログ記憶部１５、抽象化規則記憶部１６、抽象化規則生成部１７、差分解析部１８、及び、提示制御部１９を備えている。
【００２２】
動作ログ記憶部１４は、例えば、磁気ディスクあるいは電子メモリ等の記憶デバイスである。動作ログ記憶部１４は、検体実行装置２０から入力された、検体２１の実行結果を表す動作ログを、検体動作ログ１４０として記憶する。動作ログ記憶部１４は、過去に検体実行装置２０等によって実行された、１以上の既知のマルウェアの動作ログを、それら既知のマルウェアを識別可能な識別子と関連付けて、既知マルウェア動作ログ１４１として記憶している。
【００２３】
抽象化部１１は、動作ログ記憶部１４から読み出した検体動作ログ１４０を、抽象化規則１６０に基づいて抽象化（簡素化）し、抽象化した結果を検体抽象化ログ１１０として生成する。抽象化規則１６０は、例えば、磁気ディスクあるいは電子メモリ等の記憶デバイスである抽象化規則記憶部１６に記憶されている。抽象化規則１６０は、ユーザによって外部から与えられてもよいし、後述する抽象化規則生成部１７によって生成されてもよい。抽象化部１１の動作の詳細を、図２乃至図４を用いて説明する。
【００２４】
図２は、本実施形態に係る抽象化規則１６０の構成を、概念的に例示する図である。図３は、本実施形態に係る検体動作ログ１４０の構成を、概念的に例示する図である。図４は、本実施形態に係る検体抽象化ログ１１０の構成を概念的に例示する図である。
【００２５】
図３に例示する通り、検体動作ログ１４０は、「検体ＩＤ(ＩＤは、「Identifier」を表す。以下同様)」、「Seq(Sequential). No(Number).」、及び、「ログエントリ」というフィールドを含むレコード（行）を含んでいる。「検体ＩＤ」は、検体２１を識別可能な識別子であり、図３に示す例では、「Ｌ１」という値が設定されている。「Seq. No.」は、検体実行装置２０が検体２１を実行したときの動作のシーケンスを表す値である。すなわち、図３に例示する検体動作ログ１４０に含まれる個々のレコードは、検体２１の実行によって観測された検体２１の動作を表す動作情報であり、検体動作ログ１４０は、「Ｌ１」として識別される検体２１の実行によって得られた、９個の動作情報を示している。
【００２６】
「ログエントリ」は、動作が行なわれた各時刻における検体２１の動作情報の詳細を表している。「ログエントリ」は、「type」、「mode」、「path」、「key」、「value」、「host」「pid」、「parent_pid」、及び、「timestamp」等の項目を含んでいる。
【００２７】
例えば、図３に例示する「Seq. No.」が「１」であるレコードでは、「type」が「process」に設定されている。これは、当該レコードが、検体２１の実行の過程において実行されたプロセス（プログラム）の状態を示す動作情報であることを示している。「Seq. No.」が「１」であるレコードでは、「mode」が「start」であることを示し、「path」が「\temp\abcde.exe」であることを示している。これは、当該レコードが、「\temp\abcde.exe」というプロセスの実行が開始されたことを示す動作情報であることを示している。但し、「\」は、ファイルの階層構造を表す符号である。階層構造を表す符号として、「＼」を用いる場合もある。「Seq. No.」が「１」であるレコードに含まれる「pid」は、当該プロセスを識別可能な識別子であり、「parent_pid」は、当該プロセスを読み出した親プロセスを識別可能な識別子である。「Seq. No.」が「１」であるレコードに含まれる「timestamp」は、当該レコードが生成された時刻を表す。
【００２８】
例えば、図３に例示する「Seq. No.」が「２」であるレコードでは、「type」が「registry」であることを示している。これは、当該レコードが、レジストリへのアクセス内容を示す動作情報であることを示している。「Seq. No.」が「２」であるレコードでは、「mode」が「set-value」であることを示し、「key」が「HKCU\software\key1」であることを示し、「value」が「１」であることを示している。これは、当該レコードが、「HKCU\software\key1」というレジストリに対して、値「１」が設定されたことを示す動作情報であることを示している。「Seq. No.」が「３」であるレコードが示す内容も、上述した「Seq. No.」が「２」であるレコードが示す内容と同様である。
【００２９】
図３に例示する「Seq. No.」が「４」「５」及び「８」であるレコードは、ファイルへのアクセス内容を示している。「Seq. No.」が「６」及び「７」であるレコードは、通信ネットワークへのアクセス内容を示している。「Seq. No.」が「９」であるレコードは、「Seq. No.」が「１」であるレコードにおいて実行開始が示された「pid」が「111」であるプロセスの実行が終了したことを示している。
【００３０】
抽象化部１１は、図２に例示する抽象化規則１６０に基づいて、図３に例示する検体動作ログ１４０を抽象化（簡略化）する。図２に例示する通り、抽象化規則１６０は、検体動作ログ１４０のログエントリに含まれる「type」（種別）の値ごとに、ログエントリに対する抽象化処理の内容を示した規則である。
【００３１】
抽象化部１１は、図２に例示する抽象化規則１６０に従って、検体動作ログ１４０に含まれる、「type」が「process」であるログエントリに対しては、下記の抽象化処理を行う。
・「type」及び「mode」については、その内容を維持する（即ち、抽象化を行なわない）。
・「path」については、深さ「１」まで抽象化する（即ち、深さ「１」より深い階層を示す情報を削除する）。
【００３２】
これにより、抽象化部１１は、図３に例示する検体動作ログ１４０における「Seq. No.」が「１」であるレコードのログエントリに基づいて、図４に例示する検体抽象化ログ１１０における「Seq. No.」が「１」であるレコードのログエントリを生成する。図４に例示する通り、検体抽象化ログ１１０における「Seq. No.」が「１」であるログエントリでは、「type」及び「mode」については、図３に示すログエントリの内容が維持され、「path」については、図３に示すログエントリの内容に対して、深さ「１」まで抽象化されている。抽象化部１１は、抽象化規則１６０に規則が示されていない項目については、当該項目を削除する。したがって、抽象化部１１は、図３に例示する検体動作ログ１４０における「Seq. No.」が「１」であるレコードのログエントリに含まれる「pid」、「parent_pid」、及び、「timestamp」という項目を削除した状態で、検体抽象化ログ１１０を生成する。
【００３３】
抽象化部１１は、また、図２に例示する抽象化規則１６０に従って、検体動作ログ１４０に含まれる、「type」が「file」であるログエントリに対しては、下記の抽象化処理を行う。
・「type」及び「mode」については、その内容を維持する（即ち、抽象化を行なわない）。
・「path」については、深さ「１」まで抽象化する（即ち、深さ「１」より深い階層を示す情報を削除する）。
・「path」に含まれる拡張子を、「ext」という項目として抽出する。
【００３４】
これにより、抽象化部１１は、図３に例示する検体動作ログ１４０における「Seq. No.」が「４」、「５」、及び「８」であるレコードのログエントリに基づいて、図４に例示する検体抽象化ログ１１０における「Seq. No.」が「４」、「５」、及び「８」であるレコードのログエントリを生成する。抽象化部１１は、これらのログエントリにおける、「type」、「mode」、「path」、「pid」、及び「timestamp」という項目については、「Seq. No.」が「１」であるレコードのログエントリと同様の抽象化処理を行う。抽象化部１１は、検体動作ログ１４０における「Seq. No.」が「４」及び「５」であるログエントリにおける「path」に含まれる拡張子「txt」を、「ext」という項目として抽出した、検体抽象化ログ１１０を生成する。抽象化部１１は、同様に、検体動作ログ１４０における「Seq. No.」が「８」であるログエントリにおける「path」に含まれる拡張子「dat」を、「ext」という項目として抽出した、検体抽象化ログ１１０を生成する。
【００３５】
抽象化部１１は、検体動作ログ１４０に含まれる、「type」が「network」であるログエントリに対しても、図２に例示する抽象化規則１６０に従って、抽象化処理を行う。すなわち、抽象化部１１は、図３に例示する検体動作ログ１４０における「Seq. No.」が「６」及び「７」であるレコードのログエントリに基づいて、図４に例示する検体抽象化ログ１１０における「Seq. No.」が「６」及び「７」であるレコードのログエントリを生成する。抽象化部１１は、生成した検体抽象化ログ１１０を、既知マルウェア抽象化ログ１５０の一部として、検体２１を識別可能な識別子と関連付けて、抽象化ログ記憶部１５に格納する。抽象化ログ記憶部１５は、例えば、磁気ディスクあるいは電子メモリ等の記憶デバイスである。
【００３６】
図５は、本実施形態に係る既知マルウェア動作ログ１４１の構成を、概念的に例示する図である。図５には、説明の便宜上、１つの既知マルウェアの動作ログを例示するが、既知マルウェア動作ログ１４１は、１以上の既知マルウェアの動作ログを含んでいる。既知マルウェアの動作ログは、それぞれ、当該既知マルウェアを識別可能な識別子と関連付けされている。既知マルウェア動作ログ１４１の構成は、上述した図３に例示する検体動作ログ１４０の構成と同様である。
【００３７】
図６は、本実施形態に係る既知マルウェア抽象化ログ１５０の構成を概念的に例示する図である。図６に例示する既知マルウェア抽象化ログ１５０は、図５に例示する既知マルウェア動作ログ１４１が、抽象化規則１６０に基づいて抽象化された結果を表している。
【００３８】
図１に示す算出部１２は、抽象化部１１によって生成された検体抽象化ログ１１０と、抽象化ログ記憶部１５に記憶されている、１以上の既知マルウェアに関する既知マルウェア抽象化ログ１５０との類似度を算出する。
【００３９】
図７は、算出部１２が、例えば、ログエントリに関する度数ヒストグラムによるマンハッタン距離を算出することによって、図４に例示する検体抽象化ログ１１０と、図６に例示する既知マルウェア抽象化ログ１５０との類似度を算出する例を説明する表である。図７は、抽象化処理が行われたログエントリを単位とした、検体ＩＤが「Ｌ１」である検体抽象化ログ１１０、及び、検体ＩＤが「Ｌ２」である既知マルウェア抽象化ログ１５０に関する度数ヒストグラムを表している。
【００４０】
例えば、図７に例示する通り、「type:process, mode:start, path:\temp」という内容を示すログエントリは、図４に例示する検体抽象化ログ１１０に１つ、図６に例示する既知マルウェア抽象化ログ１５０に１つ含まれている。したがって、当該ログエントリに関する、検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０との間における度数の差分は「０」となる。例えば、また、図７に例示する通り、「type:registry, mode:set-value, key:HKCU\software」という内容を示すログエントリは、図４に例示する検体抽象化ログ１１０に２つ、図６に例示する既知マルウェア抽象化ログ１５０に１つ含まれている。したがって、当該ログエントリに関する、検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０との間における度数の差分は「１」となる。
【００４１】
図７に例示する通り、図４に例示する検体抽象化ログ１１０と図６に例示する既知マルウェア抽象化ログ１５０との間における、全てのログエントリに関する度数の差分の合計値、すなわちマンハッタン距離は「５」となる。このように、算出部１２は、検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０との類似度を示す指標として、ログエントリに関する度数ヒストグラムによるマンハッタン距離を算出する。この場合、マンハッタン距離が近い（短い）ほど、類似度が高いことを表す。算出部１２は、あるいは、類似度を示す指標として、ログエントリに関する度数ヒストグラムによるユークリッド距離を算出してもよい。算出部１２は、あるいは、類似度を算出する際に、相対度数ヒストグラムを使用してもよい。算出部１２は、あるいは、類似度を算出する際に使用するヒストグラムに対して、正規化を行なってもよい。算出部１２は、抽象化ログ記憶部１５に抽象化ログが記憶されている１以上の既知マルウェアに関して、上述した処理を行う。
【００４２】
図１に示す特定部１３は、算出部１２によって算出された類似度が基準を満たす既知マルウェアを特定する。特定部１３は、例えば算出部１２が、検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０との類似度を示す指標として、ログエントリに関する度数ヒストグラムによる距離を算出した場合、その距離の近さに関して所定の順位までに入る既知マルウェアを特定する。特定部１３は、あるいは、その距離を示す値が閾値以下である既知マルウェアを特定してもよい。ただし、上述した所定の順位、及び、距離に関する閾値は、例えばユーザ等によって与えられていることとする。
【００４３】
図１に示す差分解析部１８は、検体抽象化ログ１１０と、特定部１３によって特定された既知マルウェアに関する既知マルウェア抽象化ログ１５０との差分を示す情報を生成する。差分解析部１８は、その差分を示す情報として、例えば、検体抽象化ログ１１０及び既知マルウェア抽象化ログ１５０におけるログエントリを単位とする、検体抽象化ログ１１０から既知マルウェア抽象化ログ１５０を生成するための最短編集スクリプト（Shortest Edit Script: SES）を求める。そして、差分解析部１８は、求めた最短編集スクリプトに基づいて、検体抽象化ログ１１０に含まれるログエントリと、既知マルウェア抽象化ログ１５０に含まれるログエントリとの対応関係を示す情報を生成する。
【００４４】
差分解析部１８は、この最短編集スクリプトを、例えば、動的計画法（Dynamic Programming）等のアルゴリズムを用いて求めることができる。図８は、差分解析部１８が、図４に例示する検体抽象化ログ１１０から、図６に例示する既知マルウェア抽象化ログ１５０を生成するための最短編集スクリプトＳＥＳを、それらの抽象化ログにおけるログエントリ同士における対応関係に基づいて求めた例を説明する表である。
【００４５】
図８に示す最短編集スクリプトＳＥＳによれば、１番目（編集順序が「１」）の編集の編集タイプが「共通」となっている。これは、検体抽象化ログ１１０における「Seq. No.」が「１」であるログエントリと、既知マルウェア抽象化ログ１５０における「Seq. No.」が「１」であるログエントリと、が共通（変更無し）であることを示している。同様に最短編集スクリプトＳＥＳにおける２番目の編集は、検体抽象化ログ１１０における「Seq. No.」が「２」であるログエントリと、既知マルウェア抽象化ログ１５０における「Seq. No.」が「２」であるログエントリと、が共通であることを示している。
【００４６】
図８に示す最短編集スクリプトＳＥＳによれば、３番目の編集の編集タイプが「削除」となっている。これは、検体抽象化ログ１１０における「Seq. No.」が「３」であるログエントリを削除することを示している。そして、最短編集スクリプトＳＥＳにおける４番目の編集タイプは、「追加  Ｌ２−３」となっている。但し、「Ｌ２−３」は、検体ＩＤが「Ｌ２」である抽象化ログ（即ち既知マルウェア抽象化ログ１５０）における「Seq. No.」が「３」であるログエントリを表す。すなわち、最短編集スクリプトＳＥＳにおける４番目の編集は、既知マルウェア抽象化ログ１５０における「Seq. No.」が「３」であるログエントリを追加することを示している。
【００４７】
図８に示す最短編集スクリプトＳＥＳにおける５番目以降の編集についても、上述と同様である。このように、図６に例示する既知マルウェア抽象化ログ１５０は、図４に例示する検体抽象化ログ１１０に対して、図８に示す１２個の編集を順番に行なうことによって生成される。
【００４８】
差分解析部１８は、最短編集スクリプトに含まれる編集操作として、上述した「共通」、「削除」、「追加」に、例えば「変更」などの編集操作を加えてもよい。また、差分解析部１８によって生成される情報は、上述した最短編集スクリプトに限定されない。差分解析部１８は、例えば、最短でない編集スクリプトを生成してもよいし、編集スクリプトとは異なる形式を有する、ログエントリ間における差分を示す情報を生成してもよい。
【００４９】
差分解析部１８は、また、検体動作ログ１４０、検体抽象化ログ１１０、既知マルウェア動作ログ１４１、及び、既知マルウェア抽象化ログ１５０におけるログエントリのうち、ユーザによって示された所定の条件を満たす特定のログエントリを抽出し、抽出したログエントリ間における差分を示す情報を生成するようにしてもよい。この場合、その所定の条件としては、例えば、「指定されたプロセスＩＤを含む」ことでもよいし、あるいは、「「type」（種別）が指定された値である」ことでもよいし、あるいは、「指定された項目が特定の条件を満たす」ことでもよい。
【００５０】
図１に示す提示制御部１９は、差分解析部１８によって生成された、検体抽象化ログ１１０と、特定部１３によって特定された既知マルウェアに関する既知マルウェア抽象化ログ１５０との差分を示す情報を、提示装置３０に提示（表示）する。提示装置３０は、例えば、情報を画面に表示するモニターでもよいし、情報を紙面に表示するプリンターでもよい。
【００５１】
図９Ａ及び９Ｂは、提示制御部１９が、差分解析部１８によって生成された最短編集スクリプトＳＥＳに基づいて、検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０とについて、ログエントリの対応関係を提示装置３０に提示する場合における提示例を示す図である。図９Ａ及び９Ｂに例示する通り、提示制御部１９は、例えば、ファイルを比較するツールとしてよく知られている「ｄｉｆｆ」ツールが提示する態様と同様な提示態様によって、検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０との差分を、提示装置３０に提示する。すなわち、提示制御部１９は、検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０における、例えば「Seq. No.」が「１」及び「２」であるログエントリについては、内容が等しいので、同じ行に並べて提示する。提示制御部１９は、検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０における、例えば「Seq. No.」が「３」であるログエントリについては、内容が異なるので、異なる行に提示する。このような提示は、最短編集スクリプトＳＥＳにおいて、編集タイプが「共通」に対応するログエントリを同じ行に並べて表示し、「追加」および「削除」に対応するログエントリを、他方の検体のログエントリと同じ行に表示しないことによって実現できる。
【００５２】
提示制御部１９は、また、検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０との間において、差分が生じている箇所を、例えば、字体を変更する、あるいは、文字色を変更するなど、差分が生じていない箇所とは異なる提示態様によって（すなわち強調して）、提示装置３０に提示するようにしてもよい。提示制御部１９は、また、ユーザによる指示にしたがって、検体動作ログ１４０及び既知マルウェア動作ログ１４１の内容、あるいは、それらの動作ログを端的に表現可能な情報（例えば、当該動作ログを識別可能な識別子等）を、提示装置３０に提示してもよい。提示制御部１９は、また、検体実行装置２０によって検体２１によって行なわれる不正動作が検知された時刻を、提示装置３０に提示してもよい。提示制御部１９は、また、算出部１２によって算出された、検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０との類似度を示す情報（例えば距離）を、提示装置３０に提示してもよい。提示制御部１９は、また、検体抽象化ログ１１０及び既知マルウェア抽象化ログ１５０が提示された状態にあるときに、ユーザがそれらの抽象化ログにおけるいずれかのログエントリを選択した場合において、当該ログエントリが抽象化部１１によって抽象化される前の動作情報を、提示装置３０に提示する機能を備えてもよい。
【００５３】
図１に示す抽象化規則生成部１７は、例えば、動作ログ記憶部１４に記憶された、検体動作ログ１４０及び既知マルウェア動作ログ１４１を解析することによって、抽象化規則１６０を生成する。抽象化規則生成部１７は、生成した抽象化規則１６０を、抽象化規則記憶部１６へ格納する。
【００５４】
抽象化規則生成部１７は、例えば、動作ログにおけるログエントリに含まれる項目のうち、カーディナリティが低い項目を維持し、カーディナリティが高い項目を削除することを指示する抽象化規則１６０を生成する。但し、「カーディナリティが低い」とは、項目が取り得る値の種類が少ないことを意味し、その逆に、「カーディナリティが高い」とは、項目が取り得る値の種類が多いことを意味する。
【００５５】
例えば、図３に例示する検体動作ログ１４０、あるいは、図５に例示する既知マルウェア動作ログ１４１に含まれる、「type」という項目が取り得る値は、「process」、「registry」、「file」、「network」等を含む、限られた数の予約語である。同様に、「mode」という項目が取り得る値は、「start」、「set-value」、「open」、「close」、「dns」、「http」、「remove」、「stop」等を含む、限られた数の予約語である。したがって、「type」及び「mode」という項目は、カーディナリティが低い項目であるといえる。これに対して、例えば「pid」や「timestamp」という項目は、検体２１あるいは既知マルウェアが実行されたときの実行環境や実行時刻によって様々な値を取り得る、カーディナリティが高い項目であるといえる。したがって、抽象化規則生成部１７は、図２に例示する通り、「type」及び「mode」という項目については、その内容を維持し、「pid」や「timestamp」という項目については、抽象化規則として表記しないことによってその内容を削除することを指示する抽象化規則１６０を生成する。
【００５６】
抽象化規則生成部１７は、また、動作ログにおけるログエントリにおいて、階層構造を備えたデータを表す項目に対して、抽象化することによって、当該項目のカーディナリティを閾値以下にできるように、抽象化規則１６０を生成する。この場合、抽象化規則生成部１７は、例えば、検体動作ログ１４０及び既知マルウェア動作ログ１４１から、「path」あるいは「key」という項目を含むログエントリを抽出する。抽象化規則生成部１７は、「path」あるいは「key」という項目に含まれる階層構造を備えたデータについて、その階層構造の深さごとに、存在するデータの種類の数を求める。この場合、階層構造が深くなるほど、データの種類の数も多くなるので、そのカーディナリティは高くなる。抽象化規則生成部１７は、このような処理を行うことによって、図に示す例では、「path」については深さ「１」まで抽象化し、「key」については深さ「２」まで抽象化することを指示する抽象化規則１６０を生成する。
【００５７】
次に図１０のフローチャートを参照して、本実施形態に係るマルウェア解析装置１０の動作（処理）について詳細に説明する。
【００５８】
検体２１を実行した結果として検体実行装置２０から出力された検体動作ログ１４０が、動作ログ記憶部１４へ格納される（ステップＳ１０１）。抽象化部１１は、動作ログ記憶部１４へ格納された検体動作ログ１４０を、抽象化規則１６０に基づいて抽象化した検体抽象化ログ１１０を生成する（ステップＳ１０２）。
【００５９】
算出部１２は、抽象化部１１によって生成された検体抽象化ログ１１０と、抽象化ログ記憶部１５に記憶されている、１以上の既知マルウェアに関する既知マルウェア抽象化ログ１５０との類似度を算出する（ステップＳ１０３）。特定部１３は、算出部１２によって算出された類似度が基準を満たす既知マルウェアを特定する（ステップＳ１０４）。
【００６０】
差分解析部１８は、検体抽象化ログ１１０と、特定部１３によって特定された既知マルウェアに関する既知マルウェア抽象化ログ１５０との差分を解析する（ステップＳ１０５）。提示制御部１９は、差分解析部１８による差分を解析した結果を、提示装置３０へ提示し（ステップＳ１０６）、全体の処理は終了する。
【００６１】
本実施形態に係るマルウェア解析装置１０は、調査対象であるソフトウェア（検体）と既知のマルウェアとの動作の類似性を、効率的に高い精度で解析することができる。その理由は、マルウェア解析装置１０は、検体動作ログ１４０を抽象化した検体抽象化ログ１１０を生成し、生成した検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０との類似度を算出し、その類似度が基準を満たす既知マルウェアを特定するからである。
【００６２】
以下に、本実施形態に係るマルウェア解析装置１０によって実現される効果について、詳細に説明する。
【００６３】
近年、続々と発生する多種多様にカスタマイズされた新種のマルウェアに対応するための技術の１つとして、サンドボックスを利用してマルウェアを実行して検出する技術が注目されている。この技術では、サンドボックスにおいて検体を実行し、その検体がマルウェアに特徴的な挙動を示すか否かを監視することにより、検体がマルウェアであることを検出する。しかしながら、通常、非構造データとして管理される動作ログの特徴により、動作が本質的に類似しているにもかかわらず、その類似性が隠蔽されることによって、マルウェアを解析する精度が低下するという問題がある。
【００６４】
このような課題に対して、本実施形態に係るマルウェア解析装置１０では、抽象化部１１は、検体２１が動作した結果を表す、検体動作ログ１４０を抽象化した検体抽象化ログ１１０を生成する。抽象化ログ記憶部１５には、１以上の、検体２１に対する比較対象の既知マルウェアごとに動作した結果を表す、既知マルウェア動作ログ１４１が抽象化された既知マルウェア抽象化ログ１５０が記憶されている。算出部１２は、検体抽象化ログ１１０と既知マルウェア抽象化ログ１５０との類似度を算出する。そして、特定部１３は、その類似度が基準を満たす比較対象の既知マルウェアを特定する。すなわち、マルウェア解析装置１０は、動作ログを抽象化した状態で類似性を解析することによって、類似性が隠蔽されることを回避する。これにより、本実施形態に係るマルウェア解析装置１０は、調査対象である検体と既知のマルウェアとの動作の類似性を、効率的に高い精度で解析することができる。
【００６５】
また、本実施形態に係る抽象化部１１は、検体動作ログ１４０に含まれる項目ごとに、項目削除、あるいは、項目に含まれる情報の少なくとも一部を削除あるいは変更することを指示する抽象化規則１６０に基づいて、検体動作ログ１４０を抽象化する。そして、抽象化規則１６０は、例えば、プロセスを識別可能な識別子、タイムスタンプ、ファイル名、及び、メモリにおけるアドレス等の、類似性の解析において重要性が低い情報を削除することを示している。これにより、本実施形態に係るマルウェア解析装置１０は、検体動作ログ１４０を適切に抽象化することができる。
【００６６】
また、本実施形態に係る抽象化部１１は、抽象化規則１６０に規則が示されていない（登録されていない）項目については、当該項目を削除する。これにより、本実施形態に係るマルウェア解析装置１０は、検体動作ログ１４０に未知の項目が含まれている場合に、類似性が、その未知の項目に関する動作ログの構成仕様の違いによって隠蔽されることを回避することができる。
【００６７】
また、本実施形態に係るマルウェア解析装置１０は、検体動作ログ１４０と、既知マルウェア抽象化ログ１５０との差分を示す、例えば最短編集スクリプト等を生成する差分解析部１８を備えている。これにより、本実施形態に係るマルウェア解析装置１０は、検体が新種のマルウェアであるか否か等について、効率的に高い精度で解析することができる。
【００６８】
また、本実施形態に係る差分解析部１８は、検体動作ログ１４０、検体抽象化ログ１１０、既知マルウェア動作ログ１４１、及び、既知マルウェア抽象化ログ１５０におけるログエントリのうち、ユーザによって示された所定の条件を満たす特定のログエントリを抽出し、抽出したログエントリ間における差分を示す情報を生成する。これにより、本実施形態に係るマルウェア解析装置１０は、解析対象とするログエントリを絞り込んだ差分を示す情報を生成するので、ユーザによる解析作業の効率を向上することができる。
【００６９】
また、本実施形態に係るマルウェア解析装置１０は、特定部１３によって特定された既知マルウェアに関して、既知マルウェア動作ログ１４１あるいは既知マルウェア抽象化ログ１５０と、算出部１２によって算出された類似度と、差分解析部１８によって生成された差分を示す情報と、の少なくともいずれかを提示装置３０に提示する提示制御部１９を備えている。提示制御部１９は、ログエントリを単位として、差分を示す情報において差分が無いことが示されているログエントリ同士を、同一の行に並べて、提示装置３０に提示する。提示制御部１９は、また、差分を示す情報における差分箇所を強調して提示装置３０に提示する。提示制御部１９は、また、検体抽象化ログ１１０及び既知マルウェア抽象化ログ１５０が提示された状態にあるときに、ユーザがいずれかのログエントリを選択した場合において、当該ログエントリが抽象化部１１によって抽象化される前の動作ログを、提示装置３０に提示する。本実施形態に係るマルウェア解析装置１０は、提示制御部１９が備える上述した機能によって、ユーザによる解析作業の効率をさらに向上することができる。
【００７０】
また、本実施形態に係るマルウェア解析装置１０は、項目に含まれる情報が取り得る値の種類が基準を満たす（カーディナリティが閾値以下になる）ように、抽象化規則１６０を生成する抽象化規則生成部１７を備えている。抽象化規則生成部１７は、例えばファイルパスやレジストリキーのような階層構造を備えたデータを表す項目に対して、抽象化することによって、そのデータが取り得る値の種類が閾値以下となるような階層の深さを表す抽象化規則１６０を生成する。これにより、本実施形態に係るマルウェア解析装置１０は、適切な抽象化規則を効率的に生成することができる。
【００７１】
＜第２の実施形態＞
図１１は、本願発明の第２の実施形態に係るマルウェア解析装置４０の構成を概念的に示すブロック図である。マルウェア解析装置４０は、抽象化部４１、算出部４２、特定部４３、及び、抽象化情報記憶部４５を備えている。
【００７２】
抽象化部４１は、検体であるソフトウェアが動作した結果を表す、第１の動作情報４４０を抽象化した第１の抽象化情報４１０を生成する。
【００７３】
抽象化情報記憶部４５には、当該検体に対する比較対象のソフトウェア（既知マルウェア）ごとに動作した結果を表す、第２の動作情報が抽象化された第２の抽象化情報４５０が記憶されている。
【００７４】
算出部４２は、第１の抽象化情報４１０と第２の抽象化情報４５０との類似度を算出する。
【００７５】
特定部４３は、その類似度が基準を満たす比較対象のソフトウェアを特定する。
【００７６】
本実施形態に係るマルウェア解析装置４０は、調査対象であるソフトウェア（検体）と比較対象のソフトウェア（既知マルウェア）との動作の類似性を、効率的に高い精度で解析することができる。その理由は、マルウェア解析装置４０は、第１の動作情報４４０を抽象化した第１の抽象化情報４１０を生成し、生成した第１の抽象化情報４１０と第２の抽象化情報４５０との類似度を算出し、その類似度が基準を満たす比較対象のソフトウェアを特定するからである。
【００７７】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図１１に示したマルウェア解析装置における各部は、専用のＨＷ（ＨａｒｄＷａｒｅ）（電子回路）によって実現することができる。また、図１、及び、図１１において、少なくとも、下記構成は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。
・抽象化部１１及び４１、
・算出部１２及び４２、
・特定部１３及び４３、
・抽象化規則生成部１７、
・差分解析部１８、
・提示制御部１９。
【００７８】
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図１２を参照して説明する。
【００７９】
図１２は、本願発明の各実施形態に係るマルウェア解析装置を実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図１２は、図１、及び、図１１に示したマルウェア解析装置を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００８０】
図１２に示した情報処理装置９００は、構成要素として下記を備えている。
・ＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・ハードディスク（記憶装置）９０４、
・外部装置との通信インタフェース９０５、
・バス９０６（通信線）、
・ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記録媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、
・入出力インタフェース９０９。
【００８１】
即ち、上記構成要素を備える情報処理装置９００は、これらの構成がバス９０６を介して接続された一般的なコンピュータである。情報処理装置９００は、ＣＰＵ９０１を複数備える場合もあれば、マルチコアにより構成されたＣＰＵ９０１を備える場合もある。
【００８２】
そして、上述した実施形態を例に説明した本願発明は、図１２に示した情報処理装置９００に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図（図１、及び、図１１）における上述した構成、或いはフローチャート（図１０）の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ（ＲＡＭ９０３）、または、ＲＯＭ９０２やハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００８３】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体９０７によって構成されると捉えることができる。
【００８４】
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【００８５】
この出願は、２０１６年１０月１４日に出願された日本出願特願２０１６−２０２６４４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【００８６】
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した各実施形態により例示的に説明した本発明は、以下には限られない。
（付記１）
検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成する抽象化手段と、
１以上の、前記検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶された抽象化情報記憶手段と、
前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出する算出手段と、
前記類似度が基準を満たす前記比較対象のソフトウェアを特定する特定手段と、
を備えるマルウェア解析装置。
（付記２）
前記抽象化手段は、前記第一の動作情報に含まれる項目ごとに、項目削除、あるいは、前記項目に含まれる情報の少なくとも一部を削除あるいは変更することによって、前記第一の抽象化情報を生成する、
付記１に記載のマルウェア解析装置。
（付記３）
前記第一の動作情報に含まれる項目ごとに、項目削除、あるいは、前記項目に含まれる情報の少なくとも一部を削除あるいは変更することを指示する抽象化規則が記憶された抽象化規則記憶手段をさらに備え、
前記抽象化手段は、前記抽象化規則に基づいて前記第一の抽象化情報を生成し、
前記抽象化情報記憶手段には、前記第二の動作情報が前記抽象化規則に基づいて抽象化された、前記第二の抽象化情報が記憶されている、
付記１に記載のマルウェア解析装置。
（付記４）
前記抽象化情報記憶手段には、前記項目に含まれる、プロセスを識別可能な識別子、タイムスタンプ、ファイル名、及び、メモリにおけるアドレスを表す情報を削除することを指示する前記抽象化規則が記憶されている、
付記３に記載のマルウェア解析装置。
（付記５）
前記抽象化手段は、前記抽象化規則に登録されていない前記項目については、前記項目削除を行う、
付記３または４に記載のマルウェア解析装置。
（付記６）
前記算出手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリに関するヒストグラムに基づいて、前記第一の抽象化情報と前記第二の抽象化情報との距離を算出し、
前記特定手段は、前記距離の近さに関して所定の順位までに入る前記比較対象のソフトウェア、あるいは、前記距離を示す値が閾値以下である前記比較対象のソフトウェアを特定する、
付記１乃至５のいずれか一項に記載のマルウェア解析装置。
（付記７）
前記算出手段は、前記第一の抽象化情報と前記第二の抽象化情報とのユークリッド距離あるいはマンハッタン距離を算出する、
付記６に記載のマルウェア解析装置。
（付記８）
前記第一の抽象化情報と、前記第二の抽象化情報との差分を示す情報を生成する差分解析手段
をさらに備える付記１に記載のマルウェア解析装置。
（付記９）
前記差分解析手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリを単位とする、前記第一の抽象化情報から前記第二の抽象化情報を生成するための編集スクリプトを求め、求めた前記編集スクリプトに基づいて、前記第一の抽象化情報に含まれる前記ログエントリと、前記第二の抽象化情報に含まれる前記ログエントリとの対応関係を示す情報を生成する、
付記８に記載のマルウェア解析装置。
（付記１０）
前記差分解析手段は、前記第一の抽象化情報に対する、共通、削除、追加、及び、変更の少なくともいずれかを含む編集操作を示す前記編集スクリプトを求める、
付記９に記載のマルウェア解析装置。
（付記１１）
前記差分解析手段は、前記第一及び第二の動作情報、及び、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリのうち、内容が所定の条件を満たす特定のログエントリを抽出して、前記特定のログエントリに関して、前記差分を示す情報を生成する、
付記８乃至１０のいずれか一項に記載のマルウェア解析装置。
（付記１２）
前記特定手段によって特定された前記比較対象のソフトウェアに関して、前記第二の動作情報あるいは前記第二の抽象化情報と、前記算出手段によって算出された前記類似度と、前記差分解析手段によって生成された前記差分を示す情報と、の少なくともいずれかを提示装置に提示する提示制御手段
をさらに備える付記８乃至１１のいずれか一項に記載のマルウェア解析装置。
（付記１３）
前記提示制御手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリを単位として、前記差分を示す情報において差分が無いことが示されている前記ログエントリ同士を、同一の行に並べた提示態様によって、前記提示装置に提示する、
付記１２に記載のマルウェア解析装置。
（付記１４）
前記提示制御手段は、前記差分を示す情報における差分箇所を、前記差分箇所を除く箇所とは異なる提示態様によって前記提示装置に提示する、
付記１２または１３に記載のマルウェア解析装置。
（付記１５）
前記提示制御手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリを単位として、前記提示装置に提示しているときに、外部からの指示により特定のログエントリが選択された場合は、前記抽象化手段によって抽象化される前の前記特定のログエントリを、前記提示装置に提示する、
付記１２乃至１４のいずれか一項に記載のマルウェア解析装置。
（付記１６）
前記項目に含まれる情報が取り得る値の種類が基準を満たすように、前記抽象化規則を生成する抽象化規則生成手段
をさらに備える付記３に記載のマルウェア解析装置。
（付記１７）
前記抽象化規則生成手段は、階層構造を備えたデータを表す前記項目に対して、抽象化することによって、前記データが取り得る値の種類が閾値以下となるような階層の深さを表す、前記抽象化規則を生成する、
付記１６に記載のマルウェア解析装置。
（付記１８）
１以上の、検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶手段に記憶されている場合に、
情報処理装置によって、
前記検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成し、
前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出し、
前記類似度が基準を満たす前記比較対象のソフトウェアを特定する、
マルウェア解析方法。
（付記１９）
１以上の、検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶された記憶手段にアクセス可能なコンピュータに、
前記検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成する抽象化処理と、
前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出する算出処理と、
前記類似度が基準を満たす前記比較対象のソフトウェアを特定する特定処理と、
を実行させるためのマルウェア解析プログラムが格納された記録媒体。
【符号の説明】
【００８７】
１０    マルウェア解析装置
１１    抽象化部
１１０    検体抽象化ログ
１２    算出部
１３    特定部
１４    動作ログ記憶部
１４０    検体動作ログ
１４１    既知マルウェア動作ログ
１５    抽象化ログ記憶部
１５０    既知マルウェア抽象化ログ
１６    抽象化規則記憶部
１６０    抽象化規則
１７    抽象化規則生成部
１８    差分解析部
１９    提示制御部
２０    検体実行装置
２１    検体
３０    提示装置
４０    マルウェア解析装置
４１０    第１の抽象化情報
４２    算出部
４３    特定部
４４０    第１の動作情報
４５    抽象化情報記憶部
４５０    第２の抽象化情報
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク（記憶装置）
９０５    通信インタフェース
９０６    バス
９０７    記録媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
2018070404.tif 000003
【図２】
2018070404.tif 000004
【図３】
2018070404.tif 000005
【図４】
2018070404.tif 000006
【図５】
2018070404.tif 000007
【図６】
2018070404.tif 000008
【図７】
2018070404.tif 000009
【図８】
2018070404.tif 000010
【図９Ａ】
2018070404.tif 000011
【図９Ｂ】
2018070404.tif 000012
【図１０】
2018070404.tif 000013
【図１１】
2018070404.tif 000014
【図１２】
2018070404.tif 000015
【国際調査報告】
2018070404.tif 000016
2018070404.tif 000017
2018070404.tif 000018
2018070404.tif 000019