(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】活動痕跡抽出装置、活動痕跡抽出方法及び活動痕跡抽出プログラム
(51)【国際特許分類】
G06F 21/56 20130101AFI20241008BHJP
【FI】
G06F21/56
(21)【出願番号】P 2023506459
(86)(22)【出願日】2021-03-16
(86)【国際出願番号】 JP2021010700
(87)【国際公開番号】W WO2022195737
(87)【国際公開日】2022-09-22
【審査請求日】2023-06-16
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】碓井 利宣
(72)【発明者】
【氏名】幾世 知範
(72)【発明者】
【氏名】川古谷 裕平
(72)【発明者】
【氏名】岩村 誠
(72)【発明者】
【氏名】三好 潤
【審査官】高橋 克
(56)【参考文献】
【文献】特開2017-033286(JP,A)
【文献】特開2004-038273(JP,A)
【文献】特表2013-529335(JP,A)
【文献】特表2019-505943(JP,A)
【文献】特開2010-262609(JP,A)
【文献】米国特許第09747446(US,B1)
【文献】米国特許出願公開第2021/0064749(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/56
(57)【特許請求の範囲】
【請求項1】
マルウェアを実行することで、前記マルウェアの複数の活動痕跡を含む解析ログを収集し、前記マルウェアを再度実行し、前記マルウェアの実行時に使用されるシステムおよびデバイスの実行環境、アプリケーションソフトウェアの固有の情報を変更した場合に想定される前記マルウェアの複数の活動痕跡を含む環境変更解析ログを収集する収集部と、
前記解析ログと前記環境変更解析ログとを基にして、前記解析ログに含まれる複数の活動痕跡のうち、前記環境変更解析ログの活動痕跡と異なる活動痕跡
が含まれるか否かを判定し、前記環境変更解析ログの活動痕跡と異なる活動痕跡が含まれる場合に、前記異なる活動痕跡を前記解析ログから除去することで、前記解析ログを更新する更新部と、
前記更新された解析ログを基にして、前記実行環境に依存しない前記マルウェアの痕跡情報を生成する生成部と
を備えることを特徴とする活動痕跡抽出装置。
【請求項2】
前記収集部は、前記マルウェアを実行した際の時間情報とは異なる時間情報を示す環境において、前記マルウェアを再度実行することで、前記マルウェアの複数の活動痕跡を含む時間変更解析ログを収集する処理を更に実行し、前記更新部は、前記解析ログに含まれる複数の活動痕跡のうち、前記時間変更解析ログの活動痕跡および前記環境変更解析ログの活動痕跡と異なる活動痕跡を前記解析ログから除去することで、前記解析ログを更新することを特徴とする請求項1に記載の活動痕跡抽出装置。
【請求項3】
前記収集部は、前記マルウェアの実行時に使用されるシステムおよびデバイスの実行環境、アプリケーションソフトウェアの固有の情報を取得し、取得した実行環境に変更を加える処理を更に実行することを特徴とする請求項1に記載の活動痕跡抽出装置。
【請求項4】
前記生成部は、前記更新された解析ログを基にして、IOC(Indicator Of Compromise)を生成することを特徴とする請求項1に記載の活動痕跡抽出装置。
【請求項5】
マルウェアを実行することで、前記マルウェアの複数の活動痕跡を含む解析ログを収集し、前記マルウェアを再度実行し、前記マルウェアの実行時に使用されるシステムおよびデバイスの実行環境、アプリケーションソフトウェアの固有の情報を変更した場合に想定される、前記マルウェアの複数の活動痕跡を含む環境変更解析ログを収集する収集工程と、
前記解析ログと前記環境変更解析ログとを基にして、前記解析ログに含まれる複数の活動痕跡のうち、前記環境変更解析ログの活動痕跡と異なる活動痕跡
が含まれるか否かを判定し、前記環境変更解析ログの活動痕跡と異なる活動痕跡が含まれる場合に、前記異なる活動痕跡を前記解析ログから除去することで、前記解析ログを更新する更新工程と、
前記更新された解析ログを基にして、前記実行環境に依存しない前記マルウェアの痕跡情報を生成する生成工程と
を含んだことを特徴とする活動痕跡抽出方法。
【請求項6】
マルウェアを実行することで、前記マルウェアの複数の活動痕跡を含む解析ログを収集し、前記マルウェアを再度実行し、前記マルウェアの実行時に使用されるシステムおよびデバイスの実行環境、アプリケーションソフトウェアの固有の情報を変更した場合に想定される、前記マルウェアの複数の活動痕跡を含む環境変更解析ログを収集する収集ステップと、
前記解析ログと前記環境変更解析ログとを基にして、前記解析ログに含まれる複数の活動痕跡のうち、前記環境変更解析ログの活動痕跡と異なる活動痕跡
が含まれるか否かを判定し、前記環境変更解析ログの活動痕跡と異なる活動痕跡が含まれる場合に、前記異なる活動痕跡を前記解析ログから除去することで、前記解析ログを更新する更新ステップと、
前記更新された解析ログを基にして、前記実行環境に依存しない前記マルウェアの痕跡情報を生成する生成ステップと
をコンピュータに実行させるための活動痕跡抽出プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルウェアの検出に有用な活動痕跡抽出装置、活動痕跡抽出方法及び活動痕跡抽出プログラムに関する。
【背景技術】
【0002】
マルウェアの巧妙化に伴い、シグネチャに基づいて検出する従来型のアンチウイルスソフトウェアでは検出の難しいマルウェアが増加してきている。また、送受信されたファイルを隔離された解析用の環境で動作させ、観測された挙動の悪性度からマルウェアを検出する動的解析サンドボックスによる検出も、一般的なユーザ環境との乖離度を見る方法などにより、解析用の環境であることが感知され、回避されるようになってきた。
【0003】
このような背景から、EDR(Endpoint Detection and Response)と呼ばれるマルウェア対策技術が用いられるようになってきた。EDRは、解析用に用意した環境ではなく、ユーザの端末にインストールされるエージェントであり、端末の挙動を継続的に監視する。そして、あらかじめ用意された、マルウェアが活動した際に残す痕跡を検出するためのいわば挙動のシグネチャであるIOC(Indicator Of Compromise)を用いて、マルウェアを検出する。具体的には、EDRは、端末で観測された挙動とIOCを照合し、一致する場合はマルウェアに感染した疑いがあるとして検出する。
【0004】
したがって、EDRによるマルウェアの検出の可否は、あるマルウェアの検出に有用なIOCが保持されているかに依存する。一方、IOCがマルウェアのみならず正規のソフトウェアの活動の痕跡にも一致してしまうような場合には、誤検知に繋がるという問題がある。それゆえに、ただ闇雲にマルウェアの痕跡をIOCにして数を増やすのではなく、検出に有用な痕跡を選択的に抽出してIOCにしていく必要がある。
【0005】
また、EDRが一度に照合できるIOCの観点からも、検出に有用な痕跡を選択的に抽出してIOCにしていく必要が生じる。すなわち、EDRは一般に多くのIOCを持つほど照合に時間がかかるため、より少ない数のIOCでより多くの種類のマルウェアを検出するIOCの組み合わせを持つことが望ましい。その際に、検出に有用でない活動痕跡からIOCを生成してしまうと、無用に照合の時間をかけてしまうことに繋がる。
【0006】
現在では日々新しいマルウェアが生み出されており、それに対応したIOCも変化し続ける。そのため、それらに対して継続的に対応するためには、マルウェアを自動的に解析して活動の痕跡を抽出し、IOCを生成していく必要がある。IOCは、マルウェアを解析して得られた活動痕跡に基づいて生成される。一般に、マルウェアの挙動を監視しながら実行して得られた痕跡を収集し、それに正規化を施したり、検知に適した組み合わせ選択したりすることで、IOCとする。
【0007】
以上から、マルウェアの検出に有用な活動痕跡を、選択的かつ自動的に抽出する技術が希求されている。たとえば、活動痕跡を抽出する技術として、非特許文献1、非特許文献2がある。
【0008】
非特許文献1では、複数のマルウェア間で繰り返し観測される繰り返し観測される痕跡のパターンを抽出し、IOCとして用いる手法を提案している。
【0009】
また、非特許文献2では、同一ファミリーのマルウェア間で共起する痕跡の集合を抽出し、集合の最適化手法によってIOCの複雑度が高まるのを防ぐことで、人間が理解しやすいIOCを自動で生成する手法を提案している。
【0010】
非特許文献1,2等の手法によれば、実行トレースログからマルウェアの検出に貢献し得るIOCを自動的に抽出することが可能である。ここで、実行トレースとは、実行時に様々な観点からの挙動を順に記録していくことで、プログラムの実行状況を追跡するものである。また、これを実現するために、挙動を監視して記録する機能を備えたプログラムを、トレーサと呼ぶ。たとえば、実行されたAPI(Application Programming Interface)を順に記録したものをAPIトレースと呼び、それを実現するためのプログラムをAPIトレーサと呼ぶ。
【先行技術文献】
【非特許文献】
【0011】
【文献】Christian Doll et al. "Automated Pattern Inference Based on Repeatedly Observed Malware Artifacts." Proceedings of the 14th International Conference on Availability, Reliability and Security. 2019.
【文献】Yuma Kurogome et al. "EIGER: Automated IOC Generation for Accurate and Interpretable Endpoint Malware Detection." Proceedings of the 35th Annual Computer Security Applications Conference. 2019.
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、上述した従来技術(非特許文献1,2)では、いずれも活動痕跡の時間依存性や環境依存性を考慮しておらず、検出に有効でない活動痕跡もIOCにしてしまい得るという問題がある。
【0013】
ここで、活動痕跡の時間依存性とは、マルウェアの実行時の時間的情報に依存して活動痕跡が変化する特性である。時間的情報には、時刻や起動時からの経過時間などがある。時間依存性のある活動痕跡は、収集した解析環境と実際に攻撃を受けた環境での時間的情報が一般に異なることにより、IOCとして利用できない。
【0014】
また、活動痕跡の環境依存性とは、マルウェアの実行時の環境的情報に依存して活動痕跡が変化する特性である。環境的情報には、システムやデバイスの持つ様々な設定情報が含まれる。例えば、システムディスクのUUIDに基づいて活動痕跡を変化させる場合などが考えられる。時間依存性のある活動痕跡も、収集した解析環境と実際に攻撃を受けた環境での環境的情報の差異から、IOCとして利用できない。
【0015】
すなわち、収集された活動痕跡に時間依存性や環境依存性があるか否かを判定するのは、検出に有効な活動痕跡を選択的に抽出してIOCを生成する上で、重要である。
【0016】
本発明は、上記に鑑みてなされたものであって、検出に有効な活動痕跡を選択的に抽出し、有効なIOCを生成できる活動痕跡抽出装置、活動痕跡抽出方法及び活動痕跡抽出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0017】
上述した課題を解決し、目的を達成するために、本発明に係る活動痕跡抽出装置は、マルウェアを実行することで、前記マルウェアの複数の活動痕跡を含む解析ログを収集し、前記マルウェアを再度実行し、前記マルウェアの実行時に使用されるシステムおよびデバイスの実行環境、アプリケーションソフトウェアの固有の情報を変更した場合に想定される、前記マルウェアの複数の活動痕跡を含む環境変更解析ログを収集する収集部と、前記解析ログと前記環境変更解析ログとを基にして、前記解析ログに含まれる複数の活動痕跡のうち、前記環境変更解析ログの活動痕跡と異なる活動痕跡を前記解析ログから除去することで、前記解析ログを更新する更新部と、前記更新された解析ログを基にして、前記実行環境に依存しない前記マルウェアの痕跡情報を生成する生成部とを備える。
【発明の効果】
【0018】
活動痕跡の持つ時間依存性および環境依存性を検出することにより、検出に有効な活動痕跡を選択的に抽出し、有効なIOCを生成できる。
【図面の簡単な説明】
【0019】
【
図1】
図1は、本実施例に係る活動痕跡抽出装置の処理を説明するための図である。
【
図2】
図2は、本実施例に係る活動痕跡抽出装置の構成を示す機能ブロック図である。
【
図3】
図3は、履歴DBのデータ構造の一例を示す図である。
【
図4】
図4は、解析ログと活動痕跡の一例を示す図である。
【
図5】
図5は、時間依存性のある活動痕跡の一例を示す図である。
【
図6】
図6は、環境依存性のある活動痕跡の一例を示す図である。
【
図7】
図7は、解析ログの比較の一例を示す図である。
【
図8】
図8は、本実施例に係る活動痕跡抽出装置の処理手順を示すフローチャートである。
【
図9】
図9は、解析ログを比較して依存性のある活動痕跡を特定する処理手順を示すフローチャートである。
【
図10】
図10は、APIフックを用いてシステムの環境情報を変更する処理手順を示すフローチャートである。
【
図11】
図11は、解析環境を変更することでシステムの環境情報を変更する処理手順を示すフローチャートである。
【
図12】
図12は、活動痕跡抽出プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0020】
以下に、本願の開示する活動痕跡抽出装置、活動痕跡抽出方法及び活動痕跡抽出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【0021】
図1は、本実施例に係る活動痕跡抽出装置の処理を説明するための図である。
図1に示すように、活動痕跡抽出装置は、記憶部140と、制御部150とを有する。
【0022】
記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部140は、ターゲットDB(Data Base)141と、履歴DB142とを有する。
【0023】
ターゲットDB141は、活動痕跡を抽出するために利用する複数のマルウェアのデータを保持する。履歴DB142は、マルウェアを実行した場合の解析ログの情報を保持する。
【0024】
制御部150は、CPU(Central Processing Unit)等を用いて実現される。制御部150は、仮想環境30において、エージェント50a、APIトレーサ50b、APIフックモジュール50dを実行する。エージェント50aは、ターゲットDB141から、マルウェアを読み出し、マルウェアプロセス50cが実行される。制御部150は、仮想環境30において、フェイクサーバ40a、フェイクサーバ40bを実行する。
図1では説明の便宜上、仮想環境30を制御部150の外部に記載するが、仮想環境30は、制御部150の内部で実行される。また、制御部150は、
図2で説明するように、収集部151、更新部152、生成部153を有する。たとえば、仮想環境30で実行させる処理は、収集部151によって実行される。
【0025】
たとえば、フェイクサーバ40aは、マルウェアプロセス50cからアクセスを受け付けた場合に、DNS(Domain Name System)サーバとして応答するフェイクサーバである。フェイクサーバ40bは、マルウェアプロセス50cからアクセスを受け付けた場合に、HTTP(Hyper Text Transfer Protocol)サーバとして応答するフェイクサーバである。フェイクサーバ40a,40bは、その他のサーバの処理を実行するフェイクサーバであってもよい。また、フェイクサーバを用いずに、適切に準備された実環境を用いてもよい。
【0026】
制御部150は、活動痕跡を抽出する処理、時間依存性を抽出する処理、環境依存性を抽出する処理、IOCを生成する処理を実行する。
【0027】
「活動痕跡を抽出する処理」について説明する。制御部150は、APIトレーサ50bを用いてマルウェアプロセス50cを実行し、APIトレーサ50bによってトレースされる解析ログから活動痕跡を収集し、活動痕跡の情報を履歴DB142に登録する。
【0028】
制御部150は、IOCを生成したい対象が実行ファイル型のマルウェアの場合は、システムAPIをトレースし、スクリプト型のマルウェアの場合にはスクリプトAPIをトレースする。マルウェアプロセス50cは、フェイクサーバ40a,40b等にアクセスし、各種の処理(他のネットワーク通信、ファイル操作、レジストリ操作、プロセス生成等)を実行する。
【0029】
APIトレーサ50bは、マルウェアプロセス50cの動作を監視し、解析ログを取得する。APIトレーサ50bは、取得した解析ログを、エージェント50aに出力する。たとえば、後述する生成部153は、APIトレーサ50bが取得した情報を基にして、どのような活動痕跡(たとえば、ネットワーク通信、ファイル操作、レジストリ操作、プロセス生成等)からIOCを生成するのかと、かかる活動痕跡に対応した機能を有するAPIを予め定義しておき、それらのAPIと引数を解析ログから探し出すことで、マルウェアプロセス50cの活動痕跡を収集する。
【0030】
一般に、マルウェアプロセス50cが悪性な挙動を達成するためには、APIを呼び出してシステム(たとえば、オペレーティングシステムや、活動痕跡抽出装置に接続された各デバイス、ネットワークを介して接続される他の外部装置)とやり取りする必要がある。これは、活動痕跡を残す挙動も例外ではないため、生成部153は、APIトレーサ50bを利用して、APIを監視することで、ターゲットとなるマルウェアプロセス50cの活動痕跡を見逃すことなく収集することができる。
【0031】
上記の活動痕跡を抽出するための環境は、後述の時間依存性および環境依存性の検出のために、APIフックによって実現される。たとえば、APIフックモジュール50dは、APIフックを設定し、APIの実行結果に変更を加える機能を有する。
【0032】
「時間依存性を抽出する処理」について説明する。制御部150は、時間の異なる2つの第1環境、第2環境において、APIトレーサ50bがそれぞれトレースした解析ログを比較することで、解析ログに含まれる複数の活動痕跡のうち、時間依存性のある活動痕跡を特定する。
【0033】
第1環境と、第2環境との相違点は、マルウェアプロセス50cが処理を実行する環境の時間情報が異なる点である。たとえば、制御部150は、第1時刻において、マルウェアプロセス50cを実行し、APIトレーサ50bによって収集された複数の活動痕跡を、第1環境における第1解析ログとして取得し、履歴DB142に登録する。
【0034】
制御部150は、第1時刻から所定時間経過した第2時刻において、マルウェアプロセス50cを実行し、APIトレーサ50bによって収集された複数の活動痕跡を、第2環境における第2解析ログとして取得し、履歴DB142に登録する。
【0035】
制御部150は、2つの実行環境で収集した第1解析ログ、第2解析ログを比較し、活動痕跡に差異が存在する場合には、差異となる活動痕跡に時間依存性があるものとして検出する。
【0036】
制御部150は、第1環境においてマルウェアプロセス50cを実行して取得する直前に、第1環境のスナップショット(第1時刻の情報を保持)を作成しておき、かかるスナップショットから一定時間経過した場合に、再度、マルウェアプロセス50cを実行することで、第2環境における第2解析ログを収集することができる。
【0037】
制御部150は、APIフックを用いて時刻や起動後の経過時間を取得するAPIをフックし、実際とは異なる値を返すように変更を加えることで、第1環境と第2環境の時間情報の差異を実現してもよい。
【0038】
「環境依存性を抽出する処理」について説明する。制御部150は、マルウェアプロセス50cに割り当てられるシステムやデバイス等の異なる2つの第1環境、第3環境において、APIトレーサ50bがそれぞれトレースした解析ログを比較することで、解析ログに含まれる複数の活動痕跡のうち、環境依存性のある活動痕跡を特定する。
【0039】
第1環境と、第3環境との相違点は、マルウェアプロセス50cが処理を実行する環境のシステムやデバイスの情報が異なる点である。
【0040】
制御部150は、第1解析ログの中に、API(システムやデバイスの情報を取得するAPI)のリストに記載された、システムやデバイスの情報を取得するAPIの呼び出しがあるか否かを特定する。制御部150は、第1解析ログの中に、システムやデバイスの情報を取得するAPIの呼び出しがない場合には、第1解析ログには、環境依存性のある活動痕跡が存在しないと判定する。
【0041】
一方、制御部150は、第1解析ログに、システムやデバイスの情報を取得するAPIの呼び出しがある場合には、第1解析ログに含まれるいずれかの活動痕跡に環境依存性がある可能性があると判定する。
【0042】
この場合、制御部150は、第1環境において、マルウェアプロセス50cが呼び出したAPI(システムやデバイスの情報を取得するAPI)によって取得された情報の代わりとなる(異なる)システムやデバイスを仮想環境30に割り当てることで、第3環境において、マルウェアプロセス50cを実行させる。制御部150は、第3環境で、APIトレーサ50bがトレースした第3解析ログを、履歴DB142に登録する。
【0043】
制御部150は、APIフックを用いてシステムやデバイスの情報を取得するAPIをフックし、実際とは異なる値を返すように変更を加えることで、第1環境と第3環境のシステムやデバイスの情報の差異を実現してもよい。また、制御部150は、特定のアプリケーションソフトウェア(以下、アプリケーション)の固有の情報(たとえば、特定のアプリケーションの設定情報)を取得するAPIをフックし、実際とは異なる値を返すように変更を更に加えて、第1環境と第3環境とのアプリケーションの固有の情報の差異を実現してもよい。
【0044】
制御部150は、2つの実行環境で収集した第1解析ログ、第3解析ログを比較し、活動痕跡に差異が存在する場合には、差異となる活動痕跡に環境依存性があるものとして検出する。
【0045】
たとえば、マルウェアプロセス50cがディスクのUUIDの情報(システムの情報)を取得するAPIを呼び出していた場合、制御部150は、エージェント50aを通して、オペレーティングシステムが持つディスクのUUIDの情報を変更する。また、マルウェアプロセスがCPUのコア数の情報(デバイスの情報)を取得するAPIを呼び出していた場合は、制御部150は、仮想機械に割り当てているコア数を変更する。制御部150は、APIフックを用いて、システムやデバイスの情報を取得するAPIをフックし、実際とは異なる値を返すように変更を加えることで実現してもよい。
【0046】
「IOCを生成する処理」について説明する。制御部150は、履歴DB142に記憶された第1解析ログの活動痕跡から、時間依存性のある活動痕跡および環境依存性のある活動痕跡を除去することで、第1解析ログを更新する。制御部150は、更新した第1解析ログを基にして、IOCを生成する。制御部150は、非特許文献1、非特許文献2に記載された技術を用いて、IOCを生成してもよい。
【0047】
次に、
図1で説明した処理を実行する活動痕跡抽出装置の構成の一例について説明する。
図2は、本実施例に係る活動痕跡抽出装置の構成を示す機能ブロック図である。
図2に示すように、この活動痕跡抽出装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
【0048】
通信部110は、ネットワーク等を介して接続された外部装置との間で、各種情報を送受信する通信インタフェースである。通信部110は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した外部装置と制御部150との間の通信を行う。
【0049】
入力部120は、活動痕跡抽出装置100の操作者からの各種操作を受け付ける入力インタフェースである。例えば、キーボードやマウス等の入力デバイスによって構成される。
【0050】
表示部130は、制御部150から取得した情報を出力する出力デバイスであり、液晶ディスプレイなどの表示装置、プリンター等の印刷装置等によって実現される。
【0051】
記憶部140は、ターゲットDB141および履歴DB142を有する。記憶部140は、
図1で説明した記憶部140に対応する。ターゲットDB141は、活動痕跡を抽出するために利用する複数のマルウェアのデータを保持する。マルウェアは、実行ファイル型のマルウェアであってもよいし、スクリプト型のマルウェアであってもよい。
【0052】
履歴DB142は、各環境で実行された解析ログの情報を保持する。
図3は、履歴DBのデータ構造の一例を示す図である。
図3に示すように、履歴DB143は、マルウェア識別情報と、第1解析ログ、第2解析ログ、第3解析ログとを保持する。
【0053】
マルウェア識別情報は、マルウェアを識別する情報である。第1解析ログは、第1環境において、該当するマルウェアを実行することで収集される解析ログである。第2解析ログは、第2環境において、該当するマルウェアを実行することで収集される解析ログである。第3解析ログは、第3環境において、該当するマルウェアを実行することで収集される解析ログである。
【0054】
図4は、解析ログと活動痕跡の一例を示す図である。
図4において、領域10aに含まれる「prev」は、APIの実行前を示し、「post」は、APIの実行後を示す。領域10bに含まれる「IN」は、入力を示し、「OUT」は、出力を示す。領域10cに含まれる文字列は、DLL名を示す。領域10dに含まれる文字列は、API名を示す。領域10eに含まれる文字列は、型を示す。領域10fに含まれる文字列は、変数名に対応する。領域10gに含まれる文字列、数値は、引数に対応する。領域10hに含まれる「val」は、ポインタをディリファレンスした値を記録していることを示す。領域10iには、活動痕跡が含まれる。
図4に示す例では、CreateProcessのlpCommandLine引数が、このマルウェアにおける、プロセスに関する活動痕跡であることが示される。
【0055】
制御部150は、活動痕跡を抽出する処理、時間依存性を抽出する処理、環境依存性を抽出する処理、IOCを生成する処理を実行する。制御部150は、
図1で説明した制御部150に対応する。たとえば、制御部150は、収集部151と、更新部152と、生成部153とを有する。
【0056】
収集部151は、ターゲットDB141から、マルウェアを読み出し、各環境でマルウェアを実行することで、各環境における解析ログを収集する。
【0057】
たとえば、収集部151は、
図1で説明した仮想環境30において、エージェント50a、APIトレーサ50b、フェイクサーバ40a,40bを実行する。収集部151は、ターゲットDB141からマルウェアを読み出して実行することで、マルウェアプロセス50cを動作させる。収集部151は、マルウェアプロセス50cを実行し、APIトレーサ50bによってトレースされる解析ログを収集する。
【0058】
収集部151は、第1環境において、マルウェアプロセス50cを実行することで、第1解析ログを収集する。収集部151は、第1解析ログを収集する場合に、APIフック等を用いて、マルウェアプロセス50cを実行した第1時刻の情報(スナップショット)を取得する。
【0059】
収集部151は、第1時刻から一定時間経過した後となる第2環境において、マルウェアプロセス50cを再度、実行することで、第2解析ログを収集する。
【0060】
収集部151は、第1解析ログを走査して、システムやデバイスの情報を取得するAPIの呼び出しがある場合には、第1解析ログに含まれるいずれかの活動痕跡に環境依存性があると判定する。
【0061】
収集部151は、第1環境のシステム情報とは異なるシステム情報に変更することで、第3環境において、マルウェアプロセス50cを実行させる。収集部151は、第3環境で、APIトレーサ50bがトレースした第3解析ログを収集する。
【0062】
なお、収集部151は、第1解析ログの中に、システムやデバイスの情報を取得するAPIの呼び出しがない場合には、第1解析ログには、環境依存性のある活動痕跡が存在しないと判定する。
【0063】
収集部151は、収集した第1解析ログ、第2解析ログ、第3解析ログを、マルウェア識別情報と対応付けて、履歴DB142に登録する。
【0064】
収集部151は、ターゲットDB141に登録された他のマルウェアについても、上記処理を実行し、第1解析ログ、第2解析ログ、第3解析ログを収集し、履歴DB142に登録する処理を繰り返し実行する。
【0065】
更新部152は、第1解析ログから、時間依存性のある活動痕跡および環境依存性のある活動痕跡を除去することで、第1解析ログを更新する処理部である。たとえば、更新部152は、第1解析ログの活動痕跡のうち、第2解析ログの活動痕跡と一致しない活動痕跡を、時間依存性のある活動痕跡として除去する。
【0066】
更新部152は、第1解析ログの活動痕跡のうち、第3解析ログの活動痕跡と一致しない活動痕跡を、環境依存性のある活動痕跡として除去する。
【0067】
更新部152は、履歴DB142に登録された各第1解析ログについて、上記処理を繰り返し実行する。
【0068】
生成部153は、更新部152によって更新された第1解析ログを基にして、IOCを生成する。生成部153は、非特許文献1、非特許文献2に記載された技術を用いて、IOCを生成してもよい。生成部153は、生成したIOCを記憶部140に記憶させてもよいし、外部装置に通知してもよい。
【0069】
図5は、時間依存性のある活動痕跡の一例を示す図である。
図5において、「GetLocalTime」は、時間情報を取得するシステムAPIであり、システム時刻の時間情報をしている。「GetLocalTime」の出力値である、システム時刻を格納した「lpSystemTime」とプロセス名の活動痕跡との間にデータの依存関係がある場合を想定している。すなわち、「lpSystemTime」の値を基にして、プロセス名を決定しているものとする。
【0070】
たとえば、解析ログ11aは第1解析ログに対応し、解析ログ11bは第2解析ログに対応するものとする。解析ログ11aのシステム時刻と、解析ログ11bのシステム時刻との差異がある場合、それに合わせて活動痕跡も異なる。これが、時間依存性である。
【0071】
図6は、環境依存性のある活動痕跡の一例を示す図である。
図6において、「GetVolumeInformationA」は、システムAPIであり、ボリュームに関する環境情報を取得している。「GetVolumeInformationA」の出力値である、ボリュームのシリアル番号を格納したlpVolumeSerialNumberと、プロセス名の活動痕跡との間にデータの依存関係がある場合を想定している。すなわち、ボリュームのシリアル番号の値を基にして、プロセス名を決定しているものとする。
【0072】
たとえば、解析ログ12aは第1解析ログに対応し、解析ログ12bは第3解析ログに対応するものとする。解析ログ12aのシリアル番号と、解析ログ11bのシリアル番号との差異がある場合、それに合わせて活動痕跡も異なる。これが、環境依存性である。
【0073】
図7は、解析ログの比較の一例を示す図である。
図7では、解析ログ13aと、解析ログ13bとを示す。更新部152は、2つの解析ログ13a,13bのAPI呼び出し同士を対応付けていく。この対応付けは、たとえば、最長共通部分の抽出等によって行うが、これに限られるものではない。更新部152は、対応したAPI呼び出し同士の活動痕跡を比較し、一致しているか、不一致かを特定する。
図7に示す例では、領域13a-1の文字列と、領域13b-1の文字列とが一致しているが、領域13a-2の文字列と、領域13b-2の文字列とが不一致となっている。たとえば、更新部152は、かかる不一致となった、領域13a-2の文字列と、領域13b-2の文字列と除去する。
【0074】
次に、本実施例に係る活動痕跡抽出装置100の処理手順の一例について説明する。
図8は、本実施例に係る活動痕跡抽出装置の処理手順を示すフローチャートである。活動痕跡抽出装置100の収集部151は、第1環境において、マルウェアプロセス50cを実行し、APIトレーサ50bを用いて第1解析ログを収集する(ステップS101)。
【0075】
収集部151は、一定時間経過後、第2環境において、マルウェアプロセス50cを実行し、APIトレーサ50bを用いて第2解析ログを収集する(ステップS102)。活動痕跡抽出装置100の更新部152は、第1解析ログと第2解析ログとを比較して、時間依存性のある活動痕跡を特定する(ステップS103)。
【0076】
収集部151は、第1解析ログを基にして、システムやデバイスの情報を取得するAPIの読み出し環境を特定する(ステップS104)。収集部151は、仮想環境上で、読み出し環境を変更して、マルウェアプロセス50cを実行し、APIトレーサ50bを用いて第3解析ログを収集する(ステップS105)。
【0077】
更新部152は、第1解析ログと第3解析ログとを比較して、環境依存性のある活動痕跡を特定する(ステップS106)。更新部152は、第1解析ログから、時間依存性のある活動痕跡、環境依存性の活動痕跡を除去することで、第1解析ログを更新する(ステップS107)。
【0078】
生成部153は、更新した第1解析ログを基にしてIOCを生成する(ステップS108)。生成部153は、IOCを記憶部140に登録する(ステップS109)。
【0079】
図9は、解析ログを比較して依存性のある活動痕跡を特定する処理手順を示すフローチャートである。
図9の処理は、
図8のステップS103,S106の処理に対応する。
【0080】
図9に示すように、情報処理装置100の制御部150は、2つの異なる解析ログを入力として受け取る(ステップS201)。制御部150は、2つの解析ログの間で所定の方法で解析ログの行同士のマッチングを検出する(ステップS202)。たとえば、制御部150は、最長共通部分の抽出等によって、ステップS202の処理を実行する。
【0081】
制御部150は、共通している先頭の解析ログの行を取り出す(ステップS203)。制御部150は、出力値が一致している場合には(ステップS204,Yes)、ステップS206に移行する。一方、制御部150は、出力値が一致していない場合には(ステップS204,No)、不一致の出力値を依存性のある活動軌跡のリストに加える(ステップS205)。
【0082】
制御部150は、全ての解析ログの行を取り出していない場合には(ステップS206,No)、共通している次の解析ログの行を取り出し(ステップS207)、ステップS204に移行する。一方、制御部150は、全ての解析ログの行を取り出した場合には(ステップS206,Yes)、依存性のある活動痕跡のリストを出力する(ステップS208)。
【0083】
図10は、APIフックを用いてシステムの環境情報を変更する処理手順を示すフローチャートである。
図10に示すように、情報処理装置100の制御部150は、予め各APIに対して複数の出力値を定義したリストを生成しておく(ステップS301)。収集部151は、アクセスのあったシステム情報を受け取る(ステップS302)。
【0084】
制御部150は、システム情報に対応したAPIをフックする(ステップS303)。制御部150は、リストに定義された出力値のうち、本来と異なる出力値を返させる(ステップS304)。
【0085】
図11は、解析環境を変更することでシステムの環境情報を変更する処理手順を示すフローチャートである。
図11に示すように、制御部150は、あらかじめ複数の構成と設定を定義したリストを作成しておく(ステップS401)。制御部150は、アクセスのあったシステム情報を受け取る(ステップS402)。制御部150は、システム情報にハードウェア構成に関する情報が含まれない場合には(ステップS403,No)、ステップS405に移行する。
【0086】
制御部150は、システム情報にハードウェア構成に関する情報が含まれる場合には(ステップS403,Yes)、仮想環境30を操作して機器の構成を変更する(ステップS404)。
【0087】
制御部150は、システム情報にシステム設定に関する情報が含まれていない場合には(ステップS405,No)、処理を終了する。
【0088】
一方、制御部150は、システム情報にシステム設定に関する情報が含まれている場合には(ステップS405,Yes)、エージェント50aを通じてシステムの設定を変更する(ステップS406)。
【0089】
次に、本実施例に係る活動痕跡抽出装置100の効果について説明する。活動痕跡抽出装置100は、活動痕跡の持つ時間依存性および環境依存性を検出することにより、検出に有効な活動痕跡を選択的に抽出し、有効なIOCを生成できる。
【0090】
たとえば、活動痕跡抽出装置100は、第1環境においてマルウェアを実行することで、第1解析ログを収集する。活動痕跡抽出装置100は、第1環境から所定時間経過後の第2環境においてマルウェアを実行することで、第2解析ログを収集する。活動痕跡抽出装置100は、第1解析ログと、第2解析ログとを基にして、時間依存性のある活動痕跡を特定する。
【0091】
また、活動痕跡抽出装置100は、第1環境時において、マルウェアが利用したシステムやデバイスの環境を変更した第3環境時において、マルウェアを実行することで、第3解析ログを収集する。活動痕跡抽出装置100は、第1解析ログと、第3解析ログとを基にして、環境依存性のある活動痕跡を特定する。
【0092】
活動痕跡抽出装置100は、第1解析ログから、時間依存性のある活動痕跡および環境依存性のある活動痕跡を除去することで、第1解析ログを更新し、更新した第1解析ログを基にして、IOCを生成する。活動痕跡抽出装置100が生成したIOCは、時間依存性および環境依存性のない活動痕跡を基に生成されているため、IOCの数を増やすことなく、マルウェアを検出することが可能となる。
【0093】
なお、活動痕跡抽出装置100は、第3環境にする場合に、マルウェアプロセス50cに割り当てるシステムおよびデバイスのAPIを仮想的に変更していたが、これに限定されるものではなく、実際に利用可能なAPIを変更して、マルウェアプロセス50cを動作させてもよい。
【0094】
図12は、活動痕跡抽出プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、たとえば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
【0095】
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、たとえば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、たとえば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、たとえば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、たとえば、ディスプレイ1061が接続される。
【0096】
ここで、ハードディスクドライブ1031は、たとえば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、たとえばハードディスクドライブ1031やメモリ1010に記憶される。
【0097】
また、活動痕跡抽出プログラムは、たとえば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した活動痕跡抽出装置100が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
【0098】
また、活動痕跡抽出プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、たとえば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
【0099】
なお、活動痕跡抽出プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、たとえば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、活動痕跡抽出プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LANやWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0100】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【0101】
100 活動痕跡抽出装置
110 通信部
120 入力部
130 表示部
140 記憶部
141 ターゲットDB
142 履歴DB
150 制御部
151 収集部
152 更新部
153 生成部