(57)【要約】本発明にかかる情報処理装置（１０）は、端末から出力されたイベント情報を用いてイベント索引を生成するイベント索引生成部（１１）と、マルウェアの動作中に発生したイベントに基づき生成された動的解析結果とイベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成する検索条件生成部（１２）と、を備える。検索条件生成部（１２）は、動的解析結果に含まれるイベントの、端末における出現傾向を反映させて検索条件を生成する。
2020174565.tif 000002
【特許請求の範囲】
【請求項１】
端末から出力されたイベント情報を用いてイベント索引を生成するイベント索引生成部と、
マルウェアの動作中に発生したイベントに基づき生成された動的解析結果と前記イベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成する検索条件生成部と、を備え、
前記検索条件生成部は、前記動的解析結果に含まれるイベントの、前記端末における出現傾向を反映させて前記検索条件を生成する、
情報処理装置。
【請求項２】
前記検索条件生成部は、前記動的解析結果に含まれるイベントの、前記端末におけるプロセス挙動を反映させて前記検索条件を生成する、請求項１に記載の情報処理装置。
【請求項３】
前記検索条件生成部は、
前記イベント索引に基づいて、対象となるイベントが希少イベントであるか否かを判定し、
前記対象となるイベントが希少イベントである場合、前記希少イベントに対応する検索範囲よりも広くなるように前記検索条件を生成する、
請求項１または２に記載の情報処理装置。
【請求項４】
前記検索条件生成部は、前記対象となるイベントが希少イベントである場合、前記対象となるイベントが希少イベントであることを示す希少フラグを前記検索条件に付加する、請求項３に記載の情報処理装置。
【請求項５】
前記対象となるイベントが希少イベントである場合、前記希少イベントの実行ファイルのファイルパスよりも上位のファイルパスとすることで前記検索範囲を広くする、請求項３または４に記載の情報処理装置。
【請求項６】
前記検索条件生成部は、
前記イベント索引に基づいて、対象となるイベントが頻出イベントであるか否かを判定し、
前記対象となるイベントが頻出イベントである場合は、前記頻出イベントに対応する検索条件を除外して、前記検索条件を生成する、
請求項１〜５のいずれか一項に記載の情報処理装置。
【請求項７】
前記検索条件生成部で生成された前記検索条件に合致する端末を検索する検索部を更に備える、請求項１〜６のいずれか一項に記載の情報処理装置。
【請求項８】
前記検索条件には、前記イベントが希少イベントであるか否かを示す希少フラグが含まれており、
前記検索部は、前記希少フラグが真である場合、前記検索条件よりも抽象度が低いイベント索引の中から、出現端末数が所定の閾値よりも少ないイベント索引に含まれる端末を抽出する、
請求項７に記載の情報処理装置。
【請求項９】
前記検索部は、前記希少フラグが真である場合、
前記検索条件よりも階層が深く、且つ前記出現端末数が所定の閾値以上であるフォルダを除外対象として決定し、
前記イベント索引に含まれるフォルダから前記除外対象のフォルダを除外する、
請求項８に記載の情報処理装置。
【請求項１０】
前記検索条件は、プロセス生成、スレッド生成、ファイルアクセス、レジストリアクセス、動的ライブラリ読込、及び通信のうちの少なくとも一つ以上に関するイベント条件と、出現するプロセスに関するプロセス条件と、のうちの少なくとも一方を用いて構成されている、請求項１〜９のいずれか一項に記載の情報処理装置。
【請求項１１】
端末から出力されたイベント情報を用いてイベント索引を生成し、
マルウェアの動作中に発生したイベントに基づき生成された動的解析結果と前記イベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成し、
前記検索条件を生成する際に、前記動的解析結果に含まれるイベントの、前記端末における出現傾向を反映させて前記検索条件を生成する、
情報処理方法。
【請求項１２】
端末から出力されたイベント情報を用いてイベント索引を生成し、
マルウェアの動作中に発生したイベントに基づき生成された動的解析結果と前記イベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成し、
前記検索条件を生成する際に、前記動的解析結果に含まれるイベントの、前記端末における出現傾向を反映させて前記検索条件を生成する、処理をコンピュータに実行させるためのプログラムが格納された非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理方法、及びコンピュータ可読媒体に関し、特にマルウェア等の脅威を検出するための検索条件を生成する情報処理装置、情報処理方法、及びコンピュータ可読媒体に関する。
【背景技術】
【０００２】
近年、組織内に既に侵入しているマルウェア等の脅威を発見する脅威ハンティングの重要性が高まってきている。特に、既存のセキュリティ装置が見逃した新種や亜種のマルウェアを検出する技術が重要となってきている。【０００３】
特許文献１には、マルウェアを高い精度で検出することが可能なマルウェア対策装置に関する技術が開示されている。特許文献２には、悪性通信ログと正常通信ログとを取得してブラックリストを作成するブラックリスト生成装置に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１６／１２１３４８号
【特許文献２】国際公開第２０１６／１３２９９２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
脅威ハンティングの手法として、マルウェアの動的解析結果からマルウェアの痕跡（ＩｏＣ（Indicators of Compromise））を抽出し、この抽出した痕跡情報を用いてマルウェアを検出する技術がある。このような技術では、マルウェアの動的解析結果を用いて検索条件を生成する。そして、この検索条件を用いてマルウェアに起因する異常な動作を検出している。マルウェアの痕跡情報としては、マルウェアの通信先ドメインやハッシュ値、更にはマルウェアによって作成・変更されたファイルパスやレジストリキーなどがある。【０００６】
しかしながら、通信先ドメインやハッシュ値などは変更されやすいため、通信先ドメインやハッシュ値など用いて検索条件を生成した場合は、マルウェアを精度よく検出することができない場合がある。また、ファイルパスやレジストリキーなどに関しても、これらを完全一致とした検索条件を用いた場合は検出対象が過度に限定されてしまうため、マルウェアを精度よく検出することができないという問題がある。【０００７】
上記課題に鑑み本発明の目的は、マルウェアを精度よく検出するための検索条件を生成することが可能な情報処理装置、情報処理方法、及びコンピュータ可読媒体を提供することである。
【課題を解決するための手段】
【０００８】
本発明の一態様にかかる情報処理装置は、端末から出力されたイベント情報を用いてイベント索引を生成するイベント索引生成部と、マルウェアの動作中に発生したイベントに基づき生成された動的解析結果と前記イベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成する検索条件生成部と、を備える。前記検索条件生成部は、前記動的解析結果に含まれるイベントの、前記端末における出現傾向を反映させて前記検索条件を生成する。【０００９】
本発明の一態様にかかる情報処理方法は、端末から出力されたイベント情報を用いてイベント索引を生成し、マルウェアの動作中に発生したイベントに基づき生成された動的解析結果と前記イベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成し、前記検索条件を生成する際に、前記動的解析結果に含まれるイベントの、前記端末における出現傾向を反映させて前記検索条件を生成する。【００１０】
本発明の一態様にかかるコンピュータ可読媒体は、端末から出力されたイベント情報を用いてイベント索引を生成し、マルウェアの動作中に発生したイベントに基づき生成された動的解析結果と前記イベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成し、前記検索条件を生成する際に、前記動的解析結果に含まれるイベントの、前記端末における出現傾向を反映させて前記検索条件を生成する、処理をコンピュータに実行させるためのプログラムが格納された非一時的なコンピュータ可読媒体である。
【発明の効果】
【００１１】
本発明により、マルウェアを精度よく検出するための検索条件を生成することが可能な情報処理装置、情報処理方法、及びコンピュータ可読媒体を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態にかかる情報処理装置を説明するためのブロック図である。
【図２】実施の形態にかかる情報処理装置の詳細な構成を説明するためのブロック図である。
【図３】端末から出力されたイベント情報の一例を示す表である。
【図４】端末から出力されたイベント情報を用いて生成されたイベント索引（プロセス索引）の一例を示す表である。
【図５】端末から出力されたイベント情報を用いて生成されたイベント索引（ファイル索引）の一例を示す表である。
【図６】端末から出力されたイベント情報を用いて生成されたイベント索引（ファイル索引）の一例を示す表である。
【図７】端末から出力されたイベント情報を用いて生成されたイベント索引（プロセスイベント索引）の一例を示す表である。
【図８】端末から出力されたイベント情報を用いて生成されたイベント索引（ファイルイベント索引）の一例を示す表である。
【図９】動的解析結果の一例を示す表である。
【図１０】検索条件（プロセス条件）の一例を示す表である。
【図１１】検索条件（イベント条件）の一例を示す表である。
【図１２】検索条件に合致する端末を検索する際の動作を説明するためのフローチャートである。
【図１３】図１２に示すフローチャートのステップＳ１５の動作（イベント検索処理）を説明するためのフローチャートである。
【図１４】検索条件（プロセス条件）の一例を示す表である。
【図１５】検索条件（イベント条件）の一例を示す表である。
【図１６】イベント索引（プロセス索引）の一例を示す表である。
【図１７】イベント索引（ファイル索引）の一例を示す表である。
【図１８】イベント索引（ファイルイベント索引）の一例を示す表である。
【図１９】本発明にかかる情報処理用プログラムを実行するためのコンピュータを示すブロック図である。
【発明を実施するための形態】
【００１３】
＜本発明の骨子＞
以下、本発明の実施の形態について説明する。
図１は、本実施の形態にかかる情報処理装置を説明するためのブロック図であり、本発明の骨子を説明するための図である。図１に示すように、本実施の形態にかかる情報処理装置１０は、イベント索引生成部１１と検索条件生成部１２とを備える。
【００１４】
イベント索引生成部１１は、端末から出力されたイベント情報を用いてイベント索引を生成する。検索条件生成部１２は、マルウェアの動作中に発生したイベントに基づき生成された動的解析結果と、イベント索引生成部１１で生成されたイベント索引と、を用いて、特定の挙動を示す端末を抽出するための検索条件を生成する。このとき検索条件生成部１２は、動的解析結果に含まれるイベントの、端末における出現傾向を反映させて検索条件を生成する。
【００１５】
上述のように、本実施の形態にかかる情報処理装置１０は、動的解析結果に含まれるイベントの、端末における出現傾向を反映させて検索条件を生成している。したがって、端末において動作しているマルウェアを精度よく検出するための検索条件を生成することができる。以下、本発明について詳細に説明する。
【００１６】
＜情報処理装置の構成＞
図２は、本実施の形態にかかる情報処理装置の詳細な構成を説明するためのブロック図である。図２に示すように、本実施の形態にかかる情報処理装置１０は、イベント索引生成部１１、検索条件生成部１２、検索部１３、イベント情報格納部１５、及びイベント索引格納部１６を備える。また、情報処理装置１０には動的解析装置２１、及び端末２２が接続されている。
【００１７】
動的解析装置２１は、マルウェア検体を用いてマルウェアの動作を解析する装置である。具体的には、動的解析装置２１は、マルウェアの動作中に発生したイベントに基づいて動的解析結果を生成する。動的解析装置２１で生成された動的解析結果は、検索条件生成部１２に供給される。
【００１８】
端末２２は、脅威ハンティングの対象（つまり、マルウェアの検査対象）となる端末である。端末２２は複数であってもよい。例えば、端末２２は、ネットワークに接続された複数のコンピュータである。
【００１９】
イベント索引生成部１１は、端末２２から出力されたイベント情報を用いてイベント索引を生成する。具体的には、端末２２から出力されたイベント情報はイベント情報格納部１５に格納される。イベント索引生成部１１は、イベント情報格納部１５に格納されているイベント情報を用いてイベント索引を生成する。イベント索引生成部１１で生成されたイベント索引は、イベント索引格納部１６に格納される。
【００２０】
例えば、イベント情報格納部１５には端末２２から随時イベント情報が供給されて格納される。換言すると、イベント情報格納部１５に格納されているイベント情報は随時更新される。また、イベント索引生成部１１は、イベント情報格納部１５に格納されているイベント情報を用いてイベント索引を随時更新する。ここで、イベント索引は、端末２２で出現したイベントを用いて生成されており、出現したイベント（オブジェクト）と端末２２とが対応付けられた索引である。本実施の形態では、イベント索引を生成する際に、各々のイベント情報を抽象化している。そして、抽象化のレベル毎に出現端末２２を記録している。イベント索引の具体例については後述する。
【００２１】
検索条件生成部１２は、動的解析装置２１で生成されたマルウェアの動的解析結果と、イベント索引生成部１１で生成されたイベント索引と、を用いて、特定の挙動を示す端末を抽出するための検索条件を生成する。このとき、検索条件生成部１２は、動的解析結果に含まれるイベントの、端末２２における出現傾向を反映させて検索条件を生成する。
【００２２】
例えば、検索条件は、プロセス生成、スレッド生成、ファイルアクセス、レジストリアクセス、動的ライブラリ読込、及び通信のうちの少なくとも一つ以上に関するイベント条件と、出現するプロセスに関するプロセス条件と、のうちの少なくとも一方を用いて構成されている。
【００２３】
検索部１３は、検索条件生成部１２で生成された検索条件に合致する端末を検索する。
【００２４】
＜情報処理装置の動作＞
次に、本実施の形態にかかる情報処理装置の動作について具体例を用いて説明する。
【００２５】
（端末のイベント情報）
図３は、端末２２から出力されたイベント情報の一例を示す表である。図３に示すように、イベント情報には、時刻、端末、ＰＩＤ（プロセスＩＤ）、プロセス、種別、アクセス、及び操作対象が含まれている。例えば、１行目のイベント情報は、時刻Ｔ０に端末Ｃ５で発生したPID=500のプロセスに関するイベントであり、「/system/」に格納されている実行ファイル「shell.exe」の挙動であることを示している。このイベントの種別は「process」、アクセスは「create」、操作対象は「/system/browser.exe (pid=100)」であることを示している。つまり、１行目のイベント情報は、PID=500が示すプロセスが、PID=100の子プロセスを作成(実行)し、その子プロセスの実行ファイル（操作対象）が、「/system/」に格納された「browser.exe」であることを意味している。他のイベント情報についても同様である。
また、例えば、４行目のイベント情報は、時刻Ｔ３に端末Ｃ５で発生したPID=200のプロセスに関するイベントであり、「/tmp/」に格納されている実行ファイル「suspicious.exe」の挙動であることを示している。このイベントの種別は「file」、アクセスは「write」、操作対象は「/appdata/V3/unknown.exe」であることを示している。
【００２６】
（イベント索引の生成）
イベント索引生成部１１は、端末２２から出力されたイベント情報（図３参照）を用いてイベント索引を生成する。図４〜図８は、端末２２から出力されたイベント情報を用いて生成されたイベント索引の一例を示す表である。図４はプロセス索引の一例、図５、図６はファイル索引の一例、図７はプロセスイベント索引の一例、図８はファイルイベント索引の一例を示している。
【００２７】
図４に示すように、イベント索引（プロセス索引）には、フォルダ、プログラム名、クライアント（端末）が含まれている。また、イベント索引（プロセス索引）には、イベント情報を抽象化した索引が含まれており、抽象化のレベル毎にクライアント（端末）を記録している。なお、図４ではイベント索引の抽象化を矢印で示している。他の図においても同様である。
【００２８】
例えば、図４の表の６行目に着目すると、フォルダ「/app/V1/」のプログラム「app1.exe」が抽象化されて、５行目のイベント索引（フォルダ「/app/V1/」、プログラム「any」）が生成されている。ここで、プログラム「any」は任意のプログラムであることを示している。また、８行目のフォルダ「/app/V2/」のプログラム「app2.exe」が抽象化されて、７行目のイベント索引（フォルダ「/app/V2/」、プログラム「any」）が生成されている。同様に、９行目のフォルダ「/app/V2/」のプログラム「app2_new.exe」が抽象化されて、７行目のイベント索引（フォルダ「/app/V2/」、プログラム「any」）が生成されている。抽象化された７行目のイベント索引（フォルダ「/app/V2/」、プログラム「any」）には、クライアント（端末）として「C1、C2、C3、C4、C5」が含まれており、これは８行目のクライアント「C1、C2」と９行目のクライアント「C3、C4、C5」とを合わせたものに対応している。
【００２９】
また、図４の表の４行目のイベント索引（フォルダ「/app/」、プログラム「any」、クライアント「C1、C2、C3、C4、C5」）は、５行目から１１行目のイベント索引を抽象化したイベント索引である。つまり、フォルダ「/app/V1/」、「/app/V2/」、「/app/V3/」の階層を１つ上げて「/app/」とし、プログラムも「any」としている。このように、本発明において抽象化とはイベント索引の範囲を広げることを意味している。
【００３０】
次に、図５、図６に示すイベント索引（ファイル索引）の一例について説明する。図５に示すように、イベント索引（ファイル索引）には、フォルダとクライアント（端末）が含まれている。また、イベント索引（ファイル索引）には、イベント情報を抽象化した索引が含まれており、抽象化のレベル毎にクライアント（端末）を記録している。なお、抽象化については図４で説明した場合と同様である。図５においてもイベント索引の抽象化を矢印で示している。
【００３１】
また、イベント索引（ファイル索引）の場合は、フォルダ直下にあるファイルへのアクセスか否かを判別可能な表（図６）を作成してもよい。例えば、図６に示す表において、フォルダ「/appdata/」の直下の項目が「False」である場合は、フォルダ直下にあるファイルへのアクセスではないことを示している。この場合のクライアントは「C1、C2、・・・」となる。また、フォルダ「/appdata/」の直下の項目が「True」である場合は、フォルダ直下にあるファイルへのアクセスであることを示している。この場合のクライアントは「C2」となる。つまり、この場合は、フォルダ「/appdata/」の直下にあるファイルにアクセスしているクライアントが「C2」であることを示している。
【００３２】
次に、図７に示すイベント索引（プロセスイベント索引）の一例について説明する。図７に示すように、イベント索引（プロセスイベント索引）には、プロセス、子プロセス、及びクライアント（端末）が含まれている。プロセスと子プロセスにはそれぞれ、フォルダとプログラム名が含まれている。
【００３３】
例えば、図７の表の１行目は、フォルダ「/system/」のプログラム「boot.exe」の子プロセスが、フォルダ「/system/」のプログラム「shell.exe」であることを示している。これは、プログラム「boot.exe」が子プロセスのプログラム「shell.exe」を実行していることを示している。同様に、図７の表の２行目は、フォルダ「/system/」のプログラム「shell.exe」の子プロセスが、フォルダ「/system/」のプログラム「browser.exe」であることを示している。これは、プログラム「shell.exe」が子プロセスのプログラム「browser.exe」を実行していることを示している。
【００３４】
次に、図８に示すイベント索引（ファイルイベント索引）の一例について説明する。図８に示すように、イベント索引（ファイルイベント索引）には、プロセス、アクセス、ファイルパス、及びクライアント（端末）が含まれている。プロセスには、フォルダとプログラム名が含まれている。また、ファイルパスには、フォルダと拡張子が含まれている。
【００３５】
例えば、図８の表の１行目は、フォルダ「/system/」のプログラム「browser.exe」のアクセスが「create」であり、ファイルパスのフォルダが「/tmp/」、ファイルの拡張子が「exe」、クライアントが「C5」であることを示している。他の行についても同様である。図８に示すイベント索引（ファイルイベント索引）では、ファイルパスのフォルダに格納されているファイルの名前を拡張子レベルまで抽象化している。
【００３６】
イベント索引生成部１１は、端末２２から出力されたイベント情報を用いることで、上述のようなイベント索引を生成することができる。なお、図４〜図８に示したイベント索引は一例であり、イベント索引生成部１１はこれら以外のイベント索引を生成してもよい。
【００３７】
（動的解析結果）
図９は、動的解析装置２１において生成された動的解析結果の一例を示す表であり、マルウェアの動作中に発生したイベントに基づき生成された動的解析結果の一例を示す表である。図９に示すように、動的解析結果には時刻、ＰＩＤ（プロセスＩＤ）、プロセス、種別、アクセス、及び操作対象が含まれている。例えば、１行目のプロセスは、時刻T0に発生したPID=P1のプロセスであり、「/system/」に格納されている実行ファイル「browser.exe」の挙動であることを示している。このプロセスの種別は「process」、アクセスは「create」、操作対象は「/tmp/sample.exe (pid=2)」であることを示している。つまり、１行目の動的解析結果は、PID=P1が示すプロセスが、PID=P2の子プロセスを作成(実行)し、その子プロセスの実行ファイル（操作対象）が、「/tmp/」に格納された「sample.exe」であることを示している。
【００３８】
（検索条件の生成）
次に、検索条件の生成について説明する。検索条件生成部１２は、上述の動的解析結果とイベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成する。このとき、検索条件生成部１２は、動的解析結果に含まれるイベントの、端末２２における出現傾向を反映させて検索条件を生成する。
【００３９】
また、検索条件生成部１２は、動的解析結果に含まれるイベントの、端末２２におけるプロセス挙動を反映させて検索条件を生成してもよい。
【００４０】
また、検索条件生成部１２は、イベント索引に基づいて、対象となるイベントが希少イベントであるか否かを判定してもよい。そして、対象となるイベントが希少イベントである場合、希少イベントに対応する検索範囲よりも広くなるように（つまり、抽象化して）検索条件を生成してもよい。また、検索条件生成部１２は、対象となるイベントが希少イベントである場合、対象となるイベントが希少イベントであることを示す希少フラグを検索条件に付加してもよい。ここで希少イベントとは、出現回数の少ないイベントであり、例えば、対象となるイベントが出現する端末の数が少ないイベントのことである。希少イベントを定義するためのパラメータ（例えば、端末数）はユーザが任意に決定することができる。
【００４１】
検索条件生成部１２は、対象となるイベントが希少イベントである場合、希少イベントの実行ファイルのファイルパスよりも上位のファイルパスとすることで検索範囲を広くしてもよい（つまり、抽象化してもよい）。
【００４２】
また、検索条件生成部１２は、イベント索引に基づいて、対象となるイベントが頻出イベントであるか否かを判定し、対象となるイベントが頻出イベントである場合は、頻出イベントに対応する検索条件を除外して、検索条件を生成してもよい。ここで頻出イベントとは、出現回数の多いイベントであり、例えば、対象となるイベントが出現する端末の数が多いイベントのことである。頻出イベントを定義するためのパラメータ（例えば、端末数）はユーザが任意に決定することができる。
【００４３】
以下、検索条件の具体例について説明する。図１０は、検索条件（プロセス条件）の一例を示す表である。図１１は、検索条件（イベント条件）の一例を示す表である。
【００４４】
なお、本明細書では{a:1, b:2}の形式でデータを表現しており、この記載は、フィールドaとbの値がそれぞれ1と2であることを示している。また、[a, b, c]の形式でリスト構造を表現しており、この場合、a, b, cの３つの要素を含むリストを表している。また、<a, b>で組(ペア)を表現しており、この場合、aとbとからなる組を表現している。
【００４５】
図１０に示す検索条件（プロセス条件）は、出現プロセスからプロセス条件を抽出した一例を示しており、プロセス条件識別子と実行ファイルパスとが含まれている。例えば、１行目の検索条件のプロセス条件識別子は「Q1」、実行ファイルパスは{dir:/system/, name:browser.exe}である。この検索条件は、図９の動的解析結果のPID=P1と図８のイベント索引の１行目〜４行目とに基づいて生成されている。
【００４６】
図１０の２行目の検索条件のプロセス条件識別子は「Q2」、実行ファイルパスは{dir:/tmp/}である。この検索条件は、図９の動的解析結果のPID=P2に基づいて生成されている。
【００４７】
図１０の３行目の検索条件のプロセス条件識別子は「Q3」、実行ファイルパスは{dir:/appdata/, minor:true}である。なお、「minor:true」は上述の「希少フラグ」に対応している。
【００４８】
図１１に示す検索条件（イベント条件）は、その他のイベント（つまり、出現プロセス以外のイベント）からイベント条件を抽出した一例を示しており、プロセス条件識別子、イベント、アクセス、操作対象が含まれている。なお、図１１の検索条件（イベント条件）におけるプロセス条件識別子は、図１０に示したプロセス条件のエントリを識別するためのものである。
【００４９】
例えば、１行目の検索条件のプロセス条件識別子は「Q1」、イベントは「process」、アクセスは「create」、操作対象は「Q2」である。これは、「Q1」のプロセスが「Q2」のプロセスを生成したことを意味している。２行目の検索条件のプロセスは「Q1」、イベントは「file」、アクセスは「create」、操作対象は{dir:/tmp/, ext:dat}である。この検索条件は、頻出イベントに該当するため検索条件から除外している。つまり、対象イベントが多くの端末で出現する場合、対象イベントに対するイベント条件は抽出しないようにしている。具体的には、図８のイベント索引の２行目〜３行目において、プロセス「/system/browser.exe」による{dir:/tmp/, ext:dat}に対応するファイル作成イベントが多くのクライアントで出現しているので、このイベントについては検索条件から除外している。
【００５０】
また、図１１の３行目の検索条件のプロセスは「Q2」、イベントは「file」、アクセスは「create」、操作対象は{dir:/appdata/, ext:exe, minor:true}である。なお、「minor:true」は上述の「希少フラグ」に対応している。また、６行目の検索条件のプロセスは「Q3」、イベントは「file」、アクセスは「delete」、操作対象は{dir:/tmp/, ext:exe}である。
【００５１】
検索条件生成部１２は、動的解析結果とイベント索引とを用いることで、上述のような検索条件を生成することができる。なお、図１０、図１１に示した検索条件は一例であり、検索条件生成部１２はこれら以外の検索条件を生成してもよい。
【００５２】
（検索部の動作）
次に、図２に示す検索部１３の動作について説明する。検索部１３は、検索条件生成部１２で生成された検索条件に合致する端末を検索する。つまり、検索部１３は、特定の挙動を示す端末（つまりマルウェアが動作している可能性のある端末）を抽出する。
【００５３】
また、検索部１３が検索に用いる検索条件には、希少イベントであるか否かを示す希少フラグが含まれている。検索部１３は、希少フラグが真である場合、検索条件よりも抽象度が低いイベント索引の中から、出現端末数が所定の閾値よりも少ないイベント索引に含まれる端末を抽出する。
【００５４】
また、検索部１３は、希少フラグが真である場合、検索条件よりも階層が深く、且つ出現端末数が所定の閾値以上であるフォルダを除外対象として決定し、イベント索引に含まれるフォルダから除外対象のフォルダを除外するようにしてもよい。
【００５５】
例えば、図５に示したイベント索引（ファイル索引）において、「dir:/appdata/, minor:true」を条件とする場合、フォルダが「/appdata/」で始まり、階層が１段階深く(/appdata/V1/、/appdata/V2/、・・・)、且つクライアントの数が閾値以上であるエントリを除外リストとしてもよい。図５に示すイベント索引（ファイル索引）では、閾値が５のとき、クライアントの数が５以上である「/appdata/V2/」を除外対象としている。以降では、希少フラグに関するクライアント数の閾値を５として説明を進める。
【００５６】
以下、検索部１３の動作について、具体例を挙げて説明する。図１２、図１３は、検索部１３の動作を説明するためのフローチャートである。図１２は、検索条件に合致する端末を検索する際の動作を説明するためのフローチャートである。また、図１３は、図１２に示すフローチャートのステップＳ１５の動作（イベント検索処理）を説明するためのフローチャートである。
【００５７】
以下では、説明を簡略化するために、図１４〜図１８の表に示す条件を用いた場合の検索部１３の動作について説明する。図１４は、検索条件（プロセス条件）の一例を示す表である。図１５は、検索条件（イベント条件）の一例を示す表である。図１６は、イベント索引（プロセス索引）の一例を示す表である。図１７は、イベント索引（ファイル索引）の一例を示す表である。図１８は、イベント索引（ファイルイベント索引）の一例を示す表である。
【００５８】
検索部１３は、まず、図１２のステップＳ１１の動作を実行する。すなわち、候補端末集合CLを全端末（C1, C2, C3, C4, C5）とし、プロセス対応表Tを空とし、候補リストLを初期化する。ここで、プロセス対応表Tは、プロセス条件識別子と確定した実行ファイルパスとの対応関係を保持する表である。また、初期化後の候補リストLaは、La = [<CLa, Ta>]であり、CLa = [C1, C2, C3, C4, C5](全端末), Ta=[]とする。
【００５９】
次に、全てのイベント条件ECに対してステップＳ１３〜Ｓ１５の処理を繰り返す（ステップＳ１２）。ここでは、図１５のイベント条件の例で１行目から順に処理を進めるものとし、まずEC=EC1に対して処理を行う。イベント条件に対する処理では、まず、中間結果を保持する次候補リストL2を空リストに初期化する（ステップＳ１３）。その後、候補リストL内の候補<CL1, T1>に対してイベント検索処理（ステップＳ１５）を繰り返す（ステップＳ１４）。つまり、<CLa, Ta>に対してイベント検索処理を行う(Laの要素に対する繰り返し)。
【００６０】
図１３は、イベント検索処理を説明するためのフローチャートである。イベント検索処理を実施する際は、まず、プロセスを設定し、ECに一致するイベントを検索する（ステップＳ２１）。具体的には、Taにプロセスの実行ファイルパスが含まれている場合は、その情報をプロセスの条件として設定する。一方、Taにプロセスの実行ファイルパスが含まれていない場合は、プロセス条件を検索条件として設定する。イベント種別がprocessの場合は、子プロセスに関しても同様の設定を行う。
【００６１】
現時点では、プロセス条件識別子Q1に対応するプロセスはまだTaに保持されていないため、プロセス条件識別子Q1に対応するプロセス条件を検索条件（図１５参照のEC1）として検索する。具体的には、{program_dir:/tmp/, type:file, mode:create, dir:/appdata/, ext:exe, minor:true}に該当する項目をファイルイベント索引（図１８参照）で検索する。この結果、検索結果Ra:=[FE1, FE3]が抽出される。なお、「program_dir」等のフィールド名については各表において括弧書きで記載している。また、本実施の形態では、フィールド名は、検索する索引に合わせて対応するフィールド名に適宜変換してもよい。具体的には、ファイルイベント索引に合わせて、プロセス条件の{dir:D, name:N}を{program_dir:D, program_name:N}のように変換してもよい。
【００６２】
なお、検索条件EC1（図１５参照）では「minor:true」が指定されており、「/appdata/V1/」は除外リストに含まれるため（図１７参照）、図１８に示すFE5は検索結果に含まれない。つまり、図１７に示すファイル索引において、フォルダが「/appdata/」で始まり、階層が１段階深く(/appdata/V1/、/appdata/M1/、/appdata/M2/)、且つクライアントの数が閾値以上であるエントリを除外リストとしている。図１５に示すファイル索引では、クライアントの数が５以上である「/appdata/V1」を除外対象としている。
【００６３】
次に、検索結果Rに対してステップＳ２３〜Ｓ２５の処理を繰り返す（ステップＳ２２）。具体的には、検索結果Raにおいて抽出されたFE1に対してステップＳ２３〜Ｓ２５の処理を繰り返す。まず、ステップＳ２３においてCLaと[C1, C2]との積集合をとる。これにより、CL2 = [C1, C2]、T2 = [] となる。その後、ステップＳ２４において、検索結果R中のプロセスの実行ファイルパスをT2に記録する。現時点では、T2にプロセス条件識別子Q1に対応するプロセスの実行ファイルパスが保持されていないため、T2にFE1の情報を記録する。従って、T2 = [{pcid:Q1, program_dir:/tmp/, program_name:setup.exe}]となる。
【００６４】
次に、CL2が空ではないので、L2に<CL2, T2>、つまり<CLb, Tb>を追加する（ステップＳ２５）。ここで、CLb = [C1, C2], Tb = [{pcid:Q1, program_dir:/tmp/, program_name:setup.exe}]である。なお、CL2が空の場合は、注目しているT2について全てのイベントが発生している端末が存在しないことを示している。
【００６５】
次に、FE1の場合と同様に、FE3に対してステップＳ２３〜Ｓ２５の処理を繰り返す。まず、ステップＳ２３においてCLaと[C1, C2]との積集合をとる。これにより、CL2 = [C1, C2]、T2 = [] となる。その後、ステップＳ２４において、検索結果R中のプロセスの実行ファイルパスをT2に記録する。この場合も、T2にプロセス条件識別子Q1に対応するプロセスの実行ファイルパスが保持されていないため、T2にFE3の情報を記録する。従って、T2 = [{pcid:Q1, program_dir:/tmp/, program_name:malicious.exe}]となる。
【００６６】
次に、CL2が空ではないので、L2に<CL2, T2>、つまり<CLc, Tc>を追加する（ステップＳ２５）。よって、前回の情報も含めて、L2は結果として、L2 = [<CLb, Tb>, <CLc, Tc>]となる。ここで、CLc = [C1, C2], Tc = [{pcid:Q1, program_dir:/tmp/, program_name:malicious.exe}]である。
【００６７】
上記処理により、検索結果Raに対する繰り返し処理（ステップＳ２２）が終了する。また、候補リストLaに対する繰り返し処理（図１２のステップＳ１４）が終了する。その後、ステップＳ１６において、候補リストLを更新する。これにより、L = [<CLb, Tb>, <CLc, Tc>]となる。なお、以下では、説明の都合上、Lb = [<CLb, Tb>, <CLc, Tc>]とする。
【００６８】
次に、ステップＳ１２に戻り、EC2（図１５参照）に対してステップＳ１３〜Ｓ１５の処理を繰り返す。まず、L2 = []に初期化する（ステップＳ１３）。その後、Lb内の候補<CLb, Tb>に対してイベント検索処理（ステップＳ１５）を繰り返す（ステップＳ１４）。
【００６９】
具体的には、EC2のプロセス条件識別子Q1に対応する条件がTbに保持されているため、これに基づいて検索条件を設定して検索をする（図１３のステップＳ２１）。具体的には、{program_dir:/tmp/, program_name:setup.exe, type:file, mode:create, dir:/tmp/, ext:dat} に該当する項目をファイルイベント索引で検索する。この結果、検索結果としてRb=[FE2]が抽出される。
【００７０】
次に、検索結果Rに対してステップＳ２３〜Ｓ２５の処理を繰り返す（ステップＳ２２）。具体的には、検索結果Rbにおいて抽出されたFE2に対してステップＳ２３〜Ｓ２５の処理を繰り返す。まず、ステップＳ２３においてCLbと[C3, C4]との積集合をとる。これにより、CL2 = []、T2 = [{pcid:Q1, program_dir:/tmp/, program_name:setup.exe}] となる。ここで、Q1の対応関係は記録済みなのでT2の変更はない。また、CL2が空であるので、L2への追加は行わない（ステップＳ２５）。これらの処理により、検索結果Rbに対する処理が終了する。
【００７１】
次に、図１２のステップＳ１４に戻り、Lb内の候補<CLc, Tc>に対してイベント検索処理（ステップＳ１５）を繰り返す。
【００７２】
具体的には、EC2のプロセス条件識別子Q1に対応する条件がTcに保持されているため、これに基づいて検索条件を設定して検索をする（図１３のステップＳ２１）。具体的には、{program_dir:/tmp/, program_name:malicious.exe, type:file, mode:create, dir:/tmp/, ext:dat}に該当する項目をファイルイベント索引で検索する。この結果、検索結果としてRc=[FE4]が抽出される。
【００７３】
次に、検索結果Rに対してステップＳ２３〜Ｓ２５の処理を繰り返す（ステップＳ２２）。具体的には、検索結果Rcにおいて抽出されたFE4に対してステップＳ２３〜Ｓ２５の処理を繰り返す。まず、ステップＳ２３においてCLcと[C1, C4]との積集合をとる。これにより、CL2 = [C1]、T2 = [{pcid:Q1, program_dir:/tmp/, program_name:malicious.exe}] となる。ここで、Q1の対応関係は記録済みなのでT2の変更はない。また、CL2は空ではないので、L2に<CLd, Td>を追加する（ステップＳ２５）。ここで、CLd = [C1]である。
【００７４】
上記処理により、検索結果Rcに対する繰り返し処理（ステップＳ２２）が終了する。また、候補リストLbに対する繰り返し処理（ステップＳ１４）が終了する。その後、ステップＳ１６において、候補リストLを更新する。これにより、L = [<CLd, Td>]となる。これらの処理により、ステップＳ１２における繰り返し処理が終了する。
【００７５】
上述の検索部１３における処理の結果、最終的に候補リストLに検索結果が保持される。上述の例では、CLd(= [C1])が検索条件に合致しているクライアントリストであり、Tdには条件に合致するプロセスの情報が保持されている。ここで、Td = [{pcid:Q1, program_dir:/tmp/, program_name:malicious.exe}]である。検索条件に合致するプロセスの対応関係が複数ある場合には、プロセス対応関係毎にクライアントリストCLが抽出される。例えば図１８においてFE2のクライアントが[C1, C2]であった場合、最終的な結果は、L = [<[C1,C2], Tb>, <[C1], Tc>]となる。
【００７６】
以上で説明した検索部１３の動作により、特定の挙動を示す端末（つまり、マルウェアが動作している可能性のある端末）を抽出することができる。
【００７７】
上述のように、脅威ハンティングの手法として、マルウェアの動的解析結果からマルウェアの痕跡（ＩｏＣ）を抽出し、この抽出した痕跡情報を用いてマルウェアを検出する技術がある。このような技術では、マルウェアの動的解析結果を用いて検索条件を生成する。そして、この検索条件を用いてマルウェアに起因する異常な動作を検出している。マルウェアの痕跡情報としては、マルウェアの通信先ドメインやハッシュ値、更にはマルウェアによって作成・変更されたファイルパスやレジストリキーなどがある。
【００７８】
しかしながら、通信先ドメインやハッシュ値などは変更されやすいため、通信先ドメインやハッシュ値など用いて検索条件を生成した場合は、マルウェアを精度よく検出することができない場合があった。また、ファイルパスやレジストリキーなどに関しても、これらを完全一致とした検索条件を用いた場合は検出対象が過度に限定されてしまうため、マルウェアを精度よく検出することができないという問題があった。
【００７９】
これに対して本実施の形態では、端末から出力されたイベント情報を用いてイベント索引を生成している。また、マルウェアの動作中に発生したイベントに基づき生成された動的解析結果とイベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成している。そして、検索条件を生成する際に、動的解析結果に含まれるイベントの、端末における出現傾向を反映させて検索条件を生成している。
【００８０】
このように、本実施の形態では、検索条件を生成する際に、動的解析結果に含まれるイベントの、端末における出現傾向を反映させて検索条件を生成しているので、マルウェアを精度よく検出するための検索条件を生成することができる。
【００８１】
特に、本実施の形態では、対象となるイベントが希少イベントである場合、希少イベントに対応する検索範囲よりも広くなるように検索条件を生成している（つまり、検索範囲を抽象化している）。例えば、対象となるイベントが希少イベントである場合、希少イベントの実行ファイルのファイルパスよりも上位のファイルパスとすることで検索範囲を広くしている。従って、亜種などによる挙動の変化を考慮した検索を実現することができる。また、抽象化によって抽出件数が過度に増加することを抑制することができる。
【００８２】
また、本実施の形態では、対象となるイベントが頻出イベントである場合は、頻出イベントに対応する検索条件を除外して、検索条件を生成している。このように、頻出イベントに対応する検索条件を除外することで、つまり、正常な動作に対応する検索条件を生成しないことで、検索条件を簡素化することができる。
【００８３】
上述の実施の形態では、ファイルに関してのイベント情報や検索条件について説明した。しかし本実施の形態では、ファイル以外にもレジストリや通信に関するイベントについても、ファイルと同様にイベント索引や検索条件を生成してもよい。
【００８４】
また、上述の実施の形態では、イベント索引の構造に関して、端末のみを転置インデックスとして管理した場合について説明した。しかし本実施の形態では、イベント索引に＜端末、時刻情報＞を含めて、イベントがいつ発生したかについても検索できるように構成してもよい。
【００８５】
また本実施の形態では、検索条件生成部１２で生成された検索条件と、動的解析装置２１で生成された動的解析結果とを対応づけて可視化してもよい。すなわち、どのイベントがどの条件に変換されたか（または破棄されたか）を対応づけて可視化することで、検索条件の正当性をユーザが容易に確認できるようになる。例えば、検索条件リストと動的解析結果リストをディスプレイ上に並べて表示すると共に、検索条件生成部１２で生成された検索条件と、この検索条件に対応する動的解析結果とを同一の色で表示するようにしてもよい。これ以外にも、例えば、検索条件生成部１２で生成された検索条件と、この検索条件に対応する動的解析結果とに同一の記号を付して表示するようにしてもよい。
【００８６】
また、本実施の形態では、出現端末数の少ない検索条件順に検索するようにしてもよい。例えば、検索条件生成時および検索時にヒット数をキャッシュして利用するようにしてもよい。これにより、検索条件に合致する端末が存在しない場合に、検索を効率化することができる。
【００８７】
上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、上述の情報処理を、プロセッサであるＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。
【００８８】
すなわち、端末から出力されたイベント情報を用いてイベント索引を生成し、マルウェアの動作中に発生したイベントに基づき生成された動的解析結果とイベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成する。そして、検索条件を生成する際に、動的解析結果に含まれるイベントの、端末における出現傾向を反映させて検索条件を生成する。このような処理を実行するためのプログラムを、コンピュータに実行させてもよい。
【００８９】
図１９は、本発明にかかる情報処理用プログラムを実行するためのコンピュータを示すブロック図である。図１９に示すように、コンピュータ９０は、プロセッサ９１およびメモリ９２を備える。メモリ９２には、本発明にかかる情報処理用のプログラムが格納されている。プロセッサ９１は、メモリ９２から情報処理用のプログラムを読み出す。そして、プロセッサ９１において情報処理用のプログラムを実行することで、上述した本発明にかかる情報処理を実行することができる。
【００９０】
上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００９１】
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００９２】
（付記１）
端末から出力されたイベント情報を用いてイベント索引を生成するイベント索引生成部と、
マルウェアの動作中に発生したイベントに基づき生成された動的解析結果と前記イベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成する検索条件生成部と、を備え、
前記検索条件生成部は、前記動的解析結果に含まれるイベントの、前記端末における出現傾向を反映させて前記検索条件を生成する、
情報処理装置。
【００９３】
（付記２）
前記検索条件生成部は、前記動的解析結果に含まれるイベントの、前記端末におけるプロセス挙動を反映させて前記検索条件を生成する、付記１に記載の情報処理装置。
【００９４】
（付記３）
前記検索条件生成部は、
前記イベント索引に基づいて、対象となるイベントが希少イベントであるか否かを判定し、
前記対象となるイベントが希少イベントである場合、前記希少イベントに対応する検索範囲よりも広くなるように前記検索条件を生成する、
付記１または２に記載の情報処理装置。
【００９５】
（付記４）
前記検索条件生成部は、前記対象となるイベントが希少イベントである場合、前記対象となるイベントが希少イベントであることを示す希少フラグを前記検索条件に付加する、付記３に記載の情報処理装置。
【００９６】
（付記５）
前記対象となるイベントが希少イベントである場合、前記希少イベントの実行ファイルのファイルパスよりも上位のファイルパスとすることで前記検索範囲を広くする、付記３または４に記載の情報処理装置。
【００９７】
（付記６）
前記検索条件生成部は、
前記イベント索引に基づいて、対象となるイベントが頻出イベントであるか否かを判定し、
前記対象となるイベントが頻出イベントである場合は、前記頻出イベントに対応する検索条件を除外して、前記検索条件を生成する、
付記１〜５のいずれか一項に記載の情報処理装置。
【００９８】
（付記７）
前記検索条件生成部で生成された前記検索条件に合致する端末を検索する検索部を更に備える、付記１〜６のいずれか一項に記載の情報処理装置。
【００９９】
（付記８）
前記検索条件には、前記イベントが希少イベントであるか否かを示す希少フラグが含まれており、
前記検索部は、前記希少フラグが真である場合、前記検索条件よりも抽象度が低いイベント索引の中から、出現端末数が所定の閾値よりも少ないイベント索引に含まれる端末を抽出する、
付記７に記載の情報処理装置。
【０１００】
（付記９）
前記検索部は、前記希少フラグが真である場合、
前記検索条件よりも階層が深く、且つ前記出現端末数が所定の閾値以上であるフォルダを除外対象として決定し、
前記イベント索引に含まれるフォルダから前記除外対象のフォルダを除外する、
付記８に記載の情報処理装置。
【０１０１】
（付記１０）
前記検索条件は、プロセス生成、スレッド生成、ファイルアクセス、レジストリアクセス、動的ライブラリ読込、及び通信のうちの少なくとも一つ以上に関するイベント条件と、出現するプロセスに関するプロセス条件と、のうちの少なくとも一方を用いて構成されている、付記１〜９のいずれか一項に記載の情報処理装置。
【０１０２】
（付記１１）
端末から出力されたイベント情報を用いてイベント索引を生成し、
マルウェアの動作中に発生したイベントに基づき生成された動的解析結果と前記イベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成し、
前記検索条件を生成する際に、前記動的解析結果に含まれるイベントの、前記端末における出現傾向を反映させて前記検索条件を生成する、
情報処理方法。
【０１０３】
（付記１２）
端末から出力されたイベント情報を用いてイベント索引を生成し、
マルウェアの動作中に発生したイベントに基づき生成された動的解析結果と前記イベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成し、
前記検索条件を生成する際に、前記動的解析結果に含まれるイベントの、前記端末における出現傾向を反映させて前記検索条件を生成する、処理をコンピュータに実行させるためのプログラムが格納された非一時的なコンピュータ可読媒体。
【０１０４】
以上、本発明を上記実施の形態に即して説明したが、本発明は上記実施の形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
【符号の説明】
【０１０５】
１０  情報処理装置
１１  イベント索引生成部
１２  検索条件生成部
１３  検索部
１５  イベント情報格納部
１６  イベント索引格納部
２１  動的解析装置
２２  端末
９０  コンピュータ
９１  プロセッサ
９２  メモリ
【図１】
2020174565.tif 000003
【図２】
2020174565.tif 000004
【図３】
2020174565.tif 000005
【図４】
2020174565.tif 000006
【図５】
2020174565.tif 000007
【図６】
2020174565.tif 000008
【図７】
2020174565.tif 000009
【図８】
2020174565.tif 000010
【図９】
2020174565.tif 000011
【図１０】
2020174565.tif 000012
【図１１】
2020174565.tif 000013
【図１２】
2020174565.tif 000014
【図１３】
2020174565.tif 000015
【図１４】
2020174565.tif 000016
【図１５】
2020174565.tif 000017
【図１６】
2020174565.tif 000018
【図１７】
2020174565.tif 000019
【図１８】
2020174565.tif 000020
【図１９】
2020174565.tif 000021
【手続補正書】
【提出日】令和3年8月6日(2021.8.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
端末から出力されたイベント情報を用いてイベント索引を生成するイベント索引生成部と、
マルウェアの動作中に発生したイベントに基づき生成された動的解析結果と前記イベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成する検索条件生成部と、を備え、
前記検索条件生成部は、前記動的解析結果に含まれるイベントの、前記端末における出現傾向を反映させて前記検索条件を生成する、
情報処理装置。
【請求項２】
前記検索条件生成部は、前記動的解析結果に含まれるイベントの、前記端末におけるプロセス挙動を反映させて前記検索条件を生成する、請求項１に記載の情報処理装置。
【請求項３】
前記検索条件生成部は、
前記イベント索引に基づいて、対象となるイベントが希少イベントであるか否かを判定し、
前記対象となるイベントが希少イベントである場合、前記希少イベントに対応する検索範囲よりも広くなるように前記検索条件を生成する、
請求項１または２に記載の情報処理装置。
【請求項４】
前記検索条件生成部は、前記対象となるイベントが希少イベントである場合、前記対象となるイベントが希少イベントであることを示す希少フラグを前記検索条件に付加する、請求項３に記載の情報処理装置。
【請求項５】
前記対象となるイベントが希少イベントである場合、前記希少イベントの実行ファイルのファイルパスよりも上位のファイルパスとすることで前記検索範囲を広くする、請求項３または４に記載の情報処理装置。
【請求項６】
前記検索条件生成部は、
前記イベント索引に基づいて、対象となるイベントが頻出イベントであるか否かを判定し、
前記対象となるイベントが頻出イベントである場合は、前記頻出イベントに対応する検索条件を除外して、前記検索条件を生成する、
請求項１〜５のいずれか一項に記載の情報処理装置。
【請求項７】
前記検索条件生成部で生成された前記検索条件に合致する端末を検索する検索部を更に備える、請求項１〜６のいずれか一項に記載の情報処理装置。
【請求項８】
前記検索条件には、前記イベントが希少イベントであるか否かを示す希少フラグが含まれており、
前記検索部は、前記希少フラグが真である場合、前記検索条件よりも抽象度が低いイベント索引の中から、出現端末数が所定の閾値よりも少ないイベント索引に含まれる端末を抽出する、
請求項７に記載の情報処理装置。
【請求項９】
前記検索部は、前記希少フラグが真である場合、
前記検索条件よりも階層が深く、且つ前記出現端末数が所定の閾値以上であるフォルダを除外対象として決定し、
前記イベント索引に含まれるフォルダから前記除外対象のフォルダを除外する、
請求項８に記載の情報処理装置。
【請求項１０】
前記検索条件は、プロセス生成、スレッド生成、ファイルアクセス、レジストリアクセス、動的ライブラリ読込、及び通信のうちの少なくとも一つ以上に関するイベント条件と、出現するプロセスに関するプロセス条件と、のうちの少なくとも一方を用いて構成されている、請求項１〜９のいずれか一項に記載の情報処理装置。
【請求項１１】
端末から出力されたイベント情報を用いてイベント索引を生成し、
マルウェアの動作中に発生したイベントに基づき生成された動的解析結果と前記イベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成し、
前記検索条件を生成する際に、前記動的解析結果に含まれるイベントの、前記端末における出現傾向を反映させて前記検索条件を生成する、
情報処理方法。
【請求項１２】
端末から出力されたイベント情報を用いてイベント索引を生成し、
マルウェアの動作中に発生したイベントに基づき生成された動的解析結果と前記イベント索引とを用いて、特定の挙動を示す端末を抽出するための検索条件を生成し、
前記検索条件を生成する際に、前記動的解析結果に含まれるイベントの、前記端末における出現傾向を反映させて前記検索条件を生成する、処理をコンピュータに実行させるためのプログラム。
【国際調査報告】
2020174565.tif 000022
2020174565.tif 000023