(57)【要約】  種々の実施形態はセキュリティーの脆弱性を検出し、これに応答して、影響を受けたプログラムを変更することができ、その結果たとえエクスプロイトが実行されても、そのプログラムの全体性を維持することができるようにする。少なくとも一部の実施形態において、ローカルの自動脆弱性検出および応答（ＡＶＤ／Ｒ）コンポーネントは、ユーザーのローカルマシンで実行し、シールドの使用を介して潜在的脆弱性を検出および緩和する。また、リモートの自動脆弱性検出および応答（ＡＶＤ／Ｒ）コンポーネントは、認識された脆弱性を報告するために実行され、認識された脆弱性を緩和するために１または複数のシールドをローカルに送りかつ適用することができるようにする。
2010515177.tif 000002
【特許請求の範囲】
【請求項１】
ローカルプログラムのクラッシュを検出する動作と、
前記検出に応答して、前記プログラムのクラッシュの被害を受けた機能またはインターフェイスを無効にする動作と
を含むことを特徴とするコンピューター実施方法。
【請求項２】
前記検出する動作の後でかつ前記無効にする動作の前に、クラッシュのログを検査して前記プログラムのクラッシュに関連する機能またはインターフェイスを確認する動作をさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
機能またはインターフェイスが無効にされたことをユーザーに通知する動作をさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記無効にする動作は、シールドを構築しかつ適用することにより実行されることを特徴とする請求項１に記載の方法。
【請求項５】
前記シールドは、自動的な、実行時ソリューションを提供することを特徴とする請求項４に記載の方法。
【請求項６】
前記構築する動作および前記適用する動作は、脆弱性を緩和機能と関連付ける脆弱性／緩和テーブルを使用することにより実行されることを特徴とする請求項４に記載の方法。
【請求項７】
前記検出する動作および前記無効にする動作は、ウェブ・ブラウザにより実行されることを特徴とする請求項１に記載の方法。
【請求項８】
実行されたとき、請求項１に記載の方法を実施するコンピューター読み取り可能な命令を有することを特徴とする１または複数のコンピューター読み取り可能な媒体。
【請求項９】
請求項８に記載の１または複数のコンピューター読み取り可能な媒体を具体化したことを特徴とするコンピューターシステム。
【請求項１０】
ローカルプログラムのクラッシュを検出する動作と、
前記検出に応答して、ユーザーに問い合わせて前記プログラムのクラッシュを報告することができるか確認する動作と、
前記ローカルプログラムのクラッシュをレポートする動作と、
前記レポートに応答して、前記プログラムのクラッシュの被害を受けた機能またはインターフェイスを無効にするために有効なシールドを受信しかつ適用する動作と
を含むことを特徴とするコンピューター実施方法。
【請求項１１】
機能またはインターフェイスが無効にされたことをユーザーに通知する動作をさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記ユーザーに、ユーザーインターフェイスを介して、無効にされた前記機能またはインターフェイスを再度有効にするためのオプションを提供する動作をさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１３】
前記適用する動作は、脆弱性を緩和機能と関連付ける脆弱性／緩和テーブルを使用することにより実行されることを特徴とする請求項１０に記載の方法。
【請求項１４】
前記検出に応答して、クラッシュのログを検査して前記プログラムのクラッシュに関連する機能またはインターフェイスを確認する動作をさらに含むことを特徴とする請求項１０に記載の装置。
【請求項１５】
前記検出する動作、前記問い合わせる動作、前記レポートする動作、前記受信しかつ適用する動作はウェブ・ブラウザにより実行されることを特徴とする請求項１０に記載の方法。
【請求項１６】
実行されたとき、請求項１０に記載の方法を実施するコンピューター読み取り可能な命令を有することを特徴とする１または複数のコンピューター読み取り可能な媒体。
【請求項１７】
請求項１６に記載の１または複数のコンピューター読み取り可能な媒体を具体化したことを特徴とするコンピューターシステム。
【請求項１８】
ローカルプログラムのクラッシュを検出する動作と、
ユーザーに前記クラッシュをリモートサーバーへレポートするための承認を要求する動作と、
ユーザーの承認が与えられた場合、
前記クラッシュを前記リモートサーバーへレポートする動作と、
前記レポートに応答して、前記クラッシュに関連する機能またはインターフェイスを無効にするように構成された１または複数のシールドをダウンロードする動作と、
前記１または複数のシールドを適用して前記機能またはインターフェイスを無効にする動作と、
ユーザーの承認が与えられなかった場合、前記プログラムのクラッシュの被害を受けた機能またはインターフェイスを無効にする動作と
を含むことを特徴とするコンピューター実施方法。
【請求項１９】
前記ユーザーに、ユーザーインターフェイスを介して、無効にされた前記機能またはインターフェイスを再度有効にするためのオプションを提供する動作を更に備えることを特徴とする請求項１８に記載の方法。
【請求項２０】
前記検出する動作および前記要求する動作はウェブ・ブラウザにより実行されることを特徴とする請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動的脆弱性検出および応答に関する。
【背景技術】
【０００２】
ソフトウェアのセキュリティーの脆弱性を緩和する多くの方法は、受身でありかつ集中した時間を要する。即ち、一旦脆弱性が発見されると、ソフトウェア会社は通常、しばらくしてから攻撃者にその脆弱性を利用させないことを対象としてパッチをリリースする。この戦略はかつてユーザーを保護するために功を奏していたが、あるエクスプロイト（ｅｘｐｌｏｉｔ）が開発された場合、導入しているユーザーがそのエクスプロイトから保護されるように、その有効性は部分的に（１）ハッカーより前に脆弱性を見つける脆弱性発見者、（２）問題を公的に明らかにする前にソフトウェア会社に報告する脆弱性発見者、および（３）パッチの高い適用速度を必要とする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
残念ながら、最近の傾向はこれらの条件にとってよい前兆ではない。特に、０日エクスプロイト（０−ｄａｙ  ｅｘｐｌｏｉｔ）（即ち、公開されていない、直されていない脆弱性に対してリリースされているエクスプロイト）の割合が増加しており、パッチの適用速度は遅くなり続けている。セキュリティーの展望がかなり悪くなるのを避けるため、ソフトウェアメーカーは脆弱性をより早く発見しかつ緩和する方法を見つけなければならない。
【課題を解決するための手段】
【０００４】
種々の実施形態はセキュリティーの脆弱性を検出し、これに応答して、影響を受けたプログラムを変更することができ、たとえエクスプロイトが実行されても、そのプログラムの全体性を維持することができるようにする。
【０００５】
少なくとも一部の実施形態において、ローカルの自動脆弱性検出および応答（ＡＶＤ／Ｒ）コンポーネントは、ユーザーのローカルマシンで実行し、シールドの使用を介して潜在的脆弱性を検出および緩和する。また、リモートの自動脆弱性検出および応答（ＡＶＤ／Ｒ）コンポーネントは、認識された脆弱性を報告するために実行され、その結果認識された脆弱性を緩和するために１または複数のシールドをローカルに送りかつ適用することができるようにする。
【図面の簡単な説明】
【０００６】
【図１】一実施形態に係るシステムを例示する図である。
【図２】一実施形態に係る方法におけるステップを説明する流れ図である。
【図３】一実施形態に係るシステムを例示する図である。
【図４】一実施形態に係る方法におけるステップを説明する流れ図である。
【図５】一実施形態に係るシステムを例示する図である。
【図６】一実施形態に係る方法におけるステップを説明する流れ図である。
【発明を実施するための形態】
【０００７】
「概要」
種々の実施形態はセキュリティーの脆弱性を検出し、これに応答して、影響を受けたプログラムを変更することができ、その結果たとえエクスプロイトが実行されても、そのプログラムの全体性を維持することができるようにする。
【０００８】
少なくとも一部の実施形態において、ローカルの自動脆弱性検出および応答（ＡＶＤ／Ｒ）コンポーネントは、ユーザーのローカルマシンで実行し、シールドの使用を介して潜在的脆弱性を検出および緩和する。また、リモートの自動脆弱性検出および応答（ＡＶＤ／Ｒ）コンポーネントは、認識された脆弱性を報告するために実行され、その結果認識された脆弱性を緩和するために１または複数のシールドをローカルに送りかつ適用することができるようにする。
【０００９】
以下の議論において、「一般的なセキュリティーの脆弱性」と題したセクションは、非常に一般的に、セキュリティーの脆弱性の概念とそれがどのように起こるかについて提供および説明する。これに続き、「ローカルＡＶＤ／Ｒ」と題したセクションは、脆弱性検出および応答のためのローカルの解決について提供および議論する。これに続き、「リモートＡＶＤ／Ｒ」と題したセクションは、脆弱性検出のための種々のリモートの解決について提供および議論する。最後に、「ローカルＡＶＤ／ＲおよびリモートＡＶＤ／Ｒの両方の使用」と題したセクションは、連続した保護を与えるためにローカルおよびリモートの両方の手法をどのように適用することができるかについて提供および説明する。
【００１０】
「一般的なセキュリティーの脆弱性」
多くのセキュリティーの脆弱性は、プログラミングエラーから広がる。脆弱性の原因となり得る多くの異なるタイプのプログラミングエラーがある。例えば、バッファーオーバーフローを許すエラーはプログラミングエラーとしてよく知られている。このような状況において、プログラマーはデータを保持するために特定量の空間を割り当てたかもしれない。エクスプロイター（ｅｘｐｌｏｉｔｅｒ）は、予想するよりも多いデータをプログラムに提供した場合にそれを発見するかもしれず、プログラマーがバッファーオーバーフローの可能性を緩和しまたは取り除くために正しいチェックを適切に行わなかった場合、この過剰なデータがオーバーフローをもたらし得る。このオーバーフローの状況を利用して、エクスプロイターは、バッファ内で受け取ったデータの終わりにデータまたはコードを追加し、オーバーフローを発生させることができる。追加されたデータまたはコードが実行される場合、それはプログラムを変更し、またはその機能を何らかの方法で変更する場合がある。それゆえ、プログラミングエラーによって、セキュリティーの脆弱性が利用され得る。
【００１１】
しかしながら、しばしば、セキュリティーの脆弱性の利用（エクスプロイテーション（ｅｘｐｌｏｉｔａｔｉｏｎ））がプログラムのクラッシュ（ｃｒａｓｈ）の原因となる場合がある。上記の例において、そのエクスプロイテーションはプログラムに対し、メモリの任意の部分に目を向けさせ、無効な動作をもたらすコードの実行を開始し、従って、プログラムをクラッシュさせる場合がある。
【００１２】
従って、プログラムのクラッシュから、プログラムによる問題があることを推測することができる。この問題は、セキュリティーの脆弱性と関連するかもしれない。即ち、（１）プログラムのクラッシュをもたらす同じプログラミングエラーの多くが攻撃に利用可能であるため、（２）エクスプロイトの開発は、相当量のトライアルとエラーを必要とする−−結果として、エクスプロイトの開発の初期段階の間は、計画の失敗がプログラムにクラッシュをもたらすため、（３）エクスプロイトはしばしばプログラムの固有のバージョンでのみ機能し、時々他のバージョンをクラッシュさせるため、プログラムのクラッシュはしばしば脆弱性のサインとなる。
【００１３】
「ローカルのＡＶＤ／Ｒ」
図１は、一実施形態に係るシステムを、概して１００で示す。システム１００は、１または複数のプロセッサー１０４、１または複数のコンピューター読み取り可能な媒体１０６およびコンピューター読み取り可能な媒体に常駐し、プロセッサー（群）により実行可能な１または複数のアプリケーション１０８を有するコンピューティング装置１０２を含む。さらに、コンピューティング装置１０２は、この例ではソフトウェアに実装されているローカルＡＶＤ／Ｒコンポーネント１１０を含む。
【００１４】
コンピューティング装置１０２はデスクトップコンピューターの形態で示されているが、請求項に記載の主題の精神と範囲から離れることなく他のコンピューティング装置を使用することができることを理解し了解すべきである。例えば、他のコンピューティング装置は、限定ではなく例として、ポータブルコンピューター、携帯情報端末（ＰＤＡｓ）などのハンドヘルドコンピューター、携帯電話などを含むことができる。
【００１５】
この例において、ローカルＡＶＤ／Ｒコンポーネント１１０は、ログ検査部１１２、ユーザーインターフェイスコンポーネント１１４およびシールド構築部１１６を含む。当業者に理解されるように、ローカルコンピューティング装置上のプログラムが動作中にクラッシュすると、クラッシュに関連する情報はクラッシュログに入力される。通常クラッシュログは特定のクラッシュに関するパラメーターを記述する情報を含む。例えば、クラッシュログは、クラッシュしたプログラム、プログラム内のどの機能またはインターフェイスがクラッシュしたか、および／またはクラッシュをもたらした機能またはインターフェイスに関連する任意のパラメーターを記述する情報を含むことができる。ローカルＡＶＤ／Ｒコンポーネント１１０のログ検査部１１２は、クラッシュを監視し、クラッシュが発生した場合、クラッシュログのクラッシュに関連する情報を自動的に検査する。これは、どの機能またはインターフェイスがクラッシュに関連するかの確認を含むことができる。一旦ログ検査部がクラッシュの原因を確認したら、シールド構築部１１６を使用して、その機能またはインターフェイスを無効にする自動ランタイムソリューションを効果的に提供するシールドを構築する。ついで、この事実がユーザーインターフェイス１１４を介してユーザーにレポートされる。
【００１６】
例として、以下のことを考える。ユーザーがブラウザアプリケーションしており、関数Ａｌｅｒｔ（）がクラッシュすると仮定する。クラッシュに応答して、クラッシュした関数の名前およびどこでクラッシュしたかなどの、クラッシュに関連する情報によりクラッシュログが更新される。この情報を使用して、ログ検査部１１２はシールド構築部１１６を使用して、Ａｌｅｒｔ（）を自動的に無効にするシールドを構築する。１または複数の実施形態において、シールド構築部は図に示すもののような脆弱性／緩和テーブルを保持することができる。ここで、脆弱性／緩和テーブルは脆弱性記述子を一覧にしたカラムと緩和機能を一覧にしたカラムを含む。脆弱性記述子は、緩和機能の対象である特定の機能またはインターフェイスを記述する。緩和機能は、使用されている特定の緩和機能を記述する。上記の例において、クラッシュが発生すると、シールド構築部は脆弱性／緩和テーブルに項目を作り、脆弱性記述子カラムに「Ａｌｅｒｔ（）」を追加する。さらに、シールド構築部は緩和機能カラムの対応する行に「無効」を追加する。これにより、アプリケーション、この場合はユーザーのブラウザに、Ａｌｅｒｔ（）が無効にされたことを伝える。
【００１７】
さらに、少なくとも一部の実施形態において、この事実はユーザーインターフェイスコンポーネント１１４を介してユーザーに報告される。対応するユーザーインターフェイスを使用して、ユーザーは効果的にこの機能を元に戻すことを選択する。従って、この実施形態において、脆弱性の潜在的な存在が検出され、対応する機能またはインターフェイスは選択的に無効にされ、このようにしてその後の攻撃のための利用を回避する。
【００１８】
図２は、一実施形態に係る方法におけるステップを説明する流れ図である。本方法は、任意の適当なハードウェア、ソフトウェア、ファームウェアまたはそれらの組み合わせとの関連において実施することができる。１または複数の実施形態において、本方法は図１に示しかつ説明したもののようなシステムとの関連において実施することができる。他のシステムは請求項の記載の主題の精神および範囲から離れることなく使用することができる。
【００１９】
ステップ２００でローカルのプログラムがクラッシュする。このクラッシュがどのようになされ得るかは上記で与えられている。ステップ２０２でクラッシュログを検査し、クラッシュを取り巻く環境を確認する。ステップ２０４でクラッシュの対象となった機能またはインターフェイスを無効にする。どのように無効にするかの例は上記で与えられている。ステップ２０６でユーザーに無効化された機能またはインターフェイスを通知する。
【００２０】
「リモートＡＤＶ／Ｒ」
１または複数の実施形態において、プログラムのクラッシュに関連する情報はリモートで使用することができる。特に、クラッシュが発生したとき、この情報は更なる分析のためにリモートに報告することができる。このような分析は、限定でなく例として、クラッシュのソースおよび種々の関連するパラメーターの分析、ならびに複数のユーザーに亘るこのようなクラッシュを評価してクラッシュに関連するパターンがあるかどうかを評価することを含む。脆弱性が検出された場合、対応するシールドを構築し、ユーザーに提供して、脆弱性を攻撃に利用することを要求するエクスプロイテーションから保護する。
【００２１】
例として、図３を検討する。システムは一実施形態に関し、概して３００で示されている。システム３００は、１または複数のプロセッサー３０４、１または複数のコンピューター読み取り可能な媒体３０６およびコンピューター読み取り可能な媒体に常駐し、プロセッサー（群）により実行可能な１または複数のアプリケーション３０８を有するコンピューティング装置３０２を含む。さらに、コンピューティング装置３０２は、この例ではソフトウェアに実装されるリモートＡＶＤ／Ｒコンポーネント３１０を含む。
【００２２】
コンピューティング装置３０２はデスクトップコンピューターの形態で示されているが、請求項に記載の主題の精神と範囲から離れることなく他のコンピューティング装置を使用することができることを理解し了解すべきである。例えば、他のコンピューティング装置は、限定ではなく例として、ポータブルコンピューター、携帯情報端末（ＰＤＡｓ）などのハンドヘルドコンピューター、携帯電話などを含むことができる。
【００２３】
この例において、リモートＡＶＤ／Ｒコンポーネント３１０は、ログ検査部３１２、ユーザーインターフェイスコンポーネント３１４およびクラッシュレポーターコンポーネント３１６を含む。ローカルコンピューティング装置上のプログラムが動作中にクラッシュすると、上述のようにクラッシュに関連する情報はクラッシュログに入力される。リモートＡＶＤ／Ｒコンポーネント３１０のログ検査部３１２は、クラッシュを監視し、クラッシュが発生すると、クラッシュログのクラッシュに関連する情報を自動的に検査する。これは、どの機能またはインターフェイスがクラッシュに関連するかを確認することを含むことができる。一旦ログ検査部がクラッシュの原因を確認すると、リモートＡＶＤ／Ｒコンポーネントは、ユーザーインターフェイス３１４を介して、ユーザーがクラッシュを更なる分析のためにリモートサーバーに報告することを希望するかどうかについて、そのユーザーに尋ねる。ユーザーがクラッシュ情報を報告することを選択すると、情報が集められ、サーバーにより分析される。少なくとも一部の実施形態において、クラッシュ情報の分析は人間の専門家を使用して、何らかのエクスプロイテーションが採用されているかどうかを確認することを含むことができる。
【００２４】
クラッシュログの分析が、脆弱性が攻撃のため利用されていることを示している場合、上記したもののような１または複数のシールドを、ローカルにダウンロードし適用するように、開発し使用することができる。１または複数の実施形態において、ユーザーインターフェイス３１４は、無効にされた、または無効にされている機能またはインターフェイスを再度有効にするためのオプションをユーザーに提供することができる。
【００２５】
図４は、一実施形態に関する方法におけるステップを記述する流れ図である。本方法は、適当なハードウェア、ソフトウェア、ファームウェアまたはそれらの組み合わせとの関連において実施することができる。１または複数の実施形態において、本方法は、図３に示され説明されるものなどのシステムとの関連において実施することができる。請求項の主題の精神および範囲から離れることなく、他のシステムを使用することができる。
【００２６】
ステップ４００でローカルプログラムのクラッシュを検出する。この検出は、上記で与えられている。ステップ４０２でクラッシュログを検査し、クラッシュを取り巻く環境を確認する。ステップ４０４でユーザーに問い合わせ、クラッシュをレポートすることができるかどうか確認する。ステップ４０６で、ユーザーが権限を与えられている場合、リモートサーバーにクラッシュを報告する。ステップ４０８でクラッシュの対象となった機能またはインターフェイスを効果的に無効にするシールドを受け取り実施する。シールドは、インターネットなどのネットワークを介してダウンロードすることにより受信することができる。このステップの一部として、ユーザーインターフェイスを使用して、機能またはインターフェイスを無効にするためのオプション、または機能またはインターフェイスを再度有効にするためのオプションをユーザーに与えることができる。これがどのようになされるかについては、上記で与えられている。
【００２７】
「ローカルＡＶＤ／ＲおよびリモートＡＶＤ／Ｒの両方の使用」
１または複数の実施形態において、プログラムのクラッシュに関する情報は、ローカルとリモートの両方で使用することができる。特に、クラッシュが発生したとき、この情報をローカルで使用してシールドを適用することにより、影響を受けた機能またはインターフェイスを無効にすることができる。さらに、この情報をリモートで使用して上記のように分析を行うことができる。このような分析は、限定ではなく例として、クラッシュのソースおよび種々の関連するパラメーターの分析、ならびに複数のユーザーに亘ってこのようなクラッシュを評価して、クラッシュに関連するパターンあるかどうかを確認することを含むことができる。脆弱性が検出された場合、対応するシールドを構築してユーザーに提供し、脆弱性を攻撃に利用することを要求する何らかのエクスプロイテーションから保護することができる。
【００２８】
例として、図５を検討する。システムは一実施形態に関し、概して５００で示されている。システム５００は、１または複数のプロセッサー５０４、１または複数のコンピューター読み取り可能な媒体５０６およびコンピューター読み取り可能な媒体に常駐しプロセッサー（群）により実行可能な１または複数のアプリケーション５０８を有するコンピューティング装置５０２を含む。さらに、コンピューティング装置５０２は、この例ではソフトウェアに実装されるリモートＡＶＤ／Ｒコンポーネント５１０を含む。
【００２９】
コンピューティング装置５０２はデスクトップコンピューターの形態で示されているが、請求項に記載の主題の精神と範囲から離れることなく他のコンピューティング装置を使用することができることを理解し了解すべきである。例えば、他のコンピューティング装置は、限定ではなく例として、ポータブルコンピューター、携帯情報端末（ＰＤＡｓ）などのハンドヘルドコンピューター、携帯電話などを含むことができる。
【００３０】
この例において、ローカル／リモートＡＶＤ／Ｒコンポーネント５１０は、ログ検査部５１２、ユーザーインターフェイスコンポーネント５１４、レポーターコンポーネント５１６およびシールド構築部５１８を含む。ローカルコンピューティング装置上のプログラムが動作中にクラッシュすると、上記のように、クラッシュに関連する情報はクラッシュログに入力される。ローカル／リモートＡＶＤ／Ｒ５１０のログ検査部５１２はクラッシュを監視することができ、クラッシュが発生すると、クラッシュログのクラッシュに関連する情報を自動的に検査する。この検査は、どの機能またはインターフェイスがクラッシュに関連するかについて確認することを含む。一旦ログ検査部がクラッシュの原因を確認すると、ローカル／リモートＡＶＤ／Ｒコンポーネントは、上記のように、シールドをローカルに適用して、クラッシュに関連する機能またはインターフェイスを無効にすることができる。これは、ユーザーインターフェイスコンポーネント５１４を介してユーザーに報告することもでき、ユーザーインターフェイスコンポーネント５１４は、ユーザーが無効にされた機能またはインターフェイスを再度有効にさせることもできる。
【００３１】
更に、１または複数の実施形態において、ローカル／リモートＡＶＤ／Ｒコンポーネントは、ユーザーインターフェイス５１４を介して、更なる分析のためにリモートサーバーに報告したいかどうかについてユーザーに尋ねることができる。ユーザーがクラッシュ情報を報告することを選択する場合、サーバーにより情報が集められ、分析される。少なくとも一部の実施形態において、クラッシュ情報の分析は、人間の専門家を使用して、何らかのエクスプロイテーションが採用されているかどうかについて分析し確認することを含むことができる。
【００３２】
クラッシュログの分析が、脆弱性が攻撃に利用されていることを示す場合、上記したもののような１または複数のシールドを、ローカルマシンにダウンロードし適用するように、開発し使用することができる。１または複数の実施形態において、ユーザーインターフェイス５１４は、無効にした、または無効にしている機能またはインターフェイスを再度有効にするためのオプションをユーザーに提供することができる。
【００３３】
図６は、一実施形態に係る方法におけるステップを説明する流れ図である。本方法は、任意の適当なハードウェア、ソフトウェア、ファームウェアまたはそれらの組み合わせとの関連において実施することができる。１または複数の実施形態において、本方法は図６に示しかつ説明したもののようなシステムとの関連において実施することができる。他のシステムは請求項の記載の主題の精神および範囲から離れることなく使用することができる。
【００３４】
ステップ６００でローカルのプログラムがクラッシュし、ステップ６０２でクラッシュをリモートサーバーに報告するための承認をユーザーに求める。ステップ６０４で、ユーザーの承認が与えられた場合、次にステップ６０６でクラッシュの原因を確認し、リモートサーバーにクラッシュを報告し、そのクラッシュに利用可能かもしれない何らかのソリューションを調査する。クラッシュをリモートサーバーに報告することにより、クラッシュの分析および複数のユーザーに亘る任意の関連するパターンのための分析を行うことができる。分析は、自動的な機械分析および人手による分析の両方を含むことができる。次にステップ６０８で任意の関連するシールドをローカルにダウンロードしかつ適用し、ステップ６１０でユーザーに通知する。
【００３５】
一方、ステップ６０４で承認が与えられない場合、ステップ６１２でクラッシュしている機能またはインターフェイスを特定し、ステップ６１４でシールドの適格性を判断する。ステップ６１６で、問題に対処するために適格なローカルのシールドがあると判断した場合、ステップ６１８で上記のようにシールドを適用し、ステップ６２０でユーザーに通知する。一方、適格なシールドがない場合、ステップ６２０でユーザーに通知する。
【００３６】
上記の実施形態は、任意の適当なアプリケーションとの関連意おいて実施することができ、そのアプリケーションにより使用されるアプリケーションの部分または別個のコンポーネントを含むことができる。例えば、１または複数の実施形態において、上記の機能はブラウザ、インスタントメッセージングアプリケーションまたは他の任意の適当なアプリケーションまたはソフトウェアコンポーネントまたはシステムの部分として実装することができる。例えば、この機能はオペレーティングシステムの部分として実装することができる。
【００３７】
１または複数の実施形態において、セキュリティーをさらに強化するために１または複数のいわゆるレピュテーションサービス（ｒｅｐｕｔａｔｉｏｎ  ｓｅｒｖｉｃｅ）を使用することができる。特に、レピュテーションサービスまたはサードパーティーサービスは、セキュリティーの開発用に広く監視を行い、適切な関係機関に任意の認識されたまたは実際の脆弱性を報告することができる。例えば、レピュテーションサービスは、特定のウェブページに関連する特定の機能に関連するセキュリティーの脆弱性があることを検出することができる。一旦検出されると、次にレピュテーションサービスは、マイクロソフト（会社名）などの適切な会社に脆弱を報告し、および／またはシールドを、選択的にダウンロードさせ、または他の方法で認識された脆弱性に対処するために種々のユーザーに利用可能にさせる。
【００３８】
「結論」
種々の実施形態は、セキュリティーの脆弱性を検出し、これに応答して、影響を受けたプログラムを変更することができ、その結果たとえエクスプロイトが実行されても、プログラムの全体性が維持される。少なくとも一部の実施形態において、ローカルの自動的脆弱性検出および応答（ＡＶＤ／Ｒ）コンポーネントは、ユーザーのローカルマシンで実行され、シールドの使用を通じて潜在的な脆弱性を検出し、緩和する。また、リモートの自動的脆弱性検出および応答（ＡＶＤ／Ｒ）コンポーネントは、認識された脆弱性を報告するために実行され、その結果、１または複数のシールドをローカルに送りかつ適用し、認識された脆弱性を緩和することができる。
【００３９】
本発明を構造的特徴および／または方法論的ステップに固有の言語で説明したが、添付の特許請求の範囲は説明された特定の特徴またはステップに限定する必要がないことを理解すべきである。そうではなく、特定の特徴およびステップは、請求項に記載された発明の実施の好ましい形態として説明されている。
【図１】
2010515177.tif 000003
【図２】
2010515177.tif 000004
【図３】
2010515177.tif 000005
【図４】
2010515177.tif 000006
【図５】
2010515177.tif 000007
【図６】
2010515177.tif 000008
【国際調査報告】
2010515177.tif 000009
2010515177.tif 000010