JP7024720B2 - マルウェア解析装置、マルウェア解析方法、及び、マルウェア解析プログラム - Google Patents

マルウェア解析装置、マルウェア解析方法、及び、マルウェア解析プログラム Download PDF

Info

Publication number
JP7024720B2
JP7024720B2 JP2018545012A JP2018545012A JP7024720B2 JP 7024720 B2 JP7024720 B2 JP 7024720B2 JP 2018545012 A JP2018545012 A JP 2018545012A JP 2018545012 A JP2018545012 A JP 2018545012A JP 7024720 B2 JP7024720 B2 JP 7024720B2
Authority
JP
Japan
Prior art keywords
abstraction
information
log
sample
malware
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
JP2018545012A
Other languages
English (en)
Other versions
JPWO2018070404A1 (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 JPWO2018070404A1 publication Critical patent/JPWO2018070404A1/ja
Application granted granted Critical
Publication of JP7024720B2 publication Critical patent/JP7024720B2/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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • 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/561Virus type analysis
    • 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
    • G06F21/563Static detection by source code analysis
    • 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
    • G06F21/564Static detection by virus signature recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Description

本願発明は、マルウェアであることが疑われるソフトウェアの動作内容に基づいて、当該ソフトウェアの不正動作を解析する技術に関する。
近年、一日あたり数万件もの新種のマルウェア(不正動作を引き起こすソフトウェア)が出現し、これらのマルウェアが高度に情報化された現代社会に与える影響は、非常に深刻になってきている。したがって、このようなマルウェアを効率よく検知して解析する技術に対する期待が高まってきている。
このような技術に関連する技術として、特許文献1には、攻撃シナリオに沿ってログを分析し、サイバー攻撃を検知する場合において、検知漏れを減らすようにしたログ分析装置が開示されている。この装置は、攻撃シナリオにおいて定義されている複数の攻撃のうち、コンピュータシステムに備えられた検知装置により未だ検知されておらず、当該攻撃シナリオにおいて定義されている順番が当該検知装置により既に検知されている少なくとも1つの攻撃よりも前の攻撃を抽出する。この装置は、そのコンピュータシステムのログを分析して、そのコンピュータシステムが抽出された攻撃を受けていたかどうかを判定し、受けていたと判定した場合に、攻撃の検知漏れが発生したと判断する。
また、特許文献2には、アプリケーションの挙動を記録したログから自動解析や目視による検証に有効な部分を抽出し、不要な部分を削減するようにしたログ抽出システムが開示されている。このシステムは、アプリケーションログから、特定のアプリケーションの識別情報と関連付けられたプロセスの識別情報を抽出する。このシステムは、アプリケーションログから、抽出されたプロセスの識別情報を有する部分を抽出する。このシステムは、カーネルログから、抽出されたプロセスの識別情報を有する部分を抽出する。そして、このシステムは、抽出した部分から、ルール情報に従って一部を削除することによってアプリケーションログまたはカーネルログを集約する。
また、特許文献3には、ネットワーク上で他のコンピュータに対して不正処理を行うマルウェアが送信する系列データと、検査対象のソフトウェアが送信する系列データとを比較して、その類似性を検査する類似性検査方法が開示されている。この方法では、マルウェアにより送信された系列データ、及び、検査対象ソフトウェアにより送信された系列データを得る。この方法では、それら両方の系列データをフーリエ変換して正規化した後に、両者の相関係数を算出する。
特開2015-121968号公報 特開2012-22380号公報 特開2008-176752号公報
マルウェアによる不正動作を検出する技術の1つとして、シグネチャ型の検出がある。このシグネチャ型の検出では、異常なデータや通常とは異なる動作パターンを事前にシグネチャとして定義しておき、そのシグネチャに合致するデータや動作パターンを、マルウェアによる不正動作として検出する。
しかしながら、このようなシグネチャ型の検出では、続々と発生する多種多様にカスタマイズされた新種のマルウェアに対応しきれないという問題がある。このような問題に対応する技術の1つとして、サンドボックスを利用してマルウェアを実行して検出する技術が注目されている。サンドボックスとは、調査対象であるソフトウェア(検体)を実行するために例えば仮想環境として構築された隔離環境のことであり、不正動作が発生してもシステムに影響を与えない保護された領域(ソフトウェアの実行環境)のことである。このサンドボックスを利用してマルウェアを実行して検出する技術では、サンドボックスにおいて検体(被検体)を実行し、その検体がマルウェアに特徴的な挙動を示すか否かを監視することにより、検体がマルウェアであることを検出する。その際の検出結果としては、検体がマルウェアか否かの判定結果に加え、検体の動作ログが出力される。
マルウェアが検出された場合、その検体の挙動に応じて適切な対策を講じる必要がある。例えば、検出したマルウェアの亜種が既に組織のネットワーク内に侵入していないかどうかを、検体の動作ログから抽出した痕跡情報を検索することによって確認できる。検体の挙動の類似性が高い場合には、同様の対策が有効となるので、検出された検体と動作の類似する検体の過去における検出の有無を把握することが重要である。
動作ログには検体の動作によって生じる様々な種別の動作情報を含めることが要求されることから、通常、動作ログ(に含まれる動作情報は)は非構造データとして管理される。そのため、種別が同じ動作情報であっても含まれる項目が異なる場合がある。さらに、同じ検体であっても実行のタイミングによって異なる値となるデータを含む項目がある。したがって、動作ログのこれらの特徴により、動作が本質的に類似しているにもかかわらず、その類似性が隠蔽され、マルウェアを解析する精度が低下するという問題がある。特許文献1乃至3は、この問題について言及していない。本願発明の主たる目的は、この問題を解決するマルウェア解析装置等を提供することである。
本願発明の一態様に係るマルウェア解析装置は、検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成する抽象化手段と、1以上の、前記検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶された抽象化情報記憶手段と、前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出する算出手段と、前記類似度が基準を満たす前記比較対象のソフトウェアを特定する特定手段と、を備える。
上記目的を達成する他の見地において、本願発明の一態様に係るマルウェア解析方法は、1以上の、検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶手段に記憶されている場合に、情報処理装置によって、前記検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成し、前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出し、前記類似度が基準を満たす前記比較対象のソフトウェアを特定する。
また、上記目的を達成する更なる見地において、本願発明の一態様に係るマルウェア解析プログラムは、1以上の、検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶された記憶手段にアクセス可能なコンピュータに、前記検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成する抽象化処理と、前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出する算出処理と、前記類似度が基準を満たす前記比較対象のソフトウェアを特定する特定処理と、を実行させるためのプログラムである。
更に、本願発明は、係るマルウェア解析プログラム(コンピュータプログラム)が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
本願発明は、調査対象であるソフトウェアと既知のマルウェアとの動作の類似性を、効率的に高い精度で解析することを可能とする。
本願発明の第1の実施形態に係るマルウェア解析装置10の構成を示すブロック図である。 本願発明の第1の実施形態に係る抽象化規則160の構成を例示する図である。 本願発明の第1の実施形態に係る検体動作ログ140の構成を例示する図である。 本願発明の第1の実施形態に係る検体抽象化ログ110の構成を例示する図である。 本願発明の第1の実施形態に係る既知マルウェア動作ログ141の構成を例示する図である。 本願発明の第1の実施形態に係る既知マルウェア抽象化ログ150の構成を例示する図である。 本願発明の第1の実施形態に係る算出部12が、度数ヒストグラムによるマンハッタン距離を算出する例を説明する表である。 本願発明の第1の実施形態に係る差分解析部18が、最短編集スクリプトSESを求めた例を説明する表である。 本願発明の第1の実施形態に係る提示制御部19が、検体抽象化ログ110と既知マルウェア抽象化ログ150とについて、ログエントリの対応関係を提示装置30に提示する場合における提示例(1/2)である。 本願発明の第1の実施形態に係る提示制御部19が、検体抽象化ログ110と既知マルウェア抽象化ログ150とについて、ログエントリの対応関係を提示装置30に提示する場合における提示例(2/2)である。 本願発明の第1の実施形態に係るマルウェア解析装置10の動作を示すフローチャートである。 本願発明の第2の実施形態に係るマルウェア解析装置40の構成を示すブロック図である。 本願発明の各実施形態に係るマルウェア解析装置を実行可能な情報処理装置900の構成を示すブロック図である。
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
<第1の実施形態>
図1は、本願発明の第1の実施の形態に係るマルウェア解析装置10の構成を概念的に示すブロック図である。マルウェア解析装置10は、調査対象のソフトウェアである、マルウェアであることが疑われる検体21が、既知のマルウェアとは異なる新種のマルウェアであるかどうかを解析する装置である。マルウェア解析装置10は、検体21の動作と、既知のマルウェアの動作との類似性に基づいて、検体21が新種のマルウェアであるかどうかを解析する。
検体21は、マルウェア解析装置10と通信可能に接続された検体実行装置20によって実行される。検体実行装置20は、例えば、検体21を実行するための隔離環境であるサンドボックスを構築した情報処理装置である。検体実行装置20は、検体21を実行したときの動作ログを生成し、その動作ログをマルウェア解析装置10へ入力する。検体実行装置20は、この際、検体21を識別可能な識別子として、例えば、検体21の実行ファイル名、あるいはMD5(Message Digest Algorithm 5)ハッシュ値を、その動作ログとともに、マルウェア解析装置10へ入力する。
検体実行装置20は、検体21によって行なわれる不正動作を検知する機能を備えている。不正動作としては、例えば、特定API(Application Programming Interface)の呼び出し、コードインジェクション、セキュリティ関連サービスの停止、実行ファイルの作成、スクリプトファイルの実行、特定のレジストリ(システムに対する設定情報等が格納された記憶領域)に対する値の変更、不審な通信先との通信等がある。
本実施形態に係るマルウェア解析装置10は、抽象化部11、算出部12、特定部13、動作ログ記憶部14、抽象化ログ記憶部15、抽象化規則記憶部16、抽象化規則生成部17、差分解析部18、及び、提示制御部19を備えている。
動作ログ記憶部14は、例えば、磁気ディスクあるいは電子メモリ等の記憶デバイスである。動作ログ記憶部14は、検体実行装置20から入力された、検体21の実行結果を表す動作ログを、検体動作ログ140として記憶する。動作ログ記憶部14は、過去に検体実行装置20等によって実行された、1以上の既知のマルウェアの動作ログを、それら既知のマルウェアを識別可能な識別子と関連付けて、既知マルウェア動作ログ141として記憶している。
抽象化部11は、動作ログ記憶部14から読み出した検体動作ログ140を、抽象化規則160に基づいて抽象化(簡素化)し、抽象化した結果を検体抽象化ログ110として生成する。抽象化規則160は、例えば、磁気ディスクあるいは電子メモリ等の記憶デバイスである抽象化規則記憶部16に記憶されている。抽象化規則160は、ユーザによって外部から与えられてもよいし、後述する抽象化規則生成部17によって生成されてもよい。抽象化部11の動作の詳細を、図2乃至図4を用いて説明する。
図2は、本実施形態に係る抽象化規則160の構成を、概念的に例示する図である。図3は、本実施形態に係る検体動作ログ140の構成を、概念的に例示する図である。図4は、本実施形態に係る検体抽象化ログ110の構成を概念的に例示する図である。
図3に例示する通り、検体動作ログ140は、「検体ID(IDは、「Identifier」を表す。以下同様)」、「Seq(Sequential). No(Number).」、及び、「ログエントリ」というフィールドを含むレコード(行)を含んでいる。「検体ID」は、検体21を識別可能な識別子であり、図3に示す例では、「L1」という値が設定されている。「Seq. No.」は、検体実行装置20が検体21を実行したときの動作のシーケンスを表す値である。すなわち、図3に例示する検体動作ログ140に含まれる個々のレコードは、検体21の実行によって観測された検体21の動作を表す動作情報であり、検体動作ログ140は、「L1」として識別される検体21の実行によって得られた、9個の動作情報を示している。
「ログエントリ」は、動作が行なわれた各時刻における検体21の動作情報の詳細を表している。「ログエントリ」は、「type」、「mode」、「path」、「key」、「value」、「host」「pid」、「parent_pid」、及び、「timestamp」等の項目を含んでいる。
例えば、図3に例示する「Seq. No.」が「1」であるレコードでは、「type」が「process」に設定されている。これは、当該レコードが、検体21の実行の過程において実行されたプロセス(プログラム)の状態を示す動作情報であることを示している。「Seq. No.」が「1」であるレコードでは、「mode」が「start」であることを示し、「path」が「\temp\abcde.exe」であることを示している。これは、当該レコードが、「\temp\abcde.exe」というプロセスの実行が開始されたことを示す動作情報であることを示している。但し、「\」は、ファイルの階層構造を表す符号である。階層構造を表す符号として、「\」を用いる場合もある。「Seq. No.」が「1」であるレコードに含まれる「pid」は、当該プロセスを識別可能な識別子であり、「parent_pid」は、当該プロセスを読み出した親プロセスを識別可能な識別子である。「Seq. No.」が「1」であるレコードに含まれる「timestamp」は、当該レコードが生成された時刻を表す。
例えば、図3に例示する「Seq. No.」が「2」であるレコードでは、「type」が「registry」であることを示している。これは、当該レコードが、レジストリへのアクセス内容を示す動作情報であることを示している。「Seq. No.」が「2」であるレコードでは、「mode」が「set-value」であることを示し、「key」が「HKCU\software\key1」であることを示し、「value」が「1」であることを示している。これは、当該レコードが、「HKCU\software\key1」というレジストリに対して、値「1」が設定されたことを示す動作情報であることを示している。「Seq. No.」が「3」であるレコードが示す内容も、上述した「Seq. No.」が「2」であるレコードが示す内容と同様である。
図3に例示する「Seq. No.」が「4」「5」及び「8」であるレコードは、ファイルへのアクセス内容を示している。「Seq. No.」が「6」及び「7」であるレコードは、通信ネットワークへのアクセス内容を示している。「Seq. No.」が「9」であるレコードは、「Seq. No.」が「1」であるレコードにおいて実行開始が示された「pid」が「111」であるプロセスの実行が終了したことを示している。
抽象化部11は、図2に例示する抽象化規則160に基づいて、図3に例示する検体動作ログ140を抽象化(簡略化)する。図2に例示する通り、抽象化規則160は、検体動作ログ140のログエントリに含まれる「type」(種別)の値ごとに、ログエントリに対する抽象化処理の内容を示した規則である。
抽象化部11は、図2に例示する抽象化規則160に従って、検体動作ログ140に含まれる、「type」が「process」であるログエントリに対しては、下記の抽象化処理を行う。
・「type」及び「mode」については、その内容を維持する(即ち、抽象化を行なわない)。
・「path」については、深さ「1」まで抽象化する(即ち、深さ「1」より深い階層を示す情報を削除する)。
これにより、抽象化部11は、図3に例示する検体動作ログ140における「Seq. No.」が「1」であるレコードのログエントリに基づいて、図4に例示する検体抽象化ログ110における「Seq. No.」が「1」であるレコードのログエントリを生成する。図4に例示する通り、検体抽象化ログ110における「Seq. No.」が「1」であるログエントリでは、「type」及び「mode」については、図3に示すログエントリの内容が維持され、「path」については、図3に示すログエントリの内容に対して、深さ「1」まで抽象化されている。抽象化部11は、抽象化規則160に規則が示されていない項目については、当該項目を削除する。したがって、抽象化部11は、図3に例示する検体動作ログ140における「Seq. No.」が「1」であるレコードのログエントリに含まれる「pid」、「parent_pid」、及び、「timestamp」という項目を削除した状態で、検体抽象化ログ110を生成する。
抽象化部11は、また、図2に例示する抽象化規則160に従って、検体動作ログ140に含まれる、「type」が「file」であるログエントリに対しては、下記の抽象化処理を行う。
・「type」及び「mode」については、その内容を維持する(即ち、抽象化を行なわない)。
・「path」については、深さ「1」まで抽象化する(即ち、深さ「1」より深い階層を示す情報を削除する)。
・「path」に含まれる拡張子を、「ext」という項目として抽出する。
これにより、抽象化部11は、図3に例示する検体動作ログ140における「Seq. No.」が「4」、「5」、及び「8」であるレコードのログエントリに基づいて、図4に例示する検体抽象化ログ110における「Seq. No.」が「4」、「5」、及び「8」であるレコードのログエントリを生成する。抽象化部11は、これらのログエントリにおける、「type」、「mode」、「path」、「pid」、及び「timestamp」という項目については、「Seq. No.」が「1」であるレコードのログエントリと同様の抽象化処理を行う。抽象化部11は、検体動作ログ140における「Seq. No.」が「4」及び「5」であるログエントリにおける「path」に含まれる拡張子「txt」を、「ext」という項目として抽出した、検体抽象化ログ110を生成する。抽象化部11は、同様に、検体動作ログ140における「Seq. No.」が「8」であるログエントリにおける「path」に含まれる拡張子「dat」を、「ext」という項目として抽出した、検体抽象化ログ110を生成する。
抽象化部11は、検体動作ログ140に含まれる、「type」が「network」であるログエントリに対しても、図2に例示する抽象化規則160に従って、抽象化処理を行う。すなわち、抽象化部11は、図3に例示する検体動作ログ140における「Seq. No.」が「6」及び「7」であるレコードのログエントリに基づいて、図4に例示する検体抽象化ログ110における「Seq. No.」が「6」及び「7」であるレコードのログエントリを生成する。抽象化部11は、生成した検体抽象化ログ110を、既知マルウェア抽象化ログ150の一部として、検体21を識別可能な識別子と関連付けて、抽象化ログ記憶部15に格納する。抽象化ログ記憶部15は、例えば、磁気ディスクあるいは電子メモリ等の記憶デバイスである。
図5は、本実施形態に係る既知マルウェア動作ログ141の構成を、概念的に例示する図である。図5には、説明の便宜上、1つの既知マルウェアの動作ログを例示するが、既知マルウェア動作ログ141は、1以上の既知マルウェアの動作ログを含んでいる。既知マルウェアの動作ログは、それぞれ、当該既知マルウェアを識別可能な識別子と関連付けされている。既知マルウェア動作ログ141の構成は、上述した図3に例示する検体動作ログ140の構成と同様である。
図6は、本実施形態に係る既知マルウェア抽象化ログ150の構成を概念的に例示する図である。図6に例示する既知マルウェア抽象化ログ150は、図5に例示する既知マルウェア動作ログ141が、抽象化規則160に基づいて抽象化された結果を表している。
図1に示す算出部12は、抽象化部11によって生成された検体抽象化ログ110と、抽象化ログ記憶部15に記憶されている、1以上の既知マルウェアに関する既知マルウェア抽象化ログ150との類似度を算出する。
図7は、算出部12が、例えば、ログエントリに関する度数ヒストグラムによるマンハッタン距離を算出することによって、図4に例示する検体抽象化ログ110と、図6に例示する既知マルウェア抽象化ログ150との類似度を算出する例を説明する表である。図7は、抽象化処理が行われたログエントリを単位とした、検体IDが「L1」である検体抽象化ログ110、及び、検体IDが「L2」である既知マルウェア抽象化ログ150に関する度数ヒストグラムを表している。
例えば、図7に例示する通り、「type:process, mode:start, path:\temp」という内容を示すログエントリは、図4に例示する検体抽象化ログ110に1つ、図6に例示する既知マルウェア抽象化ログ150に1つ含まれている。したがって、当該ログエントリに関する、検体抽象化ログ110と既知マルウェア抽象化ログ150との間における度数の差分は「0」となる。例えば、また、図7に例示する通り、「type:registry, mode:set-value, key:HKCU\software」という内容を示すログエントリは、図4に例示する検体抽象化ログ110に2つ、図6に例示する既知マルウェア抽象化ログ150に1つ含まれている。したがって、当該ログエントリに関する、検体抽象化ログ110と既知マルウェア抽象化ログ150との間における度数の差分は「1」となる。
図7に例示する通り、図4に例示する検体抽象化ログ110と図6に例示する既知マルウェア抽象化ログ150との間における、全てのログエントリに関する度数の差分の合計値、すなわちマンハッタン距離は「5」となる。このように、算出部12は、検体抽象化ログ110と既知マルウェア抽象化ログ150との類似度を示す指標として、ログエントリに関する度数ヒストグラムによるマンハッタン距離を算出する。この場合、マンハッタン距離が近い(短い)ほど、類似度が高いことを表す。算出部12は、あるいは、類似度を示す指標として、ログエントリに関する度数ヒストグラムによるユークリッド距離を算出してもよい。算出部12は、あるいは、類似度を算出する際に、相対度数ヒストグラムを使用してもよい。算出部12は、あるいは、類似度を算出する際に使用するヒストグラムに対して、正規化を行なってもよい。算出部12は、抽象化ログ記憶部15に抽象化ログが記憶されている1以上の既知マルウェアに関して、上述した処理を行う。
図1に示す特定部13は、算出部12によって算出された類似度が基準を満たす既知マルウェアを特定する。特定部13は、例えば算出部12が、検体抽象化ログ110と既知マルウェア抽象化ログ150との類似度を示す指標として、ログエントリに関する度数ヒストグラムによる距離を算出した場合、その距離の近さに関して所定の順位までに入る既知マルウェアを特定する。特定部13は、あるいは、その距離を示す値が閾値以下である既知マルウェアを特定してもよい。ただし、上述した所定の順位、及び、距離に関する閾値は、例えばユーザ等によって与えられていることとする。
図1に示す差分解析部18は、検体抽象化ログ110と、特定部13によって特定された既知マルウェアに関する既知マルウェア抽象化ログ150との差分を示す情報を生成する。差分解析部18は、その差分を示す情報として、例えば、検体抽象化ログ110及び既知マルウェア抽象化ログ150におけるログエントリを単位とする、検体抽象化ログ110から既知マルウェア抽象化ログ150を生成するための最短編集スクリプト(Shortest Edit Script: SES)を求める。そして、差分解析部18は、求めた最短編集スクリプトに基づいて、検体抽象化ログ110に含まれるログエントリと、既知マルウェア抽象化ログ150に含まれるログエントリとの対応関係を示す情報を生成する。
差分解析部18は、この最短編集スクリプトを、例えば、動的計画法(Dynamic Programming)等のアルゴリズムを用いて求めることができる。図8は、差分解析部18が、図4に例示する検体抽象化ログ110から、図6に例示する既知マルウェア抽象化ログ150を生成するための最短編集スクリプトSESを、それらの抽象化ログにおけるログエントリ同士における対応関係に基づいて求めた例を説明する表である。
図8に示す最短編集スクリプトSESによれば、1番目(編集順序が「1」)の編集の編集タイプが「共通」となっている。これは、検体抽象化ログ110における「Seq. No.」が「1」であるログエントリと、既知マルウェア抽象化ログ150における「Seq. No.」が「1」であるログエントリと、が共通(変更無し)であることを示している。同様に最短編集スクリプトSESにおける2番目の編集は、検体抽象化ログ110における「Seq. No.」が「2」であるログエントリと、既知マルウェア抽象化ログ150における「Seq. No.」が「2」であるログエントリと、が共通であることを示している。
図8に示す最短編集スクリプトSESによれば、3番目の編集の編集タイプが「削除」となっている。これは、検体抽象化ログ110における「Seq. No.」が「3」であるログエントリを削除することを示している。そして、最短編集スクリプトSESにおける4番目の編集タイプは、「追加 L2-3」となっている。但し、「L2-3」は、検体IDが「L2」である抽象化ログ(即ち既知マルウェア抽象化ログ150)における「Seq. No.」が「3」であるログエントリを表す。すなわち、最短編集スクリプトSESにおける4番目の編集は、既知マルウェア抽象化ログ150における「Seq. No.」が「3」であるログエントリを追加することを示している。
図8に示す最短編集スクリプトSESにおける5番目以降の編集についても、上述と同様である。このように、図6に例示する既知マルウェア抽象化ログ150は、図4に例示する検体抽象化ログ110に対して、図8に示す12個の編集を順番に行なうことによって生成される。
差分解析部18は、最短編集スクリプトに含まれる編集操作として、上述した「共通」、「削除」、「追加」に、例えば「変更」などの編集操作を加えてもよい。また、差分解析部18によって生成される情報は、上述した最短編集スクリプトに限定されない。差分解析部18は、例えば、最短でない編集スクリプトを生成してもよいし、編集スクリプトとは異なる形式を有する、ログエントリ間における差分を示す情報を生成してもよい。
差分解析部18は、また、検体動作ログ140、検体抽象化ログ110、既知マルウェア動作ログ141、及び、既知マルウェア抽象化ログ150におけるログエントリのうち、ユーザによって示された所定の条件を満たす特定のログエントリを抽出し、抽出したログエントリ間における差分を示す情報を生成するようにしてもよい。この場合、その所定の条件としては、例えば、「指定されたプロセスIDを含む」ことでもよいし、あるいは、「「type」(種別)が指定された値である」ことでもよいし、あるいは、「指定された項目が特定の条件を満たす」ことでもよい。
図1に示す提示制御部19は、差分解析部18によって生成された、検体抽象化ログ110と、特定部13によって特定された既知マルウェアに関する既知マルウェア抽象化ログ150との差分を示す情報を、提示装置30に提示(表示)する。提示装置30は、例えば、情報を画面に表示するモニターでもよいし、情報を紙面に表示するプリンターでもよい。
図9A及び9Bは、提示制御部19が、差分解析部18によって生成された最短編集スクリプトSESに基づいて、検体抽象化ログ110と既知マルウェア抽象化ログ150とについて、ログエントリの対応関係を提示装置30に提示する場合における提示例を示す図である。図9A及び9Bに例示する通り、提示制御部19は、例えば、ファイルを比較するツールとしてよく知られている「diff」ツールが提示する態様と同様な提示態様によって、検体抽象化ログ110と既知マルウェア抽象化ログ150との差分を、提示装置30に提示する。すなわち、提示制御部19は、検体抽象化ログ110と既知マルウェア抽象化ログ150における、例えば「Seq. No.」が「1」及び「2」であるログエントリについては、内容が等しいので、同じ行に並べて提示する。提示制御部19は、検体抽象化ログ110と既知マルウェア抽象化ログ150における、例えば「Seq. No.」が「3」であるログエントリについては、内容が異なるので、異なる行に提示する。このような提示は、最短編集スクリプトSESにおいて、編集タイプが「共通」に対応するログエントリを同じ行に並べて表示し、「追加」および「削除」に対応するログエントリを、他方の検体のログエントリと同じ行に表示しないことによって実現できる。
提示制御部19は、また、検体抽象化ログ110と既知マルウェア抽象化ログ150との間において、差分が生じている箇所を、例えば、字体を変更する、あるいは、文字色を変更するなど、差分が生じていない箇所とは異なる提示態様によって(すなわち強調して)、提示装置30に提示するようにしてもよい。提示制御部19は、また、ユーザによる指示にしたがって、検体動作ログ140及び既知マルウェア動作ログ141の内容、あるいは、それらの動作ログを端的に表現可能な情報(例えば、当該動作ログを識別可能な識別子等)を、提示装置30に提示してもよい。提示制御部19は、また、検体実行装置20によって検体21によって行なわれる不正動作が検知された時刻を、提示装置30に提示してもよい。提示制御部19は、また、算出部12によって算出された、検体抽象化ログ110と既知マルウェア抽象化ログ150との類似度を示す情報(例えば距離)を、提示装置30に提示してもよい。提示制御部19は、また、検体抽象化ログ110及び既知マルウェア抽象化ログ150が提示された状態にあるときに、ユーザがそれらの抽象化ログにおけるいずれかのログエントリを選択した場合において、当該ログエントリが抽象化部11によって抽象化される前の動作情報を、提示装置30に提示する機能を備えてもよい。
図1に示す抽象化規則生成部17は、例えば、動作ログ記憶部14に記憶された、検体動作ログ140及び既知マルウェア動作ログ141を解析することによって、抽象化規則160を生成する。抽象化規則生成部17は、生成した抽象化規則160を、抽象化規則記憶部16へ格納する。
抽象化規則生成部17は、例えば、動作ログにおけるログエントリに含まれる項目のうち、カーディナリティが低い項目を維持し、カーディナリティが高い項目を削除することを指示する抽象化規則160を生成する。但し、「カーディナリティが低い」とは、項目が取り得る値の種類が少ないことを意味し、その逆に、「カーディナリティが高い」とは、項目が取り得る値の種類が多いことを意味する。
例えば、図3に例示する検体動作ログ140、あるいは、図5に例示する既知マルウェア動作ログ141に含まれる、「type」という項目が取り得る値は、「process」、「registry」、「file」、「network」等を含む、限られた数の予約語である。同様に、「mode」という項目が取り得る値は、「start」、「set-value」、「open」、「close」、「dns」、「http」、「remove」、「stop」等を含む、限られた数の予約語である。したがって、「type」及び「mode」という項目は、カーディナリティが低い項目であるといえる。これに対して、例えば「pid」や「timestamp」という項目は、検体21あるいは既知マルウェアが実行されたときの実行環境や実行時刻によって様々な値を取り得る、カーディナリティが高い項目であるといえる。したがって、抽象化規則生成部17は、図2に例示する通り、「type」及び「mode」という項目については、その内容を維持し、「pid」や「timestamp」という項目については、抽象化規則として表記しないことによってその内容を削除することを指示する抽象化規則160を生成する。
抽象化規則生成部17は、また、動作ログにおけるログエントリにおいて、階層構造を備えたデータを表す項目に対して、抽象化することによって、当該項目のカーディナリティを閾値以下にできるように、抽象化規則160を生成する。この場合、抽象化規則生成部17は、例えば、検体動作ログ140及び既知マルウェア動作ログ141から、「path」あるいは「key」という項目を含むログエントリを抽出する。抽象化規則生成部17は、「path」あるいは「key」という項目に含まれる階層構造を備えたデータについて、その階層構造の深さごとに、存在するデータの種類の数を求める。この場合、階層構造が深くなるほど、データの種類の数も多くなるので、そのカーディナリティは高くなる。抽象化規則生成部17は、このような処理を行うことによって、図に示す例では、「path」については深さ「1」まで抽象化し、「key」については深さ「2」まで抽象化することを指示する抽象化規則160を生成する。
次に図10のフローチャートを参照して、本実施形態に係るマルウェア解析装置10の動作(処理)について詳細に説明する。
検体21を実行した結果として検体実行装置20から出力された検体動作ログ140が、動作ログ記憶部14へ格納される(ステップS101)。抽象化部11は、動作ログ記憶部14へ格納された検体動作ログ140を、抽象化規則160に基づいて抽象化した検体抽象化ログ110を生成する(ステップS102)。
算出部12は、抽象化部11によって生成された検体抽象化ログ110と、抽象化ログ記憶部15に記憶されている、1以上の既知マルウェアに関する既知マルウェア抽象化ログ150との類似度を算出する(ステップS103)。特定部13は、算出部12によって算出された類似度が基準を満たす既知マルウェアを特定する(ステップS104)。
差分解析部18は、検体抽象化ログ110と、特定部13によって特定された既知マルウェアに関する既知マルウェア抽象化ログ150との差分を解析する(ステップS105)。提示制御部19は、差分解析部18による差分を解析した結果を、提示装置30へ提示し(ステップS106)、全体の処理は終了する。
本実施形態に係るマルウェア解析装置10は、調査対象であるソフトウェア(検体)と既知のマルウェアとの動作の類似性を、効率的に高い精度で解析することができる。その理由は、マルウェア解析装置10は、検体動作ログ140を抽象化した検体抽象化ログ110を生成し、生成した検体抽象化ログ110と既知マルウェア抽象化ログ150との類似度を算出し、その類似度が基準を満たす既知マルウェアを特定するからである。
以下に、本実施形態に係るマルウェア解析装置10によって実現される効果について、詳細に説明する。
近年、続々と発生する多種多様にカスタマイズされた新種のマルウェアに対応するための技術の1つとして、サンドボックスを利用してマルウェアを実行して検出する技術が注目されている。この技術では、サンドボックスにおいて検体を実行し、その検体がマルウェアに特徴的な挙動を示すか否かを監視することにより、検体がマルウェアであることを検出する。しかしながら、通常、非構造データとして管理される動作ログの特徴により、動作が本質的に類似しているにもかかわらず、その類似性が隠蔽されることによって、マルウェアを解析する精度が低下するという問題がある。
このような課題に対して、本実施形態に係るマルウェア解析装置10では、抽象化部11は、検体21が動作した結果を表す、検体動作ログ140を抽象化した検体抽象化ログ110を生成する。抽象化ログ記憶部15には、1以上の、検体21に対する比較対象の既知マルウェアごとに動作した結果を表す、既知マルウェア動作ログ141が抽象化された既知マルウェア抽象化ログ150が記憶されている。算出部12は、検体抽象化ログ110と既知マルウェア抽象化ログ150との類似度を算出する。そして、特定部13は、その類似度が基準を満たす比較対象の既知マルウェアを特定する。すなわち、マルウェア解析装置10は、動作ログを抽象化した状態で類似性を解析することによって、類似性が隠蔽されることを回避する。これにより、本実施形態に係るマルウェア解析装置10は、調査対象である検体と既知のマルウェアとの動作の類似性を、効率的に高い精度で解析することができる。
また、本実施形態に係る抽象化部11は、検体動作ログ140に含まれる項目ごとに、項目削除、あるいは、項目に含まれる情報の少なくとも一部を削除あるいは変更することを指示する抽象化規則160に基づいて、検体動作ログ140を抽象化する。そして、抽象化規則160は、例えば、プロセスを識別可能な識別子、タイムスタンプ、ファイル名、及び、メモリにおけるアドレス等の、類似性の解析において重要性が低い情報を削除することを示している。これにより、本実施形態に係るマルウェア解析装置10は、検体動作ログ140を適切に抽象化することができる。
また、本実施形態に係る抽象化部11は、抽象化規則160に規則が示されていない(登録されていない)項目については、当該項目を削除する。これにより、本実施形態に係るマルウェア解析装置10は、検体動作ログ140に未知の項目が含まれている場合に、類似性が、その未知の項目に関する動作ログの構成仕様の違いによって隠蔽されることを回避することができる。
また、本実施形態に係るマルウェア解析装置10は、検体動作ログ140と、既知マルウェア抽象化ログ150との差分を示す、例えば最短編集スクリプト等を生成する差分解析部18を備えている。これにより、本実施形態に係るマルウェア解析装置10は、検体が新種のマルウェアであるか否か等について、効率的に高い精度で解析することができる。
また、本実施形態に係る差分解析部18は、検体動作ログ140、検体抽象化ログ110、既知マルウェア動作ログ141、及び、既知マルウェア抽象化ログ150におけるログエントリのうち、ユーザによって示された所定の条件を満たす特定のログエントリを抽出し、抽出したログエントリ間における差分を示す情報を生成する。これにより、本実施形態に係るマルウェア解析装置10は、解析対象とするログエントリを絞り込んだ差分を示す情報を生成するので、ユーザによる解析作業の効率を向上することができる。
また、本実施形態に係るマルウェア解析装置10は、特定部13によって特定された既知マルウェアに関して、既知マルウェア動作ログ141あるいは既知マルウェア抽象化ログ150と、算出部12によって算出された類似度と、差分解析部18によって生成された差分を示す情報と、の少なくともいずれかを提示装置30に提示する提示制御部19を備えている。提示制御部19は、ログエントリを単位として、差分を示す情報において差分が無いことが示されているログエントリ同士を、同一の行に並べて、提示装置30に提示する。提示制御部19は、また、差分を示す情報における差分箇所を強調して提示装置30に提示する。提示制御部19は、また、検体抽象化ログ110及び既知マルウェア抽象化ログ150が提示された状態にあるときに、ユーザがいずれかのログエントリを選択した場合において、当該ログエントリが抽象化部11によって抽象化される前の動作ログを、提示装置30に提示する。本実施形態に係るマルウェア解析装置10は、提示制御部19が備える上述した機能によって、ユーザによる解析作業の効率をさらに向上することができる。
また、本実施形態に係るマルウェア解析装置10は、項目に含まれる情報が取り得る値の種類が基準を満たす(カーディナリティが閾値以下になる)ように、抽象化規則160を生成する抽象化規則生成部17を備えている。抽象化規則生成部17は、例えばファイルパスやレジストリキーのような階層構造を備えたデータを表す項目に対して、抽象化することによって、そのデータが取り得る値の種類が閾値以下となるような階層の深さを表す抽象化規則160を生成する。これにより、本実施形態に係るマルウェア解析装置10は、適切な抽象化規則を効率的に生成することができる。
<第2の実施形態>
図11は、本願発明の第2の実施形態に係るマルウェア解析装置40の構成を概念的に示すブロック図である。マルウェア解析装置40は、抽象化部41、算出部42、特定部43、及び、抽象化情報記憶部45を備えている。
抽象化部41は、検体であるソフトウェアが動作した結果を表す、第1の動作情報440を抽象化した第1の抽象化情報410を生成する。
抽象化情報記憶部45には、当該検体に対する比較対象のソフトウェア(既知マルウェア)ごとに動作した結果を表す、第2の動作情報が抽象化された第2の抽象化情報450が記憶されている。
算出部42は、第1の抽象化情報410と第2の抽象化情報450との類似度を算出する。
特定部43は、その類似度が基準を満たす比較対象のソフトウェアを特定する。
本実施形態に係るマルウェア解析装置40は、調査対象であるソフトウェア(検体)と比較対象のソフトウェア(既知マルウェア)との動作の類似性を、効率的に高い精度で解析することができる。その理由は、マルウェア解析装置40は、第1の動作情報440を抽象化した第1の抽象化情報410を生成し、生成した第1の抽象化情報410と第2の抽象化情報450との類似度を算出し、その類似度が基準を満たす比較対象のソフトウェアを特定するからである。
<ハードウェア構成例>
上述した各実施形態において図1、及び、図11に示したマルウェア解析装置における各部は、専用のHW(HardWare)(電子回路)によって実現することができる。また、図1、及び、図11において、少なくとも、下記構成は、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。
・抽象化部11及び41、
・算出部12及び42、
・特定部13及び43、
・抽象化規則生成部17、
・差分解析部18、
・提示制御部19。
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図12を参照して説明する。
図12は、本願発明の各実施形態に係るマルウェア解析装置を実行可能な情報処理装置900(コンピュータ)の構成を例示的に説明する図である。即ち、図12は、図1、及び、図11に示したマルウェア解析装置を実現可能なコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
図12に示した情報処理装置900は、構成要素として下記を備えている。
・CPU(Central_Processing_Unit)901、
・ROM(Read_Only_Memory)902、
・RAM(Random_Access_Memory)903、
・ハードディスク(記憶装置)904、
・外部装置との通信インタフェース905、
・バス906(通信線)、
・CD-ROM(Compact_Disc_Read_Only_Memory)等の記録媒体907に格納されたデータを読み書き可能なリーダライタ908、
・入出力インタフェース909。
即ち、上記構成要素を備える情報処理装置900は、これらの構成がバス906を介して接続された一般的なコンピュータである。情報処理装置900は、CPU901を複数備える場合もあれば、マルチコアにより構成されたCPU901を備える場合もある。
そして、上述した実施形態を例に説明した本願発明は、図12に示した情報処理装置900に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図(図1、及び、図11)における上述した構成、或いはフローチャート(図10)の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのCPU901に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ(RAM903)、または、ROM902やハードディスク904等の不揮発性の記憶デバイスに格納すれば良い。
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、CD-ROM等の各種記録媒体907を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体907によって構成されると捉えることができる。
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2016年10月14日に出願された日本出願特願2016-202644を基礎とする優先権を主張し、その開示の全てをここに取り込む。
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した各実施形態により例示的に説明した本発明は、以下には限られない。
(付記1)
検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成する抽象化手段と、
1以上の、前記検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶された抽象化情報記憶手段と、
前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出する算出手段と、
前記類似度が基準を満たす前記比較対象のソフトウェアを特定する特定手段と、
を備えるマルウェア解析装置。
(付記2)
前記抽象化手段は、前記第一の動作情報に含まれる項目ごとに、項目削除、あるいは、前記項目に含まれる情報の少なくとも一部を削除あるいは変更することによって、前記第一の抽象化情報を生成する、
付記1に記載のマルウェア解析装置。
(付記3)
前記第一の動作情報に含まれる項目ごとに、項目削除、あるいは、前記項目に含まれる情報の少なくとも一部を削除あるいは変更することを指示する抽象化規則が記憶された抽象化規則記憶手段をさらに備え、
前記抽象化手段は、前記抽象化規則に基づいて前記第一の抽象化情報を生成し、
前記抽象化情報記憶手段には、前記第二の動作情報が前記抽象化規則に基づいて抽象化された、前記第二の抽象化情報が記憶されている、
付記1に記載のマルウェア解析装置。
(付記4)
前記抽象化情報記憶手段には、前記項目に含まれる、プロセスを識別可能な識別子、タイムスタンプ、ファイル名、及び、メモリにおけるアドレスを表す情報を削除することを指示する前記抽象化規則が記憶されている、
付記3に記載のマルウェア解析装置。
(付記5)
前記抽象化手段は、前記抽象化規則に登録されていない前記項目については、前記項目削除を行う、
付記3または4に記載のマルウェア解析装置。
(付記6)
前記算出手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリに関するヒストグラムに基づいて、前記第一の抽象化情報と前記第二の抽象化情報との距離を算出し、
前記特定手段は、前記距離の近さに関して所定の順位までに入る前記比較対象のソフトウェア、あるいは、前記距離を示す値が閾値以下である前記比較対象のソフトウェアを特定する、
付記1乃至5のいずれか一項に記載のマルウェア解析装置。
(付記7)
前記算出手段は、前記第一の抽象化情報と前記第二の抽象化情報とのユークリッド距離あるいはマンハッタン距離を算出する、
付記6に記載のマルウェア解析装置。
(付記8)
前記第一の抽象化情報と、前記第二の抽象化情報との差分を示す情報を生成する差分解析手段
をさらに備える付記1に記載のマルウェア解析装置。
(付記9)
前記差分解析手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリを単位とする、前記第一の抽象化情報から前記第二の抽象化情報を生成するための編集スクリプトを求め、求めた前記編集スクリプトに基づいて、前記第一の抽象化情報に含まれる前記ログエントリと、前記第二の抽象化情報に含まれる前記ログエントリとの対応関係を示す情報を生成する、
付記8に記載のマルウェア解析装置。
(付記10)
前記差分解析手段は、前記第一の抽象化情報に対する、共通、削除、追加、及び、変更の少なくともいずれかを含む編集操作を示す前記編集スクリプトを求める、
付記9に記載のマルウェア解析装置。
(付記11)
前記差分解析手段は、前記第一及び第二の動作情報、及び、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリのうち、内容が所定の条件を満たす特定のログエントリを抽出して、前記特定のログエントリに関して、前記差分を示す情報を生成する、
付記8乃至10のいずれか一項に記載のマルウェア解析装置。
(付記12)
前記特定手段によって特定された前記比較対象のソフトウェアに関して、前記第二の動作情報あるいは前記第二の抽象化情報と、前記算出手段によって算出された前記類似度と、前記差分解析手段によって生成された前記差分を示す情報と、の少なくともいずれかを提示装置に提示する提示制御手段
をさらに備える付記8乃至11のいずれか一項に記載のマルウェア解析装置。
(付記13)
前記提示制御手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリを単位として、前記差分を示す情報において差分が無いことが示されている前記ログエントリ同士を、同一の行に並べた提示態様によって、前記提示装置に提示する、
付記12に記載のマルウェア解析装置。
(付記14)
前記提示制御手段は、前記差分を示す情報における差分箇所を、前記差分箇所を除く箇所とは異なる提示態様によって前記提示装置に提示する、
付記12または13に記載のマルウェア解析装置。
(付記15)
前記提示制御手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリを単位として、前記提示装置に提示しているときに、外部からの指示により特定のログエントリが選択された場合は、前記抽象化手段によって抽象化される前の前記特定のログエントリを、前記提示装置に提示する、
付記12乃至14のいずれか一項に記載のマルウェア解析装置。
(付記16)
前記項目に含まれる情報が取り得る値の種類が基準を満たすように、前記抽象化規則を生成する抽象化規則生成手段
をさらに備える付記3に記載のマルウェア解析装置。
(付記17)
前記抽象化規則生成手段は、階層構造を備えたデータを表す前記項目に対して、抽象化することによって、前記データが取り得る値の種類が閾値以下となるような階層の深さを表す、前記抽象化規則を生成する、
付記16に記載のマルウェア解析装置。
(付記18)
1以上の、検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶手段に記憶されている場合に、
情報処理装置によって、
前記検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成し、
前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出し、
前記類似度が基準を満たす前記比較対象のソフトウェアを特定する、
マルウェア解析方法。
(付記19)
1以上の、検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶された記憶手段にアクセス可能なコンピュータに、
前記検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成する抽象化処理と、
前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出する算出処理と、
前記類似度が基準を満たす前記比較対象のソフトウェアを特定する特定処理と、
を実行させるためのマルウェア解析プログラムが格納された記録媒体。
10 マルウェア解析装置
11 抽象化部
110 検体抽象化ログ
12 算出部
13 特定部
14 動作ログ記憶部
140 検体動作ログ
141 既知マルウェア動作ログ
15 抽象化ログ記憶部
150 既知マルウェア抽象化ログ
16 抽象化規則記憶部
160 抽象化規則
17 抽象化規則生成部
18 差分解析部
19 提示制御部
20 検体実行装置
21 検体
30 提示装置
40 マルウェア解析装置
410 第1の抽象化情報
42 算出部
43 特定部
440 第1の動作情報
45 抽象化情報記憶部
450 第2の抽象化情報
900 情報処理装置
901 CPU
902 ROM
903 RAM
904 ハードディスク(記憶装置)
905 通信インタフェース
906 バス
907 記録媒体
908 リーダライタ
909 入出力インタフェース

Claims (10)

  1. 検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成する抽象化手段と、
    1以上の、前記検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶された抽象化情報記憶手段と、
    前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出する算出手段と、
    前記類似度が基準を満たす前記比較対象のソフトウェアを特定する特定手段と、
    を備え
    前記抽象化手段は、前記第一の動作情報に含まれる項目ごとに、項目削除、あるいは、前記項目に含まれる情報の少なくとも一部を削除あるいは変更することを指示する抽象化規則に基づいて前記第一の抽象化情報を生成し、
    前記抽象化規則は、前記項目に含まれる情報が取り得る値の種類の数が閾値以下となるような抽象化を表す、
    マルウェア解析装置。
  2. 前記抽象化規則は、階層構造を備えたデータを表す前記項目に対して、抽象化することによって、前記データが取り得る値の種類が閾値以下となるような階層の深さを表す、
    請求項1に記載のマルウェア解析装置。
  3. 前記抽象化規則は、前記項目に含まれる、プロセスを識別可能な識別子、タイムスタンプ、ファイル名、及び、メモリにおけるアドレスを表す情報を削除することを表す
    請求項1または2に記載のマルウェア解析装置。
  4. 前記抽象化手段は、前記抽象化規則に登録されていない前記項目については、前記項目削除を行う、
    請求項1乃至3のいずれか一項に記載のマルウェア解析装置。
  5. 前記算出手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリに関するヒストグラムに基づいて、前記第一の抽象化情報と前記第二の抽象化情報との距離を算出し、
    前記特定手段は、前記距離の近さに関して所定の順位までに入る前記比較対象のソフトウェア、あるいは、前記距離を示す値が閾値以下である前記比較対象のソフトウェアを特定する、
    請求項1乃至のいずれか一項に記載のマルウェア解析装置。
  6. 前記算出手段は、前記第一の抽象化情報と前記第二の抽象化情報とのユークリッド距離あるいはマンハッタン距離を算出する、
    請求項に記載のマルウェア解析装置。
  7. 前記第一の抽象化情報と、前記第二の抽象化情報との差分を示す情報を生成する差分解析手段
    をさらに備える請求項1に記載のマルウェア解析装置。
  8. 前記差分解析手段は、前記第一及び第二の抽象化情報における前記ソフトウェアの動作ごとに区分された情報を含むログエントリを単位とする、前記第一の抽象化情報から前記第二の抽象化情報を生成するための編集スクリプトを求め、求めた前記編集スクリプトに基づいて、前記第一の抽象化情報に含まれる前記ログエントリと、前記第二の抽象化情報に含まれる前記ログエントリとの対応関係を示す情報を生成する、
    請求項に記載のマルウェア解析装置。
  9. 1以上の、検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶手段に記憶されている場合に、
    情報処理装置によって、
    前記検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成し、
    前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出し、
    前記類似度が基準を満たす前記比較対象のソフトウェアを特定する、
    方法であって、
    前記第一の動作情報に含まれる項目ごとに、項目削除、あるいは、前記項目に含まれる情報の少なくとも一部を削除あるいは変更することを指示する抽象化規則に基づいて前記第一の抽象化情報を生成し、
    前記抽象化規則は、前記項目に含まれる情報が取り得る値の種類の数が閾値以下となるような抽象化を表す、
    マルウェア解析方法。
  10. 1以上の、検体に対する比較対象のソフトウェアごとに動作した結果を表す、第二の動作情報が抽象化された第二の抽象化情報が記憶された記憶手段にアクセス可能なコンピュータに、
    前記検体であるソフトウェアが動作した結果を表す、第一の動作情報を抽象化した第一の抽象化情報を生成する抽象化処理と、
    前記第一の抽象化情報と前記第二の抽象化情報との類似度を算出する算出処理と、
    前記類似度が基準を満たす前記比較対象のソフトウェアを特定する特定処理と、
    を実行させるためプログラムであって、
    前記抽象化処理は、前記第一の動作情報に含まれる項目ごとに、項目削除、あるいは、前記項目に含まれる情報の少なくとも一部を削除あるいは変更することを指示する抽象化規則に基づいて前記第一の抽象化情報を生成し、
    前記抽象化規則は、前記項目に含まれる情報が取り得る値の種類の数が閾値以下となるような抽象化を表す、
    マルウェア解析プログラム。
JP2018545012A 2016-10-14 2017-10-11 マルウェア解析装置、マルウェア解析方法、及び、マルウェア解析プログラム Active JP7024720B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016202644 2016-10-14
JP2016202644 2016-10-14
PCT/JP2017/036762 WO2018070404A1 (ja) 2016-10-14 2017-10-11 マルウェア解析装置、マルウェア解析方法、及び、マルウェア解析プログラムが格納された記録媒体

Publications (2)

Publication Number Publication Date
JPWO2018070404A1 JPWO2018070404A1 (ja) 2019-08-08
JP7024720B2 true JP7024720B2 (ja) 2022-02-24

Family

ID=61906165

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018545012A Active JP7024720B2 (ja) 2016-10-14 2017-10-11 マルウェア解析装置、マルウェア解析方法、及び、マルウェア解析プログラム

Country Status (3)

Country Link
US (1) US11366907B2 (ja)
JP (1) JP7024720B2 (ja)
WO (1) WO2018070404A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6783741B2 (ja) * 2017-11-24 2020-11-11 日本電信電話株式会社 距離測定装置、通信システム、作成装置及び距離測定プログラム
CN109002534A (zh) * 2018-07-18 2018-12-14 杭州安恒信息技术股份有限公司 一种日志分析方法、系统、设备及计算机可读存储介质
US12001551B2 (en) 2019-03-25 2024-06-04 Nec Corporation Warning apparatus, control method, and program
US11973780B2 (en) * 2020-10-14 2024-04-30 Palo Alto Networks, Inc. Deobfuscating and decloaking web-based malware with abstract execution
CN112597499B (zh) * 2020-12-30 2024-02-20 北京启明星辰信息安全技术有限公司 一种视频监控设备无损安全检查方法及系统
US20230026385A1 (en) * 2021-07-21 2023-01-26 International Business Machines Corporation System and cognitive method for threat modeling

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4883409B2 (ja) * 2007-01-22 2012-02-22 独立行政法人情報通信研究機構 データ類似性検査方法及び装置
JP4883408B2 (ja) 2007-01-22 2012-02-22 独立行政法人情報通信研究機構 系列データ間の類似性検査方法及び装置
JP5478390B2 (ja) 2010-07-12 2014-04-23 Kddi株式会社 ログ抽出システムおよびプログラム
US9003532B2 (en) * 2011-09-15 2015-04-07 Raytheon Company Providing a network-accessible malware analysis
JP6104149B2 (ja) 2013-12-24 2017-03-29 三菱電機株式会社 ログ分析装置及びログ分析方法及びログ分析プログラム
JP6459289B2 (ja) * 2014-08-07 2019-01-30 日本電気株式会社 マルウェア推定装置、マルウェア推定方法、及び、マルウェア推定プログラム
US10200390B2 (en) * 2016-02-29 2019-02-05 Palo Alto Networks, Inc. Automatically determining whether malware samples are similar

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
堀合 啓一,ハミング距離によるマルウェア亜種の自動分類,情報処理学会研究報告 Vol.2008 No.45,日本,社団法人情報処理学会,2008年05月15日,第2008巻,p.61-66
星澤 裕二,マルウェアの亜種等の分類の自動化,情報処理学会研究報告 Vol.2007 No.71,日本,社団法人情報処理学会,2007年07月19日,第2007巻,p.271-278

Also Published As

Publication number Publication date
JPWO2018070404A1 (ja) 2019-08-08
US11366907B2 (en) 2022-06-21
WO2018070404A1 (ja) 2018-04-19
US20200193030A1 (en) 2020-06-18

Similar Documents

Publication Publication Date Title
JP7024720B2 (ja) マルウェア解析装置、マルウェア解析方法、及び、マルウェア解析プログラム
US9300682B2 (en) Composite analysis of executable content across enterprise network
Carmony et al. Extract Me If You Can: Abusing PDF Parsers in Malware Detectors.
Han et al. {SIGL}: Securing software installations through deep graph learning
US9239922B1 (en) Document exploit detection using baseline comparison
US9147083B1 (en) Marking and obscuring sensitive values in traces
US20120072988A1 (en) Detection of global metamorphic malware variants using control and data flow analysis
US11601443B2 (en) System and method for generating and storing forensics-specific metadata
Fleck et al. Pytrigger: A system to trigger & extract user-activated malware behavior
US20150143342A1 (en) Functional validation of software
Galhuber et al. Time for truth: Forensic analysis of ntfs timestamps
EP3945441B1 (en) Detecting exploitable paths in application software that uses third-party libraries
Didriksen Forensic analysis of OOXML documents
Gilboy Fighting evasive malware with DVasion
US11513884B2 (en) Information processing apparatus, control method, and program for flexibly managing event history
JP2024502973A (ja) 悪性コード静的分析のための実行ファイルのアンパッキングシステム及び方法
Joo et al. A reference database of Windows artifacts for file‐wiping tool execution analysis
WO2022195739A1 (ja) 活動痕跡抽出装置、活動痕跡抽出方法および活動痕跡抽出プログラム
JP7341380B2 (ja) ログ処理装置、ログ処理方法及びログ処理プログラム
Cabău et al. Malware classification using filesystem footprints
US20240152615A1 (en) Device for extracting trace of act, method for extracting trace of act, and program for extracting trace of act
Gundoor Identification Of Dominant Features in Non-Portable Executable Malicious File
WO2022195728A1 (ja) 活動痕跡抽出装置、活動痕跡抽出方法及び活動痕跡抽出プログラム
WO2022201309A1 (ja) 情報補完装置、情報補完方法、及びコンピュータ読み取り可能な記録媒体
JP7259436B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190320

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200915

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20211020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211223

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: 20220111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220124

R151 Written notification of patent or utility model registration

Ref document number: 7024720

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151