(57)【特許請求の範囲】
【請求項１】
コンピュータが、
ネットワークにおける位置を示す位置情報とファイルを識別する識別情報とを含むレコードを記憶する記憶部から、当該レコードを取得するレコード取得ステップと、
前記レコード取得ステップより取得されたレコードに含まれる位置情報により示される位置にあるファイルを取得するファイル取得ステップと、
前記ファイル取得ステップにより取得されたファイルである取得ファイルが前記レコード取得ステップにより取得されたレコードである取得レコードに含まれる識別情報により識別されるファイルと同一であるか否かを判定する判定ステップと、
前記判定ステップにより同一でないと判定された場合に、前記取得レコードに含まれる位置情報により示される位置にあるファイルを取得して実行する旨の実行指示を所定のサーバに送信する送信ステップと、
前記送信ステップにより送信された実行指示を実行した前記所定のサーバの挙動を分析することで前記取得ファイルが悪意のあるプログラムであるか否かを判定し、悪意のあるプログラムであると判定した場合には、前記取得レコードに含まれる識別情報を前記ファイル取得ステップにより取得されたファイルを識別する識別情報に更新し、悪意のあるプログラムであると判定しなかった場合には、前記取得レコードを前記記憶部から削除する更新処理ステップと
を実行することを特徴とする更新方法。
【請求項２】
前記ファイル取得ステップは、前記レコード取得ステップによりファイルを取得する際に用いられた前記ネットワークにおける自装置の位置を示す位置情報を記憶するアドレス記憶部を参照し、当該アドレス記憶部に記憶されていない位置情報を用いてファイルを取得することを特徴とする請求項１に記載の更新方法。
【請求項３】
前記記憶部は、前記ファイルを実行するプログラムを指定して当該ファイルを実行させる指定命令を含む前記レコードを記憶し、
前記送信ステップは、前記判定ステップにより同一でないと判定された場合に、前記取得レコードに含まれる指定命令により指定されるプログラムにより実行させる実行指示を所定のサーバに送信し、
前記送信ステップにより送信された実行指示を前記所定のサーバが実行したか否かを監視し、実行しなかったとの監視結果が得られた場合に、前記取得レコードとは別のレコードに含まれる指定命令により指定されるプログラムにより実行させる実行指示を所定のサーバに送信する第二の送信ステップを更に実行することを特徴とする請求項１又は２に記載の更新方法。
【請求項４】
前記コンピュータが、前記実行指示を実行した前記所定のサーバの状態を、前記実行指示の実行前の状態に変更するサーバ状態変更ステップを更に実行することを特徴とする請求項１〜３のいずれか１つに記載の更新方法。
【請求項５】
前記コンピュータは、前記所定のサーバによるデータの送受信を中継し、
前記所定のサーバによって前記実行指示により指定される位置にあるファイルを要求するファイル要求が送信されると、当該ファイル要求を当該所定のサーバに送信することなく当該ファイル要求に対する応答を生成し、前記ファイル取得ステップにより取得されたファイルと共に当該所定のサーバに返信する第一の返信ステップを更に実行することを特徴とする請求項１〜４のいずれか１つに記載の更新方法。
【請求項６】
前記ファイル取得ステップにより取得されたファイルを所定の記憶部に格納する格納ステップを更に実行し、
前記送信ステップは、前記格納ステップにより前記ファイルが格納された前記所定の記憶部から当該ファイルを取得して実行する旨の前記実行指示を前記所定のサーバに送信し、
前記実行指示により指定されるファイルを要求するファイル要求を前記所定のサーバから受信すると、当該ファイル要求に対する応答を生成し、当該ファイル要求により要求されたファイルを前記所定の記憶部から取得し、生成した応答と取得したファイルとを当該所定のサーバに返信する第二の返信ステップを更に実行することを特徴とする請求項１〜５のいずれか１つに記載の更新方法。
【請求項７】
ネットワークにおける位置を示す位置情報とファイルを識別する識別情報とを含むレコードを記憶する記憶部を有するフィルタリング装置と、当該記憶部に記憶されたレコードを更新する更新装置と、当該更新装置により用いられるサーバとを有する更新システムであって、
前記フィルタリング装置は、
ネットワークにおける位置を示す位置情報と、ファイルを識別する識別情報とを含むレコードを記憶する記憶部と、
前記記憶部に記憶されたレコードに基づいてフィルタリングを実行するフィルタリング部とを備え、
前記更新装置は、
前記記憶部から前記レコードを取得するレコード取得部と、
前記レコード取得部により取得されたレコードに含まれる位置情報により示される位置にあるファイルを取得するファイル取得部と、
前記ファイル取得部により取得されたファイルである取得ファイルが前記レコード取得部により取得されたレコードである取得レコードに含まれる識別情報により識別されるファイルと同一であるか否かを判定する判定部と、
前記判定部により同一でないと判定された場合に、前記取得レコードに含まれる位置情報により示される位置にあるファイルを取得して実行する旨の実行指示を所定のサーバに送信する送信部と、
前記送信部により送信された実行指示を実行した前記所定のサーバの挙動を分析することで前記取得ファイルが悪意のあるプログラムであるか否かを判定し、悪意のあるプログラムであると判定した場合には、前記取得レコードに含まれる識別情報を前記ファイル取得部により取得されたファイルを識別する識別情報に更新し、悪意のあるプログラムであると判定しなかった場合には、前記取得レコードを前記記憶部から削除する更新処理部とを備え、
前記所定のサーバは、
前記送信部により送信された実行指示を実行する実行部を備えたことを特徴とする更新システム。
【請求項８】
ネットワークにおける位置を示す位置情報と、ファイルを識別する識別情報とを含むレコードを記憶する記憶部と、
前記記憶部に記憶されたレコードを取得するレコード取得部と、
前記レコード取得部により取得されたレコードに含まれる位置情報により示される位置にあるファイルを取得するファイル取得部と、
前記ファイル取得部により取得されたファイルである取得ファイルが前記レコード取得部により取得されたレコードである取得レコードに含まれる識別情報により識別されるファイルと同一であるか否かを判定する判定部と、
前記判定部により同一でないと判定された場合に、前記取得レコードに含まれる位置情報により示される位置にあるファイルを取得して実行する旨の実行指示を所定のサーバに送信する送信部と、
前記送信部により送信された実行指示を実行した前記所定のサーバの挙動を分析することで前記取得ファイルが悪意のあるプログラムであるか否かを判定し、悪意のあるプログラムであると判定した場合には、前記取得レコードに含まれる識別情報を前記ファイル取得部により取得されたファイルを識別する識別情報に更新し、悪意のあるプログラムであると判定しなかった場合には、前記取得レコードを前記記憶部から削除する更新処理部と
を備えたことを特徴とする更新装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、更新方法、更新装置及び更新システムに関する。
【背景技術】
【０００２】
インターネットの普及に伴い、個人情報を管理するサーバやアプリケーションを配信するサーバに対するサイバー攻撃が急増している。サイバー攻撃では、マルウェアが用いられることが多い。
【０００３】
マルウェアを利用したサイバー攻撃では、例えば、既存のサーバに外部サーバからマルウェアをダウンロードさせ、ダウンロードさせたマルウェアを既存のサーバに実行させることで既存のサーバを乗っ取る。マルウェアのダウンロード元となるウェブサイトを「マルウェアダウンロードサイト」とも称する。マルウェアダウンロードサイトは、例えば、悪意の第三者に悪用された一般のウェブサイトや、悪意の第三者に予め用意されたウェブサイトなどである。そして、サイバー攻撃では、悪意の第三者は、乗っ取った既存のサーバを用いて、例えば、ＤＤｏＳ（Distributed  Denial  of  Services）攻撃を実行し、スパムを送信し、情報を窃盗する。
【０００４】
ここで、マルウェアダウンロードサイトのリストを生成し、生成したリストに登録されたマルウェアダウンロードサイトへの顧客のサーバによるアクセスをフィルタするフィルタリング装置がある。マルウェアダウンロードサイトのリストを「ブラックリスト」とも称する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】八木毅、谷本直人、浜田雅樹、伊藤光恭、「プロバイダによるWebサイトへのマルウェア配布防御方式」、信学技報、社団法人電子情報通信学会、IN2009-34（2009-7）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述したフィルタリング装置では、マルウェアが削除されたサイトがブラックリストに登録されたままになることがある。例えば、悪意の第三者に悪用された一般のウェブサイトの管理者は、マルウェアを発見すると駆除する。この場合、一度ブラックリストに登録された一般のウェブサイトは、駆除後にはマルウェアダウンロードサイトでないにもかかわらず、ブラックリストに登録されたままになることがある。
【０００７】
また、例えば、悪意の第三者がブラックリストを回避することを目的として、マルウェアダウンロードサイトを頻繁に変えることがある。この場合、マルウェアが配置されなくなったウェブサイトは、マルウェアダウンロードサイトではないにもかかわらず、ブラックリストに登録されたままになることがある。
【０００８】
開示の技術は、上述に鑑みてなされたものであって、マルウェアが削除されたサイトがブラックリストに登録されたままになることを防止可能である更新方法、更新装置及び更新システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
開示する更新方法では、一つの態様において、コンピュータが、ネットワークにおける位置を示す位置情報とファイルを識別する識別情報とを含むレコードを記憶する記憶部から、当該レコードを取得するレコード取得ステップを実行する。また、コンピュータが、前記レコード取得ステップより取得されたレコードに含まれる位置情報により示される位置にあるファイルを取得するファイル取得ステップを実行する。また、コンピュータが、前記ファイル取得ステップにより取得されたファイルである取得ファイルが前記レコード取得ステップにより取得されたレコードである取得レコードに含まれる識別情報により識別されるファイルと同一であるか否かを判定する判定ステップを実行する。また、コンピュータが、前記判定ステップにより同一でないと判定された場合に、前記取得レコードに含まれる位置情報により示される位置にあるファイルを取得して実行する旨の実行指示を所定のサーバに送信する送信ステップを実行する。また、コンピュータが、前記送信ステップにより送信された実行指示を実行した前記所定のサーバの挙動を分析することで前記取得ファイルが悪意のあるプログラムであるか否かを判定し、悪意のあるプログラムであると判定した場合には、前記取得レコードに含まれる識別情報を前記ファイル取得ステップにより取得されたファイルを識別する識別情報に更新し、悪意のあるプログラムであると判定しなかった場合には、前記取得レコードを前記記憶部から削除する更新処理ステップを実行する。
【発明の効果】
【００１０】
開示する更新装置の一つの態様によれば、マルウェアが削除されたサイトがブラックリストに登録されたままになることを防止可能であるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る更新システムの全体像を示す図である。
【図２】図２は、実施例１に係るフィルタリング装置の構成の一例を示す図である。
【図３】図３は、実施例１におけるブラックリストテーブルに記憶された情報の一例を示す図である。
【図４】図４は、実施例１における更新処理部による更新後のブラックリストテーブルに記憶された情報の一例を示す図である。
【図５】図５は、実施例１に係るフィルタリング装置による更新処理の流れの一例を示すフローチャートである。
【図６】図６は、実施例１における命令送信部による処理の流れの一例を示すフローチャートである。
【図７】図７は、アドレステーブルを有するフィルタリング装置の構成を示すブロック図である。
【図８】図８は、ファイルサーバからファイルを取得する場合について示す図である。
【図９】図９は、フィルタリング装置からファイルを取得する場合について示す図である。
【図１０】図１０は、フィルタリング装置からファイルを取得する旨の命令をアプリケーションサーバに送信する場合におけるフィルタリング装置の構成の一例を示すブロック図である。
【図１１】図１１は、開示の技術に係る更新プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。
【発明を実施するための形態】
【００１２】
以下に、開示する更新方法、更新装置及び更新システムの実施例について、図面に基づいて詳細に説明する。なお、本実施例により開示する発明が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［全体像］
図１は、実施例１に係る更新システムの全体像を示す図である。図１において、２００は、ファイルを記憶するファイルサーバである。３００は、悪意の第三者により用いられる端末である。４００は、アプリケーションによりユーザにサービスを提供するアプリケーションサーバである。５１１は、マルウェアダウンロードサイトのリストであるブラックリストを記憶するブラックリストテーブルである。５００は、アプリケーションサーバ４００からブラックリストテーブル５１１に登録されたマルウェアダウンロードサイトへのアクセスを遮断するフィルタリング装置である。６００は、端末３００とファイルサーバ２００とフィルタリング装置５００とが接続されたネットワークである。更新システム１００は、フィルタリング装置５００と、アプリケーションサーバ４００とを有する。図１に示す例では、説明の便宜上、ファイルサーバ２００と端末３００とを併せて記載した。
【００１４】
ファイルサーバ２００は、ネットワーク６００を介して端末３００及びフィルタリング装置５００と接続される。ファイルサーバ２００は、例えば、既存のサーバが該当する。ファイルサーバ２００は、ファイルとして、悪意の第三者により用いられる悪意のあるプログラムを記憶する。例えば、ファイルサーバ２００は、マルウェアを記憶する。ファイルサーバ２００は「マルウェアダウンロードサイト」とも称する。以下では、悪意のあるプログラムとしてマルウェアを用いて説明するが、本発明はこれに限定されるものではなく、任意のプログラムであって良い。
【００１５】
なお、ファイルサーバ２００は、マルウェアを記憶するが、ファイルサーバ２００自身がマルウェアに感染していても良く、感染していなくても良い。また、ファイルサーバ２００は、マルウェアではないデータを更に記憶しても良い。
【００１６】
また、ファイルサーバ２００は、アプリケーションサーバ４００やフィルタリング装置５００からファイルが要求されると、要求されたファイルを送信する。例えば、ファイルサーバ２００は、ＦＴＰ（File  Transfer  Protocol）プロトコルやＨＴＴＰ（Hyper  Text  Transfer  Protocol）プロトコルなどの転送プロトコルを用いて、ファイルを送信する。
【００１７】
例えば、ファイルサーバ２００が、「http://host#1/d-A/d-B/d-C/file-a」にあるファイルを要求された場合を用いて説明する。この場合、ホスト名として「host#1」が割り当てられたファイルサーバ２００は、パス「d-A/d-B/d-C」にあるファイル「file-a」を、要求元となるコンピュータに送信する。
【００１８】
端末３００は、ネットワーク６００を介してファイルサーバ２００及びフィルタリング装置５００と接続される。端末３００は、悪意の第三者により用いられる端末である。端末３００は、例えば、既知のコンピュータが該当する。
【００１９】
端末３００は、脆弱性実証コード（exploit  code）を既存のパソコンやサーバに送信することで、例えば、既存のパソコンやサーバにファイルサーバ２００から悪意のあるプログラムをダウンロードさせ、ダウンロードさせた悪意のあるプログラムを実行させる。そして、例えば、端末３００は、既存のパソコンやサーバにマルウェアをダウンロードさせて実行させることで、既存のパソコンやサーバにバックドアを生成し、既存のパソコンやサーバにスパムメールを送信させ、既存のパソコンやサーバに記憶された情報を窃盗する。
【００２０】
アプリケーションサーバ４００は、フィルタリング装置５００を介してネットワーク６００と接続される。アプリケーションサーバ４００は、アプリケーションを実行することでユーザにサービスを提供する。例えば、アプリケーションサーバ４００は、ウェブアプリケーションを実行することで、例えば、ブログや掲示板、ソーシャルネットワークサービスなどのサービスをユーザに提供する。
【００２１】
フィルタリング装置５００は、ネットワーク６００を介してファイルサーバ２００及び端末３００と接続され、アプリケーションサーバ４００と接続される。フィルタリング装置５００は、アプリケーションサーバ４００とネットワーク６００に接続された装置とのデータの送受信を中継する。フィルタリング装置５００は、例えば、ホームネットワークとインターネットとの境界に配置されるホームゲートウェイ装置、データセンタ及び企業ネットワークとインターネットとの境界に配置されるゲートウェイ装置やプロキシ装置、セキュリティアプライアンス装置やファイアウォール装置、スイッチやルータなどの中継装置が該当する。
【００２２】
フィルタリング装置５００は、ブラックリストテーブル５１１を有する。フィルタリング装置５００は、ブラックリストテーブル５１１に登録されたマルウェアダウンロードサイトへのアプリケーションサーバ４００からのアクセスを遮断する遮断処理を実行する。また、フィルタリング装置５００は、後述するように、ブラックリストに登録済みの情報を更新する更新処理を実行する。フィルタリング装置５００は「更新装置」とも称する。
【００２３】
ただし、図１に示す例では、フィルタリング装置５００が、アプリケーションサーバ４００とネットワーク６００に接続された装置とのデータの送受信を中継する中継装置であり、遮断処理と更新処理とを実行する場合を例に示したが、本発明はこれに限定されるものではない。例えば、フィルタリング装置５００は、中継装置とは別の装置であっても良い。この場合、フィルタリング装置５００は、中継装置による中継処理を監視し、ブラックリストに登録されたマルウェアダウンロードサイトへのアクセスを遮断する。
【００２４】
また、以下では、フィルタリング装置５００が、ブラックリストを用いて遮断処理を実行し、ブラックリストに登録済みの情報を更新する更新処理を実行する場合を用いて説明するが、本発明はこれに限定されるものではない。例えば、ブラックリストを用いて遮断処理を実行する遮断処理装置と、遮断処理を実行する装置により用いられるブラックリストに対して更新処理を実行する更新処理装置とが別の装置であっても良い。また、遮断処理装置と更新処理装置とが別の装置である場合には、遮断処理装置のブラックリストを監視し、ブラックリストに新たなレコードが格納されると新たなレコードを更新処理装置に通知する通知装置を更に用いても良い。
【００２５】
ここで、マルウェアダウンロードサイトを特定し、特定したマルウェアダウンロードサイトのレコードをブラックリストに登録する登録処理については、任意の手法を用いて良く、詳細な説明を省略する。例えば、マルウェアダウンロードサイトを示す情報を利用者が手動にてブラックリストに登録しても良く、上述した非特許文献に記載された手法を用いて登録しても良く、任意の手法を用いて良い。すなわち、以下では、ブラックリストに新たにレコードを登録する処理についてではなく、既に登録されたレコード各々を管理して更新する処理について、詳細に説明する。すなわち、例えば、更新処理として、マルウェアダウンロードサイトでなくなっていたレコードを削除し、レコードの情報に誤りが含まれている場合には修正する場合について説明する。
【００２６】
ネットワーク６００は、ファイルサーバ２００、端末３００及びフィルタリング装置５００を相互に接続する。ネットワーク６００は、例えば、インターネットが該当する。ただし、本発明はこれに限定されるものではなく、ネットワーク６００は、イントラネットでも良く、任意のネットワークであって良い。
【００２７】
図１に示す例では、アプリケーションサーバ４００とフィルタリング装置５００とが１対１で接続される場合を示したが、本発明はこれに限定されるものではない。例えば、アプリケーションサーバ４００とフィルタリング装置５００とは、ネットワーク６００とは別のネットワークと接続されても良い。この場合、アプリケーションサーバ４００とフィルタリング装置５００とは、ネットワーク６００とは別のネットワークを介して、アプリケーションサーバ４００とフィルタリング装置５００とは別の装置と接続される。
【００２８】
また、図１に示す例では、端末３００とファイルサーバ２００とアプリケーションサーバ４００とフィルタリング装置５００とが１つずつある場合を例に示したが、これに限定されるものではない。例えば、端末３００が複数あっても良く、ファイルサーバ２００が複数あっても良く、アプリケーションサーバ４００が複数あっても良く、フィルタリング装置５００が複数あっても良い。
【００２９】
［フィルタリング装置の構成］
図２は、実施例１に係るフィルタリング装置の構成の一例を示す図である。図２では、説明の便宜上、ファイルサーバ２００とアプリケーションサーバ４００とを併せて記載した。
【００３０】
図２に示す例では、フィルタリング装置５００は、記憶部５１０と制御部５２０とを有する。図２には記載の便宜上示していないが、フィルタリング装置５００は、各種の情報を受信する受信部と、各種の情報を送信する送信部とを有する。例えば、フィルタリング装置５００は、各種の入出力ポートを有する。
【００３１】
記憶部５１０は、制御部５２０と接続される。記憶部５１０は、制御部５２０による各種処理に用いるデータを記憶する。記憶部５１０は、例えば、ＲＡＭ（Random  Access  Memory）やフラッシュメモリ（Flash  Memory）などの半導体メモリ素子、又は、ハードディスクや光ディスクなどの記憶装置が該当する。図２に示す例では、記憶部５１０は、ブラックリストテーブル５１１を有する。
【００３２】
ブラックリストテーブル５１１は、悪意のあるプログラムのダウンロード元となるネットワークの位置を示す位置情報のリストを記憶する。言い換えると、ブラックリストテーブル５１１は、マルウェアダウンロードサイトを示すレコードのリストを記憶する。
【００３３】
ここで、ブラックリストテーブル５１１に記憶されたレコードには、位置情報に加えて、悪意のあるプログラムを外部サーバからダウンロードさせる命令であって実行するプログラムを指定して実行させる指定命令と、悪意のあるプログラムを識別するファイル識別情報と、悪意のあるプログラムを実行することで発生する処理内容の種類とが含まれる。ファイル識別情報は「識別情報」とも称する。
【００３４】
図３は、実施例１におけるブラックリストテーブルに記憶された情報の一例を示す図である。図３に示すように、ブラックリストテーブル５１１は、位置情報と指定命令とファイル識別情報とファイル種類とを含むレコードを記憶する。図３に示す例では、ブラックリストテーブル５１１は、位置情報「http://host#1/d‐A/d‐B/d‐C/file‐a」と、指定命令「http://server#3/set.php?dir=」と、ファイル識別情報「hash#101」と、ファイル種類「バックドア」とを含むレコードを記憶する。すなわち、ブラックリストテーブル５１１は、「http://host#1/d‐A/d‐B/d‐C/file‐a」により示される位置に、「hash#101」により識別される悪意のあるプログラムがあることを記憶する。また、ブラックリストテーブル５１１は、「hash#101」により識別される悪意のあるプログラムを実行することでバックドアが生成されることを記憶する。また、ブラックリストテーブル５１１は、同様に、他のレコードについても情報を記憶する。
【００３５】
図３の指定命令について、指定命令「http://server#3/set.php?dir=」を用いて補足する。指定命令は、実行するプログラムを指定する。指定命令「http://server#3/set.php?dir=」の場合には、「set.php?」により実行するプログラムが指定される。また、図３の指定命令では、「=」以下に位置情報が入力されることで、入力された位置情報からファイルを取得する命令であって、「set.php?」により指定されたプログラムにて実行する旨の指示である実行指示となる。
【００３６】
ここで、ブラックリストテーブル５１１に記憶されたレコードを登録する処理について簡単に説明する。上述したように、マルウェアダウンロードサイトのネットワークにおける位置を示す位置情報は、任意の手法でブラックリストに登録される。この際、例えば、ブラックリストテーブル５１１には、位置情報と、指定命令と、ファイル識別情報と、ファイル種類とを含むレコードが登録される。
【００３７】
位置情報と指定命令とファイル識別情報とファイル種類とを含むレコードを登録処理の一例について、更に説明する。例えば、フィルタリング装置５００は、上述した非特許文献の手法を実行することで、指定命令ごとに位置情報を収集する。そして、フィルタリング装置５００は、指定命令や位置情報を収集するごとに、収集した指定命令と位置情報とを含むレコードをブラックリストテーブル５１１に登録する。その際、フィルタリング装置５００は、登録した位置情報により示される位置にあるマルウェアのハッシュ値を算出してファイル識別情報として併せて登録する。また、フィルタリング装置５００は、登録した位置情報により示される位置にあるマルウェアを実行することで発生する処理内容を解析し、解析結果をファイル種類として併せて登録する。ただし、フィルタリング装置５００がレコードを収集して登録する処理はこれに限定されるものではなく、任意の手法を用いて良い。なお、以下では、ファイル識別情報としてハッシュ値を用いる場合を例に説明するが、本発明はこれに限定されるものではない。例えば、ファイル識別情報としてファイル名を用いても良く、任意の情報を用いて良い。
【００３８】
以下では、ブラックリストテーブル５１１が、位置情報に加えて、指定命令とファイル識別情報とファイル種類とを含むレコードを記憶する場合を用いて説明するが、本発明はこれに限定されるものではない。例えば、ブラックリストテーブル５１１は、位置情報とファイル識別情報とを含むレコードを記憶し、指定命令とファイル種類を記憶してなくても良い。また、同様に、ブラックリストテーブル５１１は、位置情報と指定命令とファイル識別情報とファイル種類とに加えて、別の情報を更に記憶しても良い。
【００３９】
制御部５２０は、記憶部５１０と接続される。制御部５２０は、各種の処理手順などを規定したプログラムを記憶する内部メモリを有し、種々の処理を制御する。制御部５２０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）などの電子回路が該当する。
【００４０】
ファイル取得部５２１は、ブラックリストテーブル５１１に記憶されたレコードを取得する。以下では、ファイル取得部５２１が、位置情報「http://host#1/d‐A/d‐B/d‐C/file‐a」と、指定命令「http://server#3/set.php?dir=」と、ファイル識別情報「hash#101」と、ファイル種類「バックドア」とを含むレコードを取得した場合を用いて説明する。ファイル取得部５２１は、「レコード取得部」「ファイル取得部」とも称する。また、ファイル取得部５２１により取得されたレコードを「取得レコード」とも称する。
【００４１】
ファイル取得部５２１は、取得したレコードに含まれる位置情報により示される位置にあるファイルを取得する。例えば、ファイル取得部５２１は、位置情報「http://host#1/d‐A/d‐B/d‐C/file‐a」にあるファイルを取得する。例えば、ファイル取得部５２１は、ファイルサーバ２００に対して、位置情報「http://host#1/d‐A/d‐B/d‐C/file‐a」にあるファイルを取得する旨の要求を送信することで、ファイルサーバ２００からファイル「file‐a」を取得する。ファイル取得部５２１は、例えば、ＦＴＰやwgetやcurlなどの既存の手法を用いてファイルを取得する。
【００４２】
ここで、ファイル取得部５２１は、取得レコードに含まれる位置情報により示される位置にファイルが存在せず、ファイルの取得に失敗した場合には、取得レコードをブラックリストテーブル５１１から削除して処理を終了する。取得レコードに含まれる位置情報により示される位置にファイルが存在しないということは、悪意のあるプログラムが既に削除されたことを示す。このため、ファイル取得部５２１は、取得したレコードをブラックリストテーブル５１１から削除することで、マルウェアが削除されたサイトがブラックリストに登録されたままになることを防止する。
【００４３】
ファイル内容判定部５２２は、ファイル取得部５２１により取得されたファイルである取得ファイルが、取得レコードに含まれる識別情報により識別されるファイルと同一であるか否かを判定する。例えば、ファイル内容判定部５２２は、ファイル取得部５２１により取得されたファイルのハッシュ値を算出し、取得レコードに含まれるファイル識別情報と同一であるか否かを判定する。例えば、ファイル内容判定部５２２は、ファイル取得部５２１により取得されたファイルから算出したハッシュ値が「hash#105」である場合には、取得レコードに含まれるファイル識別情報「hash#101」と同一とはならず、同一ではないと判定する。
【００４４】
ここで、ファイル内容判定部５２２は、同一であると判定した場合には、そのまま処理を終了する。取得レコードに含まれる位置情報により示される位置にあるファイルに変化がないということは、悪意のあるプログラムが変わらずあることを示す。このため、ファイル内容判定部５２２は、取得レコードについて何ら変更を加えることなく、処理を終了する。
【００４５】
命令送信部５２３は、ファイル内容判定部５２２により同一でないと判定された場合に、取得レコードに含まれる位置情報により示される位置にあるファイルを取得して実行する旨の実行指示を所定のサーバに送信する。具体的には、命令送信部５２３は、取得レコードに含まれる位置情報により示される位置にあるファイルを取得して指定されたプログラムにより実行する旨の指示である実行指示を、アプリケーションサーバ４００に送信する。命令送信部５２３は、「送信部」とも称する。ここで、命令送信部５２３が実行指示を送信する送信先となるアプリケーションサーバ４００は、アプリケーションによりユーザにサービスを提供する一般のサーバであっても良く、フィルタリング装置５００による更新処理のみに用いられる囮用のサーバであっても良く、任意のアプリケーションサーバ４００であって良い。
【００４６】
例えば、命令送信部５２３は、実行指示「http://server#3/set.php?dir=http://host#1/d‐A/d‐B/d‐C/file‐a」をアプリケーションサーバ４００に送信する。すなわち、命令送信部５２３は、「http://host#1/d‐A/d‐B/d‐C/file‐a」からファイルを取得して「set.php?」により指定されるプログラムにて実行する旨の実行指示を送信する。
【００４７】
また、命令送信部５２３は、送信した実行指示をアプリケーションサーバ４００が実行したか否かを監視する。例えば、命令送信部５２３は、アプリケーションサーバ４００が送受信するトラヒックを監視し、取得レコードに含まれる位置情報からファイルを取得したか否かを監視する。また、例えば、命令送信部５２３は、アプリケーションサーバ４００のＯＳ（オペレーティングシステム、Operating  System）の挙動を監視することで、取得したファイルが指定されたプログラムで実行されたか否かを監視する。
【００４８】
ここで、命令送信部５２３は、実行しなかったとの監視結果が得られた場合に、取得レコードとは別のレコードに含まれる指定命令により指定されるプログラムでファイルを実行させる実行指示をアプリケーションサーバ４００に送信する。命令送信部５２３は、「第二の送信部」とも称する。
【００４９】
例えば、命令送信部５２３は、取得レコードとは別のレコードの指定命令をブラックリストテーブル５１１から取得する。例えば、命令送信部５２３は、ブラックリストテーブル５１１の上位から順に指定命令を取得したり、予め設定された指定命令を取得したりする。図３に示す例では、命令送信部５２３は、取得レコードの指定命令とは別の指定命令「http://server#3/board/login.php?id=」をブラックリストテーブル５１１から取得し、新たに取得した指定命令を用いて実行指示をアプリケーションサーバ４００に送信する。より詳細な一例を用いて説明すると、実行指示「http://server#3/board/login.php?id=http://host#1/d‐A/d‐B/d‐C/file‐a」をアプリケーションサーバ４００に送信する。すなわち、命令送信部５２３は、「http://host#1/d‐A/d‐B/d‐C/file‐a」からファイルを取得して「login.php?」により指定されるプログラムにて実行する旨の実行指示を送信する。そして、命令送信部５２３は、アプリケーションサーバ４００が実行したと判定するまで上述した一連の処理を繰り返し、あるいは、所定回数実行した後にエラーとして処理を終了する。
【００５０】
命令送信部５２３によりファイルを実行するプログラムを変更した実行指示を送信する点について補足する。悪意のあるプログラムは、特定のプログラムでのみ実行可能である場合がある。ここで、位置情報にあるファイルは悪意のあるプログラムであるが、レコードに含まれる指定命令により指定されるプログラムが、位置情報にあるファイルが悪意のあるプログラムに対応しない場合が考えられる。この場合、本来、位置情報にあるファイルは悪意のあるプログラムであるにもかかわらず、実行指示を受信したアプリケーションサーバ４００では悪意のあるプログラムが実行されず、このままでは悪意のあるプログラムではないと判定されることになる。このことを踏まえ、命令送信部５２３は、実行指示の送信先となったアプリケーションサーバ４００が取得したファイルを実行しない場合には、実行指示により指定されるプログラムが誤っている可能性を踏まえ、実行指示により指定されるプログラムを変更した実行指示を送信する。この結果、フィルタリング装置５００によれば、レコードに含まれる指定情報により指定されるプログラムが誤っていたとしても、位置情報にあるファイルが悪意のあるプログラムかを確実に判定可能となる。
【００５１】
上述した説明では、命令送信部５２３は、ブラックリストテーブル５１１にある取得レコードとは別のレコードの指定命令を用いる場合について説明したが、本発明はこれに限定されるものではない。例えば、命令送信部５２３は、ブラックリストテーブル５１１に登録された別のレコードの指定命令を用いることなく、指定するプログラムを変更した実行指示を自ら生成して送信しても良く、任意の手法を用いて良い。
【００５２】
更新処理部５２４は、命令送信部５２３により送信された実行指示を実行したアプリケーションサーバ４００の挙動を分析することで、取得ファイルが悪意のあるプログラムであるか否かを判定する。
【００５３】
例えば、更新処理部５２４は、既知の任意の手法を用いて、アプリケーションサーバ４００の挙動を分析する。より詳細な一例をあげて説明すると、更新処理部５２４は、アプリケーションサーバ４００が送受信するトラヒックを監視し、アプリケーションサーバ４００がファイル実行後にバックドアを生成するか否かを判定する。また、更新処理部５２４は、アプリケーションサーバ４００のＯＳの挙動を監視することで如何なるコマンドが実行されたかを識別し、例えば、多数のメッセージが送信されたか否かを判定し、外部のサイトと接続したか否かを判定する。
【００５４】
ここで、例えば、更新処理部５２４は、バックドアを生成すると判定した場合には悪意のあるプログラムであると判定し、バックドアを生成すると判定しなかった場合には悪意のあるプログラムでないと判定する。
【００５５】
更新処理部５２４は、悪意のあるプログラムであると判定した場合には、取得レコードに含まれる識別情報をファイル取得部５２１により取得されたファイルを識別する識別情報に更新する。図４は、実施例１における更新処理部による更新後のブラックリストテーブルに記憶された情報の一例を示す図である。例えば、更新処理部５２４は、取得レコードに含まれるファイル識別情報「hash#101」を、図４に示すように、ファイル取得部５２１により取得されたファイルから算出されたハッシュ値「hash#105」に更新する。また、この際、更新処理部５２４は、取得レコードに含まれるファイル種類が分析結果と異なる場合には、ファイル種類を更新しても良い。例えば、図４に示す例では、取得レコードに含まれるファイル種類を「外部接続」に更新する場合を例に示した。
【００５６】
また、更新処理部５２４は、悪意のあるプログラムであると判定しなかった場合には、取得レコードをブラックリストテーブル５１１から削除する。例えば、更新処理部５２４は、位置情報「http://host#1/d‐A/d‐B/d‐C/file‐a」と、指定命令「http://server#3/set.php?dir=」と、ファイル識別情報「hash#101」と、ファイル種類「バックドア」とを含むレコードをブラックリストテーブル５１１から削除する。
【００５７】
このように、更新処理部５２４は、ファイルの内容が変化していたとしても、悪意のあるプログラムであると判定した場合には、取得レコードの内容を最新の内容に更新する。一方、更新処理部５２４は、ファイルの内容が変化しており、かつ、悪意のあるプログラムであると判定しなかった場合には、取得レコードを削除する。この結果、更新処理部５２４は、取得レコードをブラックリストテーブル５１１から削除することで、マルウェアが削除されたサイトがブラックリストに登録されたままになることを防止する。
【００５８】
［フィルタリング装置による更新処理］
図５を用いて、実施例１に係るフィルタリング装置５００による更新処理の流れの一例を示す。図５は、実施例１に係るフィルタリング装置による更新処理の流れの一例を示すフローチャートである。以下では、ファイル取得部５２１が、位置情報「http://host#1/d‐A/d‐B/d‐C/file‐a」と、指定命令「http://server#3/set.php?dir=」と、ファイル識別情報「hash#101」と、ファイル種類「バックドア」とを含むレコードを取得する場合を用いて説明する。
【００５９】
図５に示すように、ファイル取得部５２１は、ブラックリストテーブル５１１に記憶されたレコードを取得すると（ステップＳ１０１肯定）、取得したレコードに含まれる位置情報により示される位置にあるファイルを取得する（ステップＳ１０２）。例えば、ファイル取得部５２１は、ファイルサーバ２００に対して、位置情報「http://host#1/d‐A/d‐B/d‐C/file‐a」にあるファイルを取得する旨の要求を送信することで、ファイル「file‐a」を取得する。
【００６０】
ここで、ファイル取得部５２１は、ファイルの取得に失敗した場合には（ステップＳ１０３肯定）、取得レコードをブラックリストテーブル５１１から削除して処理を終了する（ステップＳ１０４）。すなわち、取得レコードに含まれる位置情報により示される位置にファイルが存在しないということは、悪意のあるプログラムが削除されたことを示す。このため、ファイル取得部５２１は、取得したレコードをブラックリストテーブル５１１から削除することで、マルウェアが削除されたサイトがブラックリストに登録されたままになることを防止する。
【００６１】
一方、ファイル取得部５２１がファイルの取得に成功した場合には（ステップＳ１０３否定）、ファイル内容判定部５２２は、ファイル取得部５２１により取得されたファイルである取得ファイルが、取得レコードに含まれる識別情報により識別されるファイルと同一であるか否かを判定する（ステップＳ１０５）。例えば、ファイル内容判定部５２２は、ファイル取得部５２１により取得されたファイルのハッシュ値を算出し、取得レコードに含まれるファイル識別情報と同一であるか否かを判定する。
【００６２】
ここで、ファイル内容判定部５２２は、同一であると判定した場合には（ステップＳ１０６肯定）、ブラックリストテーブル５１１を更新することなく（ステップＳ１０７）、そのまま処理を終了する。
【００６３】
一方、ファイル内容判定部５２２が同一でないと判定した場合には（ステップＳ１０６否定）、命令送信部５２３は、取得レコードに含まれる位置情報により示される位置にあるファイルを取得して実行する旨の実行指示を所定のサーバに送信する（ステップＳ１０８）。例えば、命令送信部５２３は、実行指示「http://server#3/set.php?dir=http://host#1/d‐A/d‐B/d‐C/file‐a」をアプリケーションサーバ４００に送信する。すなわち、命令送信部５２３は、「http://host#1/d‐A/d‐B/d‐C/file‐a」からファイルを取得して「set.php?」により指定されるプログラムにて実行する旨の実行指示を送信する。なお、命令送信部５２３による実行指示送信処理の詳細については、図６を用いて改めて説明する。
【００６４】
そして、更新処理部５２４は、命令送信部５２３により送信された実行指示を実行したアプリケーションサーバ４００の挙動を分析し（ステップＳ１０９）、取得ファイルが悪意のあるプログラムであるか否かを判定する（ステップＳ１１０）。例えば、更新処理部５２４は、アプリケーションサーバ４００が送受信するトラヒックを監視し、アプリケーションサーバ４００がファイル実行後にバックドアを生成するか否かを判定することで、悪意のあるプログラムであるか否かを判定する。
【００６５】
ここで、更新処理部５２４は、悪意のあるプログラムであると判定した場合には（ステップＳ１１０肯定）、取得レコードに含まれる識別情報をファイル取得部５２１により取得されたファイルを識別する識別情報に更新する（ステップＳ１１１）。例えば、ファイル取得部５２１により取得されたファイルから算出されたハッシュ値「hash#105」である場合には、更新処理部５２４は、取得レコードのファイル識別情報を「hash#105」に更新する。すなわち、更新処理部５２４は、悪意のあるプログラムであると判定した場合には、取得レコードの内容を最新の内容に更新する。
【００６６】
一方、更新処理部５２４は、悪意のあるプログラムであると判定しなかった場合には（ステップＳ１１０否定）、取得レコードをブラックリストテーブル５１１から削除する（ステップＳ１１２）。すなわち、更新処理部５２４は、取得レコードをブラックリストテーブル５１１から削除することで、マルウェアが削除されたサイトがブラックリストに登録されたままになることを防止する。
【００６７】
［命令送信部による処理］
図６を用いて、実施例１における命令送信部５２３による処理の流れの一例を示す。図６は、実施例１における命令送信部による処理の流れの一例を示すフローチャートである。図６を用いて説明する一連の処理は、図５におけるステップＳ１０８に対応する。
【００６８】
図６に示すように、命令送信部５２３は、取得レコードに含まれる位置情報により示される位置にあるファイルを取得して実行する旨の実行指示をアプリケーションサーバ４００に送信すると（ステップＳ２０１肯定）、送信した実行指示をアプリケーションサーバ４００が実行したか否かを監視する。例えば、命令送信部５２３は、アプリケーションサーバ４００のＯＳの挙動を監視することで、取得したファイルが実行されたか否かを監視する（ステップＳ２０２）。
【００６９】
ここで、命令送信部５２３は、実行したとの監視結果が得られた場合には、そのまま処理を終了し（ステップＳ２０３肯定）、フィルタリング装置５００は、図５におけるステップＳ１０９を実行する。
【００７０】
一方、命令送信部５２３は、実行したとの監視結果が得られなかった場合には、（ステップＳ２０３否定）、取得レコードとは別のレコードに含まれる指定命令により指定されるプログラムにより実行させる実行指示をアプリケーションサーバ４００に送信する（ステップＳ２０４）。つまり、命令送信部５２３は、ファイルを実行するプログラムが異なる別の実行指示を送信する。例えば、命令送信部５２３は、取得レコードに含まれる指定命令とは別の指定命令「http://server#3/board/login.php?id=」をブラックリストテーブル５１１から取得し、新たに取得した指定命令を用いて実行指示をアプリケーションサーバ４００に送信する。そして、命令送信部５２３は、ステップＳ２０２に戻り、アプリケーションサーバ４００が実行したと判定するまで、上述した一連の処理を繰り返す。
【００７１】
［実施例１の効果］
上述したように、実施例１によれば、フィルタリング装置５００は、位置情報とファイル識別情報とを含むレコードを記憶するブラックリストテーブル５１１を有する。また、フィルタリング装置５００は、ブラックリストテーブル５１１に記憶されたレコードを取得し、取得レコードに含まれる位置情報により示される位置にあるファイルを取得する。そして、フィルタリング装置５００は、取得レコードに含まれるファイル識別情報により識別されるファイルと取得ファイルが同一であるか否かを判定する。そして、フィルタリング装置５００は、同一でないと判定した場合に、取得レコードに含まれる位置情報により示される位置にあるファイルを取得して実行する旨の実行指示をアプリケーションサーバ４００に送信する。そして、フィルタリング装置５００は、送信した実行指示を実行したアプリケーションサーバ４００の挙動を分析することで取得ファイルが悪意のあるプログラムであるか否かを判定し、悪意のあるプログラムであると判定した場合には、取得レコードに含まれる識別情報をファイル取得部５２１により取得されたファイルを識別する識別情報に更新し、悪意のあるプログラムであると判定しなかった場合には、取得レコードを記憶部５１０から削除する。この結果、フィルタリング装置５００によれば、ブラックリストテーブル５１１を適切に更新でき、マルウェアが削除されたサイトがブラックリストに登録されたままになることを防止可能である。
【００７２】
例えば、フィルタリング装置５００によれば、ブラックリストを自動的に更新可能である。すなわち、位置情報にあるファイルが同一ではない場合に、悪意のあるプログラムであるかを手動にて解析する手法では、解析を実行する者に多大な負荷がかかり、かつ、解析に時間がかかる結果ブラックリストが迅速に更新されないと考えられる。これに対して、フィルタリング装置５００によれば、ブラックリストテーブル５１１を自動的に更新でき、更新に要する時間を短縮可能であり、解析を実行する者にかかっていた負荷を減少させることが可能である。また、フィルタリング装置５００によれば、ブラックリストテーブル５１１の更新にかかる時間を短縮可能な結果、マルウェアダウンロードサイトが頻繁に変化する状況下であっても、ブラックリストを用いてのフィルタリングを適切に実行可能である。
【００７３】
すなわち、フィルタリング装置５００によれば、マルウェアが配置されているサイトを定期的に監視してファイルの内容や配置位置が変更されていないかを定期的に確認することで、マルウェアダウンロードサイトが動的に変化する事象やマルウェア自身が変化する事象においても、正確にブラックリストテーブル５１１を更新可能である。
【００７４】
また、実施例１によれば、フィルタリング装置５００は、ファイルを実行するプログラムを指定してファイルを実行させる指定命令を含むレコードを記憶する。そして、フィルタリング装置５００は、取得したファイルが同一でないと判定した場合に、取得レコードに含まれる指定命令により指定されるプログラムにより実行させる実行指示をアプリケーションサーバ４００に送信する。そして、フィルタリング装置５００は、送信した実行指示をアプリケーションサーバ４００が実行したか否かを監視し、実行しなかったとの監視結果が得られた場合に、取得レコードとは別のレコードに含まれる指定命令により指定されるプログラムにより実行させる実行指示をアプリケーションサーバ４００に送信する。この結果、フィルタリング装置５００によれば、レコードに含まれる指定情報により指定されるプログラムが誤っていたとしても、位置情報にあるファイルが悪意のあるプログラムかを確実に判定可能となる。
【実施例２】
【００７５】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、その他の実施例にて実施されても良い。そこで、以下では、その他の実施例を示す。
【００７６】
［処理フラグ］
例えば、ファイル取得部５２１が、ブラックリストテーブル５１１から一定周期ごとにレコードを再度取得するようにしても良い。例えば、ブラックリストテーブル５１１は、レコードごとに、ファイル取得部５２１により取得されたか否かを示す「処理フラグ」を記憶する。例えば、ブラックリストテーブル５１１の処理フラグは、「０」が所得されていないことを示し、「１」が取得されたことを示す。ここで、例えば、ファイル取得部５２１は処理フラグが「０」のレコードを取得し、取得したレコードの処理フラグを「０」から「１」に更新する。また、ファイル取得部５２１は、例えば、一定時間経過後に、すべての処理フラグをリセットして「０」に更新する。
【００７７】
［アドレス記憶部］
また、例えば、フィルタリング装置５００は、ファイルを取得する際に用いるネットワークにおける自装置の位置を示す位置情報を、適宜変更しても良い。例えば、図７に示すように、フィルタリング装置５００の記憶部５１０は、ファイル取得部５２１がファイルを取得する際に用いたネットワークにおける自装置の位置を示す位置情報を記憶するアドレステーブル５１２を更に有する。図７は、アドレステーブルを有するフィルタリング装置の構成を示すブロック図である。アドレステーブル５１２は、位置情報として、例えば、使用済みのＩＰアドレスを記憶する。アドレステーブルに記憶された使用済みのＩＰアドレス（Internet  Protocol  Address）は、例えば、一定期間経過後に削除し、再度使用可能な状態にする。ファイル取得部５２１は、アドレステーブルに記憶されていないＩＰアドレスを用いて、ファイルサーバ２００からファイルを取得する。
【００７８】
ファイルサーバ２００は、アクセスログを有し、一度アクセスしたアクセス先から短期間に再度同じファイルに対するアクセスがあった場合に、予め設定された処理を実行する場合がある。例えば、ファイルサーバ２００は、一定期間同じＩＰアドレスからのアクセスを拒絶することがある。また、例えば、攻撃者によって、ブラックリストの更新処理を回避することを目的として、同じＩＰアドレスからのアクセスがあった場合にその旨のメッセージを端末３００に送信することも考えられる。このことを踏まえ、フィルタリング装置５００は、ファイルを取得する際に自装置を示すＩＰアドレスを変更することで、ファイルサーバ２００により予期しない事態に陥ることを防止することが可能である。
【００７９】
［アプリケーションサーバの状態］
また、例えば、フィルタリング装置５００の制御部５２０は、実行指示を実行したアプリケーションサーバ４００の状態を、実行指示の実行前の状態に変更しても良い。例えば、フィルタリング装置５００は、アプリケーションサーバ４００を仮想装置上に構築し、仮想装置のイメージファイルを保存しておく、そして、フィルタリング装置５００は、実行指示を実行させた後に、保存しておいたイメージファイルで現在の環境を上書きすることで、実行指示の実行前の状態に変更しても良い。ただし、本発明はこれに限定されるものではなく、任意の手法を用いて実行指示の実行前の状態に変更して良い。この結果、アプリケーションサーバ４００が実行指示を実行することでマルウェアに感染したとしても、実行指示の実行前の状態に戻すことが可能である。
【００８０】
［ファイル取得部によるファイル取得］
また、例えば、ファイル取得部５２１は、一度ファイルの取得に失敗したとしても、ネットワーク環境などに起因した失敗である可能性があることを踏まえ、複数回ファイルの取得を試行しても良い。この場合、例えば、試行するファイル取得回数は予めオペレータが設定しておき、ファイル取得部５２１は、ファイルの取得に失敗した場合には、予め設定されたファイル取得回数になるまで処理を繰り返す。
【００８１】
［実行指示］
また、例えば、上述した実施例では、命令送信部５２３が、位置情報により示される位置にあるファイルを実行するプログラムを指定する場合を用いて説明したが、本発明はこれに限定されるものではない。例えば、命令送信部５２３は、ファイルを実行するプログラムを指定することなく、位置情報により示される位置にあるファイルを実行する旨の実行指示を送信しても良い。この場合、ブラックリストテーブル５１１は、指定命令を記憶してなくても良い。
【００８２】
［アプリケーションサーバによるファイル取得］
また、例えば、上述した実施例では、アプリケーションサーバ４００が、取得レコードに含まれる位置情報により示されるネットワークの位置からファイルを取得する場合を用いて説明した。つまり、図８に示すように、アプリケーションサーバ４００が、ファイルサーバ２００からファイルを取得する場合を用いて説明した。言い換えると、ファイルサーバ２００がファイルをアプリケーションサーバ４００に送信する場合を用いて説明した。図８は、ファイルサーバからファイルを取得する場合について示す図である。
【００８３】
図８を用いてより詳細に説明する。図８の（１）に示すように、フィルタリング装置５００は、レコードに含まれる位置情報により示される位置にあるファイルを取得する要求をファイルサーバ２００に送信し、（２）に示すように、ファイルをファイルサーバ２００から取得する。そして、図８の（３）に示すように、フィルタリング装置５００は、例えば、取得したファイルのハッシュ値を算出して同一であるかを確認することで、ファイルが同一であるかを判定する。そして、フィルタリング装置５００は、同一でないと判定した場合に、図８の（４）に示すように、レコードに含まれる位置情報により示される位置にあるファイルを取得することをアプリケーションサーバ４００に命令する。そして、図８の（５）に示すように、アプリケーションサーバ４００は、ファイルを取得する要求をファイルサーバ２００に送信し、図８の（６）に示すように、ファイルサーバ２００からファイルを取得する。その後、フィルタリング装置５００は、アプリケーションサーバ４００の挙動を監視することで悪意のあるプログラムであるか否かを判定する。
【００８４】
ただし、本発明はこれに限定されるものではない。例えば、図９に示すように、アプリケーションサーバ４００は、フィルタリング装置５００からファイルを取得しても良い。言い換えると、フィルタリング装置５００が、アプリケーションサーバ４００にファイルを送信しても良い。図９は、フィルタリング装置からファイルを取得する場合について示す図である。
【００８５】
図９を用いてより詳細に説明する。図９の（１）〜（４）については図８の（１）〜（４）と同一であり、説明を省略する。図９の（５）に示すように、アプリケーションサーバ４００によって、ファイルを取得する要求がファイルサーバ２００に向けて送信されると、図９の（６）に示すように、フィルタリング装置５００は、ファイルを取得する要求をアプリケーションサーバ４００に送信することなく、ファイルをアプリケーションサーバ４００に返信する。具体的には、フィルタリング装置５００は、アプリケーションサーバ４００により送信された要求を受信した場合におけるファイルサーバ２００の応答を擬似的に生成し、ファイル取得部５２１にて取得したファイルと併せてアプリケーションサーバ４００に返信する。
【００８６】
すなわち、フィルタリング装置５００は、ファイルサーバ２００とアプリケーションサーバ４００の中継機能を有する場合に、アプリケーションサーバ４００によってファイル取得要求が送信されると、ファイル取得要求を受信するはずのファイルサーバ２００が生成すると予想される応答を生成し、ファイルサーバ２００から取得したファイルとともにアプリケーションサーバ４００に送信しても良い。
【００８７】
このように、アプリケーションサーバ４００がフィルタリング装置５００からファイルを取得することで、アプリケーションサーバ４００が実際にファイルサーバ２００にアクセスすることなく、アプリケーションサーバ４００とフィルタリング装置５００との間にてローカルに処理することが可能である。
【００８８】
［ファイル取得命令］
また、図９に示す例では、フィルタリング装置５００が中継機能を有し、アプリケーションサーバ４００がファイルサーバ２００に向けてファイルを取得する要求を送信する場合について説明した。ただし、本発明はこれに限定されるものではない。例えば、フィルタリング装置５００では、ファイル取得部５２１が既にファイルを取得しており、フィルタリング装置５００からファイルを取得する旨の命令をアプリケーションサーバ４００に送信しても良い。
【００８９】
図１０は、フィルタリング装置からファイルを取得する旨の命令をアプリケーションサーバに送信する場合におけるフィルタリング装置の構成の一例を示すブロック図である。図１０に示すように、フィルタリング装置５００は、ファイルテーブル５１２と、返信部５２５とを更に備える。
【００９０】
ファイルテーブル５１２は、ファイル取得部５２１により取得されたファイルを記憶する。ファイル取得部５２１は、取得したファイルをファイルテーブル５１２に格納する。例えば、フィイル取得部５２１は、ファイルを取得した際に用いた位置情報に含まれるパスにて特定される記憶領域にファイルを格納する。より詳細な一例をあげて説明すると、ファイル取得部５２１は、位置情報「http://host#1/d-A/d-B/d-C/file-a」にあるファイルを取得した場合には、ファイルテーブル５１２において「d-A/d-B/d-C/」により特定される記憶領域にファイルを格納する。ただし、本発明はこれに限定されるものではなく、任意の記憶領域にファイルを格納しても良い。
【００９１】
そして、命令送信部５２３は、ファイルテーブル５１２からファイルを取得して実行する旨の実行指示をアプリケーションサーバ４００に送信する。例えば、命令送信部５２３は、実行命令に含まれる位置情報のホスト名を、フィルタリング装置５００に付与されたホスト名に更新した上で、実行命令を送信する。より詳細な一例をあげて説明すると、フィルタリング装置５００のホスト名が「host#filter」である場合には、命令送信部５２３は、位置情報「http://host#1/d-A/d-B/d-C/file-a」を「http://host#filter/d-A/d-B/d-C/file-a」に更新した上で、実行命令を送信する。この結果、アプリケーションサーバ４００は、ホスト名が「host#1」であるファイルサーバ２００ではなく、ホスト名が「host#filter」であるフィルタリング装置５００にアクセスする。
【００９２】
なお、ここで、ファイル取得部５２１が、ファイルを任意の記憶領域に格納した場合には、命令送信部５２３は、位置情報に含まれるパスについても、ファイルが格納された記憶領域を示すパスに更新した上で送信する。
【００９３】
そして、フィルタリング装置５００の返信部５２５は、アプリケーションサーバ４００から実行指示により指定されるファイルを要求するファイル要求を受信すると、ファイル要求に対する応答を生成し、ファイル要求により要求されたファイルをファイルテーブル５１２から取得する。そして、返信部５２５は、生成した応答と取得したファイルとをアプリケーションサーバ４００に返信する。
【００９４】
この結果、フィルタリング装置５００が中継機能を有しなくても、アプリケーションサーバ４００とフィルタリング装置５００との間にてローカルに処理することが可能である。
【００９５】
なお、例えば、フィルタリング装置５００は、ファイルを取得する旨の命令をアプリケーションサーバ４００に送信することなく、ファイル取得要求を受信するはずのファイルサーバ２００が生成すると予想される応答とファイルとをすぐにアプリケーションサーバ４００に送信しても良い。
【００９６】
［システム構成］
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。例えば、この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については（図１〜図１０）、特記する場合を除いて任意に変更することができる。
【００９７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、フィルタリング装置５００のブラックリストテーブル５１１をフィルタリング装置５００の外部装置としてネットワーク経由で接続するようにしても良い。また、図１０に示す例では、ファイルテーブル５１２がフィルタリング装置５００とは別の外部装置としても良い。この場合、命令送信部５２３は、外部装置としてのファイルテーブル５１２のホスト名を用いて更新した上で、実行命令を送信する。
【００９８】
［プログラム］
図１１は、開示の技術に係る更新プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図１１に例示するように、コンピュータ３０００は、例えば、メモリ３０１０と、ＣＰＵ（Central  Processing  Unit）３０２０と、ハードディスクドライブインタフェース３０３０と、ディスクドライブインタフェース３０４０と、シリアルポートインタフェース３０５０と、ビデオアダプタ３０６０と、ネットワークインタフェース３０７０とを有する。コンピュータ３０００の各部はバス３１００によって接続される。
【００９９】
メモリ３０１０は、図１１に例示するように、ＲＯＭ３０１１及びＲＡＭ３０１２を含む。ＲＯＭ３０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース３０３０は、図１１に例示するように、ハードディスクドライブ３０８０に接続される。ディスクドライブインタフェース３０４０は、図１１に例示するように、ディスクドライブ３０９０に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ３０９０に挿入される。シリアルポートインタフェース３０５０は、図１１に例示するように、例えばマウス３０５１、キーボード３０５２に接続される。ビデオアダプタ３０６０は、図１１に例示するように、例えばディスプレイ３０６１に接続される。
【０１００】
ここで、図１１に例示するように、ハードディスクドライブ３０８０は、例えば、ＯＳ３０８１、アプリケーションプログラム３０８２、プログラムモジュール３０８３、プログラムデータ３０８４を記憶する。すなわち、開示の技術に係る更新プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール３０８３として、例えばハードディスクドライブ３０８０に記憶される。具体的には、上記実施例で説明した制御部５２０の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュールが、ハードディスクドライブ３０８０に記憶される。また、上記実施例で説明した記憶部５１０に記憶されるデータのように、更新プログラムによる情報処理に用いられるデータは、プログラムデータ３０８４として、例えばハードディスクドライブ３０８０に記憶される。そして、ＣＰＵ３０２０が、ハードディスクドライブ３０８０に記憶されたプログラムモジュール３０８３やプログラムデータ３０８４を必要に応じてＲＡＭ３０１２に読み出し、各種の手順を実行する。
【０１０１】
なお、更新プログラムに係るプログラムモジュール３０８３やプログラムデータ３０８４は、ハードディスクドライブ３０８０に記憶される場合に限られない。例えば、プログラムモジュール３０８３やプログラムデータ３０８４は、着脱可能な記憶媒体に記憶されても良い。この場合、ＣＰＵ３０２０は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、更新プログラムに係るプログラムモジュール３０８３やプログラムデータ３０８４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されても良い。この場合、ＣＰＵ３０２０は、ネットワークインタフェースを介して他のコンピュータにアクセスすることで各種データを読み出す。
【０１０２】
［その他］
なお、本実施例で説明した更新プログラムは、インターネットなどのネットワークを介して配布することができる。また、更新プログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【０１０３】
１００      更新システム
２００      ファイルサーバ
３００      端末
４００      アプリケーションサーバ
５００      フィルタリング装置
５１０      記憶部
５１１      ブラックリストテーブル
５１２      アドレステーブル
５２０      制御部
５２１      ファイル取得部
５２２      ファイル内容判定部
５２３      命令送信部
５２４      更新処理部
６００      ネットワーク
【図１】
0005389740.tif 000002
【図２】
0005389740.tif 000003
【図３】
0005389740.tif 000004
【図４】
0005389740.tif 000005
【図５】
0005389740.tif 000006
【図６】
0005389740.tif 000007
【図７】
0005389740.tif 000008
【図８】
0005389740.tif 000009
【図９】
0005389740.tif 000010
【図１０】
0005389740.tif 000011
【図１１】
0005389740.tif 000012