−−−概念−−−
マルウェアの挙動を解析するためには、マルウェアを解析環境上で稼働させ、どのような通信をおこなうのか、また、解析環境の内部資源にどのような影響を与えるのかを記録する。マルウェアによっては、インターネットへの接続が確認できないと、稼働を停止してしまうものもあり、このようなマルウェアの解析を行う場合には、解析環境をインターネットと接続させてマルウェア解析を行わなければならない。また、マルウェアが稼働するために必要となる前提ファイルが存在しなければ活動を停止するマルウェアも存在する。
そこで本実施形態では、マルウェアを解析環境で実行したときの解析ログを基にマルウェアが稼働する条件を明らかにし、当該条件を満たす解析環境を構築し、マルウェアを再解析する。以下、この点に着目し、マルウェアの活性度算出処理、稼働条件特定処理、解析環境構築処理について説明するものとする。
−−−構成−−−
図1は、本発明の実施例1に係るマルウェア解析装置101の構成例を示す図である。実施形態に係るマルウェア解析装置101には、マルウェアを実行する解析環境118と、ダミーサーバ119と、がネットワーク120を介して接続される。また、ネットワーク120にはインターネット121が接続される。
マルウェア解析装置101は、CPU(Central Processing Unit)103と、CPU103が処理を実行するために必要なデータを格納するためのメインメモリ104と、大量のデータを記憶する容量を持つハードディスクやフラッシュメモリなどの記憶装置105と、他装置と通信を行なうためのIF(インタフェース)102と、キーボード、ディスプレイなどの入出力を行うための入出力装置106と、これら
の各装置を接続する通信路107と、を備えたコンピュータである。なお、通信路107は、例えば、バスやケーブルなどの情報伝達媒体である。
CPU103は、メインメモリ104に格納された解析プログラム108を実行することにより、マルウェアの解析を行い、活性度判定プログラム109を実行することにより、マルウェアの活動状態の判定を行い、条件特定プログラム110を実行することにより、マルウェアの稼働を阻害する阻害要因を特定し、環境構築プログラム111を実行することにより、阻害要因を取り除いた解析環境118を構築し、結果表示プログラム112を実行することにより、マルウェアの解析結果を表示する。なお、活性度とは、マルウェアがどの程度活発に活動したかを表す指標である。また、以下の説明では、プログラムを実行することにより実現される機能もプログラムと表記する。
解析プログラム108は、ネットワーク120bを介して、解析環境118にマルウェア解析命令を送信する。環境構築プログラム111は、ネットワーク120bを介して、解析環境118または、ダミーサーバ119に環境構築命令を送信する。
記憶装置105には、解析環境118の構成を示す解析環境データ113、解析環境118または、インターネットから取得したファイルを示すファイルデータ114、マルウェアの解析結果を示す解析結果データ115、稼働条件を特定するルールを示す判定ルールデータ116、解析環境118を構築する手順を示す構築ルールデータ117が格納されている。
上記の各プログラムやデータは、あらかじめメモリ104または記憶装置105に格納されていてもよいし、必要な時に、入出力装置106からまたは、IF102を介して他の装置から、インストール(ロード)されても良い。
解析環境118は、CPUと、CPUが処理を実行するために必要なデータを格納するためのメインメモリと、大量のデータを記憶する容量を持つハードディスクやフラッシュメモリなどの記憶装置と、他装置と通信を行うためのIFと、キーボード、ディスプレイなどの入出力を行うための入出力装置と、これらの各装置を接続する通信路と、を備えたコンピュータである。なお、解析環境118のハードウェア構成はマルウェア解析装置101と同様であるため図1では省略している。さらに、解析環境118には、OS(Operating System)や、文書閲覧ソフト、文書作成ソフト、ブラウザなどのソフトウェアがインストールされている。解析環境118がどのようなOSやソフトウェアで構成されているかは、解析環境データ113で管理する。解析環境118で実行されるマルウェアは、ネットワーク120cを介して通信を行う。
解析環境118のメインメモリには、マルウェア解析プログラムと、環境構築プログラムが格納される。解析環境118がマルウェア解析装置101からマルウェア解析命令を受信すると、マルウェア解析プログラムがCPUにより実行され、マルウェアの解析を実行する。マルウェアの実行が終了すると、マルウェア解析プログラムは、マルウェアの実行に関するログ(活動ログ)を、ネットワーク120bを介して、マルウェア解析装置に送信する。また、マルウェア解析装置101から環境構築命令を受信すると、環境構築プログラムが、解析環境118の再構築を行う。なお、解析環境118の再構築は、管理者が必要に応じて行っても良い。
ダミーサーバ119は、CPUと、CPUが処理を実行するために必要なデータを格納するためのメインメモリと、大量のデータを記録する容量を持つハードディスクやフラッシュメモリなどの記憶装置と、他装置と通信を行うためのIFと、キーボード、ディスプレイなどの入出力を行うための入力装置と、これらの各装置を接続する通信路と、を備え
たコンピュータである。なお、ダミーサーバ119のハードウェア構成もマルウェア解析装置101と同様であるため図1では省略している。ダミーサーバ119のメインメモリには、ある特定のプロトコル(例えば、HTTP(Hypertext Transfer Protocol)、DNS(Domain Name System)、FTP(File Transfer Protocol)、IMAP(Internet Message Access Protocol)、IRC(Internet Relay Chat)、SMTP(Simple Mail Transfer Protocol)、Telnet、SSH(Secure Shell)、POP(Post Office Ptorocol)、LDAP(Lightweight Directory Access Protocol)、CIFS(Common Internet File System)など)に対して疑似的な応答を返すダミーサーバプログラムが格納されている。例えば、解析環境118からのHTTP通信要求が行われた場合、ダミーサーバプログラムは当該要求に対する応答を返す。また、ダミーサーバ119のメインメモリには、環境構築プログラムが格納されており、マルウェア解析装置101から環境構築命令を受信すると、当該環境構築プログラムがダミーサーバ119の再構築を行う。なお、ダミーサーバ119の再構築は、管理者が必要に応じて行ってもよい。
−−−データ構成−−−
図2は、解析環境データ113の一例を示す図である。図2に示すように、解析環境データ113は、解析環境ID201と、環境202と、OS203と、CPU204と、言語205と、アプリ206と、設定207と、ファイル208と、を含んで構成される。なお、アプリ206、設定207、ファイル208は、必要に応じて複数の列から構成されても良い。
解析環境ID201は、解析環境を一意に識別できる情報を表す。なお、解析環境ID201は、後述する、ファイルデータ114の取得環境及び、解析結果データ115の解析環境に格納される情報を表している。
環境202は、解析環境の環境を表す。例えば、環境202が「仮想」の場合は、解析環境が、仮想マシンで構築されていることを、環境が「物理」の場合は、解析環境が、物理端末上に構築されていることを表す。
OS203は、解析環境にインストールされているOSを表し、CPU204は、解析環境のCPUアーキテクチャを、言語205は、インストールされているOSの言語を表す。アプリ206は、解析環境にインストールされているアプリケーションを、設定207は、解析環境の設定を、ファイル208は解析環境に設置されているファイルを表す。
図2の例では、解析環境ID201が「解析環境1」、環境202が「物理」、OS203が「OSA」、CPU204が「32bit」、言語205が「日本語」、アプリ1206aが「文書作成ソフトA」、アプリ2206bが「WEBブラウザA」、設定1207aが「user=guest」、設定2207bが「PC=devPC」の解析環境データは、解析環境1が、物理マシン上に構築されており、そのOSはOSA、CPUアーキテクチャは32bit、OSの言語環境は日本語で、文書作成ソフトA、WEBブラウザAがインストールされており、user名はguest、PC名はdevPCであることを示す。
図3は、ファイルデータ114の一例を示す図である。図3に示すように、ファイルデータ114は、ファイルID301と、ファイル名302と、ハッシュ値303と、取得日時304と、取得環境305と、を含んで構成される。
ファイルID301は、ファイルを一意に識別できる情報を表し、ファイル名302はファイル名を表す。
ハッシュ値303は、ファイルから算出する識別子であり、例えば、MD5(Message Digest Algorithm 5)などにより算出された値を表す。
取得日時304は、ファイルを取得した日時であり、取得環境305は、ファイルを取得した環境を表す。なお、取得環境305には、解析環境118で生成されたファイルの情報を格納する場合は、解析環境118の解析環境ID201が格納され、インターネットから取得した場合は、取得してきたWEBサイトの情報(例えば「WEBサイトA」)が格納される。
図3の例では、ファイルID301が「1」、ファイル名302が「FileA.exe」、ハッシュ値303が「0000000001」、取得日時304が「2015/01/01 00:00:00」、取得環境304が「解析環境1」のファイルデータは、ファイル名FileA.exe(ハッシュ値が0000000001)のファイルが、2015/01/01 00:00:00に、解析環境1から取得されたことを表す。なお、ファイル自体は、記憶装置105に格納されている。
図4は、解析結果データ115の一例を示す図である。図4に示すように、解析結果データ115は、解析結果ID401と、解析日時402と、解析環境403と、活動ログ404と、通信ログ405と、画像ログ406と、を含んで構成される。
解析結果ID401は、解析結果データを一意に識別できる情報を表す。
解析日時402は、解析環境118でマルウェアを解析した日時を、解析環境403は、マルウェアを解析した時の解析環境118の環境(解析環境ID201)を表す。
活動ログ404は、解析環境118でマルウェアを解析した際に取得された活動ログを格納したファイル名を、通信ログ405は、マルウェアを解析した際に取得された通信ログを格納したファイル名を、画像ログ406は、マルウェアを解析した際の解析環境118の画面取得ログを格納したファイル名を表す。なお、上記ファイルはそれぞれ記憶装置105に格納されている。画像ログは、例えば、解析画面をある一定の間隔(例えば5秒)で取得したものである。なお、活動ログ404は、図5を用いて後述する。
図4の例では、解析結果ID401が「1」、解析日時402が「2015/01/01 00:00:00」、解析環境403が「解析環境1」、活動ログ404が「1.txt」、通信ログ405が「1.pcap」、画像ログ406が「1_1.jpg〜1_5.jpg」の解析結果データは、2015/01/01 00:00:00に、解析環境1でマルウェア解析を行った際に取得した活動ログを、1.txtというファイル名で、通信ログを1.pcapというファイル名で、画像ログを1_1.jpg〜1_5.jpgというファイル名で記憶装置105に格納していることを表す。
図5は、活動ログ404の一例を示す図である。図5に示すように、活動ログ404は、日時501と、タイプ502と、動作503と、対象504と、動作結果505と、を含んで構成される。
日時501は、ログが記録された日時を表し、タイプ502はログのタイプ(Process、File、Registry、Network等)を表す。操作503はタイプ502に関する動作(Start、Terminate、Create、Read、Wr
ite、Delete、Set、Access等)を表し、対象504は、操作503の対象を表す。さらに、動作結果505は、動作503の結果(Success、Failure等)を表す。
図5の例では、「2015/01/01 00:00:00 Process Start xxx.exe Success」の活動ログは、2015/01/01 00:00:00に、xxx.exeのプロセスが正常に開始したことを表し、「2015/01/01 00:00:10 File Create FileA.exe Success」の活動ログは、2015/01/01 00:00:10に、FileA.exeが正常に作成されたことを表す。また、「2015/01/01 00:00:11 Registry Set HKLM¥SOFTWARE¥xxx¥Run FileA.exe Success」の活動ログは、2015/01/01 00:00:11に、レジストリHKLM¥SOFTWARE¥xxx¥Runに、FileA.exeが正常に設定されたことを表し、「2015/01/01 00:00:12 Network http://malware.com Success」の活動ログは、2015/01/01 00:00:12に、http://malware.comへのネットワークアクセスに成功したことを表す。「2015/01/01 00:00:13 Process Start FileB.exe Failure」の活動ログは、2015/01/01 00:00:13に、FileB.exeのプロセス開始に失敗したことを表す。
図6は、判定ルールデータ116の一例を示す図である。図6に示すように、判定ルールデータ116は、判定ルールID601と、種別602と、データ603と、を含んで構成される。
判定ルールID601は、判定ルールを一意に識別できる情報を表す。
種別602は、判定ルールが判定を行う際に利用するマルウェア解析結果データの種類を表している。例えば、種別602が「ホスト」であれば、ネットワークアクセスを行ったホストを判定ルールとして利用することを表し、種別602が「ウインドウ」であれば、解析環境118で起動されたウインドウの名前を判定ルールとして利用することを表し、種別602が「レジストリ」であれば、レジストリの操作ログを判定ルールとして利用することを表す。
データ603は、マルウェア解析結果データのログと比較する情報を表す。例えば、「http://malware.com」のデータ603であれば、マルウェアの活動ログの情報を、http://malware.comと比較する。
図6の例では、判定ルールID601が「1」、種別602が「ホスト」、データ603が「http://malware.com」の判定ルールは、マルウェア活動ログ404にhttp://malware.comへのネットワークアクセスがあった場合に、当該マルウェアが稼動したと判定するルールである。なお、マルウェア活動ログ404の代わりに、通信ログ405や、画像ログ406のログをもとに稼動判定してもよい。
例えば、判定ルールIDが「4」、種別602が「プロセス」、データ603が「C:¥ProgramFiles¥文書作成ソフトA.exe」の判定ルールは、マルウェア活動ログ404に、C:¥ProgramFiles¥文書作成ソフトA.exeのプロセス情報があった場合に、当該マルウェアが稼動したと判定する。
判定ルールデータ116は、マルウェアが稼動したかどうかを判定するためのものであ
り、例えば、自動起動設定へのレジストリアクセスや、スリーププロセスの起動、システムディレクトリへの実行ファイル書き込みや、ネットワークアクセス等、マルウェアが行う動作に関するルールを格納しておく。
なお、判定ルールデータ116の各情報は、管理者が必要に応じて、入力または更新しても良い。
判定ルールデータ116は、CPU103により実行される活性度判定プログラム109が、マルウェアが稼動したかどうかを判定するための活性度を算出する際に利用される。活性度判定プログラム109の具体的な処理については、図9を用いて後述する。
図7は、構築ルールデータ117の一例を示す図である。図7に示すように、構築ルールデータ117は、構築ルールID701と、種別702と、データ703と、ルール704と、を含んで構成される。
構築ルールID701は、構築ルールを一意に識別できる情報を表す。
種別702は、構築を行う際に利用するマルウェア解析結果データの種類を表している。例えば、種別702が「ファイル」であれば、解析結果データのファイルログに関する情報をもとに新たな解析環境118を構築することを表し、種別702が「ホスト」であれば、解析結果データのネットワークアクセスに関する情報をもとに新たな解析環境118を構築することを表す。
データ703は、マルウェア解析結果データのログと比較する情報を表す。例えば、データ703が「C:¥ProgramFiles¥文書作成ソフトA.exe」であれば、マルウェアの活動ログの情報を、C:¥ProgramFiles¥文書作成ソフトA.exeと比較する。
ルール704は、解析環境118を再構築するための具体的な手順(再構築ルール)を表す。例えば、ルール704が「文書作成ソフトAインストール」であれば、解析環境118に、文書作成ソフトAをインストールすることを表す。
図7の例では、構築ルールID701が「1」、種別702が「ファイル」、データ703が「C:¥ProgramFiles¥文書作成ソフトA.exe」、ルール704が「文書作成ソフトAインストール」の構築ルールは、マルウェア活動ログ404に、C:¥ProgramFiles¥文書作成ソフトA.exeに関するファイル操作の結果が「Failure」と記録されていた場合に、文書作成ソフトAをインストールした解析環境118を構築することを表す。これは、文書作成ソフトAがインストールされていないことが、マルウェアの活動を阻害する要因であることを表す。
また、構築ルールID701が「2」、種別702が「ファイル」、データ703が「C:¥System32¥OSB.dll」、ルール704が「OSB構築」の構築ルールは、マルウェア活動ログ404に、C:¥System32¥OSB.dllに関するファイル操作の結果が「Failure」と記録されていた場合に、OSB.dllをインストールした解析環境118を構築することを表す。OSB.dllがOSBにしか存在しないファイルである場合、マルウェアがOSB.dllに関するファイル操作をしようとしていることより、当該マルウェアはOSBで動くマルウェアである可能性が高いと言える。換言すれば、OSBがインストールされていないことが、マルウェアの活動を阻害する要因であることを表す。
例えば、構築ルールID701が「5」、種別702が「レジストリ」、データ703が「HKLM¥SOFTWARE¥Classes¥.pdf」、ルール704が「文書閲覧ソフトAインストール」である構築ルールは、マルウェア活動ログ404に、HKLM¥SOFTWARE¥Classes¥.pdfに関するレジストリ操作が「Faillure」と記録されていた場合に、文書閲覧ソフトAをインストールした解析環境118を構築することを表す。これは、拡張子がpdfのファイルに関連付けられたアプリケーションを取得することに失敗していることを表しており、これより、マルウェアが稼動するためには、拡張子がpdfであるファイルを操作するために必要となるアプリケーション(例えば、文書閲覧ソフトAまたは、文書閲覧ソフトB)が必要となることを表す。換言すれば、アプリケーションがインストールされていないことが、マルウェアの活動を阻害する要因であることを表す。
例えば、構築ルールID701が「9」、種別702が「レジストリ」、データ703が「HKLM¥VirtualMachine¥Parameters」、ルール704が「仮想環境構築」である構築ルールは、マルウェア活動ログ404に、HKLM¥VirtualMachine¥Parametersに関するレジストリ操作が「Faillure」と記録されていた場合に、仮想環境の解析環境118を構築することを表す。これは、マルウェアが、仮想環境に関する情報の収集に失敗していることを表しており、これより、マルウェアが稼動するためには、仮想環境が必要となることを表す。換言すれば、仮想環境でないことが、マルウェアの活動を阻害する要因であることを表す。
例えば、構築ルールID701が「10」、種別702が「レジストリ」、データ703が「HKLM¥SYSTEM¥Environment¥ARCHITECTURE¥x86」、ルール704が「32bit環境構築」である構築ルールは、マルウェア活動ログ404に、HKLM¥SYSTEM¥Environment¥ARCHITECTURE¥x86に関するレジストリ操作が「Faillure」と記録されていた場合に、32bit環境の解析環境118を構築することを表す。これは、マルウェアが、32bitのCPUに関する情報の収集に失敗していることを表しており、これより、マルウェアが稼動するためには、32bit環境が必要となることを表す。換言すれば、32bit環境でないことが、マルウェアの活動を阻害する要因であることを表す。
なお、構築ルールデータ117の各情報は、管理者が必要に応じて、入力または更新しても良い。
構築ルールデータ117は、CPU103により実行される環境構築プログラム111が、解析環境118の環境構築命令を送信する際に利用される。環境構築プログラム111の具体的な処理については、図11を用いて後述する。
−−−処理フローの例1−−−
続いて、マルウェア解析装置101の解析プログラム108が、解析環境118に対してマルウェアの解析命令を送信し、解析環境118より受信した解析結果データに対して、活性度判定プログラム109がマルウェアの活性状態を判定し、条件特定プログラム110がマルウェアの阻害要因を特定し、環境構築プログラム111が阻害要因を除外した解析環境を構築し、結果表示プログラム112がマルウェアの解析結果を表示する処理について説明する。
図8は、マルウェア解析装置101の解析プログラム108の処理を示すフローチャートである。図8に示すように、マルウェアの解析を行なう解析プログラム108は、CPU103により実行され、解析環境118に対してマルウェアの解析命令を、IF102aを介してネットワーク120bに送信する(ステップ801)。解析環境118は、マ
ルウェア解析装置101からのマルウェア解析命令を受信すると、マルウェアの解析を行い、その解析結果と、マルウェア解析中に解析環境118で生成されたファイルとを、ネットワーク120bを介してマルウェア解析装置101に送信する。
解析プログラム108は、解析環境118から受信したマルウェアの解析結果を解析結果データ115に格納する(ステップ802)。
解析プログラム108は、解析環境118から受信した、解析環境118で生成されたファイルを、ファイルデータ114に格納する(ステップ803)。
解析プログラム108は、活性度判定プログラム109を起動し、解析環境118のマルウェア活性度を判定する(ステップ804)。この時、解析プログラム108は、ステップ802で受信したマルウェアの解析結果を活性度判定プログラム109に送信する。なお、マルウェアの活性状態を判定する活性度判定プログラム109の処理については、図9を用いて後述する。
解析プログラム108は、活性度判定プログラム109が算出した活性度がある閾値(例えば0.8)以上であればステップ808に進み、ある閾値より小さければステップ806に進む(ステップ805)。
解析プログラム108は、条件特定プログラム110を起動し、マルウェアの稼動を阻害する阻害要因の特定を行う(ステップ806)。この時、解析プログラム108は、ステップ802で受信したマルウェアの解析結果を条件特定プログラム110に送信する。なお、阻害要因の特定を行う、条件特定プログラム110の処理については、図10を用いて後述する。
解析プログラム108は、環境構築プログラム111を起動し、阻害要因を取り除いた解析環境118の構築を行う(ステップ807)。なお、環境構築プログラム111の処理については、図11を用いて後述する。
解析プログラム108は、結果表示プログラム112を起動し、マルウェアの解析結果の表示を行い(ステップ808)、処理を終了する。なお、結果表示プログラム112による解析結果の表示については、図12を用いて後述する。
なお、ステップ805において、活性度が閾値以上の場合に解析結果を表示して処理を終了するが、繰り返し回数がある一定値を超えた場合に、解析結果を表示して処理を終了してもよい。
−−−処理フローの例2−−−
図9は、解析環境118で実行されたマルウェアの活性状態を判定する、活性度判定プログラム109の処理を示すフローチャートである。図9に示すように、活性度判定プログラム109は、CPU103により実行され、マルウェアの解析結果を解析プログラム108より受信すると、活性度を0として初期化した後、活性度の算出処理を開始する(ステップ901)。
活性度判定プログラム109は、マルウェアの活動ログ404のネットワークアクセス回数を算出し、ある閾値(例えば1)以上であればステップ903に進み、ある閾値よりも少なければ、ステップ904に進む(ステップ902)。
活性度判定プログラム109は、活性度に0.1を加算する(ステップ903)。
活性度判定プログラム109は、画像ログ406の画像変化回数を算出し、ある閾値(例えば2)以上であればステップ905に進み、ある閾値より少なければ、ステップ906に進む(ステップ904)。なお、例えば、ある閾値以上の変化(画像の80%以上画素で変化が起きた場合等)が起きた場合に画像が変化したとして検出する。
活性度判定プログラム109は、活性度に0.1を加算する(ステップ905)。
活性度判定プログラム109は、マルウェアの活動ログ404のプロセス操作回数を算出し、ある閾値(例えば2)以上であればステップ907に進み、ある閾値よりも少なければ、ステップ908に進む(ステップ906)。
活性度判定プログラム109は、活性度に0.1を加算する(ステップ907)。
活性度判定プログラム109は、マルウェアの活動ログ404のレジストリ操作回数を算出し、ある閾値(例えば2)以上であればステップ909に進み、ある閾値よりも少なければ、ステップ910に進む(ステップ908)。
活性度判定プログラム109は、活性度に0.1を加算する(ステップ909)。
活性度判定プログラム109は、マルウェアの活動ログ404のファイル操作回数を算出し、ある閾値(例えば2)以上であればステップ911に進み、ある閾値よりも少なければ、ステップ912に進む(ステップ910)。
活性度判定プログラム109は、活性度に0.1を加算する(ステップ911)。
活性度判定プログラム109は、マルウェアの活動ログ404からネットワークアクセス先のホストを取得し、判定ルールデータ116の種別602が「ホスト」であるデータ603に、該当するホストが記載されていないか比較を行う。データ603に該当するホストが、記載されている場合は、ステップ913に進み、記載されていない場合は、ステップ914に進む(ステップ912)。
活性度判定プログラム109は、活性度に0.1を加算する(ステップ913)。
活性度判定プログラム109は、マルウェアの活動ログ404から生成されたウインドウのタイトルを取得し、判定ルールデータ116の種別602が「ウインドウ」であるデータ603に、該当するウインドウ名が記載されていないか比較を行う。データ603に該当するウインドウ名が、記載されている場合は、ステップ915に進み、記載されていない場合は、ステップ916に進む(ステップ914)。
活性度判定プログラム109は、活性度に0.1を加算する(ステップ915)。
活性度判定プログラム109は、マルウェアの活動ログ404から操作されたプロセス名を取得し、判定ルールデータ116の種別602が「プロセス」であるデータ603に、該当するプロセス名が記載されていないか比較を行う。データ603に該当するプロセス名が、記載されている場合は、ステップ917に進み、記載されていない場合は、ステップ918に進む(ステップ916)。
活性度判定プログラム109は、活性度に0.1を加算する(ステップ917)。
活性度判定プログラム109は、マルウェアの活動ログ404から操作されたレジストリ名を取得し、判定ルールデータ116の種別602が「レジストリ」であるデータ603に、該当するレジストリ名が記載されていないか比較を行う。データ603に該当するレジストリ名が、記載されている場合は、ステップ919に進み、記載されていない場合は、ステップ920に進む(ステップ918)。
活性度判定プログラム109は、活性度に0.1を加算する(ステップ919)。
活性度判定プログラム109は、マルウェアの活動ログ404から操作されたファイル名を取得し、判定ルールデータ116の種別602が「ファイル」であるデータ603に、該当するファイル名が記載されていないか比較を行う。データ603に該当するファイル名が、記載されている場合は、ステップ921に進み、記載されていない場合は処理を終了する(ステップ920)。
活性度判定プログラム109は、活性度に0.1を加算し、処理を終了する(ステップ921)。
なお、本実施形態では、活性度に0.1を加算する場合を説明したが、処理ごとで加算する活性度の値を変更してもよい。
また、本実施形態では、操作結果が「Success」でも「Failure」でも操作回数として算出したが、例えば、操作結果が「Success」の操作だけを操作回数としてもよい。
−−−処理フローの例3−−−
図10は、マルウェアの稼動を阻害する阻害要因を特定する、条件特定プログラム110の処理を示すフローチャートである。図10に示すように、条件特定プログラム110は、CPU103により実行され、マルウェアの解析結果を解析プログラム108より受信すると、判定処理を開始する(ステップ1001)。
条件特定プログラム110は、マルウェアの活動ログ404を調査し、ファイル操作の操作結果が「Failure」であった場合に、ステップ1003に進み、ファイル操作でない、或いは、ファイル操作の結果が「Success」の場合にステップ1004に進む(ステップ1002)。
条件特定プログラム110は、ステップ1002で該当したファイル名を環境条件に追加する(ステップ1003)。
条件特定プログラム110は、マルウェアの活動ログ404を調査し、プロセス操作の操作結果が「Failure」であった場合に、ステップ1005に進み、プロセス操作でない、或いは、プロセス操作の結果が「Success」の場合にステップ1006に進む(ステップ1004)。
条件特定プログラム110は、ステップ1004で該当したプロセス名を環境条件に追加する(ステップ1005)。
条件特定プログラム110は、マルウェアの活動ログ404を調査し、レジストリ操作の操作結果が「Failure」であった場合に、ステップ1007に進み、レジストリ操作でない、或いは、レジストリ操作の結果が「Success」の場合にステップ1008に進む(ステップ1006)。
条件特定プログラム110は、ステップ1006で該当したレジストリ名を環境条件に追加する(ステップ1007)。
条件特定プログラム110は、マルウェアの活動ログ404を調査し、ネットワーク操作の操作結果が「Failure」であった場合に、ステップ1009に進み、ネットワーク操作でない、或いは、ネットワーク操作の結果が「Success」の場合にステップ1010に進む(ステップ1008)。
条件特定プログラム110は、ステップ1008で該当したネットワークアクセス先のホスト名を環境条件に追加する(ステップ1009)。
条件特定プログラム110は、すべての活動ログを処理した場合は、処理を終了し、取得していない活動ログがある場合にステップ1001に進む(ステップ1010)。
なお、本実施形態では、活動ログ404を一行ずつ処理する場合について記載したが、複数行の活動ログを一括で処理を行ってもよい。
−−−処理フローの例4−−−
図11は、マルウェアの稼動を阻害する阻害要因を除外した解析環境118を構築する、環境構築プログラム111の処理を示すフローチャートである。図11に示すように、環境構築プログラム111は、CPU103により実行され、環境条件を条件特プログラム110より受信すると、環境構築処理を開始する(ステップ1101)。
環境構築プログラム111は、ステップ1101で取得した環境条件の種別がファイル名または、プロセス名であれば、ステップ1103に進み、そうでない場合はステップ1108に進む(ステップ1102)。
環境構築プログラム111は、ステップ1101で取得した環境条件のファイル名またはプロセス名と、ファイルデータ114に格納されたファイル名302とを比較し、該当するファイル名302が存在すれば、ステップ1105に進み、該当するファイル名302が存在しなければ、ステップ1104に進む(ステップ1103)。
環境構築プログラム111は、ネットワーク120bを介してインターネット121aに接続し、ステップ1101で取得した環境条件に含まれる、ファイル名またはプロセス名と一致するファイルの検索を行い、該当するファイルが存在する場合は、ファイルデータ114に当該ファイルを格納し、ステップ1105に進み、該当するファイルが存在しない場合は、ステップ1106に進む(ステップ1104)。
環境構築プログラム111は、ファイルデータ114より、当該ファイルを取得し、解析環境118に対して、当該ファイルを配置した解析環境の構築命令を送信する。また、環境構築プログラム111は、当該ファイル名または、プロセス名と、構築ルールデータ117のデータ703と、を比較し、該当する構築ルールが存在する場合には、解析環境118に対して、当該構築ルールのルール704の構築命令を送信する(ステップ1105)。
なお、構築命令を受信した解析環境118は、当該構築命令に従って新たな解析環境を構築するが、この時、既存の環境を再構築してもよいし、既存の環境を残したまま、新たな解析環境を構築してもよい。
環境構築プログラム111は、ネットワーク120bを介してインターネット121aに接続し、ステップ1101で取得した環境条件に含まれる、ファイル名または、プロセス名に関するマルウェア解析の結果の検索を行う。当該ファイル名または、プロセス名に該当するマルウェア解析結果が存在した場合は、ステップ1107に進み、存在しない場合は、ステップ1108に進む(ステップ1106)。
環境構築プログラム111は、ステップ1106で取得したマルウェア解析結果を、解析結果データ115に格納する(ステップ1107)。
環境構築プログラム111は、ステップ1101で取得した環境条件の種別がレジストリであればステップ1109に進み、レジストリでなければステップ1110に進む(ステップ1108)。
環境構築プログラム111は、解析環境118に対して、当該レジストリ名を作成した解析環境の構築命令を送信する。また、環境構築プログラム111は、当該レジストリ名と、構築ルールデータ117のデータ703と、を比較し、該当する構築ルールが存在する場合には、解析環境118に対して、当該構築ルールのルール704の構築命令を送信する(ステップ1109)。
環境構築プログラム111は、ステップ1101で取得した環境条件の種別がホストであればステップ1111に進み、ホストでなければステップ1112に進む(ステップ1110)。
環境構築プログラム111は、ダミーサーバ119に対して、当該ホストに対して擬似応答を返すような解析環境の構築命令を送信する。また、環境構築プログラム111は、当該ホスト名と、構築ルールデータ117のデータ703と、を比較し、該当する構築ルールが存在する場合には、解析環境118または、ダミーサーバ119に対して、当該構築ルールのルール704の構築命令を送信する(ステップ1111)。
環境構築プログラム111は、すべての環境条件を処理した場合は、処理を終了し、取得していない環境条件がある場合にステップ1101に進む(ステップ1112)。
なお、本実施形態では、環境条件を一行ずつ処理する場合について記載したが、複数行の環境条件を一括で処理を行ってもよい。また、環境条件を追加する処理(ステップ1003、ステップ1005、ステップ1007、ステップ1009)に変えて、環境構築プログラム112を開始してもよい。これにより、すべての活動ログ404を処理する前に環境構築を始めることが可能となる。
図12は、マルウェア解析結果を表示する表示画面の一例である。図12に示すように、マルウェア解析結果の表示画面は、マルウェアの解析環境ごとの活性度(図中1201)と、マルウェアの活動状況(図中1202)との内容を含んで構成される。なお、活動状況の表示画面では、解析結果データ115に含まれる複数の解析結果を併せて表示する。
活性度の表示では、マルウェアを解析した解析環境118の情報と、当該解析環境で取得された解析結果より、活性度判定プログラム109で算出した活性度と、を併せて表示する。なお、解析環境118の情報は、一部の情報に限って表示しても良い。
マルウェアの活動状況の表示では、マルウェアが生成したファイルや、ネットワーク接続先に関して表示する。なお、「解析環境2」での解析結果より、「検体A」がホスト「
malware.com」にアクセスし、「検体A」が「ファイルB」を生成し、生成された「ファイルB」が「ファイルC」を生成し、生成された「ファイルC」がホスト「www.xxx.com」にアクセスしていることが分かり、さらに、「外部サイトA」での「ファイルC」解析結果より、「ファイルC」がホスト「www.yyy.com」にアクセスしていることが分かった場合を、図12に例示している。
なお、表示画面には、活性度の高い、解析環境のみを表示してもよい。また、図12では、ファイルの生成と、ネットワークアクセスに関して活動状況を例示したが、プロセス操作や、レジストリ操作に関しても活動状況に記載してもよい。また、過去に解析したマルウェアの解析結果を併せて表示してもよい。
ステップ901からステップ921及び、ステップ1001からステップ1010、ステップ1101からステップ1112を含めたステップ801からステップ808までの処理の流れを、具体例を用いて説明する。例えば、ある不審ファイル(以下マルウェア)を解析するとする。また、解析環境118の環境は、解析環境データ118の解析環境IDが「解析環境1」の環境であるとする。
解析プログラム108は、解析対象のマルウェアを解析環境118に送信すると同時に、マルウェアの解析命令を解析環境118に送信し、動的解析を開始する(ステップ801)。
解析プログラム108は、解析環境118からマルウェアの解析結果を受信すると、解析結果を解析結果データ115に格納する(ステップ802)。具体的には、解析環境118から、解析結果「1.txt」、通信ログ「1.pcap」、画像ログ「1_1.jpg〜1_5.jpg」を受信した場合、解析結果ID401に「1」を、解析日時402に「2015/01/01 00:00:00」を、解析環境403に「解析環境1」を、活動ログ404に「1.txt」を、通信ログに「1.pcap」を、画像ログ406に「1_1.jpg〜1_5.jpg」を格納する。なお、各ファイルの本体は、記憶装置105に格納する。
解析プログラム108は、解析環境118から、マルウェア解析中に生成されたファイルを受信すると、受信したファイルをファイルデータ114に格納する(ステップ803)。具体的には、解析環境118で、FileA.exe及びFileB.exeが生成された場合、ファイルデータ114に、ファイルID301に「1」を、ファイル名302に「FileA.exe」を、ハッシュ値303に「0000000001」を、取得日時304に、「2015/01/01 00:00:00」を、取得環境305に「取得環境1」を格納する。なお、FileBに関しても同様にファイルデータ114にファイルの情報を格納する。この時、取得したファイルの本体は、記憶装置105に格納する。
解析プログラム108は、解析結果データの情報を活性度判定プログラム109に送信し、活性度の算出を行う(ステップ804)。具体的には、活動ログ404「1.txt」、通信ログ405「1.pcap」、画像ログ406「1_1.jpg〜1_5.jpg」の情報を、活性度判定プログラム109に送信する。
活性度判定プログラム109は、解析結果データを受信すると、活性度を0に初期化して、活性度判定処理を開始する(ステップ901)。
活性度判定プログラム109は、マルウェアの活動ログ404のネットワークアクセス回数を算出し、ある閾値(例えば1)以上であればステップ903に進み、ある閾値より
も少なければステップ904に進む(ステップ902)。具体的には、活動ログ「1.txt」に含まれるネットワークアクセス回数は「1」であるため、ステップ903に進み、活性度は「0.1」となる。
活性度判定プログラム109は、画像ログ406の画像変化回数を算出し、ある閾値(例えば2)以上であればステップ905に進み、ある閾値より少なければステップ906に進む(ステップ904)。具体的には、画像ログ「1_1.jpg〜1_5.jpg」の変化回数を算出する。ここでは、説明を省略するが、画像変化回数が「0」だったとする。この時、活性度は「0.1」のままとなる。
活性度判定プログラム109は、マルウェアの活動ログ404のプロセス操作回数を算出し、ある閾値(例えば2)以上であればステップ907に進み、ある閾値よりも少なければステップ908に進む(ステップ906)。具体的には、活動ログ「1.txt」に含まれるプロセス操作回数は「3」であるため、ステップ907に進み、活性度は「0.2」となる。
活性度判定プログラム109は、マルウェアの活動ログ404のレジストリ操作回数を算出し、ある閾値(例えば2)以上であればステップ909に進み、ある閾値よりも少なければステップ910に進む(ステップ908)。具体的には、活動ログ「1.txt」に含まれるレジストリ操作回数は「1」であるため、活性度は「0.2」のままとなる。
活性度判定プログラム109は、マルウェアの活動ログ404のファイル操作回数を算出し、ある閾値(例えば2)以上であればステップ911に進み、ある閾値よりも少なければステップ912に進む(ステップ910)。具体的には、活動ログ「1.txt」に含まれるファイル操作回数は「2」であるため、ステップ911に進み、活性度は「0.3」となる。
活性度判定プログラム109は、マルウェアの活動ログ404からネットワークアクセス先のホストを取得し、判定ルールデータ116の種別602が「ホスト」であるデータ603に、該当するホストが記載されていないか比較を行う。データ603に該当するホストが、記載されている場合はステップ913に進み、記載されていない場合はステップ914に進む(ステップ912)。具体的には、活動ログ「1.txt」に含まれるネットワークアクセス先は「http://malware.com」であり、判定ルールデータ116に該当するホストが存在するため、ステップ913に進み、活性度は「0.4」となる。
活性度判定プログラム109は、マルウェアの活動ログ404から生成されたウインドウのタイトルを取得し、判定ルールデータ116の種別602が「ウインドウ」であるデータ603に、該当するウインドウ名が記載されていないか比較を行う。データ603に該当するウインドウ名が、記載されている場合はステップ915に進み、記載されていない場合はステップ916に進む(ステップ914)。具体的には、活動ログ「1.txt」に含まれるウインドウを取得する。ここでは、ウインドウを表示するプロセスが存在していないため、活性度は「0.4」のままとなる。
活性度判定プログラム109は、マルウェアの活動ログ404から操作されたプロセス名を取得し、判定ルールデータ116の種別602が「プロセス」であるデータ603に、該当するプロセス名が記載されていないか比較を行う。データ603に該当するプロセス名が、記載されている場合はステップ917に進み、記載されていない場合はステップ918に進む(ステップ916)。具体的には、活動ログ「1.txt」に含まれるプロセス名は「xxx.exe、FileA.exe、FileB.exe」であり、判定ル
ールデータ116に該当するプロセスが存在しないため、活性度は「0.4」のままとなる。
活性度判定プログラム109は、マルウェアの活動ログ404から操作されたレジストリ名を取得し、判定ルールデータ116の種別602が「レジストリ」であるデータ603に、該当するレジストリ名が記載されていないか比較を行う。データ603に該当するレジストリ名が、記載されている場合は、ステップ919に進み、記載されていない場合は、ステップ920に進む(ステップ918)。具体的には、活動ログ「1.txt」に含まれるレジストリ名は「HKLM¥SOFTWARE¥xxx¥Run」であり、判定ルールデータ116に該当するレジストリが存在するため、ステップ919に進み、活性度は「0.5」となる。
活性度判定プログラム109は、マルウェアの活動ログ404から操作されたファイル名を取得し、判定ルールデータ116の種別602が「ファイル」であるデータ603に、該当するファイル名が記載されていないか比較を行う。データ603に該当するファイル名が、記載されている場合は、ステップ921に進み、記載されていない場合は処理を終了する(ステップ920)。具体的には、活動ログ「1.txt」に含まれるファイル名は「FileA.exe、FileB.exe」であり、判定ルールデータ116に該当するファイル名が存在しないため、活性度は「0.5」のままとなる。
解析プログラム108は、活性度判定プログラム109が算出した活性度がある閾値(例えば0.8)以上であればステップ808に進み、ある閾値より小さければステップ806に進む(ステップ805)。具体的には、活性度判定プログラム109が算出した活性度が「0.5」であるため、ステップ806に進む。
解析プログラム108は、条件特定プログラム110を起動し、マルウェアの稼動を阻害する阻害要因の特定を行う(ステップ806)。この時、解析プログラム108は、ステップ802で受信したマルウェアの解析結果を条件特定プログラム110に送信する。具体的には、活動ログ「1.txt」を条件特定プログラム110に送信する。
条件特定プログラム110は、解析結果を受信すると、条件特定処理を開始する(ステップ1001)。具体的には、活動ログ「1.txt」に含まれる「2015/01/01 00:00:00 Process Start xxx.exe Success」をもとに条件特定処理を行う。
条件特定プログラム110は、マルウェアの活動ログ404を調査し、ファイル操作の操作結果が「Failure」であった場合に、ステップ1003に進み、ファイル操作でない、或いは、ファイル操作の結果が「Success」の場合にステップ1004に進む(ステップ1002)。具体的には、ファイル操作でないため、ステップ1004に進む。
条件特定プログラム110は、マルウェアの活動ログ404を調査し、プロセス操作の操作結果が「Failure」であった場合に、ステップ1005に進み、プロセス操作でない、或いは、プロセス操作の結果が「Success」の場合にステップ1006に進む(ステップ1004)。具体的には、プロセス操作の結果が「Success」であるため、ステップ1006に進む。
条件特定プログラム110は、マルウェアの活動ログ404を調査し、レジストリ操作の操作結果が「Failure」であった場合に、ステップ1007に進み、レジストリ操作でない、或いは、レジストリ操作の結果が「Success」の場合にステップ10
08に進む(ステップ1006)。具体的には、レジストリ操作でないため、ステップ1008に進む。
条件特定プログラム110は、マルウェアの活動ログ404を調査し、ネットワーク操作の操作結果が「Failure」であった場合に、ステップ1009に進み、ネットワーク操作でない、或いは、ネットワーク操作の結果が「Success」の場合にステップ1010に進む(ステップ1008)。具体的には、ネットワーク操作でないため、ステップ1010に進む。
条件特定プログラム110は、すべての活動ログを処理した場合は、処理を終了し、取得していない活動ログがある場合にステップ1001に進む(ステップ1010)。具体的には、処理していない活動ログがあるため、ステップ1001に進む。以下同様に活動ログから条件特定処理を行う。
例えば、図5に示された活動ログから算出される環境条件は、活動ログ「2015/01/01 00:00:13 Process Start FileB.exe Failure」を処理した時に算出されるもので、この時、環境条件は、「種別:プロセス名、プロセス名:FileB.exe」となる。
解析プログラム108は、環境構築プログラム111を起動し、阻害要因を取り除いた解析環境118の構築を行う(ステップ807)。
環境構築プログラム111は、CPU103により実行され、環境条件を条件特プログラム110より受信すると、環境構築処理を開始する(ステップ1101)。具体的には、環境条件「種別:プロセス名、プロセス名:FileB.exe」を受信し、環境構築処理を開始する。
環境構築プログラム111は、ステップ1101で取得した環境条件の種別がファイル名または、プロセス名であれば、ステップ1103に進み、そうでない場合はステップ1108に進む(ステップ1102)。具体的には、取得した環境条件の種別がプロセス名であるため、ステップ1103に進む。
環境構築プログラム111は、ステップ1101で取得した環境条件のファイル名またはプロセス名と、ファイルデータ114に格納されたファイル名302とを比較し、該当するファイル名302が存在すれば、ステップ1105に進み、該当するファイル名302が存在しなければ、ステップ1104に進む(ステップ1103)。具体的には、取得した環境条件のプロセス名「FileB.exe」と、ファイルデータ114に格納されたファイル名302とを比較する。この時、「FileB.exe」に該当するファイル名302が存在するため、ステップ1105に進む。
環境構築プログラム111は、ファイルデータ114より、当該ファイルを取得し、解析環境118に対して、当該ファイルを配置した解析環境の構築命令を送信する。また、環境構築プログラム111は、当該ファイル名または、プロセス名と、構築ルールデータ117のデータ703と、を比較し、該当する構築ルールが存在する場合には、解析環境118に対して、当該構築ルールのルール704の構築命令を送信する(ステップ1105)。具体的には、ファイルデータ114に存在する「FileB.exe」を配置した解析環境の構築命令を送信する。この時、解析環境データ113に、新たな解析環境の環境データを格納する。具体的には、解析環境ID201に「解析環境2」、環境202に「物理」、OS203に「OSA」、CPU204に「32bit」、言語205に「日本語」、アプリ1206aに「文書作成ソフトA」、アプリ2206bに「WEBブラウ
ザA」、設定1207aに「user=guest」、設定2207bに「PC=devPC」、ファイル208aに「C:¥FileB.exe」を格納する。
なお、構築ルールデータ117には、「FileB.exe」に該当する構築ルールが存在しないため、構築ルールデータ117に関する構築命令は送信されない。
環境構築プログラム111は、ネットワーク120bを介してインターネット121aに接続し、ステップ1101で取得した環境条件に含まれる、ファイル名または、プロセス名に関するマルウェア解析の結果の検索を行う。当該ファイル名または、プロセス名に該当するマルウェア解析結果が存在した場合は、ステップ1107に進み、存在しない場合は、ステップ1108に進む(ステップ1106)。この時、「FileB.exe」に関するマルウェア解析結果は取得できなかったとする。
環境構築プログラム111は、ステップ1101で取得した環境条件の種別がレジストリであればステップ1109に進み、レジストリでなければステップ1110に進む(ステップ1108)。具体的には、環境条件の種別がレジストリでないため、ステップ1110に進む。
環境構築プログラム111は、ステップ1101で取得した環境条件の種別がホストであればステップ1111に進み、ホストでなければステップ1112に進む(ステップ1110)。具体的には、環境条件の種別がホストでないため、ステップ1112に進む。
環境構築プログラム111は、すべての環境条件を処理した場合は、処理を終了し、取得していない環境条件がある場合にステップ1101に進む(ステップ1112)。具体的にはすべての環境条件を処理したため、処理を終了する。
解析プログラム108は、新たに構築した解析環境IDが「解析環境2」の解析環境118でマルウェアの再解析を行う。以下同様の処理を行うため、説明を省略する。
このように、本実施形態では、解析環境118で実行させたマルウェアがどれくらい活動したかを示す活性度を測定し、活性度に応じて解析環境118を再構築したうえで再度マルウェアを実行させて解析することができる。したがって、マルウェアが活動するような環境を整えることが可能となる。これにより、マルウェアの活動状況を確実に解析することができる。
また、本実施形態では、マルウェアが実行に失敗した処理を特定し、この処理が成功するように解析環境118を再構築している。すなわち、マルウェアの活動を阻害する阻害要因を取り除いて解析環境を再構築してマルウェアを実行させることができる。このようにして起動したマルウェアの解析を行うことで、マルウェアの活動状況を明らかにすることが可能となる。
また、本実施形態では、マルウェアによるファイルの操作数が閾値以上であるか否か(図9のステップ910)、および、マルウェアが特定のファイルに対して操作したか否か(図9のステップ920)に応じて活性度を判定している。したがって、ファイルの入出力を前提とするマルウェアの挙動を確実に把握することができる。また、この活性度が低い場合には、当該ファイル名が環境条件に追加され(図10のステップ1003)、これにより当該ファイルが作成されるように解析環境118が再構築される。したがって、マルウェアの活動の前提となるファイルが作成されるようになり、マルウェアの挙動を確実に解析することができる。
また、本実施形態では、マルウェアが操作したファイルのファイル名あるいはマルウェアのプロセス名に関して、インターネット上で解析結果の検索を行い、この検索結果を、マルウェアの解析結果に追加している。したがって、解析者はインターネット上に提供されている解析結果をも参照することが可能となり、解析プログラム108では解析を行わなかった挙動や、解析環境118では再現しなかった挙動についての知見をも得ることができる。
また、本実施形態では、解析プログラム108によるマルウェアの解析結果が画面に表示されるので、これを参照することでマルウェアの挙動を容易に把握することができる。
なお、本実施形態の一部を変更して、次のように実施しても良い。マルウェア解析装置と、ダミーサーバを一つの装置で実現してもよい。これにより、ハードウェアを複数用意する必要がなくなり、設置面積を節約することが可能となる。
また、本実施形態では、ファイル名やプロセス名をファイルデータ114やインターネットから取得して、新たな解析環境を構築したが、当該ファイル名やプロセス名が存在しない場合は、ある適当なファイルのファイル名を、当該ファイル名に変更し、解析環境に配置してもよい。これにより、ファイルの存在を確認しているだけのマルウェアの解析を行うことが可能となる。
また、本実施形態では、解析環境118をひとつだけ利用しているが、複数の解析環境を用いて、同一マルウェアを解析しても良い。このとき、複数の解析環境で、環境やOS、CPUやアプリ、設定等が異なる環境を用いて解析するとよい。これにより、より多くのマルウェア解析結果を得ることが可能となる。また、この時、活性度のもっとも高い解析環境において、環境やOS、CPUや言語、アプリ、設定等を一部変更した解析環境を新たに構築し、再解析を行ってもよい。これにより、解析ログ404に表れない阻害要因にも対応ができる。
活性度の判定方法として、新規のホストに接続した場合、或いは、通信データの内容が変化した場合、ポート番号が変化した場合や、通信パターン(通信の間隔等)が変化した場合に活性度を増やしてもよい。さらに、活性度を重み付けしてもよい。これにより、柔軟なマルウェア活性度の判定が可能となる。
また、本実施形態では、操作結果が「Failure」だった場合に環境条件へ追加したが、操作結果が「Success」だった場合に環境条件へ追加しても良い。これにより、ある特定の環境の場合にマルウェアの稼動が阻害される場合(例えばウイルス対策ソフトのインストールや、FireWallの設定等)にも対応が可能となる。
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。