(57)【要約】【課題】正確な診断作業計画を立てることと、診断作業の遅延を防止することを課題とする。【解決手段】脆弱性診断ホストは、脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶する診断履歴ＤＢを備える。そして、脆弱性診断ホストは、脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とを、脆弱性診断の実施を指示する管理者端末から受け付け、受け付けられたホスト名に対応する脆弱性診断履歴を診断履歴ＤＢから抽出し、抽出された脆弱性診断履歴に基づいて、ホストに脆弱性診断を実施した場合に要する予測診断時間を算出し、算出された予測診断時間と、受け付けられた予定日時とに基づいて、ホストに脆弱性診断を実施する診断スケジュールを作成する。【選択図】        図１
2009237807.tif 000002
【特許請求の範囲】
【請求項１】
脆弱性診断に対象となる各種装置を示すホストに対して、脆弱性診断を実施する脆弱性診断実施装置であって、
前記脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶する診断履歴記憶手段と、
前記脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とを、前記脆弱性診断の実施を指示する管理者端末から受け付ける指示受付手段と、
前記指示受付手段により受け付けられたホスト名に対応する脆弱性診断履歴を前記診断履歴記憶手段から抽出する診断履歴抽出手段と、
前記診断履歴抽出手段により抽出された脆弱性診断履歴に基づいて、前記ホストに脆弱性診断を実施した場合に要する予測診断時間を算出する予測診断時間算出手段と、
前記予測診断時間算出手段により算出された予測診断時間と、前記指示受付手段により受け付けられた予定日時とに基づいて、前記ホストに脆弱性診断を実施する診断スケジュールを作成するスケジュール作成手段と、
を備えたことを特徴とする脆弱性診断実施装置。
【請求項２】
前記予測診断時間算出手段は、前記診断履歴抽出手段により抽出された脆弱性診断履歴に含まれる前記診断実施時間に対して、要約統計量を用いて前記予測診断時間を算出することを特徴とする請求項１に記載の脆弱性診断実施装置。
【請求項３】
前記指示受付手段は、前記予定日時とホスト名とさらに前記診断項目を、前記管理者端末から受け付け、
前記診断履歴抽出手段は、前記指示受付手段により受け付けられたホスト名と診断項目とに対応付けられた脆弱性診断履歴を前記診断履歴記憶手段から抽出することを特徴とする請求項１または２に記載の脆弱性診断実施装置。
【請求項４】
前記診断履歴抽出手段は、前記指示受付手段により受け付けられたホスト名と診断項目とに対応付けられた脆弱性診断結果が前記診断履歴記憶手段に記憶されていない場合に、前記ホスト名に関係なく、前記診断履歴記憶手段に記憶されている全ての脆弱性診断履歴から当該診断項目に対応する脆弱性診断履歴を抽出することを特徴とする請求項３に記載の脆弱性診断実施装置。
【請求項５】
前記指示受付手段は、前記予定日時として、診断を開始する診断開始予定時間と診断を終了させる診断終了予定時間と各ホストごとの診断可能時間帯とを、前記管理者端末から受け付け、
前記スケジュール作成手段は、前記予測診断時間算出手段により算出された予測診断時間から、前記指示受付手段により受け付けられた診断開始予定時間から診断終了予定時間までの間で、前記各ホストごとの診断可能時間帯に診断が終了するように、前記診断スケジュールを作成することを特徴とする請求項３または４に記載の脆弱性診断実施装置。
【請求項６】
前記スケジュール作成手段は、前記指示受付手段により受け付けられた診断終了予定時間が直近のホストを優先して診断実施時間を確保するように、前記診断スケジュールを作成することを特徴とする請求項５に記載の脆弱性診断実施装置。
【請求項７】
前記スケジュール作成手段により作成された診断スケジュールにおいて、前記指示受付手段により受け付けられた診断終了予定時間に終了しないスケジュールが存在する場合に、当該診断終了予定時間に終了しないスケジュールが存在することを示す警報を前記管理者端末に送信する警報出力手段をさらに備えたことを特徴とする請求項５または６に記載の脆弱性診断実施装置。
【請求項８】
前記指示受付手段は、同時に実行可能なホスト数を前記管理者端末から受け付け、
前記スケジュール作成手段は、前記指示受付手段により受け付けられた同時に実行可能なホスト数の範囲内で、前記算出された予測診断時間と、前記受け付けられた予定日時とに基づいて、前記ホストに脆弱性診断を実施する診断スケジュールを作成することを特徴とする請求項１〜７のいずれか一つに記載の脆弱性診断実施装置。
【請求項９】
前記スケジュール作成手段により作成された診断スケジュールを所定の表示部に表示出力して、前記管理者端末から作成された診断スケジュールの組み換えを受け付け、受け付けた組み換えに基づいて、新たに診断スケジュールを再作成するスケジュール再作成手段をさらに備えたことを特徴とする請求項１〜７のいずれか一つに記載の脆弱性診断実施装置。
【請求項１０】
各種装置を示すホストに対して、脆弱性診断を実施する脆弱性診断実施装置としてのコンピュータに実行させる診断スケジュール作成プログラムであって、
前記脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶する診断履歴記憶手段と、
前記脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とを、前記脆弱性診断の実施を指示する管理者端末から受け付ける指示受付手順と、
前記指示受付手順により受け付けられたホスト名に対応する脆弱性診断履歴を前記診断履歴記憶手段から抽出する診断履歴抽出手順と、
前記診断履歴抽出手順により抽出された脆弱性診断履歴に基づいて、前記ホストに脆弱性診断を実施した場合に要する予測診断時間を算出する予測診断時間算出手順と、
前記予測診断時間算出手順により算出された予測診断時間と、前記指示受付手順により受け付けられた予定日時とに基づいて、前記ホストに脆弱性診断を実施する診断スケジュールを作成するスケジュール作成手順と、
をコンピュータに実行させることを特徴とする診断スケジュール作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、脆弱性診断に対象となる各種装置を示すホストに対して、脆弱性診断を実施する脆弱性診断実施装置および診断スケジュール作成プログラムに関する。
【背景技術】
【０００２】
従来より、インターネットや企業内のイントラネットにおいて利用されている各種のサーバ（例えば、Ｗｅｂサーバ、メールサーバなど）や通信機器（例えば、ルータ、ファイアウォールなど）に存在する脆弱性の診断が行われている。
【０００３】
この脆弱性を診断する手法としては、診断対象の機器にログインして設定に関する各種情報をローカルで取得して診断するローカル診断手法（特許文献１参照）と、診断対象の機器に対してネットワーク経由で接続されたホストからデータを送信して得られた応答の内容から診断を行うリモート診断手法（非特許文献１参照）がある。
【０００４】
このような手法は、特定のタイミングで実施する必要があるため、日々新たな脆弱性が発見される今日では、新たな脆弱性に対応した診断内容や診断プログラムを頻繁に検討して、定期的に診断を実行する必要がある。
【０００５】
【特許文献１】特開２００２−３２８８９６号公報
【非特許文献１】“内在する脆弱性に注目せよ〜脆弱性診断を解説する〜”、日経ＩＴｐｒｏ、セキュリティ記事「http://itpro.nikkeibp.co.jp/article/COLUMN/20060816/245784/」
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記した従来の技術は、正確な診断作業計画を立てることができないという課題と、診断作業の遅延を防止することができないという課題とがあった。
【０００７】
具体的には、診断対象機器のハードウエアの性能やソフトウエアの設定によって診断プログラムを起動してから診断が終了するまでの時間が大きく異なっており、作業終了の予定時刻を見込むには経験にしか頼るものがなく、画一的に正確な診断作業の計画を立てることができない。また、上記したように、作業終了の予定時刻を見込むには経験にしか頼るものがないため、特定の期間内に複数のホストに対する診断を完了しようとした場合でも、前の作業の遅延などにより、作業時間が大きくずれ込んでしまうことが頻繁に起こる。
【０００８】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、正確な診断作業計画を立てることが可能であることと、診断作業の遅延を防止することが可能であることが脆弱性診断実施装置および診断スケジュール作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本発明は、各種装置を示すホストに対して、脆弱性診断を実施する脆弱性診断実施装置であって、前記脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶する診断履歴記憶手段と、前記脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とを、前記脆弱性診断の実施を指示する管理者端末から受け付ける指示受付手段と、前記指示受付手段により受け付けられたホスト名に対応する脆弱性診断履歴を前記診断履歴記憶手段から抽出する診断履歴抽出手段と、前記診断履歴抽出手段により抽出された脆弱性診断履歴に基づいて、前記ホストに脆弱性診断を実施した場合に要する予測診断時間を算出する予測診断時間算出手段と、前記予測診断時間算出手段により算出された予測診断時間と、前記指示受付手段により受け付けられた予定日時とに基づいて、前記ホストに脆弱性診断を実施する診断スケジュールを作成するスケジュール作成手段と、を備えたことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶し、脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とを、脆弱性診断の実施を指示する管理者端末から受け付け、受け付けられたホスト名に対応する脆弱性診断履歴を抽出し、抽出された脆弱性診断履歴に基づいて、ホストに脆弱性診断を実施した場合に要する予測診断時間を算出し、算出された予測診断時間と、受け付けられた予定日時とに基づいて、ホストに脆弱性診断を実施する診断スケジュールを作成するので、正確な診断作業計画を立てることが可能であり、診断作業の遅延を防止すること可能である。
【発明を実施するための最良の形態】
【００１１】
以下に添付図面を参照して、この発明に係る脆弱性診断実施装置および診断スケジュール作成プログラムの実施例を詳細に説明する。なお、以下では、本実施例に係る脆弱性診断実施装置の概要および特徴、脆弱性診断実施装置の構成および処理の流れを順に説明し、最後に本実施例に対する種々の変形例を説明する。
【実施例１】
【００１２】
［脆弱性診断ホストの概要および特徴］
まず最初に、図１を用いて、実施例１に係る脆弱性診断ホストの概要および特徴を説明する。図１は、実施例１に係る脆弱性診断ホストを含むシステムの全体構成を示すシステム構成図である。
【００１３】
図１に示すように、このシステムは、ネットワークを介して各種装置に対して脆弱性診断を実施する脆弱性診断ホスト（特許請求の範囲に記載の「脆弱性診断実施装置」に対応する）と、脆弱性診断の対象ホスト（対象装置）となるＷｅｂサーバ、ＦＷ（ファイアウォール）、メールサーバなどから構成される。
【００１４】
また、この脆弱性診断ホストが実施する脆弱性診断とは、コンピュータやネットワークなどの情報システムにおける各種装置において、システムの乗っ取りや機密情報の漏洩などを第三者に利用される可能性のある欠陥や仕様上の問題点を検出することであり、ハードウエア上のバグに限定されず、ソフトウエア上のバグやＯＳ上のバグも検出することができる。
【００１５】
このような構成において、実施例１に係る脆弱性診断ホストは、各種装置を示すホストに対して、脆弱性診断を実施することを概要とするものであり、特に、正確な診断作業計画を立てることが可能であることと、診断作業の遅延を防止することが可能であることに主たる特徴がある。
【００１６】
この主たる特徴について具体的に説明すると、脆弱性診断ホストは、脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断結果を記憶する診断履歴ＤＢを備える。具体的に例を挙げると、脆弱性診断ホストの診断履歴ＤＢは、「番号、ホスト名、開始日時、終了日時、実施時間」として「１、Ｗｅｂサーバ、2007/1/10、10:00:00、2007/1/10、10:00:20、20ｓ」、「２、ＦＷ、2007/2/25、9:00:00、2007/2/25、9:00:40、40ｓ」などと記憶する。
【００１７】
ここで、「番号」とは各レコードを識別する番号であり、「ホスト名」とは、脆弱性診断を実施したホストを一意に識別する識別子であり、「開始日時」とは、脆弱性診断を実施した日時を示すものであり、「終了日時」とは、実施した脆弱性診断が終了した日時を示すものであり、「実施時間」とは、当該脆弱性診断に要した時間のことである。
【００１８】
そして、脆弱性診断ホストは、脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とをユーザから受け付ける（図１の（１）参照）。具体的に例を挙げれば、脆弱性診断ホストは、管理者が利用する管理者端末からスケジュール作成指示を受け付けた後に、脆弱性診断を実施する予定日時として「2008/03/25、12:00:00」と当該予定日時に診断対象となるホスト名として「Ｗｅｂサーバ、ＦＷ」とを、管理者端末から受け付ける。
【００１９】
すると、脆弱性診断ホストは、受け付けられたホスト名に対応する脆弱性診断履歴を診断履歴ＤＢから抽出する（図１の（２）参照）。上記した例で具体的に説明すると、脆弱性診断ホストは、受け付けられたホスト名「Ｗｅｂサーバ」に対応する脆弱性診断履歴として「番号１と番号３」を抽出し、また、受け付けられたホスト名「ＦＷ」に対応する脆弱性診断結果として「番号２と番号４〜番号６」を抽出する。
【００２０】
そして、脆弱性診断ホストは、抽出された脆弱性診断履歴に基づいて、ホストに脆弱性診断を実施した場合に要する予測診断時間を算出する（図１の（３）参照）。上記した例で具体的に説明すると、脆弱性診断ホストは、例えば、抽出された脆弱性診断履歴「番号１（20ｓ）と番号３（50ｓ）」の「実施時間」の平均を算出して、算出した平均値（＝35ｓ）をホストＡに脆弱性診断を実施した場合に要する予測診断時間とする。同様に、脆弱性診断ホストは、例えば、抽出された脆弱性診断履歴「番号２（40ｓ）、番号４（80ｓ）、番号５（30ｓ）、番号６（50ｓ）」の「実施時間」の平均を算出して、算出した平均値（＝50ｓ）をホストＢに脆弱性診断を実施した場合に要する予測診断時間とする。なお、ここでは、予測診断時間の算出として平均値を用いた場合を説明したが、本発明はこれに限定されるものではなく、分散、標準偏差、歪度、尖度、中央値などの要約統計量を用いて算出してもよい。
【００２１】
続いて、脆弱性診断ホストは、算出された予測診断時間と、受け付けられた予定日時とに基づいて、ホストに脆弱性診断を実施する診断スケジュールを作成する（図１の（４）参照）。上記した例で具体的に説明すると、脆弱性診断ホストは、算出された予測診断時間が「Ｗｅｂサーバ、35ｓ」、「ＦＷ、50ｓ」であり、受け付けられた実施予定日時が「2008/03/25、12:00:00」であることより、「2008/03/25、12:00:00」から予想実施時間が短いＷｅｂサーバを実行し、次に、ＦＷを実行するスケジュールを作成する。具体的には、脆弱性診断ホストは、「ホスト名、開始日時、終了日時、予想実施時間」として「Ｗｅｂサーバ、2008/03/25、12:00:00、2008/03/25、12:00:35、35ｓ」、「ＦＷ、2008/03/25、12:00:36、2008/03/25、12:01:26、50ｓ」とするスケジュールを作成する。なお、ここでは、脆弱性診断ホストは、予想実施時間が短いホストを先に実行するスケジュールを作成する場合について説明したが、本発明はこれに限定されるものではなく、様々な要因に基づいて、スケジュールを作成することができる。
【００２２】
すると、脆弱性診断ホストは、作成したこの診断スケジュールをモニタなどの表示部に出力することで、管理者に通知する。なお、ここでは、表示手法は、本発明はこれに限定されるものではなく、メールで通知したり、音声で通知したり、一般的に用いられている様々な通知手法を用いることができる。
【００２３】
このように、実施例１に係る脆弱性診断ホストは、ネットワークの遅延など様々な環境のもとに実行された過去の診断結果を履歴として保存し、当該履歴に基づいて、次回の診断に必要であると予測される時間を算出してスケジュールを作成することができる結果、上記した主たる特徴のごとく、正確な診断作業計画を立てることが可能であり、診断作業の遅延を防止することが可能である。
【００２４】
［脆弱性診断ホストの構成］
次に、図２を用いて、図１に示した脆弱性診断ホストの構成を説明する。図２は、実施例１に係る脆弱性診断ホストの構成を示すブロック図である。図２に示すように、この脆弱性診断ホスト１０は、通信制御Ｉ／Ｆ部１１と、診断履歴ＤＢ１２と、診断スケジュールＤＢ１３と、脆弱性診断アプリケーション１５と、脆弱性診断アプリケーションマネージャ２０とから構成される。
【００２５】
通信制御Ｉ／Ｆ部１１は、ネットワークに接続される各種装置（ホスト）との通信を制御する。具体的に例を挙げると、通信制御Ｉ／Ｆ部１１は、それぞれのホストと接続する複数のポートを備え、管理者端末からスケジュール作成指示を受け付けたり、管理者端末に作成されたスケジュールを出力したり、各ホストに対して実行される脆弱性診断アプリケーションの通信を制御したりする。
【００２６】
診断履歴ＤＢ１２は、脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶する。具体的に例を挙げると、診断履歴ＤＢ１２は、図３に示すように、「ホスト名、診断ＩＤ、診断項目、診断開始日時、診断終了日時、一時停止日時、再開日時、診断時間」として「ＡＡＡ、１、ＳＳＨ、2007/12/1、10:00:00、2007/12/1、10:01:10、-、-、70ｓ」、「ＡＡＡ、１、Ｗｅｂ、2007/12/1、10:01:11、2007/12/1、10:01:30、-、-、19ｓ」などと記憶する。なお、図３は、診断履歴ＤＢに記憶される情報の例を示す図である。
【００２７】
ここで、「ホスト名」とは、脆弱性診断を実施したホストを一意に識別する識別子であり、「診断ＩＤ」とは、同じ日時に実施された脆弱性診断を識別するものであり、「診断項目」とは、脆弱性診断を実施した項目やプロトコル、サービスを識別するものであり、「診断開始日時」とは、脆弱性診断を実施した日時を示すものであり、「診断終了日時」とは、実施した脆弱性診断が終了した日時を示すものであり、「一時停止日時」とは、当該脆弱性診断が一時的に停止した日時を示すものであり、「再開日時」とは、当該脆弱性診断が一時的に停止した後に再開した日時を示すものであり、「診断時間」とは、当該脆弱性診断に要した時間のことである。
【００２８】
診断スケジュールＤＢ１３は、後述する脆弱性診断アプリケーションマネージャ２０により作成された診断スケジュールを記憶する。具体的に例を挙げると、診断スケジュールＤＢ１３は、図４に示すように、「ホスト名、診断ＩＤ、診断項目、診断開始日時（予想）、診断終了日時（予想）、予想診断時間」として「ＡＡＡ、１、ＳＳＨ、2007/12/1、10:00:00、2007/12/1、10:00:30、30ｓ」、「ＡＡＡ、１、Ｗｅｂ、2007/12/1、10:00:31、2007/12/1、10:02:11、40ｓ」などと記憶する。なお、図４は、診断スケジュールＤＢに記憶される情報の例を示す図である。
【００２９】
ここで、「ホスト名」とは、脆弱性診断を実施するホストを一意に識別する識別子であり、「診断ＩＤ」とは、同じ日時に実施される脆弱性診断を識別するものであり、「診断項目」とは、脆弱性診断を実施する項目やプロトコル、サービスを識別するものであり、「診断開始日時（予想）」とは、管理者端末から入力された脆弱性診断を実施する日時を示すものであり、「診断終了日時（予想）」とは、管理者端末から入力された脆弱性診断を終了する日時を示すものであり、「予想診断時間」とは、後述する脆弱性診断アプリケーションマネージャ２０により算出された脆弱性診断に要する時間のことである。
【００３０】
脆弱性診断アプリケーション１５は、診断対象ホスト上で、リモート診断を実施する。具体的に例を挙げると、脆弱性診断アプリケーション１５は、診断スケジュールＤＢ１３に記憶される診断スケジュールに従って、各種診断を実施し、当該診断結果を後述する脆弱性診断アプリケーションマネージャ２０に通知するとともに、当該診断結果を診断履歴ＤＢ１２に格納する。具体的には、脆弱性診断アプリケーション１５は、診断スケジュールＤＢ１３に記憶される診断スケジュールを参照し、診断開始日時（予想）に到達したスケジュールがあれば、当該スケジュールの診断項目をホストに対して実施して、当該診断結果を後述する脆弱性診断アプリケーションマネージャに通知するとともに、当該診断結果を診断履歴ＤＢ１２に格納する。このようにして、脆弱性診断アプリケーション１５は、診断スケジュールＤＢ１３に記憶される診断スケジュールを常に参照しておき、診断開始日時（予想）に到達したスケジュールを順次実行することもでき、また、診断スケジュールＤＢ１３に記憶される診断スケジュールに基づいて管理者から指定されたスケジュールのみを実行することもできる。
【００３１】
脆弱性診断アプリケーションマネージャ２０は、脆弱性診断アプリケーションを実行するスケジュールを作成するアプリケーションであり、特に本発明に密接に関連するものとしては、ユーザインタフェース部２１と、脆弱性診断アプリケーション制御部２２と、診断履歴管理部２３とを備える。
【００３２】
ユーザインタフェース部２１は、管理者などが脆弱性診断アプリケーションマネージャ２０を操作するためのインタフェースであり、特に本発明に密接に関連するものとしては、画面出力機能部２１ａと、データ転送処理部２１ｂとを備える。
【００３３】
画面出力機能部２１ａは、モニタ（若しくはディスプレイ、タッチパネル）やスピーカを備えて構成され、診断実行に必要となる情報を管理者端末から受け付ける。具体的に例を挙げると、画面出力機能部２１ａは、診断実行に必要となる情報として「診断内容（項目）、診断対象ホスト名（またはＩＰアドレス）、診断スケジュール」などを受け付ける画面を出力して、当該情報を管理者端末から受け付ける。また、画面出力機能部２１ａは、上記した情報以外にも、複数のホストに診断を実施する場合の優先順位や実施可能時間帯などの情報を受け付ける画面を表示して、当該情報を管理者端末から受け付けることもできる。
【００３４】
また、画面出力機能部２１ａは、管理者端末から受け付けた情報を後述するデータ転送処理部２１ｂに出力する。さらに、画面出力機能部２１ａは、後述する診断履歴管理部２３により生成されて格納された診断スケジュールを診断スケジュールＤＢ１３から取得して管理者に表示したり、脆弱性診断アプリケーションにより実行された実行結果を管理者端末に表示したりする。
【００３５】
データ転送処理部２１ｂは、管理者端末などから入力された各種情報を各機能部に転送する。具体的に例を挙げると、データ転送処理部２１ｂは、画面出力機能部２１ａにより受け付けられた診断実行に必要となる情報「診断内容（項目）、診断対象ホスト名（またはＩＰアドレス）、診断スケジュール」などを後述する脆弱性診断アプリケーション制御部２２や診断履歴管理部２３に転送する。また、データ転送処理部２１ｂは、画面出力機能部２１ａにより受け付けられた診断実行に必要となる情報「診断内容（項目）、診断対象ホスト名（またはＩＰアドレス）、診断スケジュール」のうち、「診断内容（項目）、診断対象ホスト名（またはＩＰアドレス）」については履歴抽出部２３ｂに転送し、「診断スケジュール」についてはスケジュール計画部２３ｄに出力したりするなど、情報を振り分けることもできる。
【００３６】
脆弱性診断アプリケーション制御部２２は、後述する診断履歴管理部２３により生成されて診断スケジュールＤＢ１３に格納された診断スケジュールに従って、管理者端末から指示された診断スケジュールを実行するために、脆弱性診断アプリケーション１５を実行・停止する機能部であり、特に本発明に密接に関連するものとしては、形式確認部２２ａと、起動制御部２２ｂと、結果取得部２２ｃとを備える。
【００３７】
形式確認部２２ａは、診断実行に必要となる情報「診断内容（項目）、診断対象ホスト名（またはＩＰアドレス）、診断スケジュール」などをユーザインタフェース部２１から受信し、受信した情報がシステムで規定されている形式に従っているか、情報の過不足がないか、不正なパラメータが混入されていないかの検査を実施する。そして、形式確認部２２ａは、検査した情報に問題がなければ、起動制御部２２ｂや結果取得部２２ｃに当該情報を送信する。また、形式確認部２２ａは、検査した情報に問題がある場合には、問題がある旨の通知や問題個所の修正を促す画面などを、画面出力機能部２１ａを介して管理者端末に通知する。
【００３８】
起動制御部２２ｂは、脆弱性診断アプリケーション１５の種類に応じて診断実行に必要となる情報を変換するための対応表である変換リストを備え、形式確認部２２ａから受信した情報のうち「診断項目、診断対象ホスト名（もしくはＩＰアドレス）」を、変換リストに基づいて、脆弱性診断アプリケーション１５が読み取り可能な形式に変更する。また、起動制御部２２ｂは、管理者端末が指定したスケジュールに従って、脆弱性診断アプリケーション１５の起動、一時停止、再開、停止などを行う。そして、脆弱性診断アプリケーション１５を起動、一時停止、再開、停止が発生した場合、起動制御部２２ｂは、当該発生した日時を診断履歴管理部２３に送信する。
【００３９】
また、起動制御部２２ｂは、上記したように、作成されたスケジュールに基づいて管理者端末から指定されたスケジュールに従って、脆弱性診断アプリケーション１５を実行するだけでなく、作成されたスケジュールのみに従って、脆弱性診断アプリケーション１５を実行するようにしてもよい。
【００４０】
結果取得部２２ｃは、脆弱性診断アプリケーション１５により実行された診断結果を取得し、取得した診断結果をユーザインタフェース部２１を介して管理者端末に表示出力する。また、結果取得部２２ｃは、脆弱性診断アプリケーション１５により実行された診断結果を取得する際に、変換リストを参照し、参照した変換リストに基づいて、システムが読み取り可能なデータ形式から、管理者が読み取り可能なデータ形式に変換して、変換した結果をユーザインタフェース部２１を介して管理者端末に表示出力する。
【００４１】
診断履歴管理部２３は、脆弱性診断アプリケーション１５によって実施された診断に要した時間を履歴として診断履歴ＤＢ１２に格納するとともに、履歴から各種データを作成する処理部であり、特に本発明に密接に関連するものとしては、履歴保存部２３ａと、履歴抽出部２３ｂと、診断時間予測部２３ｃと、スケジュール計画部２３ｄとを備える。
【００４２】
履歴保存部２３ａは、脆弱性診断アプリケーション制御部２２の結果取得部２２ｃにより取得された脆弱性診断アプリケーション１５の実行結果を受け付けて、当該実行結果を診断履歴ＤＢ１２に格納する。また、履歴保存部２３ａは、当該実行結果を診断履歴ＤＢ１２に格納する際、診断ごとに固有のＩＤである「診断ＩＤ」を付与して格納する。つまり、同じスケジュールで一連に実行された診断項目には、同じ「診断ＩＤ」が付与されるため、どの診断項目がどのスケジュールで実行されたのかが認識できる。
【００４３】
履歴抽出部２３ｂは、ユーザインタフェース部２１により受け付けられたホスト名に対応する脆弱性診断履歴を診断履歴ＤＢ１２から抽出する。上記した例で具体的に説明すると、履歴抽出部２３ｂは、ユーザインタフェース部２１により受け付けられたホスト名「ＡＡＡ」に対応する脆弱性診断結果を診断履歴ＤＢ１２から全て抽出して、後述する診断時間予測部２３ｃに出力する。また、履歴抽出部２３ｂは、ユーザインタフェース部２１により受け付けられた情報が「ホスト名＝ＡＡＡ、診断項目＝ＳＳＨ」である場合には、当該「ホスト名＝ＡＡＡ、診断項目＝ＳＳＨ」の組み合わせに対応する脆弱性診断履歴のみを診断履歴ＤＢ１２から全て抽出して、後述する診断時間予測部２３ｃに出力する。
【００４４】
診断時間予測部２３ｃは、抽出された脆弱性診断履歴に基づいて、ホストに脆弱性診断を実施した場合に要する予測診断時間を算出する。上記した例で具体的に説明すると、診断時間予測部２３ｃは、ホスト名「ＡＡＡ」に対応する脆弱性診断履歴を受信した場合、受信した診断結果の診断時間から予測診断時間を算出して、後述するスケジュール計画部２３ｄに出力する。また、診断時間予測部２３ｃは、「ホスト名、診断項目」からなる複数の情報を受信した場合、当該診断項目ごとに予測診断時間を算出して、後述するスケジュール計画部２３ｄに出力する。
【００４５】
ここで、受信した診断履歴の診断時間を「ｘ1、ｘ2、ｘ3、・・・ｘn」とした場合の、予測時間算出例について説明する。算出手法としては、例えば、式（１）に示した算出式で得られる平均値を予測診断時間として用いることもできる。また、式（１）で算出した平均値を相加平均とした場合に、式（２）を用いて得られる分散値を予測診断時間として用いることもできる。
【００４６】
【数１】
2009237807.tif 000003
【数２】
2009237807.tif 000004
【００４７】
また、受信した診断履歴の診断時間「ｘ1、ｘ2、ｘ3、・・・ｘn」を小さい順に並び変えたものを「ｘ1’、ｘ2’、ｘ3’、・・・ｘn’」とした場合に、式（３）を用いて得られる中央値を予測診断時間として用いることもできる。また、式（４）に示すように、式（３）で算出した中央値を「合計数（ｎ）」で割った平均偏差を予測診断時間として用いることもできる。
【００４８】
【数３】
2009237807.tif 000005
【数４】
2009237807.tif 000006
【００４９】
スケジュール計画部２３ｄは、算出された予測診断時間と、受け付けられた予定日時とに基づいて、ホストに脆弱性診断を実施する診断スケジュールを作成する。上記した例で具体的に説明すると、スケジュール計画部２３ｄは、診断時間予測部２３ｃにより算出された予測診断時間と、ユーザインタフェース部２１により受け付けられた予定日時とから、ユーザインタフェース部２１により受け付けられたホストに対する診断が予定日時内に終わるように、診断スケジュールを作成して診断スケジュールＤＢ１３に格納するとともに（図４参照）、作成した診断スケジュールをユーザインタフェース部２１を介して管理者端末に表示出力する。
【００５０】
また、スケジュール計画部２３ｄは、ユーザインタフェース部２１により診断予定のホストと診断項目とが対応付けて受け付けられた場合には、診断時間予測部２３ｃにより算出された診断項目ごとの予測診断時間に基づいて、診断項目が順次実行されるように、診断スケジュールを作成して診断スケジュールＤＢ１３に格納するとともに、作成した診断スケジュールをユーザインタフェース部２１を介して管理者端末に表示出力する。
【００５１】
また、例えば、スケジュール計画部２３ｄは、ユーザインタフェース部２１により受け付けられたホストに対してそれぞれ算出された予測診断時間のうち、予測診断時間が短いものからスケジュールを作成したりすることもできる。また、スケジュール計画部２３ｄは、ユーザインタフェース部２１によりホストごとに予定日時が受け付けられた場合には、予定日時が現在の日時より直近のものを優先して、スケジュールを作成したりすることもできる。
【００５２】
［脆弱性診断ホストによる処理］
次に、図５を用いて、脆弱性診断ホストによる処理を説明する。図５は、実施例１に係る脆弱性診断ホストにおける診断スケジュール作成処理の流れを示すフローチャートである。
【００５３】
図５に示すように、脆弱性診断ホスト１０は、診断予定のホスト情報を受け付けた場合に（ステップＳ１０１肯定）、当該ホスト情報に含まれるホストに対応する診断履歴を診断履歴ＤＢ１２から抽出する（ステップＳ１０２）。
【００５４】
具体的には、脆弱性診断ホスト１０は、診断予定のホスト情報「ホスト名、診断項目、予定日時」として「ＡＡＡ、Ｗｅｂ、ＳＳＨ、12:00:00〜12:50:00」、「ＢＢＢ、全て、12:00:00〜12:50:00」を受け付けた場合に、当該ホスト情報に含まれる「ホスト名：ＡＡＡ、ＢＢＢ」とのそれぞれに対応する診断履歴を診断履歴ＤＢ１２から抽出する。
【００５５】
続いて、脆弱性診断ホスト１０は、抽出された診断履歴から、受け付けられたホストごとの診断予想時間を算出する（ステップＳ１０３）。具体的には、脆弱性診断ホスト１０は、抽出された診断履歴から、受け付けられたホスト「ＡＡＡ、ＢＢＢ」ごとの診断予想時間を要約統計量を用いて算出する。なお、この際、各ホストについて管理者により指定された診断項目ある場合には、各診断項目ごとに診断予想時間を算出する。
【００５６】
すると、脆弱性診断ホスト１０は、算出された予測診断時間と、受け付けられた予定日時とに基づいて、ホストごとに脆弱性診断を実施する診断スケジュールを作成する（ステップＳ１０４）。具体的には、脆弱性診断ホスト１０は、算出された予測診断時間と、受け付けられた予定日時とから、診断が予定日時内に終わるように、診断スケジュールを作成して診断スケジュールＤＢ１３に格納するとともに、作成した診断スケジュールを管理者端末に表示出力する。
【００５７】
［実施例１による効果］
このように、実施例１によれば、脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶し、脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とを、脆弱性診断の実施を指示する管理者端末から受け付け、受け付けられたホスト名に対応する脆弱性診断履歴を抽出し、抽出された脆弱性診断履歴に基づいて、ホストに脆弱性診断を実施した場合に要する予測診断時間を算出し、算出された予測診断時間と、受け付けられた予定日時とに基づいて、ホストに脆弱性診断を実施する診断スケジュールを作成するので、正確な診断作業計画を立てることが可能であり、診断作業の遅延を防止することが可能である。
【００５８】
また、実施例１によれば、抽出された脆弱性診断履歴に含まれる診断実施時間に対して、要約統計量を用いて予測診断時間を算出するので、ネットワークの遅延など様々な環境のもとに実行された過去の診断結果を履歴として保存し、当該履歴に基づいて、次回の診断に必要であると予測される時間を算出してスケジュールを作成することができる結果、正確な診断作業計画を立てることが可能である。
【００５９】
また、実施例１によれば、予定日時とホスト名とさらに診断項目を、管理者端末から受け付け、受け付けられたホスト名と診断項目とに対応付けられた脆弱性診断履歴を診断履歴記憶手段から抽出するので、診断項目ごとに予想診断時間を算出することが可能である。その結果、より正確な診断作業計画を立てることが可能であり、診断作業の遅延を防止することが可能である。
【００６０】
また、実施例１によれば、予定日時として、診断を開始する診断開始予定時間と診断を終了させる診断終了予定時間と各ホストごとの診断可能時間帯とを、管理者端末から受け付け、算出された予測診断時間から、受け付けられた診断開始予定時間と診断終了予定時間と各ホストごとの診断可能時間帯に診断が終了するように、診断スケジュールを作成するので、診断ができる時間が限られている場合であっても、限られた時間内で診断が終了するように診断スケジュールを作成することが可能である。
【実施例２】
【００６１】
ところで、本装置は、実施例１で説明したスケジュール作成の例以外でも、様々な条件を考慮して診断スケジュールを作成することができる。そこで、実施例２では、診断スケジュールを作成する様々な例について説明する。
【００６２】
まず、図６を用いて、受け付けられた予定日時が現在の日時から直近のものを優先して、診断スケジュールを作成する場合について説明する。図６は、実施例２に係る脆弱性診断ホストを含むシステムの全体構成を示すシステム構成図である。
【００６３】
図６に示すように、このシステムは、実施例１と同様、ネットワークを介して各種装置に対して脆弱性診断を実施する脆弱性診断ホストと、脆弱性診断の対象ホスト（対象装置）となるＷｅｂサーバ、ＦＷ（ファイアウォール）、メールサーバなどから構成される。
【００６４】
また、実施例１と同様、この脆弱性診断ホストは、脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断結果を記憶する診断履歴ＤＢを備える。具体的に例を挙げると、脆弱性診断ホストの診断履歴ＤＢは、「番号、ホスト名、開始日時、終了日時、実施時間」として「１、Ｗｅｂサーバ、2007/1/10、10:00:00、2007/1/10、10:00:20、20ｓ」、「２、ＦＷ、2007/2/25、9:00:00、2007/2/25、9:00:40、40ｓ」などと記憶する。
【００６５】
このような構成において、脆弱性診断ホストは、脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とをユーザから受け付ける（図６の（１）参照）。具体的に例を挙げれば、脆弱性診断ホストは、管理者が利用する管理者端末から送信されたスケジュール作成指示を受け付けた後に、脆弱性診断を実施する予定日時、診断対象となるホスト名として「Ｗｅｂサーバ、2008/03/25、10:00:00〜12:00:00」と「ＦＷ、2008/03/25、10:00:00〜10:00:50」とを、管理者端末から受け付ける。
【００６６】
すると、脆弱性診断ホストは、実施例１と同様に、受け付けられたホスト名「Ｗｅｂサーバ」に対応する脆弱性診断結果として「番号１と番号３」を取得し、また、受け付けられたホスト名「ＦＷ」に対応する脆弱性診断結果として「番号２と番号４〜番号６」を取得する（図６の（２）参照）。そして、脆弱性診断ホストは、例えば、取得された脆弱性診断結果「番号１（20ｓ）と番号３（50ｓ）」の「実施時間」の平均を算出して、算出した平均値（＝35ｓ）をホストＡに脆弱性診断を実施した場合に要する予測診断時間とする（図６の（３）参照）。同様に、脆弱性診断ホストは、例えば、取得された脆弱性診断結果「番号２（40ｓ）、番号４（80ｓ）、番号５（30ｓ）、番号６（50ｓ）」の「実施時間」の平均を算出して、算出した平均値（＝50ｓ）をホストＢに脆弱性診断を実施した場合に要する予測診断時間とする。
【００６７】
そして、脆弱性診断ホストは、実施例１とは異なり、算出された予測診断時間が「Ｗｅｂサーバ、35ｓ」、「ＦＷ、50ｓ」であるが、それぞれのホストでの実施許容時間が「Ｗｅｂサーバ、10:00:00〜12:00:00」、「ＦＷ、10:00:00〜10:00:50」であることより、ＦＷを優先してスケジュール作成する。つまり、脆弱性診断ホストは、実施許容時間が短いＦＷを実行し、次に、Ｗｅｂサーバを実行するスケジュールを作成する（図６の（４）参照）。具体的には、脆弱性診断ホストは、「ホスト名、開始日時、終了日時、予想実施時間」として「ＦＷ、2008/03/25、10:00:00、2008/03/25、10:00:50、50ｓ」「Ｗｅｂサーバ、2008/03/25、10:00:51、2008/03/25、10:01:26、35ｓ」とする診断スケジュールを作成する。
【００６８】
このように、この脆弱性診断ホストは、受け付けられた診断終了予定時間が直近のホストを優先して診断実施時間を確保するように、診断スケジュールを作成するので、全ての診断が予定通り終わるような診断スケジュールを正確に作成することが可能である。
【００６９】
また、上記した以外にも、脆弱性診断ホストは、例えば、同時に実行可能なホスト数を管理者から受け付けて、当該同時に実行可能なホストを並行して実行するスケジュールを作成することもできる。このようにすることで、診断時間を短縮することなく診断スケジュールを作成することが可能である。
【００７０】
また、脆弱性診断ホストは、例えば、終了予定日が重複しているようなホストを受け付けた場合には、どのホストを優先するのかを管理者端末に対して問い合わせ（問い合わせ画面）して、その結果に基づいて、診断スケジュールを作成することもできる。問い合わせに対する応答がない場合には、脆弱性診断ホストは、ホスト名によるソートもしくは診断に要する予測時間が短いホストを優先して、診断スケジュールを作成することができる。このようにすることで、診断を実施するタイミングで優先するホストを毎回選択させた上で診断スケジュールを作成することができる結果、ユーザの意図を反映させることができ、システム環境や処理状況に適応した診断スケジュールを作成することが可能である。
【００７１】
また、脆弱性診断ホストは、例えば、作成した診断スケジュールにおいて、終了予定日に間に合わないホスト（または診断項目）がある場合には、管理者に対してアラートを表示することができる。このようにすることで、脆弱性診断が終了したいことを管理者に通知することが可能である。
【００７２】
また、脆弱性診断ホストは、例えば、作成した診断スケジュールを画面に表示出力して、管理者により当該スケジュールの組み換えを受け付け、組み換えを反映させたスケジュールを再作成することもできる。このようにすることで、診断を実施するタイミングで優先するスケジュールを選択させることができる結果、ユーザの意図を反映させることができ、システム環境や処理状況に適応した診断スケジュールを作成することが可能である。
【００７３】
また、脆弱性診断ホストは、例えば、診断対象としてホスト以外に診断項目を管理者から受け付けたが、当該ホストに対応付けられた当該診断項目が診断履歴ＤＢに記憶されていない場合に、他のホストに対応付けられている当該診断項目を診断履歴ＤＢから取得して、予測診断時間を算出するようにしてもよい。また、他のホストに対応付けられた当該診断項目も診断履歴ＤＢに記憶されていない場合に、脆弱性診断ホストは、当該ホストに対応付けられた診断履歴すべてを取得して、予測診断時間を算出するようにしてもよい。このようにすることで、新たな診断項目であっても、診断スケジュールを作成することが可能であり、ユーザの利便性が向上する。
【実施例３】
【００７４】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に示すように、（１）予測時間算出手法、（２）サーバ分離、（３）対象ホスト、（４）システム構成等、（５）プログラムにそれぞれ区分けして異なる実施例を説明する。
【００７５】
（１）予測時間算出手法
例えば、実施例１では、要約統計量として、平均、分散、中央値、標準偏差を用いて予測時間を算出する例について説明したが、本発明はこれに限定されるものではなく、要約統計量に用いられる歪度、尖度などを用いて算出することもできる。また、要約統計量以外にも、例えば、診断項目がＷｅｂは重要、ＳＳＨは重要でないなどと診断項目ごとに重みを持たせて、この重みを用いて予測時間を算出することもできる。
【００７６】
（２）サーバ分離
また、実施例１と２では、脆弱性診断アプリケーションを内蔵した脆弱性診断ホストを例にして説明したが、本発明はこれに限定されるものではなく、脆弱性診断アプリケーションを実行する脆弱性診断ホストと、本発明を適用したスケジュール作成装置と筺体が異なっていてもよい。また、ネットワークを介した脆弱性診断だけでなく、ローカル接続で診断するローカル診断についても、同様に適用することができる。
【００７７】
（３）対象ホスト
また、実施例１と２では、脆弱性診断対象ホストとして、Ｗｅｂサーバ、ＦＷ、メールサーバを例にして説明したが、本発明はこれに限定されるものではなく、ルータ、Ｌ３スイッチ、Ｌ２スイッチなどのネットワーク機器やメインフレームなどの汎用コンピュータについても、同様に診断スケジュールを作成することができる。
【００７８】
（４）システム構成等
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理（例えば、スケジュール作成対象ホスト受付処理など）の全部または一部を手動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（例えば、図１、図３、図４、図６など）については、特記する場合を除いて任意に変更することができる。
【００７９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合（例えば、ユーザインタフェース部と脆弱性アプリケーション制御部とを統合するなど）して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８０】
（５）プログラム
なお、本実施例で説明した診断スケジュール作成方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【産業上の利用可能性】
【００８１】
以上のように、本発明に係る脆弱性診断実施装置および診断スケジュール作成プログラムは、脆弱性診断に対象となる各種装置を示すホストに対して、脆弱性診断を実施することに有用であり、特に、正確な診断作業計画を立てることと、診断作業の遅延を防止することに適する。
【図面の簡単な説明】
【００８２】
【図１】実施例１に係る脆弱性診断ホストを含むシステムの全体構成を示すシステム構成図である。
【図２】実施例１に係る脆弱性診断ホストの構成を示すブロック図である。
【図３】診断履歴ＤＢに記憶される情報の例を示す図である。
【図４】診断スケジュールＤＢに記憶される情報の例を示す図である。
【図５】実施例１に係る脆弱性診断ホストにおける診断スケジュール作成処理の流れを示すフローチャートである。
【図６】実施例２に係る脆弱性診断ホストを含むシステムの全体構成を示すシステム構成図である。
【符号の説明】
【００８３】
１０  脆弱性診断ホスト
１１  通信制御Ｉ／Ｆ部
１２  診断履歴ＤＢ
１３  診断スケジュールＤＢ
１５  脆弱性診断アプリケーション
２０  脆弱性診断アプリケーションマネージャ
２１  ユーザインタフェース部
２１ａ  画面出力機能部
２１ｂ  データ転送処理部
２２  脆弱性診断アプリケーション制御部
２２ａ  形式確認部
２２ｂ  起動制御部
２２ｃ  結果取得部
２２ｄ  スケジュール計画部
２３  診断履歴管理部
２３ａ  履歴保存部
２３ｂ  履歴抽出部
２３ｃ  診断時間予測部
２３ｄ  スケジュール計画部
【図１】
2009237807.tif 000007
【図２】
2009237807.tif 000008
【図３】
2009237807.tif 000009
【図４】
2009237807.tif 000010
【図５】
2009237807.tif 000011
【図６】
2009237807.tif 000012