(57)【特許請求の範囲】
【請求項１】
抽出部と、生成部と、推定部を有する装置による、マルウェアの動作環境を推定するマルウェア動作環境推定方法であって、
前記抽出部により複数の解析システムのそれぞれから前記マルウェアの挙動に関する情報を取得して、前記取得した情報に関連する動作環境の要素を抽出し、
前記生成部により前記複数の解析システムの全てに対して、前記抽出した動作環境の要素の組み合わせを生成し、
前期推定部により前記複数の解析システムの全てに対して、前記マルウェアの稼動状況の情報を取得し、前記動作環境の要素の組み合わせの１つを前記複数の解析システムのそれぞれが含むか否かの情報と、前記複数の解析システムのそれぞれで前記マルウェアが稼働したか否かの情報とに基づいて、前記マルウェアの動作環境を推定すること
を特徴とするマルウェア動作環境推定方法。
【請求項２】
請求項１に記載のマルウェア動作環境推定方法であって、
前記抽出部により、
前記マルウェアの挙動に関する情報と前記動作環境の要素とを対応付けて記憶された情報から前記動作環境の要素を抽出すること
を特徴とするマルウェア動作環境推定方法。
【請求項３】
請求項２に記載のマルウェア動作環境推定方法であって、
前記生成部により、
前記抽出した動作環境の要素の中の第１の要素または前記抽出した動作環境の要素の中の第２の要素のいずれかを前記複数の解析システムが含むか否かの情報、あるいは前記第１の要素と前記第２の要素の両方を前記複数の解析システムが含むか否かの情報を生成することにより、前記抽出した動作環境の要素の組み合わせを生成すること
を特徴とするマルウェア動作環境推定方法。
【請求項４】
請求項３に記載のマルウェア動作環境推定方法であって、
前記推定部により、
１つ以上の推定により１つ以上の推定結果を出力すること
を特徴とするマルウェア動作環境推定方法。
【請求項５】
請求項４に記載のマルウェア動作環境推定方法であって、
前記推定部により、
推定を実行し、終了条件を満たさないと判定すると条件未達時処理を実行して、前記終了条件を満たすまで推定を繰り返し、前記終了条件を満たすと推定結果を出力すること
を特徴とするマルウェア動作環境推定方法。
【請求項６】
マルウェアの動作環境を推定する装置であって、
複数の解析システムのそれぞれから前記マルウェアの挙動に関する情報を取得して、前記取得した情報に関連する動作環境の要素を抽出する抽出部と、
前記複数の解析システムの全てに対して、前記抽出した動作環境の要素の組み合わせを生成する生成部と、
前記複数の解析システムの全てに対して、前記マルウェアの稼動状況の情報を取得し、前記動作環境の要素の組み合わせの１つを前記複数の解析システムのそれぞれが含むか否かの情報と、前記複数の解析システムのそれぞれで前記マルウェアが稼働したか否かの情報とに基づいて、前記マルウェアの動作環境を推定する推定部と
を有することを特徴とするマルウェア動作環境推定装置。
【請求項７】
請求項６に記載のマルウェア動作環境推定装置であって、  前記抽出部は、
前記マルウェアの挙動に関する情報と前記動作環境の要素とを対応付けて記憶された情報から前記動作環境の要素を抽出すること
を特徴とするマルウェア動作環境推定装置。
【請求項８】
請求項７に記載のマルウェア動作環境推定装置であって、
前記生成部は、
前記抽出した動作環境の要素の中の第１の要素または前記抽出した動作環境の要素の中の第２の要素のいずれかを前記複数の解析システムが含むか否かの情報、あるいは前記第１の要素と前記第２の要素の両方を前記複数の解析システムが含むか否かの情報を生成することにより、前記抽出した動作環境の要素の組み合わせを生成すること
を特徴とするマルウェア動作環境推定装置。
【請求項９】
請求項８に記載のマルウェア動作環境推定装置であって、
前記推定部は、
１つ以上の推定により１つ以上の推定結果を出力すること
を特徴とするマルウェア動作環境推定装置。
【請求項１０】
請求項９に記載のマルウェア動作環境推定装置であって、
前記推定部は、
推定を実行し、終了条件を満たさないと判定すると条件未達時処理を実行して、前記終了条件を満たすまで推定を繰り返し、前記終了条件を満たすと推定結果を出力すること
を特徴とするマルウェア動作環境推定装置。
【請求項１１】
複数の装置を含み、マルウェアの動作環境を推定するシステムであって、
前記複数の装置の中のいずれかの装置が、
複数の解析システムのそれぞれから前記マルウェアの挙動に関する情報を取得して、前記取得した情報に関連する動作環境の要素を抽出する抽出部を有し、
前記複数の装置の中のいずれかの装置が、
前記複数の解析システムの全てに対して、前記抽出した動作環境の要素の組み合わせを生成する生成部を有し、
前記複数の装置の中のいずれかの装置が、
前記複数の解析システムの全てに対して、前記マルウェアの稼動状況の情報を取得し、前記動作環境の要素の組み合わせの１つを前記複数の解析システムのそれぞれが含むか否かの情報と、前記複数の解析システムのそれぞれで前記マルウェアが稼働したか否かの情報とに基づいて、前記マルウェアの動作環境を推定する推定部を有すること
を特徴とするマルウェア動作環境推定システム。
【請求項１２】
請求項１１に記載のマルウェア動作環境推定システムであって、
前記抽出部は、
前記マルウェアの挙動に関する情報と前記動作環境の要素とを対応付けて記憶された情報から前記動作環境の要素を抽出すること
を特徴とするマルウェア動作環境推定システム。
【請求項１３】
請求項１２に記載のマルウェア動作環境推定システムであって、
前記生成部は、
前記抽出した動作環境の要素の中の第１の要素または前記抽出した動作環境の要素の中の第２の要素のいずれかを前記複数の解析システムが含むか否かの情報、あるいは前記第１の要素と前記第２の要素の両方を前記複数の解析システムが含むか否かの情報を生成することにより、前記抽出した動作環境の要素の組み合わせを生成することを特徴とするマルウェア動作環境推定システム。
【請求項１４】
請求項１３に記載のマルウェア動作環境推定システムであって、
前記推定部は、
１つ以上の推定により１つ以上の推定結果を出力すること
を特徴とするマルウェア動作環境推定システム。
【請求項１５】
請求項１４に記載のマルウェア動作環境推定システムであって、
前記推定部は、
推定を実行し、終了条件を満たさないと判定すると条件未達時処理を実行して、前記終了条件を満たすまで推定を繰り返し、前記終了条件を満たすと推定結果を出力すること
を特徴とするマルウェア動作環境推定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルウェア動作環境推定方法、その装置およびシステムに関するものである。
【背景技術】
【０００２】
近年、企業等の組織において、コンピュータウイルス等のマルウェアの脅威が増大しており、組織の機密情報等を守るためにもマルウェアへの対策が急務となっている。マルウェアは日々新しいものが出現しており、組織の入口でマルウェアの侵入を防止することは難しく、マルウェアが組織内に侵入している前提での対策が重要になる。このような対策として、マルウェアの挙動を明らかにし、その挙動に応じて対策を行うというものがある。
【０００３】
マルウェアの挙動を明らかにする技術としては、特許文献１に記載されているような動的解析技術がある。これは、マルウェアを解析環境で実際に動作させ、ファイルアクセスやネットワークアクセス、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｔｅｒｆａｃｅ）呼び出し等の活動を記録することでその挙動を明らかにする技術である。特許文献１に記載の技術では、動的解析を行ったプログラムがマルウェアであるか、悪意のある活動を行ったかどうかを判定し、出力する機能を有している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１９８０５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術を用いれば、ある環境でマルウェアが悪意のある活動を行ったことは特定できる。しかしながら、マルウェアが悪意のある活動を行う要因となった環境の情報を特定することはできない。このため、多くのコンピュータを有する組織において、対策対象のコンピュータを絞ることによりマルウェア対策の費用を削減できるが、どのような環境のコンピュータを対策対象とすればよいかが特定できない。
【０００６】
そこで、本発明の目的は、マルウェアの動作環境を推定することにある。
【課題を解決するための手段】
【０００７】
本発明に係る代表的なマルウェア動作環境推定方法は、複数の解析システムのそれぞれから前記マルウェアの挙動に関する情報を取得して、前記取得した情報に関連する動作環境の要素を抽出し、前記複数の解析システムの全てに対して、前記抽出した動作環境の要素の組み合わせを生成し、前記複数の解析システムの全てに対して、前記マルウェアの稼動状況の情報を取得し、前記動作環境の要素の組み合わせの１つを前記複数の解析システムのそれぞれが含むか否かの情報と、前記複数の解析システムのそれぞれで前記マルウェアが稼働したか否かの情報とに基づいて、前記マルウェアの動作環境を推定することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、マルウェアの動作環境を推定することができる。
【図面の簡単な説明】
【０００９】
【図１】ネットワークシステムの例を示す図である。
【図２】マルウェア動作環境推定装置のハードウェアの例を示す図である。
【図３】マルウェア動作環境推定装置の構成の例を示す図である。
【図４】環境要素抽出部の処理の例を示すフローチャートである。
【図５】環境要素抽出ロジックＤＢの例を示す図である。
【図６】環境情報生成部の処理の例を示すフローチャートである
【図７】解析環境情報ＤＢの例を示す図である。
【図８】動作環境推定処理部の処理の例を示すフローチャートである。
【図９】処理モジュールＤＢの例を示す図である。
【図１０】表示画面の例を示す図である。
【図１１】マルウェア動作環境履歴ＤＢの例を示す図である。
【図１２】動作環境履歴情報を取得する環境要素抽出部の処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態（実施例）を、図を参照して詳細に説明する。
【実施例１】
【００１１】
図１はネットワークシステム１００の例を示す図である。ネットワークシステム１００はマルウェア動作環境推定装置１０１、クライアント端末１０２、マルウェア解析システム１０４から構成され、それぞれネットワーク１０３を介して接続される。クライアント端末１０２はネットワークシステム１００内に複数存在していてもよい。
【００１２】
マルウェア解析システム１０４は、ネットワークシステム１００内でマルウェアを解析するシステムであり、ネットワーク１０３を介して解析レポートをマルウェア動作環境推定装置１０１へ送信する。マルウェア解析システム１０４は複数存在し、複数のマルウェア解析システム１０４の中のそれぞれは解析環境を有する。解析環境は複数の環境から構成されており、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の種類や実行しているアプリケーションプログラム等であって、図７を用いて後で説明する。
【００１３】
複数のマルウェア解析システム１０４の中のそれぞれの解析環境は、その解析環境の一部が同じであってもよいし、その解析環境の一部が異なってもよい。ただし、複数のマルウェア解析システム１０４のそれぞれの解析環境は、その解析環境の一部が少しずつ異なり、解析環境のバリエーションの多い方が、マルウェアの動作環境の推定の精度が向上する。
【００１４】
解析レポートは、マルウェアのファイル名等のマルウェアそのものに関するマルウェア情報、特定のＡＰＩを呼び出した等のマルウェアの挙動の情報、解析レポートを生成したマルウェア解析システム１０４の解析環境の情報を含んでもよい。解析レポートは、マルウェアの動作しなかった環境である情報を含んでもよい。これらのマルウェア情報と解析環境の情報とマルウェアの動作しなかった環境である情報とは、特定の環境におけるマルウェアの稼動を表すため、マルウェアの稼動判定結果とみなすことができる。
【００１５】
解析レポートは、解析環境の情報として、具体的なＯＳの種類等の情報はなくてもよく、解析環境を識別するための情報である解析環境識別子を含んでもよい。マルウェア情報については図１１を用いて後で説明し、マルウェアの挙動の情報は図５を用いて後で説明し、解析環境の情報は図７を用いて後で説明する。複数のマルウェア解析システム１０４は解析レポートをそれぞれ送信するため、まとめると解析レポート群となる。
【００１６】
図示を省略するが、マルウェア動作環境推定装置１０１を運用する組織内のその他のコンピュータ機器やネットワーク装置、マルウェア動作環境推定装置１０１を管理する管理者が利用するコンピュータ等がネットワーク１０３に接続されていてもよい。
【００１７】
図２は、マルウェア動作環境推定装置１０１のハードウェアの例を示す図である。マルウェア動作環境推定装置１０１は、通信装置２０１、入力装置２０２、表示装置２０３、演算装置２０４、メモリ２０５、および、記憶装置２０６を備える。
【００１８】
通信装置２０１は、ネットワークカード等のネットワークインタフェースである。通信装置２０１は、ネットワーク１０３を介して他の装置からデータを受信し、受信したデータを演算装置２０４へ送る。そして、通信装置２０１は、演算装置２０４によって生成されたデータを、ネットワーク１０３を介して他の装置へ送信する。
【００１９】
入力装置２０２は、キーボードまたはマウス等の装置であり、管理者による情報の入力を受け付けるための装置である。表示装置２０３は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）等の装置であり、管理者に情報を出力するための装置である。
【００２０】
記憶装置２０６は、ハードディスク等の装置であり、演算装置２０４が実行するプログラムおよび演算装置２０４が使用するデータ等を格納する。メモリ２０５は、一時的にデータ等が読み出される記憶領域であり、記憶装置２０６に格納されたプログラムやデータ等がメモリ２０５に読み出されてもよいし、メモリ２０５に格納されたデータ等が記憶装置２０６に書き込まれてもよい。
【００２１】
演算装置２０４は、記憶装置２０６あるいはメモリ２０５に格納されたプログラムを実行し、マルウェア動作環境推定装置１０１に備わる各装置を制御する。演算装置２０４は、入力装置２０２および表示装置２０３を制御し、入力装置２０２から入力されたデータを受け付け、表示装置２０３へデータを出力する。記憶装置２０６に格納されるプログラムは、演算装置２０４によって、記憶装置２０６からメモリ２０５に読み出され、メモリ２０５に格納されて実行されてもよい。
【００２２】
演算装置２０４は、プログラムを記憶装置２０６から読み出すが、他の例として、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）もしくはＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等の光学記録媒体、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  Ｄｉｓｃ）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または、半導体メモリ等の記録媒体からプログラムを読み出してもよい。また他の例として、他の装置から、通信媒体を介して、プログラムを読み出してもよい。通信媒体とは、ネットワークまたはこれらを伝搬するディジタル信号または搬送波を示す。
【００２３】
図１に示すクライアント端末１０２のハードウェアは、図２に示すマルウェア動作環境推定装置１０１と同じハードウェアであるか、それに相当するハードウェアを有する。このため、クライアント端末１０２のハードウェアの具体的な説明は省略する。
【００２４】
図３は、マルウェア動作環境推定装置１０１の構成の例を示す図である。マルウェア動作環境推定装置１０１は、環境要素抽出部３０１、環境要素抽出ロジックＤＢ（Ｄａｔａ  Ｂａｓｅ）３０２、環境情報生成部３０３、解析環境情報ＤＢ３０４、動作環境推定処理部３０５、処理モジュールＤＢ３０６、出力処理部３０７、マルウェア動作環境履歴ＤＢ３０８から構成される。これらの各部は、演算装置２０４がプログラムを実行することにより実現されてもよい。
【００２５】
環境要素抽出部３０１は、１以上のマルウェアの解析レポートからなるマルウェアの解析レポート群を入力とし、環境要素抽出ロジックＤＢ３０２に格納されている抽出ロジックと入力された解析レポート群とのマッチングを行い、マッチする際には環境要素抽出ロジックＤＢ３０２内の情報に従って、解析環境情報ＤＢ３０４内に格納された情報から抽出すべき要素を抽出要素として出力する。
【００２６】
ここで、マルウェアの解析レポートとは、例えば特許文献１に記載されているような技術でマルウェアを解析した結果得られる、既に説明したマルウェアの挙動に関する情報であり、解析対象の環境内におけるマルウェアのファイルアクセス（読み込み、書き込み、作成、削除等）の記録、レジストリアクセス（読み込み、書き込み、追加、削除等）の記録、ネットワークアクセス（アクセス先、送受信情報等）の記録、ＡＰＩ呼出記録（呼び出したＡＰＩ、与えられたパラメータ、返り値等）の情報のうち1種類以上の情報を含むものである。
【００２７】
環境情報生成部３０３は、環境要素抽出部３０１の出力である抽出要素を入力として呼び出され、抽出要素に含まれる情報と解析環境情報ＤＢ３０４に格納されている情報をもとに動作環境の推定処理で使用する動作環境推定用解析環境情報を生成して出力する。
【００２８】
動作環境推定処理部３０５は、環境情報生成部３０３の出力である動作環境推定用解析環境情報およびマルウェアの稼動判定結果を入力として呼び出され、処理モジュールＤＢ３０６に格納された処理モジュールに従って入力された情報を処理し、マルウェアが動作する環境の推定結果を動作環境推定結果としてマルウェア動作環境履歴ＤＢ３０８に記録するとともに、動作環境推定結果を出力する。
【００２９】
動作環境推定処理部３０５で使用するマルウェアの稼動判定結果は、解析環境情報ＤＢ３０４で環境情報が定義されている環境のうち複数の環境におけるマルウェアの稼動判定結果である。ある環境でマルウェアが稼動したかどうかの判定は、例えば特許文献１に記載の技術に代表されるマルウェアの動的解析の結果として出力される判定結果を利用してもよいし、動的解析の結果得られるマルウェアの挙動レポートを別途解析して取得してもよい。
【００３０】
マルウェアの稼動判定結果の取得の処理はこれらに限定されず、ネットワーク１０３を介して受信した解析レポートから直接に取得してもよいし、ネットワーク１０３を介して受信した解析レポートから環境情報生成部３０３経由で取得してもよいし、他の処理により取得してもよい。
【００３１】
出力処理部３０７では、動作環境推定処理部３０５の出力である動作環境推定結果を入力として、マルウェア動作環境推定装置１０１の利用者（管理者）に動作環境推定結果を表示する、動作環境推定結果をシステム管理者にメールで連絡する、他のシステムに対して動作環境推定結果を自動的に入力する、といった処理を実施する。
【００３２】
図４は、環境要素抽出部３０１の処理の例を示すフローチャートである。環境要素抽出部３０１は、解析レポートに含まれるマルウェアの挙動等の情報から、それに関連する具体的な動作環境の要素を特定して抽出するものである。まず、環境要素抽出部３０１はステップＳ４０１で、入力として解析レポート群を取得する。続いてステップＳ４０２で全ての解析レポートを処理したかどうか判定し、全ての解析レポートを処理していないと判定した場合にはステップＳ４０３に進み、未処理の解析レポートを一つ取得して、対象の解析レポートとする。
【００３３】
環境要素抽出部３０１はステップＳ４０４で、環境要素抽出ロジックＤＢ３０２から抽出ロジックのリストを取得する。ステップＳ４０５で全ての抽出ロジックを処理済みかどうか判定し、全ての抽出ロジック処理済みであると判定しない場合には、ステップＳ４０６に進む。ステップＳ４０６では、未処理の抽出ロジックを一つ取得して、対象の抽出ロジックとする。
【００３４】
環境要素抽出部３０１はステップＳ４０７で、対象解析レポート内に対象抽出ロジックの条件にマッチする挙動が存在しているかどうか判定する。存在していると判定した場合にはステップＳ４０８に進み、抽出要素に対象抽出ロジックの追加要素および優先度の情報を追加しステップＳ４０９に進む。ステップＳ４０７で対象抽出ロジックの条件にマッチする挙動が対象解析レポート内に存在しない場合には、ステップＳ４０９に進む。ステップＳ４０９では対象抽出ロジックを処理済みと設定し、ステップＳ４０５に戻る。
【００３５】
環境要素抽出部３０１はステップＳ４０５で、全ての環境要素抽出ロジックが処理済みに設定されていると判定した場合には、ステップＳ４１０に進み対象解析レポートを処理済みと設定し、ステップＳ４０２に戻る。ステップＳ４０２で全ての解析レポートが処理済みであると判定した場合には、ステップＳ４１１で抽出要素を出力して処理を終了する。
【００３６】
また、環境要素抽出部３０１の処理で出力の際、抽出要素に含まれなかった環境要素について何らかの形で優先度を設定し出力させるような構成としてもよい。これにより、例えば、マルウェアの動作に影響を与えるが解析レポートには現れない要素がある場合に、これを動作環境の候補とすることができる。その際の優先度は、事前に設定しておいてもよいし、抽出要素に含まれる環境要素とその優先度から機械的に決定してもよい。
【００３７】
図５は、環境要素抽出ロジックＤＢ３０２の例を示す説明図である。環境要素抽出ロジックＤＢ３０２は番号欄５０１、条件欄５０２、追加要素欄５０３、優先度欄５０４から構成される。番号欄５０１の情報は抽出ロジックを一意に定めるための識別子であり、図５の例では表の１行が１つの抽出ロジックである。条件欄５０２の情報は追加要素欄５０３および優先度欄５０４の情報を環境要素抽出部３０１の出力に加えるかどうかを判定するためのマルウェアの解析レポートに含まれる情報の条件を示している。
【００３８】
ここで、条件欄５０２の情報には、図５に示すような、特定のＡＰＩを呼び出したか否か、特定のファイルにアクセスしたか否か、特定のファイルを実行したか否か、ネットワークアクセスを行ったか否か、特定の設定に関係する情報を参照したか否か、といった情報が含まれる。また、複数の条件を全て満たしているか否か（ＡＮＤ条件）や複数の条件のうちいずれか一つが満たされたか否か（ＯＲ条件）といった情報が設定されてもよい。
【００３９】
なお、図５の例は説明のために、条件欄５０２の情報を文章で表現したが、例えばログファイルの文字コード列や、特定のコード等であってもよく、マルウェア解析システム１０４と環境要素抽出部３０１との間で共通する情報の形式であればよい。
【００４０】
追加要素欄５０３および優先度欄５０４の情報は、マルウェア解析レポートに含まれるマルウェアの挙動が条件欄５０２の条件を満たした場合に使われる情報であり、追加要素欄５０３の情報は環境要素抽出部３０１の出力情報に追加する環境要素であり、優先度欄５０４の情報は、追加要素欄５０３の情報に対する優先度である。なお、追加要素欄５０３は、１つだけでなく複数の情報が含まれてもよい。環境要素抽出ロジックＤＢ３０２の情報は事前に設定されていてもよい。
【００４１】
図６は、環境情報生成部３０３の処理の例を示すフローチャートである。環境情報生成部３０３は、環境要素抽出部３０１で抽出された動作環境が実際にマルウェアの記録された動作環境に限定されるため、その限定された動作環境のパターンを拡張した動作環境の情報を生成する。まず、環境情報生成部３０３はステップＳ６０１で、環境要素抽出部３０１の出力である抽出要素を取得し、ステップＳ６０２で解析環境情報ＤＢ３０４から解析環境情報を取得する。取得した抽出要素には、既に説明したように追加要素欄５０３の情報が含まれる。
【００４２】
環境情報生成部３０３はステップＳ６０３で、解析環境情報ＤＢ３０４から取得した解析環境情報のうち、解析環境識別子と、取得した抽出要素に一致する列の情報を抽出し、それらにより動作環境推定用解析環境情報を生成する。解析環境識別子と列については図７を用いて後で説明する。ステップＳ６０３により、実際にマルウェアの記録された動作環境の情報が生成される。
【００４３】
マルウェアの動作する環境が、例えば特定のＯＳと特定のアプリケーションの両方がそろった環境であるかもしれないし、特定のＯＳか特定のアプリケーションのいずれか一方の環境であるかもしれないし、これら以外であるかもしないため、以下のステップＳ６０４からステップＳ６０６では、実際にマルウェアの記録された動作環境の情報に基づいて、可能な限り多くの環境情報を生成する。
【００４４】
環境情報生成部３０３はステップＳ６０４で、動作環境推定用解析環境情報の解析環境識別子以外の各列に対して、ＮＯＴ演算を行った列を新たに動作環境推定用解析環境情報の列として追加する。ステップＳ６０５で動作環境推定用解析環境情報の解析環境識別子以外の列に関し、全ての２つの列の組み合わせのＡＮＤ演算を行った結果を新たに動作環境推定用解析環境情報の列として追加する。
【００４５】
さらに、環境情報生成部３０３はステップＳ６０６で、動作環境推定用解析環境情報の解析環境識別子以外の列に関し、全ての２つの列の組み合わせのＯＲ演算を行った結果を新たに動作環境推定用解析環境情報の列として追加する。最後にステップＳ６０７で、生成した動作環境推定用解析環境情報を環境情報生成部３０３から出力して終了する。
【００４６】
図６に示した環境情報生成部３０３の処理フローの例において、列のＮＯＴ演算、列同士のＡＮＤ演算およびＯＲ演算を行っているが、これら全ての演算を行う構成に制限されるものではなく、これらのうち一部の演算のみを行ってもよいし、また、これらの演算を全く行わなくてもよい。また、これらの演算を動作環境推定用解析環境情報の全ての列または全ての２つの列の組み合わせに対して行うのではなく、一部の列にのみ演算を行ってもよい。
【００４７】
また、ＡＮＤ演算やＯＲ演算に関しては２つの列の組み合わせに限定されるものではなく、３つ以上の列の組み合わせに対して演算を行った結果を追加してもよい。また、ＮＯＴ演算、ＡＮＤ演算、ＯＲ演算を行う順番は図６の例に示した順番のみに制限されるものではなく、任意の順番で演算を行ってもよい。また、これらの演算は1度のみ行うことに制限されるものではなく、同じ演算を２度以上行ってもよい。
【００４８】
また、ＯＲ演算、ＡＮＤ演算、ＮＯＴ演算によって追加された列に対応する優先度の設定は、事前に設定した特定の値に設定してもよいし、演算を行う対象の列の優先度に応じて算出して設定してもよい。
【００４９】
環境情報生成部３０３は、環境要素抽出部３０１の出力する抽出要素に含まれる優先度すなわち優先度欄５０４の情報に基づいて、各列に優先度を付与してもよい。複数の列の演算により追加された列には、演算のもととなった列の複数の優先度へ、演算の種類ごとに事前に設定された計算を適用して算出した優先度を付与してもよい。
【００５０】
ＡＮＤ演算により追加された列には、ＡＮＤ演算のもととなった列の優先度より高い優先度が付与されてもよい。ＯＲ演算により追加された列には、ＯＲ演算のもととなった列の優先度より低い優先度が付与されてもよい。動作環境推定用解析環境情報は、これらの付与された優先度を含んでもよい。
【００５１】
図７は、解析環境情報ＤＢ３０４の例を示す図である。解析環境情報ＤＢ３０４は解析環境識別子欄７０１と環境情報欄７０２から構成される。解析環境識別子欄７０１は、解析環境を一意に定める識別子である。解析環境の識別子はマルウェア解析システム１０４ごとに割当てられるため、識別子の個数はマルウェア解析システム１０４の個数となる。
【００５２】
環境情報欄７０２は、解析環境識別子欄７０１で一意に識別される解析環境それぞれに関する情報である。環境情報欄７０２に含まれる情報は、解析環境の「Ｐｌａｔｆｏｒｍ」に関する情報（物理マシンか仮想マシンか等）、「ＯＳ」に関する情報（メジャーバージョン、サービスパック等）、「Ａｐｐ」（アプリケーション）に関する情報（アプリケーション名、バージョン等）、どのような「通信環境」かに関する情報（外部接続なし、直接外部接続可能、プロキシサーバ経由で外部接続可能、外部接続をエミュレートする擬似環境等）、ＯＳの「パッチ」に関する情報（特定のパッチが当たっているか等）、ＯＳやアプリケーションの「設定」に関する情報（特定の設定がなされているか等）、「ファイル」に関する情報（特定のファイルが解析環境内に存在しているか等）といった情報が含まれる。
【００５３】
環境情報欄７０２には、各解析環境に環境情報欄７０２を構成する解析環境のプラットフォームに関する情報の有無について、有の場合に「１」、無の場合に「０」が格納される。具体的には、図７に示すように、解析環境識別子が「Ａ」の「Ｐｌａｔｆｏｒｍ」が物理環境の場合には「物理」の列に「１」が設定され、「仮想」の列に「０」が設定される。また、解析環境識別子が「Ａ」に搭載された「ＯＳ」が「ＯＳ  Ａ」である場合には、「ＯＳ  Ａ」の列に「１」が、それ以外のＯＳの列に「０」が設定される。なお、解析環境情報ＤＢ３０４の情報は事前に設定されていてもよい。
【００５４】
図７の例では、解析環境情報ＤＢ３０４は「０」と「１」の情報を格納した表となっているが、そのように構成することに限定するものではなく、例えば、解析環境情報としてＯＳやアプリケーションの情報を文字列で保持しておき、環境情報生成部３０３において０と１の表に変換する、といった構成としていてもよい。
【００５５】
図８は、動作環境推定処理部３０５の処理の例を示すフローチャートである。動作環境推定処理部３０５は、動作環境推定用解析環境情報と、複数のマルウェア解析システム１０４すなわち解析環境でマルウェアが動作したかの稼動判定結果との関連に基づき、マルウェアの動作する環境を絞り込み、推定する。
【００５６】
まず、動作環境推定処理部３０５はステップＳ８０１で、環境情報生成部３０３から出力された動作環境推定用解析環境情報と、複数の環境におけるマルウェアの稼動判定結果とを取得する。ステップＳ８０２で処理モジュールＤＢ３０６から全ての処理モジュールを取得する。
【００５７】
動作環境推定処理部３０５はステップＳ８０３で、全ての処理モジュールで処理済みかどうかの判定を行い、全ての処理モジュールで処理済みと判定しない場合にはステップＳ８０４に進み、未処理の処理モジュールを一つ取得して対象処理モジュールに設定する。
【００５８】
動作環境推定処理部３０５はステップＳ８０５で、ステップＳ８０１で取得した動作環境推定用解析環境情報と稼動判定結果を、対象処理モジュール内の処理ロジックを用いて処理し、処理結果を得る。ステップＳ８０６にて、得られた処理結果が対象処理モジュール内の終了条件を満たすかどうかの判定を行う。終了条件を満たすと判定した場合にはステップＳ８０７に進み、得られた処理結果（推定結果）を対象処理モジュールの出力として出力し、対象処理モジュールを処理済と設定し、ステップＳ８０３に戻る。
【００５９】
動作環境推定処理部３０５は、ステップＳ８０６の判定の結果、終了条件を満たしていないと判定された場合にはステップＳ８０８に進み、対象処理モジュール内の条件未達時処理を実施し、ステップＳ８０５に戻り、再度処理モジュール内の処理ロジックによる処理を実施する。ステップＳ８０３で全ての分析モジュールで処理済であると判定した場合、ステップＳ８０９に進み、処理モジュールで得られた動作環境推定結果をマルウェア動作環境履歴ＤＢ３０８に追加するとともに、ステップＳ８１０で動作環境推定結果を出力して終了する。
【００６０】
図９は、処理モジュールＤＢ３０６の例を示す図である。処理モジュールＤＢ３０６は、モジュール識別子欄９０１、処理ロジック欄９０２、終了条件欄９０３、条件未達時処理欄９０４から構成される。モジュール識別子欄９０１は処理モジュールを一意に識別する識別子である。処理ロジック９０２欄は、識別子で識別される処理モジュールで行う動作環境推定処理の内容である。
【００６１】
終了条件欄９０３は、識別子で識別される処理モジュールによる動作環境推定処理の終了条件を示す情報である。条件未達時処理欄９０４は、識別子で識別される処理モジュールによる動作環境推定処理において、終了条件欄９０３の終了条件を満たさなかった場合に行う処理を示している。終了条件を満たさない場合には条件未達時処理欄９０４に示される処理を行い、処理ロジック９０２欄に示される処理が再度実施される。
【００６２】
なお、図９の例は説明のために、各欄の情報を文章で表現したが、各文章の内容を表す特定のコードであってもよく、動作環境推定処理部３０５の実行可能なプログラムやマクロ等であってもよい。処理モジュールＤＢ３０６の情報は事前に設定されてもよい。
【００６３】
図１０は、出力処理部３０７による表示画面の例を示す図である。図１０は、あるマルウェアの動作環境推定結果の表示例であり、表示対象のマルウェアの動作環境推定結果をマルウェア動作環境履歴ＤＢ３０８から取得して表示する、あるいは動作環境推定処理部３０５の出力を表示する。マルウェアを特定する情報は、マルウェアを識別する何らかの識別情報でもよいし、図１１を用いて説明するアンチウイルスソフトスキャン結果で特定されたマルウェアの名称等でもよい。
【００６４】
表示１００１はマルウェアの動作環境推定結果に含まれる動作環境情報であり、表示１００２は推定された動作環境条件を見たす環境が組織内に存在するかどうかを確認するための外部システムへのリンクである。表示１００３は詳細な動作環境推定結果であり、動作環境推定処理を行った処理モジュールおよびその処理の結果得られた情報を表示する。動作環境情報や動作環境推定結果は、図１１を用いて説明する推定処理結果や動作環境であってもよい。
【００６５】
図１１は、マルウェア動作環境履歴ＤＢ３０８の例を示す図である。マルウェア動作環境履歴ＤＢ３０８は、マルウェア識別子欄１１０１、ハッシュ値欄１１０２、マルウェア情報欄１１０３、推定処理結果欄１１０４、動作環境欄１１０５とから構成される。マルウェア識別子欄１１０１は、マルウェア動作環境推定装置１０１で動作環境推定の対象としたマルウェアを一意に識別する識別子である。
【００６６】
ハッシュ値欄１１０２は、マルウェア識別子１１０１で識別されるマルウェアのファイルを暗号学的ハッシュ関数の入力として得られる出力の値である。ここで、暗号学的ハッシュ関数はＭＤ５やＳＨＡ１、ＳＨＡ２５６等であるが、ハッシュ値欄１１０２の情報はこれらの暗号学的ハッシュ関数に限定されるものではない。
【００６７】
マルウェア情報欄１１０３は、マルウェア識別子欄１１０１で識別されるマルウェアに関する情報である。マルウェア情報欄１１０３に含まれる情報は、例えば、マルウェアのファイル名、ファイルサイズ、アンチウイルスソフトでのスキャン結果である。アンチウイルスソフトのスキャン結果にマルウェアの名称が含まれてもよい。マルウェア情報１１０３の情報は、これらの情報に限定されるものではなく、他にも、マルウェア本体から抽出した文字列情報やマルウェアを特定のツールに入力した結果等を含んでいてもよい。
【００６８】
推定処理結果欄１１０４および動作環境欄１１０５は、マルウェア動作環境推定装置１０１においてマルウェア識別子１１０１で識別されるマルウェアの動作環境を推定して得られた動作環境を保持するものである。動作環境欄１１０５の情報は、過去に動作環境の推定を行った結果に限られるものではなく、マルウェア識別子１１０１で識別されるマルウェアの詳細な解析や外部からの情報提供により判明した動作環境情報がさらに格納されもよい。
【００６９】
以上が、マルウェア動作環境推定装置１０１の動作である。上述した動作はあくまで一例であり、本発明の実施形態を限定するものではない。
【００７０】
マルウェア動作環境推定装置１０１の構成の例は図３に示した通りであるが、構成はこれに限ったものではなく、環境要素抽出部３０１、環境要素抽出ロジックＤＢ３０２、環境要素生成部３０３、解析環境情報ＤＢ３０４、動作環境推定処理部３０５、処理モジュールＤＢ３０６、出力処理部３０７、マルウェア動作環境履歴ＤＢ３０８がそれぞれ別の装置上で動作し、それぞれの部、ＤＢ間がネットワークで接続されるようなネットワークシステムとして構成されていてもよく、また、それらの部、ＤＢのうちの複数が１台の装置上で動作するような構成となっていてもよい。
【００７１】
以上で説明したように、マルウェアの動作環境を推定することができる。これにより、マルウェア対策するコンピュータを特定して、効率よく対策することが可能になる。
【００７２】
また、マルウェアの動的環境を構成する要素は、プラットフォームやＯＳ、アプリケーション、パッチ、設定、ファイルの有無等多岐にわたり、ＯＳやアプリケーションのマイナーバージョン、数あるパッチの有無や設定項目の値による変化を細かく表現すると、要素数が非常に膨大な数になる。
【００７３】
これらの要素の中にはマルウェアの動作に無関係の要素も数多くあり、統計処理等によりマルウェアの動作要因となった要素を特定しようとしても無関係な要素がノイズとなって正しく特定できない場合がある。また、要素数が多い場合分析処理の計算量が多くなってしまうという問題がある。
【００７４】
これに対して、環境要素抽出ロジックＤＢ３０２の条件欄５０２にマッチする追加要素欄５０３の情報に解析環境情報ＤＢ３０４の環境情報欄７０２の要素を絞ることができ、優先度に基づいて動作環境推定用解析環境情報の列を絞ることができるため、計算量を削減することが可能になる。
【実施例２】
【００７５】
実施例１のマルウェア動作環境推定装置１０１では、マルウェアの動作環境の推定結果を、マルウェア動作環境履歴ＤＢ３０８に記録し、出力処理部３０７で表示する際に用いている。この推定結果の履歴情報をフィードバックすることにより漏れのない推定を可能にするため、実施例２では、環境要素抽出部３０１からマルウェア動作環境履歴ＤＢ３０８にアクセス可能とし（図示省略）、環境要素抽出部３０１の処理フローを変更して、マルウェア動作環境履歴ＤＢ３０８の情報を使うようにする。
【００７６】
図１２は、動作環境履歴情報を取得する環境要素抽出部３０１の処理の例を示すフローチャートである。図１２では、図４と共通する処理のステップＳ４０２からステップＳ４１１については同じ符号を付けて、その説明を省略する。まず、環境要素抽出部３０１はステップＳ１２０１で、マルウェアの解析レポート群および対象マルウェア情報を取得する。ここで、対象マルウェアの情報は解析レポートに含まれる情報であってもよいし、マルウェア解析システム１０４にて解析されたマルウェアの情報を他から取得してもよい。
【００７７】
環境要素抽出部３０１はステップＳ４０２で、全ての解析レポートが処理済みであると判定した場合にステップＳ１２０２に進み、マルウェア動作環境履歴ＤＢ３０８からマルウェアの動作環境履歴情報を取得する。ステップＳ１２０３において、ステップＳ１２０１で取得した対象マルウェア情報と、ステップＳ１２０２で取得したマルウェアの動作環境履歴情報に含まれる各履歴のマルウェア情報（マルウェア情報欄１１０３の情報）との類似判定を行い、対象マルウェア情報に類似したマルウェア情報を持った履歴が存在するかどうか判定する。
【００７８】
環境要素抽出部３０１は、履歴が存在すると判定した場合にはステップＳ１２０４に進み、環境要素抽出部３０１の出力である抽出要素に、類似すると判定されたマルウェア情報を含む履歴の動作環境（動作環境欄１１０５の情報）を追加してステップＳ４１１に進む。ステップＳ１２０３において類似する履歴が存在していないと判定した場合には、そのままステップＳ４１１に進む。
【００７９】
なお、ステップＳ１２０３における類似判定は、例えば、ファイル名が一致しているかもしくは似たファイル名になっているかどうかで判定してもよいし、ファイルサイズが一致しているかもしくは近いファイルサイズであるかどうかで判定してもよいし、アンチウイルスソフトスキャン結果が似た文字列になっているかどうかで判定してもよい。ただし、ステップＳ１２０３における類似判定はこれらに限定されるものではない。
【００８０】
また、過去の履歴から類似するマルウェアの動作環境情報を取得できた場合、すなわちステップＳ１２０３の判定がＹｅｓの場合、ステップＳ４０２からステップＳ４１０で生成した抽出要素を破棄し、環境要素抽出部３０１の出力として、履歴から取得した動作環境のみを抽出要素として出力するようにしてもよい。
【００８１】
以上で説明したように、過去のマルウェア動作環境推定結果、もしくは外部から得られたマルウェアの動作環境情報を有効に活用した、より精度の高いマルウェアの動作環境推定が実施でき、より効率的なマルウェアへの対策を実現できる。
【符号の説明】
【００８２】
１０１  マルウェア動作環境推定装置
３０１  環境要素抽出部
３０２  環境要素抽出ロジックＤＢ
３０３  環境情報生成部
３０４  解析環境情報ＤＢ
３０５  動作環境推定処理部
３０６  処理モジュールＤＢ
３０７  出力処理部
３０８  マルウェア動作環境履歴ＤＢ
【図１】
0006454617.tif 000002
【図２】
0006454617.tif 000003
【図３】
0006454617.tif 000004
【図４】
0006454617.tif 000005
【図５】
0006454617.tif 000006
【図６】
0006454617.tif 000007
【図７】
0006454617.tif 000008
【図８】
0006454617.tif 000009
【図９】
0006454617.tif 000010
【図１０】
0006454617.tif 000011
【図１１】
0006454617.tif 000012
【図１２】
0006454617.tif 000013