(57)【特許請求の範囲】
【請求項１】
ネットワーク機器の脆弱性を診断する診断装置において実行される診断プログラムであって、
識別子を含むパケットを生成する生成ステップと、
前記生成ステップにより生成されたパケットを、第１データ経路により送出パケットとして前記ネットワーク機器へ送出する送出ステップと、
前記第１データ経路を流れるパケットをモニタ可能な第２データ経路であって、前記第１データ経路とは実装されるプロトコルスタックの階層数が異なり、且つデータリンク層以下であるプロトコルによる第２データ経路によりパケットを受信パケットとして受信する受信ステップと、
前記受信パケットに含まれる識別子と、前記送出パケットに含まれる識別子とに基づいて、前記受信パケットが前記送出パケットに対する応答であるかどうかを判断する判断ステップと、
前記判断ステップにより、前記受信パケットが前記送出パケットに対する応答であると判断された場合、前記送出パケットと前記受信パケットとに基づいて、前記ネットワーク機器の脆弱性を診断する診断ステップと
をコンピュータに実行させる診断プログラム。
【請求項２】
請求項１に記載の診断プログラムにおいて、
前記識別子は、パケットのシーケンス番号であることを特徴とする診断プログラム。
【請求項３】
請求項１に記載の診断プログラムにおいて、
前記識別子は、パケットの送信元アドレス及び宛先アドレスであることを特徴とする診断プログラム。
【請求項４】
請求項１に記載の診断プログラムにおいて、
前記生成ステップは、前記ネットワーク機器の脆弱性の診断に係るパケットの生成において、該パケットのデータ部に一意な識別子を付加し、
前記判断ステップは、前記受信パケットのデータ部に識別子が付加されている場合、前記受信パケットのデータ部に付加された識別子と、前記送出パケットのデータ部に付加された識別子とに基づいて、前記受信パケットが前記送出パケットに対する応答であるかどうかを判断することを特徴とする診断プログラム。
【請求項５】
ネットワーク機器の脆弱性を診断する診断装置であって、
識別子を含むパケットを生成する生成部と、
前記生成部により生成されたパケットを、第１データ経路により送出パケットとして前記ネットワーク機器へ送出する送出部と、
前記第１データ経路を流れるパケットをモニタ可能な第２データ経路であって、前記第１データ経路とは実装されるプロトコルスタック数が異なり、且つデータリンク層以下であるプロトコルによる第２データ経路によりパケットを受信パケットとして受信する受信部と、
前記受信パケットに含まれる識別子と、前記送出パケットに含まれる識別子とに基づいて、前記受信パケットが前記送出パケットに対する応答であるかどうかを判断する判断部と、
前記判断部により、前記受信パケットが前記送出パケットに対する応答であると判断された場合、前記送出パケットと前記受信パケットとに基づいて、前記ネットワーク機器の脆弱性を診断する診断部と
を備える診断装置。
【請求項６】
請求項５に記載の診断装置において、
前記識別子は、パケットのシーケンス番号であることを特徴とする診断装置。
【請求項７】
ネットワーク機器の脆弱性を診断する診断装置において実行される診断方法であって、
識別子を含むパケットを生成する生成ステップと、
前記生成ステップにより生成されたパケットを、第１データ経路により送出パケットとして前記ネットワーク機器へ送出する送出ステップと、
前記第１データ経路を流れるパケットをモニタ可能な第２データ経路であって、前記第１データ経路とは実装されるプロトコルスタック数が異なり、且つデータリンク層以下であるプロトコルによる第２データ経路によりパケットを受信パケットとして受信する受信ステップと、
前記受信パケットに含まれる識別子と、前記送出パケットに含まれる識別子とに基づいて、前記受信パケットが前記送出パケットに対する応答であるかどうかを判断する判断ステップと、
前記判断ステップにより、前記受信パケットが前記送出パケットに対する応答であると判断された場合、前記送出パケットと前記受信パケットとに基づいて、前記ネットワーク機器の脆弱性を診断する診断ステップと
をコンピュータに実行させる診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク機器のテストを自動化する技術に関する。
【背景技術】
【０００２】
近年、ネットワーク通信を行う組み込み機器の増加に伴い、ＴＣＰ／ＩＰにより通信を行うネットワーク機器が増加している。これにより、プロトコルスタック、上位のライブラリ、アプリケーションのような、組み込み機器におけるネットワーク機器のプログラムの診断を行う機会が増加し、診断を自動化する必要が生じている。組み込み機器におけるネットワーク機器のプログラムは、新たに作成される場合が多く、そのため既知の脆弱性を含んでいる可能性が高い。このようなネットワーク機器のプログラムの脆弱性を診断する診断装置が従来知られている。この診断装置は、診断対象であるターゲット装置の脆弱性を診断するためのテストを自動的に実行する。また、診断装置を用いたテストにおいて、その結果の確認は、人がターゲット装置にログインし、異常の有無を判断することでなされていた。さらなる診断の効率化には、診断装置がテスト結果の判定を行うことが必要である。また、ＴＣＰ／ＩＰの様な下位ネットワークのプロトコルに関するテストを行う場合、テストパケットの送信、その応答パケットの確認を行ない、テストの実行とその結果確認までのプロセスを自動化することが望ましい。
【０００３】
また、本発明に関連する技術として、送信側及び受信側の一方あるいは双方を、ネットワークの物理チップに論理プログラマブルデバイスを直接接続した構成とし、送受信側のコンピュータをそれに接続するリアルタイムでの試験検査を行なうネットワーク機器試験装置が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−８２１５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、テストパケットに対するターゲット装置による応答パケットに異常がある場合、診断装置がテスト結果の確認をすることができないという問題がある。まず、この問題の前提として、テスト結果の確認を行う診断装置について説明する。図１０は、テスト結果の確認を行う診断装置の概要を示す。
【０００６】
図１０に示すように、従来の診断装置は、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）によりターゲット装置とテストに係る通信を行う。また、従来の診断装置はテストプログラム、ソケット、プロトコルスタックを機能として備える。テストプログラムは、テストを実行する。また、ソケットは、ＴＣＰ／ＩＰをテストプログラムにより利用可能にする。また、プロトコルスタックは、ネットワークプロトコルを実現する。図１０においては、物理層、データリンク層のＬＡＮ（ＬＯＣＡＬ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ネットワーク層のＩＰ、トランスポート層のＴＣＰ／ＵＤＰが実装されている。
【０００７】
次に、テスト結果の確認を行う診断装置の動作について説明する。図１１は、テスト結果の確認を行う診断装置の動作を示す。
【０００８】
図１１に示すように、まず、テストプログラムはテストを実行するためのパケットであるテストパケットを生成し（Ｓ７０１）、ソケット及びプロトコルスタックを介してターゲット装置にテストパケットを送出する（Ｓ７０２）。テストパケットの送出後、テストプログラムは、所定時間が経過したかどうかを判断する（Ｓ７０３）。
【０００９】
所定時間が経過していない場合（Ｓ７０３，ＮＯ）、テストプログラムは、テストパケットに対するターゲット装置からの応答があるかどうかを判断する（Ｓ７０４）。
【００１０】
ターゲット装置からの応答がある場合（Ｓ７０４，ＹＥＳ）、テストプログラムは、テストパケットとその応答に基づいて脆弱性を診断し（Ｓ７０５）、その診断結果を記録する（Ｓ７０６）。
【００１１】
一方、ターゲット装置からの応答がない場合（Ｓ７０４，ＮＯ）、テストプログラムは、再度、所定時間が経過したかどうかを判断する（Ｓ７０３）。
【００１２】
また、ステップＳ７０３において、所定時間が経過した場合（Ｓ７０３，ＹＥＳ）、テストプログラムはタイムアウトし（Ｓ７０７）、その診断結果（タイムアウトによる異常）を記録する（Ｓ７０６）。
【００１３】
このような診断装置において、例えば、応答パケットのＴＣＰヘッダに異常がある場合、図１０に示すように、応答パケットはプロトコルスタックのＴＣＰ／ＵＤＰにおいて破棄されてしまう。そのため、トランスポート層よりも上位の層（セッション層、アプリケーション層）にあるソケットやテストプログラムは応答パケットを受け取ることができない。この場合、テストプログラムは、ターゲット装置に対する診断結果をタイムアウトと判定することしかできない。
【００１４】
また、テストに係る全てのパケットを観測するモニタ装置を用いて診断を行う場合、他の通信があるとテストパケットとその応答パケットとを対応付けることができないという問題がある。まず、この問題の前提として、テスト装置とモニタ装置を有する診断装置について説明する。図１２は、テスト装置とモニタ装置を有する診断装置の概要を示す。
【００１５】
図１２に示すテスト装置は、その構成は図１０に示した診断装置と同様であり、テストプログラムの動作が異なる。また、モニタ装置は、テスト装置とターゲット装置間に流れるパケットを取得する。
【００１６】
テスト装置及びモニタ装置の動作について説明する。図１３は、テスト装置の動作を示すフローチャートである。また、図１４はモニタ装置の動作を示すフローチャートである。
【００１７】
図１３に示すように、テストプログラムは、テストパケットを生成し（Ｓ８０１）、ターゲット装置にテストパケットを送出する（Ｓ８０２）。
【００１８】
また、図１４に示すように、モニタ装置は、テスト装置により送出されたテストパケットを取得し（Ｓ９０１）、所定時間が経過したかどうかを判断する（Ｓ９０２）。
【００１９】
所定時間が経過していない場合（Ｓ９０２，ＮＯ）、モニタ装置は、テスト装置とターゲット装置間を流れるパケットがあるかどうかを判断する（Ｓ９０３）。
【００２０】
テスト装置とターゲット装置間を流れるパケットがある場合（Ｓ９０３，ＹＥＳ）、モニタ装置は、パケットを応答パケットとして受信する（Ｓ９０４）。次に、モニタ装置は、テストパケットと応答パケットに基づいてターゲット装置の脆弱性を診断し（Ｓ９０５）、診断結果を記録する（Ｓ９０６）。
【００２１】
一方、テスト装置とターゲット装置間を流れるパケットがない場合（Ｓ９０３，ＮＯ）、モニタ装置は、再度、所定時間を経過したかどうかを判断する（Ｓ９０２）。
【００２２】
また、ステップＳ９０２において、所定時間が経過した場合（Ｓ９０２，ＹＥＳ）、モニタ装置は、タイムアウトし（Ｓ９０７）、その診断結果（タイムアウトによる異常）を記録する（Ｓ９０６）。
【００２３】
このような診断装置において、テスト装置、モニタ装置の動作はそれぞれ独立しているため、モニタ装置は、受信したパケットがテスト装置によるテストパケットに対する応答パケットであるかどうか判断することができない。そのため、テストパケットと応答パケットの対応付けは手動で行う必要があるという問題がある。
【００２４】
上述したように、従来の診断装置によるネットワーク機器に対する脆弱性の診断は、結果確認までの自動化がなされておらず、効率が悪いという問題がある。
【００２５】
本発明は上述した問題点を解決するためになされたものであり、ネットワーク機器に対する脆弱性の診断の効率を向上させることができる診断プログラム、診断装置、診断方法を提供することを目的とする。
【課題を解決するための手段】
【００２６】
上述した課題を解決するため、診断プログラムは、ネットワーク機器の脆弱性を診断する診断装置において実行されるプログラムであって、識別子を含むパケットを生成する生成ステップと、前記生成ステップにより生成されたパケットを、第１データ経路により送出パケットとして前記ネットワーク機器へ送出する送出ステップと、前記第１データ経路を流れるパケットをモニタ可能な第２データ経路であって、データリンク層以下のプロトコルによる第２データ経路によりパケットを受信パケットとして受信する受信ステップと、前記受信パケットに含まれる識別子と、前記送出パケットに含まれる識別子とに基づいて、前記受信パケットが前記送出パケットに対する応答であるかどうかを判断する判断ステップと、前記判断ステップにより、前記受信パケットが前記送出パケットに対する応答であると判断された場合、前記送出パケットと前記受信パケットとに基づいて、前記ネットワーク機器の脆弱性を診断する診断ステップとをコンピュータに実行させる。
【００２７】
また、診断装置は、ネットワーク機器の脆弱性を診断する診断装置であって、識別子を含むパケットを生成する生成部と、前記生成部により生成されたパケットを、第１データ経路により送出パケットとして前記ネットワーク機器へ送出する送出部と、前記第１データ経路を流れるパケットをモニタ可能な第２データ経路であって、データリンク層以下のプロトコルによる第２データ経路によりパケットを受信パケットとして受信する受信部と、前記受信パケットに含まれる識別子と、前記送出パケットに含まれる識別子とに基づいて、前記受信パケットが前記送出パケットに対する応答であるかどうかを判断する判断部と、前記判断部により、前記受信パケットが前記送出パケットに対する応答であると判断された場合、前記送出パケットと前記受信パケットとに基づいて、前記ネットワーク機器の脆弱性を診断する診断部とを備える。
【００２８】
また、診断方法は、ネットワーク機器の脆弱性を診断する診断装置において実行される方法であって、識別子を含むパケットを生成する生成ステップと、前記生成ステップにより生成されたパケットを、第１データ経路により送出パケットとして前記ネットワーク機器へ送出する送出ステップと、前記第１データ経路を流れるパケットをモニタ可能な第２データ経路であって、データリンク層以下のプロトコルによる第２データ経路によりパケットを受信パケットとして受信する受信ステップと、前記受信パケットに含まれる識別子と、前記送出パケットに含まれる識別子とに基づいて、前記受信パケットが前記送出パケットに対する応答であるかどうかを判断する判断ステップと、前記判断ステップにより、前記受信パケットが前記送出パケットに対する応答であると判断された場合、前記送出パケットと前記受信パケットとに基づいて、前記ネットワーク機器の脆弱性を診断する診断ステップとをコンピュータに実行させる。
【発明の効果】
【００２９】
ネットワーク機器に対する脆弱性の診断の効率を向上させることができる。
【図面の簡単な説明】
【００３０】
【図１】実施の形態１に係る診断装置のハードウェア構成を示す。
【図２】実施の形態１に係る診断装置の機能構成を示す。
【図３】実施の形態１に係る診断装置の動作を示す。
【図４】シーケンス番号に基づくパケットの判断を示す。
【図５】パケットに基づく脆弱性の診断の一例を示す。
【図６】送信元アドレス及び送信先アドレスに基づくパケットの判断を示す。
【図７】データ部に付加された識別子に基づくパケットの判断を示す。
【図８】ルータに対する脆弱性の診断の一例を示す。
【図９】本発明が適用されるコンピュータシステムの一例を示す図である。
【図１０】テスト結果の確認を行う診断装置の概要を示す。
【図１１】テスト結果の確認を行う診断装置の動作を示す。
【図１２】テスト装置とモニタ装置を有する診断装置の概要を示す。
【図１３】テスト装置の動作を示す。
【図１４】モニタ装置の動作を示す。
【発明を実施するための形態】
【００３１】
以下、発明の実施の形態について図を用いて説明する。
【００３２】
（実施の形態１）
まず、本実施の形態に係る診断装置のハードウェア構成及び機能構成について説明する。図１は、本実施の形態に係る診断装置のハードウェア構成を示す。また、図２は、本実施の形態に係る診断装置の機能構成を示す。
【００３３】
図１に示すように、本実施の形態に係る診断装置１は、ハードウェアとして、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０、メモリ９１、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）９２、ＮＩＣ９３を備え、診断対象のネットワーク機器であるターゲット装置２と接続される。ＮＩＣ９２は、ターゲット装置２へのテストパケットの送出、ターゲット装置２によるテストパケットへの応答がなされる際に用いられるデータ経路（第１データ経路）を確立する。また、ＮＩＣ９３は、ＮＩＣ９２と同様のＭＡＣアドレスが設定され、ＮＩＣ９２により確立されたデータ経路をモニタ可能なデータ経路（第２データ経路）を確立する。
【００３４】
また、図２に示すように、診断装置１は、機能として、生成部１０、送出部１１、ソケット１２、プロトコルスタック１３、プロトコルスタック１４、受信部１５、判断部１６、診断部１７、記録部１８を備える。生成部１０は、ターゲット装置の診断に係るデータのパケットをテストパケットとして生成する。送出部１１は、生成部１０により生成されたテストパケットを、ソケット１２及びプロトコルスタック１３を介して、ターゲット装置２へ送出する。また、ソケット１２は、ＴＣＰ／ＩＰを送出部１１により利用可能にする。また、プロトコルスタック１３は、物理層、データリンク層のＬＡＮ、ネットワーク層のＩＰ、トランスポート層のＴＣＰ／ＵＤＰを実装する。ＬＡＮとしては、例えばイーサネット（登録商標）が用いられる。また、プロトコルスタック１４は、物理層、データリンク層のＬＡＮのみを実装する。また、受信部１５は、プロトコルスタック１４を介して、パケットを受信する。また、判断部１６は、受信部１５により受信されたパケットが、送出部１１により送出されたテストパケットに対する応答（応答パケット）かどうかを判断する。また、診断部１７は、テストパケットと、その応答パケットとに基づいて、ターゲット装置２の脆弱性を診断する。また、記録部１８は、診断部１７による診断結果をメモリ９１に記録する。なお、これらの機能はＣＰＵ９０により実現される。また、プロトコルスタック１４がデータリンク層以下のプロトコルのみを実装することにより、異常があるパケットであっても、受信部１５はプロトコルスタック１４を介して受信することができる。
【００３５】
次に、本実施の形態に係る診断装置の動作について説明する。図３は、本実施の形態に係る診断装置の動作を示す。また、図４は、シーケンス番号に基づくパケットの判断を示す。また、図５は、パケットに基づく脆弱性の診断の一例を示す。
【００３６】
図３に示すように、まず、生成部１０は、ｅｔｈｅｒヘッダ、ＩＰヘッダ、ＴＣＰヘッダを含むテストパケットを生成し（Ｓ１０１、生成ステップ）、送出部１１は、ソケット１２及びプロトコルスタック１３を介して、ターゲット装置２にテストパケットを送出する（Ｓ１０２、送出ステップ）。次に、受信部１５は、テストパケットの送出から所定時間が経過したかどうかを判断する（Ｓ１０３）。
【００３７】
テストパケットの送出から所定時間が経過していない場合（Ｓ１０３，ＮＯ）、受信部１５は、ＮＩＣ９３によるデータ経路上にパケットが流れているかどうかを判断する（Ｓ１０４）。
【００３８】
データ経路上にパケットが流れている場合（Ｓ１０４，ＹＥＳ）、受信部１５は、パケットを受信し（Ｓ１０５、受信ステップ）、判断部１６は、受信部１５により受信されたパケット（受信パケット）が、テストパケットに対する応答パケットかどうかを判断する（Ｓ１０６、判断ステップ）。なお、判断部１６は、通信プロトコルがＴＣＰである場合、受信されたパケットが応答パケットかどうかを、そのコネクション情報（Ｓｒｃ  Ｄｓｔ  ＩＰ及びポート番号）、テストパケットのシーケンス番号（ＳＥＱ）、受信されたパケットの確認応答番号（ＡＣＫ）に基づいて判断する。この判断は、具体的には、受信されたパケットにおける確認応答番号と、テストパケットのシーケンス番号にそのデータのバイト数を加算した値との一致によりなされる。例えば、図４に示すように、テストパケットのデータ量が１００バイトであり、そのシーケンス番号が３００である場合、確認応答番号が４００であるパケットが応答パケットと判断される。
【００３９】
パケットがテストパケットに対する応答パケットである場合（Ｓ１０６，ＹＥＳ）、診断部１７は、テストパケットとその応答パケットに基づいて、ターゲット装置２の脆弱性を診断する（Ｓ１０７、診断ステップ）。
【００４０】
ここで脆弱性とは、ネットワーク外部に要因のあるクラッシュ、サービス不能、セキュリティ低下、パフォーマンス低下、不正な動作などが起こり得る状態を示す。例えば、図５に示すように、診断装置１が、ＩＳＮ（Ｉｎｉｔｉａｌ  Ｓｅｑｕｅｎｃｅ  Ｎｕｍｂｅｒ）が１００００のテストパケットを複数回送信し、ＩＳＮが２００００のパケットデータと２０１００のパケットデータがターゲット装置２により返されたとする。この場合、ターゲット装置２には脆弱性があると判断される。これは、同期パケットとして送信される複数回の送信パケットに対して、複数回の応答パケットのＩＳＮに＋１００ずつ増加する規則性があると攻撃者に判断される場合、シーケンス番号攻撃が可能となることに起因する。つまり、ここで脆弱性の診断とは、ターゲット装置２に対して、システムの欠陥や、悪用され得る仕様を検出することを示す。
【００４１】
次に、記録部１８は、診断結果をメモリ９１に記録する（Ｓ１０８）。
【００４２】
また、ステップＳ１０６において、パケットがテストパケットに対する応答パケットではない場合（Ｓ１０６，ＮＯ）、受信部１５は、再度、所定時間を経過したかどうかを判断する（Ｓ１０３）。
【００４３】
また、ステップＳ１０４において、データ経路上にパケットが流れていない場合（Ｓ１０４，ＮＯ）、受信部１５は、再度、所定時間を経過したかどうかを判断する（Ｓ１０３）。
【００４４】
また、ステップＳ１０３において、テストパケットの送出から所定時間が経過した場合（Ｓ１０３，ＹＥＳ）、受信部１５はタイムアウトし、診断部１７が診断結果（タイムアウトによる異常）をメモリ９１に記録する（Ｓ１０８）。
【００４５】
上述したように、脆弱性の診断に必要なヘッダをテストパケットに付加可能なプロトコルスタックを介するデータ経路と、このデータ経路に流れるパケットの受信に最低限必要なプロトコルスタックを介するデータ経路とによって、応答としての異常パケットを受信することができる。また、これらのデータ経路により送受されたパケットを、シーケンス番号を識別子として対応付けることによって、データ経路が異なるテストパケットと応答パケットとに基づいて、脆弱性を診断することができる。なお、本実施の形態において、２つのデータ経路は物理的に異なるＮＩＣにより確立されるものとして説明したが、診断装置１内部における論理的に異なるデータ経路であっても良い。例えば、１つのＮＩＣによるデータ経路を、診断装置１内部において論理的に２つのデータ経路に分岐させ、それぞれに実装されるプロトコルが異なるプロトコルスタックを経由させても良い。
【００４６】
（実施の形態２）
本実施の形態は、受信部１５により受信されたパケットが、テストパケットに対する応答パケットかどうかを判断するための識別子として、シーケンス番号の代わりに、送信元アドレス及び宛先アドレスを用いる点が、実施の形態１とは異なる。なお、本実施の形態に係る診断装置は、実施の形態１に係る診断装置とその構成は同様であり、受信パケットがテストパケットに対する応答パケットかどうかの判断（ステップＳ１０６）が実施の形態１とは異なる。以下、実施の形態１とは異なる動作について説明する。図６は、送信元アドレス及び送信先アドレスに基づくパケットの判断を示す。
【００４７】
本実施の形態において、判断部１６は、図６に示すテストパケット及び受信パケットの送信元アドレス（Ｓｒｃ  ＩＰ）及び宛先アドレス（Ｄｓｔ  ＩＰ）に基づいて、受信パケットがテストパケットに対する応答パケットであるかどうかを判断する。具体的には、テストパケットの送信元アドレスと受信パケットの宛先アドレスとの一致と、受信パケットの送信元アドレスとテストパケットの宛先アドレスとの一致とを以って、受信パケットをテストパケットに対する応答パケットであると判断する。なお、判断部１６は、送信元アドレス及び宛先アドレスに加えて、送信元ポート（Ｓｒｃ  Ｐｏｒｔ）及び宛先ポート（Ｄｓｔ  Ｐｏｒｔ）を用いて、受信パケットに対する判断を行っても良い。
【００４８】
（実施の形態３）
本実施の形態は、受信部１５により受信されたパケットが、テストパケットに対する応答パケットかどうかを判断するための識別子として、データ部に付加された一意な識別子が、実施の形態１及び２とは異なる。なお、本実施の形態に係る診断装置は、実施の形態１及び２に係る診断装置とその構成は同様であり、テストパケットの生成（ステップＳ１０１）、受信パケットがテストパケットに対する応答パケットかどうかの判断（ステップＳ１０６）が実施の形態１及び２とは異なる。以下、実施の形態１及び２とは異なる動作について説明する。図７は、データ部に付加された識別子に基づくパケットの判断を示す。
【００４９】
本実施の形態において、生成部１０は、テストパケットの生成において、テストパケットのデータ部に、文字列あるいは数値等による一意な識別子を付加する。また、判断部１６は、図７に示すテストパケット及び受信パケットに含まれる識別子の一致を以って、受信パケットがテストパケットに対する応答パケットであると判断する。このように、データ部に付加された識別子に基づく判断によって、例えばヘッダに異常がある場合であっても、受信パケットが応答パケットかどうかを判断することができる。
【００５０】
以上説明した実施の形態によれば、例えば、ルータのように複数のセグメントに跨る装置がターゲット装置であっても、効率よく脆弱性の診断を行うことができる。図８は、ルータに対する脆弱性の診断の一例を示す。
【００５１】
図８において、ターゲット装置２はセグメントＡ、セグメントＢに跨るルータであり、テストパケットの送信先はターゲット装置ではないホスト装置である。このような状況において、テストパケットに対する応答ではないパケットが受信パケットとして受信される可能性が高い。しかし、このような場合であっても、診断装置１は、識別子により受信パケットが応答パケットかどうかを判断するため、テストの実行、診断、その結果確認までのプロセスを自動化することができる。
【００５２】
また、上述した各実施の形態は、それぞれ組みあせて用いることができる。例えば、シーケンス番号と、識別シーケンス番号とを識別子として用いることによって、ヘッダ、データ部のいずれかに異常がある場合でも、受信パケットが応答パケットかどうかを判断することができる。
【００５３】
本発明は以下に示すようなコンピュータシステムにおいて適用可能である。図９は、本発明が適用されるコンピュータシステムの一例を示す図である。図９に示すコンピュータシステム９００は、ＣＰＵやディスクドライブ等を内蔵した本体部９０１、本体部９０１からの指示により画像を表示するディスプレイ９０２、コンピュータシステム９００に種々の情報を入力するためのキーボード９０３、ディスプレイ９０２の表示画面９０２ａ上の任意の位置を指定するマウス９０４及び外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードする通信装置９０５を有する。通信装置９０５は、ネットワーク通信カード、モデムなどが考えられる。
【００５４】
上述したような、診断装置を構成するコンピュータシステムにおいて上述した各ステップを実行させるプログラムを、診断プログラムとして提供することができる。このプログラムは、コンピュータシステムにより読取り可能な記録媒体に記憶させることによって、診断装置を構成するコンピュータシステムに実行させることが可能となる。上述した各ステップを実行するプログラムは、ディスク９１０等の可搬型記録媒体に格納されるか、通信装置９０５により他のコンピュータシステムの記録媒体９０６からダウンロードされる。また、コンピュータシステム９００に少なくとも診断機能を持たせる診断プログラム（診断ソフトウェア）は、コンピュータシステム９００に入力されてコンパイルされる。このプログラムは、コンピュータシステム９００を診断機能を有する診断装置として動作させる。また、このプログラムは、例えばディスク９１０等のコンピュータ読み取り可能な記録媒体に格納されていても良い。ここで、コンピュータシステム９００により読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ディスク９１０やフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータシステム並びにそのデータベースや、通信装置９０５のような通信手段を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
【００５５】
以上、本実施の形態によれば、以下の付記で示す技術的思想が開示されている。
（付記１）  ネットワーク機器の脆弱性を診断する診断装置において実行される診断プログラムであって、
識別子を含むパケットを生成する生成ステップと、
前記生成ステップにより生成されたパケットを、第１データ経路により送出パケットとして前記ネットワーク機器へ送出する送出ステップと、
前記第１データ経路を流れるパケットをモニタ可能な第２データ経路であって、データリンク層以下のプロトコルによる第２データ経路によりパケットを受信パケットとして受信する受信ステップと、
前記受信パケットに含まれる識別子と、前記送出パケットに含まれる識別子とに基づいて、前記受信パケットが前記送出パケットに対する応答であるかどうかを判断する判断ステップと、
前記判断ステップにより、前記受信パケットが前記送出パケットに対する応答であると判断された場合、前記送出パケットと前記受信パケットとに基づいて、前記ネットワーク機器の脆弱性を診断する診断ステップと
をコンピュータに実行させる診断プログラム。
（付記２）  付記１に記載の診断プログラムにおいて、
前記識別子は、パケットのシーケンス番号であることを特徴とする診断プログラム。
（付記３）  付記１に記載の診断プログラムにおいて、
前記識別子は、パケットの送信元アドレス及び宛先アドレスであることを特徴とする診断プログラム。
（付記４）  付記１に記載の診断プログラムにおいて、
前記生成ステップは、前記ネットワーク機器の脆弱性の診断に係るパケットの生成において、該パケットのデータ部に一意な識別子を付加し、
前記判断ステップは、前記受信パケットのデータ部に識別子が付加されている場合、前記受信パケットのデータ部に付加された識別子と、前記送出パケットのデータ部に付加された識別子とに基づいて、前記受信パケットが前記送出パケットに対する応答であるかどうかを判断することを特徴とする診断プログラム。
（付記５）  ネットワーク機器の脆弱性を診断する診断装置であって、
識別子を含むパケットを生成する生成部と、
前記生成部により生成されたパケットを、第１データ経路により送出パケットとして前記ネットワーク機器へ送出する送出部と、
前記第１データ経路を流れるパケットをモニタ可能な第２データ経路であって、データリンク層以下のプロトコルによる第２データ経路によりパケットを受信パケットとして受信する受信部と、
前記受信パケットに含まれる識別子と、前記送出パケットに含まれる識別子とに基づいて、前記受信パケットが前記送出パケットに対する応答であるかどうかを判断する判断部と、
前記判断部により、前記受信パケットが前記送出パケットに対する応答であると判断された場合、前記送出パケットと前記受信パケットとに基づいて、前記ネットワーク機器の脆弱性を診断する診断部と
を備える診断装置。
（付記６）  付記５に記載の診断装置において、
前記識別子は、パケットのシーケンス番号であることを特徴とする診断装置。
（付記７）  付記５に記載の診断装置において、
前記識別子は、パケットの送信元アドレス及び宛先アドレスであることを特徴とする診断装置。
（付記８）  付記５に記載の診断装置において、
前記生成部は、前記ネットワーク機器の脆弱性の診断に係るパケットの生成において、該パケットのデータ部に一意な識別子を付加し、
前記判断部は、前記受信パケットのデータ部に識別子が付加されている場合、前記受信パケットのデータ部に付加された識別子と、前記送出パケットのデータ部に付加された識別子とに基づいて、前記受信パケットが前記送出パケットに対する応答であるかどうかを判断することを特徴とする診断装置。
（付記９）  ネットワーク機器の脆弱性を診断する診断装置において実行される診断方法であって、
識別子を含むパケットを生成する生成ステップと、
前記生成ステップにより生成されたパケットを、第１データ経路により送出パケットとして前記ネットワーク機器へ送出する送出ステップと、
前記第１データ経路を流れるパケットをモニタ可能な第２データ経路であって、データリンク層以下のプロトコルによる第２データ経路によりパケットを受信パケットとして受信する受信ステップと、
前記受信パケットに含まれる識別子と、前記送出パケットに含まれる識別子とに基づいて、前記受信パケットが前記送出パケットに対する応答であるかどうかを判断する判断ステップと、
前記判断ステップにより、前記受信パケットが前記送出パケットに対する応答であると判断された場合、前記送出パケットと前記受信パケットとに基づいて、前記ネットワーク機器の脆弱性を診断する診断ステップと
をコンピュータに実行させる診断方法。
（付記１０）  付記９に記載の診断方法において、
前記識別子は、パケットのシーケンス番号であることを特徴とする診断方法。
（付記１１）  付記９に記載の診断方法において、
前記識別子は、パケットの送信元アドレス及び宛先アドレスであることを特徴とする診断方法。
（付記１２）  付記９に記載の診断方法において、
前記生成ステップは、前記ネットワーク機器の脆弱性の診断に係るパケットの生成において、該パケットのデータ部に一意な識別子を付加し、
前記判断ステップは、前記受信パケットのデータ部に識別子が付加されている場合、前記受信パケットのデータ部に付加された識別子と、前記送出パケットのデータ部に付加された識別子とに基づいて、前記受信パケットが前記送出パケットに対する応答であるかどうかを判断することを特徴とする診断方法。
【符号の説明】
【００５６】
１  診断装置、２  ターゲット装置、１０  生成部、１１  送出部、１２  ソケット、１３  プロトコルスタック、１４  プロトコルスタック、１５  受信部、１６  判断部、１７  診断部、１８  記録部、９０  ＣＰＵ、９１  メモリ、９２  ＮＩＣ、９３  ＮＩＣ、１３１  ＬＡＮ、１３２  ＩＰ、１３３  ＴＣＰ／ＵＤＰ、１４１  ＬＡＮ。
【図１】
0005402304.tif 000002
【図２】
0005402304.tif 000003
【図３】
0005402304.tif 000004
【図４】
0005402304.tif 000005
【図５】
0005402304.tif 000006
【図６】
0005402304.tif 000007
【図７】
0005402304.tif 000008
【図８】
0005402304.tif 000009
【図９】
0005402304.tif 000010
【図１０】
0005402304.tif 000011
【図１１】
0005402304.tif 000012
【図１２】
0005402304.tif 000013
【図１３】
0005402304.tif 000014
【図１４】
0005402304.tif 000015