(57)【要約】      （修正有）【課題】レガシーアプリケーション用のコミュニティ検査済みセキュリティ機能を有効化する。【解決手段】クライアント１１０（１）〜１１０（Ｙ）の例えば部分集合１４２にインストールされたクライアントモジュールは、サーバー１３０からのセキュリティ機能有効化ルールを受信し、実行することにより、レガシーアプリケーション用の少なくとも１つのセキュリティ機能を有効化する。クライアントモジュールは、有効化されたセキュリティ機能がレガシーアプリケーションの安定性、性能、または機能性に悪影響を与えるか否かを決定し、セキュリティ機能有効化ルールの影響を識別する情報をサーバーに伝える。サーバーは、この情報に基づいて、複数のクライアントシステム１４０にセキュリティ機能有効化ルールを公開するか否かを決定する。【選択図】図１
2010176658.tif 000002
【特許請求の範囲】
【請求項１】
レガシーアプリケーション用のコミュニティ検査済のセキュリティ機能を有効化することをコンピュータで実現する方法において、
クライアントシステムにおけるレガシーアプリケーションを識別するステップと、
前記レガシーアプリケーション用のセキュリティ機能有効化ルールを識別するステップと、
前記セキュリティ機能有効化ルールを実行することにより、前記レガシーアプリケーション用の少なくとも１つのセキュリティ機能を有効化するステップと、
前記レガシーアプリケーションの調子に対する前記セキュリティ機能有効化ルールの影響を決定するステップと、
前記レガシーアプリケーションの調子に対する前記セキュリティ機能有効化ルールの影響をサーバーに中継するステップと
を有する方法。
【請求項２】
請求項１に記載の方法において、前記レガシーアプリケーション用のセキュリティ機能有効化ルールを識別するステップは、前記セキュリティ機能有効化ルールを前記サーバーから受信するステップを有する、方法。
【請求項３】
請求項１に記載の方法において、前記レガシーアプリケーションの調子に対する前記セキュリティ機能有効化ルールの影響を決定するステップは、
前記セキュリティ機能有効化ルールを実行する前に第１調子評価を実施するステップと、
前記セキュリティ機能有効化ルールを実行した後に第２調子評価を実施するステップと、
前記第２調子評価を前記第１調子評価と比較して、前記セキュリティ機能有効化ルールが前記レガシーアプリケーションの調子に対してどのように影響したかを決定するステップと
を有する、方法。
【請求項４】
請求項１に記載の方法において、さらに、前記セキュリティ機能有効化ルールを識別するステップの前に、セキュリティ機能有効化ルールの初期検査を選択するユーザーからのリクエストを識別するステップを有する、方法。
【請求項５】
請求項１に記載の方法において、さらに、前記クライアントシステムにおける各レガシーアプリケーションを識別するリストを前記サーバーに送信するステップを有する、方法。
【請求項６】
請求項１に記載の方法において、前記セキュリティ機能有効化ルールは、セキュリティ機能有効化ルールの特定の組合せを有する、方法。
【請求項７】
請求項１に記載の方法において、さらに、
前記レガシーアプリケーション用のセキュリティ機能有効化ルールを無効化する命令を前記サーバーから受信するステップと、
前記レガシーアプリケーション用のセキュリティ機能有効化ルールを無効化するステップと
を有する、方法。
【請求項８】
請求項１に記載の方法において、前記セキュリティ機能有効化ルールを実行するステップは、
前記レガシーアプリケーションの起動を識別するステップと、
前記レガシーアプリケーション用のセキュリティ環境設定を検索するステップと、
前記セキュリティ機能有効化ルールよって特定されるように、前記セキュリティ環境設定におけるセキュリティ機能を有効化するステップと
を有する、方法。
【請求項９】
レガシーアプリケーション用のコミュニティ検査済のセキュリティ機能を有効化することをコンピュータで実現する方法において、
複数のクライアントシステムを識別するステップと、
レガシーアプリケーション用のセキュリティ機能を検査するように指名された前記複数のクライアントシステムの部分集合を識別するステップと、
前記部分集合内の少なくとも１つのクライアントシステムにセキュリティ機能有効化ルールを送信するステップと、
前記クライアントシステムにおけるレガシーアプリケーションの調子に対するセキュリティ機能有効化ルールの影響を識別する調子影響情報を、前記部分集合のクライアントシステムから受信するステップと、
前記調子影響情報に基づいて、複数のクライアントシステムに前記セキュリティ機能有効化ルールを公開するか否かを決定するステップと
を有する方法。
【請求項１０】
請求項９に記載の方法において、さらに、
前記セキュリティ機能有効化ルールが前記レガシーアプリケーションの調子に悪影響を与えないことを決定するステップと、
前記複数のクライアントシステムに対して前記セキュリティ機能有効化ルールの段階的公開を開始するステップと
を有する、方法。
【請求項１１】
請求項１０に記載の方法において、さらに、
前記複数のクライアントシステム内における少なくとも１つの追加クライアントシステムから、前記セキュリティ機能有効化ルールの調子影響情報を受信するステップと、
前記セキュリティ機能有効化ルールが、前記追加クライアントシステムにおけるレガシーアプリケーションの調子に悪影響を与えること決定するステップと、
前記セキュリティ機能有効化ルールの段階的公開を中止するステップと
を有する、方法。
【請求項１２】
請求項１０に記載の方法において、前記段階的公開を開始するステップは、前記複数のクライアントシステムを網羅するまで、多段階に増分ごとにセキュリティ機能有効化ルールの配布を増加させるステップを有する、方法。
【請求項１３】
請求項９に記載の方法において、前記セキュリティ機能有効化ルールは、複数のセキュリティ機能有効化ルールの、特定の組合せを有する、方法。
【請求項１４】
請求項９に記載の方法において、前記調子影響情報は、
少なくとも１つの性能メトリックの結果を含む性能インデックスと、
少なくとも１つの安定性メトリックの結果を含む安定性インデックスと
を有する、方法。
【請求項１５】
レガシーアプリケーション用のコミュニティ検査済みセキュリティ機能有効化ルールを有効化するシステムにおいて、クライアントモジュールであって、以下のことを行う、すなわち、
クライアントシステムにおけるレガシーアプリケーションを識別し、
前記レガシーアプリケーション用のセキュリティ機能有効化ルールを識別し、
前記セキュリティ機能有効化ルールを実行することにより、前記レガシーアプリケーション用の少なくとも１つのセキュリティ機能を有効化し、
前記レガシーアプリケーションの調子に対する前記セキュリティ機能有効化ルールの影響を決定し、
前記レガシーアプリケーションの調子に対する前記セキュリティ機能有効化ルールの影響をサーバーに中継する、
ようプログラムした、
該クライアントモジュールを備えるシステム。
【請求項１６】
請求項１５に記載のシステムにおいて、さらに、サーバーモジュールであって、以下のことを行う、すなわち、
複数のクライアントシステムを識別し、
レガシーアプリケーション用のセキュリティ機能を検査するように指名された前記複数のクライアントシステムの部分集合を識別し、
前記部分集合内の少なくとも１つのクライアントシステムに前記セキュリティ機能有効化ルールを送信し、
前記クライアントシステムにおけるレガシーアプリケーションの調子に対する前記セキュリティ機能有効化ルールの影響を識別する調子影響情報を、前記部分集合のクライアントシステムから受信し、
前記調子影響情報に基づいて、前記複数のクライアントシステムに前記セキュリティ機能有効化ルールを公開するか否かを決定する、
ようにプログラムした、該サーバーモジュールを備える、システム。
【請求項１７】
請求項１６に記載のシステムにおいて、前記サーバーモジュールは、さらに
前記セキュリティ機能有効化ルールが前記レガシーアプリケーションの調子に悪影響を与えないことを決定し、
前記複数のクライアントシステムに前記セキュリティ機能有効化ルールの段階的公開を開始する
ようにプログラムした、システム。
【請求項１８】
請求項１７に記載のシステムにおいて、前記サーバーモジュールは、さらに
前記複数のクライアントシステムのうち少なくとも１つの追加クライアントシステムから、前記セキュリティ機能有効化ルールについての調子影響情報を受信し、
前記セキュリティ機能有効化ルールが前記追加クライアントシステムにおけるレガシーアプリケーションの調子に悪影響を与えることを決定し、
前記セキュリティ機能有効化ルールの段階的公開を中止する
ようにプログラムした、システム。
【請求項１９】
請求項１７に記載のシステムにおいて、前記段階的公開は、前記複数のクライアントシステムを網羅するまで、多段階で増分ごとにセキュリティ機能有効化ルールの配布を増加させるステップを有する、システム。
【請求項２０】
請求項１５に記載のシステムにおいて、前記セキュリティ機能有効化ルールは、複数のセキュリティ機能有効化ルールの、特定の組合せを有する、システム。
【発明の詳細な説明】
【背景技術】
【０００１】
消費者および企業は、よくレガシーアプリケーションに信頼を置く。レガシーアプリケーションは、実績があり且つ安価であり、経験または作業手順の継続性を提供することができる。しかし、レガシーアプリケーションは、それらが動作するシステムの新機能を活用するための更新がなされないことがある。この新機能としては、レガシーアプリケーションにおけるセキュリティ突破、例えばヒープ破壊（コラプション）を防ぐことができる新しいセキュリティ機能がある。
【０００２】
たとえ、新しいセキュリティ機能がレガシーアプリケーションで有効となったとしても、その新しいセキュリティ機能がアプリケーションの機能性および安定性を妨げるかもしれない。アプリケーションベンダーが提供するレガシーアプリケーション毎の、新しいセキュリティ機能をそれぞれアプリケーションベンダーが検査するとしても、それはコスト的に負担となる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、レガシーアプリケーションのためにコミュニティ検査済みセキュリティ機能を可能にするための方法およびシステムを意図する。
【課題を解決するための手段】
【０００４】
種々の実施例は、複数のコンピューティング装置上のクライアントモジュール、サーバー上のサーバーモジュール、およびそれらの間における相互作用について説明する。以下のより詳細な説明に記載されるように、これらモジュールを使用して、レガシーアプリケーションに対して遡及的にセキュリティ機能を可能にし、またこれらの新しいセキュリティ機能の導入が、レガシーアプリケーションの安定性、性能または機能性（包括的に「調子」と称する）に悪影響を与えるか否かを検査する。１つの例では、ユーザーのコミュニティ全体内でセキュリティ機能を有効化する前に、セキュリティ機能の初期検査を選択したユーザーの部分集合に対してレガシーアプリケーション用のセキュリティ機能またはセキュリティ機能の組合せを初めにシステムが検査することができる。もし、新しいセキュリティ機能が、ユーザーの部分集合でシステムにおけるレガシーアプリケーションの調子に悪影響を与えない場合、システムは、コミュニティ内におけるユーザー数を増加させるよう、そのセキュリティ機能の段階的公開を開始することができる。
【０００５】
例えば、上述のクライアントモジュールは、１）クライアントシステムにおけるレガシーアプリケーションの起動を識別し、２）このレガシーアプリケーション用のセキュリティ機能有効化ルール（例えばサーバーから受信した）を識別し、３）このセキュリティ機能有効化ルールを実行することによってレガシーアプリケーション用の少なくとも１つのセキュリティ機能を有効化するようプログラムすることができる。１つの実施例では、セキュリティ機能有効化ルールは、特定のレガシーアプリケーション用のセキュリティ機能またはその組合せを有効化することができる。
【０００６】
セキュリティ機能有効化ルールを実行した後に、クライアントモジュールはレガシーアプリケーションの調子に対するセキュリティ機能有効化ルールの影響を決定することができる。ある実施例では、クライアントモジュールは、１）セキュリティ機能有効化ルールを実行する前に、（例えばレガシーアプリケーションの性能または安定性を決定するための）第１アプリケーション調子評価を実施し、２）セキュリティ機能有効化ルールを実行した後に、第２アプリケーション調子評価を実施し、またつぎに３）第１アプリケーション調子評価と第２アプリケーション調子評価とを比較することにより、セキュリティ機能有効化ルールの影響を決定することができる。レガシーアプリケーションの調子に対するセキュリティ機能有効化ルールの影響を決定した後、クライアントモジュールは、この影響を識別する情報をサーバーに中継する（伝える）ことができる。
【０００７】
別の実施例では、サーバーモジュールは、１）クライアントモジュールを用いてユーザーのコミュニティを識別し、２）レガシーアプリケーション用のセキュリティ機能の初期検査を行うよう選択した、コミュニティ内のユーザーの部分集合を識別し、３）セキュリティ機能有効化ルールをその部分集合における少なくとも１つのクライアントシステムに転送するようプログラムすることができる。このとき、サーバーモジュールは、クライアントシステムにおけるレガシーアプリケーションの調子に対するセキュリティ機能有効化ルールの影響を識別する、部分集合内のクライアントシステムのうち少なくとも１つから調子に対する調子影響情報を受信することができる。つぎに、サーバーモジュールは、この調子影響情報を分析して、コミュニティ内の残りのユーザーに対してセキュリティ機能有効化ルールの段階的公開を開始するか否かを決定することができる。例えば、サーバーモジュールが、ユーザーの部分集合から受信した調子影響情報に基づいて、セキュリティ機能有効化ルールがアプリケーションの調子に悪影響を与えないと決定した場合、サーバーモジュールは、段階的により広いコミュニティにセキュリティ機能有効化ルールを展開し始めることができる。
【０００８】
段階的公開を開始する前または後に、サーバーモジュールが、少なくとも１つのクライアントシステムにおけるレガシーアプリケーションの調子に悪影響を与えることを示す調子影響情報を受信した場合、サーバーモジュールはセキュリティ機能有効化ルールの段階的公開を中止することができる。
【０００９】
上述した実施例のうち何れかによる特徴は、本明細書に記載する一般原理により互いに組合せて用いることができる。本発明の実施例は、先行技術に対して様々な利点を提供することができる。例えば、本明細書に記載する方法によれば、ユーザーは、本発明方法以外では有効化できない恐れがある新しいセキュリティ機能をレガシーアプリケーション上で動作させることを可能にする。本発明方法を使用するセキュリティベンダーには、他の方法よりも費用が少なくレガシーアプリケーション上で新しいセキュリティ機能を検査できるという、他の利点が得られる。これら実施例、特徴及び利点は、以下の詳細な説明を添付図面および特許請求の範囲と併せて読むことにより、より完全に理解することができるであろう。
添付図面は多くの例示的実施例を示し、明細書の一部をなす。以下の記載とともに、これら図面は本発明の様々な原理を提示しまた説明する。
【図面の簡単な説明】
【００１０】
【図１】レガシーアプリケーション用のコミュニティ検査をしたセキュリティ機能を有効化するための例示的なシステムのブロック図である。
【図２】レガシーアプリケーション用のコミュニティ検査をしたセキュリティ機能を有効化するための、コンピュータで実現する例示的な方法のフローチャートである。
【図３】少なくとも１つの実施例により実施される例示的な調子評価の結果を示すブロック図である。
【図４】他の実施例によるレガシーアプリケーション用のコミュニティ検査をしたセキュリティ機能を有効化するための、コンピュータで実現する例示的な方法のフローチャートである。
【図５】説明および／または図示される実施例のうち１つ以上を実現することができる例示的なコンピューティングシステムのブロック図である。
【図６】説明および／または図示される実施例のうち１つ以上を実現することができる例示的なコンピューティングシステムのブロック図である。
【発明を実施するための形態】
【００１１】
全ての図面にわたり、同一の参照符号および説明は、同一とは限らないが同様の構成要素を示す。本明細書に記載する例示的な実施例は、様々な変更形態および代替形態とすることができるが、本明細書では特定の実施例を、図面につき詳細に説明する。しかし、本明細書に記載する例示的実施例は、特定の開示形態に限定することを意図するものではない。むしろ、本発明は、全ての変更形態、代替形態および等価形態は添付書類の特許請求の範囲に含まれる。
【００１２】
本発明の実施例は、レガシーアプリケーション用のコミュニティ検査を経たセキュリティ機能を有効化するための様々な方法およびシステムを提供する。上述したように、サーバーは、あるセキュリティ機能を検査するようクライアントのある部分集合に命令し、また後でクライアントのコミュニティ全体にこれらの設定を公開することができる。添付図面はこのことを達成するための方法およびシステムを示す。図１は、ネットワークにわたる複数のクライアントに接続したサーバーを示す。図２は、クライアント上に存在するクライアントモジュールによって実施することができるステップを示す。図４は、サーバー上に存在するクライアントモジュールによって実施することができるステップを示す。
【００１３】
図１は、レガシーアプリケーション用のコミュニティ検査をしたセキュリティ機能を有効化するための例示的なシステム１００のブロック図である。この図に示すように、例示的なシステム１００は、ネットワーク１２０を介して複数のクライアントシステム１４０と通信するサーバー１３０を備える。
【００１４】
クライアントシステム１４０（クライアント１１０（１）〜１１０（Ｙ）により構成する）は、クライアント側コンピューティング装置の任意のタイプまたは形式を全般的に表す。クライアントシステム１４０の例としては、以下のものに限定しないが、ラップトップコンピュータ、デスクトップコンピュータ、携帯電話、携帯情報端末（ＰＤＡ）、マルチメディアプレーヤー、組込み型システム、図５に示すのと同一の例示的なコンピューティングシステム５１０の１つもしくはそれ以上の組合せ、または、任意な他のコンピューティング装置がある。同様に、サーバー１３０は、任意なタイプまたは形式の中央集中型またはサーバー側コンピューティング装置を全般的に表す。
【００１５】
ネットワーク１２０は、通信またはデータ転送を容易化することができる任意の媒体またはアーキテクチャを全般的に表す。ネットワーク１２０の例としては、以下のものに限定しないが、イントラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、インターネット、電力線通信（ＰＣＬ）、携帯電話網（例：ＧＳＭネットワーク）、図５に示す例示的なネットワークアーキテクチャ５５０等がある。ネットワーク１２０は、ワイヤレスまたは有線の接続を用いて通信またはデータ転送を容易化することができる。ある実施例では、ネットワーク１２０は、クライアント１１０（１）〜１１０（Ｙ）からなる、クライアントシステム１４０とサーバー１３０との間の通信を容易化することができる。
【００１６】
１つの例では、サーバーモジュールを、サーバー１３０にインストールすることができる。同様に、クライアントモジュールを、クライアント１１０（１）〜１１０（Ｙ）の各々にインストールすることができる。これらモジュールは、本明細書に記載するステップのうち１つ以上を実施することができる、任意のモジュール、アプリケーション、またはコンピュータ実行可能コードとすることができる。さらに、これらモジュールの１つまたはそれ以上を、サーバー１３０とクライアント１１０（１）〜１１０（Ｙ）との間で共有することができ、このことは、同一モジュールを、単独使用目的とした個別デバイス上で同時に動作するよう構成することを意味する。
【００１７】
図２は、レガシーアプリケーション用のコミュニティ検査済みセキュリティ機能を有効化するための、例示的なクライアント側方法２００のフローチャートである。この図に示すように、クライアント側モジュールは、ステップ２０２で、クライアントシステムにおけるレガシーアプリケーションを識別する。例えば、図１のクライアント１１０（１）に記憶され、動作するよう構成したクライアントモジュールは、クライアント１１０（１）におけるレガシーアプリケーションを識別することができる。
【００１８】
クライアントモジュールは、種々の方法でステップ２０２を実施することができる。１つの例では、クライアントモジュールは、クライアントシステムにおけるレガシーアプリケーションのリストを生成する、またはこのリストにアクセスすることができるようにする。他の例では、クライアントモジュールは、起動時にアプリケーションを点検し、またリストを参照して、アプリケーションメタデータを分析する、またはサーバーからの情報を要求することによって、そのアプリケーションがレガシーアプリケーションであることを決定することができる。
【００１９】
ステップ２０４で、クライアントモジュールは、レガシーアプリケーション用のセキュリティ機能有効化ルールを識別することができる。例えば、図１に示すクライアント１１０（１）におけるクライアントモジュールは、ステップ２０２で識別されたレガシーアプリケーション用のセキュリティ機能有効化ルールを識別することができる。上述したように、セキュリティ機能有効化ルールは、特定レガシーアプリケーション用のセキュリティ機能またはそれらの組合せを有効化するための、任意なタイプもしくは形式のファイル、モジュール、または他のコンピュータ読取り可能命令とすることができる。セキュリティ機能有効化ルールを有効化できるセキュリティ機能および設定の例としては、以下のものに限定しないが、特定のレガシーアプリケーションに対して権利を無効化する能力（例えば、レガシーアプリケーションが決して利用しない権利のリストを特定化することによる）、特定のレガシーアプリケーションに対するヒープ破壊（コラプション）のプロセスを停止させる能力、または、任意な他のセキュリティ機能がある。
【００２０】
クライアントモジュールは、様々な方法でステップ２０４を実行することができる。１つの例では、（上述のように、図１に示すクライアントシステム１４０のうち１つに記憶され、また動作するよう構成した）クライアントモジュールは、図１に示すサーバー１３０のような、サーバーからのセキュリティ機能有効化ルールを受信することができる。他の例では、クライアントモジュールは、クライアントシステムに記憶またはロードされた１つ以上のセキュリティ機能有効化ルールを識別することができる。この例では、クライアントモジュールは、レガシーアプリケーションを識別する際に、そのレガシーアプリケーションに関連付けられたクライアントシステムに記憶された少なくとも１つのセキュリティ機能有効化ルールを識別することができる。
【００２１】
ステップ２０６にて、クライアントモジュールは、セキュリティ機能有効化ルールを実行することにより、レガシーアプリケーション用の少なくとも１つのセキュリティ機能を有効化することができる。例えば、図１に示すクライアント１１０（１）におけるクライアントモジュールは、ステップ２０４で識別したセキュリティ機能有効化ルールを実行することにより、ステップ２０２で識別したレガシーアプリケーション用のセキュリティ機能を有効化することができる。
【００２２】
クライアントモジュールは、様々な方法でステップ２０６を実行することができる。１つの例では、クライアントモジュールは、クライアントシステム上で利用可能なセキュリティ機能を有効化させるレガシーアプリケーションのコードに命令を注入することができる。例えば、クライアントシステムは、オペレーションシステムとしてＭＩＣＲＯＳＯＦＴ  ＶＩＳＴＡ（登録商標）を用いることができ、セキュリティ機能有効化ルールはレガシーアプリケーション用のヒープ破壊（コラプション）を停止することができる。この例では、クライアントモジュールは、起動時にHeapSetInformation関数をレガシーアプリケーションコード内に注入して、そのレガシーアプリケーションに作用してヒープコラプションを停止することができるようにする。
【００２３】
他の例では、クライアントモジュールは、１）レガシーアプリケーションの起動を識別し、２）レガシーアプリケーション用のセキュリティ環境設定を検索し、３）セキュリティ機能有効化ルールによって特定されるようなセキュリティ環境設定におけるセキュリティ機能を有効化することによって、レガシーアプリケーション用のセキュリティ機能を有効化する。
【００２４】
ステップ２０８にて、クライアントモジュールは、セキュリティ機能有効化ルールがレガシーアプリケーションの調子に影響を与えるか否かを決定することができる。言い換えると、クライアントモジュールは、有効化されたセキュリティ機能がレガシーアプリケーションの安定性、性能、または機能性に悪影響を与えるか否かを決定することができる。例えば上述の例で、レガシーアプリケーションが一時的なヒープコラプションを引き起こす実害のないエラーを生じた場合、ヒープコラプション停止を実行することで、レガシーアプリケーションを使用不能にすることができる。この例では、クライアントモジュールはセキュリティ機能有効化ルールがレガシーアプリケーションの調子に悪影響を与えたと決定することができる。
【００２５】
クライアントモジュールは、様々な方法でステップ２０８を実行することができる。１つの例では、クライアントモジュールは、１）セキュリティ機能有効化ルールを実行する前に第１アプリケーション調子評価を実施し、２）セキュリティ機能有効化ルールを実行した後に第２アプリケーション調子評価を実施し、ついで３）第１および第２のアプリケーション調子評価を比較してセキュリティ機能有効化ルールがアプリケーションの調子に悪影響を与えるか否かを決定する、ことによって、セキュリティ機能有効化ルールがレガシーアプリケーションの調子に悪影響を与えるか否かを決定することができる。
【００２６】
本明細書に用いられる用語「アプリケーション調子評価」は、アプリケーションの調子を決定するのに用いる任意のタイプまたは形式の評価について全般的に言及する。アプリケーション調子評価の例としては、以下のものに限定しないが、性能評価（アプリケーションの様々な局面における性能、例えばメモリ使用量、ＣＰＵ使用量、およびページフォルトを測定する）、および安定性評価（例えば、アプリケーションが遭遇するエラーの数を測定することによってアプリケーションの安定性を測定する）がある。図３は、このような２種類のアプリケーション調子評価の結果を示す。この図に示すように、第１アプリケーション調子評価３００および第２アプリケーション調子評価３２０は、それぞれ、安定性指数３０２，３２２および性能指数３１２，３２２を有する。
【００２７】
ある実施例では、安定性指数３０２，３２２は、複数の安定性メトリクス３０４，３２４と、これらメトリクスの各々における結果３０６，３２６とを有する。安定性メトリクス３０４，３２４は、アプリケーションの安定性を測定するのに用いられる任意のタイプまたは形式のメトリクスを全般的に表す。安定性メトリクスが測定する値の例としては、以下のものに限定しないが、オペレーティングシステムエラー（例えば、ブルースクリーンエラー）、アプリケーションエラー（例えば、アプリケーションのハングまたはフリーズ）、サービスエラー、デバイスドライバエラー、システムアップタイム、システムリブート（例えば一日あたりのシステムリブート回数）がある。図３に示す例では、安定性指数３０２，３２２は、評価期間中にクライアントモジュールが識別するブルースクリーンエラーの平均回数、識別したサービスエラーの平均回数、識別したアプリケーションエラーの平均回数を列挙している。ある実施例では、これらのエラーのうち１つ以上が、ステップ２０６で実行されたセキュリティ機能有効化ルールによって生ずることがある。
【００２８】
安定性指数３０２，３２２と同様に、性能指数３１２，３３２は、複数の性能メトリクス３１４，３３４およびこれらメトリクス毎の結果３１６，３３６を有する。性能メトリクス３１４，３３４は、アプリケーションの性能を測定するのに用いられる任意のタイプまたは形式のメトリクスを全般的に表す。性能メトリックが測定する値の例としては、以下のものに限定しないが、ＣＰＵ使用量、ページフォルト、ネットワーク使用量、およびメモリ使用量がある。図３に示すように、安定性メトリック３０４，３２４および性能メトリック３１４，３３４の結果３０６，３１６，３２６，３３６は、移動平均、最大・極大値、増分値、または他の任意の適切な方法を用いて表すことができる。図３に示す例では、性能指数３１２，３３２は、評価期間中におけるアプリケーションの最大および平均のＣＰＵ使用量、評価期間中におけるアプリケーションによる最大および平均のページフォルト、評価期間中におけるアプリケーションにより送受信されたＩＰデータグラムを列挙する。
【００２９】
上述のように、クライアントモジュールは、第１アプリケーション調子評価を比較することにより、セキュリティ機能有効化ルールがアプリケーションの調子に影響を与えるか否かを決定することができる。例えば、クライアントモジュールは、図３に示す第１調子評価３００の結果を第２調子評価の結果と比較して、レガシーアプリケーション用のセキュリティ機能有効化ルールによって有効化されるセキュリティ機能（又はセキュリティ機能の組合せ）がレガシーアプリケーションの調子に悪影響を与えるか否かを決定することができる。
【００３０】
レガシーアプリケーションの調子に対する有効化したセキュリティ機能の影響は、いろいろな方法で表現または定量化できる。ある実施例では、例えば図３に示す調子影響スコア３４０などの、１つ以上の調子影響スコアは、第１調子評価３００および第２調子評価３２０の結果に基づいて計算することができる。図３に示すように、調子影響スコア３４０は、クライアントシステムにインストールしたレガシーアプリケーションの安定性（安定性影響テーブル３４２に示される結果によって表現される）および性能（性能影響テーブル３４６に示される結果によって表現される）に対して与える、有効化または投入されたセキュリティの影響を表現することができる。例えば、安定性影響テーブル３４２の結果は、レガシーアプリケーション用のセキュリティ機能（またはセキュリティ機能の組合せ）を有効化した後に、ブルースクリーンエラー、サービスエラー、および／またはアプリケーションエラーの増大率が存在するか否かを提示する。同様に、性能影響テーブル３４６の結果は、セキュリティ機能を有効化した後に、ＣＰＵ使用量、メモリ使用量、ページフォルト、および／またはネットワーク使用量の増大率が存在するか否かを提示している。
【００３１】
例えば、図３の安定性影響テーブル３４２に示される結果は、セキュリティ機能を有効化した後に、システムが経験するサービスおよびアプリケーション関連のエラーの平均回数が５０％増加することを提示している。同様に、性能影響テーブル３４６に示される結果は、セキュリティ機能を有効化した後に、平均ＣＰＵ使用量（７８．２２６％）、最大ＣＰＵ使用量（８７．９１３０％）、平均ページフォルト回数（７４．１４４０％）、最大ページフォルト回数（７５．３４３３％）、最大ＩＰデータグラム回数（１１．１１１１％）の著しい増大が存在することを提示している。
【００３２】
少なくとも１つの実施例では、安定性影響テーブル３４２に示される結果の平均をとることによって、有効化したセキュリティ機能に対する平均安定性影響スコアを計算することができる（図３に示す例では、平均安定性影響スコアは−３３．３３３３％となった）。同様に、性能影響テーブル３４６に示される結果の平均をとることにより、有効化したセキュリティ機能に対する平均性能影響スコアを計算することができる（図３に示す例では、平均性能影響スコアは−５５．５１０９％となった）。平均安定性影響スコアと平均性能影響スコアとの平均をとることにより、有効化したセキュリティ機能に対する全体的調子影響スコアを計算することができる（図３に示す例では、全体的調子影響スコアは−４４．４４２１％となった）。
【００３３】
図２に戻って説明すると、ステップ２１０では、クライアントモジュールは、レガシーアプリケーションのセキュリティ機能有効化ルールの影響を識別する情報をサーバーに伝える。例えば、図１におけるクライアントシステム１１０（１）に記憶したクライアントモジュールは、ステップ２０６で実行したセキュリティ機能有効化ルールにより有効化したセキュリティ機能が、どのようにしてレガシーアプリケーションの性能および／または機能性に影響を与えるかを評価することに関連する情報をサーバー１３０に送信することができる。ある例では、この情報（本明細書では「調子影響情報」とも称する）は、例えば図３の調子影響スコア３４０などの、調子影響スコアを表すまたは基づくものとすることができる。図２のステップ２１０が完了する際に、例示的な方法２００を終了することができる。
【００３４】
上述のように、有効化したセキュリティ機能によるレガシーアプリケーションの調子に対する潜在的影響は、いろいろな方法で表現され、または定量化されることができる。図３に示す調子評価および結果は、信頼できる詳細度で示すとともに、レガシーアプリケーションの調子に対する有効化したセキュリティ機能の潜在的影響を、任意な多数の経験則、公式、または方法を用いて計算することができる。
【００３５】
さらに、図２のステップ２０２〜２１０の１つ以上を、ローカルシステム（例えば図１のクライアントシステム１４０および／または図５のコンピューティングシステム５１０）、リモートシステム（例えば図１のサーバー１３０および／または図６の例示的なネットワークアーキテクチャ６００の一部）、またはこれらの組合せによって実施することができる。例えば、ローカルシステム（例えば図１のクライアントシステム１１０（１）および／または図５のコンピューティングシステム５１０）が、ステップ２０８で、第１調子評価の結果を第２調子評価の結果と比較して、レガシーアプリケーションの調子に対する有効化したセキュリティ機能の影響を決定することができる。
【００３６】
代案として、リモートコンピューティングシステム（例えば図１のサーバー１３０および／または図６の典型的ネットワークアーキテクチャ６００の一部）が、ステップ２０８で第１調子評価の結果を第２の調子評価の結果と比較して、レガシーアプリケーションの調子に対する有効化したセキュリティ機能の影響を決定することができる。例えば、図１のクライアントシステム１１０（１）は、第１および第２の調子評価の結果を、レガシーアプリケーション用に計算したチェックサムまたはハッシュ値とともに、図１のサーバー１３０に送信することができる。ある実施例では、図１のクライアントシステム１１０（１）が、クライアントシステムにおける各レガシーアプリケーションを識別するサーバー１３０にリストを送信することもできる。このとき、サーバー１３０は、第１調子評価の結果を第２調子評価の結果と比較して、レガシーアプリケーションの調子に対して有効化したセキュリティ機能が影響を与えるか否かを決定することができる。例えば、サーバー１３０は、第１調子評価の結果を第２の調子評価の結果と比較して、有効化したセキュリティ機能に対して１つ以上の調子影響スコア（例えば図３の調子影響スコア３４０）を計算することができる。この後、サーバー１３０は調子影響スコアの結果をデータベースに格納することができる。
【００３７】
図２には示さないが、ある実施例では、クライアントモジュールはレガシーアプリケーション用のセキュリティ機能有効化ルールを無効化する命令を、図１のサーバー１３０から受信することができる。例えば、サーバー１３０は、調子影響情報に基づいて、セキュリティ機能有効化ルールがレガシーアプリケーションの性能および／または安定性を低下させる恐れがあることを決定することがあり得る。このとき、サーバー１３０は、レガシーアプリケーション用のセキュリティ機能有効化ルールを無効化する命令をクライアントモジュールに送信することができる。その命令を受信する際に、クライアントモジュールは、レガシーアプリケーション用のセキュリティ機能有効化ルールを無効化することができる。
【００３８】
さらに、ある実施例では、図２の例示的な方法２００は、セキュリティ機能有効化ルールの初期検査選択するユーザーからのリクエストを識別するステップを設けることができる。例えば、図１のクライアントシステム１１０（１）におけるクライアントモジュールは、クライアントシステム１１０（１）のユーザーに対して、例えば図１のサーバー１３０などの、サーバーまたはバックエンドに使用データが報告されるという理解の下に、クライアントシステム１１０（１）にインストールされている１つ以上のレガシーアプリケーションにおける新しいセキュリティ機能を有効化することの選択肢を提示することができる。以下に詳細に説明するように、サーバー１３０はこの使用データを分析して、レガシーアプリケーション用の特定セキュリティ機能をユーザーの大きなグループに段階的公開を開始するか否かを決定することができる。
【００３９】
図４は、レガシーアプリケーション用のコミュニティ検査済みセキュリティ機能を有効化するため例示的なサーバー側の方法４００のフローチャートである。この図に示すように、ステップ４０２で、サーバーモジュールは複数のクライアントシステムを識別することができる。少なくとも１つの実施例では、この複数のクライアントシステムは、レガシーアプリケーション用のコミュニティ検査済みセキュリティ機能をサーバーから受信する１組のクライアントのセットを表す。例えば、図１のサーバー１３０上で動作するように記憶しまた構成したサーバーモジュールは、クライアント１１０（１）〜１１０（Ｙ）からなる、図１の複数のクライアントシステム１４０を識別することができ、これらクライアント１１０（１）〜１１０（Ｙ）には、図２に関連して説明したクライアントモジュールをインストールしておく。
【００４０】
サーバーモジュールは、いろいろな方法でステップ４０２を実施することができる。１つの例では、サーバーモジュールは、クライアントモジュールをインストールしたクライアントシステムのリストにアクセスし、このリストをメモリにロードすることができる。他の例では、サーバーモジュールはクライアントシステム（例えば図１のクライアントシステム１４０）から、上述のクライアントモジュールがインストールされているとしてそのクライアントシステムを識別する情報を受信することができる。
【００４１】
ステップ４０４で、サーバーモジュールは、複数のクライアントシステムの部分集合を識別することができる。１つの例では、この部分集合の各クライアントシステムは、レガシーアプリケーション用のセキュリティ機能を検査するように指名されている。例えば、図１のサーバー１３０上のサーバーモジュールは、クライアント１１０（１）〜１１０（Ｙ）からなる、クライアントシステム１４０の部分集合１４２を識別することができる。この例では、部分集合１４２は、段階的公開の前にまたは段階的公開の一部として、レガシーアプリケーション用のセキュリティ機能を検査するように指名されたコミュニティ内のクライアントシステムの部分集合を表すものとすることができる。例えば上述のように、ある実施例では、クライアントシステムのユーザーはセキュリティ機能の初期検査を選択することができる。この例では、このユーザーのクライアントシステムは、この場合部分集合１４２に属する。この部分集合は、セキュリティ機能有効化ルールをサーバーから受信するように選択したコミュニティ内における全ユーザーのわずか０．１％を表すことができる。
【００４２】
サーバーモジュールは、いろいろな方法でステップ４０４を実行することができる。１つの例では、サーバーモジュールはセキュリティ機能の初期検査を選択したクライアントシステムのリストにアクセスすることができる。他の例では、サーバーモジュールは、セキュリティ機能の初期検査を選択したクライアントシステムを識別する情報をクライアントシステム（例えば図１のクライアントシステム１４０など）から受信することができる。
【００４３】
ステップ４０６では、サーバーモジュールは、セキュリティ機能有効化ルールを、ステップ４０４で識別した部分集合のうち少なくとも１つのクライアントシステムに送信することができる。例えば、図１のサーバー１３０に記憶されたサーバーモジュールは、部分集合１４２内の少なくとも１つのクライアントシステムに命令を送り、特定レガシーアプリケーション用の特定セキュリティ機能またはセキュリティ機能の組合せを有効化することができる。
【００４４】
サーバーモジュールは、いろいろな方法でステップ４０６を実行することができる。１つの例では、サーバーモジュールは、図１のサーバー１３０上のネットワークインタフェースカードにアクセスし、セキュリティ機能有効化ルールを部分集合１４２内のクライアント（例えばクライアント１１０（Ｘ））にネットワーク１２０を介して送信することができる。
【００４５】
異なる例では、サーバーモジュールは、当該ルールを第２サーバーに送信することにより、当該ルールをクライアントシステムに送信することができる。例えば、サーバー１３０はセキュリティ機能有効化ルールを第２サーバーに送信することができる。このとき第２サーバーは、セキュリティ機能有効化ルールを含むよう、クライアントシステム用のセキュリティ更新ファイルを変更することができる。つぎに第２サーバーは、ネットワーク１２０を介してクライアントシステムにセキュリティ更新ファイルを送信することができる。
【００４６】
セキュリティ機能有効化ルールを部分集合内のクライアントシステムに送信した後、ステップ４０８にて、サーバーモジュールは、クライアントシステムにおけるレガシーアプリケーションの調子に対するセキュリティ機能有効化ルールの影響を識別する調子影響情報をクライアントシステムから受信することができる。言い換えると、サーバーモジュールは、セキュリティ機能有効化ルールがレガシーアプリケーションの性能を不安定にするまたは悪影響を与えるか否かを示す情報をクライアントシステムから受信することができる。例えば、サーバーモジュールは、セキュリティ機能を有効化した後にレガシーアプリケーションの調子が低下することを示す、−１０％という調子影響スコア（例えば図３の調子影響スコア３４０）をクライアントモジュールから受信することができる。サーバーモジュールは、レガシーアプリケーションのクラッシュレポート、またはレガシーアプリケーションまたはクライアントシステムの機能性または性能の低下を示す別タイプのエラーレポート（例えば図３のアプリケーション調子評価３００，３２０）を受信することができる。
【００４７】
１つの実施例では、サーバーモジュールは、ステップ４０８で受信した調子影響情報を集合しまた記憶することができる。例えば、サーバーモジュールは、クライアントシステムの部分集合から受信した調子影響スコアに基づいて、セキュリティ機能有効化ルール用の調子影響スコアを計算して記憶することができる。１つの例では、サーバーモジュールは、この調子影響スコアを移動平均として記憶することができる。
【００４８】
つぎに、ステップ４１０で、サーバーモジュールは、ステップ４０８で受信した調子影響情報に基づいて、他のクライアントシステムにセキュリティ機能有効化ルールを公開するか否かを決定することができる。言い換えると、ステップ４０８で受信した調子影響情報が悪影響を示さない場合（例えば、少なくとも１つのクライアントシステムからレガシーアプリケーションの調子に悪影響を与えないことを示すセキュリティ機能の調子影響スコアをサーバーが受信した場合）、サーバーモジュールは、セキュリティ機能有効化ルールを、ステップ４０２で識別した複数のクライアントシステム内における他のクライアントシステムに公開することを決定することができる。
【００４９】
サーバーモジュールは、いろいろな方法でステップ４１０を実行することができる。１つの例では、サーバーモジュールは、１つのクライアントシステム（例えば部分集合１４２内のクライアント１１０（Ｘ）など）からセキュリティ機能有効化ルールがレガシーアプリケーションに悪影響を与えないことを示す調子影響情報を受信することができる。この例では、サーバーモジュールは、セキュリティ機能有効化ルールをクライアントシステム１４０内のより大きなクライアントシステムの部分集合に公開することを決定することができる。
【００５０】
別の例では、サーバーモジュールは、ステップ４０４で識別した部分集合内の複数のクライアントシステムから調子影響情報を受信することができる。例えば、サーバー１３０は、部分集合１４２のクライアント１１０（XＸ〜１１０（Ｙ）の各々から調子影響情報を受信することができる。この例では、サーバーモジュールは、セキュリティ機能有効化ルールが部分集合１４２内のクライアントにおけるレガシーアプリケーションの調子に平均して悪影響を与えるか否かを決定することができる。例えば、サーバーモジュールは、部分集合１４２内のクライアントからの調子影響情報に基づいて、セキュリティ機能有効化ルールのための平均調子影響スコアを計算することができる。この例では、セキュリティ機能有効化ルールが部分集合１４２内のクライアントにおけるレガシーアプリケーションの調子に平均して著しい悪影響を与えないことを平均調子影響スコアが示す場合、サーバーモジュールは、セキュリティ機能有効化ルールをクライアントシステム１４０の残りに公開することを決定することができる。
【００５１】
他の実施例では、セキュリティ機能有効化ルールが部分集合１４２内のクライアントシステムにおけるレガシーアプリケーションの調子に悪影響を与えないことをサーバーモジュールが判断した場合、サーバーモジュールは、他のクライアントシステムへのセキュリティ機能有効化ルールの段階的公開を開始することができる。上述したように、段階的公開とは、セキュリティ機能有効化ルールを徐々により広く配給することを表することができる。例えば、セキュリティ機能有効化ルールがレガシーアプリケーションの調子に悪影響を与えないことを、クライアントシステムの部分集合から受信する調子影響情報が示す場合、サーバーはセキュリティ機能有効化ルールを受信するクライアントシステムの集合を徐々に広げ、その間継続的に、これらの追加クライアントシステムからの調子影響情報を受信して監視することができる。例えば、サーバーは、セキュリティ機能有効化ルールをコミュニティ内のクライアントシステムの次第により広い部分集合へ公開することができ、例えば、コミュニティのユーザーの１％から開始して、２％、５％、１０％、２０％、５０％へと徐々に増加させ、最終的に１００％に増加させることができる。
【００５２】
セキュリティ機能有効化ルールがレガシーアプリケーションの調子に悪影響を与えないことを示す調子影響情報をサーバーが受信する限り、サーバーはセキュリティ機能有効化ルールを徐々に公開することを継続する。しかし、セキュリティ機能有効化ルールがレガシーアプリケーションの調子に著しい悪影響を与えることを示す調子影響情報をサーバーが受信した場合、サーバーは段階的公開を中止することができる。例えば、上述のように、サーバーモジュールはコミュニティ内のクライアントシステムから受信した調子影響情報に基づいて、セキュリティ機能有効化ルールのための調子影響スコアの移動平均を生成することができる。セキュリティ機能有効化ルールをユーザーのより大きい部分集合へ公開する上で、調子影響スコアが容認できない程の低下をサーバーモジュールが測定した場合（例えば、セキュリティ機能有効化ルールのための調子影響スコアが０から−５５％へ低下した場合）、サーバーモジュールは段階的公開を中止することができる。
【００５３】
上述のように、本明細書に説明したシステムおよび方法は、セキュリティベンダーがレガシーアプリケーション用のセキュリティ機能を容易に検査することを可能にする。セキュリティ機能を段階的基準で公開することにより、セキュリティベンダーは、セキュリティ機能を全コミュニティに配布する前に、ユーザーの小さい部分集合の中でレガシーアプリケーションの調子に対するセキュリティ機能の影響を安全に検査することができる。
【００５４】
図５は、本明細書に記載および／または説明した実施例の１つ以上を実現することができる例示的なコンピューティングシステム５１０のブロック図である。コンピューティングシステム５１０は、シングルまたはマルチプロセッサのコンピューティングデバイス、またはコンピュータ読取り可能命令を実行することができるシステムを広義に表す。コンピューティングシステム５１０の例としては、以下のものに限定しないが、ワークステーション、ラップトップ、クライアント側端末、サーバー、分散型コンピューティングシステム、携帯端末、または他の任意なコンピューティングシステムもしくはデバイスがある。最も基本的な構成では、コンピューティングシステム５１０は少なくとも１個のプロセッサ５１４およびシステムメモリ５１６を備えることができる。
【００５５】
プロセッサ５１４は、データ処理または命令を機械言語翻訳および実行することができる任意なタイプまたは形式の処理ユニットを全般的に表す。ある実施例では、プロセッサ５１４は、ソフトウェアアプリケーションまたはモジュールから命令を受信することができる。これら命令は、本明細書に記載されおよび／または示した例示的な実施例の１つ以上の機能をプロセッサ５１４に実施させることができる。例えば、プロセッサ５１４は、本明細書に記載したステップを、識別する、実行する、有効化する、決定する、中継する、実施する、比較する、許可する、送信する、受信する、無効化する、検索する、開始する、中止する、および／または増加させる、というステップのうち１つ以上を実施する、および／または、単独でまたは他の素子と組合せて実施する手段とすることができる。プロセッサ５１４は、さらに、本明細書に記載および／または示した他の任意なステップ、方法、またはプロセスを実施する、および／または実施する手段とすることができる。
【００５６】
システムメモリ５１６は、データおよび／またはコンピュータ読取り可能命令を記憶可能な、任意のタイプまたは形式の揮発性もしくは不揮発性の記憶デバイスまたは媒体を広義に表す。システムメモリ５１６の例としては、以下のものに限定しないが、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ、または、任意な他の適切なメモリデバイスがある。必須ではないが、ある実施例では、コンピューティングシステム５１０は、揮発性メモリユニット（例えば、システムメモリ５１６）、および不揮発性記憶装置（例えば、後述する主記憶装置５３２等）の双方を備えることができる。
【００５７】
ある実施例では、例示的なコンピューティングシステム５１０は、プロセッサ５１４およびシステムメモリ５１６に加えて、１つ以上のコンポーネントまたは素子を備えることもできる。例えば、図５に示すように、コンピューティングシステム５１０は、メモリコントローラ５１８、入出力（Ｉ／Ｏ）コントローラ５２０、および通信インタフェース５２２を備えるものとし、これらを、それぞれ通信インフラ５１２を介して相互接続することもできる。通信インフラ（基盤）５１２は、コンピューティングデバイスの１つ以上のコンポーネント間で通信するのを容易化することができる任意なタイプまたは形式のインフラ（基盤）を広義に表す。通信インフラ５１２の例としては、以下のものに限定しないが、通信バス（例えば、ＩＳＡ、ＰＣＩ、ＰＣＩｅまたは同様のバス）、およびネットワークがある。
【００５８】
メモリコントローラ５１８は、メモリもしくはデータを取り扱い、またはコンピューティングシステム５１０の１つ以上のコンポーネント間の通信を制御することができる任意のタイプまたは形式のデバイスを全般的に表す。例えば、ある実施例では、メモリコントローラ５１８は、プロセッサ５１４、システムメモリ５１６、Ｉ／Ｏコントローラ５２０間の通信を、通信インフラ５１２を介して制御することができる。ある実施例では、メモリコントローラ５１８は、本明細書に記載および／または示したステップまたは特徴、例えば識別、実行、有効化、決定、中継、実施、比較、許可、送信、受信、無効化、検索、開始、中止、および／または増加のうち１つ以上を実施する、および／または単独または他の素子と組合せて実施する手段とすることができる。
【００５９】
Ｉ／Ｏコントローラ５２０は、コンピューティング装置の入出力機能を調和および／または制御することができる任意なタイプまたは形式のモジュールを全般的に表す。例えば、ある実施例では、Ｉ／Ｏコントローラ５２０は、コンピューティング装置の１つ以上の素子、例えば、プロセッサ５１４、システムメモリ５１６、通信インタフェース５２２、ディスプレイアダプタ５２６、入力インタフェース５３０、および記憶インタフェース５３４間におけるデータ送信を制御または容易化することができる。Ｉ／Ｏコントローラ５２０は、例えば、本明細書に記載した識別、有効化、決定、中継、実施、比較、許可、送信、受信、無効化、検索、実行、開始、中止、および／または増加のステップを実施するよう使用する、および／または実施する手段とすることができる。Ｉ／Ｏコントローラ５２０は、さらに、本明細書に記載する他のステップおよび特徴を実施するのに使用する、および／または実施する手段とことができる。
【００６０】
通信インタフェース５２２は、例示的なコンピューティングシステム５１０と１つ以上の追加デバイスとの間における通信を容易化することができる任意なタイプまたは形式の通信デバイスまたはアダプタを広義に表す。例えば、ある実施例では、通信インタフェース５２２は、コンピューティングシステム５１０と追加コンピューティングシステムを備える公共またはプライベートネットワークとの間における通信を容易化することができる。通信インタフェース５２２の例としては、以下のものに限定しないが、有線ネットワークインタフェース（例えば、ネットワークインタフェースカード）、無線ネットワークインタフェース（例えば、ネットワークインタフェースカード）、モデム、および、任意な他の適切なインタフェースがある。少なくとも１つの実施例では、通信インタフェース５２２は、例えばインターネットなどのネットワークとの直接リンクを介してリモートサーバーに直接的に接続することができる。通信インタフェース５２２は、さらに、例えば、ローカルエリアネットワーク（例えば、イーサネット（登録商標）またはＩＥＥＥ８０２．１１無線ネットワーク）、パーソナルエリアネットワーク（例えば、ＢＬＵＥＴＯＯＴＨ（登録商標）またはＩＥＥＥ規格８０２．１５．１−２００２ネットワーク）、電話もしくはケーブルネットワーク、携帯電話接続、衛星データ接続、または、任意な他の適切な接続を介して間接的に接続することができる。
【００６１】
ある実施例では、通信インタフェース５２２は、外部バスまたは通信チャネルを介して、コンピューティングシステム５１０と１つ以上の追加のネットワークデバイスまたは記憶装置との間における通信を容易化するよう構成したホストアダプタを表すこともできる。ホストアダプタの例としては、以下のものに限定しないが、ＳＣＳＩホストアダプタ、ＵＳＢホストアダプタ、ＩＥＥＥ１３９４ホストアダプタ、ＳＡＴＡおよびｅＳＡＴＡホストアダプタ、ＡＴＡおよびＰＡＴＡホストアダプタ、ファイバーチャネルインタフェースアダプタ、イーサネット（登録商標）アダプタ等がある。通信インタフェース５２２は、コンピューティングシステム５１０が分散型またはリモートコンピューティングすることを可能にする。例えば、通信インタフェース５２２は、リモートデバイスから命令を受信する、またはリモートデバイスが実行するための命令を送信することができる。ある実施例では、通信インタフェース５２２は、本明細書に記載した識別、有効化、決定、中継、実施、比較、許可、送信、受信、無効化、検索、開始、中止、および／または増加というステップのうち１つ以上を、単独または他の素子と組合せて実施する、および／または実施する手段とすることができる。通信インタフェース５２２は、本明細書に記載した他のステップおよび特徴を実施するのに使用する、および／または実施手段とすることもできる。
【００６２】
図５に示すように、コンピューティングシステム５１０は、ディスプレイアダプタ５２６を介して通信インタフェース５１２に結合した少なくとも１つのディスプレイ装置５２４を備えることもできる。ディスプレイ装置５２４は、ディスプレイアダプタ５２６によって送信される情報を視覚的に表示することができる任意なタイプまたは形式のデバイスを全般的に表す。同様に、ディスプレイアダプタ５２６は、ディスプレイ装置５２４に表示するための、グラフィックス、テキスト、および通信インタフェースから（または、当該技術分野で既知のようなフレームバッファから）の他のデータを送信するように構成した任意なタイプまたは形式のデバイスを全般的に表す。
【００６３】
図５に示すように、例示的なコンピューティングシステム５１０は、入力インタフェース５３０を介して通信インフラ５１２に接続する少なくとも１つの入力装置５２８を備えることもできる。入力装置５２８は、例示的なコンピューティングシステム５１０に、コンピュータまたは人間が生成した入力を供給できる任意なタイプまたは形式の入力デバイスを全般的に表す。入力装置５２８の例としては、以下のものに限定しないが、キーボード、ポインティングデバイス、音声認識デバイス、または他の入力デバイスがある。少なくとも１つの実施例では、入力装置５２８は、本明細書に記載した識別、有効化、決定、中継、実施、比較、実行、許可、送信、受信、無効化、検索、開始、中止、および／または増加というステップのうち１つ以上を、単独または他の素子と組合せて、実施および／または実施する手段とすることができる。入力装置５２８は、本明細書に記載した他のステップおよび特徴を実施するのに使用する、および／または実施手段とすることもできる。
【００６４】
図５に示すように、例示的なコンピューティングシステム５１０は、記憶装置インタフェース５３４を介して通信インフラ５１２に接続する、主記憶装置５３２およびバックアップ記憶装置５３３を備えることができる。記憶装置５３２，５３３は、データおよび／または他のコンピュータ読取り可能命令を記憶できる任意なタイプまたは形式の記憶デバイスまたは媒体を全般的に表す。例えば、記憶装置５３２，５３３は、磁気ディスクドライブ（いわゆるハードドライブ）、フロッピー（登録商標）ディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブ等とすることができる。記憶インタフェース５３４は全般的に、記憶装置５３２，５３３とコンピューティングシステム５１０における他のコンポーネントとの間でデータ送信するための任意なタイプまたは形式のインタフェースまたはデバイスを表す。
【００６５】
ある実施例では、記憶装置５３２，５３３は、コンピュータソフトウェア、データ、または他のコンピュータ読取り可能情報を記憶するよう構成した取り外し可能記憶ユニットに対して読み書きするよう構成することができる。適切な取り外し可能記憶ユニットの例としては、以下のものに限定しないが、フロッピー（登録商標）ディスク、磁気テープ、光ディスク、フラッシュメモリデバイス等がある。記憶装置５３２，５３３は、コンピュータソフトウェア、データ、または他のコンピュータ読取り可能命令がコンピューティングシステム５１０に読み込まれることを可能にする他の同様の機構またはデバイスを備えることもできる。例えば、記憶装置５３２，５３３は、ソフトウェア、データ、または他のコンピュータ読取り可能情報を読み書きするように構成することができる。記憶装置５３２，５３３は、コンピューティングシステム５１０の一部とすることができ、または、他のインターフェースシステムを経由して別個のデバイスとすることができる。
【００６６】
記憶装置５３２，５３３は、例えば、本明細書に記載した識別、有効化、決定、中継、実施、比較、許可、送信、受信、無効化、検索、開始、中止、および／または増加というステップのうち１つ以上を、単独または他の素子と組合せて、実施するのに使用するおよび／または実施手段とすることもできる。記憶装置５３２，５３３は、本明細書に記載した他のステップおよび特徴を実施するのに使用する、および／または実施手段とすることもできる。
【００６７】
他の多くのデバイスまたはサブシステムをコンピューティングシステム５１０に接続することができる。逆に、図５に示したコンポーネントおよびデバイスの全ては、本明細書に記載および／または示した実施例を実施するために示したものではない。上述したデバイスおよびサブシステムは、図５に示したものとは異なる方法で相互に接続することもできる。コンピューティングシステム５１０は、任意の数のソフトウェア、ファームウェア、および／またはハードウェア構成を採用することもできる。本明細書に記載した例示的な実施例の１つ以上は、コンピュータ読取り可能媒体におけるコンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ読取り可能命令、またはコンピュータ制御ロジックとも称する）としてコード化することができる。用語「コンピュータ読取り可能媒体」は、コンピュータ読取り可能命令を記憶または担持できる、任意な形式のデバイス、キャリヤ、または媒体を全般的に言及する。コンピュータ読取り可能媒体の例としては、以下のものに限定しないが、伝送型媒体（例えば搬送波）、物理媒体（例えば磁気記憶媒体（例えば、ハードディスクドライブおよびフロッピー（登録商標）ディスク）、光記憶媒体（例えば、ＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭ）、電子記憶媒体（例えば、ソリッドステートドライブおよびフラッシュメディア）、および他の分配システムがある。
【００６８】
コンピュータプログラムを格納するコンピュータ読取り可能媒体は、コンピューティングシステム５１０内にロードすることができる。この場合、コンピュータ読取り可能媒体に記憶されたコンピュータプログラムの一部または全部は、システムメモリ５１６、および／または記憶装置５３２および５３３の様々部分に記憶することができる。プロセッサ５１４によって実行されるとき、コンピューティングシステム５１０にロードしたコンピュータプログラムは、本明細書に記載および／または示した例示的な実施例の１つ以上の機能を、プロセッサ５１４実施させるおよび／または実施させる手段とすることができる。付加的にまたは代替的に、本明細書に記載および／または示した例示的な実施例の１つ以上は、ファームウェアおよび／またはハードウェアで実現することができる。例えば、コンピューティングシステム５１０は、本明細書に記載および／または示した例示的実施例の１つ以上を実現するように適合した特定用途向け集積回路（ＡＳＩＣ）として構成することができる。
【００６９】
図６は、クライアントシステム６１０，６２０，６３０およびサーバー６４０，６４５をネットワーク６５０に接続する、例示的なネットワークアーキテクチャ６００のブロック図である。クライアントシステム６１０，６２０，６３０は、図５の例示的なコンピューティングシステム５１０などの、任意なタイプまたは形式のコンピューティング装置またはシステムを全般的に表す。同様に、サーバー６４０，６４５は、さまざまなデータベースサービスを提供、および／またはあるソフトウェアアプリケーションを動作させるよう構成したコンピューティング装置またはシステム（例えばアプリケーションサーバーまたはデータベースサーバー）を全般的に表す。ネットワーク６５０は、例えば、イントラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、またはインターネットを含む、任意の電話網またはコンピュータネットワークを表す。
【００７０】
図６に示すように、１つ以上記憶装置６６０（１）〜（Ｎ）を、サーバー６４０に直接取り付けることができる。同様に、１つ以上記憶装置６７０（１）〜（Ｎ）を、サーバー６４５に直接取り付けることができる。記憶装置６６０（１）〜（Ｎ）および記憶装置６７０（１）〜（Ｎ）は、データおよび／またはコンピュータ読取り可能命令を記憶できる、任意なタイプもしくは形式の記憶装置または媒体を全般的に表す。ある実施例では、記憶装置６６０（１）〜（Ｎ）および記憶装置６７０（１）〜（Ｎ）が、例えばＮＦＳ，ＳＭＢまたはＣＩＦＳなどの様々なプロトコルを用いてサーバー６４０，６４５と通信するよう構成したネットワーク・アタッチド・ストレージ（ＮＡＳ）デバイスを表すことができる。
【００７１】
サーバー６４０，６４５を、ストレージ・エリア・ネットワーク（ＳＡＮ）ファブリック６８０に接続することができる。ＳＡＮファブリックは、複数の記憶装置間の通信を容易化できる、任意なタイプもしくは形式のコンピュータネットワークまたはアーキテクチャを全般的に表す。ＳＡＮファブリックは、サーバー６４０，６４５および複数の記憶装置６９０（１）〜（Ｎ）、および／またはインテリジェントストレージアレイ６９５間の通信を容易化することができる。ＳＡＮファブリック６８０は、ネットワーク６５０およびサーバー６４０，６４５を介して、クライアントシステム６１０，６２０，６３０および複数の記憶装置６９０（１）〜（Ｎ）、および／またはインテリジェントストレージアレイ６９５間の通信を容易化し、クライアントシステム６１０，６２０，６３０にデバイス６９０（１）〜（Ｎ）およびアレイ６９５を局所的に取り付けたように見せかけるようにすることができる。記憶装置６６０（１）〜（Ｎ）および記憶装置６７０（１）〜（Ｎ）と同様に、記憶装置６９０（１）〜（Ｎ）およびインテリジェントストレージアレイ６９５は、データおよび／またはコンピュータ読取り可能命令を記憶できる、任意なタイプもしくは形式の記憶装置または媒体を全般的に表す。
【００７２】
ある実施例では、図５の例示的なコンピューティングシステム５１０につき説明すると、図５の通信インタフェース５２２などの通信インタフェースを使用して、各クライアントシステム６１０，６２０，６３０とネットワーク６４０との間を接続することができる。クライアントシステム６１０，６２０，６３０は、例えば、ウェブブラウザーまたは他のクライアントソフトウェアを用いて、サーバー６４０，６４５上の情報にアクセスすることができる。このようなソフトウェアは、クライアントシステム６１０，６２０，６３０が、サーバー６４０、サーバー６４５、記憶装置６６０（１）〜（Ｎ）、記憶装置６７０（１）〜（Ｎ）、記憶装置（１）〜（Ｎ）、またはインテリジェントストレージアレイ６９５が供するデータにアクセスすることを可能にする。図６は、例えばインターネットなどのネットワークをデータ交換に利用することを示すが、本明細書に記載および／または示した実施例は、インターネットまたは任意な特定のネットワーク環境に限定するものではない。
【００７３】
少なくとも１つの実施例では、本明細書に記載した例示的な実施例の１つ以上の一部または全部はプログラムとしてコード化し、またサーバー６４０、サーバー６４５、記憶装置６６０（１）〜（Ｎ）、記憶装置６７０（１）〜（Ｎ）、記憶装置（１）〜（Ｎ）、インテリジェントストレージアレイ６９５、またはこれらの組合せによって、読み込まれかつ実行することができる。本明細書に記載した例示的な実施例の１つ以上の一部または全部はプログラムとしてコード化し、サーバー６４０に記憶し、サーバー６４５によって実行し、ネットワークを経由してクライアントシステム６１０，６２０，６３０に分配することができる。したがって、ネットワークアーキテクチャ６００は、本明細書に記載した、識別、有効化、決定、中継、実施、比較、許可、送信、受信、無効化、検索、開始、実行、中止、および／または増加というステップのうち１つ以上を実施する、および／または単独もしくは他の素子と組合せて実施する手段とすることができる。ネットワークアーキテクチャ６００は、本明細書に記載した他のステップおよび特徴を実施するよう使用する、および／または実施手段とすることもできる。
【００７４】
上述のように、コンピューティングシステム５１０および／またはネットワークアーキテクチャ６００のコンポーネントのうち１つ以上は、本明細書に記載および／または示した例示的な方法におけるステップのうち１つ以上のステップを実施する、および／または単独もしくは他の素子と組合せて実施するための手段とすることができる。例えば、レガシーアプリケーション用のコミュニティ検査済みセキュリティ機能を有効化することをコンピュータで実現する方法は、複数のクライアントシステムを識別するステップを有することができる。この場合、コンピュータシステムは、レガシーアプリケーション用のセキュリティ機能を検査するのに指名された複数のクライアントシステムの部分集合を識別することができる。そして、つぎに、ンピュータシステムは、セキュリティ機能有効化ルールを部分集合のうち少なくとも１つのクライアントシステムに送信することができる。その後コンピュータシステムは、クライアントシステムにおけるレガシーアプリケーションの調子に対するセキュリティ機能有効化ルールの影響を識別する調子影響情報を、部分集合のクライアントシステムから受信し、そして、当該調子影響情報に基づいて、セキュリティ機能有効化ルールを複数のクライアントシステムにセキュリティ機能有効化ルールを公開するか否かを決定することができる。
【００７５】
ある実施例は、さらに、セキュリティ機能有効化ルールがレガシーアプリケーションの調子に悪影響を与えないことを決定するステップと、複数のクライアントシステムにセキュリティ機能有効化ルールを段階的公開するのを開始するステップを有する。ある実施例は、さらに、１）複数のクライアントシステム内の少なくとも１つの追加クライアントシステムから、セキュリティ機能有効化ルールに関連する調子影響情報を受信するステップと、２）セキュリティ機能有効化ルールが追加クライアントシステムにおける少なくとも１つのレガシーアプリケーションの調子に悪影響を与えることを決定するステップと、３）セキュリティ機能有効化ルールの段階的公開を中止するステップとを有する。他の実施例では、段階的公開は、配布が複数のクライアントシステムを網羅するまで、セキュリティ機能有効化ルールの配布を多段階で増分ごとに増加させるステップを有する。
【００７６】
少なくとも１つのさらに他の実施例では、セキュリティ機能有効化ルールが、セキュリティ機能有効化ルールの特定の組合せを有するものとする。ある実施例では、調子影響情報は、少なくとも１つの性能メトリックの結果を含む性能インデックス、および少なくとも１つの安定性メトリックの結果を含む安定性インデックスを有する。
【００７７】
ある実施例によれば、レガシーアプリケーション用のコミュニティ検査済のセキュリティ機能を有効化することをコンピュータで実現する方法は、クライアントシステムにおけるレガシーアプリケーションを識別するステップを有する。コンピュータシステムは、さらに、レガシーアプリケーション用のセキュリティ機能有効化ルールを識別することもできる。このとき、コンピュータシステムは、セキュリティ機能有効化ルールを実行することよってレガシーアプリケーション用の少なくとも１つのセキュリティ機能を有効化することができる。その後、コンピュータシステムは、レガシーアプリケーションの調子に対するセキュリティ機能有効化ルールの影響を決定することができる。そして、コンピュータシステムは、レガシーアプリケーションの調子に対するセキュリティ機能の影響をサーバーに中継することができる。さらにある実施例では、セキュリティ機能有効化ルールを識別するステップは、セキュリティ機能有効化ルールをサーバーから受信するステップを有する。
【００７８】
ある実施例によって、レガシーアプリケーションの調子に対するセキュリティ機能有効化ルールの影響を決定するステップは、第１調子評価を実施するステップを有する。このとき、コンピュータシステムは、レガシーアプリケーション内にセキュリティ機能有効化ルールを実行し、また第２調子評価を実施することができる。つぎに、コンピュータシステムは、第２調子評価を第１調子評価と比較して、セキュリティ機能有効化ルールがどのようにレガシーアプリケーションの調子に対して影響するかを決定することができる。
【００７９】
ある実施例で規定されるように、当該方法は、さらに、ユーザーがセキュリティ機能有効化ルールの初期検査を選択できるようにするステップを有する。ある実施例によれば、コンピュータシステムは、クライアントシステムにおける各レガシーアプリケーションを識別するリストをサーバーに送信することができる。さらに、セキュリティ機能有効化ルールは、セキュリティ機能有効化ルールの特定の組合せを有するものとすることができる。
【００８０】
幾つかの実施例では、コンピュータシステムは、レガシーアプリケーション用のセキュリティ機能有効化ルールを無効化する命令をサーバーから受信し、そしてレガシーアプリケーション用のセキュリティ機能有効化ルールを無効化することができる。ある実施例では、セキュリティ機能有効化ルールを実行するステップは、起動時にレガシーアプリケーションを識別するステップと、レガシーアプリケーション用のセキュリティ環境設定を検索し、セキュリティ機能有効化ルールによって特定したセキュリティ環境設定でセキュリティ機能を有効化するステップとを有する。
【００８１】
上述の開示は特定のブロック図、フローチャートおよび例を使って様々な実施形態を示したが、各ブロック図のコンポーネント、フローチャートステップ、操作および／または本明細書に記載および／または説明したコンポーネントは、広範囲のハードウェア、ソフトウェアまたはファームウェア（またはそれらの組合せ）を使って個別および／または包括的に実現することができる。さらに、他のコンポーネントに含まれるコンポーネントの開示はどのようなものであっても、同じ機能を達成するためにたくさんの他のアーキテクチャを実現することができるので、本来は例示的なものと考えるものとする。
【００８２】
本明細書に記載および／または説明するステップのプロセスパラメータおよびシーケンスは、ほんの一例として与えられたものであり、所望通りに変更が可能である。例えば、本明細書に記載および／または説明するステップは特定の順番に示され、論じられているが、これらのステップは、必ずしも説明または論じられている順番で実行する必要はない。本明細書に記載および／または説明する様々な例示的な方法では、本明細書に記載および／または説明する一つ以上のステップを除外してもよいし、またはこれらの開示されたものにステップを追加してもよい。
【００８３】
さらに、様々な実施形態を完全に機能的なコンピューティングシステムとして本明細書に記載および／または説明してきたが、分散を行うために実際に使用される特定の種類のコンピュータ読取り可能な媒体に関わらず、一つ以上のこれらの実施例は、様々な形態のプログラム製品として流通させることもできる。本明細書に開示する実施形態はまた、特定のタスクを実行するソフトウェアモジュールを使って実現することもできる。これらのソフトウェアモジュールは、コンピュータ読取り可能な記憶媒体またはコンピューティングシステムに記憶することのできるスクリプト、バッチまたはその他の実行可能ファイルを含むことができる。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書に開示する一つ以上の実施例を実行するコンピューティングシステムとして構成することができる。
【００８４】
上述の説明は、当業者が本明細書に記載する実施例の様々な態様を最大限に利用できるように行った。この例示的説明は網羅的、または開示した正確な形態に限定することを意図したものではない。本発明の要旨または範囲から逸脱することなく、多くの変更および改変が可能である。本明細書に記載する実施形態は、あらゆる面において例示的であり、限定するものではないと考えるべきである。添付の特許請求の範囲およびそれの等価物を参照して、本発明の範囲を決定すべきである。
【００８５】
別段に記載のない限り、明細書または請求項において、各要素は複数存在し得る。さらに、簡単のために、明細書および請求項で使用される「〜を含む」および「〜を有する」という文言は、同じ意味を持つ文言である「〜を備える」と置き替えることができる。
【図１】
2010176658.tif 000003
【図２】
2010176658.tif 000004
【図３】
2010176658.tif 000005
【図４】
2010176658.tif 000006
【図５】
2010176658.tif 000007
【図６】
2010176658.tif 000008
【外国語明細書】
2010176658000001.pdf