(57)【要約】本発明は概して、ネットワークの脆弱性を検出する装置及び方法に関する。特に、本発明は、コンピュータネットワークのネットワークセキュリティ欠陥を検出する装置及び方法に関する。本発明によって保護し易くなるコンピュータネットワークのタイプには、ローカルエリアネットワーク及び他のプライベートネットワークの両方と、インターネット又は同様の広域公衆網に接続されるネットワークとが含まれる。
2006526221.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークセキュリティデバイスとして使用する装置であって、
ネットワークパラメータ入力モジュール、
前記ネットワークパラメータ入力モジュールの出力に接続される入力を有する第１ネットワークスキャナモジュール、及び
前記第１ネットワークスキャナモジュールの出力に接続される入力を有するレポートモジュール
を備える装置。
【請求項２】
更に、前記ネットワークパラメータ入力モジュールの出力に接続される入力を有し、且つ前記レポートモジュールの入力に接続される出力を有する第２ネットワークスキャナモジュールを備える、請求項１記載の装置。
【請求項３】
前記ネットワークパラメータ入力モジュールはユーザが入力するデータを含む、請求項１記載の装置。
【請求項４】
前記ネットワークパラメータ入力モジュールは、アンケートに応答して供給されるデータを含む、請求項１記載の装置。
【請求項５】
前記ネットワークパラメータ入力モジュールは、供給データの有効性を評価するエラーチェックモジュールを含む、請求項１記載の装置。
【請求項６】
前記ネットワークパラメータ入力モジュールはネットワークアドレスのデータベースを含む、請求項１記載の装置。
【請求項７】
前記ネットワークパラメータ入力モジュールはユーザ名のデータベースを含む、請求項１記載の装置。
【請求項８】
前記ネットワークパラメータ入力モジュールはパラメータ設定データベースを含む、請求項１記載の装置。
【請求項９】
前記パラメータ設定データベースは、ネットワークアドレス、ＭＡＣアドレス、ネットワークブロック、着目する脆弱性、脆弱性検出に使用するツール、最大許容誤差、プログラム実行に利用することができる１日の内の時間、スキャンの停止期間、及び動作頻度から成るグループから選択される少なくとも一つのパラメータに関するデータを含む、請求項８記載の装置。
【請求項１０】
前記第１ネットワークスキャナモジュールは、入力及び出力を有するネットワークスキャニングツールを含む、請求項１記載の装置。
【請求項１１】
前記第１ネットワークスキャナモジュールは、ｎｓｌｏｏｋｕｐ，ｄｉｇ，ｗｈｏｉｓ，ｐｉｎｇ，ｔｒａｃｅｒｏｕｔｅ，ｒｐｃｉｎｆｏ，ｎｂｔｓｔａｔ，ｎｅｔ  ｕｓｅ，ｓｍｂｃｌｉｅｎｔ，ｎｍｂｌｏｏｋｕｐ，ｎｍａｐ，ｎｅｓｓｕｓ，ｗｈｉｓｋｅｒ，ｎｉｋｔｏ，ｏｎｅｓｉｘｔｙｏｎｅ，ｌａｎｔｅｒｎ，ｐｐｔｐ＿ｐｒｏｂｅ，Ｇｂｇ，Ｗｇｅｔ，ＱＴＩＰ，ＤＯＲＩＡＮ，Ｉｎｔｅｒｎｅｔ  Ｓｅｃｕｒｉｔｙ  Ｓｙｓｔｅｍｓ  Ｓｃａｎｎｅｒ，Ｃｙｂｅｒｃｏｐ  Ｓｃａｎｎｅｒ，及びＣｉｓｃｏ  Ｓｅｃｕｒｉｔｙ  Ｓｃａｎｎｅｒから成るグループから選択される少なくとも一つのツールを含む、請求項１記載の装置。
【請求項１２】
前記第１ネットワークスキャナモジュールは、前記ネットワークパラメータ入力モジュールからのデータに基づいてスキャンリストを生成するように構成されたモジュールを含む、請求項１記載の装置。
【請求項１３】
前記第１ネットワークスキャナモジュールは、ネットワーク上の無防備システムの一覧を生成するように構成されたモジュールを含む、請求項１記載の装置。
【請求項１４】
前記第１ネットワークスキャナモジュールは、ネットワーク上の無防備サービスの一覧を生成するように構成されたモジュールを含む、請求項１記載の装置。
【請求項１５】
前記第１ネットワークスキャナモジュールは、ネットワークをプローブした結果を解析するように構成されたモジュールを含む、請求項１記載の装置。
【請求項１６】
前記第１ネットワークスキャナモジュールは、システムをプローブして識別可能な脆弱性に関するステータス判定を行なうように構成されたモジュールを含む、請求項１記載の装置。
【請求項１７】
前記レポートモジュールは、一つ以上のフォーマットのデータを受け取り、このデータを統一フォーマットで提示するように構成された共通化モジュールを含む、請求項１記載の装置。
【請求項１８】
前記レポートモジュールはクライアント環境データベースを含む、請求項１記載の装置。
【請求項１９】
前記クライアント環境データベースは、スキャンに使用するスキャンパラメータ、オペレーティングシステム、ＩＰレジストリ、脆弱性、スキャン時刻、最終スキャン日、次のスキャン日、ネットワークのステータス、検出対象ＭＡＣアドレス、スキャンアクティビティログ、無防備システム、無防備サービス、スキャン対象ドメイン名、スキャン対象ＩＰ、検出対象ＩＰ、及びスキャンに使用するアプリケーションから成るグループから選択される少なくとも一つに対応するデータを含む、請求項１８記載の装置。
【請求項２０】
前記ネットワークパラメータ入力モジュールは、ユーザが入力する遵守確保措置に基づいてネットワークテストパラメータを推測するように構成される、請求項１記載の装置。
【請求項２１】
前記遵守確保措置は、業界規準、企業規制、及び政府規制から成るグループから選択される、請求項２０記載の装置。
【請求項２２】
ネットワークのセキュリティを確保する方法であって、
データをスキャニングモジュールに入力するステップ、
前記スキャニングモジュールの第１ツールでネットワークをスキャンする第１ステップ、及び
スキャンする前記第１ステップから得られる結果を提示するステップ
を含む方法。
【請求項２３】
更に、前記スキャニングモジュールの第２ツールでネットワークをスキャンする第２ステップを含む、請求項２２記載の方法。
【請求項２４】
データを入力するステップはユーザデータを入力することを含む、請求項２２記載の方法。
【請求項２５】
前記データを入力するステップはアンケートに回答することを含む、請求項２２記載の方法。
【請求項２６】
前記データを入力するステップは前記データのエラーをチェックすることを含む、請求項２２記載の方法。
【請求項２７】
前記データを入力するステップはネットワークアドレスのデータベースを提供することを含む、請求項２２記載の方法。
【請求項２８】
前記データを入力するステップはユーザ名のデータベースを提供することを含む、請求項２２記載の方法。
【請求項２９】
前記データを入力するステップはパラメータ設定データベースを提供することを含む、請求項２２記載の方法。
【請求項３０】
前記パラメータ設定データベースは、ネットワークアドレス、ＭＡＣアドレス、ネットワークブロック、着目する脆弱性、脆弱性検出に使用するツール、最大許容誤差、プログラム実行に利用することができる１日の内の時間、スキャンの停止期間、及び動作頻度から成るグループから選択される少なくとも一つのパラメータに関するデータを含む、請求項２９記載の方法。
【請求項３１】
前記第１ツールは入力及び出力を有するネットワークスキャニングツールを含む、請求項２２記載の方法。
【請求項３２】
前記ネットワークスキャニングツールは、ｎｓｌｏｏｋｕｐ，ｄｉｇ，ｗｈｏｉｓ，ｐｉｎｇ，ｔｒａｃｅｒｏｕｔｅ，ｒｐｃｉｎｆｏ，ｎｂｔｓｔａｔ，ｎｅｔ  ｕｓｅ，ｓｍｂｃｌｉｅｎｔ，ｎｍｂｌｏｏｋｕｐ，ｎｍａｐ，ｎｅｓｓｕｓ，ｗｈｉｓｋｅｒ，ｎｉｋｔｏ，ｏｎｅｓｉｘｔｙｏｎｅ，ｌａｎｔｅｒｎ，ｐｐｔｐ＿ｐｒｏｂｅ，Ｇｂｇ，Ｗｇｅｔ，ＱＴＩＰ，ＤＯＲＩＡＮ，Ｉｎｔｅｒｎｅｔ  Ｓｅｃｕｒｉｔｙ  Ｓｙｓｔｅｍｓ  Ｓｃａｎｎｅｒ，Ｃｙｂｅｒｃｏｐ  Ｓｃａｎｎｅｒ，及びＣｉｓｃｏ  Ｓｅｃｕｒｉｔｙ  Ｓｃａｎｎｅｒから成るグループから選択される少なくとも一つのツールを含む、請求項２２記載の方法。
【請求項３３】
前記スキャンする第１ステップは、前記ネットワークパラメータ入力モジュールからのデータに基づいてスキャンリストを生成することを含む、請求項２２記載の方法。
【請求項３４】
前記スキャンする第１ステップは、ネットワーク上の無防備システムの一覧を生成することを含む、請求項２２記載の方法。
【請求項３５】
前記スキャンする第１ステップは、ネットワーク上の無防備サービスの一覧を生成することを含む、請求項２２記載の方法。
【請求項３６】
前記スキャンする第１ステップは、ネットワークをプローブした結果を解析することを含む、請求項２２記載の方法。
【請求項３７】
前記スキャンする第１ステップは、システムをプローブして識別可能な脆弱性に関するステータス判定を行なうことを含む、請求項２２記載の方法。
【請求項３８】
前記結果を提示するステップは、一つ以上のフォーマットのデータを統一フォーマットにすることを含む、請求項２２記載の方法。
【請求項３９】
前記結果を提示するステップは、クライアント環境データベースを生成することを含む、請求項２２記載の方法。
【請求項４０】
前記クライアント環境データベースは、スキャンに使用するスキャンパラメータ、オペレーティングシステム、ＩＰレジストリ、脆弱性、スキャン時刻、最終スキャン日、次のスキャン日、ネットワークのステータス、検出対象ＭＡＣアドレス、スキャンアクティビティログ、無防備システム、無防備サービス、スキャン対象ドメイン名、スキャン対象ＩＰ、検出対象ＩＰ、及びスキャンに使用するアプリケーションから成るグループから選択される少なくとも一つに対応するデータを含む、請求項３９記載の方法。
【請求項４１】
前記データを入力するステップは、ユーザが入力する遵守確保措置に基づいてネットワークテストパラメータを推測することを含む、請求項２２記載の方法。
【請求項４２】
前記遵守確保措置は、業界規準、企業規制、及び政府規制から成るグループから選択される、請求項４１記載の方法。
【請求項４３】
コンピュータネットワークの準拠性を評価する方法であって、
第１の複数の命令を含む第１タスクセットを生成するステップ、
コンピュータネットワークを解析するスキャンタスク群を生成するステップ、
第１の複数の命令に従って生成されたスキャンタスク群の内の所定のスキャンタスク群を選択するステップ、
選択スキャンタスク群を含む第２タスクセットを生成するステップ、
第２タスクセットの一部を含む少なくとも一つのタスク割当を生成するステップ、
少なくとも一つのタスク割当を使用してコンピュータネットワークを解析するステップ、
コンピュータネットワークを解析した結果を報告するステップ
を含む方法。
【請求項４４】
第１タスクセットを生成するステップは、
コンピュータネットワークに関するデータを入力すること、及び
入力データに基づいて第１の複数の命令を生成すること
を含む、請求項４３記載の方法。
【請求項４５】
第２タスクセットを生成するステップは、コンピュータネットワークを解析するために必要な少なくとも一つの追加スキャンタスクを追加することを含む、請求項４３記載の方法。
【請求項４６】
少なくとも一つの追加タスクは、コンピュータネットワークのパケット群を受け取る命令を含む、請求項４５記載の方法。
【請求項４７】
第２タスクセットを生成するステップは、選択されたスキャンタスク群に優先順位を付けることを含む、請求項４３記載の方法。
【請求項４８】
第２タスクセットを生成するステップは、コンピュータネットワークを解析した結果に基づいて少なくとも一つのタスクを追加することを含む、請求項４３記載の方法。
【請求項４９】
解析するステップは、
ツールライブラリから少なくとも一つのスキャニングツールを選択すること、及び
選択したスキャニングツールをコンピュータネットワークに適用すること
を含む、請求項４３記載の方法。
【請求項５０】
少なくとも一つのスキャニングツールを選択するステップは、複数のスキャニングツールを同時に選択することを含む、請求項４９記載の方法。
【請求項５１】
少なくとも一つのスキャニングツールを選択するステップは、複数のスキャニングツールを連続して選択することを含む、請求項４９記載の方法。
【請求項５２】
解析するステップは、少なくとも一つのスキャニングツールを提供することを含み、少なくとも一つのスキャニングツールが、少なくとも一つのタスク割当の内部の命令に応答する、請求項４３記載の方法。
【請求項５３】
解析するステップは、複数のスキャニングツールを提供することを含み、複数のスキャニングツールの内の少なくとも２つのスキャニングツールが異なるオペレーティングシステムで動作可能である、請求項５２記載の方法。
【請求項５４】
解析するステップは、少なくとも一つのタスク割当の内部の命令を、少なくとも一つのスキャニングツールが必要とする言語及びフォーマットの少なくとも一方に変換することを更に含む、請求項５２記載の方法。
【請求項５５】
解析するステップは、コンピュータネットワークを解析することができるかどうかを判断することを含み、コンピュータネットワークを解析することができると判断される場合にコンピュータネットワークを解析する、請求項４３記載の方法。
【請求項５６】
報告するステップは、コンピュータネットワークの解析に基づいてネイティブ出力を生成することを含み、ネイティブ出力はコンピュータネットワークを解析した結果を含んでいる、請求項４３記載の方法。
【請求項５７】
報告するステップは、生成されたネイティブ出力を共通言語及び統一フォーマットの少なくとも一方に変換することを更に含む、請求項５６記載の方法。
【請求項５８】
コンピュータシステムをスキャンするシステムであって、
少なくとも一つのタスク割当を生成するタスク管理モジュールであって、少なくとも一つのタスク割当が、少なくとも一つのコンピュータネットワークをスキャンする命令を含む、タスク管理モジュール、及び
少なくとも一つのタスク割当を受け取り、且つ少なくとも一つのコンピュータネットワークを命令に従ってスキャンする少なくとも一つのスキャニングモジュール
を備えるシステム。
【請求項５９】
少なくとも一つのスキャニングモジュールは複数のスキャニングモジュールを含む、請求項５８記載のシステム。
【請求項６０】
少なくとも一つのスキャニングモジュールは、少なくとも一つのコンピュータネットワークをスキャンする少なくとも一つのツールを含む、請求項５８記載のシステム。
【請求項６１】
少なくとも一つのスキャニングモジュールは複数のスキャニングモジュールを含む、請求項６０記載のシステム。
【請求項６２】
少なくとも一つのタスク割当は、ユーザが入力するデータに基づく命令を含む、請求項５８記載のシステム。
【請求項６３】
少なくとも一つのタスク割当は、少なくとも一つのスキャニングモジュールによるスキャンの結果に基づく命令を含む、請求項５８記載のシステム。
【発明の詳細な説明】
【発明の開示】
【０００１】
発明の分野
本発明は概して、コンピュータネットワークの特定の属性を評価する装置及び方法に関する。特に、本発明は、コンピュータネットワークのネットワークセキュリティ欠陥を検出し、コンピュータネットワークが特定の動作フレームワークの特定の構成に準拠しているかどうかを評価する装置及び方法に関する。本発明によって保護又は評価が行ない易くなるタイプのコンピュータネットワークには、ローカルエリアネットワーク及び他のプライベートネットワークの両方、更にはインターネットに接続されるネットワーク又は同様の広域公衆網が含まれる。
【０００２】
発明の背景
情報の安全を確保する責任のある個々の事業体は、これらの事業体の組織の総合的なセキュリティ体制にどのような影響がもたらされるかを完全に理解することなく、問題解決中心の対策（例えば、ファイアウォール、暗号化ソフトウェア、パスワードトークンなど）を実施することが多い。情報セキュリティ問題に対処する文書化されたセキュリティ規準及び規制が欠落することによって、セキュリティソリューション又はコンピュータシステムアーキテクチャが「産業界で最良の規準」によって推進される環境が創り出されてきた。場合によっては、ソリューションとして、個々のセキュリティ問題又は特定のセキュリティ問題を解決するために設計されるアドホックパッチを当てることさえ行われる。
近年、情報保証（ＩＡ）の規準の欠落に対処するために多くの発議が提案されている。これらの規制発議には、グラムリーチブライリー法（ＧＬＢ）及び健康保険継続責任法（ＨＩＰＡＡ）が含まれ、これらの法律は、プライバシー情報が所与のコンピュータネットワークにおいて保護されることを要求している。また、企業セキュリティに関する規準は継続的に書き換えられるので、民間組織は強固なセキュリティ実務を遂行するために準拠する運営要件を持たない。更に、企業の情報資産及び重要なビジネス機能は益々電子インフラストラクチャに依存するようになっているので、全ての組織は、このような資産及び機能を保全するためにセキュリティポリシーを策定する場合に、規制者、株主、顧客、及びパートナーに回答する必要がある。
【０００３】
内部規準及び外部規準、セキュリティ要件、及び適用法律に対応するために、組織は、自己の情報保証（ＩＡ）基準に関する組織のビジネスニーズを、当該会社がどのようにしてこれらの基準を満たし、且つ準拠するかについて詳述したセキュリティポリシー説明書に変換するプロセスを経る必要がある。次に、同じ会社は、会社のセキュリティポリシーに実際に準拠したセキュリティプログラムを実行する必要がある。更に、会社は定期的なモニターを行ない、情報保証（ＩＡ）の要求ニーズが変わり、会社のコンピュータネットワークを機能強化するときに、実行しているセキュリティプログラムが有効であり、且つ引き続き、会社のセキュリティポリシー説明書の目標に従っていることを確認する必要がある。
企業が、規制規準及び／又はセキュリティポリシーに準拠しているかどうかの評価を試みることができる種々の方法がある。例えば、コンサルタントが企業の情報管理幹部に質問を行って、企業がそのコンピュータ化された情報を保全するためにどのような対策を実施しているかを判断させることができる。或いは、企業は自動化ツールを採用して評価を実行することができる。これらの自動化ツールとしては、Ｃｏｍｐｕｔｅｒ  Ｏｒａｃｌｅ  ａｎｄ  Ｐａｓｓｗｏｒｄ  Ｓｙｓｔｅｍ（ＣＯＰＳ）、Ｓｅｃｕｒｉｔｙ  Ａｄｍｉｎｉｓｔｒａｔｏｒ  Ｔｏｏｌ  ｆｏｒ  Ａｎａｌｙｚｉｎｇ  Ｎｅｔｗｏｒｋｓ（ＳＡＴＡＮ  Ｓｕｉｔｅ）、及びＩｎｔｅｒｎｅｔ  Ｓｅｃｕｒｉｔｙ  Ｓｙｓｔｅｍｓ（ＩＳＳ）のＩｎｔｅｒｎｅｔ  Ｓｃａｎｎｅｒを挙げることができる。これらの自動化製品は、ユーザのコンピュータネットワークの特定構成を能動的にプローブすることによりコンピュータインフラストラクチャの脆弱性をスキャンすることができるが、これらの著作権消滅アプリケーションでは、特定の規制規準又は特定のセキュリティポリシーに関する分析を行なうことができない。更に、既存の自動化ツールには、このようなコンピュータインフラストラクチャスキャンを考案し、管理する解析メカニズムが無い。
【０００４】
従って、自動化アンケートを通して情報を自動的に催促し、回収することができるシステム及び方法があると有利である。また、ユーザが採用する規制又はセキュリティポリシーの特定のタイプに合わせてアンケートを生成することができれば有利である。更に、アンケートをデータベースに保存し、同じような状況に置かれているユーザが使用できると有利である。また、ユーザのコンピュータネットワークの評価を入力データに基づいて考案する解析メカニズムを備えるシステム及び方法があれば有利である。更に、ユーザネットワークをスキャンし、それにより、脆弱性の観点から、又は特定の規制規準及びセキュリティポリシー又は運用基準に対する準拠性の観点からユーザネットワークを評価するデータを生成することにより当該評価を実行するシステム及び方法があれば有利である。また、生成データを種々のフォーマットでユーザに提示することができれば有利である。
【０００５】
発明の概要
本発明によって、上に議論した問題が解決し易くなり、且つユーザネットワークを評価するためのコスト効率の高い、整然とした方法を提供することができる。特に、本発明によって、あらゆるタイプの規制規準、セキュリティポリシー、又は運用基準に対するユーザコンプライアンスを評価する手段を提供し易くなる。例えば、本発明によって、セキュリティマネージャは既存のネットワークにおける脆弱性を確認することができる。セキュリティマネージャは、本発明の方法に関連するステップを実行することにより、又は本発明のシステム及び装置を使用することによりこの操作を行なうことができる。このようなシステム及び装置は、例えばコンピュータシステムとすることができる。
本発明による装置は、ネットワーク評価装置又はネットワークスキャナとして記載することができる。しかしながら、ネットワーク評価装置が実行する実際の機能は、ネットワークをスキャンするだけでなく、特定の動作フレームワークへの準拠性に関してネットワークを評価することを含む。ユーザから情報を受け入れてスキャンを行ない易くするようにこのネットワーク評価装置を構成することができ、又入力を自動化することができる。このような入力には、ユーザネットワークが動作する環境となる動作フレームワークのタイプが含まれる。これらの動作フレームワークは、規制規準、セキュリティポリシー、又は運用基準を含む。ネットワーク評価装置が受け入れる他の入力は、ユーザネットワークの種々のサーバ、ルータ、ゲートウェイ、又は他のハードウェアデバイスのＩＰアドレスに関する情報から成る。更に、ネットワーク評価装置への入力は、例えばオペレーティングシステムの脆弱性、ネットワーク通信の脆弱性、及びサービス拒否の脆弱性を含む、ユーザが調査を希望する脆弱性のタイプに関する情報を含み得る。
【０００６】
同様に、ネットワークスキャナへの入力は、ユーザが本発明の装置にスキャンさせたいと考えるカスタムソフトウェアアプリケーションに加えて、ユーザが実行したいと考えるスキャンの頻度に関する情報を含み得る。他の入力情報は、ユーザがスキャンを実行したいと考える１日の内の時間に加えて、平常営業に関連する「休止（ブラックアウト）」期間（時刻及び日付け）を含むことができる。スキャンのタイミングは、ネットワークスキャナがサービス拒否攻撃に対するユーザネットワークの脆弱性をテストしている場合に特に重要となる。
ネットワークスキャナがテストできるオペレーティングシステムの脆弱性には、提供情報の過多、又はユーザ、特に権限の無いユーザに対する過度に高いレベルの特権の付与も含まれる。ネットワークスキャナがテストすることができるネットワーク通信の脆弱性として、ネットワーク盗聴、なりすまし、又は情報収集が挙げられる。ネットワークスキャナがテストすることができるサービス拒否脆弱性には、特定形態のサービス拒否に対する脆弱性、及び更にはサービス拒否攻撃を行って相互に関連するセキュリティソフトウェア又はハードウェアを無効にする能力に対する脆弱性が含まれる。
【０００７】
データをネットワーク評価装置に入力することができる一つの方法は、カスタマイズしたアンケートの使用によるものである。このようなアンケートは従来の紙媒体により送付することができるか、又は電子フォーマット、例えばＨＴＭＬインターフェースを通して送付することができる。一旦データを収集した後、又は場合によっては収集と同時に、ネットワーク評価装置に入力されたデータをネットワークスキャナモジュールに供給することができる。ネットワークスキャナモジュールは種々のタスクを遂行することができる。例えば、ネットワークスキャナモジュールはまず、例えばユーザがＩＰアドレスではなくドメイン名を入力する場合に、どのようなＩＰアドレスの解明も試行することができる。ネットワークスキャナモジュールは続いて、多くの他の計数作業を開始することができ、これらの計数作業は、メールサーバ及びドメイン名サーバ等の関連システムの識別情報のような、不足情報の検出の試行を含む。
次に、ネットワークスキャナモジュールはユーザネットワークの評価及び解析を開始することができる。これには非常に多岐に渡るタスクが含まれる。例えば、ネットワークスキャナモジュールは、特定のシステムが可視であることを確認しようと試みる、又は可視システムにＴＣＰポートスキャンを実行することができる。或いは、ネットワークスキャナモジュールは、ローカルネットワークのパケットを受け取って、更に別のシステムに加えて、ユーザネットワークを通して渡されるパスワード又は他の重要データの検出を試みることができる。同様に、ネットワークスキャナモジュールは、システムの予測デフォルト設定を使用して当該ユーザシステムに対してこのモジュール自体を認証しようとすることができるか、又は可視システムに格納される媒体の読み出しを行おうとすることができ、更にヘッダ情報の偽造のような、なりすまし技術を使用することにより、可視でないユーザシステムと通信しようとすることができる。
【０００８】
これらの評価タスク又はスキャニングタスクの内の一つ以上を遂行するために、ネットワークスキャナモジュールは、多くのセキュリティツールとの接続を行なうか、又はそれらを組み込むことができる。これらのツールの各々は、ツール固有の独自仕様又は固有入力を必要とする。同様に、これらのネットワークセキュリティツールの各々は、使用するには余りにも多量の、又は非常に不可解な出力をネットワークセキュリティマネージャに供給することができる。従って、ネットワークスキャナモジュールは、入力データをネットワークスキャナモジュールが使用するフォーマットで取り込み、当該データをこれらのツールの各々が使用する適切なフォーマットに変換することにより、スキャニング手順を容易にする。
更に、ネットワークスキャナモジュールは各ツールの出力を回収し、ネットワークスキャナモジュールの他の出力に一致する出力に変換することができる。従って、例えばｐｉｎｇのネイティブの、又はフォーマットされていない出力が通常図５に示すように現われるが、ネットワークスキャナモジュールは、環境に応じてｐｉｎｇによって供給されるデータの一部のみを供給できる、フォーマットされた出力を供給することができる。例えば、図６に示すように、個々のＩＣＭＰ  ｐｉｎｇの結果は、平均往復遅延時間及びタイムアウト情報のような詳細が取り除かれているので、特定のＩＰアドレスに対して「ｐｉｎｇコマンドが実行可能（ｐｉｎｇａｂｌｅ）」又は不能という出力の核心となる事実を抜き出す。別の構成として、ネットワークスキャナモジュールは単純にデータのコンテンツ及び／又はフォーマットを変更して、又は変更しないで内部的にデータを渡すことができる。
【０００９】
次に、本発明のシステムは、ユーザが入力する情報及び／又はネットワークスキャナモジュールが取得する情報に基づいて予備解析を実行することができる。この解析によって、潜在脆弱性を識別するか、又は供給されたデータからの推定に基づいて追加データを供給することができる。更に、この解析ステップは、スキャニングツールの使用の前のデータに対して実行することができる。
最後に、本発明のシステムは、ユーザシステム又はサービスに関連する識別可能な脆弱性が存在するかどうかを判断するために特定のテストを実行することができる。これらのテストには、例えば、本明細書に記載するツールを用いることができるか、又はパスワード攻撃、サービス拒否攻撃、又は場合によっては情報を引き出そうとして偽造ヘッダ付きのｅ−ｍａｉｌを送付するといった初歩的社会工学攻撃のような他のテストを実行することができる。
【００１０】
本発明のシステムがその評価を完了すると、又は場合によっては評価の完了途中に、本発明のシステムはレポートジェネレータを用いて、本発明のシステムによる調査の結果を識別するレポートを生成することができる。この生成レポートは、例えば、使用した各ツールからの直接出力を含むことができるか、又は好ましくは、生成レポートは均一で理解し易いように出力を供給できる。例えば、プログラムは、本発明のシステムが識別した潜在的脆弱性の各々を分類し、簡易な形で列挙することができ、更に「低リスク」、「中リスク」、「高リスク」、「情報関連リスク」、又は「管理上のリスク」のような直感的な記述子を識別された各脆弱性に関連付けることができる。これらのリスクレベルは更に定義することができる。例えば、「高リスク」は、ユーザシステムを直ぐに危うくするので、ユーザが直ぐに対処しなければならない脆弱性を指す。「中リスク」は、情報又はシステムを危うくする可能性があるが、応急手当が保証されない脆弱性を指す。「情報関連リスク」は、情報を危うくする可能性のある脆弱性に関連する「中リスク」の特定カテゴリーとすることができる。「低リスク」（管理上のリスクと同じ意味とすることができる）は、攻撃者がユーザシステムを危うくしようと企て易くするような情報を暴露する可能性を持つシステムコンフィグレーションや、又は偵察対象となる情報を露呈してしまうようなシステムコンフィグレーション等の問題又は警告を指す。
レポートはまた、例えば識別された脆弱性を解決する方法についての提案も含むことができる。レポートがＨＴＭＬページ又はＰＤＦドキュメントとして提供される場合、レポートは、ユーザ又はネットワークセキュリティテスト手順のいずれかによって識別されるオペレーティングシステム及び／又は他のソフトウェアのセキュリティパッチへのリンクを含むことができる。更に、レポートは、特にユーザがネットワークセキュリティの定期評価を選択した場合にｅ−ｍａｉｌ警告として提供することができる。
【００１１】
本発明の目的は、ネットワークセキュリティデバイスとして使用する装置を提供することにあり、このネットワークセキュリティデバイスは、ネットワークパラメータ入力モジュール、前記ネットワークパラメータ入力モジュールの出力に相互接続される入力を有する第１ネットワークスキャナモジュール、及び前記第１ネットワークスキャナモジュールの出力に相互接続される入力を有するレポートモジュールを含む。
本発明の目的は、ネットワークのセキュリティを確保する方法を提供することにあり、この方法では、データをスキャニングモジュールに入力し、前記スキャニングモジュールの第１ツールでネットワークをスキャンする第１ステップを実行し、スキャンする前記第１ステップから得られた結果を提示する。
【００１２】
詳細な説明
本出願の出願に関連して、「電子コンプライアンスを評価し、推進する方法及びシステム」と題する、米国特許庁が割り当てた出願番号１０／      ，      ，を有する同時出願された係属中の出願があり、この出願を本明細書において参照することにより、この出願の内容全体を本発明の開示に明示的に包含する。
本明細書において使用する用語は特定の実施形態を記載するためにのみ用いられており、本発明の技術範囲を制限するものではないことを理解されたい。
本明細書を通じて、単数形の表現は複数形を含み、且つ複数形は単数形を含み得ることを理解されたい。例えば、「結果」は単一の結果を指す場合があり、「データ」は単数の個別データ又は多数のデータを指すことができる。更に、本明細書において用いる単語は、明示的な表示又は文脈によって通常とは異なる用法であることが示されない限り、関連技術分野におけるこれらの単語の通常の用法に従う。更に、本明細書において使用する接続詞は通常、接続的な関係を示すために使用され、離接的な関係を示すためには使用されない。例えば、「又は」は論理表現の「又は」と同じ暗示的意味を有し、論理表現の「（排他的論理和の）又は」ではない。好適な方法、デバイス、及び材料を本明細書において記載するが、本技術分野の当業者であれば分かるように、同様の、又は等価な方法、デバイス、及び材料を本明細書の示唆から逸脱しない範囲において使用することができる。本明細書において参照する全ての特許、特許出願、又は刊行物は本明細書において参照することによってこれらの文献の内容の全てが本発明の開示に含まれるが、このような特許、特許出願、又は刊行物を参照することは、これらが先行技術を構成すると認めるものではない。
【実施例】
【００１３】
本発明の一実施形態は、コンピュータネットワークの特定の属性を評価するために使用する評価装置及び評価方法の形態を採ることができる。特に、本発明はコンピュータネットワークにおけるネットワークセキュリティ欠陥を検出する装置及び方法に関する。特に、本発明はまた、ユーザネットワークが特定の動作フレームワークの特定の構成に準拠しているかどうかの評価に関する。評価装置はネットワークパラメータ入力モジュール及び第１ネットワークスキャナモジュールを含むことができ、第１ネットワークスキャナモジュールは入力として、ネットワークパラメータ入力モジュールの出力を受信する。本発明の別の実施形態はまた、第１スキャニングモジュールと同じように動作する第２ネットワークスキャナモジュールを含むことができる。第１スキャニングモジュール及び第２ネットワークスキャナモジュールの両方の出力はレポートモジュールの入力に接続される。
本発明の特定の実施形態では、ネットワークパラメータ入力モジュールは、ユーザが入力するデータを含む、及び／又は使用する。本発明の別の実施形態では、ネットワークパラメータ入力モジュールは、アンケートに応答するデータ、又は自動化プロセスによって入力されるデータを含む、及び／又は使用する。
【００１４】
本発明の更に別の実施形態では、ネットワークパラメータ入力モジュールは、提供データの有効性を評価するエラーチェックモジュールを含む。本発明の別の実施形態では、ネットワークパラメータ入力モジュールは、ネットワークアドレスのデータベース及び／又はユーザ名のデータベースを含み、これらのデータベースは第１及び／又は第２スキャニングモジュールに自動的に又は手動により入力することができる。本発明の更に別の実施形態では、ネットワークパラメータ入力モジュールはパラメータ設定データベースを含む。このようなパラメータ設定データベースは、ネットワークアドレス、アドレス、ネットワークブロック、着目する脆弱性、脆弱性検出に使用するツール、最大許容誤差、プログラム実行に利用することができる１日の内の時間、スキャン停止（１日の内の時間又は日付け範囲）又は動作頻度のような一つ以上のパラメータに関するデータを含むことができる。
本発明の別の実施形態では、第１ネットワークスキャナモジュールは、入力を受け入れ、出力を生成する多くのネットワークスキャニングツールの内の少なくとも一つを含む。
【００１５】
本発明の更に別の実施形態では、第１ネットワークスキャナモジュールは、ネットワークパラメータ入力モジュールからのデータに基づいてスキャンリストを生成するように構成されたモジュールを含む。本発明の別の実施形態では、第１ネットワークスキャナモジュールは、ネットワーク上の無防備システムのリストを生成するように構成されたモジュールを含む。本発明の更に別の実施形態では、第１ネットワークスキャナモジュールは、ネットワーク上の無防備サービスのリストを生成するように構成されたモジュールを含む。
本発明の特定の実施形態では、第１ネットワークスキャナモジュールは、ネットワークをプローブした結果を解析するように構成されたモジュールを含む。本発明の別の実施形態では、第１ネットワークスキャナモジュールは、システムをプローブして、識別可能な脆弱性に関するステータス判定を行なうように構成されたモジュールを含む。本発明の別の実施形態では、レポートモジュールは、一つ以上のフォーマットのデータを受信し、当該同じデータを統一フォーマットで出力する必要のあるラッパー（ｗｒａｐｐｅｒ）モジュールを含む。
【００１６】
本発明の一実施形態では、レポートモジュールはクライアント環境データベースを含む。クライアント環境データベースは、種々のスキャンによって生成されるデータを格納するテーブルを含むことができる。クライアント環境データベースのテーブルに格納されるこのようなデータは、スキャンに使用するスキャンパラメータ、オペレーティングシステム、ＩＰレジストリ、世界共通ＩＰアドレス（ＩＰ  ａｄｄｒｅｓｓ  ｕｎｉｖｅｒｓｅ：同じ「プライベート」ＩＰアドレスブロック群を使用する異なるネットワークを判別するための指示子）、脆弱性、スキャン時刻、最後のスキャン日、次のスキャン日、ネットワークのステータス、検出対象メディアアクセスコントロール（ＭＡＣ）アドレス（例えばイーサネットアドレス）、スキャンアクティビティログ、無防備システム、無防備サービス、スキャン対象ドメイン名、スキャン対象ＩＰ、検出対象ＩＰ、又はスキャンに使用されるアプリケーションを含む。
本発明の別の実施形態では、ネットワークパラメータ入力モジュールは、ユーザが入力する遵守確保措置に基づいてネットワークテストパラメータを推測するように構成することができる。このような遵守確保措置は、例えば業界規準、企業規制、又は政府規制の内の一つとすることができる。
【００１７】
本発明の一実施形態は、ネットワークのセキュリティを確保する方法を含み、この方法は、スキャニングモジュールにデータを入力するステップ、スキャニングモジュールの第１ツールでユーザネットワークをスキャンするステップ、及びユーザ又は別のモジュールにスキャンするステップから得られた結果を提示するステップを含む。本発明の更に別の実施形態は、スキャニングモジュールの更に別のツールでネットワークをスキャンする追加ステップを含むことができる。本発明の別の実施形態では、スキャニングモジュールにデータを入力するステップは、ユーザデータを自動的に、又は手動により入力することを含む。本発明の別の実施形態では、スキャニングモジュールにデータを入力するステップは、アンケートに回答するユーザによってデータが生成されることを含む。本発明の更に別の実施形態では、スキャニングモジュールにデータを入力するステップは、データのエラーをチェックすることを含む。
本発明の更に別の実施形態では、データを入力するステップは、ネットワークアドレスのデータベースから入力を供給することを含む。本発明の一実施形態では、スキャニングモジュールにデータを入力するステップは、ユーザ名のデータベースから入力を供給することを含む。本発明の別の実施形態では、スキャニングモジュールにデータを入力するステップは、パラメータ設定データベースから入力を供給することを含む。このようなパラメータ設定データベースは、ネットワークアドレス、ＭＡＣアドレス、ネットワークブロック、着目する脆弱性、脆弱性検出に使用するツール、最大許容誤差、プログラム実行に利用することができる１日の内の時間、又は動作頻度等の一つ以上のパラメータに関するデータを含むことができる。
【００１８】
本発明の別の実施形態では、スキャンするステップは、ネットワークパラメータ入力モジュールからのデータに基づいてスキャンリストを生成することを含む。本発明の別の実施形態では、スキャンするステップは、ネットワーク上の無防備システムの一覧を生成することを含む。本発明の更に別の実施形態では、スキャンするステップは、ネットワーク上の無防備サービスの一覧を生成することを含む。
本発明の更に別の実施形態では、スキャンするステップは、ネットワークをプローブした結果を解析することを含む。本発明の別の実施形態では、スキャンするステップは、システムをプローブして識別可能な脆弱性に関するステータス判定を行なうことを含む。本発明の別の実施形態では、以前のスキャンアクティビティの結果を解析し、相関させてシステム又はネットワークの追加情報又は脆弱性を判断することができる。本発明の別の実施形態では、結果を提示するステップは、一つ以上のフォーマットの出力データを一つの共通フォーマット又は統一フォーマットにまとめるか、又はフォーマット化することを含む。
【００１９】
本発明の更に別の実施形態では、結果を提示するステップは、一つ以上のスキャンにより生成されるか、又は出力されるデータを使用して、クライアント環境データベースを生成すること、又は集めることを含む。このようなクライアント環境データベースは、次の項目の内の一つ以上に対応するデータを含むか、又は集めることができる。次の項目とは、スキャンに使用するスキャンパラメータ、オペレーティングシステム、ＩＰレジストリ、脆弱性、スキャン時刻、最終スキャン日、次のスキャン日、ネットワークのステータス、検出対象ＭＡＣアドレス、スキャンアクティビティログ、無防備システム、無防備サービス、スキャン対象ドメイン名、スキャン対象ＩＰ、検出対象ＩＰ、又はスキャンに使用するアプリケーションである。
本発明の別の実施形態では、データを入力するステップは、ユーザが入力する規準又は遵守確保措置に基づいてネットワークテストパラメータを推測することを含む。本発明の更に別の実施形態では、規準又は遵守確保措置は、規制規準、セキュリティ方式、又はセキュリティポリシーから成るグループから選択される。
【００２０】
次に、添付図面に示す本発明の実施形態について説明する。可能且つ実用的と考えられる場合には、同一、又は同様の部品又はステップを指すために、図面全てに同じ参照番号を使用する。
【００２１】
図１に示すように、本明細書において開示する評価システムが動作する汎用コンピュータシステム１０は、中央処理機構１２、プログラム及び／又はデータを保存するメインメモリユニット１４、入力／出力コントローラ１６、ネットワークインターフェース１８、ディスプレイデバイス２０、一つ以上の入力デバイス２２、固定又はハードディスクドライブユニット２４、取り外し可能なメディアストレージドライブ（例えば、フロッピーディスクドライブ、コンパクトディスク（ＣＤ）ドライブなど）２６、テープドライブユニット２８、及びこれらの部品を接続してこれらの部品間並びに他のコンピュータシステムとの通信を可能にするデータバス３０を含む。このような通信は、直接接続、ワールドワイドウェブ、又はケーブル、電話ライン、マイクロウェーブ及びワイヤレス通信のような他の通信手段のいずれかを介して行われる。
中央処理機構１２は、カリフォルニア州サンタクララのインテル社製のＰＥＮＴＩＵＭ（登録商標）のようなマイクロプロセッサであればどのようなタイプのマイクロプロセッサとすることもできる。ディスプレイデバイス２０は、プリンタ、又は液晶ディスプレイ（ＬＣＤ）、ブラウン管ディスプレイ（ＣＲＴ）、発光ダイオード（ＬＥＤ）、プラズマガス（ＰＧ）などのような、本発明のシステム及び方法に従って生成される出力の全て、又は一部を表示する機能を備えるディスプレイであればどのようなタイプのディスプレイとすることもできる。入力デバイス２２は、キーボード、数字キーパッド、タッチスクリーン、ポインティングデバイス、スイッチ、スタイラス、及びライトペンのような、本明細書において記載する入力を可能にするデバイスであればどのようなタイプのデバイスとすることもできる。ネットワークインターフェース１８は、コンピュータシステム１０とコンピュータ、又はプリンタのような他のデバイスとのネットワーク接続を可能にするカード、アダプター、又はコネクタのようなデバイスであればどのようなタイプのデバイスとすることもできる。本発明の一実施形態では、ネットワークインターフェース１８によって、コンピュータシステム１０は、インターネットのようなコンピュータネットワークとの接続を行なう、及び／又は本明細書に開示する本発明のシステム及び方法を実施することができる別のコンピュータシステムとの接続を行なうことができる。
【００２２】
この技術分野の当業者であれば、本発明を具体化するコンピュータシステム１０は、図１に示す全ての構成要素を含む必要はなく、これらの構成要素の各々の等価物は本発明の技術思想及び技術範囲に含まれることが分かるであろう。例えば、コンピュータシステム１０はテープドライブ２８を含む必要はなく、ＣＤドライブ又はデジタルビデオディスク（ＤＶＤ）ドライブのような他のタイプのドライブを含むことができる。ＣＤドライブに、例えば書き込みを行ない、ＣＤドライブから読み出しを行ない、データの一部分又は全てを本明細書に記載するデータベースに格納することができる。
本発明の少なくとも一つの実施形態では、一つ以上のコンピュータプログラムがコンピュータシステム１０の動作機能を定義する。これらのプログラムは、ハードディスクドライブ２４、メディアストレージドライブ２６、テープドライブユニット２８、又はネットワークインターフェース１８を使用するなど、多くの方法によってコンピュータシステム１０にロードすることができる。別の構成として、これらのプログラムは、メインメモリ１４の書き換え不能なメモリ部分（すなわち、リードオンリーメモリ（ＲＯＭ）チップ）に格納することができる。別の実施形態では、コンピュータシステム１０は、コンピュータプログラムからの命令を必要とすることなく本明細書に記載する全ての機能を実行する、特殊設計された専用のハードワイアード構成の電子回路を含むことができる。
【００２３】
本発明の少なくとも一つの実施形態では、コンピュータシステム１０は、クライアントがサーバにリクエストを送信し、サーバがクライアントからのリクエストに応答する構成のクライアントサーバシステムの一部である。当然ながら、「クライアント」は、ファイルをリクエストする、又は取得する人を広義に意味し、「サーバ」は、ファイルをダウンロードするエンティティを広義に意味する。基本的に、コンピュータシステム１０は、クライアントシステム又はサーバシステムとすることができる。一実施形態では、本発明はサーバ側で用いられ、ユーザコンピュータで動作する読み取りアプリケーションのようなクライアントからのリクエストを受信し、リクエストに応答する。
クライアントは、コンピュータシステム１０、又はコンピュータシステムの特定のコンポーネント（例えば、端末、パーソナルコンピュータ、メインフレームコンピュータ、ワークステーション、ワイヤレス携帯デバイス、電子ブック、携帯情報端末、周辺機器など）、或いはインターネットのようなあらゆるタイプのコンピュータネットワークに公知の方法又は後で開発される方法によって直接又は間接的に接続されるか、又は接続可能なコンピュータで動作するソフトウェアプログラムのような、どのようなエンティティとすることもできる。例えば、代表的なクライアントは、ｘ８６−，ＰｏｗｅｒＰＣ．ＲＴＭ．，ＰＥＮＴＩＵＭベース又はＲＩＳＣベースのパーソナルコンピュータであり、ＩＢＭ．ＲＴＭ，ＬＩＮＵＸ，ＯＳ／２．ＲＴＭ，又はＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（ワシントン州レッドモンドのマイクロソフト社製）のようなオペレーティングシステムを含み、ジャババーチャルマシーン（ＪＶＭ）環境を備え、且つアプリケーションプラグイン又はヘルパーアプリケーションをサポートするＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ，ＮＥＴＳＣＡＰＥ  ＮＡＶＩＧＡＴＯＲ（カリフォルニア州マウンテンビューのネットスケープ社製）のようなウェブブラウザを含む。クライアントはまた、ノートブックコンピュータ、携帯型コンピューティングデバイス（すなわちＰＤＡ）、インターネットアプライアンス、電話機、電子読み取りデバイス、又はコンピュータネットワークに接続することができる他の任意のデバイスとすることができる。
【００２４】
サーバは、コンピュータシステム１０、コンピュータプラットフォーム、コンピュータ又はプラットフォームの周辺機器、又はクライアントからのリクエストに応答することができるプログラムのようなそれらのコンポーネントのような、どのようなエンティティとすることもできる。サーバはまた、管理及び運営のためのグラフィカルユーザインターフェース（ＧＵＩ）をサポートするディスプレイ、及びアプリケーションプログラミングインターフェース（ＡＰＩ）を含むことができ、このＡＰＩによって、アプリケーション開発者は、コモンゲートウェイインターフェース（ＣＧＩ）プログラム、プラグイン、サーブレット、アクティブサーバページ、サーバサイドインクルード（ＳＳＩ）機能などを含むソフトウェアプログラムを使用してアプリケーションのコア機能を拡張する、及び／又はカスタマイズするような拡張が可能である。
本発明の実施形態は、ソフトウェアアプリケーション、コンピュータ読み取り可能プログラム媒体、データ構造、搬送波信号、ユーザインターフェース、及びアプリケーションプログラムインターフェースのようなコンピュータ技術を使用して実行することができる。例えば、本発明を一実施形態の中で具体化するソフトウェアは、コンピュータシステム１０上で動作する少なくとも一つのアプリケーションに格納される。少なくとも一つの実施形態では、本発明は、コンピュータシステム１０において使用することができるコンピュータ読み取り可能プログラム媒体の中で具体化される。少なくとも一つの実施形態では、本発明は、コンピュータ又はコンピュータ読み取り可能プログラム媒体に保存されるデータ構造の中で具体化される。また、一実施形態では、本発明は、コンピュータシステム１０と、別のコンピュータシステム、サーバ、無線ネットワークなどのような別のエンティティとの間で伝送される一つ以上の搬送波信号のような伝送媒体の中に具体化される。本発明の一実施形態はまた、アプリケーションプログラミングインターフェース（ＡＰＩ）又はユーザインターフェースの中で具体化することができる。また、本発明は、一実施形態において、データ構造の中で具体化される。
【００２５】
例えば図２に示すように、本発明の一実施形態は、ネットワークパラメータ入力モジュール２２０、第１ネットワークスキャニングモジュール２３０、及びレポートモジュール２４０を含むことができる。本発明による装置はまた任意に、追加のネットワークスキャニングモジュールを含むことができ、これらのネットワークスキャニングモジュールを本明細書では第２ネットワークスキャニングモジュール２６０と呼ぶ。本発明の装置を動作させる過程では、ユーザデータ２１０をネットワークパラメータ入力モジュール２２０に供給することができる。ユーザデータ２１０はユーザが手動で、又は本発明の装置によって自動的に入力することができる。ユーザデータ２１０は、ドメイン名、ＩＰアドレス、ホスト名、ユーザ名、パスワード、ソフトウェア仕様、ハードウェア仕様、及び他のネットワーク固有情報を含むことができる。ユーザデータ２１０はまた、スキャンを実行すべき１日の内の時間、スキャンを実行すべき頻度（例えば、１回又は周期的）、及びユーザが識別したいと考える脆弱性のタイプのようなスキャンに関する情報を含むことができる。
ユーザデータ２１０は、本発明を実行するオペレータが手動で入力することにより供給することができるか、又はオンラインインターフェース又は他のインタラクティブインターフェース、例えばウェブページインターフェース、或いはＨＴＭＬインターフェースを通して供給することができる。本発明の一態様では、ユーザデータ２１０は、ユーザにインタラクティブアンケートを提供することにより供給することができる。従って、インタラクティブアンケートによって、ユーザにユーザデータ２１０を入力するように案内することができる。これらのタイプの入力モードは同時継続出願において議論されている。
【００２６】
一部のデータは変換を必要とする。例えば、ユーザは、ユーザのネットワークが特定の動作フレームワークに準拠しているかどうかを確認したい旨を通知することができる。同時係属中の出願に開示されているように、動作フレームワークは、これに限定されないが、規制規準、セキュリティ方式、及びセキュリティポリシーの内の少なくとも一つを含むことができる。ネットワークパラメータ入力モジュール２２０は、ユーザ又はシステムが提供する情報を使用して特定の脆弱性を検査するために実行すべき一連のテストを推測するように構成することができる。このようなテストは、例えばユーザが準拠性を評価したいと考える対象の動作フレームワークをまず特定することにより推測することができる。次に、所与の動作フレームワークに関してテスト又は調査する必要のあるパラメータは、「決定樹」のようなルックアップテーブルに格納され、決定樹には、動作フレームワークごとにインデックスを付ける。本発明の一態様では、実行されたテストの結果「新規」情報が生成された場合は、必ず追加のスキャニングモジュールが用いられる。更に、特定の動作フレームワークを特定することにより、生成対象のレポートの適切なフォーマットが決定し易くなる。
本発明の原理によれば、決定樹はＸＭＬドキュメントを含み、特定の評価スキャンの間に実行されるアクティビティの論理フローだけでなく、スキャン中の特定ツールの使用について記述することができる。本発明の一態様では、決定樹は、ユーザによって提供されるパラメータ及びこれらのパラメータが返されるときにツールから得られる結果の両方に基づいてスキャニングアクティビティのフローを記述することができる。本発明の一態様では、決定樹は、特定の評価スキャンの論理フローを、それぞれが関連する少なくとも一つのタスク（例えばアクティビティ）を有し得る、列挙フェーズ、公開情報フェーズ、一覧生成フェーズ、解析フェーズ、及び脆弱性フェーズを含む、連続して実行することが可能な複数のフェーズに分解することができる。従って、決定樹によって、全てのスキャニングツールの使用に予め必要な条件を記述することができる。例えば、システムがウェブサーバ又は何らかのポートを動作させていると判断されると、サーバのプロファイルを作成し、脆弱性フェーズを実行することができる。
【００２７】
列挙フェーズの間、スキャンする必要のあるＩＰアドレス群を含むスキャンリストが、ユーザデータによって提供される情報（例えば、ＩＰアドレス、ドメイン名、ネットワークブロックなど）に基づいて生成される。本発明の一態様では、スキャンリストは、ＣＩＤＲブロックを拡張し、ドメイン名を解決することによって生成することができる。
公開情報フェーズの間、公開データベース（例えば、ＤＮＳ、ＷｈｏＩｓなど）のクエリーをスキャン対象のネットワーク／システムに関して実行することができる。
【００２８】
一覧生成フェーズの間、ユーザネットワークをスキャンして、どのシステム及びサービスが動作していて、インターネットを通して利用可能な形で公開されているかを判断することができる。別の構成として、プライベートネットワーク又は保護ネットワークの内部からスキャンが実行される場合、一覧生成フェーズにより、どのシステム及びサービスに、当該ネットワーク内のスキャナのロケーションからアクセスすることができるかを判断する。従って、評価スキャンの一覧生成フェーズの間、複数のピンギング、ポートスキャニング、バナー取得、サービスプロービングなどを行なって、ユーザネットワーク上の無防備システム及び無防備サービスに関する情報を収集することができる。
解析フェーズの間、環境データベース３３０に保存されるデータを解析することにより、脆弱性が含まれているかどうかを判断することができる。例えば、ポートが無防備になっていると、ファイアウォールが設定されているかどうかについて結論を得ることができるか、又はアプリケーションバナーの解析を行なうことにより、オペレーションシステムバージョン又は特定のアプリケーションプロトコルの存在についての結論に確信を持つことができる。更に、無防備システムの後続の解析は、種々の使用ツールの結果を組み合わせることにより実行することができる。例えば、各バナーは実際のオペレーティングシステムに関する手掛かりとなり得る。別の例では、システムが提供する一連のネットワークサービスを解析することにより検出されたシステムのタイプを判断することができる。
脆弱性フェーズの間、無防備システム及び無防備サービスをテストして識別可能な脆弱性の存在を判断することができる。本発明の一態様では、脆弱性フェーズにおいて、ＴＣＰ／ＵＤＰポート値ではなく、アプリケーション及びプロトコルに対してテストを実行することができる。
【００２９】
本発明の一態様では、決定樹は、特定ツールが動作するオペレーティングシステムを示すリソース情報を含むこともできる。この機能によって、スキャナが使用することができるツールの数を増やすことができる。
ネットワークパラメータ入力モジュール２２０が十分な入力を有し、どのスキャン及びテストを実行する必要があるかについて判断することができるようになると、このモジュールは、ユーザネットワークをスキャンすることによりデータ収集を開始することができる。例えば、ユーザは、ネットワークパラメータ入力モジュール２２０に供給されるユーザデータ２１０を通してネットワークのドメイン名及びホスト名を入力することができる。次に、ネットワークパラメータ入力モジュール２２０は、第１スキャニングモジュール２３０を呼び出すことによりネットワークのＩＰアドレスを検出しようとすることができる。本発明のスキャニング装置によって呼び出されると、第１スキャニングモジュール２３０は、例えばドメイン名サーバ（ＤＮＳ）にＩＰアドレスをリクエストすることによりＩＰアドレスを供給する。第１スキャニングモジュール２３０はこのタスクを、「ｄｉｇ」又は「ｎｓｌｏｏｋｕｐ」のようなスキャニングツールを使用して遂行することができる。本明細書及び同時係属中の出願において記載する他のスキャニングツールを使用することもできる。
【００３０】
ネットワークパラメータ入力モジュール２２０がルックアップテーブルのパラメータから識別することができる全てのデータの収集が終わると、本発明のスキャニング装置は、テストしようとするネットワーク環境に関して十分に記述したことになる。ユーザのシステムを十分に記述した後は、本発明のスキャニング装置は予備解析を実行することができる。この予備解析によって、ユーザネットワークをテストするために使用する必要のある特定の形式の攻撃を示すことができる。例えば、利用可能な情報がＭｉｃｒｏｓｏｆｔ  ＮＴ（登録商標）ネットワークを示す場合、独自仕様の、且つ一般に公開されている或るテストを使用してＮＴネットワークの既知の脆弱性を利用しようとすることができる。特に、ＱＴＩＰプログラムは、Ｗｉｎｄｏｗｓ  ＮＴ／２０００／ＸＰサーバのデフォルトの「ヌル」ユーザ名を試すように設計することができる。
ネットワークパラメータ入力モジュール２２０がその予備解析の少なくとも一部を完了すると、このモジュールは第１スキャニングモジュール２３０を呼び出してユーザネットワークのスキャンを実行することができる。第１スキャニングモジュール２３０の動作については以下に更に詳細に記載する。ユーザネットワークに対するスキャンを実行するために、ネットワークパラメータ入力モジュール２２０は、各スキャンに関する適切なパラメータを第１スキャニングモジュール２３０に供給することができる。第１スキャニングモジュール２３０が生成するスキャン結果に応じて、ネットワークパラメータ入力モジュール２２０がユーザネットワークに対する追加のスキャンを要求するか、又はネットワークパラメータ入力モジュール２２０がレポートモジュール２４０にスキャンデータを入力することができる。
【００３１】
レポートモジュール２４０は、一実施形態では、ネットワークパラメータ入力モジュール２２０のサブモジュールとすることができる。従って、レポートモジュール２４０は第１スキャニングモジュール２３０、第２スキャニングモジュール２６０、及び／又はネットワークパラメータ入力モジュール２２０と通信することができる。レポートモジュール２４０は、ネットワークパラメータ入力モジュール２２０、及びスキャニングモジュール２３０及び２６０が収集する情報を整理し、組み立てて、これらのモジュール２２０，２３０，２６０が生成するスキャンデータに基づいてレポート２５０を提供することができる。レポートモジュール２４０及びネットワークパラメータ入力モジュール２２０は、例えばＸＭＬにプログラムされたソフトウェアによって実現することができる。ＸＭＬが本発明に役立つ理由の一つは、ＸＭＬによって、特殊な形でフォーマットされるデータの授受が、当該データの表示とは無関係に可能になるからである。従って、本発明の好適な実施形態では、スキャニングモジュール２２０，２３０，及び２６０に入力されるデータを共通因子でフォーマットするだけでなく、出力をフォーマットすることができる。同時係属中の出願に記載しているように、レポート２５０は統一フォーマットにすることができ、例えば適用可能な動作フォーマットの各特定要件に対するユーザネットワークの準拠性又は非準拠性を詳細に記述することができる。別の構成として、レポート２５０は脆弱性を列挙し、特定された脆弱性のそれぞれに深刻度を関連付けることができる。
【００３２】
図３に示すように、本発明の別の実施形態は、図２のネットワークパラメータ入力モジュール２２０と同様な評価モジュール３０５、図２のスキャニングモジュール２３０又は２６０と同様なスキャニングツール３７０、及び図２のレポートモジュールとほぼ同じレポートモジュール２４０を含むことができる。
評価モジュール３０５は、タスクマネージャ３５０、タスクビルダー３４０、環境ローダ３１０、環境データベース３３０、タスクハンドラー３２０、タスクマネージャクライアント３２５、ツールサーバ３９０、ツールマネージャ３８０、入力ラッパー３６０、及び出力パーサ３６５を含むことができる。評価モジュール３０５は、スキャニングツール３７０と連携して、ネットワーク評価の第２フェーズを実行し、この第２フェーズでは、ユーザネットワークをスキャンして所与の動作フレームワークに対するユーザネットワークの準拠性のレベルを判断する。別の構成として、ネットワーク評価の第２フェーズは、評価モジュール３０５を第１スキャニングモジュール３７０と一緒に使用する形で実行し、ユーザネットワークの脆弱性レベルを判断することができる。本発明の別の態様では、ネットワーク評価の第２フェーズを実行して、以前に特定されている問題又は脆弱性が解決されたこと（例えば、脆弱なサービスにパッチを当てた、不必要なサービスを取り除いた、又は中止したなど）を実証することができる。
【００３３】
図２及び図３に開示するネットワーク評価システムの別の実施形態を図４に開示する。
図４によれば、図４に開示するスキャニング装置４００の動作は、スキャニング装置４００がネットワーク評価の第２フェーズを実行する点で図３の第１スキャニングモジュール３７０と連携動作する評価モジュール３０５の動作と類似している。従って、ネットワーク評価の第２フェーズでは、スキャニング装置４００を用いてユーザネットワークをスキャンして所与の動作フレームワークに対するユーザネットワークの準拠性のレベルを判断するか、ユーザネットワークの脆弱性レベルを判断するか、又は以前に検出された問題が解決した（例えば、脆弱なサービスにパッチを当てた、不必要なサービスを取り除いた、又は中止したなど）ことを立証することができる。
【００３４】
本発明の原理によれば、スキャニング装置４００は２つのモジュール、すなわちタスクモジュール４０８及びスキャンモジュール４１０にグループ分けすることができる。本発明の好適な実施形態では、スキャニング装置４００は、ユーザによりユーザデータ２１０（例えば、ＩＰアドレス、ドメイン名、ブラックアウト日（利用不可日）など）がプロファイルローダ４３７に入力され、次いでこのプロファイルローダがユーザデータ２１０を環境データベース４４０登録すると動作を開始する。次に、初期タスク又は初期タスク群４１１が生成され、この初期タスク（群）４１１はスキャニング装置４００がユーザネットワークのスキャンを開始するのに必要な一般命令を含むことができる。本発明の一態様では、初期タスク群は、「スキャンパラメータをロードする」などの命令を含むことができる。初期タスク（群）４１１はタスクリスト４１２に保存することができ、このタスクリストは、タスクマネージャ４１４が読み出し、処理することができる。本発明の一態様では、タスクリスト４１２を最初に処理することができ、これによりタスクマネージャ４１４は初期タスク（群）４１１からの指示に従って、環境データ（例えばユーザデータ２１０）を環境ローダ４３８にロードする。本発明の別の態様では、決定樹４４４の各フェーズは固有の初期タスクを有することができるので、決定樹の特定のフェーズをタスクリスト４１２の処理の際に「ブートストラップする」ことができる。
次に、環境ローダ４３８は、環境データベース４４０からユーザネットワーク固有の環境データを取り出す。本発明の一態様では、クライアント環境データベース（ＣＥＤ）とも呼ばれる環境データベース４４０は、ＳＱＬを含む本技術分野で公知のほとんど全てのデータベース管理ソフトウェアに書き込むことができる。本発明の一実施形態では、ＣＥＤは複数のセクションを含むことができる。図７に、図４に示すＣＥＤの例示的内部構造を示す。
【００３５】
図７を参照すると、ＣＥＤの１セクション（例えば、ＳｃａｎＰａｒａｍｅｔｅｒテーブル，ＳｃａｎＰａｒａｍｅｔｅｒＤｏｍａｉｎＮａｍｅテーブル，及びＳｃａｎＰａｒａｍｅｔｅｒＮｅｔｂｌｏｃｋテーブル）は、ＩＰアドレス及びネットワークブロックのようなユーザネットワークのスキャンパラメータ、及びサーバドメイン名を含むことができ、これらのサーバドメイン名は、どのサーバ（群）をスキャンするかについてスキャニング装置４００に指示する。ＣＥＤはまた、ＳｃａｎＢｌａｃｋｏｕｔテーブル及びＳｃａｎＴｉｍｅ  Ｗｉｎｄｏｗテーブルのようなテーブル群にブラックアウト情報を格納することができ、この情報によって、スキャンアクティビティを行なう必要がある時間、又はスキャンアクティビティを行なってはならない時間を案内することができる。本発明の一態様では、ブラックアウトを使用することにより、ユーザは、スキャンを行ってはならない１日の内の時間（例えば通常の営業時間）及び季節（例えば、電子商取引に関して勤労感謝の日からクリスマスまで）を指定することができる。別の構成として、ＣＥＤは、スキャンを行ってもよいウィンドウを記述した時間及び日を含むことができる。ＣＥＤの別のセクションは、例えば、スキャンする必要のあるＩＰアドレスの全てを含むスキャンリストを（例えばＳｃａｎｎｅｄＩＰに）含むことができる。従って、スキャンリストは、例えば、ＣＩＤＲ／ネットワークブロックを、これらのブロックを構成するアドレスに拡張することにより作成することができるか、又はドメイン名のＤＮＳソリューションを作成することができる。本発明の一態様では、スキャンリストは、所定のスキャニングツール（例えば、ＣＩＤＲエキスパンダー、ＤＮＳリゾルバーなど）によって得られる結果、及びユーザデータから得られる結果から生成することができる。
図７を更に参照すると、ＣＥＤは、各クライアントに関する情報（例えば、クライアント名、提携（例えばパートナープログラム、規準協定など）、クライアントが大企業の一部であるかどうかを示す指示子（例えば、州当局、大会社内部の部門など））を含むＣｌｉｅｎｔＩｎｆｏテーブルを含むことができる。本発明の一態様では、ＣＥＤは、特定ユーザに対する過去及び将来のスキャンに関する情報も含むことができる。本発明の別の態様では、図７のテーブル群は、スキャンパラメータ、スキャン頻度、各スキャンの時刻、スキャン結果、特定スキャンの開始時間、特定スキャンの停止時間、次のスキャン日、スキャン対象ネットワークのステータス、検出対象ＭＡＣアドレス、スキャンアクティビティログ、無防備システム、無防備サービス、スキャン対象ドメイン名、スキャン対象ＩＰアドレス、検出対象ＩＰアドレス、及びスキャンに使用するアプリケーションを含むことができる。
【００３６】
本発明の原理によれば、ＣｌｉｅｎｔＩｎｆｏテーブルはクライアントについて記述することができ、スキャンパラメータをスキャン結果テーブルに結び付ける重要なＣｌｉｅｎｔＩＤキーのソースである。スキャンが始まると、新規の行がＣｌｉｅｎｔＳｃａｎＲｅｓｕｌｔテーブルに生成される。新規の行は、クライアントのレファレンス（ＣｌｉｅｎｔＩＤ）、及びＣＩＤＲブロック及びドメイン名のような現在の一連のスキャンパラメータ（ＳｃａｎＰａｒａｍＩＤ）を含むことができる。ツール群（例えば、ＳｃａｎｎｅｄＩＰ，ＥｘｐｏｓｅｄＳｙｓｔｅｍ，ＥｘｐｏｓｅｄＳｅｒｖｉｃｅ，Ｓｃａｎｎｅｄ  Ｖｕｌｎｅｒａｂｉｌｉｔｙ，ＤｉｓｃｏｖｅｒｅｄＩＰなど）の結果を含むテーブル群の全てを、新規のＳｃａｎＲｅｓｕｌｔＩＤキーによって結び付けることができ、このＳｃａｎＲｅｓｕｌｔＩＤキーは、ＣｌｉｅｎｔＳｃａｎＲｅｓｕｌｔテーブルにルートを持つ。
本発明の一態様では、環境ローダ４３８は、どのデータを環境データベース４４０から取り出すべきかを、任意の数の理由により認識する。例えば、ユーザデータ２１０から、ユーザの用いているシステムが既にスキャンした別のシステムと同様であるとスキャニング装置４００が判断する場合、タスクマネージャ４１４は環境ローダ４３８に指示して環境データベース４４０から特定の環境データをロードさせる。別の構成として、本明細書及び同時係属中の出願に記載するように、ユーザネットワーク及び動作フレームワークのために調整された質問に応答する形でユーザが直接入力する環境データ（例えばユーザデータ２１０として）によって、タスクマネージャ４１４は環境ローダ４３８に指示して、ＩＰアドレス、ドメイン名、ブラックアウト日、実行する所望のスキャンテストなどのような基本データをロードさせる。
【００３７】
本発明の一態様では、スキャンプロファイルローダ４３７は、制限付きシステム又は制限情報に対するスキャンを防止する機能を備えるセキュリティデバイスを含むことができる。一実施形態では、このセキュリティデバイスは、ツール４１５が調査を禁止される場所を示す一連のＩＰアドレスを含むことができる。スキャンプロファイルローダ４３７は、スキャンを開始する前にセキュリティデバイスとの接続を行なう。セキュリティデバイスが、ＩＰアドレスの評価をさせてはならないと判断すると、システムオペレータに警告を発することができ、ＩＰアドレスの修正を完了するまでスキャンを「保留」する。従って、ユーザのサービスレベルに関して、不正な、又は悪意のあるスキャンパラメータ、或いは極端に多くのアドレスをユーザが供給したかどうかを判断することができる。本発明の一態様では、データをＣＥＤにロードする前の「プレフィルタ」として、又はスキャン時に使用することができる初期ツールとしてセキュリティデバイスを用いることができる。本発明の別の態様では、セキュリティチェックは、例えば禁止ＩＰ及びドメイン名（すなわち、米軍用の．ｍｉｌドメイン名など）だけでなく、あるユーザが自身の固有スキャンパラメータに指定しているネットワークのスキャンを別のユーザがリクエストしているかどうかのチェックも含むことができる。
逆に、セキュリティデバイスがＩＰアドレス（群）をスキャンできると判断する場合、スキャンモジュール４１０は、本明細書に記載するように処理を進める。セキュリティデバイスはまた、システムが特定のドメイン名及びＩＰアドレス群をスキャンしないようにして、規制サイトのサーチ又はスキャンを防止する。例えば、セキュリティデバイスが拡張子「．ｍｉｌ」を有するドメイン名を含む場合、コンプライアンス評価システムに対して、当該サイトをスキャンしないように指示することができる。
【００３８】
環境データが環境データベース４４０から取り出され、環境ローダ４３８にロードされた後、又はデータがスキャンプロファイルローダ４３７にユーザデータ２１０として直接ロードされてスキャンプロセスを開始した後、初期環境データ（又はユーザデータ）をタスクビルダー４４２に渡す。データを受け取ると、タスクビルダー４４２は、スキャニング装置がユーザネットワークをスキャンするために用いる新規のタスク４１３を含むタスクリスト４１２を作成する。好適な実施形態では、タスクビルダー４４２は、上に記載した決定樹に類似する決定樹４４４を用いて、当該スキャンを完了させるためにどのタスクを実行する必要があるかを決定し易くすることができる。従って、決定樹４４４は、スキャンパラメータに対して実行する必要のある初期タスク、並びに初期タスク及び後で生成されるタスクの結果に基づいて実行する必要のある新規タスクを指定することにより、タスクビルダー４４２が全ての必要なタスクをタスクリスト４１２に加えるのを補助する。本発明の一態様では、決定樹４４４は、ヒューマンアナリストが行なうものとほぼ同じ操作を実行することができ、データに基づく一連のスキャンアクティビティ及び解析アクティビティについて記述する。例えば、決定樹は、ウェブサーバが特定ツールにより識別される場合にどのタスクを実行すべきかを指定することができる。従って、タスクリスト４１２は、初期タスク及び後で実行するタスクの結果に基づいて動的に作成することができる。
タスクリスト４１２が完成する、及び／又は所定数のタスクがタスクリスト４１２に加えられる、及び／又は特定の予め選択されるタスクがタスクリスト４１２に加えられると、タスクリスト４１２はタスクマネージャ４１４に渡される。タスクリスト４１２を受け取ると、タスクマネージャ４１４は所与のシステム優先度に従ってタスクリスト４１２のタスク群を分類することができる。
【００３９】
タスクマネージャ４１４が実行対象のタスク群の実行順の優先順位を決めると、タスクマネージャ４１４は、タスク割当（複数のタスク割当）４１６を一つ以上のタスクハンドラー４１８に渡し始める。本発明の一態様では、各タスク割当４１６は、スキャン中に実行すべき少なくとも一つのタスクをタスクリスト４１２に含む。タスクマネージャ４１４によって順番が決められる他の特定のタスク群は、例えば、ユーザネットワークと通信して当該ネットワークを介して渡されるパスワード又は他の重要データを検出すること、可視システムに格納される媒体を読み出すこと、及びヘッダー情報の偽造を含むスプーフィング（なりすまし）を使用して、閲覧できないシステムと通信することを含む。
好適な実施形態では、一つ以上のタスクハンドラー４１８がタスクマネージャ４１４と通信することができる。タスクハンドラー４１８にタスクを割り当てることができるようになる前に、タスクハンドラークライアント４２２をタスクマネージャ４１４に登録し、タスクマネージャに、タスクハンドラー４１８が実行できるタスク群のタイプ及び量を通知する必要がある。タスクハンドラークライアント４２２はまた、定期的なステータスメッセージをタスクマネージャ４１４に送信し、タスクハンドラー４１８の全性能を通知することができる。従って、タスクハンドラー４１８は「サーバ」プロセス（ＴＣＰ／ＩＰの観点における）として設けることができ、このプロセスは、タスクマネージャ４１４からタスク割当４１６を受け取る。スキャニング装置４００が動作している間、タスクハンドラー４１８は、例えばタスクハンドラー４１８が処理している各タスク割当４１６のタイトルを受け取り、その動作を追跡し続けることができる。次に、各タスク割当の結果は、担当のタスクハンドラー４１８によりタスクマネージャ４１４に返される。本発明の原理によれば、複数のタスクハンドラー４１８を利用していつの時点でもタスクマネージャ４１４のタスク割当を実行することができる。このようにして、タスクマネージャ４１４及びタスクハンドラー（群）４１８は、以下に更に詳細に記載するように、規模変更可能なスキャニングアーキテクチャを形成する。
【００４０】
タスクハンドラー４１８がタスクマネージャ４１４からタスク割当４１６を受け取ると、タスクハンドラー４１８はスキャンプロセスを開始する。スキャン（又は他の全てのプロービング又は解析タスク）を実行するために、正しいスキャニングツール４１５を選択する必要がある。本発明の一実施形態では、タスクハンドラー４１８はツールサーバ４２４を介してマスターツールライブラリ４２６に格納される一つ以上のツール４１５にアクセスすることができる。マスターツールライブラリ４２６は、種々のプログラミング言語で記述されるツールを含むので、スキャンエンジン４１０がスキャンする種々のシステム、並びにタスクハンドラー４１８として機能する異なるホストオペレーティングシステムを収容することができる。タスクハンドラー４１８が、ユーザネットワークのスキャンを行なうために用いる必要のあるツール４１５を決定すると、タスクハンドラー４１８はツールマネージャ４２２に指示し、マスターツールライブラリ４２６からツールサーバ４２４を介して所与のスキャンを実行するために必要なツールを取り出させる。ツールマネージャ４２２は、必要なツール群４１５を取り出すと、これらのツールをローカルツールライブラリ４２０に格納する。好適な実施形態では、特定のツール群４１５は、これらのツールが動作するオペレーティングシステムに従ってローカルツールライブラリ４２０に格納される。従って、ＵＮＩＸプラットフォームで動作する全てのツール４１５は、第１ローカルツールライブラリに格納することができ、Ｗｉｎｄｏｗｓ環境で動作するツールは第２ローカルツールライブラリに格納することができる。別の構成として、ツール群４１５は、これらのツールが実行するタスクに従ってローカルツールライブラリ４２０に格納することができる。別の実施形態では、スキャニングモジュール４１０は、上に議論したようにグループ分けされる複数のローカルツールライブラリ４２０を用いることができるので、ツール群をマスターツールライブラリ４２６から取り出す必要がなくなる。
スキャニングツール４１５が実行する実際の機能は次のようにグループ分けすることができる。すなわち、公開情報クエリア（例えばドメイン名レゾルバなど）、ホストスキャナ、ポートスキャナ、特定脆弱性判定器、及びデータ解析機能（例えば、ＴＣＰ／ＩＰポート相関又はサービスバナー分析及び解析）である。更に、特定の機能についてスキャニングツール４１５を生成することができるか、又はスキャニングツールは、表１に列挙するように、公開ドメイン及びカスタム設計ツールにおいて利用可能な他の種々のスキャニングツール４１５の集合体とすることができる。表１に列挙するスキャニングツールは全てを網羅するために提示されている訳ではない。
【００４１】
表１
2006526221.tif 000003
2006526221.tif 000004
2006526221.tif 000005
【００４２】
必要ではないが、通常、表１に列挙するツール群４１５を含むツール群４１５の各々は、関連する入力及び出力を有する。例えば、スキャニングツール「ｐｉｎｇ」は、ＩＰアドレスを必要とし、ターゲットシステムが起動していて通信可能であり、且つＩＣＭＰ  ｐｉｎｇに応答する場合にｐｉｎｇされるコンピュータシステムのＩＰアドレスを返すことができる。同様にして、ツール「ｎｍａｐ」は、ＩＰアドレス又はＣＩＤＲブロックを必要とし、入力として指定される各ＩＰアドレスに関するオープンＴＣＰポートのリストを提供することができる。別のツール４１５「ｒｐｃｉｎｆｏ」は入力としてＩＰアドレスを必要とし、ダイナミックポート群及びこれらのＲＰＣプログラム番号（ＲＰＣが無効でない場合）のリストを返すことができる。別の例示的ツール４１５「ｄｉｇ」は入力としてＩＰアドレス又は第２レベルドメイン名を必要とするか、又はＤＮＳサーバの第２レベルドメイン及びＩＰアドレスを必要とし、ＤＮＳサーバがＵＤＰポート５３で検出される場合、Ｂｏｏｌｅａｎ指示子（すなわちｔｒｕｅ）を出力することができる。別の構成として、ツール「ｄｉｇ」は、ＤＮＳサーバがＴＣＰポート５３で検出され、且つ「ゾーン転送」命令に応答する場合、ＤＮＳゾーン情報を出力することができる。同様に、ツール４１５「ｄｉｇ」は、この情報に代えて、「ｗｗｗ」、「ｍａｉｌ」、又は「ｎｓ」のような共通の第３レベルドメイン名、並びに認証を行なうドメイン名サーバ、メールエクスチェンジャーなどのドメイン情報に関する特定の調査に基づいて、他の関連システムに関する他の情報を供給する。
別のツール４１５「ｏｎｅｓｉｘｔｙｏｎｅ」は、入力としてＩＰアドレスを必要とし、ツールがＵＤＰポート１６１に何らかのＳＮＭＰアクティビティを検出感知するかを検出及び報告することができる。例えば、「ｏｎｅｓｉｘｔｙｏｎｅ」は、ＳＮＭＰエージェントがＵＤＰ１６１で動作していることを報告し、無事に行われた調査からこのツールが判断する推測される全てのコミュニティ文字列又はシステムＩＤ情報について報告することができる。 更に別のツール４１５「ｐｐｔｐ＿ｐｒｏｂｅ」は、入力としてＩＰアドレスを必要とし、当該入力から判断するホスト名及びベンダー情報を出力することができる。例えば、ＰＰＴＰ  ＶＰＮサーバがＴＣＰポート１７２３で動作している場合、「ｐｐｔｐ＿ｐｒｏｂｅ」はＶＰＮサーバのホスト名、並びにサーバのベンダーの名前も出力する。「ｎｍｂｌｏｏｋｕｐ」のようなツールもＩＰアドレスを必要とし、ＮｅｔＢｉｏｓ名サービスがＵＤＰポート１３７で行われているかどうかを判断することができる。ツール「ｎｍｂｌｏｏｋｕｐ」が、ＮｅｔＢｉｏｓ名サービスがＵＤＰポート１３７で行われていると判断すると、当該サーバに関するＮｅｔＢｉｏｓ名及びワークグループ／ドメイン名をそれらが利用可能な場合に出力する。
【００４３】
ユーザネットワークのスキャンを実行するために使用することができる別のツール４１５「Ｓｍｂｃｌｉｅｎｔ」は、入力としてＩＰアドレスを必要とし、ＳＭＢプロトコルをＴＣＰポート１３９（例えば、Ｍｉｃｒｏｓｏｆｔネットワーキングサーバ又はＵｎｉｘ  Ｓａｍｂａサーバ）で実行するサービスから、例えばサーバがドメインコントローラ又はマスターブラウザであるかどうかを含め、ＮｅｔＢＩＯＳ共有名を出力することができる。「Ｑｔｉｐ」はＴｒｕｓｔｗａｖｅ（登録商標）社が設計したツールであり、入力としてＩＰアドレスを必要とし、ツールがＷｉｎｄｏｗｓ  ｎｕｌｌアカウントでのログインの試行を無事に行ったかどうかに関する情報、並びにツールが取得することができた追加のシステムコンフィグレーション情報の全てを出力することができる。「Ｑｔｉｐ」は更に、調査対象のシステムに関するユーザ名又は共有名、パスワードポリシーのような情報セキュリティポリシー設定（例えば、最小パスワード長、パスワード有効期間、ログイン失敗許可回数に関するアカウントロックアウト要件）、及び一般的なユーザアカウント情報（例えば、最後のログインの日時、ユーザのタイプ、及びユーザがパスワードを持っているかどうか）を出力することができる。Ｔｒｕｓｔｗａｖｅ（登録商標）が開発した別のツール「ｇｂｇ」は、入力としてＩＰアドレス及びＴＣＰ／ＵＤＰポート番号を必要とし、ＴＣＰ又はＵＤＰポート、或いは他の全てのＩＰプロトコルで動作する特定のアプリケーションを記述するサービスバナーを含むテキスト文字列を出力することができる。例えば、ＴＣＰポート２５は、Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＳＭＴＰ）に基づいてｅ−ｍａｉｌサーバを動作させることができる。しかしながら、多くの脆弱性が特定ベンダーの製品に固有のものである。ｇｂｇツールは、ＴＣＰ又はＵＤＰサービスがネットワーク接続の構築時に返す「バナー」テキスト又はデータを収集するジェネリックメソッドを提供する。この情報は通常、どの特定プログラム（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ又はＳｅｎｄｍａｉｌ）がサーバで動作しているかを示すテキスト又は他のデータ、並びに当該ソフトウェアの特定バージョンを含む。
オープンソースツール「ｗｇｅｔ」は、入力としてＩＰアドレス及びポートを必要とし、一つ以上のページをウェブサイトから出力することができる。ウェブサーバのデフォルトウェブページ（例えばｉｎｄｅｘ．ｈｔｍｌ）を取得及び解析することにより、当該アドレスのデフォルトウェブページのタイトル、デフォルトクッキー、及びウェブサイトに関する全てのユーザ認証要件を求めることができる。これは、定量化が可能な情報を求めるために解析ツールに使用されるオープンソースツールの一例である。別のオープンソースツール「ｎｉｋｔｏ」は、入力としてＩＰアドレス及びポートを必要とし、ＳＳＬ／ＴＬＳ証明書情報、及び疑わしいディレクトリ、ファイル、及びＵＲＬのリストをウェブサーバから出力として提供することができる。更に別のオープンソースツール「ｎｅｓｓｕｓ」は、入力としてＩＰアドレス、プロトコル（ＵＤＰ又はＴＣＰのような）、及びポート番号を入力として必要とし、出力として脆弱性コードを、脆弱性に関するツールの結論を支持する全ての証拠と一緒に供給することができる。使用することができる別のツール「ｄｏｒｉａｎ」は、入力としてウェブサーバのＩＰアドレス及びポート番号のようなアプリケーションに固有の情報を必要とし、加えてユーザ名及びパスワードのようなアプリケーション固有情報も必要とし、ウェブサーバ、更に詳細にはカスタムウェブアプリケーションに対する複数回の連続調査に基づく結果を出力することができる。
【００４４】
上に議論したように、各スキャニングツール４１５は通常、特定のオペレーティングシステム又はプラットフォームに接続することができ、スキャニング装置とは別に開発されてきた。従って、各スキャニングツール４１５に渡す入力は、特定の独自仕様のフォーマット又は特有のフォーマットにする必要がある。従って、タスクハンドラー４１８がタスクを開始し、スキャンを必ず実行するように命令すると、タスクハンドラー４１８は、ツール４１５に入力すべきデータを入力ラッパー４２８に渡し、入力ラッパー４２８が、各ツール４１５が必要とするコマンドライン及び／又はコンフィグレーションファイル４３０を当該ツール４１５が必要とする言語に「ｗｒａｐ（まとめる）」又は変換することにより、当該ツール４１５はタスク割当４１６において必要とされるタスクを実行することができる。ツール４１５は、正しく「ｗｒａｐ」されるか又はフォーマットされたコマンドライン及び／又はコンフィグレーションファイル４３０を受け取ると、上述のように、又は表１に記載したように、又はこの技術分野で公知のように、又は同時係属出願に記載されているようにそのスキャニング機能を実行する。別の実施形態では、各ツール４１５は、ツールが稼働するオペレーティングシステムとは無関係に、あらゆるタイプのフォーマットされたコマンドライン及び／又はコンフィグレーションファイル４３０を受け入れることができるように十分に堅固である。このような堅固なツール４１５は入力ラッパー４２８を必要としない。
ツール４１５、ツール３７０、又は第１スキャニングモジュール２３０がそのスキャニング機能を完了すると、ネイティブ出力４３２を生成する。図５は、ウェブサイトｗｗｗ．ｔｒｕｓｔｗａｖｅ．ｃｏｍのｐｉｎｇのネイティブ出力４３２の外観を示している。ツール４１５が生成するネイティブ出力４３２は有用なフォーマットにする必要がないので、ネイティブ出力４３２を出力パーサ４３４に渡すことができる。本発明の一態様では、出力パーサ４３４は、タスクハンドラー４１８が受け入れることができるフォーマットにネイティブ出力４３２を、「ｗｒａｐ」するか又は変換する。ネイティブ出力４３２は出力パーサ４３４によってｗｒａｐされるか又は正しくフォーマットされると、タスク結果４３６と呼ばれる。例えば、ネイティブ出力４３２をタスク結果４３６に変換するに当たって、出力パーサ４３４は無用な情報を取り除き、関連情報をタスクハンドラー４１８において使用することができる統一フォーマットに符号化することができる。図６は、図５のネイティブ出力４３２が出力パーサ４３４を通過して渡され、タスク結果４３６としてフォーマットされた後の外観を示している。別の実施形態では、タスクハンドラー４１８はネイティブ出力４３２をツール４１５から直接受け入れることができるので、出力パーサ４３４がデータをタスク結果４３６にフォーマットする必要がなくなる。
【００４５】
ここで、図４のスキャニングモジュールでは一つのツール４１５しか示されていないが、本発明は複数のツール４１５を同時に用いることができることに留意されたい。これらの複数のツール４１５は直列又は並列で使用することができる。更に、本明細書及び同時係属中の出願において議論するステップ及びサブモジュールの正確な順番は単なる例示であり、限定的なものではない。
ネイティブ出力４３２及びタスク結果４３６は、スキャニングツール４１５がスキャンするユーザネットワークの動作環境を表わしているため、ネイティブ出力４３２及びタスク結果４３６は、環境データとも呼ばれる。この環境データを受け取ると、タスクハンドラー４１８はこのデータを環境ローダ４３８に渡し、次にこのローダがこのデータを環境データベース４４０に格納する。
【００４６】
本発明の一態様では、環境ローダ４３８に渡される環境データによって新規タスクを生成することができる。従って、新規タスク群は、装置がどのように新規情報に作用する必要があるのかについて記述した決定樹に対するタスク結果の関係から生成される環境データを解析することにより生成することができる。例えば、決定樹４４４は、タスクビルダー４４２に指示してタスクリスト４１２内に新規タスク群４１３を構築させて、第１（初期）タスク割当４１６がツール「ｐｉｎｇ」及び「ｎｍａｐ」を使用して行なわれるようにすることができる。ツール４１５「ｐｉｎｇ」及び「ｎｍａｐ」が実行する後続のスキャンによって、例えばユーザネットワークのＵＤＰポート１３７及びＴＣＰポート１３９がオープンになっていることが判明すると、結果として得られる環境データ（タスク結果４３６内の）を、タスクハンドラー４１８及び環境ローダ４３８を通して最終的に環境データベース４４０に渡す。環境ローダ４３８を通して、タスクビルダー４４２は、これらのオープンなポートに対して、且つ決定樹４４４内の論理に基づいて詳細な調査を実行すべきかどうかを判断する。詳細な調査が必要な場合、タスクビルダー４４２は、例えば、タスクマネージャ４１４に指示して２つのタスク割当４１６をタスクハンドラー４１８に送信して、例えばＮＭＢＬＯＯＫＵＰとして知られるツール４１５を呼び出してＵＤＰ／１３７で動作するＮｅｔＢＩＯＳ名サービスからＷｉｎｄｏｗｓ  Ｄｏｍａｉｎ又はＷｏｒｋｇｒｏｕｐ名を決定することを求めるだけでなく、ＳＭＢＣＬＩＥＮＴとして知られるツール４１５を呼び出してユーザネットワークをプローブさせ、ＴＣＰ／１３９で動作するサーバからより多くのＮｅｔＢｉｏｓ情報を決定することを求める。
環境ローダ４３８、タスクマネージャ４１４、及びタスクハンドラー４１８の全てがどのようにしてフィードバックループを形成するのかについて示す別の例は、ツール４１５「ｑｔｉｐ」を呼び出すタスクハンドラーによって示すことができ、このタスクハンドラーは、ｎｕｌｌのログインを許可するかどうかを判断する。タスクハンドラー４１８に返され、次に環境ローダ４３８を介して環境データベース４４０に渡されるネイティブ出力４３２又はタスク結果４３６がＳＭＢプロトコルがＴＣＰ／１３９で動作している場合、タスクビルダー４２２は決定樹４４４に従ってこのサービスをプローブするためのタスクを待ち行列に入れ、これによって最終的にタスクハンドラー４１８の指示によってツール４１５ＱＴＩＰがｎｕｌｌのログインを試行し、無事にログインした場合、全ての既存のファイル又はプリンタ共有名及びセキュリティ設定を求める。別の実施形態では、初期「ｐｉｎｇ」及び「ｎｍａｐ」スキャンによりＴＣＰポート８０がユーザネットワークでオープンになっていることを明らかにする環境データが生成される場合、タスクビルダー４２２は、決定樹４４４の中で符号化された論理の記述に従って、タスク群を待ち行列に入れ、これによって最終的に、タスクマネージャ４１４はタスク割当４１６をタスクハンドラー４１８に渡し、「ｇｂｇ」又は「ｄｏｔｍａｔｒｉｘ」のようなバナー取得ツールに指示して、サービスが実際にＨＴＴＰプロトコルの実行であることを確認させ、特定のウェブホスティング製品、並びに使用される当該製品のバージョン（例えば、Ｍｉｃｒｏｓｏｆｔ  ＩＩＳ／４．０又はＡｐａｃｈｅ／１．３．１２）を識別させる。特定のウェブホスティング製品及びバージョンが識別されると、タスクビルダー４２２は、一つ以上の新規タスクを、決定樹４４４において符号化される論理に基づいて待ち行列に入れ、これによって最終的に、タスクマネージャ４１４はタスク割当４１６をタスクハンドラー４１８に渡して、特定の脆弱性テスト、特に既知のエクスプロイトを実行させる。
【００４７】
動的に生成されるタスクリスト４１２の全てのタスク割当４１６が実行されて、生成された全ての環境データが環境データベース４４０に格納されると、ネットワーク評価の第３フェーズ（すなわち、データ出力又はレポートフェーズ）が始まる。レポートフェーズを実行するに当たって、ネットワークパラメータ入力モジュール２２０又は本明細書に記載する他の等価モジュールは、レポートモジュール２４０を呼び出すことができる。本明細書及び同時係属中の出願において議論するように、レポートモジュール２４０は、ユーザネットワークのスキャンにより生成される環境データを含むレポート２５０を生成する。本明細書及び同時係属中の出願において議論するように、環境データベース４４０はユーザが入力するユーザデータ２１０又はユーザがオンラインアンケートに回答することにより生成されるデータを含むこともできるので、レポート２５０によって当該データに関する報告を行なうこともできる。
本発明の原理によれば、タスクハンドラー４１８に呼び出されるツール４１５は異なる理由によりスキャンを実行することができる。例えば、スキャンは、ユーザネットワークが特定の属性を含むかどうかを判断するために行なうことができる。更に、ツール４１５はユーザネットワークをスキャンして、当該ネットワークがハッカーによる特定のタイプの攻撃に脆いかどうかを判断することができる。従って、本発明の別の実施形態では、タスクビルダー４４２は、タスクモジュール４０８に含まれるウィルス及び脆弱性データベース４５０をチェックして、特定のウィルス及び脆弱性を識別するために実行する必要のあるスキャンを判断することができる。本発明の別の態様では、脆弱性及びウィルスデータベース４５０は通常、脆弱性及び脆弱性が影響を及ぼすサービスに関する情報（例えば、症状説明、重症度、修復情報など）の編集物を含む。本発明の別の態様では、スキャニング装置４００は、ウィルス及び脆弱性データベース４５０を迂回して、公開ウェブサイト又はビルボードに直接アクセスし、新規のウィルス又は脆弱性が識別されたかどうかをチェックすることができる。このような公開ウェブサイト及びビルボードとしては、ＳＡＮＳ／ＦＢＩ  Ｔｏｐ  ２０  ｗｗｗ．ｓａｎｓ．ｏｒｇ、及びＣｅｎｔｅｒ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ｓｅｃｕｒｉｔｙ  ｗｗｗ．ｃｉｓｅｃｕｒｉｔｙ．ｃｏｍを挙げることができる。現在のコンピュータシステムの脆弱性を提供する他のソースとしては、例えばｗｗｗ．ｃｅｒｔ．ｏｒｇ，ｗｗｗ．ｓｅｃｕｒｉｔｙｆｏｃｕｓ．ｏｒｇ，ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ，及びｗｗｗ．ｃｖｅ．ｍｉｔｒｅ．ｏｒｇを挙げることができる。更に、スキャニング装置４００はこのようなウェブサイト及び／又はビルボードにアクセスし、そこに列挙される新規のウィルス及び脆弱性をウィルス及び脆弱性データベース４５０に直接ダウンロードして将来の使用に供することができる。
【００４８】
動的に生成されるタスクリスト４１２を、決定樹において符号化されるスキャン論理で処理したタスク結果に基づいて作成することにより、大量の詳細情報をネットワーク及びネットワークサービスに関して求めることができる。この情報は、ツール４１５によって明らかになる潜在脆弱性の全てを網羅したリストを含む脆弱性データベース４５０の内部に含まれる情報に相関させることができる。脆弱性データベース４５０は、特定のツール４１５によって検出される脆弱性が明らかに存在すると見なされる場合に満たす必要のある依存関係を記述する更に別の論理を含むことができる。例えば、１つのツール４１５（例えばＮｅｓｓｕｓ）は、テストを実行してウェブサーバの特定の脆弱性をチェックすることができる。
本発明の原理によれば、スキャン装置４００は、異なるネットワーク及びオペレーティングプラットフォームに対応するように規模を調整することができるだけでなく、異なる範囲のセキュリティに対応するように規模を調整することができる。本発明の一態様では、スキャニング装置４００のスケーラビリティは、タスクマネージャ４１４、及びタスクハンドラー４１８が実行するタスクを通して調整することができる。例えば、スキャニング機能のスケーラビリティは、タスクを管理するタスクモジュール４０８の機能を、実際にタスクを実行するスキャンモジュール４１０の機能から分離することにより実現する。一実施形態では、この操作は、タスクを複数のスキャンツール４１５及び／又は複数のスキャンモジュール４１０に割り当てるタスクマネージャ４１４によって行われる。更に、タスクマネージャ４１４と、スケーラビリティを可能にする機能分離を含む機能との間のインターフェースは、異なるオペレーティングシステムを備えるスキャニングツール４１５を同じスキャニング装置において使用可能にすることにより、自由度を向上させることもできる。複数のスキャニングツール４１５によって、市販のオープンソースであり、独自仕様の他のスキャニングツール４１５をさらに多く使用することができる。例えば、決定樹は、「ｑｔｉｐ」をＷｉｎｄｏｗｓシステムに、及び「ｎｍａｐ」をＬｉｎｕｘシステムに割り当てることにより、これらのツールを特定のオペレーティングシステムに関連付けることができる。種々の「最善の組み合わせの」ツールの全てが、共通のオペレーティングシステムで動作する訳ではないので、複数のツール４１５を提供することにより、非常に広い範囲に渡るオープンソース及び市販ツールを共に本発明のスキャニング装置の内部に使用することができる。更に、タスクモジュール４０８とスキャンモジュール４１０との間で機能を分離することにより、ネットワークツール、接続ツール、又はリソースを必要とする他のツールを特定のプラットフォーム及び／又は外部ファイアウォールで動作させることができる。例えば、「ｎｍａｐ」及び類似のポートスキャナは多くの場合、これらのホストシステムがファイアウォールの後ろに設置される場合に利用することが困難になる。本発明の原理によれば、タスクモジュール４０８をスキャンモジュールから分離する（又は別の方法として、スキャン管理機能をスキャン実行機能から分離する）ことにより、所定のスキャニングツールをファイアウォールの「前」又は外部に配置することが可能であると同時に、攻撃に弱いツール又は独自仕様のツールに対するファイアウォール保護を、これらのツールのホストプラットフォームをファイアウォールの「後」に配置することにより行なうことができる。更に、スキャン管理機能をスキャン実行機能から分離することにより、スキャン実行機能（例えばスキャンモジュール４１０など）を企業ネットワークの内部に展開しながら、該当するスキャン管理機能を外部ネットワークの内部に展開することができる。
【００４９】
本発明の好適な実施形態に関するこれまでの記述は、例示及び説明のために行った。この記述は全てを網羅したものではなく、又は本発明を、開示した構成に厳密に制限するものではない。多くの変形及び変更を、上の記載から得られる示唆に基づいて加えることができる。本発明の技術範囲はこの詳細な記述によって制限されるのではなく、請求の範囲により規定されるものである。
【図面の簡単な説明】
【００５０】
【図１】本発明と一緒に使用することができる汎用コンピュータシステムを示す。
【図２】本発明の実施形態のフロー図である。
【図３】本発明の別の実施形態のフロー図である。
【図４】本発明と一緒に使用することができるスキャニング装置を示す。
【図５】２つの異なるオペレーティングシステムからの「ｐｉｎｇ」の出力を示す。
【図６】図５に示す正規化済みの生出力を含むＸＭＬドキュメントを示す。
【図７】図４に示す環境データベース４４０を示す。
【図１】
2006526221.tif 000006
【図２】
2006526221.tif 000007
【図３】
2006526221.tif 000008
【図４】
2006526221.tif 000009
【図５】
2006526221.tif 000010
【図６】
2006526221.tif 000011
【図７】
2006526221.tif 000012
【国際調査報告】
2006526221.tif 000013