(57)【特許請求の範囲】
【請求項１】
マルウェアと推定されるソフトウェアによって実行された第１種類の入出力処理に関する履歴を表す第１履歴情報と、情報処理装置によって実行された第２種類の入出力処理に関する履歴を表す第２履歴情報とが、類似または一致する度合を表す類似度を算出する類似度算出手段と、
前記情報処理装置が、前記マルウェアに感染しているか否かを、前記類似度に基づき推定する推定手段と
を備え、
前記類似度算出手段は、前記第１種類の入出力処理、及び、前記第２種類の入出力処理が関連付けされている情報から、前記第１履歴情報が表す前記履歴における前記入出力処理に関連付けされた前記第２種類の入出力処理を読み取り、読み取った当該入出力処理と、前記第２履歴情報が表す履歴とに基づき前記類似度を算出する
ことを特徴とするマルウェア推定装置。
【請求項２】
外部との情報の送受信を制限した環境にて、前記マルウェアを実行することにより、前記第１履歴情報を作成するサンドボックス
をさらに備え、
前記類似度算出手段は、前記第１履歴情報が作成されるのに応じて、前記第１履歴情報と、前記第２履歴情報とに関する前記類似度を算出する
ことを特徴とする請求項１に記載のマルウェア推定装置。
【請求項３】
前記類似度算出手段は、前記第１履歴情報における入出力処理の種類と、前記第２履歴情報における入出力処理との種類とが一致する場合に、前記度合が高いことを表す前記類似度を算出する
ことを特徴とする請求項１または請求項２に記載のマルウェア推定装置。
【請求項４】
前記類似度算出手段は、前記第１履歴情報において処理対象の位置を表す情報と、前記第２履歴情報において処理対象の位置を表す情報との類似度に基づき、前記類似度を算出する
ことを特徴とする請求項１乃至請求項３のいずれかに記載のマルウェア推定装置。
【請求項５】
前記推定手段は、前記類似度と、前記入出力処理の種類とに基づき、前記情報処理装置が前記マルウェアに感染しているか否か推定する
ことを特徴とする請求項３または請求項４に記載のマルウェア推定装置。
【請求項６】
前記推定手段は、前記情報処理装置が前記マルウェアに感染している程度を推定するに際して、前記入出力処理の内容が、保存、実行、削除、作成なる順番にマルウェアに感染している程度が高くなり、前記保存よりも前記作成の方が前記程度が高い
ことを特徴とする請求項５に記載のマルウェア推定装置。
【請求項７】
前記第１履歴情報を記憶可能な第１履歴情報記憶手段
をさらに備え、
前記類似度算出手段は、前記第２履歴情報を作成するのに応じて、前記第１履歴情報記憶手段が記憶する前記第１履歴情報を読み取り、読み取った前記第１履歴情報に基づき前記類似度を算出する
ことを特徴とする請求項１乃至請求項６のいずれかに記載のマルウェア推定装置。
【請求項８】
計算処理装置によって、マルウェアと推定されるソフトウェアによって実行される第１種類の入出力処理に関する履歴を表す第１履歴情報と、情報処理装置によって実行される第２種類の入出力処理に関する履歴を表す第２履歴情報とが、類似または一致する度合を表す類似度を算出し、前記情報処理装置が、前記マルウェアに感染しているか否かを、前記類似度に基づき推定し、
前記類似度を算出する処理において、前記第１種類の入出力処理、及び、前記第２種類の入出力処理が関連付けされている情報から、前記第１履歴情報が表す前記履歴における前記入出力処理に関連付けされた前記第２種類の入出力処理を読み取り、読み取った当該入出力処理と、前記第２履歴情報が表す履歴とに基づき前記類似度を算出する
ことを特徴とするマルウェア推定方法。
【請求項９】
マルウェアと推定されるソフトウェアによって実行される第１種類の入出力処理に関する履歴を表す第１履歴情報と、情報処理装置によって実行される第２種類の入出力処理に関する履歴を表す第２履歴情報とが、類似または一致する度合を表す類似度を算出する類似度算出機能と、
前記情報処理装置が、前記マルウェアに感染しているか否かを、前記類似度に基づき推定する推定機能と
をコンピュータに実現させ、
前記類似度算出機能においては、前記第１種類の入出力処理、及び、前記第２種類の入出力処理が関連付けされている情報から、前記第１履歴情報が表す前記履歴における前記入出力処理に関連付けされた前記第２種類の入出力処理を読み取り、読み取った当該入出力処理と、前記第２履歴情報が表す履歴とに基づき前記類似度を算出する
ことを特徴とするマルウェア推定プログラム。
【請求項１０】
外部との情報の送受信を制限した環境にて、前記マルウェアを実行することにより、前記第１履歴情報を作成するサンドボックス機能
をさらに有し、
前記類似度算出機能において、前記第１履歴情報が作成されるのに応じて、前記第１履歴情報と、前記第２履歴情報とに関する前記類似度を算出する
ことを特徴とする請求項９に記載のマルウェア推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルウェアを検出可能なマルウェア推定装置等に関する。
【背景技術】
【０００２】
特定の企業、または、特定の組織を標的（以降、「ターゲット」と表す）とする標的型攻撃による被害は、年々、深刻化している。それとともに、標的型攻撃による被害の実態を把握することが難しくなっている。
【０００３】
標的型攻撃の多くは、マルウェア、特に、多段型のマルウェアに起因する。多段型のマルウェアは、インターネットを介して、ホストからプログラムをダウンロードするダウンローダを用いて、ターゲット等を攻撃する。
【０００４】
マルウェアは、公知の脆弱性を利用することにより、ターゲットに感染する。したがって、マルウェアへの対策は、たとえば、該公知の脆弱性に基づき、マルウェアを検知するパターンファイルを作成することである。
【０００５】
一方、特定の企業を標的とする標的型攻撃を実行するマルウェアは、該特定の企業のみが導入しているソフトウェアに存在する脆弱性を利用することにより、該ターゲットのみに侵入する。たとえば、該ソフトウェアは、特定の企業における情報処理装置の状態を管理するソフトウェアである。したがって、公知の脆弱性に基づき、パターンファイルを作成するのみでは、標的型攻撃を実行するマルウェアを完全に防ぐことは難しい。
【０００６】
サンドボックス（Ｓａｎｄｂｏｘ）は、標的型攻撃を実行するマルウェアを含むマルウェアを検知可能な技術の１つである。サンドボックスは、該サンドボックスの内部において実行するソフトウェアが、外部に影響を及ぼさない仮想的な実行環境である。たとえば、サンドボックスを利用して、マルウェアであることが疑われるファイルを実行し、該実行結果に基づき、実行したファイルがマルウェアであるか否かを判定することができる。
【０００７】
特許文献１乃至特許文献３に開示される技術は、マルウェアを検知する技術の一例である。特に、特許文献３は、サンドボックスを利用して、ソフトウェアがマルウェアであるか否かを推定するマルウェア検知装置を開示する。
【０００８】
特許文献１は、未知の実行ファイルがマルウェアであるか否かを判定するマルウェア判定システムを開示する。該マルウェア判定システムは、第１の実行ファイルに含まれる関数（プロセス）名に関するリスト（以降、「第１リスト」と表す）を作成する。次に、該マルウェア判定システムは、第１の実行ファイルを実行し、実行した結果生成される第２の実行ファイルに含まれる関数名に関するリスト（以降、「第２リスト」と表す）を作成する。該マルウェア判定システムは、第１リストと、第２リストとを比較し、該２つのリストが一致する場合に、第１の実行ファイルがマルウェアであると判定する。該マルウェア判定システムは、該２つのリストが一致しない場合に、第１の実行ファイルがマルウェアでないと判定する。
【０００９】
特許文献２は、ソフトウェアと、マルウェアとが、どの程度、類似するのかを算出するマルウェア類似性算出装置を開示する。該マルウェア類似性算出装置は、通信ネットワークにおけるアドレスを走査する処理に関する統計情報と、コード及び挙動を分析した結果を表す分析情報とに関して、検査対象であるソフトウェアと、マルウェアとが類似する程度を表す類似性を算出する。次に、該マルウェア類似性算出装置は、算出した類似性に基づき、検査対象であるソフトウェアがマルウェアであるか否かを判定する。
【００１０】
特許文献３は、サンドボックスを検知可能なマルウェアであっても、該マルウェアを検知可能なマルウェア検知装置を開示する。該マルウェア検知装置は、検査対象であるソフトウェアを、仮想的な実行環境であるサンドボックスと、現実の実行環境である端末とにおいて、それぞれ実行する。次に、マルウェア検知装置は、該サンドボックスと、端末とから、それぞれ、該ソフトウェアに関する識別情報と、該ソフトウェアが実行した処理に関するログとを受信する。次に、該マルウェア検知装置は、２つの該識別情報が一致し、さらに、２つの該ログが一致しない場合に、検査対象であるソフトウェアがマルウェアであると判定する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１１−２２１７４５号公報
【特許文献２】特開２００９−０３７５４５号公報
【特許文献３】特開２０１４−０７１７９６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、特許文献１または特許文献３に開示されたマルウェアを検知する技術は、必ずしも、マルウェアを正しく検知できるとは限らない。
【００１３】
この理由について、各特許文献に開示された技術に基づき説明する。
【００１４】
特許文献１に開示されたマルウェア判定システムは、実行ファイルに含まれるプロセス名に基づき、該実行ファイルがマルウェアであるか否かを推定する。たとえば、該マルウェア判定システムは、実行ファイルに含まれるプロセス名が一致しない場合に、マルウェアでないと判定する。したがって、該マルウェア判定システムは、類似するプロセスを多く含む実行ファイルであっても、マルウェアでないと判定する可能性がある。
【００１５】
特許文献３に開示されたマルウェア検知装置は、サンドボックス内外において、検査対象であるソフトウェアを実行し、内外における２つのログを比較する。該マルウェア検知装置は、該２つのログが異なる場合に、該ソフトウェアがサンドボックスを検知するマルウェアであると判定する。したがって、該マルウェア検知装置は、サンドボックスを検知しないマルウェアを検知することができない。
【００１６】
そこで、本発明の主たる目的は、マルウェアに感染しているか否かをより正確に推定可能なマルウェア推定装置等を提供することである。
【課題を解決するための手段】
【００１７】
前述の目的を達成するために、本発明の一態様において、マルウェア推定装置は、以下の構成を備える。
【００１８】
すなわち、マルウェア推定装置は、
マルウェアと推定されるソフトウェアによって実行された入出力処理に関する履歴を表す第１履歴情報と、情報処理装置によって実行された入出力処理に関する履歴を表す第２履歴情報とが、類似または一致する度合を表す類似度を算出する類似度算出手段と、
前記情報処理装置が、前記マルウェアに感染しているか否かを、前記類似度に基づき推定する推定手段と
を備える。
【００１９】
また、本発明の他の見地として、マルウェア推定方法は、
情報処理装置を用いて、マルウェアと推定されるソフトウェアによって実行される入出力処理に関する履歴を表す第１履歴情報と、情報処理装置によって実行される入出力処理に関する履歴を表す第２履歴情報とが、類似または一致する度合を表す類似度を算出し、前記情報処理装置が、前記マルウェアに感染しているか否かを、前記類似度に基づき推定する。
【００２０】
さらに、同目的は、係るマルウェア推定プログラム、および、そのプログラムを記録するコンピュータ読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００２１】
本発明に係るマルウェア推定装置等によれば、マルウェアに感染しているか否かをより正確に推定することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１の実施形態に係るマルウェア推定装置が有する構成を示すブロック図である。
【図２】第１の実施形態に係るマルウェア推定装置における処理の流れを示すフローチャートである。
【図３】マルウェアと推定されるソフトウェアによって実行された入出力処理に関する履歴情報の一例を概念的に表す図である。
【図４】情報処理装置における入出力処理に関する履歴情報の一例を概念的に表す図である。
【図５】対応情報の一例を概念的に表す図である。
【図６】本発明の第２の実施形態に係るマルウェア推定装置が有する構成を示すブロック図である。
【図７】マルウェア推定装置における処理の流れを示すフローチャートである。
【図８】第２の実施形態に係るサンドボックスが有する構成を示すブロック図である。
【図９】第２の実施形態に係るサンドボックスにおける処理の流れを示すフローチャートである。
【図１０】第２履歴情報を作成する仮想部が有する構成を示すブロック図である。
【図１１】仮想部に含まれるクライアントが有する構成を示すブロック図である。
【図１２】仮想部における処理の流れを示すフローチャートである。
【図１３】本発明の第３の実施形態に係るマルウェア推定装置が有する構成を示すブロック図である。
【図１４】第３の実施形態に係るマルウェア推定装置における処理の流れを示すフローチャートである。
【図１５】本発明の各実施形態に係るマルウェア推定装置を実現可能な計算処理装置のハードウェア構成を、概略的に示すブロック図である。
【発明を実施するための形態】
【００２３】
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
【００２４】
＜第１の実施形態＞
本発明の第１の実施形態に係るマルウェア推定装置１０１が有する構成と、マルウェア推定装置１０１が行う処理とについて、図１と図２とを参照しながら詳細に説明する。図１は、本発明の第１の実施形態に係るマルウェア推定装置１０１が有する構成を示すブロック図である。図２は、第１の実施形態に係るマルウェア推定装置１０１における処理の流れを示すフローチャートである。
【００２５】
第１の実施形態に係るマルウェア推定装置１０１は、類似度算出部１０２と、推定部１０３とを有する。
【００２６】
マルウェア推定装置１０１は、通信ネットワークを介して情報処理装置５０１と通信することができる。
【００２７】
まず、類似度算出部１０２は、マルウェア、または、マルウェアと推定されるソフトウェアによって実行された入出力処理に関する履歴情報６０１（以降、第１履歴情報とも表す。たとえば、図３）を受信する。図３は、マルウェアと推定されるソフトウェアによって実行された入出力処理に関する履歴情報６０１の一例を概念的に表す図である。
【００２８】
尚、履歴情報６０１は、後述のように、サンドボックスが作成してもよい。
【００２９】
図３を参照すると、履歴情報６０１は、ソフトウェア名と、実行環境と、種類と、処理内容とを関連付ける。ソフトウェア名は、ソフトウェアを一意に識別する識別子を表す。実行環境は、履歴情報６０１を作成する場合に、該ソフトウェアを実行する環境であり、たとえば、サンドボックス、または、ソフトウェアを実行する情報処理装置の名称等の値を表す。種類は、該ソフトウェアが実行する入出力処理の種類を表す。処理内容は、該ソフトウェアが実行する入出力処理において、処理する対象であるファイル名等の詳細な情報を含む情報を表す。
【００３０】
たとえば、図３に例示する履歴情報６０１は、ｉｍｐｊ．ｅｘｅ、サンドボックス、”Ａｄｄ  Ｆｉｌｅ”、及び、処理内容（図３において、ＰＡＴＨ：に始まる欄）を関連付ける。これは、プログラムｉｍｐｊ．ｅｘｅは、サンドボックスにおいて実行されたことを表す。この場合に、プログラムｉｍｐｊ．ｅｘｅは、入出力処理において、”Ａｄｄ  Ｆｉｌｅ“（すなわち、ファイルの追加）という種類の命令を実行することを表す。プログラムｉｍｐｊ．ｅｘｅは、該ファイルを追加する入出力処理において、「ＰＡＴＨ：」以降に示されたファイルを、「ＶＳＤＴ＿ＡＳＣＩＩ」が表す型に従い追加することを表す。
【００３１】
尚、履歴情報６０１は、上述した項目以外の項目を含んでもよいし、実行環境、及び、ソフトウェア名を含んでいなくともよい。
【００３２】
次に、類似度算出部１０２は、情報処理装置５０１における入出力処理に関する履歴情報（たとえば、図４、説明の便宜上、「第２履歴情報」と表す）を受信する。図４は、情報処理装置５０１における入出力処理に関する履歴情報の一例を概念的に表す図である。
【００３３】
尚、第２履歴情報は、後述のように、仮想部が作成してもよい。
【００３４】
第２履歴情報は、情報処理装置５０１において実行された入出力処理に関して、日時、実行環境、種類、及び、処理対象を関連付けする。第２履歴情報は、日時、及び、実行環境に関する値を含んでいなくてもよいし、上述した項目以外の項目を含んでもよい。
【００３５】
図４に示す例において、第２履歴情報は、Ａと、クライアントと、作成と、“ｃ：￥ｄｅｍｏ＿ｉｍ￥新しいテキスト＿ドキュメント．ｔｘｔ”とを関連付ける。これは、情報処理装置５０１が日時Ａに、クライアントにおいて、「作成」という種類の入出力処理を実行することを表す。この場合に、情報処理装置５０１は、“ｃ：￥ｄｅｍｏ＿ｉｍ￥新しいテキスト＿ドキュメント．ｔｘｔ”というファイルを「作成」する入出力処理を実行する。
【００３６】
尚、“￥”は、フォルダ（ディレクトリ）の句切れを表し、“ｃ：”は、ドライブ名を表す。表記方法は、上述した方法に限定されない。すなわち、上述した例において、情報処理装置５０１は、“ｃ”というドライブ名を有する記憶装置において、“ｄｅｍｏ＿ｉｍ”というディレクトリに、“新しいテキスト＿ドキュメント．ｔｘｔ”というファイルを作成する入出力処理を実行する。
【００３７】
次に、類似度算出部１０２は、履歴情報６０１と、第２履歴情報との類似度を算出する（ステップＳ１０１）。類似度は、履歴情報６０１と、第２履歴情報とが類似する程度（度合、割合）を表し、履歴情報６０１と、第２履歴情報とが類似するほど大きな値となる。また、類似度は、履歴情報６０１と、第２履歴情報とが同じである場合に、最も大きな値となる。
【００３８】
履歴情報６０１に含まれる種類（以降、「第１種類」）と、第２履歴情報に含まれる種類（以降、「第２種類」）とが異なる仕様に従い記載される場合に、類似度算出部１０２は、図５に例示するような、対応情報に基づき、履歴情報を変換してもよい。図５は、対応情報の一例を概念的に表す図である。すなわち、第１種類、及び、第２種類は、入出力処理に関する種類を表す。
【００３９】
対応情報は、第１種類と、第２種類とを関連付ける。たとえば、対応情報は、「Ａｄｄ＿Ｆｉｌｅ」と、「作成」とを関連付ける。これは、「Ａｄｄ＿Ｆｉｌｅ」に関する入出力処理と、「作成」に関する入出力処理が同等、もしくは、同一の入出力処理であることを表す。
【００４０】
説明の便宜上、類似度算出部１０２は、対応情報に基づき、第１種類を第２種類に変換する場合の処理について説明する。尚、類似度算出部１０２は、対応情報に基づき、第２種類を第１種類に変換してもよい。
【００４１】
たとえば、類似度算出部１０２は、図３に例示する履歴情報６０１から、「Ａｄｄ＿Ｆｉｌｅ」を読み取り、対応情報から、「Ａｄｄ＿Ｆｉｌｅ」に関連付けされた「作成」を読み取る。したがって、類似度算出部１０２は、対応情報に基づき、「Ａｄｄ＿Ｆｉｌｅ」を「作成」に変換する。
【００４２】
次に、類似度算出部１０２は、図３に例示する履歴情報６０１において、「Ａｄｄ＿Ｆｉｌｅ」に関連付けされた「ＰＡＴＨ：、、、（略）」を読み取り、「ＰＡＴＨ：」以降に示された値（すなわち、％ＴＥＭＰ、、（略）、、ＩＳＰＡＣＫＤＥＬ．ＩＮＩ）を読み取る。すなわち、類似度算出部１０２は、「ＰＡＴＨ：」以降に示された値を、入出力処理における処理対象として読み取る。
【００４３】
尚、第１種類と、第２種類とがある仕様に従い記載される場合に、類似度算出部１０２は、必ずしも、対応情報に基づき、履歴情報を変換する必要はない。
【００４４】
次に、類似度算出部１０２は、第１種類、第２種類、履歴情報６０１に含まれる処理対象、及び、第２履歴情報に含まれる対象に基づき、類似度を算出する。
【００４５】
たとえば、類似度算出部１０２は、第１種類と第２種類とが一致する場合に、高い類似度を算出し、第１種類と第２種類とが一致しない場合に、低い類似度を算出する。
【００４６】
類似度算出部１０２が上述したように類似度を算出することにより、情報処理装置５０１がマルウェアに感染しているか否かをより正確に推定することができる。
【００４７】
この理由は、ソフトウェアがある処理手順に従い入出力処理を実行するので、その入出力処理の種類（すなわち、第１種類と第２種類）を比較することにより、第２履歴情報と、履歴情報６０１との類似度を算出することができるからである。第１種類と、第２種類とが一致する場合に、履歴情報６０１を作成するソフトウェアと、第２履歴情報を作成するソフトウェアとは、第１種類と第２種類とが一致しない場合に比べ、類似する可能性が高い。したがって、類似度算出部１０２は、第１種類と第２種類とが一致する場合に、度合（程度）が高いことを表す類似度を算出する。後述のように、推定部１０３は、該類似度に基づき、情報処理装置５０１がマルウェアに感染しているか否かを推定するので、マルウェアに感染しているか否かを、より正確に推定することができる。
【００４８】
あるいは、類似度算出部１０２は、履歴情報６０１に含まれる処理対象と、第２履歴情報に含まれる対象とが類似する程度に応じて、履歴情報６０１に含まれる入出力処理と、第２履歴情報に含まれる入出力処理との類似度を算出してもよい。たとえば、類似度は、処理対象に関する、ディレクトリ、及び、ファイル名が一致（または、類似）する個数に応じて算出してもよい。この場合に、類似度は、該処理対象、及び、該対象において、ファイル名と、ディレクトリとが一致する場合に、高くなる。
【００４９】
類似度算出部１０２が上述したように類似度を算出することにより、情報処理装置５０１がマルウェアに感染しているか否かを、より正確に推定することができる。
【００５０】
この理由は、マルウェアが、ある記憶領域（ディレクトリ）に含まれる処理対象に関して入出力処理を実行する可能性があるからである。
【００５１】
たとえば、マルウェアが、ある記憶領域に含まれる処理対象に関して入出力処理する場合には、情報処理装置５０１が入出力処理する処理対象の位置に基づき情報処理装置５０１がマルウェアに感染しているか否かを推定することができる。本実施形態に係るマルウェア推定装置１０１は、履歴情報６０１において、処理対象の位置を表す情報と、第２履歴情報において処理対象の位置を表す情報との類似度に基づき、入出力処理に関する該処理対象が、ある記憶領域に含まれる程度（度合）を推定する。したがって、本実施形態に係るマルウェア推定装置１０１によれば、マルウェアが、ある記憶領域に含まれる処理対象に関して入出力処理する場合に、情報処理装置５０１がマルウェアに感染しているか否かをより正確に推定することができる。
【００５２】
また、類似度算出部１０２は、第１種類と第２種類とが一致する場合に、上述した２つの入出力処理が類似する程度を算出し、算出した程度を類似度として算出してもよい。類似度算出部１０２は、第１種類と第２種類とが一致しない場合に、上記の程度よりも低い類似度を算出してもよい。
【００５３】
類似度算出部１０２が類似度を算出する手順は、入出力処理において実行されるプログラム（プロセス）の名称が一致するか否かに応じて類似度を算出する手順と、上述した手順とを組み合わせる手順であってもよい。この場合に、類似度は、実行されるプロセスの名称、及び、入出力処理の種類等に基づいて算出される。
【００５４】
次に、推定部１０３は、類似度算出部１０２が算出する類似度に基づき、情報処理装置５０１がマルウェアに感染しているか否かを推定する（ステップＳ１０２）。
【００５５】
たとえば、推定部１０３は、類似度が所定の値よりも大きな値である場合に、情報処理装置５０１がマルウェアに感染していると推定し、類似度が所定の値よりも小さな値である場合に、情報処理装置５０１がマルウェアに感染していないと推定する。または、推定部１０３は、類似度の大きさに応じて、情報処理装置５０１がマルウェアに感染している程度（度合）を算出してもよい。
【００５６】
次に、第１の実施形態に係るマルウェア推定装置１０１に関する効果について説明する。
【００５７】
マルウェア推定装置１０１によれば、情報処理装置５０１がマルウェアに感染しているか否かをより正確に推定することができる。
【００５８】
この理由は、マルウェア推定装置１０１が、入出力処理等に関連する詳細な情報に基づき、情報処理装置５０１がマルウェアに感染しているか否かを推定するからである。マルウェア推定装置１０１は、情報処理装置によって実行されるプログラム等の挙動に基づいて、情報処理装置５０１がマルウェアに感染しているか否かを推定する。したがって、マルウェア推定装置１０１によれば、情報処理装置５０１がマルウェアに感染しているか否かをより正確に推定することができる。
【００５９】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第２の実施形態について説明する。
【００６０】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００６１】
図６と図７とを参照しながら、第２の実施形態に係るマルウェア推定装置２０１が有する構成と、マルウェア推定装置２０１が行う処理とについて説明する。図６は、本発明の第２の実施形態に係るマルウェア推定装置２０１が有する構成を示すブロック図である。図７は、第２の実施形態に係るマルウェア推定装置２０１における処理の流れを示すフローチャートである。
【００６２】
第２の実施形態に係るマルウェア推定装置２０１は、サンドボックス２０２と、類似度算出部１０２と、推定部１０３とを有する。
【００６３】
まず、外部との情報の送受信を制限した環境であるサンドボックス２０２において、マルウェア、または、マルウェアと推定されるソフトウェア（以降、マルウェアを含めて、「被疑ソフトウェア」と表す）が実行される（ステップＳ２０１）。
【００６４】
ステップＳ２０１に示す処理について、図８及び図９を参照しながら詳細に説明する。図８は、第２の実施形態に係るサンドボックス２０２が有する構成を示すブロック図である。図９は、第２の実施形態に係るサンドボックス２０２における処理の流れを示すフローチャートである。
【００６５】
サンドボックス２０２は、ソフトウェア実行部２１１と、動作ログ取得部２１２とを有する。サンドボックス２０２は、さらに、通信部２１３と、ソフトウェア格納部２１４と、動作ログ格納部２１５とを有してもよい。
【００６６】
サンドボックス２０２は、スイッチ２１６を介して、外部と情報を送受信することができる。
【００６７】
まず、通信部２１３は、スイッチ２１６を介して、被疑ソフトウェアを受信し、受信した被疑ソフトウェアをソフトウェア格納部２１４に格納する（ステップＳ２１１）。ソフトウェア実行部２１１は、ソフトウェア格納部２１４が記憶する被疑ソフトウェアを読み取り、被疑ソフトウェアを識別可能な名称を、動作ログ格納部２１５に格納する（ステップＳ２１２）。次に、ソフトウェア実行部２１１は、読み取った被疑ソフトウェアを実行する（ステップＳ２１３）。
【００６８】
動作ログ取得部２１２は、ソフトウェア実行部２１１が該被疑ソフトウェアを実行する間に、該被疑ソフトウェアが実行する入出力処理に関する履歴を表す履歴情報を読み取る（ステップＳ２１４）。次に、動作ログ取得部２１２は、読み取った履歴情報を動作ログ格納部２１５に格納する（ステップＳ２１５）。
【００６９】
この場合に、動作ログ格納部２１５が記憶する履歴情報は、図３に例示する履歴情報６０１と同様の履歴情報である。該履歴情報は、たとえば、Ｗｉｎｄｏｗｓ（登録商標）におけるＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ＿Ｐｒｏｇｒａｍｍｉｎｇ＿Ｉｎｔｅｒｆａｃｅ）レベルにおけるログを表すということもできる。ＡＰＩレベルにおけるログとは、「フォルダを作成した」というログではなく、たとえば、「どのようなＷｉｎｄｏｗｓ（登録商標）コマンドが実行されたのか」を表すログである。ＡＰＩレベルにおけるログの一例を以下に表す。
【００７０】
ＣｒｅａｔｅＤｉｒｅｃｔｏｒｙＷ  ＡＲＧｓ：（％ＡＰＰＤＡＴＡ％￥ｒｓＣＭＨ，０）。
【００７１】
これは、ＣｒｅａｔｅＤｉｒｅｃｔｏｒｙＷなるコマンドが実行されることを表す。
【００７２】
次に、類似度算出部１０２は、履歴情報６０１（すなわち、動作ログ格納部２１５が記憶する履歴情報）と、第２履歴情報との類似度を算出する（ステップＳ１０１）。
【００７３】
尚、類似度算出部１０２は、情報処理装置５０１に関する第２履歴情報を読み取ることとしたが、マルウェア推定装置２０１において作成してもよい。図１０乃至図１２を参照しながら、マルウェア推定装置２０１が第２履歴情報を作成する処理の一例について説明する。図１０は、第２履歴情報を作成する仮想部２２３が有する構成を示すブロック図である。図１１は、仮想部２２３に含まれるクライアント２２１が有する構成を示すブロック図である。図１２は、仮想部２２３における処理の流れを示すフローチャートである。
【００７４】
図１０を参照すると、仮想部２２３は、クライアント２２１と、入出力取得部２２２とを有する。仮想部２２３は、通信部２２４と、入出力格納部２２５とを有してもよい。
【００７５】
仮想部２２３は、スイッチ２２６を介して外部と情報を送受信することができる。
【００７６】
また、図１１を参照すると、クライアント２２１は、動作監視部２３２を有する。クライアント２２１は、さらに、実行部２３１と、ファイル格納部２３３と、通信部２３４とを有してもよい。
【００７７】
クライアント２２１は、通信部２３４を介して、通信部２２４と情報を送受信することができる。また、動作監視部２３２は、入出力取得部２２２と情報を送受信することができる。
【００７８】
まず、通信部２２４は、スイッチ２２６を介して、被疑ソフトウェアを受信し、受信した被疑ソフトウェアを通信部２３４に送信する。次に、通信部２３４は、該被疑ソフトウェアを受信し、受信した被疑ソフトウェアをファイル格納部２３３に格納する（ステップＳ２２１）。
【００７９】
次に、実行部２３１は、ファイル格納部２３３から被疑ソフトウェアを読み取り、読み取った被疑ソフトウェアを実行する（ステップＳ２２２）。
【００８０】
動作監視部２３２は、実行部２３１が被疑ソフトウェアを実行する間に、該被疑ソフトウェアに関する入出力処理を監視する（ステップＳ２２３）。動作監視部２３２は、定期的に入出力処理を監視してもよい。次に、動作監視部２３２は、監視する入出力処理に関する履歴を、履歴情報として作成し、作成した履歴情報を入出力取得部２２２に送信する。
【００８１】
次に、入出力取得部２２２は、該履歴情報を受信し、受信した履歴情報を入出力格納部２２５に格納する（ステップＳ２２４）。この場合に、履歴情報は、たとえば、図４に例示する第２履歴情報である。
【００８２】
類似度算出部１０２は、たとえば、仮想部２２３が履歴情報を作成するのに応じて、動作ログ格納部２１５が記憶する履歴情報を読み取り、該２つの履歴情報に基づき類似度を算出する。あるいは、類似度算出部１０２は、たとえば、動作ログ格納部２１５（以降、「第１履歴情報記憶部」とも表す）が記憶する履歴情報を１つずつ読み取り、読み取った各履歴情報に関して、仮想部２２３が作成する履歴情報との類似度を算出してもよい。
【００８３】
上述したような処理によれば、情報処理装置５０１がマルウェアに感染しているか否かを、すぐに推定することができる。この理由は、仮想部２２３が履歴情報を作成するのに応じて、類似度算出部１０２が類似度を算出するからである。
【００８４】
さらに、類似度算出部１０２が、動作ログ格納部２１５における各履歴情報を読み取る場合には、情報処理装置５０１がマルウェアに感染しているか否かをより確実に推定することができる。この理由は、マルウェアと推定される被疑ソフトウェアが実行する入出力処理に関するすべての履歴情報に関して、類似度算出部１０２が類似度を算出するからである。
【００８５】
または、類似度算出部１０２は、サンドボックス２０２が履歴情報を作成するのに応じて類似度を算出してもよい。
【００８６】
尚、仮想部２２３が第２履歴情報を作成する処理と、サンドボックス２０２が履歴情報を作成する処理とは、並列、または、擬似並列であってもよい。並列または擬似並列に処理することにより、マルウェア推定装置２０１は、高速に、情報処理装置５０１がマルウェアに感染しているか否かを推定することができる。
【００８７】
次に、第２の実施形態に係るマルウェア推定装置２０１に関する効果について説明する。
【００８８】
本実施形態に係るマルウェア推定装置２０１によれば、情報処理装置５０１がマルウェアに感染しているか否かをより正確に推定することができることに加え、さらに、マルウェアを検知するまでに要する時間が短い。
【００８９】
この理由は、理由１及び理由２である。すなわち、
（理由１）第２の実施形態に係るマルウェア推定装置２０１が有する構成は、第１の実施形態に係るマルウェア推定装置１０１が有する構成を含むからである、
（理由２）サンドボックス２０２が履歴情報を作成する（すなわち、第１履歴情報が作成される）のに応じて、類似度算出部１０２が類似度を算出するからである。
【００９０】
パターンマッチング方式においては、マルウェアを検出可能なパターンファイルを作成するのに数日間を要することが多い。一方、本実施形態に係るマルウェア推定装置２０１は、マルウェアと推定される被疑ソフトウェアを、サンドボックス２０２にて実行することにより、第１履歴情報を作成する。さらに、類似度算出部１０２は、第１履歴情報が取得されるのに応じて、該第１履歴情報と、第２履歴情報との類似度を算出する。したがって、本実施形態に係るマルウェア推定装置２０１によれば、情報処理装置５０１がマルウェアに感染しているか否かを推定するまでの期間が短い。
【００９１】
＜第３の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第３の実施形態について説明する。
【００９２】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００９３】
図１３と図１４とを参照しながら、第３の実施形態に係るマルウェア推定装置１１１が有する構成と、マルウェア推定装置１１１が行う処理とについて説明する。図１３は、本発明の第３の実施形態に係るマルウェア推定装置１１１が有する構成を示すブロック図である。図１４は、第３の実施形態に係るマルウェア推定装置１１１における処理の流れを示すフローチャートである。
【００９４】
第３の実施形態に係るマルウェア推定装置１１１は、類似度算出部１０２と、推定部１１３とを有する。
【００９５】
マルウェア推定装置１１１は、通信ネットワークを介して情報処理装置５０１と通信することができる。
【００９６】
類似度算出部１０２は、履歴情報６０１と、第２履歴情報との類似度を算出する（ステップＳ１０１）。
【００９７】
次に、推定部１１３は、類似度算出部１０２が算出する類似度と、第２履歴情報（または、履歴情報６０１）における入出力処理の種類とに基づき、情報処理装置５０１がマルウェアに感染しているか否か推定する（ステップＳ１１２）。
【００９８】
説明の便宜上、入出力処理の種類は、たとえば、保存、実行、削除、変更、及び、作成であるとする。保存は、たとえば、あるファイルを上書き保存することを表す。実行は、あるファイルを実行することを表す。削除は、あるファイルを消去することを表す。変更は、あるファイルの内容を変更することを表す。作成は、あるファイルを新たに作成することを表す。
【００９９】
また、マルウェアは、入出力処理に関して、保存、実行、または、削除に比べ、作成をより頻繁に実行する傾向にあるとする。
【０１００】
たとえば、推定部１１３は、第２履歴情報に含まれる入出力処理の種類が「作成」であるか否かを推定し、種類が「作成」である場合には、上述したように類似度に基づき、情報処理装置５０１がマルウェアに感染しているか否か推定する（ステップＳ１１２）。この場合に、推定部１１３は、たとえば、第２履歴情報に含まれる入出力処理の種類が「作成」でない場合に、情報処理装置５０１がマルウェアに感染していないと推定する。
【０１０１】
または、推定部１１３は、たとえば、第２履歴情報に含まれる入出力処理の種類に応じて、所定の値を増減してもよい。たとえば、推定部１１３は、たとえば、第２履歴情報に含まれる入出力の種類が「作成」でない場合に、所定の値を大きくしてもよい。
【０１０２】
本実施形態に係るマルウェア推定装置１１１によれば、情報処理装置５０１がマルウェアに感染しているか否かを正確に推定することができる。
【０１０３】
この理由は、マルウェアが入出力処理に関して実行する処理の種類が、ある特定の種類に偏る傾向があるからである。
【０１０４】
この場合に、該傾向に従えば、たとえば、情報処理装置５０１においてファイルが作成される場合に、情報処理装置５０１がマルウェアに感染している可能性が高い。本実施形態に係るマルウェア推定装置１１１は、入出力処理の種類に基づき、情報処理装置５０１がマルウェアに感染しているか否かを推定するので、情報処理装置５０１がマルウェアに感染しているか否かを、より正確に推定することができる。
【０１０５】
また、推定部１１３は、入出力処理の種類（内容）が、保存、実行、削除、作成の順に、情報処理装置５０１がマルウェアに感染している程度が高いと推定してもよい。
【０１０６】
たとえば、推定部１１３は、保存、実行、削除、作成の順に、所定の値を減らしてもよい。この場合、推定部１１３は、類似度に基づいて、情報処理装置５０１がマルウェアに感染しているか否かを推定する場合に、入出力処理の種類が作成である場合に、マルウェアに感染していると、より確実に推定しやすい。逆に、推定部１１３は、入出力処理の種類が保存である場合に、情報処理装置５０１がマルウェアに感染していないと、より確実に推定しやすい。
【０１０７】
または、推定部１１３は、入出力処理の種類と、該入出力処理に関するスコアとが関連付けされたスコア情報に基づき、情報処理装置５０１がマルウェアに感染しているか否かを推定してもよい。
【０１０８】
たとえば、スコア情報は、変更とスコア１とを関連付け、実行とスコア１とを関連付け、作成とスコア２とを関連付け、保存とスコア３とを関連付け、削除とスコア４とを関連付ける。
【０１０９】
推定部１１３は、たとえば、入出力処理の種類と関連付けされたスコアを、スコア情報から読み取り、読み取ったスコアと、類似度とに基づき算出される値が閾値以上であるか否かを推定する。推定部１１３は、推定した結果に応じて、情報処理装置５０１がマルウェアに感染しているか否かを推定する。たとえば、推定部１１３は、スコアと類似度との和を算出し、算出した値に応じて、情報処理装置５０１がマルウェアに感染しているか否かを推定してもよい。
【０１１０】
本実施形態に係るマルウェア推定装置１１１によれば、情報処理装置５０１がマルウェアに感染しているか否かを正確に推定することができる。
【０１１１】
この理由は、マルウェアが実行する入出力処理に関して、保存、実行、削除、作成の順に頻度が高くなる傾向を有するからである。
【０１１２】
マルウェア推定装置１１１は、情報処理装置５０１がマルウェアに感染している程度を、上述した傾向に従い、入出力処理の種類に基づき推定する。したがって、本実施形態に係るマルウェア推定装置１１１によれば、該傾向に従い該程度を推定するので、より正確に情報処理装置５０１がマルウェアに感染しているか否かを推定することができる。
【０１１３】
また、本実施形態に係るマルウェア推定装置１１１によれば、情報処理装置５０１がマルウェアに感染しているか否かを正確に推定することができる。これは、第３の実施形態に係るマルウェア推定装置１１１が有する構成は、第１の実施形態に係るマルウェア推定装置１０１が有する構成を含むからである。
【０１１４】
（ハードウェア構成例）
上述した本発明の各実施形態におけるマルウェア推定装置を、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係るマルウェア推定装置は、物理的または機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係るマルウェア推定装置は、専用の装置として実現してもよい。
【０１１５】
図１５は、第１の実施形態乃至第３の実施形態に係るマルウェア推定装置を実現可能な計算処理装置のハードウェア構成を概略的に示す図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、及び、不揮発性記録媒体２４を有する。計算処理装置２０は、さらに、入力装置２５、出力装置２６、及び、通信インターフェース（以降、「通信ＩＦ」と表す。）２７を有する。計算処理装置２０は、通信ＩＦ２７を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
【０１１６】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、たとえば、コンパクトディスク（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ＿Ｖｅｒｓａｔｉｌｅ＿Ｄｉｓｃ）、ブルーレイディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ。登録商標）、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）、ソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等である。不揮発性記録媒体２４は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ＩＦ２７を介して、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
【０１１７】
すなわち、ＣＰＵ２１は、ディスク２３が記憶するソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み取る。表示が必要な場合には、ＣＰＵ２１は、出力装置２６に出力結果を表示する。外部からプログラムを入力する場合、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、図６、図８、図１０、図１１、または、図１３に示す各部が表す機能（処理）に対応するところのメモリ２２にあるマルウェア推定プログラム（図２、図７、図９、図１２、または、図１４）を解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次行う。
【０１１８】
すなわち、このような場合、本発明は、係るマルウェア推定プログラムによっても成し得ると捉えることができる。更に、係るマルウェア推定プログラムが記録されたコンピュータ読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
【０１１９】
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【０１２０】
１０１    マルウェア推定装置
１０２    類似度算出部
１０３    推定部
５０１    情報処理装置
６０１    履歴情報
２０１    マルウェア推定装置
２０２    サンドボックス
２１１    ソフトウェア実行部
２１２    動作ログ取得部
２１３    通信部
２１４    ソフトウェア格納部
２１５    動作ログ格納部
２１６    スイッチ
２２１    クライアント
２２２    入出力取得部
２２３    仮想部
２２４    通信部
２２５    入出力格納部
２２６    スイッチ
２３１    実行部
２３２    動作監視部
２３３    ファイル格納部
２３４    通信部
１１１    マルウェア推定装置
１１３    推定部
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
２７    通信ＩＦ
【図１】
0006459289.tif 000002
【図２】
0006459289.tif 000003
【図３】
0006459289.tif 000004
【図４】
0006459289.tif 000005
【図５】
0006459289.tif 000006
【図６】
0006459289.tif 000007
【図７】
0006459289.tif 000008
【図８】
0006459289.tif 000009
【図９】
0006459289.tif 000010
【図１０】
0006459289.tif 000011
【図１１】
0006459289.tif 000012
【図１２】
0006459289.tif 000013
【図１３】
0006459289.tif 000014
【図１４】
0006459289.tif 000015
【図１５】
0006459289.tif 000016