発明の詳細な説明【技術分野】 【0001】 本発明は、解析装置、解析方法および解析プログラムに関する。 続きを表示(約 2,000 文字)【背景技術】 【0002】 近年、マルウェアなどの不正プログラムは、解析を困難にするため、また、アンチウィルスからのパターン検出を回避するために、ランタイムパッカーによるパッキングを利用することがある。ランタイムパッカーは、実行ファイル(オリジナルコード)を入力として受け取り、実行ファイルの全部または一部に対してエンコード処理を行った後、実行時にエンコードされたバイト列を元に戻すデコーダーを付与した実行ファイルを出力する。 【0003】 そのため、パッキングされたマルウェアを解析するためには、エンコードされる前のオリジナルコードを取り出す処理(アンパッキング)が行われる。一般的なアンパッキングの技術として、パッキングされたマルウェアを動的解析フレームワーク上で動作させ、マルウェアによって書き込まれたメモリ領域であって、実行されたメモリ領域の中から、予め設定された指標に基づき、最もオリジナルコードに近いと考えられるものを選出する技術が知られている。 【先行技術文献】 【非特許文献】 【0004】 “X. Ugarte-Pedrero, D. Balzarotti, I. Santos and P. G. Bringas, "SoK: Deep Packer Inspection: A Longitudinal Study of the Complexity of Run-Time Packers," 2015 IEEE Symposium on Security and Privacy, San Jose, CA, USA, 2015, pp. 659-673, doi: 10.1109/SP.2015.46. 【発明の概要】 【発明が解決しようとする課題】 【0005】 しかし、従来技術では、パッキングされたマルウェアについて、適切にオリジナルコードを取り出すことができない場合がある。例えば、従来技術では、Type VIというカテゴリに属するパッカー(非特許文献1参照)が使用された場合に、予め設定された指標に基づく選出機能が機能せず、適切にオリジナルコードを選出することができない。 【課題を解決するための手段】 【0006】 上述した課題を解決し、目的を達成するために、本発明の解析装置は、複数のメモリダンプを取得する取得部と、取得部によって取得された各メモリダンプをコード断片に分割する分割部と、分割部によって分割されたコード断片のそれぞれについて算出された、バイト列の統計的なスコアを比較することにより、各コード断片がオリジナルコードのコード断片か否かをそれぞれ判定する判定部と、判定部によってオリジナルコードのコード断片と判定された複数のコード断片を用いて、オリジナルコードを復元する復元部とを有することを特徴とする。 【発明の効果】 【0007】 本発明によれば、パッキングされたマルウェアについて、適切にオリジナルコードを取り出すことができるという効果を奏する。 【図面の簡単な説明】 【0008】 図1は、実施形態に係る解析装置を含むシステムを示す図である。 図2は、実施形態に係る解析装置の構成例を示すブロック図である。 図3は、実施形態に係る解析装置に記憶されるデータの一例を示す図である。 図4は、実施形態に係るメモリダンプ分割処理の具体例について説明する図である。 図5は、実施形態に係る判定処理およびオリジナルコード復元処理の具体例について説明する図である。 図6は、実施形態に係る解析装置の処理の流れの一例を示すフローチャートである。 図7は、解析プログラムを実行するコンピュータの一例を示す図である。 【発明を実施するための形態】 【0009】 以下に、本願に係る解析装置、解析方法および解析プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る解析装置、解析方法および解析プログラムが限定されるものではない。 【0010】 〔1.はじめに〕 まず、本実施例に関するランタイムパッカーによるプログラムのパッキング、および、一般的なアンパッキングに関する先行技術の概要について説明する。前述したように、近年のマルウェア等の不正プログラムは、アンチウィルスによるパターン検知の回避のために、ランタイムパッカーによるパッキングを利用している。 (【0011】以降は省略されています) この特許をJ-PlatPatで参照する