(57)【要約】【課題】マルウェアプログラムを動的解析する際に、マルウェアプログラムの動作の進捗状況を把握する技術を提供する。【解決手段】マルウェア解析装置１０は、マルウェアプログラムを実行するプログラム実行部１２と、プログラム実行部１２によるメモリアクセスを監視してメモリアクセスログを出力するメモリアクセス監視部１３を備える。マルウェア解析装置１０は、メモリアクセスログに基づいて、マルウェアプログラムに関連するメモリイメージを生成するイメージ生成部１４と、メモリイメージのうちコード部分を特定するイメージ解析部１５を備える。マルウェア解析装置１０は、コード部分のうち実行済み部分と未実行部分を特定する進捗管理部１６を備える。【選択図】図２
2020154796.tif 000002
【特許請求の範囲】
【請求項１】
マルウェアプログラムを実行するプログラム実行部と、
前記プログラム実行部によるメモリアクセスを監視してメモリアクセスログを出力するアクセス監視部と、
前記メモリアクセスログに基づいて、前記マルウェアプログラムに関連するメモリイメージを生成するイメージ生成部と、
前記メモリイメージのうちコード部分を特定するイメージ解析部と、
前記コード部分のうち実行済み部分と未実行部分を特定する進捗管理部と、
を備えた、
マルウェア解析装置。
【請求項２】
請求項１に記載のマルウェア解析装置であって、
前記イメージ解析部は、前記メモリイメージを逆アセンブルし、逆アセンブルに成功した部分のうち、一つの入口と一つの出口を有し内部に分岐を含まない連続した命令の並びである基本ブロックに該当する部分、又は、所定量以上連続した部分を前記コード部分として特定する、
マルウェア解析装置。
【請求項３】
請求項１に記載のマルウェア解析装置であって、
前記イメージ解析部は、前記メモリイメージを逆アセンブルし、逆アセンブルに成功した部分のうち、一つの入口と一つの出口を有し内部に分岐を含まない連続した命令の並びである基本ブロックに該当する部分であって、所定量以上連続した部分を前記コード部分として特定する、
マルウェア解析装置。
【請求項４】
請求項１から３までの何れか１項に記載のマルウェア解析装置であって、
前記コード部分のうち前記実行済み部分の割合に関する情報を表示部に出力する出力部を更に備えた、
マルウェア解析装置。
【請求項５】
請求項４に記載のマルウェア解析装置であって、
前記出力部は、前記コード部分のうち前記実行済み部分の割合の時間軸上における変化に関する情報を前記表示部に出力する、
マルウェア解析装置。
【請求項６】
請求項１から５までの何れか１項に記載のマルウェア解析装置であって、
前記イメージ解析部は、前記メモリイメージのうちデータ部分を特定するように構成されており、
前記進捗管理部は、前記データ部分のうち読み込み済み部分と未読み込み部分を特定するように構成されている、
マルウェア解析装置。
【請求項７】
マルウェアプログラムを実行するプログラム実行ステップと、
前記プログラム実行ステップにおけるメモリアクセスを監視してメモリアクセスログを出力するアクセス監視ステップと、
前記メモリアクセスログに基づいて、前記マルウェアプログラムに関連するメモリイメージを生成するイメージ生成ステップと、
前記メモリイメージのうちコード部分を特定するイメージ解析ステップと、
前記コード部分のうち実行済み部分と未実行部分を特定する進捗管理ステップと、
を含む、
マルウェア解析方法。
【請求項８】
コンピュータに、請求項７に記載のマルウェア解析方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルウェア解析装置、マルウェア解析方法、及び、プログラムに関する。
【背景技術】
【０００２】
インターネットの普及や技術の進歩により、マルウェアが大量に発生している。一般的にマルウェアの挙動を解析する手法として、動的解析、静的解析が存在する。
【０００３】
動的解析はある程度自動化が可能で短時間で完了するが、マルウェアのすべての挙動を把握することは難しいという特性がある。
【０００４】
静的解析は自動化が難しく時間がかかるが、マルウェアのほぼすべての挙動を把握できるという特性がある。
【０００５】
日々大量に発生するマルウェアに対して、時間や人手をかけずに解析をするために動的解析が行われている。動的解析では、安全な解析環境でマルウェアプログラムを実行し、ディスクアクセスやネットワーク通信といった情報、マルウェアの挙動を把握する。動的解析にはマルウェアプログラムの内で実際に実行された箇所の挙動しか把握できないという特性がある。
【０００６】
これらの特性により、動的解析は大量のマルウェアを一括して解析する場合に適しており、多くの手法が提案されている。
【０００７】
特許文献１（特開２００７−３３４５３６号公報）には、マルウェアを隔離された環境の下で実行し実行時のログを解析することで、挙動を自動的に解析するシステムが記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、マルウェアプログラムの実行中において、現在、マルウェアプログラム全体のどの程度が実行されたのか把握できない。従って、上記の動的解析で得られた情報がマルウェアプログラムの挙動を把握するために十分な情報なのか、継続して動的解析すべきなのか、判断できなかった。
【０００９】
本開示の目的は、上述した課題の何れかを解決する技術を提供することにある。
【課題を解決するための手段】
【００１０】
本開示の第１の観点によれば、マルウェアプログラムを実行するプログラム実行部と、前記プログラム実行部によるメモリアクセスを監視してメモリアクセスログを出力するアクセス監視部と、前記メモリアクセスログに基づいて、前記マルウェアプログラムに関連するメモリイメージを生成するイメージ生成部と、前記メモリイメージのうちコード部分を特定するイメージ解析部と、前記コード部分のうち実行済み部分と未実行部分を特定する進捗管理部と、を備えた、マルウェア解析装置が提供される。
本開示の第２の観点によれば、マルウェアプログラムを実行するプログラム実行ステップと、前記プログラム実行ステップにおけるメモリアクセスを監視してメモリアクセスログを出力するアクセス監視ステップと、前記メモリアクセスログに基づいて、前記マルウェアプログラムに関連するメモリイメージを生成するイメージ生成ステップと、前記メモリイメージのうちコード部分を特定するイメージ解析ステップと、前記コード部分のうち実行済み部分と未実行部分を特定する進捗管理ステップと、を含む、マルウェア解析方法が提供される。
【発明の効果】
【００１１】
本発明によれば、マルウェアプログラムを動的解析する際に、マルウェアプログラムの動作の進捗状況を把握することができる。従って、動的解析の解析結果の信頼性や再解析の必要性を判断できるようになる。
【図面の簡単な説明】
【００１２】
【図１】マルウェア解析装置の機能ブロック図である。（第１実施形態）
【図２】マルウェア解析システムの機能ブロック図である。（第２実施形態）
【図３】メモリアクセスログからメモリイメージが生成される様子を示す図である。（第２実施形態）
【図４】メモリイメージからコード部分及びデータ部分を特定する様子を示す図である。（第２実施形態）
【図５】メモリイメージからコード部分及びデータ部分を特定する様子を詳細に示す図である。（第２実施形態）
【図６】時刻毎のメモリイメージを示す図である。（第２実施形態）
【図７】時刻毎のメモリイメージを簡略化して示す図である。（第２実施形態）
【図８】マルウェア解析装置の制御フローである。（第２実施形態）
【発明を実施するための形態】
【００１３】
（第１実施形態）
以下、図１を参照して、第１実施形態を説明する。
【００１４】
図１に示すように、マルウェア解析装置１は、中央演算処理器としてのCPU１ａと、読み書き自由のRAM１ｂ、読み出し専用のROM１ｃを備えている。そして、CPU１ａがROM１ｃに記憶されている制御プログラムを読み出して実行することで、制御プログラムは、CPU１ａなどのハードウェアを、プログラム実行部２として機能させる。制御プログラムは、CPU１ａなどのハードウェアを、メモリアクセス監視部３、イメージ生成部４、イメージ解析部５、進捗管理部６として機能させる。
【００１５】
プログラム実行部２は、外部より入力されたマルウェアプログラムを実行する。
【００１６】
メモリアクセス監視部３は、プログラム実行部２によるメモリアクセスを監視してメモリアクセスログを出力する。
【００１７】
イメージ生成部４は、アクセスログに基づいて、マルウェアプログラムに関連するメモリイメージを生成する。
【００１８】
イメージ解析部５は、メモリイメージのうちコード部分を特定する。
【００１９】
進捗管理部６は、コード部分のうち実行済み部分と未実行部分を特定する。
【００２０】
以上の構成によれば、マルウェアプログラムを動的解析する際に、マルウェアプログラムの動作の進捗状況を把握することができる。従って、動的解析の解析結果の信頼性や再解析の必要性を判断できるようになる。
【００２１】
（第２実施形態）
次に、図２から図８を参照して、マルウェア解析システム３０を説明する。
【００２２】
図２に示すように、マルウェア解析システム３０は、マルウェア解析装置１０と表示装置２０を含む。
【００２３】
先ず、マルウェア解析装置１０の概要を説明する。マルウェア解析装置１０は、解析対象であるマルウェアプログラムを実行したときのメモリアクセスをトレースし、マルウェアプログラムの動作のうち実際に実行された割合を明らかにする。これにより、マルウェアプログラムの動的解析の解析結果の信頼性や再解析の必要性を判断できるようになる。
【００２４】
具体的には、マルウェア解析装置１０は、マルウェアプログラムを実行したときのメモリイメージを「コード部分」と「データ部分」の何れかに分類する。また、マルウェア解析装置１０は、「コード部分」のうち実際に実行された部分、及び、「データ部分」のうち実際に読み込まれた部分を特定する。これにより、マルウェア解析装置１０は、マルウェアプログラムの動作のうち実際に実行された割合を明らかにすることができる。上記のマルウェア解析装置１０によれば、解析担当者に対し、マルウェアプログラムの動的解析を終了させるタイミングの目安を提示することができる。
【００２５】
マルウェア解析装置１０は、「コード部分」の実行状況のみならず、「データ部分」の読み込み状況も監視対象としている。従って、例えば、「コード部分」のほとんどが実行されたにもかかわらず、「データ部分」の読み込みがほとんど行われていない場合、マルウェアプログラムの動的解析を引き続き継続すべきであると判断可能となる。
【００２６】
引き続き図２を参照して、マルウェア解析システム３０を詳細に説明する。
【００２７】
表示装置２０は、例えば液晶ディスプレイである。
【００２８】
マルウェア解析装置１０は、中央演算処理器としてのCPU１０ａと、読み書き自由のRAM１０ｂ、読み出し専用のROM１０ｃを備えている。そして、CPU１０ａがROM１０ｃに記憶されている制御プログラムを読み出して実行することで、制御プログラムは、CPU１０ａなどのハードウェアを、プログラム記憶部１１として機能させる。制御プログラムは、CPU１０ａなどのハードウェアを、プログラム実行部１２、メモリアクセス監視部１３、イメージ生成部１４、イメージ解析部１５、進捗管理部１６、出力部１７として機能させる。
【００２９】
プログラム記憶部１１には、外部から提供された解析対象としてマルウェアプログラムが記憶されている。
【００３０】
プログラム実行部１２は、プログラム記憶部１１に記憶されているマルウェアを実行する。プログラム実行部１２は、例えば、仮想環境にマルウェアプログラムが動作するためのオペレーティングシステムやネットワークを構築したものである。プログラム実行部１２は、マルウェアプログラムの動作を観測するための仕組みを備えてもよい。即ち、プログラム実行部１２は、ディスクアクセスやネットワーク通信、APIの実行などのマルウェアプログラムに基づく各種の動作を記録するようにしてもよい。
【００３１】
メモリアクセス監視部１３は、マルウェアプログラムを実行するプログラム実行部１２によるメモリアクセスを監視してメモリアクセスログを出力する。図３に、メモリアクセスログの一例を示している。図３に示すように、メモリアクセスログは、時刻情報、アクセスの種別、アクセスしたアドレス、当該アドレスに格納されているデータの組み合わせから構成されている。アクセスの種別は、図３において「Write」で示す書き込みアクセス、「Read」で示す読み込みアクセス、「Exec」で示す実行アクセスを含む。例えば、時刻１６：００：３０．２２２では、アドレス０ｘ００２００００に保持されている０ｘ５５という命令が実行されている。
【００３２】
イメージ生成部１４は、メモリアクセスログに基づいて、マルウェアプログラムに関連するメモリイメージを生成する。具体的には、イメージ生成部１４は、メモリアクセス監視部１３からメモリアクセスログが出力されるたびに当該メモリアクセスログを読み込む。そして、イメージ生成部１４は、メモリアクセスログを集計することで、プログラム実行部１２が実行中のマルウェアプログラムに関連するメモリイメージを単一の配列として生成する。
【００３３】
図３には、メモリイメージの一具体例を示している。図３に示すように、メモリイメージは、メモリアクセスログにおける書き込みアクセスの時系列順をそのまま保持した配列形式のデータである。そして、メモリイメージを構成する配列の各要素は、データとFlag情報により構成されている。データは、書き込みアクセス時に書き込まれたデータそのものである。Flag情報は、対応するデータに対してどのようなアクセスが行われたかを示す情報である。メモリイメージを構成する配列の各要素のデータは、書き込みアクセスによって書き込まれたものであるから、そのFlag情報は「Write」を意味する「W」を含む。また、メモリイメージを構成する配列の各要素のうち実行アクセスによって実行されたものについては、そのFlag情報を「Write」に「Exec」を加えた「W/E」となる。同様に、メモリイメージを構成する配列の各要素のうち読み込みアクセスによって読み込まれたものについては、そのFlag情報を「Write」に「Read」を加えた「W/R」となる。ただし、Flag情報は省略してもよい。
【００３４】
なお、イメージ生成部１４は、同じアドレスに対して複数の書き込みアクセスがあった場合、最新の書き込みアクセスに基づいて当該アドレスのデータを上書きする。また、イメージ生成部１４は、当該アドレスのFlag情報が「Exec」であった場合、当該Flag情報を削除することが好ましい。これは、既に実行されたアドレスであっても、書き込みアクセスがあった場合、この書き込みアクセスにより書き込まれたデータ自体は実行されていないためである。
【００３５】
イメージ解析部１５は、イメージ生成部１４が生成したメモリイメージのうちコード部分を特定する。本実施形態では、更に、イメージ解析部１５は、イメージ生成部１４が生成したメモリイメージのうちデータ部分を特定する。ただし、イメージ解析部１５は、データ部分を特定しなくてもよい。
【００３６】
図４には、イメージ解析部１５がメモリイメージを解析して、メモリイメージに含まれるコード部分を特定する様子を示している。
【００３７】
図４に示すように、イメージ解析部１５は、先ず、メモリイメージを逆アセンブルする。そして、イメージ解析部１５は、逆アセンブルに成功した部分のうち、基本ブロックに該当する部分、又は、所定量以上連続した部分をコード部分として特定する。ここで、「所定量」とは、例えば２５バイトであるが、これに限定されない。
【００３８】
ここで、基本ブロックとは、一つの入口と一つの出口を有し内部に分岐を含まない連続した命令の並びを意味する。入口とは、JMPやCALL命令などの移動先を意味する。出口とは、JMPやCALL命令およびその直前の命令を意味する。図４の例では、アドレス０ｘ００２００００からアドレス０ｘ００２０００Ｃが１つの基本ブロックを構成している。同様に、アドレス０ｘ００２０００Ｄからアドレス０ｘ００２００１５が１つの基本ブロックを構成している。同様に、アドレス０ｘ００２００１６からアドレス０ｘ００２００１Ｂが１つの基本ブロックを構成している。従って、アドレス０ｘ００２００００からアドレス０ｘ００１Ｂは基本ブロックに該当しているので、イメージ解析部１５は、このアドレス範囲をコード部分として特定する。
【００３９】
また、アドレス０ｘ００２００２１は、そもそも逆アセンブル不可能であるので、イメージ解析部１５は、当該アドレスをコード部分として特定せず、データ部分として特定する。
【００４０】
また、アドレス０ｘ００２００２６は、逆アセンブル可能であるが、基本ブロックを構成しておらず、また、前後の範囲が所定量以上逆アセンブル可能でもない。従って、イメージ解析部１５は、当該アドレスをコード部分として特定せず、データ部分として特定する。
【００４１】
また、アドレス０ｘ００２００２Ａは、逆アセンブル可能であるが、前後の範囲が逆アセンブル不可能であり、また、基本ブロックを構成しているわけでもない。従って、イメージ解析部１５は、当該アドレスをコード部分として特定せず、データ部分として特定する。
【００４２】
図５には、イメージ解析部１５がメモリイメージを解析して、メモリイメージに含まれるコード部分を特定する様子を更に詳細に示している。
【００４３】
図５に示すように、イメージ解析部１５は、メモリアドレス毎にプログラムコードらしさスコアを算出する。そして、プログラムコードらしさスコアが所定値以上である場合、イメージ解析部１５は、当該メモリアドレスをコード部分として特定する。一方、プログラムコードらしさスコアが所定値未満である場合、イメージ解析部１５は、当該メモリアドレスをデータ部分として特定する。ここで、所定値は、例えば７５であるが、これに限定されない。
【００４４】
イメージ解析部１５は、メモリアドレス毎にプログラムコードらしさスコアを以下のように算出する。
【００４５】
先ず、イメージ解析部１５は、逆アセンブルに成功したメモリアドレスの第１の評価値を２５とし、逆アセンブルに失敗したメモリアドレスの第１の評価値を０とする。図５において、「逆アセンブル成功」列の「Y」は、逆アセンブルが成功したことを意味し、「ｘ」は、逆アセンブルが失敗したことを意味している。
【００４６】
次に、イメージ解析部１５は、逆アセンブルが成功したアドレスのうち、基本ブロックを構成している部分の第２の評価値を５０とし、基本ブロックを構成していない部分の第２の評価値を０とする。図５において、「基本ブロック」列の「Y」は、当該アドレスが基本ブロックを構成していることを意味し、「ｘ」は、当該アドレスが基本ブロックを構成していないことを意味する。
【００４７】
次に、イメージ解析部１５は、逆アセンブルが成功したアドレスのうち、所定量以上連続した部分の第３の評価値を２５とし、所定量以上連続しない部分の第３の評価値を０とする。ここで、「所定量」とは、例えば２５バイトである。図５において、「前後２５ｂｙｔｅで逆アセンブル成功」列の「Y(ｂｙｔｅ)」は、当該アドレスが２５バイト以上連続した部分の一部であることを意味し、「ｘ（ｂｙｔｅ）」は当該アドレスが２５以上連続した部分の一部ではないことを意味する。また、上記括弧内のバイト数は、逆アセンブルが成功したアドレスのうち、連続する範囲のバイト数を意味している。
【００４８】
そして、イメージ解析部１５は、メモリアドレス毎に、第１の評価値、第２の評価値、第３の評価値を合計し、その合計値をプログラムコードらしさスコアとする。そして、イメージ解析部１５は、プログラムコードらしさスコアが所定値以上であるアドレスをコード部分として特定する。一方、イメージ解析部１５は、プログラムコードらしさスコアが所定値以上でないアドレスをデータ部分として特定する。
【００４９】
進捗管理部１６は、イメージ解析部１５が特定したコード部分のうち実行済み部分と未実行部分を特定する。図６には、各時刻におけるメモリイメージを示している。
【００５０】
図６において、右肩下がりのハッチングは当該アドレスがコード部分であることを示している。具体的には、右肩下がりの細いハッチングは当該アドレスがコード部分のうち未実行部分であることを示している。一方、右肩下がりの太いハッチングは当該アドレスがコード部分のうち実行済み部分であることを示している。
【００５１】
同様に、右肩上がりのハッチングは当該アドレスがデータ部分であることを示している。具体的には、右肩上がりの細いハッチングは当該アドレスがデータ部分のうち未読み込み部分であることを示している。一方、右肩上がりの太いハッチングは当該アドレスがデータ部分のうち読み込み済み部分であることを示している。
【００５２】
出力部１７は、コード部分のうち実行済み部分の割合に関する情報を表示部としての表示装置２０に出力する。具体的には、出力部１７は、コード部分のうち実行済み部分の割合の時間軸上における変化に関する情報を表示装置２０に出力する。本実施形態において、上記の「割合に関する情報」や「割合の時間軸上における変化に関する情報」は、図７に示すように、メモリイメージのイメージ内容の分類を識別可能にグラフ形式で表示した画像情報である。出力部１７は、これらの情報を示す画像情報を生成し、生成した画像情報を表示装置２０に出力することで、解析担当者が、これらの情報をリアルタイムに視覚的に確認できるようにしている。
【００５３】
図７には、「割合の時間軸上における変化に関する情報」の具体例を示している。「割合の時間軸上における変化に関する情報」とは、異なる時刻におけるメモリイメージを１つにまとめたものである。図７に示す画像では、時刻毎に、コード部分のうち未実行部分を細い右肩下がりのハッチングで示し、コード部分のうち実行済み部分を太い右肩下がりのハッチングで示している。同様に、図７に示す画像では、時刻毎に、データ部分のうち未読み込み部分を細い右肩上がりのハッチングで示し、データ部分のうち読み込み済み部分を太い右肩上がりのハッチングで示している。
【００５４】
なお、ハッチングの種類に代えて複数の色を用いて、これらの部分を識別可能に表示してもよい。図７に示す画像を表示装置２０を通じて確認することで、解析担当者は、マルウェアプログラムの動作の進捗状況を詳細且つ的確に把握することができる。
【００５５】
なお、図７の例では、コード部分のうち実行済み部分の割合を棒グラフ形式で示しているが、これに代えて、コード部分のうち実行済み部分の割合を単にパーセンテージで示してもよい。データ部分のうち読み込み済み部分の割合についても同様である。
【００５６】
次に、図８を参照して、マルウェア解析装置１０の作動であるマルウェア解析方法を端的に説明する。
【００５７】
S1:プログラム実行ステップ
先ず、プログラム実行部１２は、プログラム記憶部１１に記憶されているマルウェアプログラムを実行する。
【００５８】
S2:メモリアクセス監視ステップ
次に、メモリアクセス監視部１３は、プログラム実行ステップ（S1）におけるメモリアクセスを監視してメモリアクセスログを出力する。
【００５９】
S3:イメージ生成ステップ
次に、イメージ生成部１４は、メモリアクセスログに基づいて、マルウェアプログラムに関連するメモリイメージを生成する。
【００６０】
S4:イメージ解析ステップ
次に、イメージ解析部１５は、メモリイメージのうちコード部分及びデータ部分を特定する。
【００６１】
S5:進捗管理ステップ
次に、進捗管理部１６は、コード部分のうち実行済み部分と未実行部分を特定する。同様に、進捗管理部１６は、データ部分のうち読み込み済み部分と未読み込み部分を特定する。
【００６２】
S6:出力ステップ
次に、出力部１７は、コード部分のうち実行済み部分の割合に関する情報を例えば棒グラフ形式で表示装置２０に出力して表示させる。
【００６３】
S7:
そして、マルウェア解析装置１０は、解析担当者によりマルウェアプログラムの実行が中断されたか判定する。マルウェアプログラムが実行中である場合は（S7:YES）、マルウェア解析装置１０は、処理をステップS2に戻す。一方、マルウェアプログラムの実行が中断された場合は（S7:NO）、マルウェア解析装置１０は、処理を終了する。
【００６４】
上記のマルウェア解析装置１０によれば、マルウェアプログラムを動的解析した際に、解析結果がマルウェアプログラムのコード全体に対してどの程度の割合を示したものであるかを把握することができる。これにより、解析結果の信頼性や再解析要否の判断が容易になる。
【００６５】
また、リアルタイムにマルウェアプログラムのメモリアクセス状況を可視化することで、マルウェアプログラムの動的解析状況を把握することができる。プログラムコード領域における実行済みの割合を判断基準とすることで、動的解析の停止タイミングの判断が容易になる。
【００６６】
なお、プログラム実行部１２がマルウェアプログラムを実行した結果、プログラム実行部１２が、インターネット経由で別のプログラムをダウンロードして取得し、当該プログラムを実行した場合は、当該プログラムをマルウェアプログラムの一部とするとよい。即ち、当該プログラムもマルウェアプログラムと同様に解析対象のプログラムとすることが好ましい。
【００６７】
以上に、第２実施形態を説明した。上記第２実施形態は以下の特徴を有する。
【００６８】
マルウェア解析装置１０は、マルウェアプログラムを実行するプログラム実行部１２と、プログラム実行部１２によるメモリアクセスを監視してメモリアクセスログを出力するメモリアクセス監視部１３を備える。マルウェア解析装置１０は、メモリアクセスログに基づいて、マルウェアプログラムに関連するメモリイメージを生成するイメージ生成部１４と、メモリイメージのうちコード部分を特定するイメージ解析部１５を備える。マルウェア解析装置１０は、コード部分のうち実行済み部分と未実行部分を特定する進捗管理部１６を備える。以上の構成によれば、マルウェアプログラムを動的解析する際に、マルウェアプログラムの動作の進捗状況を把握することができる。従って、動的解析の解析結果の信頼性や再解析の必要性を判断できるようになる。
【００６９】
また、イメージ解析部１５は、メモリイメージを逆アセンブルし、逆アセンブルに成功した部分のうち、基本ブロックに該当する部分、又は、所定量以上連続した部分をコード部分として特定する。以上の構成によれば、簡素な処理でコード部分を特定できる。
【００７０】
また、イメージ解析部１５は、メモリイメージを逆アセンブルし、逆アセンブルに成功した部分のうち、基本ブロックに該当する部分であって、所定量以上連続した部分をコード部分として特定する。以上の構成によれば、簡素な処理でコード部分を特定できる。
【００７１】
マルウェア解析装置１０は、コード部分のうち実行済み部分の割合に関する情報を表示部としての表示装置２０に出力する出力部１７を更に備える。以上の構成によれば、解析担当者が表示装置２０を介して、マルウェアプログラムの動作の進捗状況を把握できる。
【００７２】
また、出力部１７は、コード部分のうち実行済み部分の割合の時間軸上における変化に関する情報を表示装置２０に出力する。以上の構成によれば、以上の構成によれば、解析担当者が表示装置２０を介して、マルウェアプログラムの動作の進捗状況をリアルタイムに把握できる。
【００７３】
また、イメージ解析部１５は、メモリイメージのうちデータ部分を特定するように構成されている。進捗管理部１６は、データ部分のうち読み込み済み部分と未読み込み部分を特定するように構成されている。以上の構成によれば、コード部分及びデータ部分に関する進捗状況を総合的に把握できるので、解析担当者が表示装置２０を介して、マルウェアプログラムの動作の進捗状況を一層的確に把握できる。
【００７４】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）を含む。非一時的なコンピュータ可読媒体の例は、更に、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭを含む。非一時的なコンピュータ可読媒体の例は、更に、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００７５】
１  マルウェア解析装置
２  プログラム実行部
３  メモリアクセス監視部
４  イメージ生成部
５  イメージ解析部
６  進捗管理部
【図１】
2020154796.tif 000003
【図２】
2020154796.tif 000004
【図３】
2020154796.tif 000005
【図４】
2020154796.tif 000006
【図５】
2020154796.tif 000007
【図６】
2020154796.tif 000008
【図７】
2020154796.tif 000009
【図８】
2020154796.tif 000010