JP7243837B2 - 情報処理装置、情報処理システム、情報処理方法、及びプログラム - Google Patents

情報処理装置、情報処理システム、情報処理方法、及びプログラム Download PDF

Info

Publication number
JP7243837B2
JP7243837B2 JP2021539704A JP2021539704A JP7243837B2 JP 7243837 B2 JP7243837 B2 JP 7243837B2 JP 2021539704 A JP2021539704 A JP 2021539704A JP 2021539704 A JP2021539704 A JP 2021539704A JP 7243837 B2 JP7243837 B2 JP 7243837B2
Authority
JP
Japan
Prior art keywords
query
queries
graph structure
similarity
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021539704A
Other languages
English (en)
Other versions
JPWO2021028968A5 (ja
JPWO2021028968A1 (ja
Inventor
聡 池田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2021028968A1 publication Critical patent/JPWO2021028968A1/ja
Publication of JPWO2021028968A5 publication Critical patent/JPWO2021028968A5/ja
Application granted granted Critical
Publication of JP7243837B2 publication Critical patent/JP7243837B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は情報処理装置、情報処理システム、情報処理方法、及びコンピュータ可読媒体に関し、特にマルウェア等の脅威ハンティングに用いられる情報処理装置、情報処理システム、情報処理方法、及びコンピュータ可読媒体に関する。
近年、組織内に既に侵入しているマルウェア等の脅威を発見する脅威ハンティングの重要性が高まってきている。特に、既存のセキュリティ装置が見逃した新種や亜種のマルウェアを検出する技術が重要となってきている。
特許文献1には、未知のマルウェアを脅威として検出するための脅威検出プログラムに関する技術が開示されている。
特開2018-200642号公報
脅威ハンティングの手法として、マルウェアの動的解析結果からマルウェアの痕跡(IoC(Indicators of Compromise))を抽出し、この抽出した痕跡情報を用いてマルウェアを検出する技術がある(特許文献1参照)。このような技術では、マルウェアの動的解析結果を用いてクエリ(検索条件)を生成する。そして、この生成したクエリを用いてマルウェアに起因する異常な動作を検出している。
しかしながら、マルウェアの動的解析結果が大量になると、動的解析結果を用いて生成されるクエリの数も大量になる。このようにクエリの数が大量になると、クエリの管理が煩雑になるという問題がある。
上記課題に鑑み本発明の目的は、マルウェアの挙動検出に用いられるクエリの管理を容易にすることが可能な情報処理装置、情報処理システム、情報処理方法、及びコンピュータ可読媒体を提供することである。
本発明の一態様にかかる情報処理装置は、マルウェアの挙動検出に用いられる第1及び第2のクエリの類似度を判定する類似度判定部と、前記類似度判定部の判定結果に応じて前記第1及び第2のクエリを統合する統合部と、を備える。前記類似度判定部は、前記第1のクエリに対応する第1のグラフ構造と前記第2のクエリに対応する第2のグラフ構造とを用いて、前記第1及び第2のクエリの類似度を判定する。前記統合部は、前記第1のグラフ構造と前記第2のグラフ構造との間の共通部分を抽出して、前記第1及び第2のクエリを統合する。
本発明の一態様にかかる情報処理システムは、上述の情報処理装置と、端末から収集したイベント情報のうち、前記情報処理装置から供給されたクエリに合致するイベント情報を検索する検索装置と、を備える。
本発明の一態様にかかる情報処理方法は、マルウェアの挙動検出に用いられる第1及び第2のクエリの類似度を判定し、前記判定結果に応じて前記第1及び第2のクエリを統合する。前記類似度を判定する際、前記第1のクエリに対応する第1のグラフ構造と前記第2のクエリに対応する第2のグラフ構造とを用いて、前記第1及び第2のクエリの類似度を判定する。前記第1及び第2のクエリを統合する際、前記第1のグラフ構造と前記第2のグラフ構造との間の共通部分を抽出して、前記第1及び第2のクエリを統合する。
本発明の一態様にかかるコンピュータ可読媒体は、マルウェアの挙動検出に用いられる第1及び第2のクエリの類似度を判定し、前記判定結果に応じて前記第1及び第2のクエリを統合し、前記類似度を判定する際、前記第1のクエリに対応する第1のグラフ構造と前記第2のクエリに対応する第2のグラフ構造とを用いて、前記第1及び第2のクエリの類似度を判定し、前記第1及び第2のクエリを統合する際、前記第1のグラフ構造と前記第2のグラフ構造との間の共通部分を抽出して、前記第1及び第2のクエリを統合する、処理をコンピュータに実行させるためのプログラムが格納された非一時的なコンピュータ可読媒体である。
本発明により、マルウェアの挙動検出に用いられるクエリの管理を容易にすることが可能な情報処理装置、情報処理システム、情報処理方法、及びコンピュータ可読媒体を提供することができる。
実施の形態にかかる情報処理装置を説明するためのブロック図である。 実施の形態にかかる情報処理装置の詳細な構成を説明するためのブロック図である。 クエリQ1の一例を示す表である。 クエリQ2の一例を示す表である。 クエリQ1に対応するグラフ構造の一例を示す図である。 クエリQ2に対応するグラフ構造の一例を示す図である。 クエリQ1のグラフ構造とクエリQ2のグラフ構造との間の共通部分のグラフ構造(クエリQMに対応)の一例を示す図である。 統合後のクエリQMを示す表である。 実施の形態にかかる情報処理装置の動作の一例を説明するためのフローチャートである。 類似度スコアの算出方法の一例を説明するための図である。 類似度スコアの算出方法の一例を説明するための図である。 クエリQ3、Q4の一例を示す表である。 統合処理の他の例を説明するための図である。 統合後のクエリQMを示す表である。 類似度スコアの算出方法の一例を説明するための図である。 実施の形態にかかる情報処理装置を含む情報処理システムを説明するためのブロック図である。 本発明にかかる情報処理用プログラムを実行するためのコンピュータを示すブロック図である。
以下、図面を参照して本発明の実施の形態について説明する。
まず、本発明の骨子について説明する。図1は実施の形態1にかかる情報処理装置を説明するためのブロック図であり、本発明の骨子を説明するためのブロック図である。
図1に示すように、本実施の形態にかかる情報処理装置10は、類似度判定部13および統合部14を備える。類似度判定部13は、マルウェアの挙動検出に用いられる第1及び第2のクエリの類似度を判定する。このとき、類似度判定部13は、第1のクエリに対応する第1のグラフ構造と第2のクエリに対応する第2のグラフ構造とを用いて、第1及び第2のクエリの類似度を判定する。統合部14は、類似度判定部13の判定結果に応じて、第1及び第2のクエリを統合する。このとき、統合部14は、第1のグラフ構造と第2のグラフ構造との間の共通部分を抽出して、第1及び第2のクエリを統合する。
上記構成を備える本実施の形態にかかる発明では、第1及び第2のクエリの類似度を判定し、この判定結果に応じて第1及び第2のクエリを統合している。つまり、本実施の形態にかかる情報処理装置では、第1及び第2のクエリが類似であると判定された場合、第1及び第2のクエリを統合している。したがって、動的解析結果を用いて生成されるクエリの数が大量である場合でも、類似するクエリ同士を統合することができるので、管理するクエリの数(つまり、図2に示すクエリ格納部に格納されるクエリの数)を削減することができる。したがって、マルウェアの挙動検出に用いられるクエリの管理を容易にすることができる。ここで「クエリの管理」とは、例えばクエリをユーザへ提示すること、ユーザからの指示に基づき不要なクエリを削除すること等である。以下、本発明について詳細に説明する。
図2は、本実施の形態にかかる情報処理装置の詳細な構成を説明するためのブロック図である。図2に示すように、本実施の形態にかかる情報処理装置10は、クエリ生成部11、グラフ構造生成部12、類似度判定部13、統合部14、及びクエリ格納部15を備える。クエリ生成部11には動的解析装置18が接続されている。
動的解析装置18は、マルウェア検体を用いてマルウェアの挙動を動作解析する装置である。具体的には、動的解析装置18は、マルウェアの動作中に発生したイベントに基づいて動的解析結果を生成する。動的解析装置18で生成された動的解析結果は、クエリ生成部11に供給される。
クエリ生成部11は、動的解析装置18から供給された動的解析結果を用いてクエリを生成する。ここでクエリとは、マルウェアの挙動検出に用いられる検索条件である。例えば、所定の端末からイベント情報を収集し、これらのイベント情報の中からクエリに合致するイベント情報を検索することで、マルウェアが動作している端末を特定することができる。なお、クエリを用いたマルウェアの挙動検出については後述する(図16参照)。
図3、図4は、クエリ生成部11で生成されるクエリの一例を示す表である。図3ではクエリQ1の一例を示し、図4ではクエリQ2の一例を示している。図3に示す表では、クエリQ1のプロセス条件およびイベント条件を示している。
図3に示すプロセス条件の表には、プロセス条件IDと実行ファイルパスとが含まれている。例えば、プロセス条件の表の1行目のプロセス条件IDは「P1」、実行ファイルパスは{dir:system, name:browser, ext:exe}である。なお、「dir」、「name」、「ext」はそれぞれ、ディレクトリパス、拡張子を除いたファイル名、拡張子を表しており、{dir:system, name:browser, ext:exe}は、ファイルパス「/system/browser.exe」と合致する条件を表している。プロセス条件の表の2行目のプロセス条件IDは「P2」、実行ファイルパスは{dir:tmp, name:p2, ext:exe}である。プロセス条件の表の3行目のプロセス条件IDは「P3」、実行ファイルパスは{dir:appdata, name:p3, ext:exe}である。
また、図3に示すイベント条件の表には、プロセス条件ID、イベント、アクセス種別、及び操作対象が含まれている。なお、イベント条件におけるプロセス条件IDは、プロセス条件のエントリを識別するためのものである。
例えば、イベント条件の表の1行目のプロセス条件IDは「P1」、イベントは「process」、アクセスは「create」、操作対象は「P2」である。これは、「P1」のプロセスが「P2」のプロセスを生成したことを意味している。イベント条件の表の2行目のプロセス条件IDは「P2」、イベントは「file」、アクセス種別は「create」、操作対象は{dir:appdata, name:p3, ext:exe}である。これは、「P2」のプロセスが、ファイルパスが{dir:appdata, name:p3, ext:exe}に合致する「file」を生成したことを意味している。また、イベント条件の表の3行目のプロセス条件IDは「P2」、イベントは「process」、アクセス種別は「create」、操作対象は「P3」である。これは、「P2」のプロセスが「P3」のプロセスを生成したことを意味している。イベント条件の表の4行目のプロセス条件IDは「P3」、イベントは「file」、アクセス種別は「delete」、操作対象は{dir:tmp, name:p2, ext:exe}である。これは、「P3」のプロセスが、ファイルパスが{dir:tmp, name:p2, ext:exe}に合致する「file」を削除したことを意味している。
なお、図4に示したクエリQ2についても、上述した図3に示すクエリQ1と基本的に同様であるので重複した説明は省略する。
また、本明細書では{a:1, b:2}の形式でデータを表現しており、この記載は、フィールドaとbの値がそれぞれ1と2であることを示している。また、[a, b, c]の形式でリスト構造を表現しており、この場合、a, b, cの3つの要素を含むリストを表している。
図2に示すグラフ構造生成部12は、クエリQ1、Q2をそれぞれ有向グラフとして表現することで、クエリQ1、Q2のグラフ構造を生成する。換言すると、グラフ構造生成部12は、クエリ生成部11で生成されたクエリQ1、Q2(クエリ格納部15に格納されていたクエリでもよい)に対してグラフ構造生成処理を実施することで、クエリQ1、Q2のグラフ構造を生成する。ここでグラフ構造とは、クエリの構造をノードとエッジの集合で表現したものである。
図5、図6はそれぞれ、クエリQ1、Q2に対応するグラフ構造の一例を示す図である。図5は、図3に示したクエリQ1に基づき生成されたグラフ構造を示している。図6は、図4に示したクエリQ2に基づき生成されたグラフ構造を示している。以下、図5、図6に示すグラフ構造について説明する。
図5に示すグラフ構造は、図3に示すクエリQ1に基づき生成されたグラフ構造である。図5に示すグラフ構造のノードN1_1は、図3のプロセス条件IDが「P1」のノードに対応している。また、図5に示すグラフ構造のノードN1_4、N1_5、N1_6はそれぞれ、図3のプロセス条件の表のプロセス条件IDが「P1」の実行ファイルパス「dir:system」、「name:browser」、「ext:exe」に対応している。図5に示すノードN1_1からノードN1_4、N1_5、N1_6の各々に向かう矢印はエッジを示しており、これらのエッジのラベルはそれぞれ、「dir」、「name」、「ext」である。
図5に示すグラフ構造のノードN1_2は、図3のプロセス条件IDが「P2」のノードに対応している。ここで、ノードN1_1からノードN1_2に向かう矢印はラベル「create」のエッジであり、図3のイベント条件の表の1行目(「P1」のプロセスが「P2」のプロセスを生成)に対応している。また、図5に示すグラフ構造のノードN1_7、N1_8、N1_9はそれぞれ、図3のプロセス条件の表のプロセス条件IDが「P2」の実行ファイルパス「dir:tmp」、「name:p2」、「ext:exe」に対応している。図5に示すノードN1_2からノードN1_7、N1_8、N1_9の各々に向かう矢印はエッジを示しており、これらのエッジのラベルはそれぞれ、「dir」、「name」、「ext」である。
ノードN1_2からノードN1_13に向かう矢印はラベル「create」のエッジであり、図3のイベント条件の表の2行目(「P2」のプロセスが「file」を生成)に対応している。また、図5に示すグラフ構造のノードN1_14、N1_15、N1_16はそれぞれ、図3のイベント条件の表の2行目の操作対象「dir:appdata」、「name:p3」、「ext:exe」に対応している。図5に示すノードN1_13からノードN1_14、N1_15、N1_16の各々に向かう矢印はエッジを示しており、これらのエッジのラベルはそれぞれ、「dir」、「name」、「ext」である。
図5に示すグラフ構造のノードN1_3は、図3のプロセス条件IDが「P3」のノードに対応している。ここで、ノードN1_2からノードN1_3に向かう矢印はラベル「create」のエッジであり、図3のイベント条件の表の3行目(「P2」のプロセスが「P3」のプロセスを生成)に対応している。また、図5に示すグラフ構造のノードN1_10、N1_11、N1_12はそれぞれ、図3のプロセス条件の表のプロセス条件IDが「P3」の実行ファイルパス「dir:appdata」、「name:p3」、「ext:exe」に対応している。図5に示すノードN1_3からノードN1_10、N1_11、N1_12の各々に向かう矢印はエッジを示しており、これらのエッジのラベルはそれぞれ、「dir」、「name」、「ext」である。
ノードN1_3からノードN1_17に向かう矢印はラベル「delete」のエッジであり、図3のイベント条件の表の4行目(「P3」のプロセスが「file」を削除)に対応している。また、図5に示すグラフ構造のノードN1_18、N1_19、N1_20はそれぞれ、図3のイベント条件の表の4行目の操作対象「dir:tmp」、「name:p2」、「ext:exe」に対応している。図5に示すノードN1_17からノードN1_18、N1_19、N1_20の各々に向かう矢印はエッジを示しており、これらのエッジのラベルはそれぞれ、「dir」、「name」、「ext」である。
また、プロセスに対応するノードN1_1、N1_2、N1_3にはそれぞれ、ルートノードN1_0が接続されている。ルートノードN1_0は、プロセスに対応するノードN1_1、N1_2、N1_3が互いに分離されている場合(エッジで接続されていない場合)でも、これらのノードN1_1、N1_2、N1_3の関係を把握するために便宜上設けられたノードである。
次に、図6に示すグラフ構造について説明する。図6に示すグラフ構造は、図4に示すクエリQ2に基づき生成されたグラフ構造である。図6に示すグラフ構造のノードN2_1は、図4のプロセス条件IDが「P4」のノードに対応している。また、図6に示すグラフ構造のノードN2_4、N2_5、N2_6はそれぞれ、図4のプロセス条件の表のプロセス条件IDが「P4」の実行ファイルパス「dir:system」、「name:browser」、「ext:exe」に対応している。図6に示すノードN2_1からノードN2_4、N2_5、N2_6の各々に向かう矢印はエッジを示しており、これらのエッジのラベルはそれぞれ、「dir」、「name」、「ext」である。
図6に示すグラフ構造のノードN2_2は、図4のプロセス条件IDが「P5」のノードに対応している。ここで、ノードN2_1からノードN2_2に向かう矢印はラベル「create」のエッジであり、図4のイベント条件の表の1行目(「P4」のプロセスが「P5」のプロセスを生成)に対応している。また、図6に示すグラフ構造のノードN2_7、N2_8、N2_9はそれぞれ、図4のプロセス条件の表のプロセス条件IDが「P5」の実行ファイルパス「dir:tmp」、「name:q2」、「ext:exe」に対応している。図6に示すノードN2_2からノードN2_7、N2_8、N2_9の各々に向かう矢印はエッジを示しており、これらのエッジのラベルはそれぞれ、「dir」、「name」、「ext」である。
ノードN2_2からノードN2_13に向かう矢印はラベル「create」のエッジであり、図4のイベント条件の表の2行目(「P5」のプロセスが「file」を生成)に対応している。また、図6に示すグラフ構造のノードN2_14、N2_15、N2_16はそれぞれ、図4のイベント条件の表の2行目の操作対象「dir:appdata」、「name:q3」、「ext:exe」に対応している。図6に示すノードN2_13からノードN2_14、N2_15、N2_16の各々に向かう矢印はエッジを示しており、これらのエッジのラベルはそれぞれ、「dir」、「name」、「ext」である。
図6に示すグラフ構造のノードN2_3は、図4のプロセス条件IDが「P6」のノードに対応している。ここで、ノードN2_2からノードN2_3に向かう矢印はラベル「create」のエッジであり、図4のイベント条件の表の3行目(「P5」のプロセスが「P6」のプロセスを生成)に対応している。また、図6に示すグラフ構造のノードN2_10、N2_11、N2_12はそれぞれ、図4のプロセス条件の表のプロセス条件IDが「P6」の実行ファイルパス「dir:appdata」、「name:q3」、「ext:exe」に対応している。図6に示すノードN2_3からノードN2_10、N2_11、N2_12の各々に向かう矢印はエッジを示しており、これらのエッジのラベルはそれぞれ、「dir」、「name」、「ext」である。
また、ノードN2_3からノードN2_3にループを形成している矢印はラベル「create」のエッジであり、図4のイベント条件の表の4行目(「P6」のプロセスが「P6」のプロセスを生成)に対応している。
また、プロセスに対応するノードN2_1、N2_2、N2_3にはそれぞれ、ルートノードN2_0が接続されている。ルートノードN2_0は、プロセスに対応するノードN2_1、N2_2、N2_3が互いに分離されている場合(エッジで接続されていない場合)でも、これらのノードN2_1、N2_2、N2_3の関係を把握するために便宜上設けられたノードである。
グラフ構造生成部12は、クエリQ1、Q2に対して上述のようなグラフ構造生成処理を実施することで、クエリQ1、Q2のグラフ構造を生成することができる。なお、上述のグラフ構造生成処理は一例であり、本実施の形態にかかる情報処理装置では、上記以外の方法を用いてグラフ構造生成処理を実施してもよい。
図2に示す類似度判定部13は、クエリQ1とクエリQ2の類似度を判定する。具体的には、類似度判定部13は、グラフ構造生成部12で生成されたクエリQ1のグラフ構造とクエリQ2のグラフ構造とを用いて、クエリQ1とクエリQ2の類似度を判定する。例えば、類似度判定部13は、クエリQ1のグラフ構造が備えるノードおよびエッジの少なくとも一方と、クエリQ2のグラフ構造が備えるノードおよびエッジの少なくとも一方と、を対応づけることで、クエリQ1とクエリQ2の類似度スコアを算出してもよい。
すなわち、類似度判定部13は、クエリQ1のグラフ構造が備えるノードと、クエリQ2のグラフ構造が備えるノードと、を対応づけることで、クエリQ1とクエリQ2の類似度スコアを算出してもよい。また、類似度判定部13は、クエリQ1のグラフ構造が備えるエッジと、クエリQ2のグラフ構造が備えるエッジと、を対応づけることで、クエリQ1とクエリQ2の類似度スコアを算出してもよい。また、類似度判定部13は、クエリQ1のグラフ構造が備えるノードおよびエッジの各々と、クエリQ2のグラフ構造が備えるノードおよびエッジの各々と、を対応づけることで、クエリQ1とクエリQ2の類似度スコアを算出してもよい。
類似度判定部13は、算出した類似度スコアが所定の閾値以上である場合に、クエリQ1とクエリQ2とが類似であると判定することができる。なお、類似度判定部13における類似度判定の詳細については後述する。
統合部14は、類似度判定部13の判定結果に応じてクエリQ1とクエリQ2とを統合する。具体的には、統合部14は、類似度判定部13においてクエリQ1とクエリQ2とが類似すると判定された場合、クエリQ1とクエリQ2とを統合する。例えば、統合部14は、クエリQ1に対応するグラフ構造とクエリQ2に対応するグラフ構造との間の共通部分(共通部分グラフ)を抽出して、クエリQ1とクエリQ2とを統合することができる。
図7は、統合部14における統合処理の一例を説明するための図であり、クエリQ1のグラフ構造とクエリQ2のグラフ構造との間の共通部分のグラフ構造(クエリQMに対応)の一例を示す図である。なお、図7に示す共通部分のグラフ構造は、後述する類似度判定部13における類似度判定においても用いられる場合がある。
図7に示すグラフ構造において、ノードNM_1は、図5のクエリ構造のノードN1_1と図6のクエリ構造のノードN2_1に対応している。図7のノードNM_4、NM_5、NM_6はそれぞれ、図5のノードN1_4、N1_5、N1_6と図6のノードN2_4、N2_5、N2_6に対応している。図7のノードNM_1からノードNM_4、NM_5、NM_6の各々に向かうエッジは、図5のノードN1_1からノードN1_4、N1_5、N1_6の各々に向かうエッジと図6のノードN2_1からノードN2_4、N2_5、N2_6の各々に向かうエッジに対応している。
図7のノードNM_2は、図5のノードN1_2と図6のノードN2_2に対応している。図7のノードNM_1からノードNM_2に向かうエッジは、図5のノードN1_1からノードN1_2に向かうエッジと図6のノードN2_1からノードN2_2に向かうエッジに対応している。図7のノードNM_7、NM_9はそれぞれ、図5のノードN1_7、N1_9と図6のノードN2_7、N2_9に対応している。図7のノードNM_2からノードNM_7、NM_9の各々に向かうエッジは、図5のノードN1_2からノードN1_7、N1_9の各々に向かうエッジと図6のノードN2_2からノードN2_7、N2_9の各々に向かうエッジに対応している。ここで、図5のノードN1_8のラベルは「name:p2」であり、図6のノードN2_8のラベルは「name:q2」であり、両者は互いに異なる。したがって、図7ではこれらのノードに対応するノードが削除されている。
図7のノードNM_13は、図5のノードN1_13と図6のノードN2_13に対応している。図7のノードNM_14、NM_16はそれぞれ、図5のノードN1_14、N1_16と図6のノードN2_14、N2_16に対応している。図7のノードNM_13からノードNM_14、NM_16の各々に向かうエッジは、図5のノードN1_13からノードN1_14、N1_16の各々に向かうエッジと図6のノードN2_13からノードN2_14、N2_16の各々に向かうエッジに対応している。ここで、図5のノードN1_15のラベルは「name:p3」であり、図6のノードN2_15のラベルは「name:q3」であり、両者は互いに異なる。したがって、図7ではこれらのノードに対応するノードが削除されている。
図7のノードNM_3は、図5のノードN1_3と図6のノードN2_3に対応している。図7のノードNM_2からノードNM_3に向かうエッジは、図5のノードN1_2からノードN1_3に向かうエッジと図6のノードN2_2からノードN2_3に向かうエッジに対応している。図7のノードNM_10、NM_12はそれぞれ、図5のノードN1_10、N1_12と図6のノードN2_10、N2_12に対応している。図7のノードNM_3からノードNM_10、NM_12の各々に向かうエッジは、図5のノードN1_3からノードN1_10、N1_12の各々に向かうエッジと図6のノードN2_3からノードN2_10、N2_12の各々に向かうエッジに対応している。ここで、図5のノードN1_11のラベルは「name:p3」であり、図6のノードN2_11のラベルは「name:q3」であり、両者は互いに異なる。したがって、図7ではこれらのノードに対応するノードが削除されている。また、図7では、図5のノードN1_17、N1_18、N1_19、N1_20に対応するノードが削除されている。
このように、統合部14は、クエリQ1に対応するグラフ構造とクエリQ2に対応するグラフ構造との間の共通部分を抽出することで、図7に示すようなグラフ構造を生成することができる。そして統合部14は、抽出したグラフ構造を用いることで、クエリQ1とクエリQ2とを統合したクエリQMを生成することができる。
図8は、統合後のクエリQMを示す表であり、図7に示すグラフ構造を用いて生成したクエリ(つまり、統合したクエリQM)を示す表である。図8に示す表では、統合後のクエリQMのプロセス条件およびイベント条件を示している。ただし、共通部分を抽出する際に、例えば、「process」ノードからのエッジがないイベント条件のような、クエリとして表現できない構造を含むグラフ構造が抽出される可能性がある。この場合、グラフ構造からクエリ表現を得るためには、ルートノードから到達できないノードを除外すればよい。
図8に示すプロセス条件の表には、プロセス条件IDと実行ファイルパスとが含まれている。プロセス条件の表の1行目のプロセス条件IDは「P7」、実行ファイルパスは{dir:system, name:browser, ext:exe}である。これは図3に示すクエリQ1のプロセス条件ID「P1」と図4に示すクエリQ2のプロセス条件ID「P4」との共通部分に対応している。図8に示すプロセス条件の表の2行目のプロセス条件IDは「P8」、実行ファイルパスは{dir:tmp, ext:exe}である。これは図3に示すクエリQ1のプロセス条件の表のプロセス条件ID「P2」と図4に示すクエリQ2のプロセス条件の表のプロセス条件ID「P5」との共通部分に対応している。図8に示すプロセス条件の表の3行目のプロセス条件IDは「P9」、実行ファイルパスは{dir:appdata, ext:exe}である。これは図3に示すクエリQ1のプロセス条件の表のプロセス条件ID「P3」と図4に示すクエリQ2のプロセス条件の表のプロセス条件ID「P6」との共通部分に対応している。
また、図8に示すイベント条件の表の1行目のプロセス条件IDは「P7」、イベントは「process」、アクセスは「create」、操作対象は「P8」である。これは図3に示すイベント条件の表の1行目と図4に示すイベント条件の表の1行目との共通部分に対応している。図8に示すイベント条件の表の2行目のプロセス条件IDは「P8」、イベントは「file」、アクセス種別は「create」、操作対象は{dir:appdata, ext:exe}である。これは図3に示すイベント条件の表の2行目と図4に示すイベント条件の表の2行目との共通部分に対応している。また、図8に示すイベント条件の表の3行目のプロセス条件IDは「P8」、イベントは「process」、アクセス種別は「create」、操作対象は「P9」である。これは図3に示すイベント条件の表の3行目と図4に示すイベント条件の表の3行目との共通部分に対応している。
統合部14は、上述のような処理をすることで、クエリQ1とクエリQ2とを統合したクエリQMを生成することができる。
図2に示すクエリ格納部15は、クエリ生成部11で生成されたクエリや統合部14で統合されたクエリを格納する。
上述のように、本実施の形態にかかる発明では、クエリQ1とクエリQ2の類似度を判定し、この判定結果に応じてクエリQ1とクエリQ2とを統合している。つまり、本実施の形態にかかる情報処理装置では、クエリQ1とクエリQ2とが類似であると判定された場合、クエリQ1とクエリQ2とを統合している。したがって、動的解析結果を用いて生成されるクエリの数が大量である場合でも、類似するクエリ同士を統合することができるので、管理するクエリの数(つまり、クエリ格納部15に格納されるクエリの数)を削減することができる。したがって、マルウェアの挙動検出に用いられるクエリの管理を容易にすることができる。
特に、動的解析装置18の解析対象となるマルウェア検体が、ばらまき型の同種のマルウェア検体の場合は、クエリ生成部11で生成されるクエリの数が大量になる。本実施の形態にかかる発明では、上述のように類似するクエリ同士を統合しているので、クエリ生成部11において大量のクエリが生成された場合であっても、これらのクエリの数を効果的に削減することができる。
例えば、本実施の形態にかかる情報処理装置では、クエリ生成部11において新たにクエリが生成されると、類似度判定部13は、クエリ生成部11から供給されたクエリと、クエリ格納部15に予め格納されているクエリとの類似度を判定する。そして、統合部14は、これらのクエリが類似すると判定された場合、これらのクエリを統合して、クエリ格納部15に格納されていたクエリを、統合後のクエリを用いて書き換えてもよい。
例えば、本実施の形態にかかる情報処理装置では、クエリ格納部15に複数のクエリが格納されており、類似度判定部13は、クエリ生成部11で生成されたクエリと、クエリ格納部15に格納されている複数のクエリの各々との類似度を各々判定する。そして、統合部14は、複数の判定結果のうち類似度が最も高いクエリを、クエリ生成部11で生成されたクエリと統合する。その後、クエリ格納部15に格納されていた類似度が最も高いクエリを、統合後のクエリを用いて書き換えてもよい。本実施の形態にかかる情報処理装置のこのような動作について、以下で詳細に説明する。
図9は、本実施の形態にかかる情報処理装置の動作の一例を説明するためのフローチャートである。以下で説明する情報処理装置の動作の前提条件として、図2に示すクエリ格納部15に予め複数のクエリQ2が格納されているものとする。また、以下の動作は、クエリ生成部11において新たにクエリQ1が生成されたタイミング(図9のステップS1)をトリガーとしている。
クエリ生成部11において新たにクエリQ1が生成されると(ステップS1)、情報処理装置10は、クエリ格納部15に格納されている全てのクエリQ2に対して、以下の処理を繰り返す(ステップS2)。
すなわち、類似度判定部13は、クエリQ1とクエリQ2の類似度スコアを算出する(ステップS3)。例えば、類似度判定部13は、クエリQ1のグラフ構造が備えるノードおよびエッジの少なくとも一方と、クエリQ2のグラフ構造が備えるノードおよびエッジの少なくとも一方と、を対応づけることで、クエリQ1とクエリQ2の類似度スコアを算出することができる。そして、類似度判定部13は、算出した類似度スコアが所定の閾値以上であるか否かを判断する(ステップS4)。算出した類似度スコアが所定の閾値以上である場合(ステップS4:Yes)、類似度判定部13は、クエリQ1とクエリQ2とが類似であると判定し、Q2を統合候補として一時的にメモリに保持する。一方、算出した類似度スコアが所定の閾値よりも小さい場合(ステップS4:No)、類似度判定部13は、クエリ格納部15に格納されている次のクエリQ2に対して類似度判定処理(ステップS2~S5)を行う。以降、このような類似度判定処理を、クエリ格納部15に格納されている全てのクエリQ2に対して実施する。
そして、クエリ格納部15に格納されている全てのクエリQ2に対して類似度判定処理を実施した結果、統合候補がない場合(ステップS6:No)、クエリ生成部11において新たに生成されたクエリQ1をクエリ格納部15に格納する(ステップS7)。統合候補がない場合とは、クエリQ1に類似するクエリQ2がない場合である。
一方、統合候補がある場合は(ステップS6:Yes)、統合候補の中から所定の条件を満たすクエリQtを取得する(ステップS8)。ここで所定の条件を満たすクエリとは、例えば統合候補のうち、ステップS3で算出された類似度スコアが最も高いクエリである。なお、所定の条件はこれに限定されることはなく、情報処理装置10を使用するユーザが任意に決定してもよい。
そして、統合部14は、クエリQ1とクエリQtとを統合してクエリQMを生成する(ステップS9)。例えば、統合部14は、クエリQ1に対応するグラフ構造とクエリQtに対応するグラフ構造との間の共通部分を抽出することで、統合後のクエリQMを生成することができる。
その後、情報処理装置10は、クエリ格納部15からクエリQtを削除するとともに、統合後のクエリQMをクエリ格納部15に追加する(ステップS10)。換言すると、情報処理装置10は、クエリ格納部15に格納されているクエリQtを、統合後のクエリQMを用いて書き換える。
本実施の形態では、クエリ生成部11で新たなクエリが生成された際に、クエリ格納部15に新たなクエリをそのまま格納するのではなく、上述のような処理を実施することで、クエリ格納部15に格納されるクエリの数を削減している。つまり、クエリ格納部15に既に格納されているクエリと新たに生成されたクエリとが類似する場合、これらのクエリを統合している。そして、クエリ格納部15に格納されていたクエリを統合後のクエリで書き換えている。したがって、クエリ格納部15に格納されるクエリの数を削減することができる。よって、クエリの数の増加を抑制することができ、クエリの管理を容易にすることができる。
次に、類似度判定部13における類似度判定について詳細に説明する。
上述のように、類似度判定部13は、クエリQ1のグラフ構造が備えるノードおよびエッジの少なくとも一方と、クエリQ2のグラフ構造が備えるノードおよびエッジの少なくとも一方と、を対応づけることで、クエリQ1とクエリQ2の類似度スコアを算出する。そして、類似度スコアが所定の閾値以上である場合に、クエリQ1とクエリQ2とが類似であると判定する。類似度判定部13は、例えば、次のような方法を用いて類似度スコアを算出することができる。
まず、クエリQ1のグラフ構造(図5参照)の詳細度スコアと、クエリQ2のグラフ構造(図6参照)の詳細度スコアとを算出する。例えば、グラフ構造の辺の数(エッジの数)を詳細度スコアとした場合、図5に示すクエリQ1のグラフ構造ではエッジの数が22(ルートノードN1_0から伸びる3つのエッジを含む)なので、クエリQ1のグラフ構造の詳細度スコアは22となる。また、図6に示すクエリQ2のグラフ構造ではエッジの数が19(ルートノードN2_0から伸びる3つのエッジを含む)なので、クエリQ2のグラフ構造の詳細度スコアは19となる。
また、クエリQ1のグラフ構造とクエリQ2のグラフ構造との間の共通部分のグラフ構造(図7参照:クエリQMのグラフ構造に対応)の詳細度スコアを算出する。図7に示すクエリQMのグラフ構造ではエッジの数が15(ルートノードNM_0から伸びる3つのエッジを含む)なので、クエリQMのグラフ構造の詳細度スコアは15となる。
そして、上述のようにして求めた詳細度スコアを用いて、類似度スコアを算出する。本実施の形態では、例えば次の式を用いて類似度スコアを算出することができる。
類似度スコア=(クエリQMの詳細度スコア×2)/(クエリQ1の詳細度スコア+クエリQ2の詳細度スコア)=(15×2)/(22+19)≒0.73
上記式より、クエリQ1とクエリQ2の類似度スコアは約0.73となる。
なお、上述の類似度スコアの算出方法は一例であり、本実施の形態では上記以外の方法を用いて類似度スコアを算出してもよい。例えば、上述の例では、グラフ構造の辺の数(エッジの数)を詳細度スコアとした場合について説明したが、ノードを詳細度スコアの算出に用いてもよい。また、ノードとエッジの両方を詳細度スコアの算出に用いてもよい。更に、ノードやエッジに重み付けをして詳細度スコアを算出してもよい。
また、本実施の形態において類似度判定部13は、クエリQ1のグラフ構造が備えるノードおよびエッジの各々と、クエリQ2のグラフ構造が備えるノードおよびエッジの各々との対応づけに関する最適化問題を解くことで、詳細度スコアを算出してもよい。
図10、図11は、類似度スコアの算出方法の一例を説明するための図である。図10は、目的関数、制約、変数、及びパラメータをそれぞれ示している。図11は、図10で用いられる符号の説明を示している。
図10の式1に示す目的関数において、第一項目はノード間の対応付けに関する項、つまり、クエリQ1のグラフ構造のノードとクエリQ2のグラフ構造のノードとの間の対応付けに関する項である。また、第二項目はエッジ間の対応付けに関する項、つまり、クエリQ1のグラフ構造のエッジとクエリQ2のグラフ構造のエッジとの間の対応付けに関する項である。
式1において、iはクエリQ1のノード、jはクエリQ2のノードを意味している。また、wはノードの重みであり。xi,jはクエリQ1のノードiとクエリQ2のノードjの対応付けを示す変数であり、iとjを対応付けるときは「1」、対応付けないときは「0」である。また、式1の第二項目において、vはエッジの重みである。また、Ie1 L,e2 Lはe1のラベルとe2のラベルとが等しいときに「1」、異なるときに「0」となる。es、edはそれぞれ、エッジeの始点ノードと終点ノードである。
式2-1、式2-2は、1つのノードが2以上のノードとマッチングをとることはないことを示す制約条件である。式3は、ラベルが一致するノード間で対応付けをすることを示す制約条件である。
したがって、式1の第一項目では、iとjのラベルが一致するとき(ノードが一致するとき)に値が加算される。また、式1の第二項目では、e1のラベルとe2のラベルとが等しいときに値が加算される。よって、式1では、クエリQ1のグラフ構造とクエリQ2のグラフ構造との間で、互いに一致するノードとエッジの数が多いほど、式1の値が大きくなる。つまり、式1の値を詳細度スコアとして用いた場合、クエリQ1のグラフ構造とクエリQ2のグラフ構造とが類似するほど、詳細度スコアが大きくなる。このとき求めた詳細度スコアは、クエリQM(図7参照)の詳細度スコアに対応している。
類似度スコアを算出するためには、更に、クエリQ1のグラフ構造(図5参照)の詳細度スコアと、クエリQ2のグラフ構造(図6参照)の詳細度スコアとを算出する。例えば、図5に示すクエリQ1のグラフ構造のノードとエッジに対して、図10のパラメータに示したノードの重みwとエッジの重みvを用いた加重和を計算することで、クエリQ1の詳細度スコアを算出することができる。同様に、図6に示すクエリQ2のグラフ構造のノードとエッジに対して、図10のパラメータに示したノードの重みwとエッジの重みvを用いた加重和を計算することで、クエリQ2の詳細度スコアを算出することができる。
そして、上述のようにして求めたクエリQ1の詳細度スコア、クエリQ2の詳細度スコア、及びクエリQMの詳細度スコアを用いて、類似度スコアを算出する。上述のように、本実施の形態では例えば次の式を用いて類似度スコアを算出することができる。
類似度スコア=(クエリQMの詳細度スコア×2)/(クエリQ1の詳細度スコア+クエリQ2の詳細度スコア)
そして、類似度判定部13は、類似度スコアが所定の閾値以上である場合に、クエリQ1とクエリQ2とが類似であると判定する。
以上で説明した方法を用いることで、類似度判定部13はクエリQ1とクエリQ2との類似度を判定することができる。
統合部14は、クエリQ1に対して類似度判定されたクエリのうち、所定の条件を満たすクエリQ2との共通部分のグラフ構造(図7参照)を用いて、クエリQMを生成する。ここで所定の条件とは、例えば、(1)詳細度スコアを用いて算出された類似度スコアが最大となる場合、または(2)目的関数に対して最適化問題を解くことで算出した類似度スコアが最大となる場合、である。
なお、上述のように、類似度判定部13において類似度判定を実施する際、クエリQ1のグラフ構造とクエリQ2のグラフ構造との間の共通部分のグラフ構造(図7参照)を用いて類似度判定をする場合もある。このような場合、統合部14は、類似度判定部13において生成された共通部分のグラフ構造(図7参照)を用いて、統合処理を実施してもよい。図10で示した最適化問題を用いて詳細度スコアを算出する場合は、目的関数を最大にするxi,jが表すノード間の対応付けに基づいて共通部分のグラフ構造を抽出できる。
次に、本実施の形態にかかる情報処理装置の他の構成例について説明する。
上述の情報処理装置10では、統合部14において、クエリQ1に対応するグラフ構造とクエリQ2に対応するグラフ構造との間の共通部分を抽出して、クエリQ1とクエリQ2とを統合している。上述の統合処理では、クエリQ1のノードのラベルとクエリQ2のノードのラベルとが異なる場合、共通部分ではないとしてこれらのノードを削除する処理を行っていた。
しかしながら、このような統合処理を行うと、統合後のクエリの条件が必要以上に緩くなる場合がある。すなわち、クエリの統合によってクエリの一部が削除されるが、このときに削除されるノードの数が多い場合は、クエリの条件が緩くなりすぎてクエリの検索精度が低下するおそれがある。
このような問題点を解決するために、本実施の形態にかかる情報処理装置の他の構成例では、統合後のクエリのノードにラベルの集合を保持可能に構成している。具体的には、統合部14は、クエリQ1のグラフ構造の特定ノードに含まれるラベルL1とクエリQ2のグラフ構造の特定ノードに含まれるラベルL2とが互換性を有する場合、統合後のクエリの特定ノードにラベルL1とラベルL2とを含めるようにしている。以下、本実施の形態にかかる情報処理装置の他の構成例について詳細に説明する。
図12~図15は、本実施の形態にかかる情報処理装置の他の構成例を説明するための図である。図12はクエリQ3、Q4の一例を示す表であり、図13は統合処理の他の例を説明するための図であり、図14は統合後のクエリQMを示す表である。なお、クエリQ3、Q4ではクエリの一部のみを示している。また、互換性の有無は、ノードの持つ意味に応じて任意に定義することができる。以下の説明おいては一例として、「name:browser」と「name:unknown」は互いに互換性がなく、「ext:exe」と「ext:scr」は互いに互換性があると事前に定義されているものとする。
図12に示すように、クエリQ3のプロセス条件において、プロセス条件IDは「P31」、実行ファイルパスは{dir:system, name:browser, ext:exe}である。また、クエリQ4のプロセス条件において、プロセス条件IDは「P41」、実行ファイルパスは{dir:system, name:unknown, ext:scr}である。
このようなクエリQ3、Q4をグラフ構造で表すと、図13に示すようになる。
図13に示すクエリQ3のグラフ構造において、ノードN3_1は、図12のクエリQ3のプロセス条件IDが「P31」のノードに対応している。また、ノードN3_2、N3_3、N3_4はそれぞれ、図12のクエリQ3のプロセス条件IDが「P31」の実行ファイルパス「dir:system」、「name:browser」、「ext:exe」に対応している。ノードN3_1からノードN3_2、N3_3、N3_4の各々に向かう矢印はエッジを示しており、これらのエッジのラベルはそれぞれ、「dir」、「name」、「ext」である。ノードN3_0はルートノードである。
図13に示すクエリQ4のグラフ構造において、ノードN4_1は、図12のクエリQ4のプロセス条件IDが「P41」のノードに対応している。また、ノードN4_2、N4_3、N4_4はそれぞれ、図12のクエリQ4のプロセス条件IDが「P41」の実行ファイルパス「dir:system」、「name:unknown」、「ext:scr」に対応している。ノードN4_1からノードN4_2、N4_3、N4_4の各々に向かう矢印はエッジを示しており、これらのエッジのラベルはそれぞれ、「dir」、「name」、「ext」である。ノードN4_0はルートノードである。
図13の統合結果は、クエリQ3とクエリQ4との統合結果を示すグラフ構造である。
図13の統合結果に示すグラフ構造において、ノードNM2_1は、クエリQ3のクエリ構造のノードN3_1とクエリQ4のクエリ構造のノードN4_1に対応している。図13の統合結果に示すグラフ構造において、ノードNM2_2は、クエリQ3のクエリ構造のノードN3_2とクエリQ4のクエリ構造のノードN4_2に対応している。つまり、クエリQ3のクエリ構造のノードN3_2のラベルは「dir:system」であり、クエリQ4のクエリ構造のノードN4_2のラベルは「dir:system」であり、これらは同一のラベルなので、統合結果に示すグラフ構造において、ノードNM2_2として示している。
一方、クエリQ3のクエリ構造のノードN3_3のラベルは「name:browser」であり、クエリQ4のクエリ構造のノードN4_3のラベルは「name:unknown」であり、これらのラベルは異なる。また、これらのラベルには互換性がないので、これらに対応するノードについては統合結果に示すグラフ構造にから削除している。
また、クエリQ3のクエリ構造のノードN3_4のラベルは「ext:exe」であり、クエリQ4のクエリ構造のノードN4_4のラベルは「ext:scr」であり、これらのラベルは異なる。しかし、これらのラベルは互いに互換性を有する(互換性を有すると定義している)ので、統合結果に示すグラフ構造において、ノードNM2_4として示している。このとき、ノードNM2_4にはラベルとして2つのラベルの和集合(ext:exe、ext:scr)が含まれており、これらは検索時にOR条件として扱われる。
図13に示す統合結果のグラフ構造をクエリとして示すと図14に示す表のようになる。図14に示すクエリでは、プロセスIDが「P51」、実行ファイルパスが{dir:system, ext: [exe, scr]}となっている。
このように、本実施の形態の他の構成例では、各々のクエリに対応するグラフ構造において、互いに対応するノードのラベルが異なる場合であっても、これらのラベルに互換性がある場合は、対応するノードにおいてラベルの和集合をとるようにしている。これらの和集合は、検索時にOR条件として扱われるため、クエリの条件が緩くなりすぎてクエリの検索精度が低下することを抑制することができる。
図15は、本実施の形態の他の構成例における、類似度スコアの算出方法の一例を説明するための図である。図15に示す式は、図10に示した式と対応している。図15では、式1a、式3aが、図10に示した式1、式3と異なる。また、図15のパラメータwi,jが、図10に示したパラメータw(ノードの重み)と異なる。
図15では、式3aに示すように、ノードi(ノードQ1)のラベルiLとノードj(ノードQ2)のラベルjLとが互いに互換性がない場合、ノード間の対応付けをしない(xi,j=0)ようにしている。また、重み付けパラメータwi,jを決定する際、ノードi(ノードQ1)とノードj(ノードQ2)との互換性を反映した重みとなるようにしている。これ以外は、図10に示した場合と同様である。
以下、ノードの重みの計算方法の一例について説明する。
例えば、ノードの持つラベル集合Lに対して以下の重みを使用して詳細度スコアを計算することができる。つまり、ラベル集合Lに「互換性がないラベル」が含まれている場合は、ノード重みを0とする。一方、ラベル集合Lに「互換性がないラベル」が含まれていない場合は、ノード重みをラベル集合Lの要素数の逆数とする。
具体的に説明すると、i、jに対するラベル集合LiとLjがあるとき、LUをLiとLjの和集合とする。そして、LUに「互換性がないラベル」が含まれる場合はノード重みを0とする。例えば、Li={“name:malware”}とLj={“name:browser”}に対して”name:malware”と”name:browser”に互換性がないと設定(定義)されている場合は、wi,j=0とする。
一方、LUに「互換性がないラベル」が含まれていない場合は、ノード重み=LUの要素数の逆数とする。例えば、Li={“ext:exe”,”ext:scr”}、Lj={“ext:scr”,”ext:dll”}で”ext:exe”,”ext:scr”,”ext:dll”が互いに互換性があると定義されているとき、LU={“ext:exe”,”ext:scr”,”extdll”}のサイズは3であり、ノード重みはwi,j=1/3となる。
例えば、ラベル集合Lの要素数が5つの場合は、ノード重みは「1/5」となる。つまり、この場合は、ラベル集合Lの要素数が多くなるほど、ノード重みが低くなる。この理由は、ラベル集合Lの要素数が多くなるほど、ノードに含まれるラベル数(和集合のラベルの集合)が多くなり、ノードの重み(重要度)が低下するからである。
図13を用いて詳細度スコアの算出方法の一例について具体的に説明する。図13では、各々のエッジの重みを「1」とする。また、ノードのラベルの数が「1」である場合は、ノードの重みを「1」とする。例えば、クエリQ3では、ノードの数が5つであり(ルートノードを含む)、エッジの数が4つであるので、詳細度スコアは「9.0」となる。また、クエリQ4では、ノードの数が5つであり(ルートノードを含む)、エッジの数が4つであるので、詳細度スコアは「9.0」となる。
統合結果では、ラベルの数が「1」であるノードの数が3つであり、エッジの数が3つである。また、ラベルの数が「2」であるノード(NM2_4)が1つである。ここで、ノード(NM2_4)の詳細度スコアは「1/2」となるので、統合結果の詳細度スコアは「6.5」となる。
次に、本実施の形態にかかる情報処理装置を含む情報処理システムについて説明する。図16は、本実施の形態にかかる情報処理装置を含む情報処理システムを説明するためのブロック図である。
図16に示すように、本実施の形態にかかる情報処理システム100は、上述の情報処理装置10に加えて、検索装置20を備える。検索装置20には端末25が接続されており、端末25から検索装置20に端末25のイベント情報が供給される。端末25は、脅威ハンティングの対象(つまり、マルウェアの検査対象)となる端末である。端末25は複数であってもよい。例えば、端末25は、ネットワークに接続された複数のコンピュータである。
検索装置20には、情報処理装置10のクエリ格納部15からクエリが供給される。検索装置20は、端末25から収集したイベント情報のうち、情報処理装置10(クエリ格納部15)から供給されたクエリに合致するイベント情報を検索することで、マルウェアが動作している端末を特定することができる。
図16に示すように、検索装置20は、イベント情報格納部21および検索部22を備える。イベント情報格納部21は、端末25から収集したイベント情報を格納する。例えば、イベント情報格納部21は、複数の端末25から収集したイベント情報を端末25の各々と対応づけて(つまり、端末IDと各々対応付けて)格納することができる。
検索部22は、情報処理装置10(クエリ格納部15)から供給されたクエリを用いて、イベント情報格納部21に格納されているイベント情報の中から当該クエリに合致するイベント情報を検索する。これにより検索部22は、複数の端末25の中からクエリに合致する端末を特定することができる。これにより、検索装置20は、特定の挙動を示す端末(つまり、マルウェアが動作している可能性のある端末)を特定することができる。
上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、上述の情報処理を、プロセッサであるCPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。
すなわち、マルウェアの挙動検出に用いられる第1及び第2のクエリの類似度を判定する処理と、前記判定結果に応じて前記第1及び第2のクエリを統合する処理と、を実施する。そして、前記類似度を判定する際、前記第1のクエリに対応する第1のグラフ構造と前記第2のクエリに対応する第2のグラフ構造とを用いて、前記第1及び第2のクエリの類似度を判定する。また、前記第1及び第2のクエリを統合する際、前記第1のグラフ構造と前記第2のグラフ構造との間の共通部分を抽出して、前記第1及び第2のクエリを統合する。このような処理を実行するためのプログラムを、コンピュータに実行させてもよい。
図17は、本発明にかかる情報処理用プログラムを実行するためのコンピュータを示すブロック図である。図17に示すように、コンピュータ50は、プロセッサ51およびメモリ52を備える。メモリ52には、本発明にかかる情報処理用のプログラムが格納されている。プロセッサ51は、メモリ52から情報処理用のプログラムを読み出す。そして、プロセッサ51において情報処理用のプログラムを実行することで、上述した本発明にかかる情報処理を実行することができる。
上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
マルウェアの挙動検出に用いられる第1及び第2のクエリの類似度を判定する類似度判定部と、
前記類似度判定部の判定結果に応じて前記第1及び第2のクエリを統合する統合部と、を備え、
前記類似度判定部は、前記第1のクエリに対応する第1のグラフ構造と前記第2のクエリに対応する第2のグラフ構造とを用いて、前記第1及び第2のクエリの類似度を判定し、
前記統合部は、前記第1のグラフ構造と前記第2のグラフ構造との間の共通部分を抽出して、前記第1及び第2のクエリを統合する、
情報処理装置。
(付記2)
前記第1及び第2のクエリをそれぞれ有向グラフとして表現することで前記第1及び第2のグラフ構造を生成するグラフ構造生成部を更に備える、付記1に記載の情報処理装置。
(付記3)
前記類似度判定部は、
前記第1のグラフ構造が備えるノードおよびエッジの少なくとも一つと、前記第2のグラフ構造が備えるノードおよびエッジの少なくとも一つと、を対応づけることで、前記第1及び第2のクエリの類似度スコアを算出し、
前記類似度スコアが所定の閾値以上である場合に、前記第1及び第2のクエリが類似であると判定する、
付記1または2に記載の情報処理装置。
(付記4)
前記類似度判定部は、前記第1のグラフ構造が備えるノードおよびエッジの各々と、前記第2のグラフ構造が備えるノードおよびエッジの各々と、の対応づけに関する最適化問題を解くことで前記類似度スコアを算出する、付記3に記載の情報処理装置。
(付記5)
マルウェアの挙動を動的解析する動的解析装置から動的解析結果が供給され、当該供給された動的解析結果を用いてクエリを生成するクエリ生成部を更に備える、付記1~4のいずれか一項に記載の情報処理装置。
(付記6)
前記クエリを格納するクエリ格納部を更に備え、
前記類似度判定部は、前記クエリ生成部から供給された前記第1のクエリと、前記クエリ格納部から供給された前記第2のクエリと、の類似度を判定し、
前記統合部は、前記第1及び第2のクエリが類似であると判定された場合、前記第1及び第2のクエリを統合し、前記クエリ格納部に格納されている前記第2のクエリを前記統合したクエリを用いて書き換える、
付記5に記載の情報処理装置。
(付記7)
前記クエリを格納するクエリ格納部を更に備え、
前記クエリ格納部には、前記第2のクエリとして複数のクエリが格納されており、
前記類似度判定部は、前記クエリ生成部から供給された前記第1のクエリと、前記クエリ格納部から供給された複数の前記第2のクエリと、の類似度を各々判定し、
前記統合部は、複数の前記第2のクエリのうち前記類似度が最も高い第2のクエリを前記第1のクエリと統合し、前記クエリ格納部に格納されている前記類似度が最も高い第2のクエリを前記統合したクエリを用いて書き換える、
付記5に記載の情報処理装置。
(付記8)
前記統合部は、前記第1のグラフ構造の特定ノードに含まれる第1のラベルと前記第2のグラフ構造の特定ノードに含まれる第2のラベルとが互換性を有する場合、前記統合後のクエリの前記特定ノードに前記第1のラベルと前記第2のラベルとを含める、付記1~7のいずれか一項に記載の情報処理装置。
(付記9)
付記1~8のいずれか一項に記載の情報処理装置と、
端末から収集したイベント情報のうち、前記情報処理装置から供給されたクエリに合致するイベント情報を検索する検索装置と、を備える、
情報処理システム。
(付記10)
前記検索装置は、
複数の端末から収集したイベント情報を前記端末の各々と対応づけて格納するイベント情報格納部と、
前記イベント情報格納部に格納されている前記イベント情報の中から、前記情報処理装置から供給されたクエリに合致するイベント情報を検索し、前記複数の端末の中から前記クエリに合致する端末を特定する検索部と、を備える、
付記9に記載の情報処理システム。
(付記11)
マルウェアの挙動検出に用いられる第1及び第2のクエリの類似度を判定し、
前記判定結果に応じて前記第1及び第2のクエリを統合し、
前記類似度を判定する際、前記第1のクエリに対応する第1のグラフ構造と前記第2のクエリに対応する第2のグラフ構造とを用いて、前記第1及び第2のクエリの類似度を判定し、
前記第1及び第2のクエリを統合する際、前記第1のグラフ構造と前記第2のグラフ構造との間の共通部分を抽出して、前記第1及び第2のクエリを統合する、
情報処理方法。
(付記12)
マルウェアの挙動検出に用いられる第1及び第2のクエリの類似度を判定し、
前記判定結果に応じて前記第1及び第2のクエリを統合し、
前記類似度を判定する際、前記第1のクエリに対応する第1のグラフ構造と前記第2のクエリに対応する第2のグラフ構造とを用いて、前記第1及び第2のクエリの類似度を判定し、
前記第1及び第2のクエリを統合する際、前記第1のグラフ構造と前記第2のグラフ構造との間の共通部分を抽出して、前記第1及び第2のクエリを統合する、
処理をコンピュータに実行させるためのプログラムが格納された非一時的なコンピュータ可読媒体。
以上、本発明を上記実施の形態に即して説明したが、本発明は上記実施の形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
10 情報処理装置
11 クエリ生成部
12 グラフ構造生成部
13 類似度判定部
14 統合部
15 クエリ格納部
18 動的解析装置
20 検索装置
21 イベント情報格納部
22 検索部
25 端末
50 コンピュータ
51 プロセッサ
52 メモリ
100 情報処理システム

Claims (12)

  1. マルウェアの挙動検出に用いられる第1及び第2のクエリの類似度を判定する類似度判定部と、
    前記類似度判定部の判定結果に応じて前記第1及び第2のクエリを統合する統合部と、を備え、
    前記類似度判定部は、前記第1のクエリに対応する第1のグラフ構造と前記第2のクエリに対応する第2のグラフ構造とを用いて、前記第1及び第2のクエリの類似度を判定し、
    前記統合部は、前記第1のグラフ構造と前記第2のグラフ構造との間の共通部分を抽出して、前記第1及び第2のクエリを統合する、
    情報処理装置。
  2. 前記第1及び第2のクエリをそれぞれ有向グラフとして表現することで前記第1及び第2のグラフ構造を生成するグラフ構造生成部を更に備える、請求項1に記載の情報処理装置。
  3. 前記類似度判定部は、
    前記第1のグラフ構造が備えるノードおよびエッジの少なくとも一つと、前記第2のグラフ構造が備えるノードおよびエッジの少なくとも一つと、を対応づけることで、前記第1及び第2のクエリの類似度スコアを算出し、
    前記類似度スコアが所定の閾値以上である場合に、前記第1及び第2のクエリが類似であると判定する、
    請求項1または2に記載の情報処理装置。
  4. 前記類似度判定部は、前記第1のグラフ構造が備えるノードおよびエッジの各々と、前記第2のグラフ構造が備えるノードおよびエッジの各々と、の対応づけに関する最適化問題を解くことで前記類似度スコアを算出する、請求項3に記載の情報処理装置。
  5. マルウェアの挙動を動的解析する動的解析装置から動的解析結果が供給され、当該供給された動的解析結果を用いてクエリを生成するクエリ生成部を更に備える、請求項1~4のいずれか一項に記載の情報処理装置。
  6. 前記クエリを格納するクエリ格納部を更に備え、
    前記類似度判定部は、前記クエリ生成部から供給された前記第1のクエリと、前記クエリ格納部から供給された前記第2のクエリと、の類似度を判定し、
    前記統合部は、前記第1及び第2のクエリが類似であると判定された場合、前記第1及び第2のクエリを統合し、前記クエリ格納部に格納されている前記第2のクエリを前記統合したクエリを用いて書き換える、
    請求項5に記載の情報処理装置。
  7. 前記クエリを格納するクエリ格納部を更に備え、
    前記クエリ格納部には、前記第2のクエリとして複数のクエリが格納されており、
    前記類似度判定部は、前記クエリ生成部から供給された前記第1のクエリと、前記クエリ格納部から供給された複数の前記第2のクエリと、の類似度を各々判定し、
    前記統合部は、複数の前記第2のクエリのうち前記類似度が最も高い第2のクエリを前記第1のクエリと統合し、前記クエリ格納部に格納されている前記類似度が最も高い第2のクエリを前記統合したクエリを用いて書き換える、
    請求項5に記載の情報処理装置。
  8. 前記統合部は、前記第1のグラフ構造の特定ノードに含まれる第1のラベルと前記第2のグラフ構造の特定ノードに含まれる第2のラベルとが互換性を有する場合、前記統合後のクエリの前記特定ノードに前記第1のラベルと前記第2のラベルとを含める、請求項1~7のいずれか一項に記載の情報処理装置。
  9. 請求項1~8のいずれか一項に記載の情報処理装置と、
    端末から収集したイベント情報のうち、前記情報処理装置から供給されたクエリに合致するイベント情報を検索する検索装置と、を備える、
    情報処理システム。
  10. 前記検索装置は、
    複数の端末から収集したイベント情報を前記端末の各々と対応づけて格納するイベント情報格納部と、
    前記イベント情報格納部に格納されている前記イベント情報の中から、前記情報処理装置から供給されたクエリに合致するイベント情報を検索し、前記複数の端末の中から前記クエリに合致する端末を特定する検索部と、を備える、
    請求項9に記載の情報処理システム。
  11. コンピュータが、
    マルウェアの挙動検出に用いられる第1及び第2のクエリの類似度を判定し、
    前記判定結果に応じて前記第1及び第2のクエリを統合し、
    前記類似度を判定する際、前記第1のクエリに対応する第1のグラフ構造と前記第2のクエリに対応する第2のグラフ構造とを用いて、前記第1及び第2のクエリの類似度を判定し、
    前記第1及び第2のクエリを統合する際、前記第1のグラフ構造と前記第2のグラフ構造との間の共通部分を抽出して、前記第1及び第2のクエリを統合する、
    情報処理方法。
  12. マルウェアの挙動検出に用いられる第1及び第2のクエリの類似度を判定し、
    前記判定結果に応じて前記第1及び第2のクエリを統合し、
    前記類似度を判定する際、前記第1のクエリに対応する第1のグラフ構造と前記第2のクエリに対応する第2のグラフ構造とを用いて、前記第1及び第2のクエリの類似度を判定し、
    前記第1及び第2のクエリを統合する際、前記第1のグラフ構造と前記第2のグラフ構造との間の共通部分を抽出して、前記第1及び第2のクエリを統合する、
    処理をコンピュータに実行させるためのプログラム。
JP2021539704A 2019-08-09 2019-08-09 情報処理装置、情報処理システム、情報処理方法、及びプログラム Active JP7243837B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/031643 WO2021028968A1 (ja) 2019-08-09 2019-08-09 情報処理装置、情報処理システム、情報処理方法、及びコンピュータ可読媒体

Publications (3)

Publication Number Publication Date
JPWO2021028968A1 JPWO2021028968A1 (ja) 2021-02-18
JPWO2021028968A5 JPWO2021028968A5 (ja) 2022-04-08
JP7243837B2 true JP7243837B2 (ja) 2023-03-22

Family

ID=74569526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021539704A Active JP7243837B2 (ja) 2019-08-09 2019-08-09 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Country Status (3)

Country Link
US (1) US20220269786A1 (ja)
JP (1) JP7243837B2 (ja)
WO (1) WO2021028968A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016147944A1 (ja) 2015-03-18 2016-09-22 日本電信電話株式会社 マルウェア感染端末の検出装置、マルウェア感染端末の検出システム、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム
US20170193099A1 (en) 2015-12-31 2017-07-06 Quixey, Inc. Machine Identification of Grammar Rules That Match a Search Query
WO2019032180A1 (en) 2017-08-09 2019-02-14 Nec Laboratories America, Inc. ANALYSIS OF DEPENDENCE BETWEEN APPLICATIONS TO IMPROVE THE DETECTION OF THREATS IN A COMPUTER SYSTEM

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016147944A1 (ja) 2015-03-18 2016-09-22 日本電信電話株式会社 マルウェア感染端末の検出装置、マルウェア感染端末の検出システム、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム
US20170193099A1 (en) 2015-12-31 2017-07-06 Quixey, Inc. Machine Identification of Grammar Rules That Match a Search Query
WO2019032180A1 (en) 2017-08-09 2019-02-14 Nec Laboratories America, Inc. ANALYSIS OF DEPENDENCE BETWEEN APPLICATIONS TO IMPROVE THE DETECTION OF THREATS IN A COMPUTER SYSTEM

Also Published As

Publication number Publication date
WO2021028968A1 (ja) 2021-02-18
JPWO2021028968A1 (ja) 2021-02-18
US20220269786A1 (en) 2022-08-25

Similar Documents

Publication Publication Date Title
US9600403B1 (en) Method and system for creating functional model of test cases
Farhadi et al. Binclone: Detecting code clones in malware
US9621571B2 (en) Apparatus and method for searching for similar malicious code based on malicious code feature information
US8468146B2 (en) System and method for creating search index on cloud database
US10459704B2 (en) Code relatives detection
US10909179B2 (en) Malware label inference and visualization in a large multigraph
US20150324178A1 (en) Hash-based change tracking for software make tools
RU2014127300A (ru) Ретроспективный отбор клинически релевантной информации из данных секвенирования пациента для поддержки принятия клинических решений
US10789294B2 (en) Method and system for performing searches of graphs as represented within an information technology system
US8793224B2 (en) Linear sweep filesystem checking
CN113015970A (zh) 划分知识图
US9465694B2 (en) Method and apparatus for recovering partition based on file system metadata
Yoshida et al. Proactive clone recommendation system for extract method refactoring
JP7243837B2 (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP6955162B2 (ja) 解析装置、解析方法および解析プログラム
Li A better approach to track the evolution of static code warnings
US20220147630A1 (en) Information processing apparatus, information processing method, and computer readable medium
JP6217440B2 (ja) シンボリック実行プログラム、シンボリック実行方法及びシンボリック実行装置
Wijitrisnanto et al. Efficient Machine Learning Model for Hardware Trojan Detection on Register Transfer Level
US9003373B2 (en) Identification of performance bottlenecks
US20210342396A1 (en) Retrieval sentence utilization device and retrieval sentence utilization method
KR101658778B1 (ko) 경로 기반의 문자열 분석 방법 및 장치
WO2022249588A1 (ja) 計算機システム及びサイバーセキュリティ情報の評価方法
CN115242614B (zh) 网络信息分析方法、装置、设备及介质
JP6580232B1 (ja) 検索装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220119

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230220

R151 Written notification of patent or utility model registration

Ref document number: 7243837

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151