説明

脆弱性診断実施装置および診断スケジュール作成プログラム

【課題】正確な診断作業計画を立てることと、診断作業の遅延を防止することを課題とする。
【解決手段】脆弱性診断ホストは、脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶する診断履歴DBを備える。そして、脆弱性診断ホストは、脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とを、脆弱性診断の実施を指示する管理者端末から受け付け、受け付けられたホスト名に対応する脆弱性診断履歴を診断履歴DBから抽出し、抽出された脆弱性診断履歴に基づいて、ホストに脆弱性診断を実施した場合に要する予測診断時間を算出し、算出された予測診断時間と、受け付けられた予定日時とに基づいて、ホストに脆弱性診断を実施する診断スケジュールを作成する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、脆弱性診断に対象となる各種装置を示すホストに対して、脆弱性診断を実施する脆弱性診断実施装置および診断スケジュール作成プログラムに関する。
【背景技術】
【0002】
従来より、インターネットや企業内のイントラネットにおいて利用されている各種のサーバ(例えば、Webサーバ、メールサーバなど)や通信機器(例えば、ルータ、ファイアウォールなど)に存在する脆弱性の診断が行われている。
【0003】
この脆弱性を診断する手法としては、診断対象の機器にログインして設定に関する各種情報をローカルで取得して診断するローカル診断手法(特許文献1参照)と、診断対象の機器に対してネットワーク経由で接続されたホストからデータを送信して得られた応答の内容から診断を行うリモート診断手法(非特許文献1参照)がある。
【0004】
このような手法は、特定のタイミングで実施する必要があるため、日々新たな脆弱性が発見される今日では、新たな脆弱性に対応した診断内容や診断プログラムを頻繁に検討して、定期的に診断を実行する必要がある。
【0005】
【特許文献1】特開2002−328896号公報
【非特許文献1】“内在する脆弱性に注目せよ〜脆弱性診断を解説する〜”、日経ITpro、セキュリティ記事「http://itpro.nikkeibp.co.jp/article/COLUMN/20060816/245784/」
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上記した従来の技術は、正確な診断作業計画を立てることができないという課題と、診断作業の遅延を防止することができないという課題とがあった。
【0007】
具体的には、診断対象機器のハードウエアの性能やソフトウエアの設定によって診断プログラムを起動してから診断が終了するまでの時間が大きく異なっており、作業終了の予定時刻を見込むには経験にしか頼るものがなく、画一的に正確な診断作業の計画を立てることができない。また、上記したように、作業終了の予定時刻を見込むには経験にしか頼るものがないため、特定の期間内に複数のホストに対する診断を完了しようとした場合でも、前の作業の遅延などにより、作業時間が大きくずれ込んでしまうことが頻繁に起こる。
【0008】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、正確な診断作業計画を立てることが可能であることと、診断作業の遅延を防止することが可能であることが脆弱性診断実施装置および診断スケジュール作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するため、本発明は、各種装置を示すホストに対して、脆弱性診断を実施する脆弱性診断実施装置であって、前記脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶する診断履歴記憶手段と、前記脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とを、前記脆弱性診断の実施を指示する管理者端末から受け付ける指示受付手段と、前記指示受付手段により受け付けられたホスト名に対応する脆弱性診断履歴を前記診断履歴記憶手段から抽出する診断履歴抽出手段と、前記診断履歴抽出手段により抽出された脆弱性診断履歴に基づいて、前記ホストに脆弱性診断を実施した場合に要する予測診断時間を算出する予測診断時間算出手段と、前記予測診断時間算出手段により算出された予測診断時間と、前記指示受付手段により受け付けられた予定日時とに基づいて、前記ホストに脆弱性診断を実施する診断スケジュールを作成するスケジュール作成手段と、を備えたことを特徴とする。
【発明の効果】
【0010】
本発明によれば、脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶し、脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とを、脆弱性診断の実施を指示する管理者端末から受け付け、受け付けられたホスト名に対応する脆弱性診断履歴を抽出し、抽出された脆弱性診断履歴に基づいて、ホストに脆弱性診断を実施した場合に要する予測診断時間を算出し、算出された予測診断時間と、受け付けられた予定日時とに基づいて、ホストに脆弱性診断を実施する診断スケジュールを作成するので、正確な診断作業計画を立てることが可能であり、診断作業の遅延を防止すること可能である。
【発明を実施するための最良の形態】
【0011】
以下に添付図面を参照して、この発明に係る脆弱性診断実施装置および診断スケジュール作成プログラムの実施例を詳細に説明する。なお、以下では、本実施例に係る脆弱性診断実施装置の概要および特徴、脆弱性診断実施装置の構成および処理の流れを順に説明し、最後に本実施例に対する種々の変形例を説明する。
【実施例1】
【0012】
[脆弱性診断ホストの概要および特徴]
まず最初に、図1を用いて、実施例1に係る脆弱性診断ホストの概要および特徴を説明する。図1は、実施例1に係る脆弱性診断ホストを含むシステムの全体構成を示すシステム構成図である。
【0013】
図1に示すように、このシステムは、ネットワークを介して各種装置に対して脆弱性診断を実施する脆弱性診断ホスト(特許請求の範囲に記載の「脆弱性診断実施装置」に対応する)と、脆弱性診断の対象ホスト(対象装置)となるWebサーバ、FW(ファイアウォール)、メールサーバなどから構成される。
【0014】
また、この脆弱性診断ホストが実施する脆弱性診断とは、コンピュータやネットワークなどの情報システムにおける各種装置において、システムの乗っ取りや機密情報の漏洩などを第三者に利用される可能性のある欠陥や仕様上の問題点を検出することであり、ハードウエア上のバグに限定されず、ソフトウエア上のバグやOS上のバグも検出することができる。
【0015】
このような構成において、実施例1に係る脆弱性診断ホストは、各種装置を示すホストに対して、脆弱性診断を実施することを概要とするものであり、特に、正確な診断作業計画を立てることが可能であることと、診断作業の遅延を防止することが可能であることに主たる特徴がある。
【0016】
この主たる特徴について具体的に説明すると、脆弱性診断ホストは、脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断結果を記憶する診断履歴DBを備える。具体的に例を挙げると、脆弱性診断ホストの診断履歴DBは、「番号、ホスト名、開始日時、終了日時、実施時間」として「1、Webサーバ、2007/1/10、10:00:00、2007/1/10、10:00:20、20s」、「2、FW、2007/2/25、9:00:00、2007/2/25、9:00:40、40s」などと記憶する。
【0017】
ここで、「番号」とは各レコードを識別する番号であり、「ホスト名」とは、脆弱性診断を実施したホストを一意に識別する識別子であり、「開始日時」とは、脆弱性診断を実施した日時を示すものであり、「終了日時」とは、実施した脆弱性診断が終了した日時を示すものであり、「実施時間」とは、当該脆弱性診断に要した時間のことである。
【0018】
そして、脆弱性診断ホストは、脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とをユーザから受け付ける(図1の(1)参照)。具体的に例を挙げれば、脆弱性診断ホストは、管理者が利用する管理者端末からスケジュール作成指示を受け付けた後に、脆弱性診断を実施する予定日時として「2008/03/25、12:00:00」と当該予定日時に診断対象となるホスト名として「Webサーバ、FW」とを、管理者端末から受け付ける。
【0019】
すると、脆弱性診断ホストは、受け付けられたホスト名に対応する脆弱性診断履歴を診断履歴DBから抽出する(図1の(2)参照)。上記した例で具体的に説明すると、脆弱性診断ホストは、受け付けられたホスト名「Webサーバ」に対応する脆弱性診断履歴として「番号1と番号3」を抽出し、また、受け付けられたホスト名「FW」に対応する脆弱性診断結果として「番号2と番号4〜番号6」を抽出する。
【0020】
そして、脆弱性診断ホストは、抽出された脆弱性診断履歴に基づいて、ホストに脆弱性診断を実施した場合に要する予測診断時間を算出する(図1の(3)参照)。上記した例で具体的に説明すると、脆弱性診断ホストは、例えば、抽出された脆弱性診断履歴「番号1(20s)と番号3(50s)」の「実施時間」の平均を算出して、算出した平均値(=35s)をホストAに脆弱性診断を実施した場合に要する予測診断時間とする。同様に、脆弱性診断ホストは、例えば、抽出された脆弱性診断履歴「番号2(40s)、番号4(80s)、番号5(30s)、番号6(50s)」の「実施時間」の平均を算出して、算出した平均値(=50s)をホストBに脆弱性診断を実施した場合に要する予測診断時間とする。なお、ここでは、予測診断時間の算出として平均値を用いた場合を説明したが、本発明はこれに限定されるものではなく、分散、標準偏差、歪度、尖度、中央値などの要約統計量を用いて算出してもよい。
【0021】
続いて、脆弱性診断ホストは、算出された予測診断時間と、受け付けられた予定日時とに基づいて、ホストに脆弱性診断を実施する診断スケジュールを作成する(図1の(4)参照)。上記した例で具体的に説明すると、脆弱性診断ホストは、算出された予測診断時間が「Webサーバ、35s」、「FW、50s」であり、受け付けられた実施予定日時が「2008/03/25、12:00:00」であることより、「2008/03/25、12:00:00」から予想実施時間が短いWebサーバを実行し、次に、FWを実行するスケジュールを作成する。具体的には、脆弱性診断ホストは、「ホスト名、開始日時、終了日時、予想実施時間」として「Webサーバ、2008/03/25、12:00:00、2008/03/25、12:00:35、35s」、「FW、2008/03/25、12:00:36、2008/03/25、12:01:26、50s」とするスケジュールを作成する。なお、ここでは、脆弱性診断ホストは、予想実施時間が短いホストを先に実行するスケジュールを作成する場合について説明したが、本発明はこれに限定されるものではなく、様々な要因に基づいて、スケジュールを作成することができる。
【0022】
すると、脆弱性診断ホストは、作成したこの診断スケジュールをモニタなどの表示部に出力することで、管理者に通知する。なお、ここでは、表示手法は、本発明はこれに限定されるものではなく、メールで通知したり、音声で通知したり、一般的に用いられている様々な通知手法を用いることができる。
【0023】
このように、実施例1に係る脆弱性診断ホストは、ネットワークの遅延など様々な環境のもとに実行された過去の診断結果を履歴として保存し、当該履歴に基づいて、次回の診断に必要であると予測される時間を算出してスケジュールを作成することができる結果、上記した主たる特徴のごとく、正確な診断作業計画を立てることが可能であり、診断作業の遅延を防止することが可能である。
【0024】
[脆弱性診断ホストの構成]
次に、図2を用いて、図1に示した脆弱性診断ホストの構成を説明する。図2は、実施例1に係る脆弱性診断ホストの構成を示すブロック図である。図2に示すように、この脆弱性診断ホスト10は、通信制御I/F部11と、診断履歴DB12と、診断スケジュールDB13と、脆弱性診断アプリケーション15と、脆弱性診断アプリケーションマネージャ20とから構成される。
【0025】
通信制御I/F部11は、ネットワークに接続される各種装置(ホスト)との通信を制御する。具体的に例を挙げると、通信制御I/F部11は、それぞれのホストと接続する複数のポートを備え、管理者端末からスケジュール作成指示を受け付けたり、管理者端末に作成されたスケジュールを出力したり、各ホストに対して実行される脆弱性診断アプリケーションの通信を制御したりする。
【0026】
診断履歴DB12は、脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶する。具体的に例を挙げると、診断履歴DB12は、図3に示すように、「ホスト名、診断ID、診断項目、診断開始日時、診断終了日時、一時停止日時、再開日時、診断時間」として「AAA、1、SSH、2007/12/1、10:00:00、2007/12/1、10:01:10、-、-、70s」、「AAA、1、Web、2007/12/1、10:01:11、2007/12/1、10:01:30、-、-、19s」などと記憶する。なお、図3は、診断履歴DBに記憶される情報の例を示す図である。
【0027】
ここで、「ホスト名」とは、脆弱性診断を実施したホストを一意に識別する識別子であり、「診断ID」とは、同じ日時に実施された脆弱性診断を識別するものであり、「診断項目」とは、脆弱性診断を実施した項目やプロトコル、サービスを識別するものであり、「診断開始日時」とは、脆弱性診断を実施した日時を示すものであり、「診断終了日時」とは、実施した脆弱性診断が終了した日時を示すものであり、「一時停止日時」とは、当該脆弱性診断が一時的に停止した日時を示すものであり、「再開日時」とは、当該脆弱性診断が一時的に停止した後に再開した日時を示すものであり、「診断時間」とは、当該脆弱性診断に要した時間のことである。
【0028】
診断スケジュールDB13は、後述する脆弱性診断アプリケーションマネージャ20により作成された診断スケジュールを記憶する。具体的に例を挙げると、診断スケジュールDB13は、図4に示すように、「ホスト名、診断ID、診断項目、診断開始日時(予想)、診断終了日時(予想)、予想診断時間」として「AAA、1、SSH、2007/12/1、10:00:00、2007/12/1、10:00:30、30s」、「AAA、1、Web、2007/12/1、10:00:31、2007/12/1、10:02:11、40s」などと記憶する。なお、図4は、診断スケジュールDBに記憶される情報の例を示す図である。
【0029】
ここで、「ホスト名」とは、脆弱性診断を実施するホストを一意に識別する識別子であり、「診断ID」とは、同じ日時に実施される脆弱性診断を識別するものであり、「診断項目」とは、脆弱性診断を実施する項目やプロトコル、サービスを識別するものであり、「診断開始日時(予想)」とは、管理者端末から入力された脆弱性診断を実施する日時を示すものであり、「診断終了日時(予想)」とは、管理者端末から入力された脆弱性診断を終了する日時を示すものであり、「予想診断時間」とは、後述する脆弱性診断アプリケーションマネージャ20により算出された脆弱性診断に要する時間のことである。
【0030】
脆弱性診断アプリケーション15は、診断対象ホスト上で、リモート診断を実施する。具体的に例を挙げると、脆弱性診断アプリケーション15は、診断スケジュールDB13に記憶される診断スケジュールに従って、各種診断を実施し、当該診断結果を後述する脆弱性診断アプリケーションマネージャ20に通知するとともに、当該診断結果を診断履歴DB12に格納する。具体的には、脆弱性診断アプリケーション15は、診断スケジュールDB13に記憶される診断スケジュールを参照し、診断開始日時(予想)に到達したスケジュールがあれば、当該スケジュールの診断項目をホストに対して実施して、当該診断結果を後述する脆弱性診断アプリケーションマネージャに通知するとともに、当該診断結果を診断履歴DB12に格納する。このようにして、脆弱性診断アプリケーション15は、診断スケジュールDB13に記憶される診断スケジュールを常に参照しておき、診断開始日時(予想)に到達したスケジュールを順次実行することもでき、また、診断スケジュールDB13に記憶される診断スケジュールに基づいて管理者から指定されたスケジュールのみを実行することもできる。
【0031】
脆弱性診断アプリケーションマネージャ20は、脆弱性診断アプリケーションを実行するスケジュールを作成するアプリケーションであり、特に本発明に密接に関連するものとしては、ユーザインタフェース部21と、脆弱性診断アプリケーション制御部22と、診断履歴管理部23とを備える。
【0032】
ユーザインタフェース部21は、管理者などが脆弱性診断アプリケーションマネージャ20を操作するためのインタフェースであり、特に本発明に密接に関連するものとしては、画面出力機能部21aと、データ転送処理部21bとを備える。
【0033】
画面出力機能部21aは、モニタ(若しくはディスプレイ、タッチパネル)やスピーカを備えて構成され、診断実行に必要となる情報を管理者端末から受け付ける。具体的に例を挙げると、画面出力機能部21aは、診断実行に必要となる情報として「診断内容(項目)、診断対象ホスト名(またはIPアドレス)、診断スケジュール」などを受け付ける画面を出力して、当該情報を管理者端末から受け付ける。また、画面出力機能部21aは、上記した情報以外にも、複数のホストに診断を実施する場合の優先順位や実施可能時間帯などの情報を受け付ける画面を表示して、当該情報を管理者端末から受け付けることもできる。
【0034】
また、画面出力機能部21aは、管理者端末から受け付けた情報を後述するデータ転送処理部21bに出力する。さらに、画面出力機能部21aは、後述する診断履歴管理部23により生成されて格納された診断スケジュールを診断スケジュールDB13から取得して管理者に表示したり、脆弱性診断アプリケーションにより実行された実行結果を管理者端末に表示したりする。
【0035】
データ転送処理部21bは、管理者端末などから入力された各種情報を各機能部に転送する。具体的に例を挙げると、データ転送処理部21bは、画面出力機能部21aにより受け付けられた診断実行に必要となる情報「診断内容(項目)、診断対象ホスト名(またはIPアドレス)、診断スケジュール」などを後述する脆弱性診断アプリケーション制御部22や診断履歴管理部23に転送する。また、データ転送処理部21bは、画面出力機能部21aにより受け付けられた診断実行に必要となる情報「診断内容(項目)、診断対象ホスト名(またはIPアドレス)、診断スケジュール」のうち、「診断内容(項目)、診断対象ホスト名(またはIPアドレス)」については履歴抽出部23bに転送し、「診断スケジュール」についてはスケジュール計画部23dに出力したりするなど、情報を振り分けることもできる。
【0036】
脆弱性診断アプリケーション制御部22は、後述する診断履歴管理部23により生成されて診断スケジュールDB13に格納された診断スケジュールに従って、管理者端末から指示された診断スケジュールを実行するために、脆弱性診断アプリケーション15を実行・停止する機能部であり、特に本発明に密接に関連するものとしては、形式確認部22aと、起動制御部22bと、結果取得部22cとを備える。
【0037】
形式確認部22aは、診断実行に必要となる情報「診断内容(項目)、診断対象ホスト名(またはIPアドレス)、診断スケジュール」などをユーザインタフェース部21から受信し、受信した情報がシステムで規定されている形式に従っているか、情報の過不足がないか、不正なパラメータが混入されていないかの検査を実施する。そして、形式確認部22aは、検査した情報に問題がなければ、起動制御部22bや結果取得部22cに当該情報を送信する。また、形式確認部22aは、検査した情報に問題がある場合には、問題がある旨の通知や問題個所の修正を促す画面などを、画面出力機能部21aを介して管理者端末に通知する。
【0038】
起動制御部22bは、脆弱性診断アプリケーション15の種類に応じて診断実行に必要となる情報を変換するための対応表である変換リストを備え、形式確認部22aから受信した情報のうち「診断項目、診断対象ホスト名(もしくはIPアドレス)」を、変換リストに基づいて、脆弱性診断アプリケーション15が読み取り可能な形式に変更する。また、起動制御部22bは、管理者端末が指定したスケジュールに従って、脆弱性診断アプリケーション15の起動、一時停止、再開、停止などを行う。そして、脆弱性診断アプリケーション15を起動、一時停止、再開、停止が発生した場合、起動制御部22bは、当該発生した日時を診断履歴管理部23に送信する。
【0039】
また、起動制御部22bは、上記したように、作成されたスケジュールに基づいて管理者端末から指定されたスケジュールに従って、脆弱性診断アプリケーション15を実行するだけでなく、作成されたスケジュールのみに従って、脆弱性診断アプリケーション15を実行するようにしてもよい。
【0040】
結果取得部22cは、脆弱性診断アプリケーション15により実行された診断結果を取得し、取得した診断結果をユーザインタフェース部21を介して管理者端末に表示出力する。また、結果取得部22cは、脆弱性診断アプリケーション15により実行された診断結果を取得する際に、変換リストを参照し、参照した変換リストに基づいて、システムが読み取り可能なデータ形式から、管理者が読み取り可能なデータ形式に変換して、変換した結果をユーザインタフェース部21を介して管理者端末に表示出力する。
【0041】
診断履歴管理部23は、脆弱性診断アプリケーション15によって実施された診断に要した時間を履歴として診断履歴DB12に格納するとともに、履歴から各種データを作成する処理部であり、特に本発明に密接に関連するものとしては、履歴保存部23aと、履歴抽出部23bと、診断時間予測部23cと、スケジュール計画部23dとを備える。
【0042】
履歴保存部23aは、脆弱性診断アプリケーション制御部22の結果取得部22cにより取得された脆弱性診断アプリケーション15の実行結果を受け付けて、当該実行結果を診断履歴DB12に格納する。また、履歴保存部23aは、当該実行結果を診断履歴DB12に格納する際、診断ごとに固有のIDである「診断ID」を付与して格納する。つまり、同じスケジュールで一連に実行された診断項目には、同じ「診断ID」が付与されるため、どの診断項目がどのスケジュールで実行されたのかが認識できる。
【0043】
履歴抽出部23bは、ユーザインタフェース部21により受け付けられたホスト名に対応する脆弱性診断履歴を診断履歴DB12から抽出する。上記した例で具体的に説明すると、履歴抽出部23bは、ユーザインタフェース部21により受け付けられたホスト名「AAA」に対応する脆弱性診断結果を診断履歴DB12から全て抽出して、後述する診断時間予測部23cに出力する。また、履歴抽出部23bは、ユーザインタフェース部21により受け付けられた情報が「ホスト名=AAA、診断項目=SSH」である場合には、当該「ホスト名=AAA、診断項目=SSH」の組み合わせに対応する脆弱性診断履歴のみを診断履歴DB12から全て抽出して、後述する診断時間予測部23cに出力する。
【0044】
診断時間予測部23cは、抽出された脆弱性診断履歴に基づいて、ホストに脆弱性診断を実施した場合に要する予測診断時間を算出する。上記した例で具体的に説明すると、診断時間予測部23cは、ホスト名「AAA」に対応する脆弱性診断履歴を受信した場合、受信した診断結果の診断時間から予測診断時間を算出して、後述するスケジュール計画部23dに出力する。また、診断時間予測部23cは、「ホスト名、診断項目」からなる複数の情報を受信した場合、当該診断項目ごとに予測診断時間を算出して、後述するスケジュール計画部23dに出力する。
【0045】
ここで、受信した診断履歴の診断時間を「x1、x2、x3、・・・xn」とした場合の、予測時間算出例について説明する。算出手法としては、例えば、式(1)に示した算出式で得られる平均値を予測診断時間として用いることもできる。また、式(1)で算出した平均値を相加平均とした場合に、式(2)を用いて得られる分散値を予測診断時間として用いることもできる。
【0046】
【数1】

【数2】

【0047】
また、受信した診断履歴の診断時間「x1、x2、x3、・・・xn」を小さい順に並び変えたものを「x1、x2、x3、・・・xn」とした場合に、式(3)を用いて得られる中央値を予測診断時間として用いることもできる。また、式(4)に示すように、式(3)で算出した中央値を「合計数(n)」で割った平均偏差を予測診断時間として用いることもできる。
【0048】
【数3】

【数4】

【0049】
スケジュール計画部23dは、算出された予測診断時間と、受け付けられた予定日時とに基づいて、ホストに脆弱性診断を実施する診断スケジュールを作成する。上記した例で具体的に説明すると、スケジュール計画部23dは、診断時間予測部23cにより算出された予測診断時間と、ユーザインタフェース部21により受け付けられた予定日時とから、ユーザインタフェース部21により受け付けられたホストに対する診断が予定日時内に終わるように、診断スケジュールを作成して診断スケジュールDB13に格納するとともに(図4参照)、作成した診断スケジュールをユーザインタフェース部21を介して管理者端末に表示出力する。
【0050】
また、スケジュール計画部23dは、ユーザインタフェース部21により診断予定のホストと診断項目とが対応付けて受け付けられた場合には、診断時間予測部23cにより算出された診断項目ごとの予測診断時間に基づいて、診断項目が順次実行されるように、診断スケジュールを作成して診断スケジュールDB13に格納するとともに、作成した診断スケジュールをユーザインタフェース部21を介して管理者端末に表示出力する。
【0051】
また、例えば、スケジュール計画部23dは、ユーザインタフェース部21により受け付けられたホストに対してそれぞれ算出された予測診断時間のうち、予測診断時間が短いものからスケジュールを作成したりすることもできる。また、スケジュール計画部23dは、ユーザインタフェース部21によりホストごとに予定日時が受け付けられた場合には、予定日時が現在の日時より直近のものを優先して、スケジュールを作成したりすることもできる。
【0052】
[脆弱性診断ホストによる処理]
次に、図5を用いて、脆弱性診断ホストによる処理を説明する。図5は、実施例1に係る脆弱性診断ホストにおける診断スケジュール作成処理の流れを示すフローチャートである。
【0053】
図5に示すように、脆弱性診断ホスト10は、診断予定のホスト情報を受け付けた場合に(ステップS101肯定)、当該ホスト情報に含まれるホストに対応する診断履歴を診断履歴DB12から抽出する(ステップS102)。
【0054】
具体的には、脆弱性診断ホスト10は、診断予定のホスト情報「ホスト名、診断項目、予定日時」として「AAA、Web、SSH、12:00:00〜12:50:00」、「BBB、全て、12:00:00〜12:50:00」を受け付けた場合に、当該ホスト情報に含まれる「ホスト名:AAA、BBB」とのそれぞれに対応する診断履歴を診断履歴DB12から抽出する。
【0055】
続いて、脆弱性診断ホスト10は、抽出された診断履歴から、受け付けられたホストごとの診断予想時間を算出する(ステップS103)。具体的には、脆弱性診断ホスト10は、抽出された診断履歴から、受け付けられたホスト「AAA、BBB」ごとの診断予想時間を要約統計量を用いて算出する。なお、この際、各ホストについて管理者により指定された診断項目ある場合には、各診断項目ごとに診断予想時間を算出する。
【0056】
すると、脆弱性診断ホスト10は、算出された予測診断時間と、受け付けられた予定日時とに基づいて、ホストごとに脆弱性診断を実施する診断スケジュールを作成する(ステップS104)。具体的には、脆弱性診断ホスト10は、算出された予測診断時間と、受け付けられた予定日時とから、診断が予定日時内に終わるように、診断スケジュールを作成して診断スケジュールDB13に格納するとともに、作成した診断スケジュールを管理者端末に表示出力する。
【0057】
[実施例1による効果]
このように、実施例1によれば、脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶し、脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とを、脆弱性診断の実施を指示する管理者端末から受け付け、受け付けられたホスト名に対応する脆弱性診断履歴を抽出し、抽出された脆弱性診断履歴に基づいて、ホストに脆弱性診断を実施した場合に要する予測診断時間を算出し、算出された予測診断時間と、受け付けられた予定日時とに基づいて、ホストに脆弱性診断を実施する診断スケジュールを作成するので、正確な診断作業計画を立てることが可能であり、診断作業の遅延を防止することが可能である。
【0058】
また、実施例1によれば、抽出された脆弱性診断履歴に含まれる診断実施時間に対して、要約統計量を用いて予測診断時間を算出するので、ネットワークの遅延など様々な環境のもとに実行された過去の診断結果を履歴として保存し、当該履歴に基づいて、次回の診断に必要であると予測される時間を算出してスケジュールを作成することができる結果、正確な診断作業計画を立てることが可能である。
【0059】
また、実施例1によれば、予定日時とホスト名とさらに診断項目を、管理者端末から受け付け、受け付けられたホスト名と診断項目とに対応付けられた脆弱性診断履歴を診断履歴記憶手段から抽出するので、診断項目ごとに予想診断時間を算出することが可能である。その結果、より正確な診断作業計画を立てることが可能であり、診断作業の遅延を防止することが可能である。
【0060】
また、実施例1によれば、予定日時として、診断を開始する診断開始予定時間と診断を終了させる診断終了予定時間と各ホストごとの診断可能時間帯とを、管理者端末から受け付け、算出された予測診断時間から、受け付けられた診断開始予定時間と診断終了予定時間と各ホストごとの診断可能時間帯に診断が終了するように、診断スケジュールを作成するので、診断ができる時間が限られている場合であっても、限られた時間内で診断が終了するように診断スケジュールを作成することが可能である。
【実施例2】
【0061】
ところで、本装置は、実施例1で説明したスケジュール作成の例以外でも、様々な条件を考慮して診断スケジュールを作成することができる。そこで、実施例2では、診断スケジュールを作成する様々な例について説明する。
【0062】
まず、図6を用いて、受け付けられた予定日時が現在の日時から直近のものを優先して、診断スケジュールを作成する場合について説明する。図6は、実施例2に係る脆弱性診断ホストを含むシステムの全体構成を示すシステム構成図である。
【0063】
図6に示すように、このシステムは、実施例1と同様、ネットワークを介して各種装置に対して脆弱性診断を実施する脆弱性診断ホストと、脆弱性診断の対象ホスト(対象装置)となるWebサーバ、FW(ファイアウォール)、メールサーバなどから構成される。
【0064】
また、実施例1と同様、この脆弱性診断ホストは、脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断結果を記憶する診断履歴DBを備える。具体的に例を挙げると、脆弱性診断ホストの診断履歴DBは、「番号、ホスト名、開始日時、終了日時、実施時間」として「1、Webサーバ、2007/1/10、10:00:00、2007/1/10、10:00:20、20s」、「2、FW、2007/2/25、9:00:00、2007/2/25、9:00:40、40s」などと記憶する。
【0065】
このような構成において、脆弱性診断ホストは、脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とをユーザから受け付ける(図6の(1)参照)。具体的に例を挙げれば、脆弱性診断ホストは、管理者が利用する管理者端末から送信されたスケジュール作成指示を受け付けた後に、脆弱性診断を実施する予定日時、診断対象となるホスト名として「Webサーバ、2008/03/25、10:00:00〜12:00:00」と「FW、2008/03/25、10:00:00〜10:00:50」とを、管理者端末から受け付ける。
【0066】
すると、脆弱性診断ホストは、実施例1と同様に、受け付けられたホスト名「Webサーバ」に対応する脆弱性診断結果として「番号1と番号3」を取得し、また、受け付けられたホスト名「FW」に対応する脆弱性診断結果として「番号2と番号4〜番号6」を取得する(図6の(2)参照)。そして、脆弱性診断ホストは、例えば、取得された脆弱性診断結果「番号1(20s)と番号3(50s)」の「実施時間」の平均を算出して、算出した平均値(=35s)をホストAに脆弱性診断を実施した場合に要する予測診断時間とする(図6の(3)参照)。同様に、脆弱性診断ホストは、例えば、取得された脆弱性診断結果「番号2(40s)、番号4(80s)、番号5(30s)、番号6(50s)」の「実施時間」の平均を算出して、算出した平均値(=50s)をホストBに脆弱性診断を実施した場合に要する予測診断時間とする。
【0067】
そして、脆弱性診断ホストは、実施例1とは異なり、算出された予測診断時間が「Webサーバ、35s」、「FW、50s」であるが、それぞれのホストでの実施許容時間が「Webサーバ、10:00:00〜12:00:00」、「FW、10:00:00〜10:00:50」であることより、FWを優先してスケジュール作成する。つまり、脆弱性診断ホストは、実施許容時間が短いFWを実行し、次に、Webサーバを実行するスケジュールを作成する(図6の(4)参照)。具体的には、脆弱性診断ホストは、「ホスト名、開始日時、終了日時、予想実施時間」として「FW、2008/03/25、10:00:00、2008/03/25、10:00:50、50s」「Webサーバ、2008/03/25、10:00:51、2008/03/25、10:01:26、35s」とする診断スケジュールを作成する。
【0068】
このように、この脆弱性診断ホストは、受け付けられた診断終了予定時間が直近のホストを優先して診断実施時間を確保するように、診断スケジュールを作成するので、全ての診断が予定通り終わるような診断スケジュールを正確に作成することが可能である。
【0069】
また、上記した以外にも、脆弱性診断ホストは、例えば、同時に実行可能なホスト数を管理者から受け付けて、当該同時に実行可能なホストを並行して実行するスケジュールを作成することもできる。このようにすることで、診断時間を短縮することなく診断スケジュールを作成することが可能である。
【0070】
また、脆弱性診断ホストは、例えば、終了予定日が重複しているようなホストを受け付けた場合には、どのホストを優先するのかを管理者端末に対して問い合わせ(問い合わせ画面)して、その結果に基づいて、診断スケジュールを作成することもできる。問い合わせに対する応答がない場合には、脆弱性診断ホストは、ホスト名によるソートもしくは診断に要する予測時間が短いホストを優先して、診断スケジュールを作成することができる。このようにすることで、診断を実施するタイミングで優先するホストを毎回選択させた上で診断スケジュールを作成することができる結果、ユーザの意図を反映させることができ、システム環境や処理状況に適応した診断スケジュールを作成することが可能である。
【0071】
また、脆弱性診断ホストは、例えば、作成した診断スケジュールにおいて、終了予定日に間に合わないホスト(または診断項目)がある場合には、管理者に対してアラートを表示することができる。このようにすることで、脆弱性診断が終了したいことを管理者に通知することが可能である。
【0072】
また、脆弱性診断ホストは、例えば、作成した診断スケジュールを画面に表示出力して、管理者により当該スケジュールの組み換えを受け付け、組み換えを反映させたスケジュールを再作成することもできる。このようにすることで、診断を実施するタイミングで優先するスケジュールを選択させることができる結果、ユーザの意図を反映させることができ、システム環境や処理状況に適応した診断スケジュールを作成することが可能である。
【0073】
また、脆弱性診断ホストは、例えば、診断対象としてホスト以外に診断項目を管理者から受け付けたが、当該ホストに対応付けられた当該診断項目が診断履歴DBに記憶されていない場合に、他のホストに対応付けられている当該診断項目を診断履歴DBから取得して、予測診断時間を算出するようにしてもよい。また、他のホストに対応付けられた当該診断項目も診断履歴DBに記憶されていない場合に、脆弱性診断ホストは、当該ホストに対応付けられた診断履歴すべてを取得して、予測診断時間を算出するようにしてもよい。このようにすることで、新たな診断項目であっても、診断スケジュールを作成することが可能であり、ユーザの利便性が向上する。
【実施例3】
【0074】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に示すように、(1)予測時間算出手法、(2)サーバ分離、(3)対象ホスト、(4)システム構成等、(5)プログラムにそれぞれ区分けして異なる実施例を説明する。
【0075】
(1)予測時間算出手法
例えば、実施例1では、要約統計量として、平均、分散、中央値、標準偏差を用いて予測時間を算出する例について説明したが、本発明はこれに限定されるものではなく、要約統計量に用いられる歪度、尖度などを用いて算出することもできる。また、要約統計量以外にも、例えば、診断項目がWebは重要、SSHは重要でないなどと診断項目ごとに重みを持たせて、この重みを用いて予測時間を算出することもできる。
【0076】
(2)サーバ分離
また、実施例1と2では、脆弱性診断アプリケーションを内蔵した脆弱性診断ホストを例にして説明したが、本発明はこれに限定されるものではなく、脆弱性診断アプリケーションを実行する脆弱性診断ホストと、本発明を適用したスケジュール作成装置と筺体が異なっていてもよい。また、ネットワークを介した脆弱性診断だけでなく、ローカル接続で診断するローカル診断についても、同様に適用することができる。
【0077】
(3)対象ホスト
また、実施例1と2では、脆弱性診断対象ホストとして、Webサーバ、FW、メールサーバを例にして説明したが、本発明はこれに限定されるものではなく、ルータ、L3スイッチ、L2スイッチなどのネットワーク機器やメインフレームなどの汎用コンピュータについても、同様に診断スケジュールを作成することができる。
【0078】
(4)システム構成等
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理(例えば、スケジュール作成対象ホスト受付処理など)の全部または一部を手動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報(例えば、図1、図3、図4、図6など)については、特記する場合を除いて任意に変更することができる。
【0079】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合(例えば、ユーザインタフェース部と脆弱性アプリケーション制御部とを統合するなど)して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0080】
(5)プログラム
なお、本実施例で説明した診断スケジュール作成方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【産業上の利用可能性】
【0081】
以上のように、本発明に係る脆弱性診断実施装置および診断スケジュール作成プログラムは、脆弱性診断に対象となる各種装置を示すホストに対して、脆弱性診断を実施することに有用であり、特に、正確な診断作業計画を立てることと、診断作業の遅延を防止することに適する。
【図面の簡単な説明】
【0082】
【図1】実施例1に係る脆弱性診断ホストを含むシステムの全体構成を示すシステム構成図である。
【図2】実施例1に係る脆弱性診断ホストの構成を示すブロック図である。
【図3】診断履歴DBに記憶される情報の例を示す図である。
【図4】診断スケジュールDBに記憶される情報の例を示す図である。
【図5】実施例1に係る脆弱性診断ホストにおける診断スケジュール作成処理の流れを示すフローチャートである。
【図6】実施例2に係る脆弱性診断ホストを含むシステムの全体構成を示すシステム構成図である。
【符号の説明】
【0083】
10 脆弱性診断ホスト
11 通信制御I/F部
12 診断履歴DB
13 診断スケジュールDB
15 脆弱性診断アプリケーション
20 脆弱性診断アプリケーションマネージャ
21 ユーザインタフェース部
21a 画面出力機能部
21b データ転送処理部
22 脆弱性診断アプリケーション制御部
22a 形式確認部
22b 起動制御部
22c 結果取得部
22d スケジュール計画部
23 診断履歴管理部
23a 履歴保存部
23b 履歴抽出部
23c 診断時間予測部
23d スケジュール計画部

【特許請求の範囲】
【請求項1】
脆弱性診断に対象となる各種装置を示すホストに対して、脆弱性診断を実施する脆弱性診断実施装置であって、
前記脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶する診断履歴記憶手段と、
前記脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とを、前記脆弱性診断の実施を指示する管理者端末から受け付ける指示受付手段と、
前記指示受付手段により受け付けられたホスト名に対応する脆弱性診断履歴を前記診断履歴記憶手段から抽出する診断履歴抽出手段と、
前記診断履歴抽出手段により抽出された脆弱性診断履歴に基づいて、前記ホストに脆弱性診断を実施した場合に要する予測診断時間を算出する予測診断時間算出手段と、
前記予測診断時間算出手段により算出された予測診断時間と、前記指示受付手段により受け付けられた予定日時とに基づいて、前記ホストに脆弱性診断を実施する診断スケジュールを作成するスケジュール作成手段と、
を備えたことを特徴とする脆弱性診断実施装置。
【請求項2】
前記予測診断時間算出手段は、前記診断履歴抽出手段により抽出された脆弱性診断履歴に含まれる前記診断実施時間に対して、要約統計量を用いて前記予測診断時間を算出することを特徴とする請求項1に記載の脆弱性診断実施装置。
【請求項3】
前記指示受付手段は、前記予定日時とホスト名とさらに前記診断項目を、前記管理者端末から受け付け、
前記診断履歴抽出手段は、前記指示受付手段により受け付けられたホスト名と診断項目とに対応付けられた脆弱性診断履歴を前記診断履歴記憶手段から抽出することを特徴とする請求項1または2に記載の脆弱性診断実施装置。
【請求項4】
前記診断履歴抽出手段は、前記指示受付手段により受け付けられたホスト名と診断項目とに対応付けられた脆弱性診断結果が前記診断履歴記憶手段に記憶されていない場合に、前記ホスト名に関係なく、前記診断履歴記憶手段に記憶されている全ての脆弱性診断履歴から当該診断項目に対応する脆弱性診断履歴を抽出することを特徴とする請求項3に記載の脆弱性診断実施装置。
【請求項5】
前記指示受付手段は、前記予定日時として、診断を開始する診断開始予定時間と診断を終了させる診断終了予定時間と各ホストごとの診断可能時間帯とを、前記管理者端末から受け付け、
前記スケジュール作成手段は、前記予測診断時間算出手段により算出された予測診断時間から、前記指示受付手段により受け付けられた診断開始予定時間から診断終了予定時間までの間で、前記各ホストごとの診断可能時間帯に診断が終了するように、前記診断スケジュールを作成することを特徴とする請求項3または4に記載の脆弱性診断実施装置。
【請求項6】
前記スケジュール作成手段は、前記指示受付手段により受け付けられた診断終了予定時間が直近のホストを優先して診断実施時間を確保するように、前記診断スケジュールを作成することを特徴とする請求項5に記載の脆弱性診断実施装置。
【請求項7】
前記スケジュール作成手段により作成された診断スケジュールにおいて、前記指示受付手段により受け付けられた診断終了予定時間に終了しないスケジュールが存在する場合に、当該診断終了予定時間に終了しないスケジュールが存在することを示す警報を前記管理者端末に送信する警報出力手段をさらに備えたことを特徴とする請求項5または6に記載の脆弱性診断実施装置。
【請求項8】
前記指示受付手段は、同時に実行可能なホスト数を前記管理者端末から受け付け、
前記スケジュール作成手段は、前記指示受付手段により受け付けられた同時に実行可能なホスト数の範囲内で、前記算出された予測診断時間と、前記受け付けられた予定日時とに基づいて、前記ホストに脆弱性診断を実施する診断スケジュールを作成することを特徴とする請求項1〜7のいずれか一つに記載の脆弱性診断実施装置。
【請求項9】
前記スケジュール作成手段により作成された診断スケジュールを所定の表示部に表示出力して、前記管理者端末から作成された診断スケジュールの組み換えを受け付け、受け付けた組み換えに基づいて、新たに診断スケジュールを再作成するスケジュール再作成手段をさらに備えたことを特徴とする請求項1〜7のいずれか一つに記載の脆弱性診断実施装置。
【請求項10】
各種装置を示すホストに対して、脆弱性診断を実施する脆弱性診断実施装置としてのコンピュータに実行させる診断スケジュール作成プログラムであって、
前記脆弱性診断を実施したホストを一意に識別するホスト名に対応付けて、当該ホストに実施した診断項目と、診断に要した時間を示す診断実施時間とから構成される脆弱性診断履歴を記憶する診断履歴記憶手段と、
前記脆弱性診断を実施する予定日時と、当該予定日時に診断対象となるホスト名とを、前記脆弱性診断の実施を指示する管理者端末から受け付ける指示受付手順と、
前記指示受付手順により受け付けられたホスト名に対応する脆弱性診断履歴を前記診断履歴記憶手段から抽出する診断履歴抽出手順と、
前記診断履歴抽出手順により抽出された脆弱性診断履歴に基づいて、前記ホストに脆弱性診断を実施した場合に要する予測診断時間を算出する予測診断時間算出手順と、
前記予測診断時間算出手順により算出された予測診断時間と、前記指示受付手順により受け付けられた予定日時とに基づいて、前記ホストに脆弱性診断を実施する診断スケジュールを作成するスケジュール作成手順と、
をコンピュータに実行させることを特徴とする診断スケジュール作成プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2009−237807(P2009−237807A)
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願番号】特願2008−81700(P2008−81700)
【出願日】平成20年3月26日(2008.3.26)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】