(57)【特許請求の範囲】
【請求項１】
マルウエアによる自装置に対する攻撃を防止するネットワーク保護装置であって、
前記ネットワーク保護装置と異なる装置である検証装置のオペレーティングシステムから前記検証装置のハードウエアに対して送信された命令を記憶する記憶部と、
前記ネットワーク保護装置のオペレーティングシステムから前記ネットワーク保護装置のハードウエアに対して送信された第１命令をフックし、フックした前記第１命令が前記記憶部に記憶された命令に含まれる場合、マルウエアに動作を終了する旨の判定をさせるための情報を前記ネットワーク保護装置のオペレーティングシステムに送信する処理部と、を有する、
ことを特徴とするネットワーク保護装置。
【請求項２】
請求項１において、
前記検証装置は、前記ネットワーク保護装置に対して送信されたソフトウエアを、前記ソフトウエアが前記ネットワーク保護装置に送信される前に実行し、前記ソフトウエアを前記ネットワーク保護装置に対して送信する前に、前記検証装置のオペレーティングシステムから前記検証装置のハードウエアに対して送信された命令を前記記憶部に記憶する、
ことを特徴とするネットワーク保護装置。
【請求項３】
請求項１において、
前記マルウエアに動作を終了する旨の判定をさせるための情報は、前記検証装置のオペレーティングシステムが前記検証装置のハードウエアに送信した命令に対し、前記検証装置のハードウエアが前記検証装置のオペレーティングシステムに送信した情報と同じ情報である、
ことを特徴とするネットワーク保護装置。
【請求項４】
請求項３において、
前記マルウエアに動作を終了する旨の判定をさせるための情報は、前記ネットワーク保護装置のオペレーティングシステムが仮想オペレーティングシステムであり、前記検証装置のオペレーティングシステムと同じオペレーティングシステムであることを示す情報である、
ことを特徴とするネットワーク保護装置。
【請求項５】
請求項１において、
前記処理部は、前記第１命令が前記記憶部に記憶された命令に含まれる場合、前記第１命令を前記ハードウエアに送信することなく、前記マルウエアに動作を終了する旨の判定をさせるための情報を前記ネットワーク保護装置のオペレーティングシステムに送信する、
ことを特徴とするネットワーク保護装置。
【請求項６】
マルウエアによる自装置に対する攻撃を防止するネットワーク保護装置におけるネットワーク保護方法であって、
前記ネットワーク保護装置と異なる装置である検証装置のオペレーティングシステムから前記検証装置のハードウエアに対して送信された命令を記憶部に記憶し、
前記ネットワーク保護装置のオペレーティングシステムから前記ネットワーク保護装置のハードウエアに対して送信された第１命令をフックし、フックした前記第１命令が前記記憶部に記憶された命令に含まれる場合、マルウエアに動作を終了する旨の判定をさせるための情報を前記ネットワーク保護装置のオペレーティングシステムに送信する、
ことを特徴とするネットワーク保護方法。
【請求項７】
マルウエアによる自装置に対する攻撃を防止する処理をネットワーク保護装置のコンピュータに実行させるネットワーク保護プログラムであって、
前記ネットワーク保護装置と異なる装置である検証装置のオペレーティングシステムから前記検証装置のハードウエアに対して送信された命令を記憶部に記憶し、
前記ネットワーク保護装置のオペレーティングシステムから前記ネットワーク保護装置のハードウエアに対して送信された第１命令をフックし、フックした前記第１命令が前記記憶部に記憶された命令に含まれる場合、マルウエアに動作を終了する旨の判定をさせるための情報を前記ネットワーク保護装置のオペレーティングシステムに送信する、
ことを特徴とするネットワーク保護プログラム。
【請求項８】
ネットワーク保護装置と、前記ネットワーク保護装置に対するマルウエアの攻撃を防止する検証装置と、を有する情報処理システムであって、
前記検証装置は、
前記ネットワーク保護装置に対して送信されたソフトウエアを、前記ソフトウエアが前記ネットワーク保護装置に送信される前に実行し、
前記ソフトウエアを前記ネットワーク保護装置に対して送信する前に、前記検証装置のオペレーティングシステムから前記検証装置のハードウエアに対して送信された命令を前記ネットワーク保護装置に送信し、
前記ネットワーク保護装置は、
前記検証装置から送信された命令を記憶部に記憶し、
前記ネットワーク保護装置のオペレーティングシステムから前記ネットワーク保護装置のハードウエアに対して送信された第１命令をフックし、フックした前記第１命令が前記記憶部に記憶された命令に含まれる場合、前記マルウエアに動作を終了する旨の判定をさせるための情報を前記ネットワーク保護装置のオペレーティングシステムに送信する、
ことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク保護装置、ネットワーク保護方法、ネットワーク保護プログラム及び情報処理システムに関する。
【背景技術】
【０００２】
企業や組織におけるセキュリティ管理者（以下、単に管理者とも呼ぶ）は、例えば、マルウエアによる情報の不正取得や破壊等（以下、悪性動作とも呼ぶ）を防ぐ必要がある。マルウエアは、コンピュータウィルスを含む有害動作を行うソフトウエアの総称である。
【０００３】
具体的に、マルウエアは、例えば、悪意のある者が外部の端末装置（以下、単に外部端末とも呼ぶ）から送信したメールに添付される形で送信され、メールを受信した端末装置において実行されることで、その端末装置に感染する。これにより、悪意のある者は、マルウエアに感染した端末装置を踏み台にすることによって、端末装置と接続した他の端末装置（例えば、機密情報を記憶する端末装置等）に不正アクセスし、情報の不正取得等を行うことが可能になる。
【０００４】
そのため、管理者は、例えば、外部端末から端末装置に送信されたメールにソフトウエアが添付されている場合に、そのソフトウエアを実行する検証装置（例えば、仮想マシンによって実現される仮想環境を有する装置）を設ける。
【０００５】
具体的に、検証装置は、外部端末から端末装置に送信されたメールにソフトウエアが添付されている場合、端末装置に送信される前にそのメールを取得する。そして、検証装置は、取得したメールに添付されているソフトウエアを、検証装置のデバッガ上（仮想環境）において実行して解析する。その結果、ソフトウエアがマルウエアでないと判定された場合、検証装置は、そのソフトウエアが添付されたメールを端末装置に送信する。一方、ソフトウエアがマルウエアであると判定した場合、検証装置は、例えば、そのソフトウエアが添付されたメールを端末装置に送信することなく破棄する。これにより、管理者は、端末装置においてマルウエアの感染を防止することが可能になる（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−２３３１２５号公報
【特許文献２】特開２００４−１２６８５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記のようなマルウエアには、例えば、何らかのプログラム上において実行されたことを検知した場合、自身の動作を終了するマルウエア（悪性動作を行わないマルウエア）が存在する。具体的に、このようなマルウエアは、何らかのプログラム上において実行されたことを検知した場合、自身の動作の解析を行うためのプログラム（デバッガ）上で実行されている可能性があると判定し、自身の動作の解析が行われることを防止するために動作を終了する（以下、このような機能を耐解析機能とも呼ぶ）。
【０００８】
そのため、検証装置は、耐解析機能を有するマルウエアを検証装置のデバッガ上で実行した場合、実行したマルウエアをマルウエアとして検知できない場合がある。したがって、この場合、検証装置は、マルウエアが添付されたメールを端末装置に送信し、端末装置は、検証装置から送信されたメールに添付されたマルウエアに感染する。
【０００９】
そこで、一つの側面では、マルウエアの動作を抑制するネットワーク保護装置、ネットワーク保護方法、ネットワーク保護プログラム及び情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
実施の形態の一つの態様によれば、マルウエアからオペレーティングシステム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を介してハードウエアに対して送信される命令を記憶する記憶部と、前記オペレーティングシステムから前記ハードウエアに対して送信された第１命令をフックし、フックした前記第１命令が前記記憶部に記憶された命令に含まれる場合、前記マルウエアに動作を終了する旨の判定をさせるための情報を前記オペレーティングシステムに送信する処理部と、を有する。
【発明の効果】
【００１１】
一つの側面によれば、マルウエアの動作を抑制する。
【図面の簡単な説明】
【００１２】
【図１】情報処理システム１０の全体構成を説明する図である。
【図２】マルウエアが添付されたメールを受信した場合における検証装置２の処理の具体例を説明する図である。
【図３】マルウエアが添付されたメールを受信した場合における検証装置２の処理の具体例を説明する図である。
【図４】マルウエアが添付されたメールを受信した場合における検証装置２の処理の具体例を説明する図である。
【図５】マルウエアが添付されたメールを受信した場合における検証装置２の処理の具体例を説明する図である。
【図６】マルウエアが添付されたメールを受信した場合における検証装置２の処理の具体例を説明する図である。
【図７】耐解析機能を有するマルウエアを受信した場合における検証装置２の処理の具体例を説明する図である。
【図８】耐解析機能を有するマルウエアを受信した場合における端末装置１の処理の具体例を説明する図である。
【図９】マルウエア３１ａに誤った判定をさせる場合の処理の具体例を説明する図である。
【図１０】マルウエア３１ａに誤った判定をさせる場合の処理の具体例を説明する図である。
【図１１】端末装置１のハードウエア構成を説明する図である。
【図１２】図１１の端末装置１の機能ブロック図である。
【図１３】第１の実施の形態におけるネットワーク保護処理の概略を説明するフローチャート図である。
【図１４】第１の実施の形態におけるネットワーク保護処理の概略を説明するフローチャート図である。
【図１５】第１の実施の形態におけるネットワーク保護処理の概略を説明する図である。
【図１６】第１の実施の形態におけるネットワーク保護処理の概略を説明する図である。
【図１７】第１の実施の形態におけるネットワーク保護処理の概略を説明する図である。
【図１８】第１の実施の形態におけるネットワーク保護処理の詳細を説明するフローチャート図である。
【図１９】第１の実施の形態におけるネットワーク保護処理の詳細を説明するフローチャート図である。
【図２０】第１の実施の形態におけるネットワーク保護処理の詳細を説明するフローチャート図である。
【図２１】ポリシー情報１３１の具体例である。
【図２２】ポリシー情報１３１の具体例である。
【図２３】ポリシー情報１３１の具体例である。
【発明を実施するための形態】
【００１３】
［情報処理システムの構成］
図１は、情報処理システム１０の全体構成を説明する図である。図１に示す情報処理システム１０は、端末装置１ａ、１ｂ及び１ｃ（以下、これらを総称して端末装置１またはネットワーク保護装置１とも呼ぶ）と、検証装置２と、ファイアーウォール装置３とを有する。
【００１４】
端末装置１は、企業や組織における業務システムの開発者や管理者が使用する端末である。具体的に、端末装置１は、例えば、デスクトップＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やノート型ＰＣである。
【００１５】
ファイアーウォール装置３は、ネットワークＮＷと接続した外部端末３１と、端末装置１との間の通信を制御する。すなわち、ファイアーウォール装置３は、例えば、外部端末３１による端末装置１への不正アクセス等を防御する。なお、ネットワークＮＷは、例えば、インターネット網である。
【００１６】
検証装置２は、例えば、外部端末３１から端末装置１に対してメールが送信された場合に、送信されたメールを取得し、そのメールにソフトウエアが添付されているか否かを判定する。そして、外部端末３１から送信されたメールにソフトウエアが添付されている場合、検証装置２は、例えば、検証装置２内に構築された検証環境のデバッガ上において、そのメールに添付されているソフトウエアを実行する。
【００１７】
すなわち、ファイアーウォール装置３は、メールに添付されたソフトウエアがマルウエアであることを検知することができず、通信を許可する可能性がある。そのため、検証装置２は、ファイアーウォール装置３が通過させたメールに添付されたソフトウエアが、マルウエアであるか否かについての判定を行う。なお、検証装置２内に構築された検証環境は、例えば、検証装置２の物理リソースが割り当てられて生成された仮想マシン（以下、ＶＭとも呼ぶ）からなる仮想環境である。
【００１８】
そして、検証装置２は、外部端末３１から送信されたメールに添付されたソフトウエアを実行した結果、そのソフトウエアがマルウエアでないと判定した場合、外部端末３１から送信されたメールを端末装置１に送信する。一方、検証装置２は、外部端末３１から送信されたメールに添付されたソフトウエアがマルウエアであると判定した場合、外部端末３１から送信されたメールを端末装置１に送信することなく破棄する。これにより、検証装置２は、外部端末３１からマルウエアを添付したメールが送信された場合であっても、端末装置１が外部端末３１から送信されたマルウエアに感染することを防止することが可能になる。
【００１９】
［検証装置の処理の具体例］
次に、検証装置２の処理の具体例について説明を行う。図２から図６は、マルウエアが添付されたメールを受信した場合における検証装置２の処理の具体例を説明する図である。
【００２０】
図２に示す例において、検証装置２は、仮想マシンを生成するための物理リソース（ＣＰＵやメモリ）を有する物理マシンである。具体的に、図２に示す検証装置２では、検証装置２における仮想マシンの生成または削除を行うための仮想化ソフトウエア２４（以下、ハイパーバイザ２４とも呼ぶ）が動作する。そして、図２に示す検証装置２には、検証装置２の物理リソースが割り当てられた仮想マシン２１、２２及び２３が配備されている。
【００２１】
また、図２に示す端末装置１では、検証装置２と同様に、端末装置１における仮想マシンの生成または削除を管理するための仮想化ソフトウエア１４（以下、ハイパーバイザ１４とも呼ぶ）が動作する。そして、図１に示す端末装置１では、端末装置１の物理リソースが割り当てられた仮想マシン１１が配備されている。
【００２２】
具体的に、外部端末３１が端末装置１に対してメールを送信した場合、検証装置２は、図２に示すように、外部端末３１から送信されたメールが端末装置１に送信される前に取得する。そして、検証装置２は、例えば、送信されたメールにソフトウエアが添付されているか否かを判定する。その結果、ソフトウエアが添付されている場合、検証装置２は、例えば、仮想マシン２１のデバッガ上においてソフトウエアを実行し、解析を行う。すなわち、検証装置２は、メールに添付されたソフトウエアがマルウエアであるか否かを判定する。
【００２３】
そして、外部端末３１から送信されたメールに添付されたソフトウエアがマルウエアでないと判定した場合、仮想マシン２１は、図３に示すように、外部端末３１から送信されたメールを端末装置１に送信する。また、仮想マシン２１は、例えば、外部端末３１から送信されたメールにソフトウエアが添付されていない場合においても、送信されたメールを端末装置１に送信する。
【００２４】
一方、送信されたメールに添付されたソフトウエアがマルウエアであった場合、仮想マシン２１は、外部端末から送信されたメールを、端末装置１に送信することなく破棄する。これにより、送信されたメールに添付されたソフトウエアがマルウエアであった場合であっても、端末装置１がマルウエアに感染することを防ぐことが可能になる。
【００２５】
なお、送信されたメールに添付されたソフトウエアがマルウエアであった場合、仮想マシン２１は、図４に示すように、マルウエアに感染する可能性がある。この場合、検証装置２は、図５に示すように、マルウエアに感染した仮想マシン２１を削除する。これにより、検証装置２は、マルウエアに感染した環境を検証装置２から削除することが可能になる。
【００２６】
ここで、上記のようなマルウエアには、図６に示すように、デバッガ上において実行されたことを検知した場合に、自身の動作を終了する判定（悪性動作を行わない判定）を行う耐解析機能を有するマルウエアが存在する。そのため、耐解析機能を有するマルウエアをデバッガ上で実行した場合、検証装置２は、実行したマルウエアをマルウエアとして検知できない場合がある。したがって、検証装置２は、この場合、図６に示すように、マルウエアが添付されたメールを端末装置１に送信し、端末装置１をマルウエアに感染させる可能性がある。以下、耐解析機能を有するマルウエアに対処するための検証装置２及び端末装置１の処理の具体例について説明を行う。
【００２７】
［耐解析機能を有するマルウエアに対する検証装置の処理の具体例］
図７は、耐解析機能を有するマルウエアを受信した場合における検証装置２の処理の具体例を説明する図である。図７に示す検証装置２において、ハイパーバイザ２４は、検証装置２のハードウエア２５（物理リソース）上で動作し、仮想マシン２１の生成または削除を行う。具体的に、ハイパーバイザ２４は、仮想マシン２１を生成する場合、ハイパーバイザ２４上に仮想ＯＳ２１ｃ（以下、ゲストＯＳ２１ｃとも呼ぶ）を生成し、ハードウエア２５の一部を仮想マシン２１のハードウエア（以下、仮想ハードウエアとも呼ぶ）として割り当てる。一方、ハイパーバイザ２４は、仮想マシン２１を削除する場合、ハイパーバイザ２４上に生成された仮想ＯＳ２１ｃを削除し、仮想マシン２１の仮想ハードウエアを解放する。
【００２８】
また、図７に示す検証装置２において、仮想マシンＯＳ２１ｃ上では、受信したメールに添付されたソフトウエア３１ａ（マルウエアである可能性があるソフトウエア）等を実行して解析するためのデバッガ２１ｂが動作している。
【００２９】
なお、図７に示す例において、ハイパーバイザ２４は、ハードウエア２５上において直接動作しているが、ハードウエア２５上で動作するホストＯＳ（図示しない）上において動作するハイパーバイザであってもよい。
【００３０】
具体的に、図７に示す例において、検証装置２で実行されたソフトウエア３１ａがマルウエアである場合、そのマルウエア（以下、マルウエア３１ａとも呼ぶ）は、実行された現在の環境が動作を継続すべき環境（悪性動作を開始すべき環境）であるか否かの判定を行う。この場合、マルウエア３１ａは、例えば、実行された環境が何らかのプログラム上であるか否かの判定を行う。その結果、実行された環境が何らかのプログラム上であると判定した場合、マルウエア３１ａは、実行された環境がメールの宛先である端末装置１ではなく、他の装置の検証環境であると判定する。そして、マルウエア３１ａは、この場合、実行された環境が動作を継続すべき環境ではないと判定し、動作を終了する。これにより、マルウエア３１ａは、自身の動作を解析されることを防止することが可能になる。
【００３１】
さらに具体的に、マルウエア３１ａは、図７に示す例において、実行された環境がプログラム上であるか否かの問い合わせを仮想ＯＳ２１ｃに対して送信する。そして、実行された環境がプログラム上である旨の情報を仮想ＯＳ２１ｃから受信した場合、マルウエア３１ａは、動作を終了する。すなわち、マルウエア３１ａは、この場合、実行された現在の環境が動作を継続すべき環境ではないと判定し、悪性動作を行うための動作を行わない。
【００３２】
これにより、マルウエア３１ａは、検証装置２に対し、自身がマルウエアでないと誤って判定させることが可能になる。そのため、マルウエア３１ａは、この場合、検証装置２によって排除されることを防止し、端末装置１まで到達することが可能になる。
【００３３】
［耐解析機能を有するマルウエアに対する端末装置の処理の具体例］
次に、図８は、耐解析機能を有するマルウエアを受信した場合における端末装置１の処理の具体例を説明する図である。図８に示す端末装置１において、ハイパーバイザ１４は、端末装置１のハードウエア１５（物理リソース）上で動作し、仮想マシン１１の生成または削除を行う。具体的に、ハイパーバイザ１４は、仮想マシン１１を生成する場合、ハイパーバイザ１４上に仮想ＯＳ１１ｃ（以下、ゲストＯＳ１１ｃとも呼ぶ）を生成し、ハードウエア１５の一部を仮想マシン１１の仮想ハードウエアとして割り当てる。一方、ハイパーバイザ１４は、仮想マシン１１を削除する場合、ハイパーバイザ１４上に生成された仮想ＯＳ１１ｃを削除し、仮想マシン１１の仮想ハードウエアを解放する。
【００３４】
なお、図８に示す端末装置１は、メールに添付されたソフトウエアを実行して解析を行うための装置ではないため、図７に示す検証装置２と異なり、デバッガを有していない。また、図８に示すハイパーバイザ１４は、ハードウエア１５上において直接動作しているが、ハードウエア１５上で動作するホストＯＳ（図示しない）上において動作するハイパーバイザであってもよい。
【００３５】
図８に示す例において、端末装置１で実行されたマルウエア３１ａは、実行された現在の環境が動作を継続すべき環境（悪性動作を行うべき環境）であるか否かの判定を行うために、実行された環境が何らかのプログラム上であるか否かの判定を行う。
【００３６】
具体的に、マルウエア３１ａは、図８に示す例において、実行された環境がプログラム上であるか否かの問い合わせを仮想ＯＳ１１ｃに対して送信する。ここで、図８の例におけるマルウエア３１ａは、図７で説明した場合と異なり、デバッガ等のプログラム上ではなく、仮想ＯＳ１１ｃ上において直接実行されている。そのため、マルウエア３１ａは、実行された環境がプログラム上でない旨の情報を仮想ＯＳ１１ｃから受信する。したがって、マルウエア３１ａは、図８に示す例において、実行された現在の環境が動作を継続すべき環境であると判定し、悪性動作を開始する。これにより、マルウエア３１ａは、検証装置２において事前に実行される場合であっても、端末装置１を感染させることが可能になる。
【００３７】
これに対し、端末装置１は、マルウエア３１ａに対して、端末装置１が動作すべきでない端末であると誤って判定させ、動作を終了させる（悪性動作を開始させない）場合がある。これにより、端末装置１は、マルウエア３１ａによる感染を防止することが可能になる。以下、マルウエア３１ａに誤った判定をさせる場合における処理の具体例について説明を行う。
【００３８】
［マルウエア３１ａに誤った判定をさせる場合における処理の具体例］
図９及び図１０は、マルウエア３１ａに誤った判定をさせる場合の処理の具体例を説明する図である。ソフトウエア３１ａ（マルウエア３１ａである可能性あり）から仮想ＯＳ１１ｃに対して、実行された現在の環境が何らかのプログラム上であるか否かの問い合わせが送信された場合、フック装置４は、図９に示すように、送信された問い合わせが仮想ＯＳ１１ｃに到達する前に取得する。そして、フック装置４は、取得した問い合わせの内容が記憶部４ａに記憶された情報と一致する場合、その問い合わせを仮想ＯＳ１１ｃに送信しない。さらに、フック装置４は、この場合、ソフトウエア３１ａに対して、実行された現在の環境が何らかのプログラム上である旨の情報（悪性動作を開始すべきでない旨の情報）を送信する。
【００３９】
すなわち、管理者は、種々のマルウエアが動作を継続すべきか否かの判定を行うために送信する各情報を、予め記憶部４ａに記憶する。そして、フック装置４は、ソフトウエア３１ａから仮想ＯＳ１１ｃに対して送信された情報が、記憶部４ａに記憶された情報と同じ情報である場合、仮想ＯＳ１１ｃに対して問い合わせを送信したソフトウエア３１ａがマルウエア（マルウエア３１ａ）であると判定する。その後、フック装置４は、マルウエア３１ａが仮想ＯＳ１１ｃに送信した問い合わせに対する応答として、マルウエア３１ａが動作を継続すべきでない旨の情報をマルウエア３１ａに送信する。
【００４０】
これにより、フック装置４は、マルウエア３１ａに対し、実行された現在の環境が動作を継続すべきでない環境であると判定させ、端末装置１における動作を終了させる（悪性動作を開始させない）ことが可能になる。そのため、フック装置４は、端末装置１がマルウエア３１ａに感染することを防止することが可能になる。
【００４１】
しかしながら、マルウエア３１ａは、図１０に示すように、動作を継続すべきか否かを判定するための問い合わせを、仮想ＯＳ１１ｃを介してハードウエア１５に送信する可能性がある。そのため、フック装置４がソフトウエア３１ａ（マルウエア３１ａ）と仮想ＯＳ１１ｃとの間における情報のフックのみ行うものである場合、マルウエア３１ａがハードウエア１５に対して送信した情報をフックすることができない。したがって、フック装置４は、この場合、端末装置１におけるマルウエア３１ａの動作を終了させることができず、マルウエア３１ａによる端末装置１の感染することを防止することができない。
【００４２】
そこで、本実施の形態では、端末装置１のハイパーバイザ１４は、マルウエア３１ａから仮想ＯＳ１１ｃを介してハードウエア１５に対して送信される可能性がある命令を記憶する記憶部を有する。また、端末装置１のハイパーバイザ１４は、仮想ＯＳ１１ｃからハードウエア１５に対して送信された命令（以下、第１命令とも呼ぶ）をフックする。そして、端末装置１のハイパーバイザ１４は、フックした第１命令と同じ内容の命令が記憶部に記憶されている場合、マルウエア３１ａに動作を終了する旨を判定させるための情報を仮想ＯＳ１１ｃに送信する。
【００４３】
すなわち、本実施の形態における端末装置１は、仮想ＯＳ１１ｃとハードウエア１５との間に位置するハイパーバイザ１４において、仮想ＯＳ１１ｃからハードウエア１５に対して送信された第１命令をフックする。これにより、端末装置１は、仮想ＯＳ１１ｃからハードウエア１５に対して送信された命令をフックすることが可能になる。
【００４４】
また、本実施の形態におけるハイパーバイザ１４の記憶部（実体としてはハードウエア１５の一部）には、例えば、他の装置（例えば、検証装置２）において過去にマルウエア３１ａが送信した命令であって、その命令に対する応答をマルウエア３１ａに送信した結果、マルウエア３１ａが悪性動作を開始しなかった命令が記憶されている。そのため、ハイパーバイザ１４は、マルウエア３１ａが仮想ＯＳ１１ｃを介してハードウエア１５に対して第１命令を送信した場合、ハイパーバイザ１４の記憶部を参照する。そして、第１命令がハイパーバイザ１４の記憶部に記憶された命令に含まれている場合、ハイパーバイザ１４は、マルウエア３１ａが他の装置において第１命令と同じ命令を送信した際に、他の装置のハードウエアがマルウエア３１ａに対して応答した情報と同じ情報をマルウエア３１ａに送信する。これにより、ハイパーバイザ１４は、マルウエア３１ａに、現在実行されている環境（端末装置１）が過去に動作を終了した環境（例えば、検証装置２）と同じ環境であると判定させることが可能になる。そのため、ハイパーバイザ１４は、端末装置１において、マルウエア３１ａによる悪性動作の開始を防止することが可能になる。
【００４５】
さらに、この場合、管理者は、マルウエア３１ａがハードウエア１５に対して送信する可能性がある全ての情報を事前に取得し、予めハイパーバイザ１４の記憶部に記憶しておく必要がなくなる。
【００４６】
［端末装置のハードウエア構成］
次に、端末装置１のハードウエア構成について説明する。図１１は、端末装置１のハードウエア構成を説明する図である。
【００４７】
端末装置１は、プロセッサであるＣＰＵ１０１と、メモリ１０２と、外部インターフェース（Ｉ／Ｏユニット）１０３と、記憶媒体１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００４８】
記憶媒体１０４は、例えば、記憶媒体１０４内のプログラム格納領域（図示しない）に、端末装置１においてマルウエア３１ａの動作を終了させることにより、ネットワークを保護する処理（以下、ネットワーク保護処理とも呼ぶ）等を行うためのプログラム１１０を記憶する。
【００４９】
ＣＰＵ１０１は、図１１に示すように、プログラム１１０の実行時に、プログラム１１０を記憶媒体１０４からメモリ１０２にロードし、プログラム１１０と協働してネットワーク保護処理等を行う。
【００５０】
記憶媒体１０４は、例えば、ネットワーク保護処理等を行う際に用いられる情報を記憶する情報格納領域１３０（以下、記憶部１３０とも呼ぶ）を有する。なお、記憶部１３０は、例えば、ハイパーバイザ１４が制御する記憶部として機能する。
【００５１】
また、外部インターフェース１０３は、検証装置２と通信を行う。また、外部インターフェース１０３は、検証装置２及びファイアーウォール装置３を介してネットワークＮＷと通信を行う。
【００５２】
[端末装置のソフトウエア構成]
次に、端末装置１のソフトウエア構成について説明する。図１２は、図１１の端末装置１の機能ブロック図である。ＣＰＵ１０１は、プログラム１１０と協働することにより、端末装置１のハイパーバイザ１４の機能である命令フック部１１１と、命令判定部１１２と、命令変換部１１３と、返り値送信部１１４と、ポリシー受信部１１５と、ポリシー管理部１１６として機能する。また、情報格納領域１３０には、ポリシー情報１３１が記憶されている。なお、以下、命令フック部１１１、命令判定部１１２、命令変換部１１３及び返り値送信部１１４をまとめて処理部１２０とも呼ぶ。
【００５３】
命令フック部１１１は、端末装置１の仮想ＯＳ１１ｃからハードウエア１５に対して送信された第１命令をフックする。具体的に、命令フック部１１１は、仮想ＯＳ１１ｃ上で動作するソフトウエア３１ａ（マルウエア３１ａである可能性があり）が仮想ＯＳ１１ｃを介してハードウエア１５に送信した第１命令を、ハードウエア１５に送信される前にフックする。
【００５４】
命令判定部１１２は、命令フック部１１１がフックした第１命令が情報格納領域１３０に記憶された命令群（以下、ポリシー情報１３１とも呼ぶ）に含まれるか否かを判定する。そして、命令判定部１１２は、第１命令が情報格納領域１３０に記憶されたポリシー情報１３１に含まれる場合、ソフトウエア３１ａがマルウエア３１ａであると判定する。
【００５５】
そして、命令変換部１１３は、ソフトウエア３１ａがマルウエア３１ａであると判定した場合、第１命令を、マルウエア３１ａに動作を終了する旨の判定（悪性動作を開始させない旨の判定）をさせるための情報に変換する。すなわち、命令変換部１１３は、ソフトウエア３１ａがマルウエア３１ａであった場合に、マルウエア３１ａに動作を終了させることができる情報（以下、返り値情報１３２とも呼ぶ）を作成する。
【００５６】
その後、返り値送信部１１４は、命令変換部１１３が作成した返り値情報１３２を、仮想ＯＳ１１ｃを介してソフトウエア３１ａに送信する。
【００５７】
ポリシー受信部１１５は、検証装置２が作成したポリシー情報１３１を受信する。検証装置２がポリシー情報１３１を作成する際の具体例については後述する。また、ポリシー管理部１１６は、ポリシー受信部１１５が受信したポリシー情報１３１を情報格納領域１３０に記憶する。
【００５８】
［第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明する。図１３及び図１４は、第１の実施の形態におけるネットワーク保護処理の概略を説明するフローチャート図である。また、図１５から図１７は、第１の実施の形態におけるネットワーク保護処理の概略を説明する図である。図１５から図１７を参照しながら図１３及び図１４のネットワーク保護処理の概略を説明する。なお、以下、端末装置１は、検証装置２からポリシー情報１３１を受信するものとして説明を行う。
【００５９】
[ポリシー情報を記憶する際の処理]
初めに、端末装置１がポリシー情報１３１を記憶する際の処理について説明を行う。
【００６０】
端末装置１（ハイパーバイザ１４）は、図１３に示すように、例えば、検証装置２からポリシー情報１３１を受信するまで待機する（Ｓ１のＮＯ）。検証装置２は、例えば、仮想マシンＯＳ２１ｃ上で実行されたソフトウエア３１ａ（マルウエア３１ａである可能性あり）が、仮想ＯＳ２１ｃを介してハードウエア２５に送信した命令を集計した情報から、ポリシー情報１３１を作成する。すなわち、ポリシー情報１３１には、検証装置２において過去にソフトウエア３１ａがハードウエア２５に送信した命令であって、その命令に対する応答をソフトウエア３１ａに送信した結果、マルウエアによる悪性動作が行われなかった命令の情報が含まれる。
【００６１】
なお、ポリシー情報１３１には、ソフトウエア３１ａから送信された情報に対して、ハードウエア２５がソフトウエア３１ａに対して実際に送信した情報（返り値情報１３２）を含むものであってもよい。
【００６２】
そして、ポリシー情報１３１を受信した場合（Ｓ１のＹＥＳ）、端末装置１（ハイパーバイザ１４）は、図１５に示すように、Ｓ１の処理で受信したポリシー情報１３１を情報格納領域１３０に記憶する（Ｓ２）。
【００６３】
[情報をフックする際の処理]
次に、ソフトウエア３１ａがハードウエア１５に送信した情報をフックする際の処理について説明を行う。
【００６４】
端末装置１（ハイパーバイザ１４）は、端末装置１の仮想ＯＳ１１ｃからハードウエア１５に対して送信された第１命令の送信を検知するまで待機する（Ｓ１１のＮＯ）。すなわち、端末装置１は、仮想ＯＳ１１ｃ上で実行されたソフトウエア３１ａが、仮想ＯＳ１１ｃを介してハードウエア１５に対して送信した第１命令の送信を検知するまで待機する。そして、第１命令の送信を検知した場合（Ｓ１１のＹＥＳ）、端末装置１（ハイパーバイザ１４）は、図１６に示すように、第１命令をフックする（Ｓ１２）。
【００６５】
これにより、動作を継続するか否かの判定（悪性動作を開始するか否かの判定）を行うために、マルウエア３１ａがハードウエア１５に対して命令を送信した場合であっても、端末装置１は、後述するように、マルウエア３１ａに動作を終了する旨の判定を行わせることが可能になる。
【００６６】
また、端末装置１は、第１命令が第１命令の本来の送信先であるハードウエア１５に送信されることを防止することが可能になる。そのため、端末装置１は、第１命令の本来の送信先であるハードウエア１５からソフトウエア３１ａに対して応答が送信されることを防止することが可能になる。
【００６７】
その後、端末装置１（ハイパーバイザ１４）は、図１７に示すように、Ｓ１２の処理でフックした第１命令が情報格納領域１３０に記憶されているか否かを判定する（Ｓ１３）。すなわち、第１命令が情報格納領域１３０に記憶されている場合、端末装置１は、ソフトウエア３１ａがマルウエア３１ａであると判定する。
【００６８】
そして、第１命令が情報格納領域１３０に記憶されている場合（Ｓ１３のＹＥＳ）、端末装置１（ハイパーバイザ１４）は、ソフトウエア３１ａがマルウエア３１ａである場合に動作を終了する旨の判定をさせるための情報を、仮想ＯＳ１１ｃを介してソフトウエア３１ａに送信する（Ｓ１４）。一方、第１命令が情報格納領域１３０に記憶されていない場合（Ｓ１３のＮＯ）、端末装置１は、Ｓ１４の処理を実行しない。
【００６９】
すなわち、端末装置１は、ソフトウエア３１ａがマルウエア３１ａである場合に、マルウエア３１ａが動作を終了する判定を行うための情報（検証装置２においてマルウエア３１ａが動作を終了する判定を行った情報）を、返り値情報１３２としてマルウエア３１ａに送信する。これにより、端末装置１は、ソフトウエア３１ａがマルウエア３１ａであった場合において、返り値情報１３２の内容を参照したマルウエア３１ａに、実行された環境である端末装置１が動作を継続すべきでない（悪性動作を行うべきではない）環境であると判定させることが可能になる。そのため、端末装置１は、マルウエア３１ａに動作を終了させることが可能になる。
【００７０】
このように、第１の実施の形態によれば、端末装置１のハイパーバイザ１４は、マルウエア３１ａから検証装置２の仮想ＯＳ２１ｃを介してハードウエア２５に対して送信される命令を記憶する記憶部１３０を有する。また、端末装置１のハイパーバイザ１４は、端末装置１の仮想ＯＳ１１ｃからハードウエア１５に対して送信された第１命令をフックする。そして、端末装置１のハイパーバイザ１４は、フックした第１命令が記憶部１３０に記憶された命令に含まれる場合、マルウエア３１ａに動作を終了する旨の判定をさせるための返り値情報１３２を、仮想ＯＳ１１ｃに送信する処理部１２０を有する。
【００７１】
これにより、端末装置１のハイパーバイザ１４は、マルウエア３１ａに対し、過去に悪性動作を開始しなかった環境（例えば、検証装置２）と同じ環境で実行されているものと判定させることが可能になる。そのため、端末装置１のハイパーバイザ１４は、マルウエア３１ａに動作を終了させることが可能になる。
【００７２】
また、端末装置１のハイパーバイザ１４は、検証装置２においてマルウエア３１ａが送信した命令に基づき、端末装置１において実行されたマルウエア３１ａの動作を終了させる。そのため、管理者は、マルウエア３１ａがハードウエア１５に対して送信する可能性がある全ての情報を事前に取得し、予め記憶部１３０に記憶しておく必要がなくなる。
【００７３】
なお、図１５から図１７で説明したハイパーバイザ１４は、ＯＳ上で動作するハイパーバイザではなく、ハードウエア１５上で直接動作するハイパーバイザ（Ｔｙｐｅ１型のハイパーバイザ）である。これに対し、ハイパーバイザ１４は、ハードウエア１５上で直接動作するＯＳ（ホストＯＳ：図示しない）上で動作するハイパーバイザ（Ｔｙｐｅ２型のハイパーバイザ）であってもよい。
【００７４】
[第１の実施の形態の詳細]
次に、第１の実施の形態の詳細について説明する。図１８から図２０は、第１の実施の形態におけるネットワーク保護処理の詳細を説明するフローチャート図である。また、図２１から図２３は、第１の実施の形態におけるネットワーク保護処理の詳細を説明する図である。図２１から図２３を参照しながら、図１８から図２０のネットワーク保護処理を説明する。
【００７５】
[検証装置におけるネットワーク保護処理]
初めに、検証装置２におけるネットワーク保護処理について説明する。図１８は、検証装置２におけるネットワーク保護処理を説明するフローチャート図である。
【００７６】
検証装置２は、図１８に示すように、外部端末３１からソフトウエア３１ａが添付されたメール（宛先が端末装置１であるメール）を受信するまで待機する（Ｓ２１のＮＯ）。そして、外部端末３１からソフトウエア３１ａが添付されたメールを受信した場合（Ｓ２１のＹＥＳ）、検証装置２は、受信したメールに添付されたソフトウエア３１ａを実行する（Ｓ２２）。具体的に、検証装置２は、図２等で説明したように、検証装置２に生成された仮想マシン（検証環境）においてソフトウエア３１ａを実行して解析を行う。
【００７７】
そして、Ｓ２１の処理で受信したメールに添付されたソフトウエア３１ａがマルウエア３１ａであると判定した場合（Ｓ２３のＹＥＳ）、検証装置２は、受信したメールを端末装置１に送信することなく、受信したメールに添付されたソフトウエア３１ａを実行した仮想マシンを削除する（Ｓ２４）。すなわち、検証装置２は、Ｓ２１の処理で受信したメールに添付されたソフトウエア３１ａがマルウエア３１ａであった場合、ソフトウエア３１ａを添付したメールを、そのメールの宛先である端末装置１に送信することなく破棄する。
【００７８】
これにより、検証装置２は、端末装置１がマルウエア３１ａに感染することを防止することが可能になる。また、検証装置２は、マルウエア３１ａを実行した仮想マシンを削除することにより、マルウエアに感染した環境を検証装置２から削除することが可能になる。
【００７９】
一方、Ｓ２１の処理で受信したメールに添付されたソフトウエア３１ａがマルウエア３１ａでないと判定した場合（Ｓ２３のＮＯ）、検証装置２は、検証装置２の仮想ＯＳ２１ｃからハードウエア２５に送信された命令を検知するまで待機する（Ｓ２５のＮＯ）。そして、仮想ＯＳ２１ｃからハードウエア２５に送信された命令を検知した場合（Ｓ２５のＹＥＳ）、Ｓ２５の処理で検知した命令と、ハードウエア２５が仮想ＯＳ２１ｃに送信した返り値情報１３２とを対応させた情報を作成する。そして、検証装置２は、作成した情報をポリシー情報１３１の一部として、検証装置２の情報格納領域（図示しない）に記憶する（Ｓ２６）。
【００８０】
すなわち、Ｓ２３の処理においてマルウエア３１ａでないと判定されたソフトウエア３１ａには、検証装置２における解析によってはマルウエアであると判定できなかったマルウエア（検証装置２において悪性動作を行わなかったマルウエア）が含まれる可能性がある。そのため、検証装置２は、マルウエア３１ａでないと判定されたソフトウエア３１ａがハードウエア２５に送信した命令の情報と、その命令に対してソフトウエア３１ａに送信した情報（返り値情報１３２）とを対応させてポリシー情報１３１として記憶する。そして、検証装置２は、記憶したポリシー情報１３１を端末装置１に送信する。これにより、端末装置１は、後述するように、端末装置１において、マルウエア３１ａによる悪性動作を防止することが可能になる。
【００８１】
その後、検証装置２は、ソフトウエア３１ａからハードウエア２５に対して送信された新たな情報を検知し、ポリシー情報１３１を端末装置１に送信する（Ｓ２７）。すなわち、検証装置２は、例えば、検証装置２の情報格納領域に記憶されたポリシー情報１３１が更新される毎に、ポリシー情報１３１を端末装置１に送信する。これにより、検証装置２において、新たなマルウエアが新たな命令をハードウエア２５に送信した場合に、端末装置１は、その新たな命令に対して迅速に対応することが可能になる。以下、ポリシー情報１３１の具体例について説明を行う。
【００８２】
[ポリシー情報の具体例]
図２１から図２３は、ポリシー情報１３１の具体例である。初めに、Ｓ２６の処理が行われる前のポリシー情報１３１の具体例について説明する。
【００８３】
図２１は、Ｓ２６の処理が行われる前のポリシー情報１３１の具体例である。図２１に示すポリシー情報１３１は、ポリシー情報１３１の各情報を識別する「項番」と、ソフトウエア３１ａからハードウエア２５に送信された命令の内容が設定される「命令」とを項目として有している。また、図２１に示すポリシー情報１３１は、「命令」に設定された命令に対してソフトウエア３１ａに送信された返り値情報１３２が設定される「返り値」を項目として有している。
【００８４】
具体的に、図２１に示すポリシー情報１３１において、「項番」が「１」である情報には、「命令」として「ＨＤＤ名の参照」が設定され、「返り値」として「ＶＭ−ＡＡＡ−ＨＤＤ」が設定されている。また、図２１に示すポリシー情報１３１において、「項番」が「２」である情報には、「命令」として「ＣＰＵコア数の参照」が設定され、「返り値」として「３」が設定されている。さらに、図２１に示すポリシー情報１３１において、「項番」が「３」である情報には、「命令」として「ディスク容量の参照」が設定され、「返り値」として「２００（ＧＢ）」が設定されている。
【００８５】
次に、Ｓ２６の処理が行われた後のポリシー情報１３１の具体例について説明する。図２２は、Ｓ２６の処理が行われた後のポリシー情報１３１の具体例である。
【００８６】
図２２に示すポリシー情報１３１は、図２１に示すポリシー情報１３１と比較して、「項番」が「４」である情報（図２２の下線部分）が追加されている。具体的に、図２２に示すポリシー情報１３１において、「項番」が「４」である情報には、「命令」として「Ｉ／Ｏ−ＡＡＡの存在確認」が設定され、「返り値」として「存在」が設定されている。
【００８７】
すなわち、図２１及び図２２に示すポリシー情報１３１には、検証装置２において、ソフトウエア３１ａがハードウエア２５に送信した命令の内容と、その命令に対する返り値情報１３２とを対応して設定されている。これにより、端末装置１は、ソフトウエア３１ａからハードウエア１５に対する命令が送信された場合に、ポリシー情報１３１を参照することで、マルウエア３１ａに動作を終了する旨を判定させる情報を作成し、ソフトウエア３１ａに送信することが可能になる。
【００８８】
なお、ポリシー情報１３１は、検証装置２の環境情報を有する情報であってもよい。そして、端末装置１は、ソフトウエア３１ａからハードウエア１５に対する命令が送信された場合に、環境情報を含むポリシー情報１３１を参照し、端末装置１が返り値情報１３２を作成してソフトウエア３１ａに送信するものであってもよい。以下、検証装置２の環境情報を有するポリシー情報１３１の具体例について説明を行う。
【００８９】
[検証装置の環境情報を有するポリシー情報の具体例]
図２３は、検証装置２の環境情報を有するポリシー情報１３１の具体例である。図２３に示すポリシー情報１３１は、ポリシー情報１３１の各情報を識別する「項番」と、検証装置２の環境情報の項目を設定する「環境情報」と、検証装置２の環境情報の内容を設定する「内容」とを項目として有している。
【００９０】
具体的に、図２３に示すポリシー情報１３１において、「項番」が「１」である情報には、「環境情報」として「ＨＤＤ名」が設定され、「内容」として「ＶＭ−ＡＡＡ−ＨＤＤ」が設定されている。また、図２３に示すポリシー情報１３１において、「項番」が「２」である情報には、「環境情報」として「ＣＰＵコア数」が設定され、「内容」として「３」が設定されている。また、図２３に示すポリシー情報１３１において、「項番」が「３」である情報には、「環境情報」として「ディスク容量」が設定され、「内容」として「２００（ＧＢ）」が設定されている。さらに、図２３に示すポリシー情報１３１において、「項番」が「４」である情報には、「環境情報」として「Ｉ／Ｏポート」が設定され、検証装置２の仮想マシンが有するＩ／Ｏポートである「Ｉ／Ｏ−ＡＡＡ，Ｉ／Ｏ−ＢＢＢ」が「内容」として設定されている。
【００９１】
すなわち、端末装置１は、例えば、ソフトウエア３１ａからＨＤＤ名の参照する旨の命令の送信を検知した場合、図２３に示すポリシー情報１３１を参照し、「環境情報」が「ＨＤＤ名」である情報の「内容」が「ＶＭ−ＡＡＡ−ＨＤＤ」を取得する。そして、端末装置１は、ＨＤＤ名が「ＶＭ−ＡＡＡ−ＨＤＤ」を返り値情報１３２としてソフトウエア３１ａに送信する。
【００９２】
また、端末装置１は、ソフトウエア３１ａを実行した端末装置１の仮想マシンが有するＩ／Ｏポートとして、Ｉ／Ｏ−ＢＢＢが存在するか否か判定する旨の命令の送信を検知した場合、図２３に示すポリシー情報１３１を参照する。そして、端末装置１は、「環境情報」が「Ｉ／Ｏポート」である情報の「内容」に「Ｉ／Ｏ−ＢＢＢ」が設定されている旨を判定する。そのため、端末装置１は、この場合、Ｉ／Ｏポートに「Ｉ／Ｏ−ＢＢＢ」が存在する旨の返り値情報１３２をソフトウエア３１ａに送信する。
【００９３】
一方、端末装置１は、ソフトウエア３１ａを実行した端末装置１の仮想マシンが有するＩ／Ｏポートとして、Ｉ／Ｏ−ＣＣＣが存在するか否か判定する旨の命令の送信を検知した場合、上記の場合と同様に、図２３に示すポリシー情報１３１を参照する。そして、端末装置１は、「環境情報」が「Ｉ／Ｏポート」である情報の「内容」に「Ｉ／Ｏ−ＣＣＣ」が設定されていない旨を判定する。そのため、端末装置１は、この場合、Ｉ／Ｏポートに「Ｉ／Ｏ−ＣＣＣ」が存在しない旨の返り値情報１３２をソフトウエア３１ａに送信する。
【００９４】
[端末装置におけるネットワーク保護処理]
次に、端末装置１におけるネットワーク保護処理について説明する。図１９及び図２０は、端末装置１におけるネットワーク保護処理を説明するフローチャート図である。
【００９５】
端末装置１のポリシー受信部１１５は、図１９に示すように、例えば、検証装置２からポリシー情報１３１を受信するまで待機する（Ｓ３１のＮＯ）。そして、ポリシー情報１３１を受信した場合（Ｓ３１のＹＥＳ）、端末装置１のポリシー管理部１１６は、Ｓ３１の処理で受信したポリシー情報１３１を情報格納領域１３０に記憶する（Ｓ３２）。なお、検証装置２は、ポリシー受信部１１５に対し、ポリシー情報１３１のうちの更新分の情報（ポリシー情報１３１のうち、ポリシー受信部１１５に送信していない情報）のみを送信するものであってもよい。
【００９６】
また、端末装置１の命令フック部１１１は、図２０に示すように、端末装置１のソフトウエア３１ａから仮想ＯＳ１１ｃを介してハードウエア１５に対して送信された第１命令の送信を検知するまで待機する（Ｓ４１のＮＯ）。そして、第１命令の送信を検知した場合（Ｓ４１のＹＥＳ）、命令フック部１１１は、第１命令をフックする（Ｓ４２）。
【００９７】
その後、端末装置１の命令判定部１１２は、Ｓ４２の処理でフックした第１命令が情報格納領域１３０に記憶されているポリシー情報１３１に含まれるか否かを判定する（Ｓ４３）。そして、第１命令がポリシー情報１３１に含まれる場合（Ｓ４３のＹＥＳ）、端末装置１の命令変換部１１３は、情報格納領域１３０に記憶されているポリシー情報１３１を参照し、第１命令の変換を行う。すなわち、命令変換部１１３は、ソフトウエア３１ａに対して送信する返り値情報１３２を決定する（Ｓ４４）。その後、返り値送信部１１４は、Ｓ４４の処理で決定した戻り値情報１３２をソフトウエア３１ａに送信する（Ｓ４５）。
【００９８】
具体的に、命令フック部１１１がフックした第１命令の内容が「ディスク容量の参照」である場合、命令判定部１１２は、例えば、図２２で説明したポリシー情報１３１を参照する。そして、命令判定部１１２は、図２２で説明したポリシー情報１３１に、「内容」が「ディスク容量の参照」である情報（「項番」が「３」である情報）が存在すると判定する。そのため、命令変換部１１３は、「項番」が「３」である情報の「返り値」に設定された情報（返り値情報１３２）である「２００（ＧＢ）」を取得する。そして、返り値送信部１１４は、命令変換部１１３が取得した返り値情報１３２である「２００（ＧＢ）」を、仮想ＯＳ１１ｃを介してソフトウエア３１ａに送信する。
【００９９】
一方、第１命令がポリシー情報１３１に含まれない場合（Ｓ４３のＮＯ）、命令変換部１１３は、Ｓ４４及びＳ４５の処理を行わない。
【０１００】
すなわち、命令フック部１１１は、検証装置２から送信されたソフトウエア３１ａ（検証装置２を通過したソフトウエア３１ａ）が、検証装置２においてハードウエア２５に対して送信した命令と同じ命令（第１命令）を端末装置１のハードウエア１５に送信するまで待機する。そして、第１命令がソフトウエア３１ａからハードウエア１５に送信された場合、検証装置２においてハードウエア２５が送信した情報と同じ内容の返り値情報１３２をソフトウエア３１ａに送信する。
【０１０１】
これにより、端末装置１は、マルウエア３１ａに対し、過去に動作を終了した環境（過去に悪性動作を開始しなかった環境）と同じ環境で実行されているものと判定させることが可能になる。そのため、端末装置１は、端末装置１におけるマルウエアの動作を終了させることが可能になる。
【０１０２】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０１０３】
（付記１）
マルウエアからオペレーティングシステムを介してハードウエアに対して送信される命令を記憶する記憶部と、
前記オペレーティングシステムから前記ハードウエアに対して送信された第１命令をフックし、フックした前記第１命令が前記記憶部に記憶された命令に含まれる場合、前記マルウエアに動作を終了する旨の判定をさせるための情報を前記オペレーティングシステムに送信する処理部と、を有する、
ことを特徴とするネットワーク保護装置。
【０１０４】
（付記２）
付記１において、
前記記憶部に記憶された命令は、前記ネットワーク保護装置に対して送信されたソフトウエアを検証装置で実行した際に、前記検証装置のオペレーティングシステムから前記検証装置のハードウエアに対して送信された命令である、
ことを特徴とするネットワーク保護装置。
【０１０５】
（付記３）
付記２において、
前記検証装置は、前記ネットワーク保護装置に対して送信されたソフトウエアを、前記ソフトウエアが前記ネットワーク保護装置に送信される前に実行し、前記ソフトウエアを前記ネットワーク保護装置に対して送信する前に、前記検証装置のオペレーティングシステムから前記検証装置のハードウエアに対して送信された命令を前記記憶部に記憶する、
ことを特徴とするネットワーク保護装置。
【０１０６】
（付記４）
付記２において、
前記マルウエアに動作を終了する旨の判定をさせるための情報は、前記検証装置のオペレーティングシステムが前記検証装置のハードウエアに送信した命令に対し、前記検証装置のハードウエアが前記検証装置のオペレーティングシステムに送信した情報と同じ情報である、
ことを特徴とするネットワーク保護装置。
【０１０７】
（付記５）
付記４において、
前記マルウエアに動作を終了する旨の判定をさせるための情報は、前記オペレーティングシステムが仮想オペレーティングシステムであり、前記検証装置のオペレーティングシステムと同じオペレーティングシステムであることを示す情報である、
ことを特徴とするネットワーク保護装置。
【０１０８】
（付記６）
付記１において、
前記処理部は、前記第１命令が前記記憶部に記憶された命令に含まれる場合、前記第１命令を前記ハードウエアに送信することなく、前記マルウエアに動作を終了する旨の判定をさせるための情報を前記オペレーティングシステムに送信する、
ことを特徴とするネットワーク保護装置。
【０１０９】
（付記７）
付記１において、
前記処理部は、フックした前記第１命令が前記記憶部に記憶された命令に含まれない場合、前記第１命令を前記ハードウエアに送信する、
ことを特徴とするネットワーク保護装置。
【０１１０】
（付記８）
マルウエアからオペレーティングシステムを介してハードウエアに対して送信される命令を記憶部に記憶し、
前記オペレーティングシステムから前記ハードウエアに対して送信された第１命令をフックし、フックした前記第１命令が前記記憶部に記憶された命令に含まれる場合、前記マルウエアに動作を終了する旨の判定をさせるための情報を前記オペレーティングシステムに送信する、
ことを特徴とするネットワーク保護方法。
【０１１１】
（付記９）
コンピュータに、
マルウエアからオペレーティングシステムを介してハードウエアに対して送信される命令を記憶部に記憶し、
前記オペレーティングシステムから前記ハードウエアに対して送信された第１命令をフックし、フックした前記第１命令が前記記憶部に記憶された命令に含まれる場合、前記マルウエアに動作を終了する旨の判定をさせるための情報を前記オペレーティングシステムに送信する、
ことを実行させることを特徴とするネットワーク保護プログラム。
【符号の説明】
【０１１２】
１ａ：端末装置                １ｂ：端末装置
１ｃ：端末装置                ２：検証装置
３：ファイアーウォール装置    ３１：外部端末
ＮＷ：ネットワーク
【図１】
0006631118.tif 000002
【図２】
0006631118.tif 000003
【図３】
0006631118.tif 000004
【図４】
0006631118.tif 000005
【図５】
0006631118.tif 000006
【図６】
0006631118.tif 000007
【図７】
0006631118.tif 000008
【図８】
0006631118.tif 000009
【図９】
0006631118.tif 000010
【図１０】
0006631118.tif 000011
【図１１】
0006631118.tif 000012
【図１２】
0006631118.tif 000013
【図１３】
0006631118.tif 000014
【図１４】
0006631118.tif 000015
【図１５】
0006631118.tif 000016
【図１６】
0006631118.tif 000017
【図１７】
0006631118.tif 000018
【図１８】
0006631118.tif 000019
【図１９】
0006631118.tif 000020
【図２０】
0006631118.tif 000021
【図２１】
0006631118.tif 000022
【図２２】
0006631118.tif 000023
【図２３】
0006631118.tif 000024