(57)【特許請求の範囲】
【請求項１】
サーバ上の脆弱性を検出するためのコンピュータ実装方法であって、前記方法の少なくとも一部分が、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法が、
異なる組織によって運用される複数のサーバセット内の各サーバ上で潜在的に実行されるサービスのセットに関する情報についての前記複数のサーバセットへの要求のセットを送信することであって、前記サーバセットはサーバのセットであることと、
前記要求のセットに応じて、前記サービスのセットに関する前記情報を含む前記サーバのセットからのメッセージのセットを受信することであって、前記メッセージのセットが、前記サービスのセット内の異なるサービスに関する前記情報を送信するために複数の異なるフォーマットを使用することと、
前記メッセージの前記セットを分析することによって、メッセージから、前記メッセージを送信したサーバ上で実行される前記サービスのセット内のサービスの識別子を自動的に抽出することができる少なくとも１つのヒューリスティックを作成することであって、該ヒューリスティックは情報の本体内の１つ以上の特定の情報を認識することができるアルゴリズムを表すことと、
前記メッセージから、前記ヒューリスティックを介して、前記メッセージを送信した前記サーバ上で実行される前記サービスの前記識別子を抽出することと、
前記サービスの前記識別子に基づいて、前記メッセージを送信した前記サーバ上の脆弱性に前記サービスが寄与することを判定することと、
前記サーバを所有する前記組織に対する脆弱性スコアを計算することと、を含む、コンピュータ実装方法。
【請求項２】
前記サービスが前記脆弱性に寄与すると判定したことに応じて、セキュリティアクションを実施することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記セキュリティアクションを実施することが、前記サーバ上の前記脆弱性を修復することを含む、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記サーバを所有する組織に対する脆弱性スコアを、
前記サーバを所有する前記組織によって所有されているサーバを含むサーバのセットを識別することと、
前記サーバのセット内の各サーバから送信された少なくとも１つの追加のメッセージから、前記ヒューリスティックを介して、前記追加のメッセージを送信した前記サーバのセット内の前記サーバ上で実行される少なくとも１つの追加のサービスの少なくとも１つの追加の識別子を抽出することによってサービスのセットを識別することと、
前記サービスのセット内の各サービスに対して、前記サービスが寄与する脆弱性に関する脆弱性スコアを判定することによって、脆弱性スコアのセットを生成することと、
前記組織によって所有されている前記サーバ上で実行される前記サービスのセットに対する前記脆弱性スコアのセットに基づいて、前記組織に対する前記脆弱性スコアを計算することと、によって計算することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記組織に対する前記脆弱性スコアと、前記組織に対する少なくとも１つの以前の脆弱性スコアとを含む、前記組織に対する時間的な脆弱性メトリックを作成することと、
前記組織に対する前記時間的な脆弱性メトリックを少なくとも１つの追加の組織に対する少なくとも１つの時間的な脆弱性メトリックに対してランク付けすることと、を更に含む、請求項４に記載のコンピュータ実装方法。
【請求項６】
前記サービスの前記識別子に基づいて、前記メッセージを送信した前記サーバ上の前記脆弱性に前記サービスが寄与することを判定することが、
外部リソースから、前記サービスのセットに対する脆弱性データを取得することと、
前記識別子を使用して、前記脆弱性データ内で前記サービスを見つけることと、を含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記ヒューリスティックを作成することが、
前記情報を送信するための前記複数の異なるフォーマット内のフォーマットのサブセットを識別することであって、前記フォーマットのサブセットは同様のフォーマットを含む、ことと、
前記フォーマットのサブセット内の少なくとも１つのフォーマットを使用してフォーマットされた情報に一致する、前記フォーマットのサブセットに対するシグネチャを生成することと、
前記シグネチャから、前記ヒューリスティックを作成することと、を含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記シグネチャが、前記メッセージ内の前記サービスの前記識別子を見つける正規表現を含む、請求項７に記載のコンピュータ実装方法。
【請求項９】
サーバ上の脆弱性を検出するためのシステムであって、前記システムが、
メモリに記憶されている送信モジュールであって、異なる組織によって運用される複数のサーバセット内の各サーバ上で潜在的に実行されるサービスのセットに関する情報についての前記複数のサーバセットへの要求のセットを送信する送信モジュールであって、前記サーバセットはサーバのセットである送信モジュールと、
メモリに記憶されている受信モジュールであって、前記要求のセットに応じて、前記サービスのセットに関する前記情報を含む前記サーバのセットからのメッセージのセットを受信し、前記メッセージのセットが、前記サービスのセット内の異なるサービスに関する前記情報を送信するために複数の異なるフォーマットを使用する、受信モジュールと、
メモリに記憶されている作成モジュールであって、前記メッセージの前記セットを分析することによって、メッセージから、前記メッセージを送信したサーバ上で実行される前記サービスのセット内のサービスの識別子を自動的に抽出することができる少なくとも１つのヒューリスティックを作成する、作成モジュールであって、該ヒューリスティックは情報の本体内の１つ以上の特定の情報を認識することができるアルゴリズムを表す作成モジュールと、
メモリに記憶されている抽出モジュールであって、前記メッセージから、前記ヒューリスティックを介して、前記メッセージを送信した前記サーバ上で実行される前記サービスの前記識別子を抽出する、抽出モジュールと、
メモリに記憶されている判定モジュールであって、前記サービスの前記識別子に基づいて、前記メッセージを送信した前記サーバ上の脆弱性に前記サービスが寄与することを判定して、前記サーバを所有する前記組織に対する脆弱性スコアを計算する、判定モジュールと、
前記送信モジュール、前記受信モジュール、前記作成モジュール、前記抽出モジュール、及び前記判定モジュールを実行するように構成された少なくとも１つの物理プロセッサと、を備える、システム。
【請求項１０】
前記判定モジュールは、前記サービスが前記脆弱性に寄与すると判定したことに応じて、セキュリティアクションを実施する、請求項９に記載のシステム。
【請求項１１】
前記判定モジュールが、前記サーバ上の前記脆弱性を修復することによって前記セキュリティアクションを実施する、請求項１０に記載のシステム。
【請求項１２】
前記判定モジュールが、前記サーバを所有する組織に対する脆弱性スコアを、
前記サーバを所有する前記組織によって所有されているサーバを含むサーバのセットを識別することと、
前記サーバのセット内の各サーバから送信された少なくとも１つの追加のメッセージから、前記ヒューリスティックを介して、前記追加のメッセージを送信した前記サーバのセット内の前記サーバ上で実行される少なくとも１つの追加のサービスの少なくとも１つの追加の識別子を抽出することによってサービスのセットを識別することと、
前記サービスのセット内の各サービスに対して、前記サービスが寄与する脆弱性に関する脆弱性スコアを判定することによって、脆弱性スコアのセットを生成することと、
前記組織によって所有されている前記サーバ上で実行される前記サービスのセットに対する前記脆弱性スコアのセットに基づいて、前記組織に対する前記脆弱性スコアを計算することと、によって計算する、請求項９に記載のシステム。
【請求項１３】
前記判定モジュールが、前記脆弱性スコアを、
前記組織に対する前記脆弱性スコアと、前記組織に対する少なくとも１つの以前の脆弱性スコアとを含む、前記組織に対する時間的な脆弱性メトリックを作成することと、
前記組織に対する前記時間的な脆弱性メトリックを少なくとも１つの追加の組織に対する少なくとも１つの時間的な脆弱性メトリックに対してランク付けすることと、によって計算する、請求項１２に記載のシステム。
【請求項１４】
前記判定モジュールは、前記サービスの前記識別子に基づいて、前記メッセージを送信した前記サーバ上の前記脆弱性に前記サービスが寄与することを、
外部リソースから、前記サービスのセットに対する脆弱性データを取得することと、
前記識別子を使用して、前記脆弱性データ内で前記サービスを見つけることと、によって判定する、請求項９に記載のシステム。
【請求項１５】
前記作成モジュールが、前記ヒューリスティックを、
前記情報を送信するための前記複数の異なるフォーマット内のフォーマットのサブセットを識別することであって、前記フォーマットのサブセットは同様のフォーマットを含む、ことと、
前記フォーマットのサブセット内の少なくとも１つのフォーマットを使用してフォーマットされた情報に一致する、前記フォーマットのサブセットに対するシグネチャを生成することと、
前記シグネチャから、前記ヒューリスティックを作成することと、によって作成する、請求項９に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
世界中の組織は、自身の営業活動及び評判に厳しい結果をもたらし得るセキュリティインシデントを経験するリスクが高まっている。例えば、情報漏洩につながる組織のネットワークへの攻撃者による侵入は、収益及び顧客を減少させ、評判を毀損させ、他の潜在的な問題を宿すことの原因となり得る。第１の防衛層として、サーバなど、公衆インターネットから直接アクセス可能なマシンが適切に構成及び保護されていることを確実にすることが重要である。組織が自身の外部（即ち、インターネットに面する）ネットワークインフラストラクチャを保護することに失敗すると、そのインフラストラクチャは、任意の攻撃者が組織の内部ネットワークに入り込み、更には他の内部マシンにアクセスし、それらを危殆化させる、容易な侵入ポイントを作成し得る。組織に対する攻撃の偵察段階の一環として、攻撃者は、組織の外部インフラストラクチャのソフトウェア脆弱性評価を実施することがある。その後、攻撃者は、見つかった脆弱性を活用して、脆弱なマシンを不正に利用し、組織の内部ネットワーク上で攻撃を開始し、機密データにアクセスし得る。
【０００２】
残念ながら、組織によって配備された公衆に面する全てのサーバ上で実行される全てのサービスが最新かつセキュアであることを確実にすることは、多数のサーバを有する組織にとって困難なタスクであり得る。サーバ上の脆弱性を検出するための従来の方法は、リソース集約的又は不正確であり得る。したがって、本開示は、サーバ上の脆弱性を検出するためのシステム及び方法に対するニーズを特定し、それに対処する。
【発明の概要】
【０００３】
より詳細に後述するように、本開示は、サーバ上の脆弱性を検出するための様々なシステム及び方法を説明する。
【０００４】
一実施例では、サーバ上の脆弱性を検出するためのコンピュータ実装方法は、（ｉ）サーバのセット内の各サーバ上で潜在的に実行されるサービスのセットに関する情報についてのサーバのセットへの要求のセットを送信することと、（ｉｉ）要求のセットに応じて、サービスのセットに関する情報を含むサーバのセットからのメッセージのセットを受信することであって、メッセージのセットが、サービスのセット内の異なるサービスに関する情報を送信するために異なるフォーマットのグループを使用する、ことと、（ｉｉｉ）メッセージのセットを分析することによって、メッセージから、メッセージを送信したサーバ上で実行されるサービスのセット内のサービスの識別子を自動的に抽出することができる少なくとも１つのヒューリスティックを作成することと、（ｉｖ）メッセージから、ヒューリスティックを介して、メッセージを送信したサーバ上で実行されるサービスの識別子を抽出することと、（ｖ）サービスの識別子に基づいて、メッセージを送信したサーバ上の脆弱性にサービスが寄与することを判定することと、を含み得る。
【０００５】
いくつかの実施例では、コンピュータ実装方法は、サービスが脆弱性に寄与すると判定したことに応じて、セキュリティアクションを実施することを更に含み得る。一実施例では、セキュリティアクションを実施することは、サーバ上の脆弱性を修復することを含み得る。
【０００６】
いくつかの実施例では、コンピュータ実装方法は、サーバを所有する組織に対する脆弱性スコアを、（ｉ）サーバを所有する組織によって所有されているサーバからなる追加のサーバのセットを識別することと、（ｉｉ）追加のサーバのセット内の各サーバから送信された少なくとも１つの追加のメッセージから、ヒューリスティックを介して、追加のメッセージを送信した追加のサーバのセット内のサーバ上で実行される少なくとも１つの追加のサービスの少なくとも１つの追加の識別子を抽出することによってサービスのセットを識別することと、（ｉｉｉ）サービスのセット内の各サービスに対して、サービスが寄与する脆弱性に関する脆弱性スコアを判定することによって、脆弱性スコアのセットを生成することと、（ｉｖ）組織によって所有されているサーバ上で実行されるサービスのセットに対する脆弱性スコアのセットに基づいて、組織に対する脆弱性スコアを計算することと、によって計算することを更に含み得る。一実施形態では、コンピュータ実装方法は、組織に対する脆弱性スコアと、組織に対する少なくとも１つの以前の脆弱性スコアとを含む、当該組織に対する時間的な脆弱性メトリックを作成することと、その後、組織に対する時間的な脆弱性メトリックを少なくとも１つの追加の組織に対する少なくとも１つの時間的な脆弱性メトリックに対してランク付けすることと、を更に含み得る。
【０００７】
一実施形態では、サービスの識別子に基づいて、メッセージを送信したサーバ上の脆弱性にサービスが寄与することを判定することは、外部リソースから、サービスのセットに対する脆弱性データを取得することと、識別子を使用して、脆弱性データ内でサービスを見つけることと、を含み得る。いくつかの実施例では、ヒューリスティックを作成することは、情報を送信するための複数の異なるフォーマット内のフォーマットのサブセットを識別することであって、フォーマットのサブセットは同様のフォーマットを含む、ことと、フォーマットのサブセット内の少なくとも１つのフォーマットを使用してフォーマットされた情報に一致する、フォーマットのサブセットに対するシグネチャを生成することと、シグネチャから、ヒューリスティックを作成することと、を含み得る。一実施形態では、シグネチャは、メッセージ内のサービスの識別子を見つける正規表現を含み得る。
【０００８】
一実施形態では、上述の方法を実装するためのシステムは、（ｉ）メモリに記憶されている送信モジュールであって、サーバのセット内の各サーバ上で潜在的に実行されるサービスのセットに関する情報についてのサーバのセットへの要求のセットを送信する、送信モジュールと、（ｉｉ）メモリに記憶されている受信モジュールであって、要求のセットに応じて、サービスのセットに関する情報を含むサーバのセットからのメッセージのセットを受信し、メッセージのセットが、サービスのセット内の異なるサービスに関する情報を送信するために異なるフォーマットのグループを使用する、受信モジュールと、（ｉｉｉ）メモリに記憶されている作成モジュールであって、メッセージのセットを分析することによって、メッセージから、メッセージを送信したサーバ上で実行されるサービスのセット内のサービスの識別子を自動的に抽出することができる少なくとも１つのヒューリスティックを作成する、作成モジュールと、（ｉｖ）メモリに記憶されている抽出モジュールであって、メッセージから、ヒューリスティックを介して、メッセージを送信したサーバ上で実行されるサービスの識別子を抽出する、抽出モジュールと、（ｖ）メモリに記憶されている判定モジュールであって、サービスの識別子に基づいて、メッセージを送信したサーバ上の脆弱性にサービスが寄与することを判定する、判定モジュールと、（ｖｉ）送信モジュール、受信モジュール、作成モジュール、抽出モジュール、及び判定モジュールを実行するように構成された少なくとも１つの物理プロセッサと、を含み得る。
【０００９】
いくつかの実施例では、上述の方法は、非一時的コンピュータ可読媒体上のコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、コンピューティングデバイスに、（ｉ）サーバのセット内の各サーバ上で潜在的に実行されるサービスのセットに関する情報についてのサーバのセットへの要求のセットを送信することと、（ｉｉ）要求のセットに応じて、サービスのセットに関する情報を含むサーバのセットからのメッセージのセットを受信することであって、メッセージのセットが、サービスのセット内の異なるサービスに関する情報を送信するために異なるフォーマットのグループを使用する、ことと、（ｉｉｉ）メッセージのセットを分析することによって、メッセージから、メッセージを送信したサーバ上で実行されるサービスのセット内のサービスの識別子を自動的に抽出することができる少なくとも１つのヒューリスティックを作成することと、（ｉｖ）メッセージから、ヒューリスティックを介して、メッセージを送信したサーバ上で実行されるサービスの識別子を抽出することと、（ｖ）サービスの識別子に基づいて、メッセージを送信したサーバ上の脆弱性にサービスが寄与することを判定することと、を行わせ得る、１つ以上のコンピュータ実行可能命令を含んでもよい。
【００１０】
上述の実施形態のいずれかによる特徴は、本明細書に記載される一般原理に従って、互いに組み合わせて使用されてもよい。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための形態を読むことによって更に十分に理解されるだろう。
【図面の簡単な説明】
【００１１】
添付の図面は、いくつかの例示的な実施形態を図示するものであり、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示の様々な原理を実証及び説明する。
【図１】サーバ上の脆弱性を検出するための例示的なシステムのブロック図である。
【図２】サーバ上の脆弱性を検出するための追加の例示的なシステムのブロック図である。
【図３】サーバ上の脆弱性を検出するための例示的な方法のフロー図である。
【図４】サーバ上の脆弱性を検出するための追加の例示的なコンピューティングシステムのブロック図である。
【図５】本明細書に記載及び／又は図示される実施形態のうちの１つ以上を実装することができる例示的なコンピューティングシステムのブロック図である。
【図６】本明細書に記載及び／又は図示される実施形態のうちの１つ以上を実装することができる例示的なコンピューティングネットワークのブロック図である。
【００１２】
図面を通して、同一の参照符号及び記述は、必ずしも同一ではないが、類似の要素を示す。本明細書で説明される例示的実施形態は、様々な修正物及び代替的な形態が可能であるが、特定の実施形態が例として図面に示されており、本明細書に詳細に記載される。しかしながら、本明細書に記載される例示的実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の「特許請求の範囲」内にある全ての修正物、等価物、及び代替物を網羅する。
【発明を実施するための形態】
【００１３】
本開示は、概して、サーバ上の脆弱性を検出するためのシステム及び方法を対象とする。より詳細に後述するように、サービス情報についてサーバをスキャンし、次いで、カスタムヒューリスティックを作成してサービス情報を自動的に解析することによって、本明細書に記載されるシステム及び方法は、どのサービスがどのサーバ上で稼働しているかを効率的かつ正確に判定することが可能であり得る。カスタムヒューリスティックを作成してサービス情報を自動的に解析することによって、本明細書に記載されるシステム及び方法は、同じヒューリスティックによって全てを解析することはできない異なるフォーマットのサービス情報を送信する多数のサービスを効率的に分析し得る。このようにサービス情報を収集することによって、本明細書に記載されるシステム及び方法は、サーバ及び／又は組織に対する脆弱性スコアの精度及び効率を改善することが可能であり得、それにより、サーバの所有者及び／又は組織が、発見された任意の脆弱性を軽減し、それらの脆弱性を標的とする攻撃の成功の機会を低減させることを可能にし得る。加えて、本明細書に記載されるシステム及び方法は、向上した精度で潜在的な脆弱性を検出し、したがって、コンピューティングデバイスの危殆化される可能性を低減することによって、コンピューティングデバイスの機能を改善し得る。これらのシステム及び方法はまた、組織に対する正確な脆弱性メトリックを作成することによって、ヒューリスティックに基づくコンピュータセキュリティ及び／又は企業レベルのセキュリティの分野も改善し得る。
【００１４】
以下に、図１、図２、及び図４を参照して、サーバ上の脆弱性を検出するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明も図３に関連して提供される。それに加えて、本明細書に記載される実施形態のうちの１つ以上を実装することができる例示的なコンピューティングシステム及びネットワークアーキテクチャの詳細な説明が、それぞれ図５及び図６に関連して提供される。
【００１５】
図１は、サーバ上の脆弱性を検出するための例示的なシステム１００のブロック図である。この図に図示されるように、例示的なシステム１００は、１つ以上のタスクを実施するための１つ以上のモジュール１０２を含み得る。例えば、以下でより詳細に説明するように、例示的なシステム１００は、サーバのセット内の各サーバ上で潜在的に実行されるサービスのセットに関する情報についてのサーバのセットへの要求のセットを送信する送信モジュール１０４を含み得る。例示的なシステム１００は、要求のセットに応じて、サービスのセットに関する情報を含むサーバのセットからのメッセージのセットを受信する受信モジュール１０６を追加的に含み得、このメッセージのセットは、サービスのセット内の異なるサービスに関する情報を送信するために複数の異なるフォーマットを使用する。例示的なシステム１００はまた、メッセージのセットを分析することによって、メッセージから、メッセージを送信したサーバ上で実行されるサービスのセット内のサービスの識別子を自動的に抽出することができる少なくとも１つのヒューリスティックを作成する作成モジュール１０８も含み得る。例示的なシステム１００は、メッセージから、ヒューリスティックを介して、メッセージを送信したサーバ上で実行されるサービスの識別子を抽出する抽出モジュール１１０を追加的に含み得る。例示的なシステム１００はまた、サービスの識別子に基づいて、メッセージを送信したサーバ上の脆弱性にサービスが寄与することを判定する判定モジュール１１２も含み得る。別々の要素として図示されるが、図１のモジュール１０２のうちの１つ以上は、単一のモジュール又はアプリケーションの部分を表してもよい。
【００１６】
特定の実施形態では、図１のモジュール１０２のうちの１つ以上は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに１つ以上のタスクを実施させ得る、１つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えば、より詳細に後述するように、モジュール１０２のうちの１つ以上は、図２に示されるデバイス（例えば、コンピューティングデバイス２０２及び／又はサーバ２０６）、などの１つ以上のコンピューティングデバイスに記憶され、その上で作動するように構成されている、ソフトウェアモジュールを表してもよい。図１のモジュール１０２のうちの１つ以上はまた、１つ以上のタスクを実施するように構成された１つ以上の専用コンピュータの全て又は一部を表し得る。
【００１７】
図１に示すように、例示的なシステム１００はまた、メモリ１４０などの１つ以上のメモリデバイスも含み得る。メモリ１４０は、一般に、データ及び／又はコンピュータ可読命令を記憶することができる任意のタイプ又は形態の揮発性又は不揮発性の記憶デバイス又は媒体を表す。一実施例では、メモリ１４０は、モジュール１０２のうちの１つ以上を記憶、ロード、及び／又は維持してもよい。メモリ１４０の例としては、非限定的に、ランダムアクセスメモリ（Random Access Memory、ＲＡＭ）、読み取り専用メモリ（Read Only Memory、ＲＯＭ）、フラッシュメモリ、ハードディスクドライブ（Hard Disk Drive、ＨＤＤ）、ソリッドステートドライブ（Solid-State Drive、ＳＳＤ）、光ディスクドライブ、キャッシュ、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は任意の他の好適な記憶メモリが挙げられる。
【００１８】
図１に示すように、例示的なシステム１００はまた、物理プロセッサ１３０などの１つ以上の物理プロセッサも含み得る。物理プロセッサ１３０は、一般に、コンピュータ可読命令を解釈及び／又は実行することができる任意のタイプ又は形態のハードウェア実装処理ユニットを表す。一実施例では、物理プロセッサ１３０は、メモリ１４０に記憶されているモジュール１０２のうちの１つ以上にアクセスし、かつ／又はそれを変更することができる。それに加えて、又は代替的に、物理プロセッサ１３０は、サーバ上の脆弱性の検出を容易にするために、モジュール１０２のうちの１つ以上を実行し得る。物理プロセッサ１３０の例としては、非限定的に、マイクロプロセッサ、マイクロコントローラ、中央処理装置（Central Processing Unit、ＣＰＵ）、ソフトコアプロセッサを実装するフィールドプログラマブルゲートアレイ（Field-Programmable Gate Array、ＦＰＧＡ）、特定用途向け集積回路（Application-Specific Integrated Circuit、ＡＳＩＣ）、それらのうちの１つ以上の部分、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は任意の他の好適な物理プロセッサが挙げられる。
【００１９】
図１の例示的なシステム１００は、様々な方法で実装され得る。例えば、例示的なシステム１００のうちの全て又は一部は、図２における例示的なシステム２００の部分を表してもよい。図２に示されるように、システム２００は、ネットワーク２０４を介してサーバ２０６と通信するコンピューティングデバイス２０２を含んでもよい。一実施例では、モジュール１０２の機能のうちの全て又は一部は、コンピューティングデバイス２０２、サーバ２０６、及び／又は任意の他の好適なコンピューティングシステムによって実施され得る。より詳細に後述するように、図１によるモジュール１０２のうちの１つ以上は、コンピューティングデバイス２０２及び／又はサーバ２０６のうちの少なくとも１つのプロセッサによって実行されると、コンピューティングデバイス２０２及び／又はサーバ２０６がサーバ上の脆弱性を検出することを可能にし得る。例えば、より詳細に後述するように、送信モジュール１０４は、サーバのセット２０５へと、サーバのセット２０５内の各サーバ２０６上で潜在的に実行されるサービスのセット２１０に関する情報について要求のセット２０８を送信し得る。次に、受信モジュール１０６が、要求のセット２０８に応じて、サービスのセット２１０に関する情報を含むサーバのセット２０５からのメッセージのセット２１４を受信し得、メッセージのセット２１４は、サービスのセット２１０内の異なるサービスに関する情報を送信するために複数の異なるフォーマットを使用する。メッセージのセット２１４を受信した後、作成モジュール１０８が、メッセージのセット２１４を分析することによって、メッセージ２１６から、メッセージ２１６を送信したサーバ２０６上で実行されるサービスのセット２１０内のサービス２１２の識別子２２０を自動的に抽出することができる少なくとも１つのヒューリスティック２１８を作成し得る。次に、抽出モジュール１１０が、メッセージ２１６から、ヒューリスティック２１８を介して、メッセージ２１６を送信したサーバ２０６上で実行されるサービス２１２の識別子２２０を抽出し得る。最後に、判定モジュール１１２が、サービス２１２の識別子２２０に基づいて、メッセージ２１６を送信したサーバ２０６上の脆弱性２２２にサービス２１２が寄与することを判定し得る。
【００２０】
コンピューティングデバイス２０２は、一般に、コンピュータ実行可能命令を読み取ることができる任意のタイプ又は形態のコンピューティングデバイスを表す。一部の実施形態では、コンピューティングデバイス２０２は、脆弱性スコアを計算するように構成されたサーバであり得る。コンピューティングデバイス２０２の追加の例としては、非限定的に、特定のソフトウェアアプリケーションを実行する、並びに／又は様々なセキュリティサービス、ウェブサービス、ストレージサービス、及び／若しくはデータベースサービスを提供するように構成された、ラップトップ、タブレット、デスクトップ、セキュリティサーバ、アプリケーションサーバ、ウェブサーバ、ストレージサーバ、データベースサーバ、及び／又は任意の他の好適なコンピューティングデバイスが挙げられる。図２では単一のエンティティとして示されているが、コンピューティングデバイス２０２は、互いに連携して働く及び／又は動作する複数のサーバを含み得る及び／又はそれらを表し得る。
【００２１】
サーバ２０６は、一般に、１つ以上のサービスを実行することができる、任意のタイプ又は形態のコンピューティングデバイスを表す。一部の実施形態では、サーバ２０６は、インターネットに接続された公衆に面するウェブサーバであり得る。サーバ２０６の追加の例としては、非限定的に、特定のソフトウェアアプリケーションを実行する、並びに／あるいは様々なセキュリティサービス、ウェブサービス、ストレージサービス、及び／又はデータベースサービスを提供するように構成された、セキュリティサーバ、アプリケーションサーバ、ウェブサーバ、ストレージサーバ、及び／又はデータベースサーバが挙げられる。
【００２２】
ネットワーク２０４は、一般に、通信若しくはデータ転送を容易にすることが可能な、任意の媒体又はアーキテクチャを表す。一実施例では、ネットワーク２０４は、コンピューティングデバイス２０２とサーバ２０６との間の通信を容易にしてもよい。この実施例では、ネットワーク２０４は、無線接続及び／又は有線接続を使用して、通信又はデータ転送を容易にしてもよい。ネットワーク２０４の例としては、非限定的に、イントラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、インターネット、電力線通信（ＰＬＣ）、セルラーネットワーク（例えば、Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（ＧＳＭ（登録商標））ネットワーク）、それらのうちの１つ以上の部分、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は任意の他の好適なネットワークが挙げられる。
【００２３】
要求のセット２０８は、一般に、サーバに送信される任意のタイプ又は形態の通信を表す。サービス２１２は、一般に、サーバ上で実行することができる任意のスクリプト、アプリケーション、プログラム、及び／又は他のソフトウェアを表す。サービスのセット２１０は、一般に、１つ以上のサービスの任意のリストを表す。メッセージ２１６は、一般に、サーバによって送信される任意のタイプ又は形態の通信を表す。メッセージのセット２１４は、一般に、１つ以上のメッセージの任意のグループを表す。ヒューリスティック２１８は、一般に、情報の本体内の１つ以上の特定の情報を認識することができる任意のアルゴリズムを表す。識別子２２０は、一般に、サービスに対する任意のタイプ又は形態の識別子を表す。脆弱性２２２は、一般に、コンピューティングデバイスを攻撃に対して脆弱にする、コンピューティングデバイス、コンピューティングデバイス上で実行されるサービス、及び／又はコンピューティングデバイスとサービスとの組み合わせの任意の特性を表す。
【００２４】
図３は、サーバ上の脆弱性を検出するための例示的なコンピュータ実装方法３００のフロー図である。図３に示されるステップは、図１のシステム１００、図２のシステム２００、及び／又はそれらのうちの１つ以上の変形形態若しくは組み合わせを含む、任意の好適なコンピュータ実行可能コード及び／又はコンピューティングシステムによって実施され得る。一実施例では、図３に示されるステップのそれぞれは、アルゴリズムを表してもよく、そのアルゴリズムの構造は、複数のサブステップを含み、かつ／又はそれらによって表され、それらの実施例が以下により詳細に提供される。
【００２５】
図３に示すように、ステップ３０２において、本明細書に記載されるシステムのうちの１つ以上は、サーバのセット内の各サーバ上で潜在的に実行されるサービスのセットに関する情報についてのサーバのセットへの要求のセットを送信し得る。例えば、送信モジュール１０４は、図２中のコンピューティングデバイス２０２の一部として、サーバのセット２０５へと、サーバのセット２０５内の各サーバ２０６上で潜在的に実行されるサービスのセット２１０に関する情報について要求のセット２０８を送信し得る。
【００２６】
本明細書で使用するとき、「要求」という用語は、概して、サーバに送信される任意の通信を指す。一部の実施形態では、要求は、サーバ上で潜在的に実行される１つ以上のサービスに関してサーバから情報を引き出すように設計され得る。いくつかの実施例では、要求は、特定のポート及び／又はサービスにアドレス指定され得る。一実施形態では、要求は、サーバ上の複数のポートに照会するポートスキャンの一部として送信されて、それらのポートのステータス（例えば、開いている、フィルタ処理されている、又は閉じている）、及び／又はそれらのポートを介してトラフィックを受信する、サーバ上で実行されているサービスを判定し得る。要求の例としては、非限定的に、ハイパーテキスト転送プロトコル要求、ファイル転送プロトコル要求、シンプルメッセージ転送プロトコル要求、伝送制御プロトコルパケット、ユーザデータグラムプロトコルパケット、及び／又はインターネット制御メッセージプロトコルパケットが挙げられる。
【００２７】
本明細書で使用するとき、「サービス」という用語は、概して、コンピューティングデバイス上で動作する任意のスクリプト、コード、プログラム、アプリケーション、及び／又は他のソフトウェアを指す。サービスの例としては、非限定的に、オペレーティングシステム、データベースアプリケーション、メールアプリケーション、ファイル転送アプリケーション、ファイルストレージアプリケーション、仮想マシンアプリケーション、及び／又はウェブホスティングアプリケーションが挙げられ得る。
【００２８】
送信モジュール１０４は、様々なコンテクストで要求のセットを送信し得る。例えば、送信モジュール１０４は、特定のサーバ上のポートのセットに要求のセットを送信し得る。別の実施例では、送信モジュール１０４は、同じ組織によって全てが運用されているサーバのセット上のポートのセットに要求のセットを送信し得る。それに加えて、又は代替的に、送信モジュール１０４は、異なる組織によって運用されているいくつかのサーバのセットに要求を送信し得る。一実施例では、送信モジュール１０４は、ポート２１、２２、２５、８０、１１０、１４３、９９３、及び／又は９９５にメッセージを送信し得る。
【００２９】
ステップ３０４において、本明細書に記載されるシステムのうちの１つ以上は、要求のセットに応じて、サービスのセットに関する情報を含むサーバのセットからのメッセージのセットを受信し得、このメッセージのセットは、サービスのセット内の異なるサービスに関する情報を送信するために複数の異なるフォーマットを使用する。例えば、受信モジュール１０６は、図２中のコンピューティングデバイス２０２の一部として、要求のセット２０８に応じて、サービスのセット２１０に関する情報を含むサーバのセット２０５からのメッセージのセット２１４を受信し得、メッセージのセット２１４は、サービスのセット２１０内の異なるサービスに関する情報を送信するために複数の異なるフォーマットを使用する。
【００３０】
本明細書で使用するとき、「メッセージ」という用語は、概して、サーバによって送信される任意の通信を指す。一部の実施形態では、メッセージは、サーバによって、そのサーバへの要求に応じて送信され得る。一実施例では、メッセージは、ハイパーテキスト転送プロトコル応答であり得る。いくつかの実施例では、メッセージは、サーバ上で実行されるサービスの名前及び／又はバージョンを識別するサービスバナーなど、サーバ上で実行される１つ以上のサービスに関する情報を含み得る。
【００３１】
本明細書で使用するとき、「フォーマット」という用語は、概して、データが提示及び／又は転送される任意の方法を指す。一部の実施形態では、サーバは、異なるサービスに関する名前、バージョン、及び／又は他の情報のための異なる構成を有するメッセージを送信し得る。例えば、１つのサービスは、「名前（バージョン）／（サブバージョン）」というフォーマットで情報を送信し得るが、別のサービスは、「名前  バージョン  追加情報」というフォーマットで情報を送信し得る。
【００３２】
受信モジュール１０６は、様々なコンテクストでメッセージのセットを受信し得る。例えば、受信モジュール１０６は、個々のサーバのポートスキャンに応じて送信されたメッセージを受信し得る。他の実施例では、受信モジュール１０６は、複数のサーバのポートスキャンに応じて送信されたメッセージを受信し得る。
【００３３】
ステップ３０６において、本明細書に記載されるシステムのうちの１つ以上は、メッセージのセットを分析することによって、メッセージから、メッセージを送信したサーバ上で実行されるサービスのセット内のサービスの識別子を自動的に抽出することができる少なくとも１つのヒューリスティックを作成し得る。例えば、作成モジュール１０８は、図２中のコンピューティングデバイス２０２の一部として、メッセージのセットを分析することによって、メッセージ２１６から、メッセージ２１６を送信したサーバ２０６上で実行されるサービスのセット２１０内のサービス２１２の識別子２２０を自動的に抽出することができる少なくとも１つのヒューリスティック２１８を作成し得る。
【００３４】
本明細書で使用するとき、「ヒューリスティック」という用語は、概して、情報を他の情報から導出する任意の方法を指す。一部の実施形態では、ヒューリスティックは、サービスに関する情報を含むメッセージ内でサービスの１つ以上のタイプの識別子を見つけ得る。例えば、ヒューリスティックは、メッセージの内容を解析して、サービスの名前及び／又はバージョンを抽出し得る。別の実施例では、ヒューリスティックは、メッセージを解析する方法に関する命令をパーサに提供し得る。例えば、ヒューリスティックは、メッセージを解析するためにパーサによって使用され得る正規表現を含み得る。
【００３５】
本明細書で使用するとき、「識別子」という用語は、概して、サービスの任意の説明を指す。一部の実施形態では、サービスの識別子は、サービスの名前を含み得る。それに加えて、又は代替的に、サービスの識別子は、サービスのバージョン名及び／又はバージョン番号を含み得る。いくつかの実施例では、サービスの識別子は、サービスのパブリッシャー、サービスのサービスタイプ、及び／又はサービスに関する追加情報を含み得る。
【００３６】
作成モジュール１０８は、様々な方法でヒューリスティックを作成し得る。一部の実施形態では、作成モジュール１０８は、複数の異なるメッセージフォーマットから情報を抽出するために複数のヒューリスティックを作成し得る。いくつかの実施例では、作成モジュール１０８は、情報を送信するための複数の異なるフォーマット内のフォーマットのサブセットを識別し得、フォーマットのサブセット内のフォーマットは、互いに同様のフォーマットを有する。例えば、作成モジュール１０８は、レーベンシュタイン距離などの文字列類似性測定を使用して、メッセージ間の類似度を計算し得、その後、距離についての所定の閾値を下回る文字列距離を有するメッセージをグループ化し得る。
【００３７】
一部の実施形態では、作成モジュール１０８は、フォーマットのサブセット内の少なくとも１つのフォーマットを使用してフォーマットされた情報に一致する、フォーマットのサブセットに対するシグネチャを生成し得る。一実施形態では、作成モジュール１０８は、文字列アラインメントライブラリを使用して、同様のフォーマットのサブセット内のフォーマットで提示された情報と一致する正規表現を生成し得る。例えば、作成モジュール１０８は、配列アラインメントを作成するように設計されたＦＲＡＫライブラリ及び／又はバイオインフォマティクスライブラリを使用して、同様のフォーマットの所与のサブセット内の少なくとも１つのフォーマットに一致する正規表現を生成し得る。
【００３８】
一実施例では、作成モジュール１０８は、メッセージの内容から文字列を導出し、次いで、各文字列の系統樹を構築するために、Ｓｍｉｔｈ−Ｗａｔｅｒｍａｎアルゴリズムを使用して、各ストリングの対に対して局所配列アラインメントを実施し得る。この実施例では、作成モジュール１０８は、次いで、非加重結合法（ＵＰＧＭＡ）を用いて系統樹を結合して、１つの単一系統樹を形成し、結果として得られた系統樹をトラバースして、正規表現を構築し得る。この実施例では、作成モジュール１０８は、ＵＰＧＭＡ距離関数を使用して、サーバ及びサービスによって公開されたプロトコルバナーの類似度を比較し得る。次いで、作成モジュール１０８は、この類似度を使用して、互いに類似するバナーからバナーシグネチャを、半自動化された方法で生成し得る。いくつかの実施例では、本明細書に記載されるシステムは、生成されたバナーシグネチャを記憶し得、その後、以前に生成されたバナーシグネチャを使用して、サーバ及び／又はサービスを容易かつ効率的に認識し得る。
【００３９】
一実施形態では、作成モジュール１０８は、シグネチャからヒューリスティックを作成し得る。一部の実施形態では、作成モジュール１０８は、分析者が、自動的に生成された正規表現を確認すること、並びに／又は、サービス名及び／若しくはバージョンなどの特定の情報が位置する、正規表現内での位置をラベル付けすることを可能にし得る。
【００４０】
ステップ３０８において、本明細書に記載されるシステムのうちの１つ以上は、メッセージから、ヒューリスティックを介して、メッセージを送信したサーバ上で実行されるサービスの識別子を抽出し得る。例えば、抽出モジュール１１０は、図２中のコンピューティングデバイス２０２の一部として、メッセージ２１６から、ヒューリスティック２１８を介して、メッセージ２１６を送信したサーバ２０６上で実行されるサービス２１２の識別子２２０を抽出し得る。
【００４１】
抽出モジュール１１０は、様々なコンテクストでメッセージから識別子を抽出し得る。例えば、抽出モジュール１１０は、メッセージを分析することによって作成されたヒューリスティックを使用して、メッセージから識別子を抽出し得る。別の実施例では、抽出モジュール１１０は、類似するメッセージを分析することによって以前に作成された記憶したヒューリスティックを使用して、メッセージから識別子を抽出し得る。一部の実施形態では、抽出モジュール１１０は、メッセージからサービスの複数の識別子を抽出し得る。いくつかの実施例では、抽出モジュール１１０は、メッセージからサービスの名前、パブリッシャー、及び／又はバージョンを抽出し得る。一実施例では、抽出モジュール１１０は、正規表現を使用して、メッセージ内の特定の予期された位置に位置する情報を抽出し得る。例えば、抽出モジュール１１０は、正規表現「（？＜ｓｅｒｖｉｃｅｎａｍｅ＞＼ｗ＋）ｖ．（？＜ｖｅｒｓｉｏｎｎｕｍ＞＼ｄ｛１，２｝．＼ｄ｛１，２｝）＼（（？＜ｐｕｂｌｉｓｈｅｒ＞＼ｗ＋）＼）？」をメッセージ「Ｅｍａｉｌ  Ｓｅｒｖｅｒ  ｖ．１．１２（ＡｐｐＰｕｂｌｉｓｈｅｒ）」に適用して、メッセージから名前「Ｅｍａｉｌ  Ｓｅｒｖｅｒ」、パブリッシャー「ＡｐｐＰｕｂｌｉｓｈｅｒ」、及び／又はバージョン「１．１２」を抽出し得る。
【００４２】
一実施形態では、抽出モジュール１１０は、受信モジュール１０６及び／又は作成モジュール１０８から、メッセージを送信したサーバのインターネットプロトコル（ＩＰ）アドレス、サービスが通信しているポート番号、及び／又はサービスに関する情報についての要求に応じてサーバによって送信されたサービスバナーを含む、タプルのフォーマットのデータを抽出するためのメッセージを受信し得る。いくつかの実施例では、抽出モジュール１１０は、複数のサーバ上で実行される様々なサービスに関する情報を表すタプルのリストを受信し得る。
【００４３】
ステップ３１０において、本明細書に記載されるシステムのうちの１つ以上は、サービスの識別子に基づいて、メッセージを送信したサーバ上の脆弱性にサービスが寄与することを判定し得る。例えば、判定モジュール１１２は、図２中のコンピューティングデバイス２０２の一部として、サービス２１２の識別子２２０に基づいて、メッセージ２１６を送信したサーバ２０６上の脆弱性２２２にサービス２１２が寄与することを判定し得る。
【００４４】
本明細書で使用するとき、「脆弱性」という用語は、概して、脆弱性を有するコンピューティングデバイス上で悪意のあるアクションを攻撃者が実施することを可能にする、コンピューティングデバイス、サービス、並びに／又は１つ以上のサービス及び／若しくはコンピューティングデバイス間の相互作用の任意の特性を指す。いくつかの実施例では、脆弱性は、攻撃者が、保護されたデータにアクセスし、保護された構成及び／若しくはコードへの変更を行い、並びに／又は無認可のユーザに対して典型的には許可されない他のアクションを実施することを可能にし得る。脆弱性の例としては、非限定的に、コードインジェクション、構造化クエリ言語インジェクション、情報漏洩、クロスサイトスクリプティング、クロスサイトリクエストフォージェリ、及び／又は権限昇格が挙げられ得る。
【００４５】
判定モジュール１１２は、サービスが脆弱性に寄与することを様々な方法で判定し得る。一実施形態では、判定モジュール１１２は、サービスの識別子に基づいて、メッセージを送信したサーバ上の脆弱性にサービスが寄与することを判定し得、このために、外部リソースから、サービスのセットに対する脆弱性データを取得することと、識別子を使用して、脆弱性データ内でサービスを見つけることとを行う。例えば、判定モジュール１１２は、既存の及び報告された全てのソフトウェア脆弱性のリスト並びに影響を受けたベンダ、名前、及び／又はバージョン番号を、公的に利用可能な脆弱性データベースに照会し得る。この実施例では、判定モジュール１１２は、次いで、脆弱なサービスのリストをサーバ上で実行されているのが見つかったサービスのリストと照合して、脆弱なサーバを識別し得る。別の実施形態では、判定モジュール１１２は、サーバ上で識別されたサービスの名前、バージョン、及び／又はベンダのリストを作成し得、脆弱性データベースに照会して、それらの特定のサービスが脆弱性を有すると知られているかどうかを判定し得る。
【００４６】
いくつかの実施例では、本明細書に記載のシステムは、サービスが脆弱性に寄与すると判定したことに応じて、セキュリティアクションを実施し得る。一実施形態では、セキュリティアクションは、例えば、脆弱性に寄与するサービスを再構成、パッチ当て、及び／又は更新することによって、サーバ上の脆弱性を修復することを含み得る。別の実施例では、本明細書に記載されるシステムは、脆弱性についてサーバの管理者に通知し得る。一部の実施形態では、本明細書に記載されるシステムは、脆弱性を含む脆弱性スコアを計算し得、脆弱性スコアについてサーバの管理者に通知し得る。
【００４７】
いくつかの実施例では、本明細書に記載されるシステムは、組織によって所有されているサーバのセットを識別することと、それらのサービス上で実行されるサービスのセットを識別することと、サービスのセットに対する脆弱性スコアのセットを生成することと、組織によって所有されているサーバ上で実行されるサービスのセットに対する脆弱性スコアのセットに基づいて、組織に対する脆弱性スコアを計算することと、によって、サーバを所有する組織に対する脆弱性スコアを計算し得る。一実施形態では、図４に示すように、本明細書に記載されるシステムは、ネットワーク４０４を介してサーバのセット４０２を評価し得る。いくつかの実施例では、ネットワーク４０４は、ローカルエリアネットワーク、リモートネットワーク（即ち、クラウドネットワーク）、及び／又はインターネットを含み得る。
【００４８】
一実施形態では、本明細書に記載されるシステムは、サーバ４０２上でポートスキャンを実施するポートスキャナ４０６を含み得る。ポートスキャナ４０６は、サーバ上の様々なポートにメッセージ及び／又はパケットを送信し、サーバからの応答を評価して、ポート及び／又はそれらのポートを使用するサービスのステータスを判定することができる任意のタイプのアプリケーションを含み得る。この実施例では、本明細書に記載されるシステムは、ヒューリスティックジェネレータ４１０によって生成及び／又は記憶された１つ以上のヒューリスティックを使用してサービスバナーを自動的に解析するバナーパーサ４０８を含み得る脆弱性発見システム４１６を含み得る。いくつかの実施例では、脆弱性発見システム４１６はまた、脆弱性データベース４１２に照会する、及び／又はそれからの結果を解析する脆弱性データベースパーサ４１１も含み得る。一部の実施形態では、脆弱性データベース４１２は、本明細書に記載されるシステムの管理者によって所有及び／又は運用されていない外部データベースであり得る。他の実施形態では、本明細書に記載されるシステムは、脆弱性データベース４１２を含み得る。一実施例では、脆弱性データベースパーサ４１１及び／又はバナーパーサ４０８は、サービスマッチャ４１４に結果を送信し得、サービスマッチャ４１４は、サーバ４０２上で見つかったサービスを、１つ以上の脆弱性を有するものとして脆弱性データベース４１２内にリストされているサービスと照合し得る。
【００４９】
一部の実施形態では、本明細書に記載されるシステムはまた、リスクスコアリングシステム４２６も含み得る。一実施形態では、リスクスコアリングシステム４２６は、サービスマッチャ４１４からのサービス脆弱性情報、及び／又は脆弱性データベースパーサ４１１からの脆弱性リスクスコア情報を受信し得る、重大度評価４１８を含み得る。一実施形態では、重大度評価４１８は、サーバ４０２に対する予備的な脆弱性メトリックを計算するために、サーバ４０２上で動作するサービス上で見つかった脆弱性に関する脆弱性スコアを計算し得る。
【００５０】
一実施形態では、リスクスコアリングシステム４２６は、エクスプロイト可能性評価４２０、感染評価４２２、及び／又は企業評価４２４などの追加の評価を含み得る。いくつかの実施例では、エクスプロイト可能性評価４２０は、サーバ４０２に影響を及ぼし得るエクスプロイトに関する情報をエクスプロイトデータベース４３０に照会し得る。一部の実施形態では、エクスプロイトデータベース４３０は外部リソースであり得るが、他の実施形態では、本明細書に記載されるシステムは、エクスプロイトデータベース４３０を含み得る。いくつかの実施例では、感染評価４２２は、サーバ４０２に影響を及ぼし得る感染に関する情報を１つ以上のセキュリティデータソース４３２に照会し得る。一部の実施形態では、セキュリティデータソース４３２は外部リソースを含み得るが、他の実施形態では、本明細書に記載されるシステムは、セキュリティデータソース４３２を含み得る。それに加えて、又は代替的に、企業評価４２４は、サーバ４０２のうちのどれが、どの組織によって所有されているかに関する情報をＩＰアドレスマッピング４３４に照会し得る。一部の実施形態では、ＩＰアドレスマッピング４３４は外部リソースであり得るが、他の実施形態では、本明細書に記載されるシステムは、ＩＰアドレスマッピング４３４を含み得る。いくつかの実施例では、全てのサーバ４０２が同じ組織によって所有され得るが、他の実施例では、本明細書に記載されるシステムは、複数の組織によって所有されているサーバを同時に分析し得る。
【００５１】
一部の実施形態では、重大度評価４１８、エクスプロイトデータベース４２０、感染評価４２２、及び／又は企業評価４２４は全て、サーバ４０２内のサーバを運用する１つ以上の組織に対して企業レベルの脆弱性評価４３６を生成し得るリスクスコアリング及びベンチマーキングモジュール４２８に情報を送信し得る。一部の実施形態では、企業レベルの脆弱性評価４３６は、組織によって運用されている公衆に面するサーバ上の脆弱性に寄与するサービス、並びに／又はそれらの脆弱性に関連したエクスプロイト及び／若しくは感染のリスク及び／若しくは重大度に基づいた、組織に対する全体的な脆弱性メトリックを含み得る。一実施形態では、企業レベルの脆弱性評価４３６は、メッセージングプロトコル、アプリケーションタイプ、及び／若しくは他の特性よって分割された異なるカテゴリでのいくつかのメトリック、並びに／又はカテゴリメトリックを合計する全体的なメトリックを含み得る。例えば、企業レベルの脆弱性評価４３６は、ハイパーテキスト転送プロトコルアプリケーション及び／若しくはサーバ、セキュアソケットレイヤアプリケーション及び／若しくはサーバ、並びに／又は簡易メール転送プロトコルアプリケーション及び／若しくはサーバのカテゴリのそれぞれにおける組織に対するＡ〜Ｆのスコアを含み得る。
【００５２】
一部の実施形態では、リスクスコアリング及びベンチマーキングモジュール４２８は、いくつかのカテゴリからの多数の特徴を活用する重み付けされた式を使用して、企業レベルの脆弱性評価４３６を生成し得る。カテゴリの例としては、非限定的に、ポート及び／若しくはＩＰ特徴、共通の脆弱性及び露出（ＣＶＥ）特徴、共通脆弱性評価システム（ＣＶＳＳ）特徴、並びに／又は時間的特徴が挙げられ得る。ポート及び／又はＩＰ特徴の例としては、非限定的に、パッチ未適用ホスト当たりの脆弱なＩＰアドレス数、パッチ未適用ホスト当たりの脆弱なポート数、パッチ未適用ホスト当たりのＩＰアドレス当たりの平均脆弱ポート数、パッチ適用済みホスト当たりのパッチ適用済みＩＰアドレス数、パッチ適用済みホスト当たりのパッチ適用済みポート数、及び／又はパッチ適用済みホスト当たりのＩＰアドレス当たりの平均パッチ適用済みポート数が挙げられ得る。ＣＶＥ特徴の例としては、非限定的に、パッチ未適用ホスト当たりのポート当たり平均ＣＶＥ、パッチ未適用ホスト当たりのＩＰアドレス当たりの平均ＣＶＥ、パッチ適用済みホスト当たりのパッチ適用済みＣＶＥ数、パッチ未適用ホスト当たりのＣＶＥ数、パッチ適用済みホスト当たりのポート当たりの平均パッチ適用済みＣＶＥ、及び／又はパッチ適用済みホスト当たりのＩＰアドレス当たりの平均パッチ適用済みＣＶＥが挙げられ得る。ＣＶＳＳ関連の特徴の例としては、非限定的に、パッチ適用済みホスト当たりの平均ＣＶＥ  ＣＶＳＳスコア、パッチ適用済みホスト当たりの最小ＣＶＥ  ＣＶＳＳスコア、パッチ適用済みホスト当たりの最大ＣＶＥ  ＣＶＳＳスコア、パッチ未適用ホスト当たりの平均ＣＶＥ  ＣＶＳＳスコア、パッチ未適用ホスト当たりの最小ＣＶＥ  ＣＶＳＳスコア、及び／又はパッチ未適用ホスト当たりの最大ＣＶＥ  ＣＶＳＳスコアが挙げられ得る。時間的特徴の例としては、非限定的に、パッチ適用済みホスト当たりの平均脆弱期間、パッチ適用済みホスト当たりの最大脆弱期間、パッチ適用済みホスト当たりの平均ＣＶＥ年数、パッチ適用済みホスト当たりの最小ＣＶＥ年数、パッチ適用済みホスト当たりの最大ＣＶＥ年数、パッチ未適用ホスト当たりの平均ＣＶＥ年数、パッチ未適用ホスト当たりの最小ＣＶＥ年数、及び／又はパッチ未適用ホスト当たりの最大ＣＶＥ年数が挙げられ得る。本明細書で使用するとき、「ホスト」という用語は、概して、任意のタイプのサーバ及び／又はコンピューティングデバイスを指す。
【００５３】
いくつかの実施例では、本明細書に記載されるシステムは、評価において使用される各特徴について、その特徴（例えば、サーバ当たりの脆弱なポートの平均数、パッチ未適用の脆弱性の週単位の平均経過時間、及び／又は各サーバの平均ＣＶＳＳスコア）に対する組織のランク付けに、その特徴に割り当てられた所定の重みを掛け、次いで、全ての特徴の合計値の総和をとり、その合計を、全体的な脆弱性スコアに達するために使用される特徴のセットのサイズで割ることによって、組織に対する加重平均リスクスコアを計算し得る。一部の実施形態では、本明細書に記載されるシステムは、１週間に１回、１ヶ月に１回、及び／又は四半期に１回などの規則的な間隔で、同じサーバのセット及び／又は組織に対する加重平均リスクスコアなどの脆弱性メトリックを作成し得る。一実施形態では、本明細書に記載されるシステムは、異なる時間に作成された脆弱性メトリックを組み合わせる及び／又は比較し得る。
【００５４】
一実施形態では、本明細書に記載されるシステムは、組織に対する脆弱性スコアと、組織に対する少なくとも１つの以前の脆弱性スコアとを含む、組織に対する時間的な脆弱性メトリックを作成し得、及び／又は組織に対する時間的な脆弱性メトリックを少なくとも１つの追加の組織に対する少なくとも１つの時間的な脆弱性メトリックに対してランク付けし得る。一部の実施形態では、本明細書に記載されるシステムは、組織の履歴脆弱性メトリックを、同様の組織の履歴脆弱性メトリックと比較することによって、時間的なピアプロファイルを作成し得る。いくつかの実施例では、本明細書に記載されるシステムは、組織の以前の全ての脆弱性メトリックを考慮して組織に対する新たな脆弱性メトリックをピア組織に対する新たな脆弱性メトリックと定期的に比較する、進行中の時間的なピアプロファイルを作成し得る。一部の実施形態では、時間的なピアプロファイルは、所与の時間における脆弱なポート及び／又はＩＰアドレスの数など、組織の全体的なセキュリティメトリックを構成する様々な個々の特徴に対するスコアを含むことによって、調節可能なレベルの粒度を可能にし得る。
【００５５】
上述の方法３００に関連して説明したように、本明細書に記載されるシステム及び方法は、マシン上で稼働しているサービス及び／又はアプリケーションについて外部（即ち、インターネットに面する）マシンをスキャンし、これらのサービスのそれぞれについてハンドシェイクバナーを取得し、バナーを生成したソフトウェアアプリケーションを正確に識別するための情報をバナーから抽出し、公的に利用可能なソフトウェア脆弱性データベースから収集された既存の及び報告された全てのソフトウェア脆弱性に関する情報を抽出し、スキャンされたマシン上で稼働しているソフトウェアアプリケーションとソフトウェア脆弱性のデータベースとの間の共通部分を見つけ得る。いくつかの実施例では、本明細書に記載されるシステム及び方法は、組織からの協力なしで、組織のサーバ及び／又は他のデバイスのアウトサイドイン評価を実施し得る。一部の実施形態では、本明細書に記載されるシステム及び方法は、異なるカテゴリ内の重み付けされた特徴の集合に基づいて脆弱性スコアを生成し得、組織のセキュリティ状態を経時的に追跡し、及び／又は組織のセキュリティ状態を組織のピアのセキュリティ状態と比較し得る。自動的に、公衆に面するサーバをサービスについてスキャンし、サービスバナーを解析し、脆弱性データベースから情報を取得することによって、本明細書に記載されるシステム及び方法は、大規模な脆弱性評価を効率的に実施し得る。いくつかの実施例では、組織は、本明細書に記載されるシステム及び方法によって作成された脆弱性評価を使用して、脆弱性を修復し、セキュリティ状態を改善し、サイバー保険リスク評価を作成し、及び／又は脆弱性修復のためのリソースをどこに向けるべきかを決定し得る。
【００５６】
図５は、本明細書に記載及び／又は図示される実施形態のうちの１つ以上を実装することができる例示的なコンピューティングシステム５１０のブロック図である。例えば、コンピューティングシステム５１０のうちの全て又は一部は、単独で又は他の要素と組み合わせてのいずれかで、本明細書に記載されるステップのうちの１つ以上（図３に示されるステップのうちの１つ以上など）を実施し得、及び／又はそれを実施するための手段であり得る。コンピューティングシステム５１０のうちの全て又は一部はまた、本明細書に記載及び／若しくは図示される任意の他のステップ、方法、若しくはプロセスを実施してもよく、並びに／又はそれを実施するための手段であってもよい。
【００５７】
コンピューティングシステム５１０は、コンピュータ可読命令を実行することができる任意のシングル又はマルチプロセッサのコンピューティングデバイス又はシステムを幅広く表す。コンピューティングシステム５１０の例としては、非限定的に、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、又は他の任意のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム５１０は、少なくとも１つのプロセッサ５１４及びシステムメモリ５１６を含んでもよい。
【００５８】
プロセッサ５１４は、一般に、データを処理すること又は命令を解釈及び実行することができる任意のタイプ又は形態の物理的処理ユニット（例えば、ハードウェア実装型中央処理ユニット）を表す。特定の実施形態では、プロセッサ５１４は、ソフトウェアアプリケーション又はモジュールから命令を受信し得る。これらの命令は、プロセッサ５１４に、本明細書に記載及び／又は図示される例示的な実施形態のうちの１つ以上の機能を実施させ得る。
【００５９】
システムメモリ５１６は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる任意のタイプ又は形態の揮発性又は不揮発性の記憶デバイス又は媒体を表す。システムメモリ５１６の例としては、非限定的に、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必須ではないが、特定の実施形態では、コンピューティングシステム５１０は、揮発性メモリユニット（例えば、システムメモリ５１６など）、及び不揮発性記憶デバイス（例えば、詳細に後述するような、一次記憶デバイス５３２など）の両方を含んでもよい。一実施例では、図１のモジュール１０２のうちの１つ以上は、システムメモリ５１６内にロードされ得る。
【００６０】
いくつかの実施例では、システムメモリ５１６は、プロセッサ５１４による実行のために、オペレーティングシステム５４０を記憶及び／又はロードし得る。一実施例では、オペレーティングシステム５４０は、コンピュータハードウェア及びソフトウェアリソースを管理し、並びに／又はコンピューティングシステム５１０上のコンピュータプログラム及び／若しくはアプリケーションに共通のサービスを提供する、ソフトウェアを含み得る及び／又はそれを表し得る。オペレーティングシステム６４０の例としては、非限定的に、ＬＩＮＵＸ、ＪＵＮＯＳ、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）  ＭＯＢＩＬＥ、ＭＡＣ  ＯＳ、ＡＰＰＬＥのＩＯＳ、ＵＮＩＸ（登録商標）、ＧＯＯＧＬＥ  ＣＨＲＯＭＥ  ＯＳ、ＧＯＯＧＬＥのＡＮＤＲＯＩＤ（登録商標）、ＳＯＬＡＲＩＳ、それらのうちの１つ以上の変形形態、及び／又は任意の他の好適なオペレーティングシステムが挙げられる。
【００６１】
特定の実施形態では、例示的なコンピューティングシステム５１０はまた、プロセッサ５１４及びシステムメモリ５１６に加えて、１つ以上の構成要素又は要素も含み得る。例えば、図５に示すように、コンピューティングシステム５１０は、メモリコントローラ５１８、入力／出力（Ｉ／Ｏ）コントローラ５２０、及び通信インターフェース５２２を含み得、これらのそれぞれは、通信基盤５１２を介して相互接続され得る。通信基盤５１２は、一般に、コンピューティングデバイスの１つ以上の構成要素間の通信を容易にすることができる、任意のタイプ又は形態の基盤を表す。通信基盤５１２の例としては、非限定的に、通信バス（業界標準アーキテクチャ（ＩＳＡ）、周辺装置相互接続（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩｅ）、又は類似のバスなど）、及びネットワークが挙げられる。
【００６２】
メモリコントローラ５１８は、一般に、メモリ若しくはデータを扱うこと、又はコンピューティングシステム５１０の１つ以上の構成要素間の通信を制御すること、ができる、任意のタイプ又は形態のデバイスを表す。例えば、特定の実施形態では、メモリコントローラ５１８は、通信基盤５１２を介して、プロセッサ５１４、システムメモリ５１６、及びＩ／Ｏコントローラ５２０の間の通信を制御してもよい。
【００６３】
Ｉ／Ｏコントローラ５２０は、一般に、コンピューティングデバイスの入出力機能を調整及び／又は制御することができる、任意のタイプ又は形態のモジュールを表す。例えば、特定の実施形態では、Ｉ／Ｏコントローラ５２０は、プロセッサ５１４、システムメモリ５１６、通信インターフェース５２２、ディスプレイアダプタ５２６、入力インターフェース５３０、及び記憶インターフェース５３４など、コンピューティングシステム５１０の１つ以上の要素間におけるデータの転送を制御又は容易にし得る。
【００６４】
図５に示すように、コンピューティングシステム５１０はまた、ディスプレイアダプタ５２６を介してＩ／Ｏコントローラ５２０に連結された少なくとも１つのディスプレイデバイス５２４も含み得る。ディスプレイデバイス５２４は、一般に、ディスプレイアダプタ５２６によって転送された情報を視覚的に表示することができる、任意のタイプ又は形態のデバイスを表す。同様に、ディスプレイアダプタ５２６は、一般に、ディスプレイデバイス５２４上に表示するために通信基盤５１２から（又は当該技術分野において既知であるように、フレームバッファから）グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形態のデバイスを表す。
【００６５】
図５に示すように、例示的なコンピューティングシステム５１０はまた、入力インターフェース５３０を介してＩ／Ｏコントローラ５２０に連結された少なくとも１つの入力デバイス５２８も含み得る。入力デバイス５２８は、一般に、コンピュータ又は人間のいずれかが生成した入力を例示的なコンピューティングシステム５１０に提供することができる任意のタイプ又は形態の入力デバイスを表す。入力デバイス５２８の例としては、非限定的に、キーボード、ポインティングデバイス、音声認識デバイス、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は任意の他の入力デバイスが挙げられる。
【００６６】
それに加えて、又は代替的に、例示的なコンピューティングシステム５１０は、追加のＩ／Ｏデバイスを含み得る。例えば、例示的なコンピューティングシステム５１０は、Ｉ／Ｏデバイス５３６を含み得る。この実施例では、Ｉ／Ｏデバイス５３６は、コンピューティングシステム５１０との人間の相互作用を容易にするユーザインターフェースを含み得る及び／又はそれを表し得る。Ｉ／Ｏデバイス５３６の例としては、非限定的に、コンピュータマウス、キーボード、モニタ、プリンタ、モデム、カメラ、スキャナ、マイクロフォン、タッチスクリーンデバイス、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は任意の他のＩ／Ｏデバイスが挙げられる。
【００６７】
通信インターフェース５２２は、例示的なコンピューティングシステム５１０と１つ以上の追加のデバイスとの間の通信を容易にすることができる、任意のタイプ又は形態の通信デバイス又はアダプタを幅広く表す。例えば、特定の実施形態では、通信インターフェース５２２は、コンピューティングシステム５１０と、追加のコンピューティングシステムを含む私設又は公衆ネットワークとの間の通信を容易にし得る。通信インターフェース５２２の例としては、非限定的に、有線ネットワークインターフェース（ネットワークインターフェースカードなど）、無線ネットワークインターフェース（無線ネットワークインターフェースカードなど）、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも１つの実施形態では、通信インターフェース５２２は、インターネットなどのネットワークへの直接リンクを介してリモートサーバへの直接接続を提供し得る。通信インターフェース５２２はまた、例えば、ローカルエリアネットワーク（イーサネット（登録商標）ネットワークなど）、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラー電話接続、衛星データ接続、又は他の任意の好適な接続を通して、このような接続を間接的に提供してもよい。
【００６８】
特定の実施形態では、通信インターフェース５２２はまた、外部バス又は通信チャネルを介したコンピューティングシステム５１０と１つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されたホストアダプタも表し得る。ホストアダプタの例としては、非限定的に、小型コンピュータシステムインターフェース（Small Computer System Interface、ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（Universal Serial Bus、ＵＳＢ）ホストアダプタ、米国電気電子学会（Institute of Electrical and Electronics Engineers、ＩＥＥＥ）１３９４ホストアダプタ、アドバンストテクノロジーアタッチメント（Advanced Technology Attachment、ＡＴＡ）、パラレルＡＴＡ（Parallel ATA、ＰＡＴＡ）、シリアルＡＴＡ（Serial ATA、ＳＡＴＡ）、及び外部ＳＡＴＡ（External SATA、ｅＳＡＴＡ）ホストアダプタ、ファイバーチャネルインターフェースアダプタ、イーサネット（登録商標）アダプタなどが挙げられる。通信インターフェース５２２はまた、コンピューティングシステム５１０が分散型又はリモートコンピューティングに関与することを可能にしてもよい。例えば、通信インターフェース５２２は、実行のために、リモートデバイスから命令を受信しても、リモートデバイスに命令を送信してもよい。
【００６９】
いくつかの実施例では、システムメモリ５１６は、プロセッサ５１４による実行のために、ネットワーク通信プログラム５３８を記憶及び／又はロードし得る。一実施例では、ネットワーク通信プログラム５３８は、コンピューティングシステム５１０が、別のコンピューティングシステム（図５には図示せず）とのネットワーク接続５４２を確立すること、及び／又は通信インターフェース５２２を介して他のコンピューティングシステムと通信すること、を可能にする、ソフトウェアを含み得る及び／又はそれを表し得る。この実施例では、ネットワーク通信プログラム５３８は、ネットワーク接続５４２を介して他のコンピューティングシステムに送信される発信トラフィックの流れを指示し得る。それに加えて、又は代替的に、ネットワーク通信プログラム５３８は、プロセッサ５１４と関連してネットワーク接続５４２を介して他のコンピューティングシステムから受信された着信トラフィックの処理を指示し得る。
【００７０】
図５にはこのようには示されていないが、ネットワーク通信プログラム５３８は、代替的に、通信インターフェース５２２に記憶及び／又はロードされ得る。例えば、ネットワーク通信プログラム５３８は、通信インターフェース５２２に組み込まれたプロセッサ及び／又は特定用途向け集積回路（ＡＳＩＣ）によって実行されるソフトウェア及び／又はファームウェアの少なくとも一部分を含み得る及び／又はそれを表し得る。
【００７１】
図５に示すように、例示的なコンピューティングシステム５１０はまた、記憶インターフェース５３４を介して通信基盤５１２に連結された、一次記憶デバイス５３２及びバックアップ記憶デバイス５３３も含み得る。記憶デバイス５３２及び５３３は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。例えば、記憶デバイス５３２及び５３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであり得る。記憶インターフェース５３４は、一般に、記憶デバイス５３２及び５３３とコンピューティングシステム５１０の他の構成要素との間でデータを転送するための、任意のタイプ又は形態のインターフェース又はデバイスを表す。
【００７２】
特定の実施形態では、記憶デバイス５３２及び５３３は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成された取り外し可能な記憶ユニットから読み取る及び／又はそれに書き込むように構成され得る。好適な取り外し可能な記憶ユニットの例としては、非限定的に、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス５３２及び５３３はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令がコンピューティングシステム５１０内にロードされることを可能にするための、他の同様の構造体又はデバイスを含んでもよい。例えば、記憶デバイス５３２及び５３３は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み書きするように構成され得る。記憶デバイス５３２及び５３３はまた、コンピューティングシステム５１０の一部であってもよく、又は他のインターフェースシステムを通してアクセスされる別個のデバイスであってもよい。
【００７３】
他の多くのデバイス又はサブシステムが、コンピューティングシステム５１０に接続され得る。反対に、図５に示す構成要素及びデバイスの全てが、本明細書に記載及び／又は図示される実施形態を実践するために存在する必要があるわけではない。上記で言及したデバイス及びサブシステムはまた、図５に示されるものとは異なる手段で相互接続されてもよい。コンピューティングシステム５１０はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を用いてもよい。例えば、本明細書で開示する例示的な実施形態のうちの１つ以上は、コンピュータ可読媒体上で、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される）としてコード化されてもよい。「コンピュータ可読媒体」という用語は、本明細書で使用するとき、一般に、コンピュータ可読命令を格納又は保有することができる、任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、非限定的に、搬送波などの伝送型媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク）、光学記憶媒体（例えば、コンパクトディスク（Compact Disk、ＣＤ）、デジタルビデオディスク（Digital Video Disk、ＤＶＤ）、及びブルーレイ（BLU-RAY）ディスク）、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュメディア）、並びに他の分散システムなどの非一時的媒体が挙げられる。
【００７４】
コンピュータプログラムを包含するコンピュータ可読媒体は、コンピューティングシステム５１０内にロードされ得る。コンピュータ可読媒体に記憶されたコンピュータプログラムのうちの全て又は一部は、次いで、システムメモリ５１６内に、並びに／又は記憶デバイス５３２及び５３３の様々な部分内に記憶され得る。プロセッサ５１４によって実行されるとき、コンピューティングシステム５１０内にロードされたコンピュータプログラムは、プロセッサ５１４に、本明細書に記載及び／若しくは図示される例示的な実施形態のうちの１つ以上の機能を実施させ得、並びに／又はそれらを実施するための手段とならせ得る。それに加えて、又は代替的に、本明細書に記載及び／又は図示される例示的な実施形態のうちの１つ以上は、ファームウェア及び／又はハードウェアに実装されてもよい。例えば、コンピューティングシステム５１０は、本明細書に開示される例示的な実施形態のうちの１つ以上を実装するように適合された特定用途向け集積回路（ＡＳＩＣ）として構成され得る。
【００７５】
図６は、クライアントシステム６１０、６２０、及び６３０、並びにサーバ６４０及び６４５がネットワーク６５０に連結され得る例示的なネットワークアーキテクチャ６００のブロック図である。上で詳述したように、ネットワークアーキテクチャ６００のうちの全て又は一部は、単独で又は他の要素と組み合わせてのいずれかで、本明細書に開示されるステップのうちの１つ以上（図３に示されるステップのうちの１つ以上など）を実施し得、及び／又はそれを実施するための手段であり得る。ネットワークアーキテクチャ６００のうちの全て又は一部はまた、本開示に記載される他のステップ及び特徴を実施するために使用されてもよく、並びに／又はそれを実施するための手段であってもよい。
【００７６】
クライアントシステム６１０、６２０、及び６３０は、一般に、図５の例示的なコンピューティングシステム５１０など、任意のタイプ又は形態のコンピューティングデバイス又はシステムを表す。同様に、サーバ６４０及び６４５は、一般に、様々なデータベースサービスを提供する及び／又は特定のソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを表す。ネットワーク６５０は、一般に、例えば、イントラネット、ＷＡＮ、ＬＡＮ、ＰＡＮ、又はインターネットを含む、任意の電気通信ネットワーク又はコンピュータネットワークを表す。一実施例では、クライアントシステム６１０、６２０、及び／若しくは６３０、並びに／又はサーバ６４０及び／若しくは６４５は、図１のシステム１００のうちの全て又は一部を含み得る。
【００７７】
図６に示すように、１つ以上の記憶デバイス６６０（１）〜（Ｎ）は、サーバ６４０に直接取り付けられ得る。同様に、１つ以上の記憶デバイス６７０（１）〜（Ｎ）は、サーバ６４５に直接取り付けられ得る。記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。特定の実施形態では、記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）は、ネットワークファイルシステム（ＮＦＳ）、サーバメッセージブロック（ＳＭＢ）、又は共通インターネットファイルシステム（ＣＩＦＳ）などの様々なプロトコルを使用してサーバ６４０及び６４５と通信するように構成されたネットワーク接続ストレージ（ＮＡＳ）デバイスを表し得る。
【００７８】
サーバ６４０及び６４５はまた、ストレージエリアネットワーク（ＳＡＮ）ファブリック６８０に接続されてもよい。ＳＡＮファブリック６８０は、一般に、複数の記憶デバイス間の通信を容易にすることができる、任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを表す。ＳＡＮファブリック６８０は、サーバ６４０及び６４５と、複数の記憶デバイス６９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ６９５と、の間の通信を容易にし得る。ＳＡＮファブリック６８０はまた、記憶デバイス６９０（１）〜（Ｎ）及びインテリジェント記憶アレイ６９５が、クライアントシステム６１０、６２０、及び６３０にローカルに取り付けられたデバイスとして現れるような方式で、ネットワーク６５０並びにサーバ６４０及び６４５を介して、クライアントシステム６１０、６２０、及び６３０と、記憶デバイス６９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ６９５と、の間の通信を容易にし得る。記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）と同様に、記憶デバイス６９０（１）〜（Ｎ）及びインテリジェント記憶アレイ６９５は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。
【００７９】
特定の実施形態では、図５の例示的なコンピューティングシステム５１０を参照すると、図５の通信インターフェース５２２などの通信インターフェースは、各クライアントシステム６１０、６２０、及び６３０とネットワーク６５０との間の接続を提供するために使用され得る。クライアントシステム６１０、６２０、及び６３０は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ６４０又は６４５上の情報にアクセスすることが可能であり得る。かかるソフトウェアは、クライアントシステム６１０、６２０、及び６３０が、サーバ６４０、サーバ６４５、記憶デバイス６６０（１）〜（Ｎ）、記憶デバイス６７０（１）〜（Ｎ）、記憶デバイス６９０（１）〜（Ｎ）、又はインテリジェント記憶アレイ６９５によってホストされたデータにアクセスすることを可能にし得る。図６は、データを交換するために（インターネットなどの）ネットワークを使用することを示しているが、本明細書に記載及び／又は図示される実施形態は、インターネット又は任意の特定のネットワークベースの環境に限定されない。
【００８０】
少なくとも１つの実施形態では、本明細書に開示される例示的な実施形態のうちの１つ以上の全て又は一部は、コンピュータプログラムとしてコード化され、サーバ６４０、サーバ６４５、記憶デバイス６６０（１）〜（Ｎ）、記憶デバイス６７０（１）〜（Ｎ）、記憶デバイス６９０（１）〜（Ｎ）、インテリジェント記憶アレイ６９５、又はこれらの任意の組み合わせ上にロードされ、これらによって実行され得る。本明細書に開示される例示的な実施形態のうちの１つ以上の全て又は一部はまた、コンピュータプログラムとしてコード化され、サーバ６４０に記憶され、サーバ６４５によって実行され、ネットワーク６５０を通じてクライアントシステム６１０、６２０、及び６３０に分散されてもよい。
【００８１】
上で詳述したように、コンピューティングシステム５１０及び／又はネットワークアーキテクチャ６００の１つ以上の構成要素は、単独で又は他の要素と組み合わせてのいずれかで、サーバ上の脆弱性を検出するための例示的な方法の１つ以上のステップを実施し得、及び／又はそれを実施するための手段であり得る。
【００８２】
前述の開示は、特定のブロック図、フローチャート、及び実施例を使用して様々な実施形態を記載しているが、本明細書に記載及び／又は図示されるそれぞれのブロック図の構成要素、フローチャートの工程、動作、及び／又は構成要素は、個別にかつ／又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア（若しくはそれらの任意の組み合わせ）の構成を使用して実装されてもよい。それに加えて、同じ機能性を達成するように他の多くのアーキテクチャを実装することができるので、他の構成要素内に包含される構成要素のいかなる開示も、本質的に例示と見なされるべきである。
【００８３】
いくつかの実施例では、図１の例示的なシステム１００のうちの全て又は一部は、クラウドコンピューティング環境又はネットワークベースの環境の一部を表してもよい。クラウドコンピューティング環境は、インターネットを介して、様々なサービス及びアプリケーションを提供してもよい。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしての基盤など）は、ウェブブラウザ又は他のリモートインターフェースを通してアクセス可能であってもよい。本明細書に記載される様々な機能は、リモートデスクトップ環境又は他の任意のクラウドベースのコンピューティング環境を通して提供されてもよい。
【００８４】
様々な実施形態では、図１の例示的なシステム１００のうちの全て又は一部は、クラウドベースのコンピューティング環境内におけるマルチテナンシーを容易にしてもよい。換言すれば、本明細書に記載されるソフトウェアモジュールは、本明細書に記載される機能のうちの１つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成してもよい。例えば、本明細書に記載されるソフトウェアモジュールのうちの１つ以上は、２つ以上のクライアント（例えば、顧客）がサーバ上で作動しているアプリケーションを共有するのを可能にするように、サーバをプログラムしてもよい。このようにプログラムされたサーバは、複数の顧客（即ち、テナント）の間で、アプリケーション、オペレーティングシステム、処理システム、及び／又は記憶システムを共有してもよい。本明細書に記載されるモジュールのうちの１つ以上はまた、ある顧客が別の顧客のデータ及び／又は設定情報にアクセスできないように、顧客ごとにマルチテナントアプリケーションのデータ及び／又は設定情報を分割してもよい。
【００８５】
様々な実施形態によれば、図１の例示的なシステム１００のうちの全て又は一部は、仮想環境内で実装されてもよい。例えば、本明細書に記載されるモジュール及び／又はデータは、仮想機械内で常駐及び／又は実行してもよい。本明細書で使用するとき、「仮想機械」という用語は、一般に、仮想機械マネージャ（例えば、ハイパーバイザ）によってコンピューティングハードウェアから抽出される、任意のオペレーティングシステム環境を指す。それに加えて、又は代替的に、本明細書に記載されるモジュール及び／又はデータは、仮想化層内で常駐及び／又は実行してもよい。本明細書で使用するとき、「仮想化層」という用語は、一般に、オペレーティングシステム環境にオーバーレイする、並びに／あるいはそこから抽出される、任意のデータ層及び／又はアプリケーション層を指す。仮想化層は、基礎となる基本オペレーティングシステムの一部であるかのように仮想化層を提示する、ソフトウェア仮想化ソリューション（例えば、ファイルシステムフィルタ）によって管理されてもよい。例えば、ソフトウェア仮想化ソリューションは、最初に基本ファイルシステム及び／又はレジストリ内の場所に方向付けられる呼び出しを、仮想化層内の場所にリダイレクトしてもよい。
【００８６】
いくつかの実施例では、図１の例示的なシステム１００のうちの全て又は一部は、モバイルコンピューティング環境の部分を表してもよい。モバイルコンピューティング環境は、携帯電話、タブレットコンピュータ、電子ブックリーダ、携帯情報端末、ウェアラブルコンピューティングデバイス（例えば、ヘッドマウントディスプレイを有するコンピューティングデバイス、スマートウォッチなど）などを含む、広範なモバイルコンピューティングデバイスによって実装されてもよい。いくつかの実施例では、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間での１つのみのフォアグラウンドアプリケーションの提示、リモート管理特性、タッチスクリーン特性、位置及び移動データ（例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される）、システムレベルの構成への修正を制限する、及び／又は第３者のソフトウェアが他のアプリケーションの挙動を検査する能力を限定する制限されたプラットフォーム、アプリケーションのインストールを（例えば、認可されたアプリケーションストアからのみ生じるように）制限する制御などを含む、１つ以上の個別の特性を有することができる。本明細書で説明される様々な機能は、モバイルコンピューティング環境に対して提供され得る、及び／又はモバイルコンピューティング環境と相互作用し得る。
【００８７】
それに加えて、図１の例示的なシステム１００のうちの全て又は一部は、情報管理のための１つ以上のシステムの部分を表してもよく、それと相互作用してもよく、それによって生成されるデータを消費してもよく、かつ／又はそれによって消費されるデータを生成してもよい。本明細書で使用するとき、「情報管理」という用語は、データの保護、組織化、及び／又は記憶を指してもよい。情報管理のためのシステムの例としては、非限定的に、記憶システム、バックアップシステム、アーカイブシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどを挙げることができる。
【００８８】
一部の実施形態では、図１の例示的なシステム１００のうちの全て又は一部は、情報セキュリティのための１つ以上のシステムの部分を表してもよく、それによって保護されるデータを生成してもよく、かつ／又はそれと通信してもよい。本明細書で使用するとき、「情報セキュリティ」という用語は、保護されたデータに対するアクセスの制御を指してもよい。情報セキュリティのためのシステムの例としては、非限定的に、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、本人認証システム、アクセス制御システム、暗号化システム、ポリシー遵守システム、侵入検出及び防止システム、電子証拠開示システムなどを挙げることができる。
【００８９】
いくつかの実施例によれば、図１の例示的なシステム１００のうちの全て又は一部は、エンドポイントセキュリティのための１つ以上のシステムの部分を表してもよく、それと通信してもよく、かつ／又はそれから保護を受けてもよい。本明細書で使用するとき、「エンドポイントセキュリティ」という用語は、不正及び／若しくは違法な使用、アクセス、並びに／又は制御からのエンドポイントシステムの保護を指してもよい。エンドポイント保護のためのシステムの例としては、非限定的に、アンチマルウェアシステム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどを挙げることができる。
【００９０】
本明細書に記載及び／又は図示されるプロセスパラメータ及び工程の順序は、単なる例として与えられるものであり、所望に応じて変更することができる。例えば、本明細書に図示及び／又は記載される工程は特定の順序で図示又は考察されることがあるが、これらの工程は、必ずしも図示又は考察される順序で実施される必要はない。本明細書に記載される及び／又は図示される様々な例示的な方法はまた、本明細書に記載される及び／又は図示される工程のうちの１つ以上を省略してもよく、又は開示されるものに加えて追加の工程を含んでもよい。
【００９１】
種々の実施形態が、完全に機能的なコンピューティングシステムに関連して本明細書に記載され及び／又は図示されているが、これら例示的な実施形態のうちの１つ以上は、実際に配布を行うために使用されるコンピュータ可読記憶媒体の特定のタイプに関わらず、多様な形態のプログラム製品として配布され得る。本明細書に開示される実施形態はまた、特定のタスクを実施するソフトウェアモジュールを使用して実装されてもよい。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体又はコンピューティングシステムに記憶されてもよい、スクリプト、バッチ、若しくは他の実行可能ファイルを含んでもよい。一部の実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態のうちの１つ以上を実施するようにコンピューティングシステムを構成してもよい。
【００９２】
それに加えて、本明細書に記載されるモジュールのうちの１つ以上は、データ、物理的デバイス、及び／又は物理的デバイスの表現を、１つの形態から別の形態へと変換してもよい。例えば、本明細書に列挙されるモジュールの１つ以上は、変換されるサービスバナーデータを受信し、サービスバナーデータをヒューリスティックで解析することによってサービスバナーデータを変換し、変換の結果を脆弱性リストとして出力し、変換の結果を使用してサーバ内の脆弱性を識別し、変換の結果をメモリに記憶してもよい。それに加えて、又は代替的に、本明細書に列挙されるモジュールのうちの１つ以上は、コンピューティングデバイス上で実行し、コンピューティングデバイスにデータを格納し、並びに／あるいは別の方法でコンピューティングデバイスと相互作用することによって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び／又は物理的コンピューティングデバイスの他の任意の部分を、１つの形態から別の形態へと変換してもよい。
【００９３】
上述の記載は、本明細書に開示される例示的な実施形態の様々な態様を他の当業者が最良に利用するのを可能にするために提供されてきた。この例示的な記載は、網羅的であることを意図するものではなく、又は開示される任意の正確な形態に限定することを意図するものではない。本開示の趣旨及び範囲から逸脱することなく、多くの修正及び変形が可能である。本明細書に開示される実施形態は、あらゆる点で例示的であり、限定的ではないものと見なされるべきである。本開示の範囲を決定する際に、添付の特許請求の範囲及びそれらの等価物を参照するべきである。
【００９４】
別途記載のない限り、「〜に接続される」及び「〜に連結される」という用語（並びにそれらの派生語）は、本明細書及び特許請求の範囲で使用するとき、直接的接続及び間接的接続（即ち、他の要素若しくは構成要素を介する）の両方を許容するものとして解釈されるものである。それに加えて、「ａ」又は「ａｎ」という用語は、本明細書及び特許請求の範囲で使用するとき、「〜のうち少なくとも１つ」を意味するものとして解釈されるものである。最後に、簡潔にするため、「含む」及び「有する」という用語（並びにそれらの派生語）は、本明細書及び特許請求の範囲で使用するとき、「備える」という単語と互換性があり、同じ意味を有する。
【図１】
0006957657.tif 000002
【図２】
0006957657.tif 000003
【図３】
0006957657.tif 000004
【図４】
0006957657.tif 000005
【図５】
0006957657.tif 000006
【図６】
0006957657.tif 000007