マルウェアの挙動を解析するためには、マルウェアを解析実行装置上で稼働させ、どのような通信をおこなうのか、また、解析実行装置の内部資源にどのような影響を与えるのかを記録する。マルウェアによっては、インターネットへの接続が確認できないと、稼働を停止してしまうものもあり、このようなマルウェアの解析を行う場合には、解析実行装置をインターネットと接続させてマルウェア解析を行うこともある。
しかし、インターネットと接続をさせていても、攻撃者が特定のIPアドレス範囲からの通信にしか応答しない場合や、2回目以降の通信に応答しない場合には、マルウェアの解析を進めることができない。
そこで、本実施形態では、複数の解析実行装置において、様々な通信制御を行いながら、マルウェアを同時に実行させ、マルウェアが稼働する条件を特定する。実施例1では、この点に着目し、マルウェアの通信制御処理及び、活性度判定処理について説明する。
一方、インターネットと接続してマルウェア解析を行う場合、インターネット上の端末に対して、DoS(Denial of Service)攻撃や、掲示板への犯罪予告等を行なってしまう可能性もある。実施例2では、この外部への影響を最小限に抑えるための抑制制御処理について説明する。
図1は、本発明の実施例1に係るマルウェア通信制御装置の構成例を示す図である。実施例1に係るマルウェア通信制御装置は、マルウェアを実行する複数の解析実行装置118から構成される解析実行装置群114と、ダミーサーバ115と、インターネット116と、をネットワーク117を介して接続される。
解析実行装置118は、CPU(Central Processing Unit)と、CPUが処理を実行するために必要なデータを格納するためのメインメモリと、大量のデータを記憶する容量を持つハードディスクやフラッシュメモリなどの記憶装置と、他装置と通信を行うためのIF(インタフェース)と、キーボード、ディスプレイなどの入出力を行うための入出力装置と、これらの各装置を接続する通信路(バス)と、を備えたコンピュータである。さらに、解析実行装置118には、OS(Operating System)や、文書閲覧ソフトや、ブラウザなどのソフトウェアがインストールされている。マルウェアによっては、特定のOSや、特定のソフトウェアがインストールされていないと稼働しないものも存在するため、OSや、ソフトウェアのバリエーションは複数用意してある。なお、解析実行装置118がどのようなOSやソフトウェアで構成されているかは、後述する解析実行装置データ111で管理する。解析実行装置118で実行されたマルウェアは、ネットワーク117を介して通信を行う。
ダミーサーバ115は、CPUと、CPUが処理を実行するために必要なデータを格納するためのメインメモリと、大量のデータを記録する容量を持つハードディスクやフラッシュメモリなどの記憶装置と、他装置と通信を行うためのIFと、キーボード、ディスプレイなどの入出力を行うための入出力装置と、これらの各装置を接続する通信路と、を備えたコンピュータである。さらに、メインメモリには、ある特定のプロトコル(例えば、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通信要求が行われた場合、ダミーサーバ115は、当該要求に対する応答を返す。
マルウェア通信制御装置101は、CPU103と、CPU103が処理を実行するために必要なデータを格納するためのメインメモリ104と、大量のデータを記憶する容量を持つハードディスクやフラッシュメモリなどの記憶装置105と、他装置と通信を行なうためのIF102と、キーボード、ディスプレイなどの入出力を行うための入出力装置106と、これらの各装置を接続する通信路107と、を備えたコンピュータである。なお、通信路107は、例えば、バスやケーブルなどの情報伝達媒体である。
CPU103は、メインメモリ104に格納された制御プログラム108を実行することにより、マルウェアの通信制御を行う。また、CPU103は、活性度判定プログラム109を実行することにより、マルウェアの活動状態の判定を行う。なお、活性度とは、マルウェアがどの程度活発に活動したかを表す指標である。
記憶装置105には、マルウェア通信制御のためのポリシである制御ポリシデータ110、解析実行装置118の構成を示す解析実行装置データ111、マルウェア通信制御のルールを示す通信制御ルールデータ112、マルウェア通信の通信先を表す通信リストデータ113が格納されている。
上記の各プログラムやデータは、あらかじめメモリ104または記憶装置105に格納されていても良いし、必要な時に、入出力装置106からまたは、IF102を介して他の装置から、インストール(ロード)されても良い。
図2は、制御ポリシデータ110の一例を示す図である。図2に示すように、制御ポリシデータ110は、ポリシID201と、制御対象202と、制御方法203と、稼働条件204と、を含んで構成される。
ポリシID201は、制御ポリシを一意に識別できる情報(識別子)を表す。
制御対象202は、マルウェアの通信データのうち、制御する対象を表している。例えば、制御対象202が、「送信元」であれば、マルウェアの通信を送信する際に、送信元の情報を制御することを表し、制御対象202が「送信先」であれば、送信先の情報を、制御対象202が「内容」であれば、マルウェアの通信内容を、制御対象202が「タイミング」であれば、通信するタイミングを制御することを表す。
制御方法203は、マルウェアの通信にどのような制御をするかを表す。例えば、制御方法203が、「送信元の企業AのIPアドレスを割り当てる」であれば、マルウェアが通信する際に、送信元の情報を企業AのIPアドレスに変更して通信を行う。これは、特定のIPアドレス(例えば企業A)にしか攻撃を行わない攻撃者に対して、攻撃をおこなわさせることが可能となり、マルウェアの解析を継続して行うことができる。また、制御方法203が「2回目以降の同一ホストへの送信先をダミーサーバに変更する」であれば、新規の接続の場合は、インターネットへ接続されるように制御し、同一ホストに対して、再び接続しようとした時に、以降の通信をダミーサーバへ接続させるために、送信先の情報をダミーサーバへ変更して通信を行う。これは、同じIPアドレスからの接続を拒否する攻撃者に対して有効な制御ポリシである。さらに、「プロトコルがSMTPの場合に、送信先をダミーサーバに変更する」の制御方法203は、Mailサーバが存在しない場合は稼働を停止してしまうマルウェアに対して有効な制御ポリシである。また、「UserAgentをブラウザAに変更する」の制御方法203は、ブラウザAからの通信にしか攻撃を行わない攻撃者に対して有効な制御ポリシである。また、「同じ情報を再送する」の制御方法203は、例えば、1回目に接続があった場合には、接続先の端末がシャットダウンしていて繋がらなかった場合に有効な制御ポリシである。このように、制御方法には、マルウェアを活発に稼働させるために必要と思われる制御方法を格納しておく。
稼働条件204は、どのような条件であればマルウェアが稼働するのかを表す。
図2を用いて具体的に説明する。例えば、ポリシID201が「1」、制御対象202が「送信元」、制御応報203が「送信元の企業AのIPアドレス(10.0.0.1)」、稼働条件204が「企業AのIPアドレスで通信する」の制御ポリシデータは、マルウェアの通信が行われた際に、送信元の情報を企業AのIPアドレスに変更することを表し、当該制御によってマルウェアが活動したとすると、このマルウェアの稼働条件は、企業AのIPアドレスで稼働させること、であることを表す。
なお、制御ポリシデータ110の各情報は、管理者が必要に応じて、入力または更新しても良い。
制御ポリシデータ110は、CPU103により実行される制御プログラム108が、マルウェアの通信を制御する際に利用される。制御プログラム108の具体的な処理については、図6を用いて後述する。
図3は、解析実行装置データ111の一例を示す図である。図3に示すように、解析実行装置データ111は、解析実行装置ID301と、環境302と、OS303と、CPU304と、ソフト305と、を含んで構成される。
解析実行装置ID301は、解析実行装置を一意に識別できる情報を表す。なお、解析実行装置ID301は、解析実行装置118を識別できる情報も表している。
環境302は、解析実行装置の環境を表す。例えば、環境302が「VM(Virtual Machine)」の場合は、解析実行装置が、仮想マシンで構築されていることを、環境が「物理」の場合は、解析実行装置が、物理端末上に構築されていることを表す。
OS303は、解析実行装置にインストールされているOSを表し、CPU304は、解析実行装置のCPUアーキテクチャを表す。
ソフト305は、解析実行装置にインストールされているソフトウェアを表す。本実施例では、一つのソフトウェアしか記載していないが、文書作成ソフトや、ブラウザ等、解析実行装置にインストールされている複数のソフトウェアを格納しても良い。
図3を用いて具体的に説明する。例えば、解析実行装置ID301が「解析実行装置A1」、環境302が「VM」、OS303が「OSA」、CPU304が「32bit」、ソフト305が「文書閲覧ソフトver10」の解析実行装置データは、解析実行装置A1が、仮想マシン上に構築されており、そのOSは、OSA、CPUアーキテクチャは32bitで、さらに、文書閲覧ソフトver10がインストールされていることを表す。
なお、解析実行装置データ111は、解析実行装置118の構成を表しており、解析実行装置データ111に対応する解析実行装置118を構築しても良いし、解析実行装置118から解析実行装置データ111を構築しても良い。
解析実行装置によってはマルウェアが稼働しないものも存在するため、解析実行装置118には、環境302、OS303、CPU304、ソフト305が異なる様々なバリエーションを用意する。さらに、様々な通信制御方法を用いて解析を行うため、環境302、OS303、CPU304、ソフト305が同じ解析実行装置も複数用意しても良い。
図4は、制御ルールデータ112の一例を示す図である。図4に示すように、制御ルールデータ112は、解析実行装置ID401と、送信元ポリシID402と、送信先ポリシID403と、内容ポリシID404と、タイミングポリシID405と、を含んで構成される。
解析実行装置ID401は、解析実行装置を一意に識別できる情報を表す。なお、解析実行装置ID401は、解析実行装置118を識別できる情報も表している。
送信元ポリシID402は、解析実行装置ID401に該当する解析実行装置からのマルウェア通信の送信元を制御する制御ポリシを表す。なお、ポリシの詳細については、制御ポリシデータ110に格納されている。また、送信元ポリシID402に「−」(dont careを表す記号)が格納されている場合には、送信元の制御を行わないことを表す。
送信先ポリシID403は、解析実行装置ID401に該当する解析実行装置からのマルウェア通信の送信先を制御する制御ポリシを表す。なお、ポリシの詳細については、制御ポリシデータ110に格納されている。また、送信先ポリシID403に「−」が格納されている場合には、送信先の制御を行わないことを表す。
内容ポリシID404は、解析実行装置ID401に該当する解析実行装置からのマルウェア通信の内容を制御する制御ポリシを表す。なお、ポリシの詳細については、制御ポリシデータ110に格納されている。また、内容ポリシID404に「−」が格納されている場合には、内容の制御を行わないことを表す。
タイミングポリシID405は、解析実行装置ID401に該当する解析実行装置からのマルウェア通信のタイミングを制御する制御ポリシを表す。なお、ポリシの詳細については、制御ポリシデータ110に格納されている。また、タイミングポリシID405に「−」が格納されている場合には、タイミングの制御を行わないことを表す。
図4を用いて具体的に説明する。例えば、解析実行装置ID401が「解析実行装置A1」、送信元ID402が「−」、送信先ID403が「−」、内容ポリシID404が「−」、タイミングポリシ405が「−」の制御ルールデータは、解析実行装置A1から送信されるマルウェア通信の、送信元、送信先、内容、タイミングを制御せずに送信することを表す。また、解析実行装置ID401が「解析実行装置A2」、送信元ID402が「1」、送信先ID403が「−」、内容ポリシID404が「−」、タイミングポリシ405が「−」の制御ルールデータは、解析実行装置A1から送信されるマルウェア通信の、送信元を、企業AのIPアドレス(10.0.0.1)に制御し、送信先、内容、タイミングは制御せずに送信することを表す。
なお、制御方法によってはマルウェアが活動しないものも存在するため、制御ルールデータ112には、送信元ポリシID402、送信先ポリシID403、内容ポリシID404、タイミングポリシID405が異なる様々なバリエーションを用意する。
また、制御ルールデータ112の各情報は、管理者が必要に応じて、入力または更新しても良い。
制御ルールデータ112は、CPU103により実行される制御プログラム108が、マルウェアの通信を制御する際に利用される。制御プログラム108の具体的な処理については、図6を用いて後述する。
図5は、通信リストデータ113の一例を示す図である。図5に示すように、通信リストデータ113は、ホスト名501と、プロトコル502と、パス503と、通信日時504と、データ505と、を含んで構成される。
ホスト名501は、マルウェア通信が接続した、接続先のホスト名を表す。
プロトコル502、はホスト名501に接続した際のプロトコルを表す。なお、プロトコルが不明な場合には、送信先のポート番号を格納しても良い。
パス503は、マルウェアが通信した際のパスを表す。なお、パスが存在しない場合には、「−」を格納しても良い。
通信日時504は、マルウェアが通信した際の通信時刻を表す。
データ505は、マルウェアが通信した際に、通信先からダウンロードしてきたデータを表す。マルウェアが、通信先からファイルをダウンロードしてきた場合は、当該ファイルの内容も併せて記録しておく。
図5を用いて具体的に説明する。例えば、ホスト名501が「www.aaa.com」、プロトコル502が「HTTP」、パス503が「/cgi−bin/id=xxxxx」、通信日時504が「2013/11/25 12:00」、データ505が「a.exe」の通信リストデータは、2013/11/25 12:00に、http://www.aaa.com/cgi−bin/id=xxxxxに通信を行い、a.exeファイルをダウンロードしてきたことを表す。
通信リストデータ113は、CPU103により実行される制御プログラム108が、マルウェアの通信状況を監視し、更新する。制御プログラム108の具体的な処理については、図6を用いて後述する。
続いて、マルウェア通信制御装置101の制御プログラム108が、解析実行装置118から送信されたマルウェアの通信を、制御ポリシデータ110に基づき制御し、活性度判定プログラム109が、解析実行装置118でのマルウェアの活性状態を判定する処理について説明する。
図6は、マルウェア通信制御装置101の制御プログラム108の処理を示すフローチャートである。図6に示すように、マルウェアの通信制御を行なう制御プログラム108は、CPU103により実行され、解析実行装置118で実行されたマルウェアが送信する通信を、IF102aを介してネットワーク117aから受信する(ステップ601)。すなわち、マルウェア通信制御装置101の受信部(制御プログラム108)は、マルウェアが実行された解析実行装置から、送信元、送信先、内容の情報を含むをマルウェアの通信情報を受信する。
制御プログラム108は、活性度判定プログラム109を起動し、解析実行装置118のマルウェア活性度を判定する(ステップ602)。すなわち、マルウェア通信制御装置101の活性度判定部(活性度判定プログラム109)は、受信されたマルウェアの通信情報に基づいて、マルウェアの活性度を判定する。活性度判定部は、解析実行装置において実行したマルウェアが稼働したか否かを判定することによってマルウェアの活性度を判定しても良い。なお、マルウェア通信制御装置101は、表示部を更に備え、表示部は、活性度判定部がマルウェアが稼働したと判定した場合に、マルウェアが稼働した稼働条件を表示しても良い。
この時、制御プログラム108は、ステップ601で受信したマルウェアの通信を活性度判定プログラム109に送信する。なお、マルウェアの活性状態を判定する活性度判定プログラム109の処理については、図7を用いて後述する。
制御プログラム108は、制御ポリシデータ110と、制御ルールデータ112と、に基づき、マルウェアの通信制御を行なう(ステップ603)。すなわち、マルウェア通信制御装置101の制御部(制御プログラム108)は、制御ポリシに基づいて、マルウェアの通信情報または通信タイミングを制御し送信する。
なお、マルウェアの通信制御処理については、図8を用いて後述する。
制御プログラム108は、ステップ603で制御したマルウェアの通信を監視し、インターネットへの接続があった場合はステップ605に進み、インターネットへの接続がなかった場合には、処理を終了する(ステップ604)。
制御プログラム108は、マルウェアの通信を監視し、通信リストデータ113を更新する(ステップ605)。この時、通信リストデータ113の、ホスト名501、プロトコル502、パス503、通信日時504の更新を行う。
制御プログラム108は、マルウェアの通信を監視し、インターネットから取得したデータ(情報)がある場合には、その内容を通信リストデータ113のデータ505に格納してステップ607に進み、インターネットから取得したデータがない場合には処理を終了する(ステップ606)。なお、取得したデータのサイズが大きい場合には、その内容をファイルとして、記憶装置105に格納し、そのファイル名をデータ505に格納しても良い。
制御プログラム108は、ステップ605で取得したデータ505を、ダミーサーバ115に配置し、処理を終了する(ステップ607)。これにより、ダミーサーバ115は、通信リストデータ113のホスト名501、パス503に対して、プロトコル502で通信してきた場合、データ505のデータを応答するようになる。
図7は、解析実行装置118で実行されたマルウェアの活性状態を判定する、活性度判定プログラム109の処理を示すフローチャートである。図7に示すように、活性度判定プログラム109は、CPU103により実行され、マルウェアの通信内容を制御プログラム108より受信し、受信したマルウェアの通信先が、解析実行装置118のマルウェアが以前通信したホストの接続先リストに含まれていない場合(新たなホストへの接続の場合)には、ステップ703に進み、含まれている場合にはステップ702に進む(ステップ701)。なお、新しいホストへの接続の場合には、解析実行装置118の接続先リストを更新し、通信の接続先と、通信内容をメモリ104或いは、記憶装置105に記憶する。接続先リストは、解析実行装置118ごとに管理し、新しいマルウェアを解析する際には、接続先リストの情報を削除して新しく生成する。なお、長期間マルウェア解析する場合等には、ある一定の時間が経過した後に接続先リストの情報を更新しても良いし、管理者が必要に応じて更新しても良い。その際に、接続先リストのある特定の接続先だけを更新しても良い。
活性度判定プログラム109は、マルウェアの通信に含まれるデータの内容が、接続先リストに格納されている、マルウェアの通信先に対応する通信内容と異なる場合には、ステップ703に進み、一致する場合にはステップ704に進む(ステップ702)。
活性度判定プログラム109は、解析実行装置118で実行されたマルウェアの活性度を+1する(ステップ703)。なお、活性度は、解析実行装置118ごとに管理し、新しいマルウェアを解析する際には、活性度を0に更新する。なお、長期間マルウェアを解析する場合等には、ある一定の時間が経過する毎に活性度の値を減らしても良い。これにより、しばらく動きのないマルウェアを判断することが可能となる。
活性度判定プログラム109は、マルウェアの活動条件を入出力装置106に出力して処理を終了する(ステップ704)。なお、ステップ704で出力されるマルウェアの活動条件表示画面については、図9を用いて後述する。
すなわち、マルウェア通信制御装置101は、解析実行装置から受信したマルウェアの通信をインターネットに送信し、インターネットからマルウェアの通信に対する応答があった際に、応答をダミーサーバに格納する通信制御をしても良い。
また、マルウェア通信制御装置101の受信部(制御プログラム108)は、複数の解析実行装置から夫々の解析実行装置で実行されたマルウェアの通信を受信し、活性度判定部は、解析実行装置ごとに活性度の判定を行い、制御部(制御プログラム108)は、それぞれの解析実行装置ごとに、マルウェアの通信を制御しても良い。
また、受信部(制御プログラム108)は、複数の解析実行装置から、解析実行装置で実行されたマルウェアの通信を受信し、活性度判定部(活性度判定プログラム109)は、解析実行装置ごとにマルウェアが稼働したかどうかを、マルウェアの前記通信から判定しても良い。
また、受信部(制御プログラム108)は、解析実行装置と、構成の異なる複数の解析実行装置で実行されたマルウェアの通信を受信し、制御部(制御プログラム108)は、解析実行装置毎に異なる通信制御を行い、活性度判定部(活性度判定プログラム109)は、解析実行装置毎に前記マルウェアが稼働したかどうかを、マルウェアの通信から判断し、表示部は、マルウェアの活動条件を、解析実行装置の構成と、解析実行装置の通信制御方法と併せて表示しても良い。
図8は、制御ルールデータ112に基づいたマルウェア通信の制御処理を示すフローチャートである。図8に示すように、制御プログラム108は、CPU103により実行され、ステップ601で受信した、マルウェアの通信を送信した解析実行装置118と、制御ルールデータ112の解析実行装置ID401とを比較し、該当する制御ルールが存在すれば、ステップ802に進み、存在しなければ処理を終了する(ステップ801)。
制御プログラム108は、ステップ801で該当した制御ルールデータ112の送信元ポリシID402を取得し、取得した送信元ポリシID402と、制御ポリシデータ110のポリシID201とを比較し、該当する制御ポリシデータ110の制御方法203に基づき、マルウェアの通信制御を行なう(ステップ802)。
制御プログラム108は、ステップ801で該当した制御ルールデータ112の送信先ポリシID403を取得し、取得した送信先ポリシID403と、制御ポリシデータ110のポリシID201とを比較し、該当する制御ポリシデータ110の制御方法203に基づき、マルウェアの通信制御を行なう(ステップ803)。
制御プログラム108は、ステップ801で該当した制御ルールデータ112の内容ポリシID404を取得し、取得した内容ポリシID404と、制御ポリシデータ110のポリシID201とを比較し、該当する制御ポリシデータ110の制御方法203に基づき、マルウェアの通信制御を行なう(ステップ804)。
制御プログラム108は、ステップ801で該当した制御ルールデータ112のタイミングポリシID405を取得し、取得したタイミングポリシID405と、制御ポリシデータ110のポリシID201とを比較し、該当する制御ポリシデータ110の制御方法203に基づき、マルウェアの通信制御を行ない、処理を終了する(ステップ805)。
図9は、マルウェアの活動条件を表す表示画面の一例である。図9に示すように、マルウェアの活動条件表示画面は、マルウェアの活性度(図中901)と、当該活性度を示したマルウェアが稼動している解析実行装置118の情報(図中902)と、当該活性度を示したマルウェアの稼動条件の情報(図中903)の内容を含んで構成される。
解析実行装置118の情報は、解析実行装置データ111より取得し、表示する。稼動条件の情報は、制御ポリシデータ110の稼動条件204より取得し、表示する。
なお、活動条件表示画面には、活性度の高い、解析実行装置及び活動条件から表示する。この際、活性度がある閾値より高いものだけを表示しても良い。
ステップ701からステップ704及び、ステップ801からステップ805を含めたステップ601からステップ607までの処理の流れを、具体例を用いて説明する。例えば、「解析実行装置A3」で実行した「マルウェアA」が、「2013/11/25 12:00」に「http://www.aaa.com/cgi−bin/id=xxxxx」へ接続したとする。
なお、本来であれば、解析実行装置郡114に含まれるすべての解析実行装置118で、同時にマルウェアを実行して、マルウェアの通信制御を行ないながら、マルウェアの活性度判定を行い、マルウェアが稼動する条件の特定を行なうが、ここでは、説明を簡単にするため、一つの解析実行装置(解析実行装置A3118c)に関して説明する。
制御プログラム108は、「解析実行装置A3」で実行されたマルウェアが送信する通信を、IF102aを介してネットワーク117aから受信する(ステップ601)。具体的には、「2013/11/25 12:00」に、マルウェアの通信「http://www.aaa.com/cgi−bin/id=xxxxx」を受信する。
制御プログラム108は、マルウェアの通信が発生した解析実行装置「解析実行装置A3」の情報と、通信内容「http://www.aaa.com/cgi−bin/id=xxxxx」の情報とを、活性度判定プログラム109に通知し、活性度判定処理を行なう。(ステップ602)。
活性度判定プログラム109は、通信内容「http://www.aaa.com/cgi−bin/id=xxxxx」に含まれている接続先「www.aaa.com」が、新しい接続先かどうか判断する(ステップ701)。この時、「www.aaa.com」は新しい接続先であるため、ステップ703に進む。なお、「解析実行装置A3」の接続先リストに、接続先「www.aaa.com」、通信内容「/cgi−bin/id=xxxxx」を格納する。
活性度判定プログラム109は、「解析実行装置A3」で実行された「マルウェアA]の活性度を+1する(ステップ703)。この時、「解析実行装置A3」における「マルウェアA」の活性度は「1」となる。
活性度判定プログラム109は、マルウェアの活動条件を入出力装置106に出力して処理を終了する(ステップ704)。具体的には、活性度「1」を、「解析実行装置A3」に該当する解析実行装置の情報を、解析実行装置データ111から取得し、取得した解析実行装置「VM、OSA(32bit)、文書閲覧ソフトver10」を、「解析実行装置A3」に該当する制御ルールを、制御ルールデータ112から取得し、取得した制御ルールに含まれる送信元ポリシID402、送信先ポリシID403、内容ポリシID404、タイミングポリシID405に該当する稼動条件を、制御ポリシデータ110より取得し、取得した稼動条件「企業AのIPアドレスで通信する、同じIPアドレスで同一ホストに通信しない」を、出力する。
制御プログラム108は、制御ポリシデータ110と、制御ルールデータ112と、に基づき、マルウェアの通信制御を行なう(ステップ603)。
具体的には、制御ルールデータ112から、解析実行装置ID401が「解析実行装置A3」に該当する、送信元ポリシID402「1」、送信先ポリシID403「4」、内容ポリシID404「−」、タイミングポリシID405「−」を取得する。続いて、制御ポリシデータ110から、ポリシID201が「1」に該当する、制御方法203「送信元に企業AのIPアドレス(10.0.0.1)を割り当てる」と、ポリシID201が「4」に該当する、制御方法203「2回目以降の同一ホストへの送信先をダミーサーバに変更する」との制御ポリシに従った通信制御を行なう(ステップ801〜805)。なお、この時、制御ルールデータ112から取得した内容ポリシID404及びタイミングポリシID405は、「−」であるため、内容と、タイミングの制御は行なわない。また、「2回目以降の同一ホストへの送信先をダミーサーバに変更する」の制御ポリシにある、2回目以降かどうかを判断するには、通信リストデータの通信情報を確認する。例では、ホスト「www.aaa.com」、パス「/cgi−bin/id=xxxxx」への通信は新規(1回目)の通信であるため、マルウェアの通信は、送信元IPアドレスだけを変更して、「www.aaa.com」に送信されることになる。
制御プログラム108は、マルウェアの通信を監視し、インターネットへの接続があった場合はステップ605に進み、インターネットへの接続がなかった場合には、処理を終了する(ステップ604)。具体的には、「www.aaa.com」への接続があったため、ステップ605に進む。
制御プログラム108は、マルウェアの通信を監視し、通信リストデータ113を更新する(ステップ605)。具体的には、通信リストデータ113の、ホスト名501に「www.aaa.com」を、プロトコル502に「HTTP」を、パス503に「/cgi−bin/id=xxxxx」を、通信日時504に「2013/11/25 12:00」を格納する。
制御プログラム108は、マルウェアの通信を監視し、インターネットから取得したデータ(情報)がある場合には、その内容を通信リストデータ113のデータ505に格納してステップ607に進み、インターネットから取得したデータがない場合には処理を終了する(ステップ606)。この時、「a.exe」の情報を取得してきたとすると、制御プログラム108は、取得した「a.exe」のデータを記憶装置105に格納し、そのファイル名を「a.exe」をデータ505に格納する。
制御プログラム108は、ステップ605で取得したデータ505「a.exe」を、ダミーサーバ115に配置し、処理を終了する(ステップ607)。これにより、ダミーサーバ115は、「http://www.aaa.com/cgi−bin/id=xxxxx」に対する接続があった場合には、「a.exe」のデータを応答するようになる。
引き続き「解析実行装置A3」の「マルウェアA」が、「2013/11/25 12:10」に「http://www.aaa.com/cgi−bin/file=xxxxx」へ接続したとする。なお、この時、別の解析実行装置118が、「2013/11/25 12:05」に「http://www.aaa.com/cgi−bin/file=xxxxx」へ接続していたとする。
制御プログラム108は、「解析実行装置A3」で実行されたマルウェアが送信する通信を、IF102aを介してネットワーク117aから受信する(ステップ601)。具体的には、「2013/11/25 12:10」に、マルウェアの通信「http://www.aaa.com/cgi−bin/file=xxxxx」を受信する。
制御プログラム108は、マルウェアの通信が発生した解析実行装置「解析実行装置A3」の情報と、通信内容「http://www.aaa.com/cgi−bin/file=xxxxx」の情報とを、活性度判定プログラム109に通知し、活性度判定処理を行なう。(ステップ602)。
活性度判定プログラム109は、通信内容「http://www.aaa.com/cgi−bin/file=xxxxx」に含まれている接続先「www.aaa.com」が、新しい接続先かどうか判断する(ステップ701)。この時、「www.aaa.com」は新しい接続先ではないため、ステップ702に進む。
活性度判定プログラム109は、データの内容が変化したかどうかの判断を行なう(ステップ702)。この時、通信内容「http://www.aaa.com/cgi−bin/file=xxxxx」に含まれている「/cgi−bin/file=xxxxx」は、以前のデータ内容「/cgi−bin/id=xxxxx」と異なっているため、ステップ703に進む。
活性度判定プログラム109は、「解析実行装置A3」で実行された「マルウェアA]の活性度を+1する(ステップ703)。この時、「解析実行装置A3」における「マルウェアA」の活性度は「2」となる。
活性度判定プログラム109は、マルウェアの活動条件を入出力装置106に出力して処理を終了する(ステップ704)。具体的には、活性度「2」を、解析実行装置「VM、OSA(32bit)、文書閲覧ソフトver10」を、稼動条件「企業AのIPアドレスで通信する、同じIPアドレスで同一ホストに通信しない」を、出力する。
制御プログラム108は、制御ポリシデータ110と、制御ルールデータ112と、に基づき、マルウェアの通信制御を行なう(ステップ603)。
具体的には、制御ルールデータ112から、解析実行装置ID401が「解析実行装置A3」に該当する、送信元ポリシID402「1」、送信先ポリシID403「4」、内容ポリシID404「−」、タイミングポリシID405「−」を取得する。続いて、制御ポリシデータ110から、ポリシID201が「1」に該当する、制御方法203「送信元に企業AのIPアドレス(10.0.0.1)を割り当てる」と、ポリシID201が「4」に該当する、制御方法203「2回目以降の同一ホストへの送信先をダミーサーバに変更する」との制御ポリシに従った通信制御を行なう(ステップ801〜805)。
この時、通信リストデータ113の通信情報には、ホスト「www.aaa.com」、パス「/cgi−bin/file=xxxxx」への通信がすでに記録されているため、、マルウェアの通信は、送信元IPアドレスの変更及び、送信先をダミーサーバ115に変更して送信されることになる。ダミーサーバ115では、マルウェア通信制御装置101から送信された「http://www.aaa.com/cgi−bin/file=xxxxx」の通信を受信すると、ダミーサーバに格納された「xxx.exe」のファイル情報を、「解析実行装置A3」に応答する。
制御プログラム108は、マルウェアの通信を監視し、インターネットへの接続があった場合はステップ605に進み、インターネットへの接続がなかった場合には、処理を終了する(ステップ604)。具体的には、ダミーサーバ115への接続であったため、処理を終了する。
このように、本実施例では、同じマルウェアに対して、解析実行装置郡114に存在する、複数の解析実行装置118を用いて、同時並行的にマルウェアを実行し、制御ルールデータ112及び制御ポリシデータ110に基づいたマルウェアの通信制御を行い、解析実行装置118毎にマルウェアの活性度を判定する。これによって、マルウェアがどのような条件で稼働するか特定することが可能となる。
なお、本実施例の一部を変更して、次のように実施しても良い。マルウェア通信制御装置と、ダミーサーバを一つの装置で実現しても良い。これにより、ハードウェアを複数用意する必要がなくなり、設置面積を節約することが可能となる。
また、本実施例では、活性度として、新規のホストに接続した場合、或いは、データの内容が変化した場合に活性度を+1したが、ポート番号の変化や、通信パターン(通信の間隔等)が変化した場合に活性度を+1しても良い。さらに、活性度を重み付けしても良い。これにより、柔軟なマルウェア活性度の判定が可能となる。
また、解析実行装置に、内部資源の変化(レジストリ操作や、メモリ操作、ファイル操作等)を監視するセンサを導入し、内部資源の変化の大きさに応じて活性度を+1しても良い。これにより、通信が発生しないマルウェアに関しても、どの解析実行装置で活発に活動したかを判定することが可能となる。
また、活性度が低い場合の稼動条件を表示しても良い。これにより、マルウェアが活動しない場合の稼動条件を特定することが可能となる。
また、本実施例では、複数の解析実行装置を同時に実行し、マルウェアの稼動条件を特定する方法を説明したが、ある一つの解析実行装置でマルウェアの実行を行い、マルウェアが活性化した(活性度がある閾値を超えた)場合に、マルウェアの実行を終了し、解析実行装置及び、制御方法を変更して、再度解析を行っても良い。これにより、少ない解析実行装置でもマルウェアの稼動条件を特定することが可能となる。
また、同一マルウェアを複数回解析しても良い。これにより、解析のタイミングによって挙動が異なるマルウェアの稼動条件を特定することが可能となる。
本実施例は、実施例1に係るマルウェア通信制御装置101を含み、さらに外部への攻撃を最小限に抑えるための抑制制御を行なうマルウェア通信制御装置である。
実施例1では、マルウェアが活発に活動するようにするため、マルウェアの通信を制御しながら、インターネット接続を行なった。しかし、例えば、マルウェアの通信がインターネット上のサーバに対して攻撃を行なってしまうと、不正アクセスを行なってしまい、社会的信用の失墜や、刑事処罰されてしまう恐れもある。そこで、実施例2では、外部への攻撃を抑制する、抑制制御処理を備えたマルウェア通信制御装置を説明する。これにより、外部への攻撃を抑制しながらも、マルウェアが活発に活動する条件を特定することが可能となる。
図10は、本実施例におけるマルウェア通信制御装置のハードウェア構成の例である。実施例1と同一の構成要素には同一の符号を付すことによってその説明を省略し、以下では、実施例1と異なる点を中心に説明する。
図10に示すように、実施例2に係るマルウェア通信制御装置1001は、既に説明した実施例1のマルウェア通信制御装置101に、制御プログラム1002と、抑制ポリシデータ1003と、抑制ルールデータ1004と、ホストリストデータ1005と、を含んで構成される。なお、実施例1においても制御プログラム108が存在するが、実施例2での制御プログラム1002とは一部処理が異なるため、ここでは新たな符号を付した。
CPU103は、メインメモリ104に格納された制御プログラム1002を実行することにより、外部への攻撃を抑制した制御処理を行う。記憶装置105には、外部への攻撃を抑制するポリシを示す抑制ポリシデータ1003と、解析実行装置118ごとの抑制ルールを示す抑制ルールデータ1004と、ホストのグルーピングを示すホストリストデータ1005と、が格納されている。
上記の各プログラムやデータは、あらかじめメインメモリ104または記憶装置105に格納されていても良いし、必要な時に、入出力装置106からまたは、IF102を介して他の装置から、インストール(ロード)されても良い。
図11は、抑制ポリシデータ1003の一例を示す図である。図11に示すように、抑制ポリシデータ1003は、ポリシID1101と、抑制ポリシ1102と、制御方法1103と、を含んで構成される。
抑制ポリシID1101は、抑制ポリシを一意に識別できる情報(識別子)を表す。
抑制ポリシ1102は、どのようなポリシでマルウェアの通信を抑制するかを表す。
制御方法1103は、抑制ポリシ1102を実現するための制御方法を表す。
図11を用いて具体的に説明する。例えば、抑制ポリシID1101が「1」、抑制ポリシ1102が「外部への通信を禁止」、制御方法1103が「通信をダミーサーバに転送」の抑制ポリシは、「外部への通信を禁止」するために、「通信をダミーサーバへ転送」という制御を行なうことを表す。これにより、インターネット向けの通信はすべてダミーサーバへ転送されるようになるため、外部への通信はなくなり、攻撃を抑制することができる。
なお、抑制ポリシデータ1003の各情報は、管理者が必要に応じて、入力または更新しても良い。
抑制ポリシデータ1003は、CPU103により実行される制御プログラム1002が、マルウェアの通信を抑制する際に利用される。制御プログラム1002の具体的な処理については、図14を用いて後述する。
図12は、抑制ルールデータ1004の一例を示す図である。図12に示すように、抑制ルールデータ1004は、制御ID1201と、解析実行装置ID1202と、送信先1203と、プロトコル1204と、抑制ID1205と、を含んで構成される。
制御ID1201は、制御ルールを一意に識別できる情報(識別子)を表す。
解析実行装置ID1202は、マルウェアの通信が、どの解析実行装置118から送信されてきたのかを表す。なお、解析実行装置ID1202が「ANY」の場合は、すべての解析実行装置118が該当する。
送信先1203は、マルウェアの通信が、どのホストに向けて送信されたのかを表す。なお、送信先1203が「ANY」の場合は、すべてのホストに該当する。なお、送信先1203には、図13を用いて後述する、ホストリストデータ1005のリスト名1301を格納しても良い。
プロトコル1204は、マルウェアの通信のプロトコルを表す。
抑制ID1205は、どの抑制ポリシに基づき制御するのかを表す。抑制ID1205は、抑制ポリシデータ1003の抑制ID1101の情報が格納される。なお、抑制IDが「−」の場合は、抑制を行わないことを表す。
図12を用いて具体的に説明する。例えば、制御ポリシID1201が「2」、解析ID1202が「解析実行装置A1」、送信先1203が「ANY」、プロトコル1204が「HTTP」、抑制ID1205が「1」の抑制ルールは、マルウェア通信の送信元が「解析実行装置A1」、送信先が「ANY」、プロトコルが「HTTP」の通信は、「外部への通信が禁止」の抑制ポリシであり、「通信をダミーサーバへ転送」という制御を行なうことを表す。
抑制ルールデータ1004と、抑制ポリシデータ1003を用いることで、解析実行装置118のマルウェア通信を抑制することが可能となる。
例えば、抑制ルールデータ1004の制御ID1201が「1、2、3」の抑制ルールを用いれば、「解析実行装置A1」から送信されるマルェアの通信に関して、DNS通信は制御を行わず、HTTP通信はダミーサーバへ転送し、それ以外の通信は許可しない(遮断する)、という抑制制御を行うことが可能となる。
また、抑制ルールデータ1004の制御ID1201が「11、12、13」の抑制ルールを用いれば、「解析実行装置A2」から送信されるマルウェアの通信に関して、宛先ホストが「ホワイトリスト_B」に一致した場合は許可し、宛先ホストが「ブラックリスト_B」に一致した場合は遮断し、それ以外の通信は許可しない、という抑制制御を行うことが可能となる。
さらに、抑制ルールデータ1004の制御ID1201が「21、22」の抑制ルールを用いれば、「解析実行装置A3」から送信されるマルェアの通信に関して、HTTP通信の場合は、POST制限と、帯域制限を実施したうえで許可し、それ以外の通信はダミーサーバに転送する、という抑制制御を行うことが可能となる。
なお、抑制ルールデータ1004の各情報は、管理者が必要に応じて、入力または更新しても良い。
抑制ルールデータ1004は、CPU103により実行される制御プログラム1002が、マルウェアの通信を抑制する際に利用される。制御プログラム1002の具体的な処理については、図14を用いて後述する。
図13は、ホストリストデータ1005の一例を示す図である。図13に示すように、ホストリストデータ1005は、リスト名1301と、ホスト1302と、を含んで構成される。
リスト名1301は、ホストリストを識別できる情報(識別子)を表し、ホスト1302は、リスト名1301に含まれるホストを表す。
図13を用いて具体的に説明する。例えば、リスト名1301が「ホワイトリスト_B」に含まれるホスト1302は、「www.aaa.com」と「www.bbb.vom」であり、リスト名1301が「ブラックリスト_B」に含まれるホスト名1302は、「www.malware.com」と、「www.spyware.com」である。
なお、ホストリストデータ1005の各情報は、管理者が必要に応じて、入力または更新しても良い。
ホストリストデータ1005は、CPU103により実行される制御プログラム1002が、マルウェアの通信を抑制する際に利用される。制御プログラム1002の具体的な処理については、図14を用いて後述する。
続いて、マルウェア通信制御装置1001の制御プログラム1002が、抑制制御を行う処理について説明する。なお、本実施例の抑制制御処理は、実施例1における制御処理(ステップ603)と、インターネットアクセス判定処理(ステップ604)の間で行われる処理である。以下では、抑制制御処理を中心に説明する。
図14は、制御プログラム1002の抑制制御を示すフローチャートである。図14に示すように、制御プログラム1002は、解析実行装置118から送信されたマルウェア通信データから、マルウェア通信の「送信元」と、マルウェア通信の「送信先」と、マルウェア通信の「プロトコル」と、を取得し、抑制ルールデータ1004の、解析実行装置ID1202と、送信先1203と、プロトコル1204とを、比較し、該当する抑制ルールが存在すると、ステップ1402を繰り返し、処理を終了する(ステップ1401)。
制御プログラム1002は、ステップ1401で該当した、抑制ルールデータ1004の抑制ID1205と、抑制ポリシデータ1003の抑制ID1101とを比較し、該当する抑制ポリシが存在すれば、当該抑制ポリシの制御方法1103に基づき、抑制制御処理を行う(ステップ1402)。
ステップ1401からステップ1403までの処理の流れを、具体例を用いて説明する。例えば、「解析実行装置A1」で「マルウェアA」を実行し、インターネット上に存在するDNSサーバ「100.0.0.1」にDNS通信が、インターネット上に存在するHTTPサーバ「100.0.0.2」にHTTP通信が、が発生したとする。
まず、DNS通信をマルウェア通信制御装置1001が受信した場合、制御プログラム1002は、マルウェア通信から、送信元「解析実行装置A1」、送信先「100.0.0.1」、プロトコル「DNS」の情報を取得し、抑制ルールデータ1004と比較する。この時、抑制ルールデータ1004の制御ID1201が「1」、解析実行装置ID1202が「解析実行装置A1」、送信先1203が「ANY」、プロトコル1204が「DNS」、抑制ID1205が「−」の抑制ルールが該当するため、ステップ1402に進む(ステップ1401)。
制御プログラム1002は、ステップ1401で該当した抑制ルールの制御ID1205のデータを取得し、制御処理を行う(ステップ1402)。この時、該当する制御ID1205は「−」であるため、制御処理を行わずに処理を終了する。
次に、HTTP通信をマルウェア通信制御装置1001が受信した場合、制御プログラム1002は、マルウェア通信から、送信元「解析実行装置A1」、送信先「100.0.0.2」、プロトコル「HTTP」の情報を取得し、抑制ルールデータ1004と比較する。この時、抑制ルールデータ1004の制御ID1201が「2」、解析実行装置ID1202が「解析実行装置A1」、送信先1203が「ANY」、プロトコル1204が「HTTP」、抑制ID1205が「1」の抑制ルールが該当するため、ステップ1402に進む(ステップ1401)。
制御プログラム1002は、ステップ1401で該当した抑制ルールの制御ID1205のデータを取得し、制御処理を行う(ステップ1402)。この時、該当する制御ID1205「1」と、抑制ポリシデータ1003の抑制ID1101と、を比較し、該当する抑制ポリシの制御方法1103を実行する。具体的には、抑制ID1101が「1」、抑制ポリシ1102が「外部への通信を禁止」、制御方法1103が、「通信をダミーサーバへ転送」に該当するため、「通信をダミーサーバへ転送」する抑制制御処理を行う。
このように、制御プログラム1002が、抑制ルールデータ1004と、抑制ポリシデータ1003に基づいて、マルウェア通信の抑制制御を行うことで、外部への攻撃を抑制しつつ、マルウェアが稼働する条件を特定することが可能となる。
なお、本実施例の一部を変更して、次のように実施しても良い。FW(FireWall)や認証付プロキシ等の外部のセキュリティ対策装置と組み合わせて利用しても良い。これにより、マルウェア通信制御装置の負荷を分散することが可能となる。
また、マルウェアの通信以外の通信に関しても、抑制制御処理しても良い。これにより、マルウェアの通信以外の通信に関しても、抑制ポリシに基づいた制御処理を行うことが可能となる。
また、複数の抑制ポリシを纏めて、抑制ポリシテンプレートとして保持しておいても良い。これにより、抑制ポリシテンプレートの中から、選択するだけで、抑制ポリシに従った抑制制御処理を行うことが可能となり、管理者の負担が軽減される。
また、活性度に応じて制御ルールデータや抑制ルールデータを変更し、解析を行っても良い。例えば、一度目の解析では、通信先をダミーサーバに転送し解析を行う。この時の活性度がある閾値以上であれば、抑制ルールデータのホワイトリストに当該通信先を追加し、再度解析を行う。これにより、インターネットから新たな検体をダウンロードして実行するマルウェアの解析を行うことが可能となる。
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除しても良い。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。