(57)【要約】  脆弱性の影響を判定し、データが必要以上に遮断されることを防止することが可能な脆弱性対策装置を提供する。  ネットワークを介して接続された複数の計算機と各計算機が有するソフトウェアとを対応付けた構成情報と、ソフトウェアとソフトウェアの脆弱性に関する情報とを対応付けた脆弱性情報と、ソフトウェアとソフトウェアに脆弱性がある場合に実行する対策ポリシとを対応付けた対策ポリシ情報とを記憶し、利用端末から受信したデータに含まれるデータの経路に関する情報に基づいてデータが到達する計算機を算出し、算出した計算機と構成情報とに基づいて計算機に存在するソフトウェアを取得し、取得したソフトウェアと脆弱性情報とに基づいて取得したソフトウェアに脆弱性があるか否かを判定し、脆弱性があると判定された前記ソフトウェアに対して、前記対策ポリシに従って脆弱性に対する対策を実行する対策手段とを備える脆弱性対策装置。
2013035181.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された複数の計算機から構成されるシステムの脆弱性対策を行う脆弱性対策装置であって、
前記計算機のそれぞれと前記計算機が有するソフトウェアとを対応付けた構成情報と、前記ソフトウェアと前記ソフトウェアの脆弱性に関する情報とを対応付けた脆弱性情報と、前記ソフトウェアと前記ソフトウェアに脆弱性がある場合に実行する対策ポリシとを対応付けた対策ポリシ情報とを記憶する記憶手段と、
前記脆弱性対策装置が、前記システムの利用端末が送信したデータを受信し、受信したデータに含まれる前記データの経路に関する情報に基づいて前記データが到達する計算機を算出し、算出した前記計算機と前記構成情報とに基づいて前記計算機に存在するソフトウェアを取得し、取得したソフトウェアと前記脆弱性情報とに基づいて前記取得したソフトウェアに脆弱性があるか否かを判定する判定手段と、
前記判定手段が前記ソフトウェアに脆弱性があると判定した場合に、脆弱性があると判定された前記ソフトウェアに対して、前記対策ポリシ情報に記憶されている対策ポリシに従って脆弱性に対する対策を実行する対策手段と、
を備えることを特徴とする脆弱性対策装置。
【請求項２】
前記判定手段は、前記データに含まれる前記ソフトウェアによって提供されるサービスの動作条件を与えるためのパラメタごとに、前記データが到達する計算機を算出する、
ことを特徴とする請求項１に記載の脆弱性対策装置。
【請求項３】
前記判定手段は、前記計算機ごとに、前記計算機に存在する前記ソフトウェアを取得する、
ことを特徴とする請求項１または２に記載の脆弱性対策装置。
【請求項４】
前記判定手段は、前記ソフトウェアごとに、脆弱性が存在するか否かを判定する、
ことを特徴とする請求項１〜３のいずれか１項に記載の脆弱性対策装置。
【請求項５】
前記対策手段は、前記データに含まれる前記ソフトウェアによって提供されるサービスの動作条件を与えるためのパラメタごとに、前記対策ポリシに示される対策を実行する、
ことを特徴とする請求項１〜４のいずれか１項に記載の脆弱性対策装置。
【請求項６】
前記対策手段は、前記計算機ごと及び前記ソフトウェアごとに、前記対策ポリシに示された対策を実行する、
ことを特徴とする請求項１〜５のいずれか１項に記載の脆弱性対策装置。
【請求項７】
前記判定手段は、前記計算機の前記ソフトウェアに脆弱性があると判定した場合に、前記計算機と、前記ソフトウェアと、前記脆弱性情報と、前記脆弱性に対する対策結果を保持する保持手段とをさらに備え、
前記判定手段が保持した、前記計算機と、前記ソフトウェアと、前記脆弱性情報と、前記脆弱性に対する対策結果とを可視化する可視化手段と、
をさらに備えることを特徴とする請求項１〜６のいずれか１項に記載の脆弱性対策装置。
【請求項８】
前記可視化手段は、前記データが到達する計算機と、前記計算機に存在する前記脆弱性情報とを併せて出力する、
ことを特徴とする請求項７に記載の脆弱性対策装置。
【請求項９】
前記可視化手段は、前記データが到達する計算機と、前記計算機で実行されている前記対策結果とを併せて出力する、
ことを特徴とする請求項７または８に記載の脆弱性対策装置。
【請求項１０】
前記可視化手段は、前記データが到達する計算機と、前記計算機に到達する前記データの量とを併せて出力する、
ことを特徴とする請求項７〜９のいずれか１項に記載の脆弱性対策装置。
【請求項１１】
ネットワークを介して接続された複数の計算機から構成されるシステムの脆弱性対策を行う脆弱性対策装置で行われる脆弱性対策方法であって、
前記脆弱性対策装置が、前記システムの利用端末が送信したデータを受信し、受信したデータに含まれる前記データの経路に関する情報に基づいて前記データが到達する計算機を算出し、算出した前記計算機と前記計算機のそれぞれと前記計算機が有するソフトウェアとを対応付けた構成情報とに基づいて前記計算機に存在するソフトウェアを取得し、取得したソフトウェアと、前記ソフトウェアと前記ソフトウェアの脆弱性に関する情報とを対応付けた脆弱性情報とに基づいて前記取得したソフトウェアに脆弱性があるか否かを判定する判定ステップと、
前記判定手段が前記ソフトウェアに脆弱性があると判定した場合に、脆弱性があると判定された前記ソフトウェアに対して、前記ソフトウェアと前記ソフトウェアに脆弱性がある場合に実行する対策ポリシとを対応付けた対策ポリシ情報に記憶されている対策ポリシに従って脆弱性に対する対策を実行する対策ステップと、
を含むことを特徴とする脆弱性対策方法。
【請求項１２】
前記判定ステップにおいて、前記判定の際に、前記データに含まれる前記ソフトウェアによって提供されるサービスの動作条件を与えるためのパラメタごとに、前記データが到達する計算機を算出する、
ことを特徴とする請求項１１に記載の脆弱性対策方法。
【請求項１３】
前記判定ステップにおいて、前記判定の際に、前記計算機ごとに、前記計算機に存在する前記ソフトウェアを取得する、
ことを特徴とする請求項１１または１２に記載の脆弱性対策方法。
【請求項１４】
前記判定ステップにおいて、前記判定の際に、前記ソフトウェアごとに、脆弱性が存在するか否かを判定する、
ことを特徴とする請求項１１〜１３のいずれか１項に記載の脆弱性対策方法。
【請求項１５】
前記対策ステップにおいて、前記対策の際に、前記データに含まれる前記ソフトウェアによって提供されるサービスの動作条件を与えるためのパラメタごとに、前記対策ポリシに示される対策を実行する、
ことを特徴とする請求項１１〜１４のいずれか１項に記載の脆弱性対策方法。
【請求項１６】
前記対策ステップにおいて、前記対策の際に、前記計算機ごと及び前記ソフトウェアごとに、前記対策ポリシに示された対策を実行する、
ことを特徴とする請求項１１〜１５のいずれか１項に記載の脆弱性対策方法。
【請求項１７】
前記判定ステップにおいて、前記判定の際に、前記計算機の前記ソフトウェアに脆弱性があると判定した場合に、前記計算機と、前記ソフトウェアと、前記脆弱性情報と、前記脆弱性に対する対策結果をさらに保持し、
前記判定ステップにおいて保持した、前記計算機と、前記ソフトウェアと、前記脆弱性情報と、前記脆弱性に対する対策結果とをさらに可視化する可視化ステップ、
をさらに含む特徴とする請求項１１〜１６のいずれか１項に記載の脆弱性対策方法。
【請求項１８】
前記可視化ステップにおいて、前記可視化の際に、前記データが到達する計算機と、前記計算機に存在する前記脆弱性情報とを併せて出力する、
ことを特徴とする請求項１７に記載の脆弱性対策方法。
【請求項１９】
前記可視化ステップにおいて、前記可視化の際に、前記データが到達する計算機と、前記計算機で実行されている前記対策結果とを併せて出力する、
ことを特徴とする請求項１７または１８に記載の脆弱性対策方法。
【請求項２０】
前記可視化ステップにおいて、前記可視化の際に、前記データが到達する計算機と、前記計算機に到達する前記データの量とを併せて出力する、
ことを特徴とする請求項１７〜１９のいずれか１項に記載の脆弱性対策方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの到達経路に存在する計算機が具備するソフトウェアの脆弱性の影響に応じて対策を行う技術に関する。
【背景技術】
【０００２】
近年、イントラネットやインターネットでは、様々なシステムが構築され、サービスが提供されている。これらシステムは、複数の計算機や複数のネットワーク機器などを備え、各計算機の上では複数のソフトウェア（サービスプログラムやクライアントプログラムやオペレーティングシステムなど）が動作し、これらが全て連携している。【０００３】
このようなシステムを安全に稼働させるためには、システム内で動作しているソフトウェアの脆弱性への対策が重要である。この脆弱性への対策には、システムの管理者が随時修正パッチを適用していく必要がある。しかし、大規模化したシステムにおいて、システム管理者の負担は大きくなり、システムのいずれの計算機のいずれのソフトウェアに脆弱性があるかを把握することすら困難となる。【０００４】
そこで、システムが有している計算機の脆弱性に関する対策を管理者にかわって実施する、脆弱性対策技術が求められている。例えば、特許文献１では、管理対象ネットワーク上のホストに存在する脆弱性を検査し、ホストに存在する脆弱性に関するシグネチャをサーバ上に集約し、当該シグネチャを監視するシステムが提案されている。【０００５】
また、特許文献２では、各クライアントにインストールされたソフトウェアおよびパッチの適用状態を管理し、ネットワーク経由で取得した最新のセキュリティ情報に基づき、クライアントが接続するルータのＴＣＰ／ＩＰポート開閉制御を行い、セキュリティ管理を行うサーバが提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第７１８１７６９号
【特許文献２】特開２００６−１４６２９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の発明は、ホストに存在する脆弱性のシグネチャを管理し、対策するためには有効である。しかし、シグネチャを利用した対策では、通信が途中で中断されるため、データを必要以上に遮断してしまったり、正常に終了しないコネクションの影響でサーバのリソースを消費してしまったりする場合があるという問題がある。【０００８】
また、特許文献２の発明は、パッチ情報ページの内容について解析を行い、脆弱と判定されたウイルスや不正アクセスの侵入経路となり得るおそれのあるＴＣＰ／ＩＰポートを閉鎖するため、クライアントが行う通信の影響をある程度とどめることができる。しかし、ポートを閉鎖してしまうため、ウイルスや不正アクセス以外のアクセスも遮断してしまう場合があるという問題がある。【０００９】
本発明は、上記に鑑みてなされたものであって、脆弱性の影響を判定し、データが必要以上に遮断されることを防止することが可能な脆弱性対策装置、および脆弱性対策方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明にかかる脆弱性対策装置は、ネットワークを介して接続された複数の計算機から構成されるシステムの脆弱性対策を行う脆弱性対策装置であって、前記計算機のそれぞれと前記計算機が有するソフトウェアとを対応付けた構成情報と、前記ソフトウェアと前記ソフトウェアの脆弱性に関する情報とを対応付けた脆弱性情報と、前記ソフトウェアと前記ソフトウェアに脆弱性がある場合に実行する対策ポリシとを対応付けた対策ポリシ情報とを記憶する記憶手段と、前記脆弱性対策装置が受信したデータに含まれる前記データの経路に関する情報に基づいて前記データが到達する計算機を算出し、算出した前記計算機と前記構成情報とに基づいて前記計算機に存在するソフトウェアを取得し、取得したソフトウェアと前記脆弱性情報とに基づいて前記取得したソフトウェアに脆弱性があるか否かを判定する判定手段と、前記判定手段が前記ソフトウェアに脆弱性があると判定した場合に、脆弱性があると判定された前記ソフトウェアに対して、前記対策ポリシ情報に記憶されている対策ポリシに従って脆弱性に対する対策を実行する対策手段と、を備えることを特徴とする。【００１１】
望ましい他の様態では、前記判定手段は、前記データに含まれる前記ソフトウェアによって提供されるサービスの動作条件を与えるためのパラメタごとに、前記データが到達する計算機を算出する。【００１２】
また、望ましい他の様態では、前記判定手段は、前記計算機ごとに、前記計算機に存在する前記ソフトウェアを取得する。【００１３】
さらに、望ましい他の様態では、前記判定手段は、前記ソフトウェアごとに、脆弱性が存在するか否かを判定する。【００１４】
また、望ましい他の様態では、前記対策手段は、前記データに含まれる前記ソフトウェアによって提供されるサービスの動作条件を与えるためのパラメタごとに、前記対策ポリシに示される対策を実行する。【００１５】
さらに、望ましい他の様態では、前記対策手段は、前記計算機ごと及び前記ソフトウェアごとに、前記対策ポリシに示された対策を実行する。【００１６】
また、望ましい他の様態では、前記判定手段は、前記計算機の前記ソフトウェアに脆弱性があると判定した場合に、前記計算機と、前記ソフトウェアと、前記脆弱性情報と、前記脆弱性に対する対策結果を保持する保持手段とをさらに備え、前記判定手段が保持した、前記計算機と、前記ソフトウェアと、前記脆弱性情報と、前記脆弱性に対する対策結果とを可視化する可視化手段と、をさらに備えることを特徴とする。【００１７】
さらに、望ましい他の様態では、前記可視化手段は、前記データが到達する計算機と、前記計算機に存在する前記脆弱性情報とを併せて出力する。【００１８】
また、望ましい他の様態では、前記可視化手段は、前記データが到達する計算機と、前記計算機で実行されている前記対策結果とを併せて出力する。【００１９】
さらに、望ましい他の様態では、前記可視化手段は、前記データが到達する計算機と、前記計算機に到達する前記データの量とを併せて出力する。【００２０】
また、本発明は、上記脆弱性対策装置で行われる脆弱性対策方法である。
【発明の効果】
【００２１】
本発明によれば、データが必要以上に遮断されることを防止することができるという効果を奏する。
【図面の簡単な説明】
【００２２】
【図１】脆弱性対策装置を含むネットワーク構成例である。
【図２】脆弱性対策装置の構成例である。
【図３】経路情報データの一例である。
【図４】構成情報データの一例である。
【図５】脆弱性情報データの一例である。
【図６】対策ポリシデータの一例である。
【図７】判定処理のフローチャートである。
【図８】対策処理のフローチャートである。
【図９】実施例２の脆弱性対策装置の構成例である。
【図１０】実施例２の脆弱性対策ログの一例である。
【図１１】実施例２のデータ到達ログの一例である。
【図１２】実施例２の対策結果可視化画面の一例である。
【図１３】実施例２の判定処理のフローチャートである。
【図１４】実施例２の可視化処理のフローチャートである。
【図１５】実施例２の対策結果可視化画面の変形例である。
【発明を実施するための形態】
【００２３】
インターネットなどに対してサービスを提供している計算機は、データを受信すると、データに応じて別のサービスを提供している計算機にデータを転送することがある。例えば、ファイルのアップロードサービスなどでは、ユーザがＷｅｂサーバにファイルを送信すると、ファイルのデータを受信したＷｅｂサーバは、ファイルを格納する他の計算機に当該ファイルを転送し、保存したりする。
【００２４】
脆弱性対策を行う場合、計算機への侵入経路を監視し、データに脆弱性をつく攻撃パターンが含まれている際に、当該データをブロックすることが一般的に行われる。しかし、データによっては、ある計算機で処理が行われた後に、別の計算機に転送されるものも存在する。このように転送されるデータに関しては、最初の計算機だけでなく、その転送先の計算機にも脆弱性の影響があるか否かの確認を行い、脆弱性対策をしなければならない。
【００２５】
先ほどのファイルアップロードサービスの例では、Ｗｅｂサーバへの侵入経路を監視し、Ｗｅｂサーバが影響をうける脆弱性に関する攻撃パターンをブロックすることが一般的に行われる。しかし、Ｗｅｂサーバが受信したファイルのデータは、ファイルを格納する他の計算機にも送信されるため、ファイルを格納する計算機にも脆弱性の影響があるか否かの確認を行い、脆弱性対策を行わなければならない。すなわち、データの到達性に応じて対策方法が異なる。
【００２６】
本実施形態では、データの到達性に応じて脆弱性対策を行うことで、データが必要以上に遮断されることを防止する。実施例1では、この点に着目し、データの到達性判定、対策ポリシに基づく脆弱性対策について説明する。実施例２では、脆弱性対策結果の可視化について説明する。
【実施例１】
【００２７】
図１に、本実施例におけるデータの到達性に応じて脆弱性対策を行う脆弱性対策装置を含むネットワークの構成例を示す。【００２８】
脆弱性対策装置１０１は、対策対象システム１１４とネットワーク１０６の間に存在しており、対策対象システム１１４に存在する機器の脆弱性情報を管理し、ネットワーク１０６を介して受信したデータの到達性を判定し、脆弱性対策装置１０１が保持している対策ポリシに基づいた対策を行う。【００２９】
ネットワーク１０６は、例えば、インターネットなどのネットワーク、あるいはこれらに接続するための通信網である。なお、図１では省略しているが、ネットワーク１０６には対策対象システム１１４で公開されているサービスを利用する利用者の端末が接続されている。【００３０】
脆弱性対策装置１０１は、ネットワーク１０６を介して脆弱性情報公開サイト１０５と接続している。ここで脆弱性情報公開サイト１０５は、ソフトウェアの脆弱性に関する情報を公開している国内外のＷｅｂサイトである。【００３１】
脆弱性情報公開サイト１０５には、例えば、ＪＰＣＥＲＴ／ＣＣ（Ｊａｐａｎ  Ｃｏｍｐｕｔｅｒ  Ｅｍｅｒｇｅｎｃｙ  Ｒｅｓｐｏｎｓｅ  Ｔｅａｍ  Ｃｏｏｒｄｉｎａｔｉｏｎ  Ｃｅｎｔｅｒ）と情報処理推進機構が共同で管理するＪＶＮ（Ｊａｐａｎ  Ｖｕｌｎｅｒａｂｉｌｉｔｙ  Ｎｏｔｅｓ）や、米国ＮＩＳＴ（Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｓｔａｎｄａｒｄｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ）が管理するＮＶＤ（Ｎａｔｉｏｎａｌ  Ｖｕｌｎｅｒａｂｉｌｉｔｙ  Ｄａｔａｂａｓｅ）などが挙げられる。【００３２】
対策対象システム１１４は、サーバＡ１０２、サーバＢ１０３、サーバＣ１０４、及び、これらを接続するネットワーク１０７から構成されている。【００３３】
サーバＡ１０２上では、オペレーティングシステムＡ１０８、Ｗｅｂサーバプログラム１０９が稼働しておりＷｅｂサービスを提供している。【００３４】
サーバＢ１０３上では、オペレーティングシステムＢ１１０、ＤＢサーバプログラム１１１が稼働しており、データベースサービスを提供している。【００３５】
サーバＣ１０４上では、オペレーティングシステムＣ１１２、画像処理プログラム１１３が稼働しており、画像変換サービスを提供している。【００３６】
ここで、サーバＡ１０２はＷｅｂサービスを外部に提供しており、ネットワーク１０６を介して送られてきたデータを処理し、サーバＢ１０３で提供されているデータベースサービスに登録したり、サーバＣ１０４で提供されている画像処理サービスにデータを転送したりする。【００３７】
なお、説明を簡単にするため対策対象システム１１４が計算機（サーバ）及びネットワークから構成される例を示したが、そのほか、ＦＷやＩＤＳ、負荷分散装置などを含んで、対策対象システム１１４を構成しても良い。【００３８】
また、脆弱性対策装置１０１を１台で構成する例を示したが、必要に応じて複数の脆弱性対策装置１０１を用いて構成しても良い。【００３９】
図２に、データごとの到達性を判定し、到達性に応じた脆弱性対策を行う脆弱性対策装置１０１の構成例を示す。脆弱性対策装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０３と、ＣＰＵ２０３が処理を実行するために必要なデータを格納するためのメモリ２０６と、大量のデータを記憶する容量を持つハードディスクやフラッシュメモリなどの記憶装置２０５と、他装置と通信を行なうためのＩＦ（インタフェース）２０１、２０２と、キーボード、ディスプレイなどの入出力を行なうための入出力装置２０４と、これらの各装置を接続する通信路（バス）２１３とを備えたコンピュータである。【００４０】
なお、ＩＦは、接続先に応じて通信インタフェース、入出力インタフェース、又は動作に応じて通信装置、受信装置、送信装置、入出力装置などと呼ぶこともある。また、通信路２１３は、例えば、バスやケーブルなどの情報伝達媒体である。【００４１】
ＣＰＵ２０３は、メモリ２０６に格納された判定プログラム２１１を実行することによりデータごとの到達性判定を、対策プログラム２１２を実行することによりポリシに基づいた脆弱性対策を行なう。【００４２】
対策プログラム２１２は複数の対策機能２１４（対策機能１２１４ａ〜対策機能ｎ１２１４ｂ）を含んで構成される。これら対策機能には、例えば、データのフォーマットがあらかじめ定めたフォーマットに等しいか否かを確認し、フォーマットが異なっている場合に当該データを破棄する「型チェック」機能や、データの中に＜ｓｃｒｉｐｔ＞という文字列を発見した際に、対応する＜／ｓｃｒｉｐｔ＞までの文字列を除去（スクリプトタグを除去）する「ｓｃｒｉｐｔ除去」機能、データが与えられた際に、当該データのフォーマットをＪｐｅgフォーマットに変換する「Ｊｐｅｇ変換」機能、データを破棄する「データ破棄」機能、データの中から特定のパターンを検出し、検出したパターン部分を除去する「シグネチャマッチング」機能などが挙げられる。なお、「型チェック」機能では、後述するパラメタごとに、どのようなフォーマットであるべきかの定義を、予めサービス提供者が行っているものとする。【００４３】
これら対策機能２１４は必要に応じて、追加したり、削除したりしても良い。また、対策機能２１４は、対策プログラム２１２に格納されている例を示したが、メモリ２０６に格納されても良い。【００４４】
記憶装置２０５には、データの到達性を判定するための経路情報データ２０７、対策対象システム１１４の構成情報を把握するための構成情報データ２０８、ソフトウェアに脆弱性があるか否かを判定するための脆弱性情報データ２０９、脆弱性対策のためのポリシである対策ポリシデータ２１０が格納されている。【００４５】
上記の各プログラムやデータは、あらかじめメモリ２０６または記憶装置２０５に格納されていてもよいし、必要な時に、入出力装置２０４からまたは、ＩＦ２０１、ＩＦ２０２を介して他の装置から、インストール（ロード）されてもよい。【００４６】
図３は、経路情報データ２０７の一例を示す図である。図３に示すように、経路情報データ２０７は、経路ＩＤ３０１と、ホスト３０２と、パス３０３と、パラメタ３０４と、経路３０５とを含む。【００４７】
経路ＩＤ３０１は、経路情報を一意に識別できる情報（識別子）を表す。【００４８】
ホスト３０２は、サービスがどのサーバで提供されているかを表す。例えば、コンピュータネットワークにおいて個々のサーバを識別するドメイン名やＩＰアドレスなどが挙げられる。なお、ホスト３０２にはサービスが提供されているポート番号を含んで格納しても良い。【００４９】
パス３０３は、提供されているサービスにどのようにアクセスできるかの情報を表す。例えば、サーバ内部でのファイルの所在地などが挙げられる。また、パス３０３には階層構造を示すために使われる「／」を含んで格納しても良い。【００５０】
ホスト３０２とパス３０３の組み合わせにより、インターネット上のサービスを特定することができる。【００５１】
パラメタ３０４は、サービスの動作条件を与えるための情報を表す。Ｗｅｂサービスなどでは、多くのユーザの好みに応えるために、一つのプログラムに与えるパラメタによって動作の制御を行っている。パラメタ３０４はホスト３０２のパス３０３で待ち受けているサービスが動作変更を行うためのパラメタを表す。【００５２】
経路３０５は、データの到達性を表す。ここで、到達性とは、データがどのサーバを経由しているかを表す情報である。例えば、経路３０５が「サーバＡ、サーバＢ」であれば、当該データはサーバＡで処理されたあと、サーバＢにも送信されることを表す。なお、経路３０５には、後述する計算機識別子の情報が格納される。【００５３】
なお、パラメタ３０４に「−」（ｄｏｎ‘ｔ  ｃａｒｅを表す記号）が格納されている場合には、パラメタに関係なく、経路３０５に格納されているサーバを経由することを表す。【００５４】
また、パス３０３に「−」が格納されている場合は、パス３０３に依存しないことを、ホスト３０２に「−」が格納されている場合には、ホスト３０２に依存しないことを表す。なお、これら「−」は一つの経路情報に複数存在しても良いし、存在しなくてもよい。例えば、ホスト３０２、パス３０３、パラメタ３０４のすべてに「−」が格納されている場合、すべてのデータが経路３０５に格納されているサーバを経由することを表す。【００５５】
図３を用いて具体的に説明する。例えば、経路ＩＤ３０１が「１」の経路情報は、ホスト３０２が「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス３０３が「ｓｅｒｖｅＡ．ｃｇｉ」、パラメタ３０４が「ｉｄ」、経路３０５が「サーバＡ」であるため、ＨＴＴＰプロトコルを例にすれば、「ｈｔｔｐ：／／ｗｗｗ．ｓｅｒｖｅｒＡ．ｃｇｉ／ｓｅｒｖｅｒＡ．ｃｇｉ」でサービスにアクセスできることを表す。また、このサービスは、「ｉｄ」というパラメタを受け付けることができ、その「ｉｄ」で受け付けた値はサーバＡ１０２で処理されることを表す。【００５６】
経路情報データ２０７に格納される経路情報は、サービスの提供者が必要に応じて、入力または更新しても良い。【００５７】
例えば、対策対象システム１１４で新たなサービスの提供が開始された場合には、サービスの提供者が新たに開始されたサービスの経路ＩＤ、ホスト、パス、パラメタ、経路を、経路情報データ２０７に登録する。また、サービスが終了した場合には、当該サービスに関連する経路ＩＤ、ホスト、パス、パラメタ、経路を、経路情報データ２０７から削除する。【００５８】
経路情報データ２０７は、ＣＰＵ２０３により実行される判定プログラム２１１が、データの到達性を判定する際に利用される。判定プログラム２１１の具体的な処理については、図７を用いて後述する。【００５９】
図４は、構成情報データ２０８の一例を示す図である。図４に示すように、構成情報データ２０８は、構成ＩＤ４０１と、計算機識別子４０２と、ソフトウェア４０３と、バージョン４０４とを含む。【００６０】
構成ＩＤ４０１は、構成情報を一意に識別できる情報（識別子）を表す。【００６１】
計算機識別子４０２は、対策対象システム１１４に存在する計算機の識別子を表す。なお、計算機識別子４０２には、経路情報データ２０７のホスト３０２との対応がとれる識別子が格納される。例えば、ホスト３０２が「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」と計算機識別子４０２が「サーバＡ」の計算機は、同一の計算機を表す。【００６２】
ソフトウェア４０３は計算機識別子４０２の計算機に搭載されているソフトウェアを表し、バージョン４０４は当該ソフトウェアのバージョンを表す。なお、バージョンが存在しないソフトウェアは、バージョン４０４を格納しなくても良い。【００６３】
図４を用いて具体的に説明する。構成ＩＤ４０１が「１」の構成情報は、計算機識別子４０２が「サーバＡ」、ソフトウェア４０３が「Ｗｅｂサーバプログラム」、バージョン４０４が「０．９」であり、これは、サーバＡ１０２上で、バージョンが０．９のＷｅｂサーバプログラム１０９が稼働していることを表す。【００６４】
構成情報データ２０８に格納される構成情報は、サービスの提供者が必要に応じて、入力または更新してもよいし、各サーバに導入された構成情報を取得するためのプログラム（構成情報取得エージェント）などを用いて収集してもよい。【００６５】
例えば、対策対象システム１１４に新たな計算機が導入された場合には、サービスの提供者が新たに導入された計算機の構成ＩＤ、計算機識別子、ソフトウェア、バージョンを、構成情報データ２０８に登録する。また、計算機を廃棄する場合には、当該計算機に関連する構成ＩＤ、計算機識別子、ソフトウェア、バージョンを、構成情報データ２０８から削除する。なお、新たなソフトウェアを導入した場合や破棄した場合にも、構成情報データ２０８の更新を行う。【００６６】
構成情報データ２０８は、ＣＰＵ２０３により実行される判定プログラム２１１が、サーバにインストールされているソフトウェアを取得する際に利用される。判定プログラム２１１の具体的な処理については、図７を用いて後述する。【００６７】
図５は、脆弱性情報データ２０９の一例を示す図である。図５に示すように、脆弱性情報データ２０９は、脆弱性ＩＤ５０１と、公開日５０２と、ソフトウェア５０３と、バージョン５０４とを含む。【００６８】
脆弱性ＩＤ５０１は、脆弱性情報を一意に識別できる情報（識別子）を表す。【００６９】
公開日５０２は、脆弱性が公開された日時を表し、ソフトウェア５０３は当該脆弱性の影響を受けるソフトウェアを、バージョン５０４は脆弱性の影響を受けるソフトウェアのバージョンを表す。なお、バージョン５０４には、ある特定のバージョン以前のすべてのバージョンを表す「○○以前」という情報を格納しても良い。【００７０】
図５を用いて具体的に説明する。例えば、脆弱性ＩＤ５０１が「１」の脆弱性情報は、公開日５０２が「２０１０／１１／１１」、ソフトウェア５０３が「Ｗｅｂサーバプログラム」、バージョン５０４が「１．０以前」であり、これは、２０１１年１１月１１日にバージョンが１．０以前のＷｅｂサーバプログラムに脆弱性が発見されたことを表している。【００７１】
なお、説明を簡単にするため、脆弱性情報データ２０９は、公開日５０２、ソフトウェア５０３、バージョン５０４を含む例を示したが、必要に応じて、脆弱性によってどのような影響を受けるのかの情報や、脆弱性の対策パッチの有無、脆弱性の深刻度を表すＣＶＳＳ（Ｃｏｍｍｏｎ  Ｖｕｌｎｅｒａｂｉｌｉｔｙ  Ｓｃｏｒｉｎｇ  Ｓｙｓｔｅｍ）の値、或いは、脆弱性の対策方法などの情報を併せて保持してもよい。【００７２】
サービスの提供者は、脆弱性情報公開サイト１０５を定期的に確認し、新たな脆弱性が公開された際に、当該脆弱性の情報を脆弱性情報データ２０９に反映する。または、ツールを用いて、脆弱性情報データ２０９の更新を自動化してもよい。【００７３】
脆弱性情報データ２０９は、ＣＰＵ２０３により実行される判定プログラム２１１が、サーバにインストールされているソフトウェアに脆弱性があるか否かの判定を行う際に利用される。判定プログラム２１１の具体的な処理については、図７を用いて後述する。【００７４】
図６は、対策ポリシデータ２１０の一例を示す図である。図６に示すように、対策ポリシデータ２１０は、ポリシＩＤ６０１と、計算機識別子６０２と、ソフトウェア６０３と、対策ポリシ６０４とを含む。【００７５】
ポリシＩＤ６０１は、対策ポリシを一意に識別できる情報（識別子）を表す。【００７６】
計算機識別子６０２は、対策対象システム１１４に存在する計算機の識別子を表す。なお、構成情報データ２０８の計算機識別子４０２と同一の識別子が利用される。【００７７】
ソフトウェア６０３は、脆弱性の影響が存在するソフトウェアを表す。【００７８】
対策ポリシ６０４は、脆弱性の影響が存在する場合の対策を表す。例えば、「型チェック」「ｓｃｒｉｐｔ除去」「Ｊｐｅｇ変換」「データ破棄」などが挙げられる。なお、これらの対策は脆弱性の影響を回避するためのポリシであるが、例えば、「トラフィック監視」のように脆弱性が存在する場合に監視を強化するポリシを設定してもよい。【００７９】
また、これらの対策は、脆弱性対策装置１０１の対策プログラム２１２に組み込まれている対策機能２１４が実行する。【００８０】
例えば、「型チェック」の対策ポリシでは、受信したデータに含まれるパラメタの値が、当該パラメタが想定している型と一致しているか否かを確認する。具体的には、想定している型が整数である場合には、受信した値が「０〜９」の数値のみのデータであるかの確認を行う。また、想定している型がgif画像であれば、受信した値がgifファイルの仕様と一致しているか否かの確認を行う。なお、「型チェック」に失敗した（型が一致しなかった）場合には該当する値を除去する。【００８１】
「ｓｃｒｉｐｔ除去」の対策ポリシでは、受信したデータに含まれるパラメタの値からｓｃｒｉｐｔを除去する。具体的には、＜ｓｃｒｉｐｔ＞タグを除去する。【００８２】
「Ｊｐｅｇ変換」の対策ポリシでは、受信したデータに含まれるパラメタの値を、Ｊｐｅｇフォーマットに変更する。【００８３】
対策ポリシデータ２１０は、計算機識別子６０２で稼働しているソフトウェア６０３に脆弱性が存在する場合に、対策ポリシ６０４で示した対策を行うことを表している。【００８４】
図６を用いて具体例を説明する。ポリシＩＤ「１」の対策ポリシデータ２１０は、計算機識別子６０２が「サーバＡ」、ソフトウェア６０３が「Ｗｅｂサーバプログラム」、対策ポリシ６０４が「型チェック」である。このとき、サーバＡ１０２のＷｅｂサーバプログラム１０９に脆弱性が存在する場合に、「型チェック」の脆弱性対策を行うことを表している。【００８５】
対策ポリシデータ２１０に格納される対策ポリシは、サービスの提供者が必要に応じて、入力または更新する。また、対策ポリシに併せて当該対策ポリシを実行するための対策機能２１４を対策プログラム２１２に組み込む必要がある。【００８６】
説明を簡単にするため、対策ポリシデータ２１０は、ポリシＩＤ６０１、計算機識別子６０２、ソフトウェア６０３、対策ポリシ６０４とを含む構成を例示したが、必要に応じて、脆弱性の影響度を表すＣＶＳＳの値などを格納し、ＣＶＳＳの値に応じて対策するポリシを変更しても良い。【００８７】
対策ポリシデータ２１０は、ＣＰＵ２０３により実行される対策プログラム２１２が、脆弱性の影響を回避するための対策を行う際に利用される。対策プログラム２１２の具体的な処理については、図８を用いて後述する。【００８８】
続いて、脆弱性対策装置１０１の判定プログラム２１１がデータを受信し、データが到達する経路上のサーバに、脆弱性の影響を受けるソフトウェアが存在するか否かを判定する処理（以下、判定処理と呼ぶ。）について説明する。図７は、判定処理のフローチャートである。【００８９】
図７に示すように、判定処理を実行する判定プログラム２１１は、ＣＰＵ２０３により実行され、ネットワーク１０６に接続された利用者端末からのパケットを、ＩＦ２０１を介して受信すると、受信したパケットを連結し、データを復元する（ステップ７０１）。【００９０】
判定プログラム２１１は、復元したデータから、ホスト、パス、パラメタ、値の情報を取得し、取得したすべてのパラメタについてステップ７０３からステップ７０９の処理を繰り返す（ステップ７０２）。【００９１】
判定プログラム２１１は、ステップ７０２で取得したホスト、パス、パラメタの情報と、経路情報データ２０７のホスト３０２、パス３０３、パラメタ３０４とを比較し、該当する経路情報が存在すれば、ステップ７０４に進み、存在しなければステップ７１０に進む（ステップ７０３）。【００９２】
判定プログラム２１１は、ステップ７０３で該当した経路情報データ２０７の経路３０５に記載された計算機識別子を取得し、取得したすべての計算機識別子についてステップ７０５からステップ７０８の処理を繰り返す（ステップ７０４）。【００９３】
判定プログラム２１１は、ステップ７０４で取得した計算機識別子と、構成情報データ２０８の計算機識別子４０２とを比較し、該当する構成情報のソフトウェア４０３とバージョン４０４を取得し、取得したすべてのソフトウェア４０３とバージョン４０４についてステップ７０６からステップ７０７の処理を繰り返す（ステップ７０５）。【００９４】
判定プログラム２１１は、ステップ７０５で取得したソフトウェア、バージョンと、脆弱性情報データ２０９のソフトウェア５０３、バージョン５０４とを比較し、該当する脆弱性情報が存在すればステップ７０７に進み、該当する脆弱性情報が存在しなければステップ７０８に進む。【００９５】
判定プログラム２１１は、対策プログラム２１２を実行し、対策処理を行う（ステップ７０７）。なお、対策プログラム２１２の具体的な処理については、図８を用いて後述する。【００９６】
判定プログラム２１１は、受信したデータをパケットに分割し、ＩＦ２０２を介して送信し、処理を終了する（ステップ７１１）。【００９７】
ステップ７０２からステップ７１０までの判定処理の流れを、具体例を用いて説明する。例えば、「ｈｔｔｐ：／／ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ／ｓｅｒｖｅｒＡ．ｃｇｉ？ｉｄ＝１２３＆ｃｍｄ＝ｕｐｄａｔｅ」というデータを受信した場合、判定プログラム２１１は受信したデータから、ホスト「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス「ｓｅｒｖｅｒＡ．ｃｇｉ」、パラメタ「ｉｄ」「ｃｍｄ」、値「１２３」「ｕｐｄａｔｅ」を取得する。この場合、パラメタが２つあるため、２つのパラメタ「ｉｄ」「ｃｍｄ」のそれぞれについてステップ７０３からステップ７０９の処理を行う。【００９８】
判定プログラム２１１は、一つ目のパラメタである「ｉｄ」に対して経路情報データ２０７との比較を行う。この場合、経路ＩＤ３０１が「１」のホスト３０２「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス３０３「ｓｅｒｖｅｒＡ．ｃｇｉ」、パラメタ３０４「ｉｄ」に該当する。判定プログラム２１１は、該当した経路情報の経路３０５に格納されている計算機識別子「サーバＡ」を取得する。【００９９】
なお、上記ステップから、パラメタ「ｉｄ」に対応する値「１２３」が「サーバＡ」によって処理されることが分かる。【０１００】
判定プログラム２１１は、取得した計算機識別子「サーバＡ」と構成情報データ２０８の計算機識別子４０２との比較を行う。この場合、構成ＩＤが「１」の計算機識別子４０２「サーバＡ」及び、構成ＩＤが「２」の計算機識別子４０２「サーバＡ」に該当する。該当する構成情報が２つあるため、２つのソフトウェア「Ｗｅｂサーバプログラム」「オペレーティングシステムＡ」のそれぞれについて、ステップ７０６からステップ７０７の処理を繰り返す。【０１０１】
なお、上記ステップから、「サーバＡ」には、「Ｗｅｂサーバプログラム」と「オペレーティングシステムＡ」の２つのソフトウェアが稼働していることが分かる。【０１０２】
判定プログラム２１１は、一つ目のソフトウェア、バージョンである「Ｗｅｂサーバプログラム」、「０．９」と、脆弱性情報データ２０９のソフトウェア５０３、バージョン５０４を比較する。この場合、脆弱性ＩＤが「１」のソフトウェア５０３「Ｗｅｂサーバプログラム」、バージョン５０４「１．０以前」に該当する。判定プログラム２１１は、該当する脆弱性情報が存在したため、対策プログラム２１２を実行し、計算機識別子「サーバＡ」、ソフトウェア「Ｗｅｂサーバプログラム」、バージョン「０．９」、パラメタ「ｉｄ」、値「１２３」を対策プログラムに２１２に送信する。【０１０３】
なお、対策プログラム２１２の具体的な処理については図８を用いて後述する。【０１０４】
判定プログラム２１１は、二つ目のソフトウェア、バージョンである「オペレーティングシステムＡ」、バージョン「２．３」と、脆弱性情報データ２０９のソフトウェア５０３、バージョン５０４を比較する。この場合、該当する脆弱情報は存在しないため、対策処理（ステップ７０７）は実行されない。【０１０５】
次に、判定プログラム２１１は、２つ目のパラメタである「ｃｍｄ」に対して経路情報データ２０７との比較を行う。この場合、経路ＩＤ３０１が「２」のホスト３０２「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス３０３「ｓｅｒｖｅｒＡ．ｃｇｉ」、パラメタ３０４「ｃｍｄ」に該当する。判定プログラム２１１は、該当した経路情報の経路３０５に格納されている計算機識別子「サーバＡ、サーバＢ」を取得する。【０１０６】
なお、上記ステップから、パラメタ「ｃｍｄ」に対応する値「ｕｐｄａｔｅ」が「サーバＡ」と「サーバＢ」によって処理されることが分かる。このとき、経路にサーバが２つ存在するため、２つの計算機識別子「サーバＡ」「サーバＢ」のそれぞれについて、ステップ７０５からステップ７０８の処理を繰り返す。【０１０７】
判定プログラム２１１は、一つ目の計算機識別子である「サーバＡ」と構成情報データ２０８の計算機識別子４０２との比較を行う。この場合、構成ＩＤが「１」の計算機識別子４０２「サーバＡ」及び、構成ＩＤが「２」の計算機識別子４０２「サーバＡ」に該当する。該当する構成情報が２つあるため、２つのソフトウェア「Ｗｅｂサーバプログラム」「オペレーティングシステムＡ」のそれぞれについて、ステップ７０６からステップ７０７の処理を繰り返す。【０１０８】
判定プログラム２１１は、一つ目のソフトウェア、バージョンである「Ｗｅｂサーバプログラム」、「０．９」と、脆弱性情報データ２０９のソフトウェア５０３、バージョン５０４を比較する。この場合、脆弱性ＩＤが「１」のソフトウェア５０３「Ｗｅｂサーバプログラム」、バージョン５０４「１．０以前」に該当する。判定プログラム２１１は、該当する脆弱性情報が存在したため、対策プログラム２１２を実行し、計算機識別子「サーバＡ」、ソフトウェア「Ｗｅｂサーバプログラム」、パラメタ「ｃｍｄ」、値「ｕｐｄａｔｅ」を対策プログラムに２１２に送信する。【０１０９】
なお、対策プログラム２１２の具体的な処理については図８を用いて後述する。【０１１０】
判定プログラム２１１は、二つ目のソフトウェア、バージョンである「オペレーティングシステムＡ」、バージョン「２．３」と、脆弱性情報データ２０９のソフトウェア５０３、バージョン５０４を比較する。この場合、該当する脆弱情報は存在しないため、対策処理（ステップ７０７）は実行されない。【０１１１】
判定プログラム２１１は、二つ目の計算機識別子である「サーバＢ」と構成情報データ２０８の計算機識別子４０２との比較を行う。この場合、構成ＩＤが「３」の計算機識別子４０２「サーバＢ」及び、構成ＩＤが「４」の計算機識別子４０２「サーバＢ」に該当する。該当する構成情報が２つあるため、２つのソフトウェア「ＤＢサーバプログラム」「オペレーティングシステムＢ」のそれぞれについて、ステップ７０６からステップ７０７の処理を繰り返す。【０１１２】
判定プログラム２１１は、一つ目のソフトウェア、バージョンである「ＤＢサーバプログラム」、「２．３」と、脆弱性情報データ２０９のソフトウェア５０３、バージョン５０４を比較する。この場合、該当する脆弱情報は存在しないため、対策処理（ステップ７０７）は実行されない。【０１１３】
判定プログラム２１１は、二つ目のソフトウェア、バージョンである「オペレーティングシステムＢ」、バージョン「０．５」と、脆弱性情報データ２０９のソフトウェア５０３、バージョン５０４を比較する。この場合、脆弱性ＩＤが「４」のソフトウェア５０３「オペレーティングシステムＢ」、バージョン５０４「１．０以前」に該当する。判定プログラム２１１は、該当する脆弱性情報が存在したため、対策プログラム２１２を実行し、計算機識別子「サーバＢ」、ソフトウェア「オペレーティングシステムＢ」、パラメタ「ｃｍｄ」、値「ｕｐｄａｔｅ」を対策プログラムに２０７に送信する。【０１１４】
このように、判定プログラム２１１は受信したデータから、データがどの計算機に到達するかを解析し、計算機に存在するソフトウェアの情報を取得し、取得した各ソフトウェアに脆弱性があるか否かを判定し、脆弱性がある場合には、対策プログラム２１２を起動する。【０１１５】
続いて、脆弱性対策装置１０１の対策プログラム２１２が判定プログラム２１１から対策処理の要求を受信し、脆弱性の影響を回避するための対策を行う処理（以下、対策処理と呼ぶ。）について説明する。図８は、対策処理のフローチャートである。【０１１６】
図８に示すように、対策処理を実行する対策プログラム２１２は、ＣＰＵ２０３により実行され、判定プログラム２１１から対策処理の要求を受信する（ステップ８０１）。なお、対策処理の要求には脆弱性の影響を受ける計算機識別子、脆弱性の影響を受けるソフトウェア、脆弱性の影響を受ける計算機に到達するパラメタとその値の情報が含まれている。【０１１７】
対策プログラム２１２は、受信した計算機識別子、ソフトウェアと、対策ポリシデータ２１０の計算機識別子６０２、ソフトウェア６０３とを比較し、該当する対策ポリシ６０４を取得し、取得したすべての対策ポリシ６０４についてステップ８０３の処理を繰り返す（ステップ８０２）。【０１１８】
対策プログラム２１２は、取得した対策ポリシ６０４に基づき脆弱性の影響を回避するための対策を、対策機能２１４を用いて実行する（ステップ８０３）。【０１１９】
ステップ８０１からステップ８０３までの対策処理の流れを、具体例を用いて説明する。
例えば、判定プログラム２１１から、計算機識別子「サーバＡ」、ソフトウェア「Ｗｅｂサーバプログラム」、パラメタ「ｉｄ」、値「１２３」の情報が送られてきた場合、対策プログラム２１２は、受信した計算機識別子「サーバＡ」、ソフトウェア「Ｗｅｂサーバプログラム」と、対策ポリシデータ２１０の計算機識別子６０２、ソフトウェア６０３との比較を行う。この場合、ポリシＩＤが「１」の計算機識別子６０２「サーバＡ」、ソフトウェア６０３「Ｗｅｂサーバプログラム」及び、ポリシＩＤが「２」の計算機識別子６０２「サーバＡ」、ソフトウェア６０３「Ｗｅｂサーバプログラム」に該当する。該当する対策ポリシが２つあるため、２つの対策ポリシ「型チェック」「ｓｃｒｉｐｔ除去」のそれぞれについてステップ８０３の処理を繰り返す。【０１２０】
対策プログラム２１２は、一つ目の対策ポリシである「型チェック」を実行する。具体的には、対策プログラム２１２は、型チェックを実行する対策機能２１４を呼び出し、判定プログラム２１２から受信した、パラメタ「ｉｄ」の型を、対策機能２１４の中に保持されている情報から取得する。ここで、パラメタ「ｉｄ」の型は「整数」であると定義されていたとする。次に、対策機能２１４は、パラメタ「ｉｄ」の値「１２３」が、型「整数」に一致しているか否かの確認を行う。整数に一致しているか否かについては、値「１２３」が数値で構成されているかの確認を行う。この場合、「１２３」は整数であるため、対策機能２１４はデータを破棄しない。【０１２１】
対策プログラム２１２は、二つ目の対策ポリシである「ｓｃｒｉｐｔ除去」を実行する。具体的には、対策プログラム２１２はｓｃｒｉｐｔ除去を実行する対策機能２１４を呼び出し、判定プログラム２１２から受信した、値「１２３」に存在する＜ｓｃｒｉｐｔ＞タグを除去する。この場合、値「１２３」には＜ｓｃｒｉｐｔ＞タグが含まれていないため、対策機能２１４はデータを変更しない。【０１２２】
このように、脆弱性対策を行う脆弱性対策装置において、脆弱性対策装置１０１の判定プログラム２１１が、ＩＦ２０１を介して受信したデータから、経路情報データ２０７に基づき、データが到達する計算機を算出し、算出した計算機に存在するソフトウェアに脆弱性があるか否かを判定し、対策プログラム２１２が、対策ポリシデータ２１０に従って脆弱性の対策を実行することで、必要以上のデータ遮断を防止することが可能となる。【０１２３】
なお、本実施例の一部を変更して、次のように実施してもよい。各サーバに対策処理を実行する対策機能２１４をエージェントとして導入し、脆弱性対策装置１０１の対策プログラム２１２において、各エージェントに脆弱性の影響を回避するための対策命令を発行する。これにより対策処理を各サーバ上で実行することができ、脆弱性対策装置１０１の対策処理に係る負荷を軽減することができる。【０１２４】
また、脆弱性情報データ２０９に利用禁止ソフトウェアとそのバージョンを登録する。これにより、利用禁止ソフトウェアに対する対策を実施することができる。【０１２５】
また、脆弱性対策装置１０１を複数用意して、それらを連携させても良い。これにより、脆弱性対策装置に係る負荷を分散することが可能となる。
【実施例２】
【０１２６】
本実施例は、実施例１の脆弱性対策装置を含み、さらに可視化プログラムを用いた脆弱性対策結果の可視化を行う脆弱性対策装置である。【０１２７】
実施例１では、サービス提供者が、どの計算機上のソフトウェアに脆弱性が存在するのか、或いはどの計算機上でどのような脆弱性対策が実施されているかを確認することが困難である。【０１２８】
そこで、実施例２では、脆弱性対策結果を可視化する脆弱性対策装置を説明する。脆弱性対策結果を可視化することで、サービス提供者が迅速に脆弱性の対策結果を知ることが可能となる。【０１２９】
図９は、本実施例における脆弱性対策装置１０１の構成図の例である。実施例１と同一の構成要素には同一の符号を付すことによってその説明を省略し、以下では、実施例１と異なる点を中心に説明する。【０１３０】
図９に示すように、実施例２における脆弱性対策装置１０１は、既に説明した実施例１の脆弱性対策装置１０１に、脆弱性対策ログ９０１と、データ到達ログ９０２と、判定プログラム９０３と、可視化プログラム９０４とを含んで構成される。なお、実施例１においても判定プログラム２１１が存在するが、実施例２での判定プログラム９０３とは一部処理が異なるため、ここでは新たな符号を付した。【０１３１】
ＣＰＵ２０３は、メモリ２０６に格納された判定プログラム９０３を実行することによりデータの到達性判定を、可視化プログラム９０４を実行することにより対策結果の可視化を行う。記憶装置２０５には脆弱性対策状況を保持した脆弱性対策ログ９０１と、データの到達量を格納したデータ到達ログ９０２が格納されている。【０１３２】
上記の各プログラムやデータは、あらかじめメモリ２０６または記憶装置２０５に格納されていてもよいし、必要な時に、入出力装置２０４または、ＩＦ２０１、ＩＦ２０２を介して他の装置から、インストール（ロード）されてもよい。【０１３３】
図１０は、脆弱性対策ログ９０１の一例を示す図である。図１０に示すように、脆弱性対策ログ９０１は、計算機識別子１００１と、ソフトウェア１００２と、脆弱性ＩＤ１００３と、対策ＩＤ１００４とを含む。【０１３４】
計算機識別子１００１には、対策対象システム１１４に存在する計算機の識別子が格納される。なお、構成情報データ２０８の計算機識別子４０２と同一の識別子を格納する。【０１３５】
ソフトウェア１００２には、脆弱性の影響をうけるソフトウェアを格納する。【０１３６】
脆弱性ＩＤ１００３には、計算機識別子１００１で稼働しているソフトウェア１００２に関する脆弱性の情報を格納する。脆弱性情報データ２０９の脆弱性情報５０１と同一の識別子を格納する。【０１３７】
対策ＩＤ１００４には、実施している対策ポリシの情報を格納する。対策ポリシデータ２１０のポリシＩＤ６０１と同一の識別子を格納する。【０１３８】
脆弱性対策ログ９０１は、計算機識別子１００１のソフトウェア１００２に脆弱性ＩＤ１００３の脆弱性が存在し、対策ＩＤ１００４の対策を実行していることを表す。【０１３９】
図１０を用いて具定例を説明する。一行目に格納されている脆弱性ログは、計算機識別子１００１が「サーバＡ」、ソフトウェア１００２が「Ｗｅｂサーバプログラム」、脆弱性ＩＤ１００３が「１」、対策ＩＤ１００４が「１、２」である。このとき、サーバＡ１０２のＷｅｂサーバプログラム１０９には、脆弱性ＩＤ１００３が「１」の脆弱性が存在し、現在、対策ＩＤが「１」と「２」の対策、つまり、「型チェック」と「ｓｃｒｉｐｔ除去」との対策を実施していることを表している。【０１４０】
脆弱性対策ログ９０１に格納されるログ情報は、サービスの提供者が、脆弱性対策を行った際に削除する。【０１４１】
脆弱性対策ログ９０１は、ＣＰＵ２０３により実行される判定プログラム９０３が、計算機上に脆弱性があるか否かを判定する際に利用される。判定プログラム９０３の具体的な処理については、図１３を用いて後述する。【０１４２】
脆弱性対策ログ９０１は、ＣＰＵ２０３により実行される可視化プログラム９０４が、対策結果を可視化する際にも利用される。可視化プログラム９０４の具体的な処理については、図１４を用いて後述する。【０１４３】
図１１は、データ到達ログ９０２の一例を示す図である。図１１に示すように、データ到達ログ９０２は、ホスト１１０１と、パス１１０２と、計算機識別子１１０３と、データ量１１０４とを含む。【０１４４】
ホスト１１０１は、サービスがどのサーバで提供されているかの情報が格納される。例えば、コンピュータネットワークにおいて個々のサーバを識別するドメイン名やＩＰアドレスなどが挙げられる。なお、ホスト１１０１にはサービスが提供されているポート番号を含んで格納しても良い。経路情報データ２０７のホスト３０２と同一の識別子が格納される。【０１４５】
パス１１０２は、提供されているサービスにどのようにアクセスできるかの情報が格納される。例えば、サーバ内部でのファイルの所在地などが挙げられる。また、パス１１０２には階層構造を示すために使われる「／」を含んで格納しても良い。経路情報データ２０７のパス３０３と同一の識別子が格納される。【０１４６】
ホスト１１０１とパス１１０２の組み合わせにより、インターネット上のサービスを特定することができる。【０１４７】
計算機識別子１１０３には、対策対象システム１１４に存在する計算機の識別子が格納される。なお、構成情報データ２０８の計算機識別子４０２と同一の識別子を格納する。【０１４８】
データ量１１０４には、計算機識別子１１０３に到達したデータの量が格納される。なお、データ量１１０４は、例えば、データの文字数などの値である。【０１４９】
データ到達ログ９０２は、ホスト１１０１、パス１１０２で提供されているサービスが受信したデータのうち、計算機識別子１１０３で処理されたデータが、データ量１１０４だけ存在することを表す。【０１５０】
図１１を用いて具定例を説明する。一行目に格納されているデータ到達ログは、ホスト１１０１が「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス１１０２が「ｓｅｒｖｅｒＡ．ｃｇｉ」、計算機識別子１１０３が「サーバＡ」、データ量１１０４が「３００」である。このとき、「ｈｔｔｐ：／／ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ／ｓｅｒｖｅｒＡ．ｃｇｉ」で提供されているサービスに到達したデータのうち、サーバＡ１０２に到達したデータが３００あったことを表している。【０１５１】
データ到達ログ９０２は、ＣＰＵ２０３により実行される可視化プログラム９０４が、対策結果を可視化する際に利用される。可視化プログラム９０４の具体的な処理については、図１４を用いて後述する。【０１５２】
図１２に、対策結果可視化画面の一例を示す。図１２に示すように、対策結果可視化画面１２０１は、脆弱性対策状況を表示する領域１２０２と、計算機到達データ量を表示する領域１２０３とを含む。【０１５３】
脆弱性対策状況を表示する領域１２０２は、どの計算機上でどのような脆弱性対策が行われているか、また、データが経由する計算機と、経由する順番も併せて表している。脆弱性対策状況を表示する領域１２０２には、計算機識別子「サーバＡ」のソフトウェア「Ｗｅｂサーバプログラム」に脆弱性が存在し、対策ポリシ「ｓｃｒｉｐｔ除去」及び「型チェック」の対策を実行しており、かつ、計算機識別子「サーバＣ」のソフトウェア「画像処理プログラム」に脆弱性が存在し、対策ポリシ「Ｊｐｅｇ変換」の対策を実行している場合の脆弱性対策状況を例示している。【０１５４】
サーバ到達データ量を表示する領域１２０３は、計算機に到達したデータが、どの計算機でどれだけ処理されたかの割合を円グラフなどを用いて表示している。【０１５５】
対策結果可視化画面１２０１はユーザからの可視化要求を受信した際に、可視化プログラム９０４が出力する。可視化プログラム９０４の具体的な処理については、図１４を用いて後述する。【０１５６】
続いて、脆弱性対策装置１０１の判定プログラム９０３がデータを受信し、データが到達する経路上のサーバに、脆弱性の影響を受けるソフトウェアが存在するか否かを判定する処理（以下、判定処理と呼ぶ。）について説明する。図１３は、判定処理のフローチャートである。【０１５７】
図１３に示すように、判定処理を実行する判定プログラム９０３は、ＣＰＵ２０３により実行され、ネットワーク１０６に接続された利用者端末からのパケットを、ＩＦ２０１を介して受信すると、受信したパケットを連結し、データを復元する（ステップ１３０１）。【０１５８】
判定プログラム９０３は、復元したデータから、ホスト、パス、パラメタ、値の情報を取得し、取得したすべてのパラメタについてステップ１３０３からステップ１３１４の処理を繰り返す（ステップ１３０２）。【０１５９】
判定プログラム９０３は、ステップ１３０２で取得したホスト、パス、パラメタの情報と、経路情報データ２０７のホスト３０２、パス３０３、パラメタ３０４とを比較し、該当する経路情報が存在すれば、ステップ１３０４に進み、存在しなければステップ１３１４に進む（ステップ１３０３）。【０１６０】
判定プログラム９０３は、ステップ１３０３で該当した経路情報データ２０７の経路３０５に記載された計算機識別子を取得し、取得したすべての計算機識別子についてステップ１３０５からステップ１３１３の処理を繰り返す（ステップ１３０４）。【０１６１】
判定プログラム９０３は、ステップ１３０２で取得したホスト、パス、パラメタ、値と、ステップ１３０４で取得した計算機識別子を基に、データ到達ログ９０２のデータ量１１０４を値のデータ量だけ加算する（ステップ１３０５）。【０１６２】
ホスト１１０１が「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス１１０２が「ｓｅｒｖｅｒＡ．ｃｇｉ」、計算機識別子１１０３が「サーバＡ」のデータ量１１０４が「３００」の時に、「ｈｔｔｐ：／／ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ／ｓｅｒｖｅｒＡ．ｃｇｉ？ｉｄ＝１２３」というデータを受信したとする。この場合、パラメタ「ｉｄ」に対応する値「１２３」は、経路情報データ２０７より、計算機識別子「サーバＡ」で処理されることが分かるため、判定プログラム９０３は、値「１２３」のデータ量３（ここで、データ量は文字数とする）をデータ量１１０４「３００」に加算し、「３０３」という値に更新する。【０１６３】
判定プログラム９０３は、ステップ１３０４で取得した計算機識別子と、脆弱性対策ログ９０１の計算機識別子１００１とを比較し、該当する脆弱性対策ログが存在すればステップ１３０７に、存在しなければステップ１３０８に進む（ステップ１３０６）。【０１６４】
このように、脆弱性対策ログ９０１との比較を行うことにより、ソフトウェアごとに脆弱性があるか否かの判定を行う処理を省略することが可能となり、判定処理に係る負荷を軽減することができる。【０１６５】
判定プログラム９０３は、ステップ１３０４で取得した計算機識別子と、構成情報データ２０８の計算機識別子４０２とを比較し、該当する構成情報のソフトウェア４０３とバージョン４０４を取得し、取得したすべてのソフトウェア４０３とバージョン４０４についてステップ１３０９からステップ１３０２の処理を繰り返す（ステップ１３０８）。【０１６６】
判定プログラム９０３は、ステップ１３０８で取得したソフトウェア、バージョンと、脆弱性情報データ２０９のソフトウェア５０３、バージョン５０４とを比較し、該当する脆弱性情報が存在すればステップ１３１０に進み、該当する脆弱性情報が存在しなければステップ１３１２に進む（ステップ１３０９）。【０１６７】
判定プログラム９０３は、対策プログラム２１２を実行し、対策処理を行う（ステップ１３１０）。なお、対策プログラム２１２の具体的な処理については、実施例１に記述してある。【０１６８】
判定プログラム９０３は、ステップ１３０４で取得した計算機識別子と、ステップ１３０８で取得したソフトウェアと、ステップ１３０９で取得した脆弱性ＩＤと、ステップ１３１０で取得した対策ＩＤとを、脆弱性対策ログ９０１に格納する（ステップ１３１１）。【０１６９】
上記の処理を行うことで、次からは対策ログ９０１との比較の際に該当する脆弱性情報が対策ログ９０１に格納されているため、ソフトウェアごとに脆弱性があるか否かの判定を行う処理を省略することが可能となる。【０１７０】
判定プログラム９０３は、受信したデータをパケットに分割し、ＩＦ２０２を介して送信し、処理を終了する（ステップ１３１５）。【０１７１】
ステップ１３０２からステップ１３１４までの判定処理の流れを、実施例１と同じ具体例を用いて説明する。なお、脆弱性対策ログ９０１及び、データ到達ログ９０２には、データが格納されていない状態であるとする。この時、例えば、「ｈｔｔｐ：／／ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ／ｓｅｒｖｅｒＡ．ｃｇｉ？ｉｄ＝１２３＆ｃｍｄ＝ｕｐｄａｔｅ」というデータを受信した場合、判定プログラム９０３は受信したデータから、ホスト「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス「ｓｅｒｖｅｒＡ．ｃｇｉ」、パラメタ「ｉｄ」「ｃｍｄ」、値「１２３」「ｕｐｄａｔｅ」を取得する。この場合、パラメタが２つあるため、２つのパラメタ「ｉｄ」「ｃｍｄ」のそれぞれについてステップ１３０３からステップ１３１３の処理を行う。【０１７２】
判定プログラム９０３は、一つ目のパラメタである「ｉｄ」に対して経路情報データ２０７との比較を行う。この場合、経路ＩＤ３０１が「１」のホスト３０２「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス３０３「ｓｅｒｖｅｒＡ．ｃｇｉ」、パラメタ３０４「ｉｄ」に該当する。判定プログラム９０３は、該当した経路情報の経路３０５に格納されている計算機識別子「サーバＡ」を取得する。【０１７３】
なお、上記ステップから、パラメタ「ｉｄ」に対応する値「１２３」が「サーバＡ」によって処理されることが分かる。【０１７４】
判定プログラム９０３は、データ到達ログ９０２に、ホスト「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス「ｓｅｒｖｅｒＡ．ｃｇｉ」、計算機識別子「サーバＡ」、データ量「３」（値「１２３」の文字数が３であるため、データ量は３となる）の値を格納する。【０１７５】
判定プログラム９０３は、取得した計算機識別子「サーバＡ」と、脆弱性対策ログ９０１の計算機識別子１００１とを比較する。この場合該当する脆弱性対策ログが存在しないため、ステップ１３０８に進む。【０１７６】
判定プログラム９０３は、取得した計算機識別子「サーバＡ」と構成情報データ２０８の計算機識別子４０２との比較を行う。この場合、構成ＩＤが「１」の計算機識別子４０２「サーバＡ」及び、構成ＩＤが「２」の計算機識別子４０２「サーバＡ」に該当する。該当する構成情報が２つあるため、２つのソフトウェア「Ｗｅｂサーバプログラム」「オペレーティングシステムＡ」のそれぞれについて、ステップ１３０９からステップ１３１２の処理を繰り返す。【０１７７】
判定プログラム９０３は、一つ目のソフトウェア、バージョンである「Ｗｅｂサーバプログラム」、「０．９」と、脆弱性情報データ２０９のソフトウェア５０３、バージョン５０４を比較する。この場合、脆弱性ＩＤが「１」のソフトウェア５０３「Ｗｅｂサーバプログラム」、バージョン５０４「１．０以前」に該当する。判定プログラム２１１は、該当する脆弱性情報が存在したため、対策プログラム２１２を実行し、計算機識別子「サーバＡ」、ソフトウェア「Ｗｅｂサーバプログラム」、バージョン「０．９」、パラメタ「ｉｄ」、値「１２３」を対策プログラムに２１２に送信する。【０１７８】
なお、対策プログラム２１２の具体的な処理については実施例１に記述してある。【０１７９】
判定プログラム９０３は、計算機識別子「サーバＡ」、ソフトウェア「Ｗｅｂサーバプログラム」、脆弱性ＩＤ「１」及び、対策プログラム２１２で実施された対策ＩＤ「１、２」を脆弱性対策ログ９０１に格納する。【０１８０】
判定プログラム９０３は、二つ目のソフトウェア、バージョンである「オペレーティングシステムＡ」、バージョン「２．３」と、脆弱性情報データ２０９のソフトウェア５０３、バージョン５０４を比較する。この場合、該当する脆弱情報は存在しないため、対策処理（ステップ１３１０）及び、脆弱性対策ログ９０１の更新処理(ステップ１３１１)は実行されない。【０１８１】
次に、判定プログラム９０３は、２つ目のパラメタである「ｃｍｄ」に対して経路情報データ２０７との比較を行う。この場合、経路ＩＤ３０１が「２」のホスト３０２「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス３０３「ｓｅｒｖｅｒＡ．ｃｇｉ」、パラメタ３０４「ｃｍｄ」に該当する。判定プログラム２１１は、該当した経路情報の経路３０５に格納されている計算機識別子「サーバＡ、サーバＢ」を取得する。【０１８２】
なお、上記ステップから、パラメタ「ｃｍｄ」に対応する値「ｕｐｄａｔｅ」が「サーバＡ」と「サーバＢ」によって処理されることが分かる。このとき、経路にサーバが２つ存在するため、２つの計算機識別子「サーバＡ」「サーバＢ」のそれぞれについて、ステップ１３０５からステップ１３１３の処理を繰り返す。【０１８３】
判定プログラム９０３は、データ到達ログ９０２に、ホスト「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス「ｓｅｒｖｅｒＡ．ｃｇｉ」、計算機識別子「サーバＡ」のデータ量を更新する。この時、データ量には、「３」が格納されているため、「３」に「ｕｐｄａｔｅ」のデータ量「６」を加算した「９」を、データ量として格納する。【０１８４】
判定プログラム９０３は、取得した計算機識別子「サーバＡ」と、脆弱性対策ログ９０１の計算機識別子１００１とを比較する。この場合、先ほど格納した脆弱性対策ログが該当するため、ステップ１３０７の対策プログラム２１２の実行に進む。【０１８５】
判定プログラム９０３は、二つ目の計算機識別子である「サーバＢ」に関して、データ到達ログ９０２の更新を行う。この時、データ到達ログ９０２に、ホスト「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス「ｓｅｒｖｅｒＡ．ｃｇｉ」、計算機識別子「サーバＢ」、データ量「６」のデータを格納する。【０１８６】
判定プログラム９０３は、取得した計算機識別子「サーバＢ」と、脆弱性対策ログ９０１の計算機識別子１００１とを比較する。この場合該当する脆弱性対策ログが存在しないため、ステップ１３０８に進む。【０１８７】
判定プログラム９０３は、取得した計算機識別子「サーバＢ」と構成情報データ２０８の計算機識別子４０２との比較を行う。この場合、構成ＩＤが「３」の計算機識別子４０２「サーバＢ」及び、構成ＩＤが「４」の計算機識別子４０２「サーバＢ」に該当する。該当する構成情報が２つあるため、２つのソフトウェア「ＤＢサーバプログラム」「オペレーティングシステムＢ」のそれぞれについて、ステップ１３０９からステップ１３１２の処理を繰り返す。【０１８８】
判定プログラム９０３は、一つ目のソフトウェア、バージョンである「ＤＢサーバプログラム」、「２．３」と、脆弱性情報データ２０９のソフトウェア５０３、バージョン５０４を比較する。この場合、該当する脆弱情報は存在しないため、対策処理（ステップ１３１０）及び脆弱性対策ログ９０１の更新（ステップ１３１１）は実行されない。【０１８９】
判定プログラム９０３は、二つ目のソフトウェア、バージョンである「オペレーティングシステムＢ」、バージョン「０．５」と、脆弱性情報データ２０９のソフトウェア５０３、バージョン５０４を比較する。この場合、脆弱性ＩＤが「４」のソフトウェア５０３「オペレーティングシステムＢ」、バージョン５０４「１．０以前」に該当する。判定プログラム９０３は、該当する脆弱性情報が存在したため、対策プログラム２１２を実行し、計算機識別子「サーバＢ」、ソフトウェア「オペレーティングシステムＢ」、パラメタ「ｃｍｄ」、値「ｕｐｄａｔｅ」を対策プログラムに２０７に送信する。【０１９０】
判定プログラム９０３は、計算機識別子「サーバＢ」、ソフトウェア「オペレーティングシステムＢ」、脆弱性ＩＤ「４」及び、対策プログラム２１２で実施された対策ＩＤ「３」を脆弱性対策ログ９０１に格納する。【０１９１】
続いて、脆弱性対策装置１０１の可視化プログラム９０４が可視化リクエストを受信し、脆弱性対策結果を可視化する処理（以下、可視化処理と呼ぶ。）について説明する。図１４は、可視化処理のフローチャートである。【０１９２】
図１４に示すように、可視化処理を実行する可視化プログラム９０４は、ＣＰＵ２０３により実行され、入出力装置２０４から可視化リクエストを受信する（ステップ１４０１）。なお、可視化リクエストには少なくとも可視化を行うホストとパスの情報が含まれている。【０１９３】
可視化プログラム９０４は、受信したホスト、パスと、経路情報データ２０７のホスト３０２、パス３０３とを比較し、該当する経路３０５を取得する（ステップ１４０２）。【０１９４】
可視化プログラム９０４は、ステップ１４０２で取得した経路に含まれる計算機識別子と、脆弱性対策ログ９０１の計算機識別子１００１とを比較し、一致する計算機識別子１００１が存在すれば、該当するソフトウェア１００２、脆弱性ＩＤ１００３、対策ＩＤ１００４を取得する（ステップ１４０３）。【０１９５】
可視化プログラム９０４は、ステップ１４０１で受信したホスト、パス、ステップ１４０２で取得した計算機識別子と、データ到達ログ９０２のホスト１１０１、パス１１０２、計算機識別子１１０３を比較し、該当するデータ量１１０４を取得する（ステップ１４０４）。【０１９６】
可視化プログラム９０４は、ステップ１４０２〜ステップ１４０４で取得した情報から可視化画面を描画し、入出力装置２０４に出力する（ステップ１４０５）。このとき、ステップ１４０２で取得した経路の情報から、各計算機のデータの到着状況を復元し、可視化する。【０１９７】
ステップ１４０１からステップ１４０５までの可視化処理の流れを、具体例を用いて説明する。可視化プログラム９０４がホスト「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス「ｓｅｒｖｅｒＡ．ｃｇｉ」の対策結果を可視化するよう、可視化リクエストを受けたとする。可視化プログラム９０４は、受信したホスト「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス「ｓｅｒｖｅｒＡ．ｃｇｉ」の情報を経路情報データ２０７のホスト３０２、パス３０３と比較する。この場合、経路ＩＤ３０１が「１」「２」「３」の３つの経路情報が該当する。【０１９８】
可視化プログラム９０４は該当した３つの経路情報の経路３０５に含まれている計算機識別子を取得する。この場合、該当する経路３０５は、「サーバＡ」「サーバＡ、サーバＢ」「サーバＡ、サーバＢ、サーバＣ」の３つとなり、これらの経路３０５に含まれる計算機識別子は、重複を除けば「サーバＡ」「サーバＢ」「サーバＣ」の３つとなる。【０１９９】
可視化プログラム９０４は、取得した計算機識別子と、対策ログ９０１の計算機識別子１００１を比較し、該当するソフトウェア１００２、脆弱性ＩＤ１００３、対策ＩＤ１００４を取得する。この場合、サーバＡは、対策ログ９０１の１行目の情報、計算機識別子１００１が「サーバＡ」、ソフトウェア１００２が「Ｗｅｂサーバプログラム」、脆弱性ＩＤ１００３が「１」、対策ＩＤ１００４が「１、２」の対策ログに該当する。また、サーバＣは、対策ログ９０１の２行目の情報、計算機識別子１００１が「サーバＣ」、ソフトウェア１００２が「画像処理プログラム」、脆弱性ＩＤ１００３が「３」、対策ＩＤ１００４が「４」の対策ログに該当する。【０２００】
可視化プログラム９０４は、可視化リクエストとして受信したホスト「ｗｗｗ．ｓｅｒｖｅｒＡ．ｏｒｇ」、パス「ｓｅｒｖｅｒＡ．ｃｇｉ」の情報と、取得した計算機識別子「サーバＡ」「サーバＢ」「サーバＣ」の情報とを、データ到達ログ９０２と比較し、該当するデータ量を取得する。この場合は、該当するデータ量は、それぞれ、「３００」「２００」「１００」となる。【０２０１】
可視化プログラム９０４は、以上の処理によって得た情報を用いて、図１２に例示した可視化結果画面を出力する。【０２０２】
このように、脆弱性対策を行う脆弱性対策装置において、可視化プログラム９０４が、脆弱性対策の結果を可視化することで、サービス提供者が迅速に脆弱性の対策結果を知ることが可能となる。【０２０３】
なお、本実施例の一部を変更して、次のように実施してもよい。データ到達ログ９０２の情報を一定時間ごとに、記憶装置に記憶させ、データ量をリセットする。これにより、図１５に示すように、計算機到達データを時系列で表示することが可能となる。計算機到達データを時系列で表示することにより、例えば、ある時刻ｔ１とｔ２の間のデータ量の変化率が他の時刻との間の変化率に比べて大きい等、サービス提供者はどの計算機でいつ異常があったか判断することが可能となる。【０２０４】
また、可視化リクエストをＩＦ２０１または、ＩＦ２０２を介して受信し、可視化結果をＩＦ２０１または、ＩＦ２０２を介して送信する。これにより、サービス提供者はリモート環境から脆弱性対策結果を確認することが可能となる。【０２０５】
また、可視化プログラム９０４を、脆弱性対策装置１０１から分離し、別の計算機上に実装してもよい。これにより、脆弱性対策装置１０１において、可視化に関する負荷を軽減することが可能となる。また、可視化に必要となる、脆弱性対策ログ９０１や、到達データログ９０２を脆弱性対策装置１０１から分離し、他の計算機上に格納してもよい。【０２０６】
本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【０２０７】
１０１：脆弱性対策装置
１０５：脆弱性情報公開サイト
１０６：ネットワーク
１１４：対策対象システム
２０７：経路情報データ
２０８：構成情報データ
２０９：脆弱性情報データ
２１０：対策ポリシデータ
２１１：判定プログラム
２１２：対策プログラム
９０１：脆弱性対策ログ
９０２：データ到達ログ
９０３：判定プログラム
９０４：可視化プログラム
１２０１：可視化画面。
【図１】
2013035181.tif 000003
【図２】
2013035181.tif 000004
【図３】
2013035181.tif 000005
【図４】
2013035181.tif 000006
【図５】
2013035181.tif 000007
【図６】
2013035181.tif 000008
【図７】
2013035181.tif 000009
【図８】
2013035181.tif 000010
【図９】
2013035181.tif 000011
【図１０】
2013035181.tif 000012
【図１１】
2013035181.tif 000013
【図１２】
2013035181.tif 000014
【図１３】
2013035181.tif 000015
【図１４】
2013035181.tif 000016
【図１５】
2013035181.tif 000017
【国際調査報告】
2013035181.tif 000018
2013035181.tif 000019
2013035181.tif 000020