JP2010515177A - 自動的脆弱性検出および応答 - Google Patents

自動的脆弱性検出および応答 Download PDF

Info

Publication number
JP2010515177A
JP2010515177A JP2009544323A JP2009544323A JP2010515177A JP 2010515177 A JP2010515177 A JP 2010515177A JP 2009544323 A JP2009544323 A JP 2009544323A JP 2009544323 A JP2009544323 A JP 2009544323A JP 2010515177 A JP2010515177 A JP 2010515177A
Authority
JP
Japan
Prior art keywords
crash
interface
function
user
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009544323A
Other languages
English (en)
Other versions
JP2010515177A5 (ja
Inventor
ロジャース ジャスティン
エム.ローレンス エリック
エフ.ブリッジ ヘンリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010515177A publication Critical patent/JP2010515177A/ja
Publication of JP2010515177A5 publication Critical patent/JP2010515177A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0748Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

種々の実施形態はセキュリティーの脆弱性を検出し、これに応答して、影響を受けたプログラムを変更することができ、その結果たとえエクスプロイトが実行されても、そのプログラムの全体性を維持することができるようにする。少なくとも一部の実施形態において、ローカルの自動脆弱性検出および応答(AVD/R)コンポーネントは、ユーザーのローカルマシンで実行し、シールドの使用を介して潜在的脆弱性を検出および緩和する。また、リモートの自動脆弱性検出および応答(AVD/R)コンポーネントは、認識された脆弱性を報告するために実行され、認識された脆弱性を緩和するために1または複数のシールドをローカルに送りかつ適用することができるようにする。

Description

本発明は、自動的脆弱性検出および応答に関する。
ソフトウェアのセキュリティーの脆弱性を緩和する多くの方法は、受身でありかつ集中した時間を要する。即ち、一旦脆弱性が発見されると、ソフトウェア会社は通常、しばらくしてから攻撃者にその脆弱性を利用させないことを対象としてパッチをリリースする。この戦略はかつてユーザーを保護するために功を奏していたが、あるエクスプロイト(exploit)が開発された場合、導入しているユーザーがそのエクスプロイトから保護されるように、その有効性は部分的に(1)ハッカーより前に脆弱性を見つける脆弱性発見者、(2)問題を公的に明らかにする前にソフトウェア会社に報告する脆弱性発見者、および(3)パッチの高い適用速度を必要とする。
残念ながら、最近の傾向はこれらの条件にとってよい前兆ではない。特に、0日エクスプロイト(0−day exploit)(即ち、公開されていない、直されていない脆弱性に対してリリースされているエクスプロイト)の割合が増加しており、パッチの適用速度は遅くなり続けている。セキュリティーの展望がかなり悪くなるのを避けるため、ソフトウェアメーカーは脆弱性をより早く発見しかつ緩和する方法を見つけなければならない。
種々の実施形態はセキュリティーの脆弱性を検出し、これに応答して、影響を受けたプログラムを変更することができ、たとえエクスプロイトが実行されても、そのプログラムの全体性を維持することができるようにする。
少なくとも一部の実施形態において、ローカルの自動脆弱性検出および応答(AVD/R)コンポーネントは、ユーザーのローカルマシンで実行し、シールドの使用を介して潜在的脆弱性を検出および緩和する。また、リモートの自動脆弱性検出および応答(AVD/R)コンポーネントは、認識された脆弱性を報告するために実行され、その結果認識された脆弱性を緩和するために1または複数のシールドをローカルに送りかつ適用することができるようにする。
一実施形態に係るシステムを例示する図である。 一実施形態に係る方法におけるステップを説明する流れ図である。 一実施形態に係るシステムを例示する図である。 一実施形態に係る方法におけるステップを説明する流れ図である。 一実施形態に係るシステムを例示する図である。 一実施形態に係る方法におけるステップを説明する流れ図である。
「概要」
種々の実施形態はセキュリティーの脆弱性を検出し、これに応答して、影響を受けたプログラムを変更することができ、その結果たとえエクスプロイトが実行されても、そのプログラムの全体性を維持することができるようにする。
少なくとも一部の実施形態において、ローカルの自動脆弱性検出および応答(AVD/R)コンポーネントは、ユーザーのローカルマシンで実行し、シールドの使用を介して潜在的脆弱性を検出および緩和する。また、リモートの自動脆弱性検出および応答(AVD/R)コンポーネントは、認識された脆弱性を報告するために実行され、その結果認識された脆弱性を緩和するために1または複数のシールドをローカルに送りかつ適用することができるようにする。
以下の議論において、「一般的なセキュリティーの脆弱性」と題したセクションは、非常に一般的に、セキュリティーの脆弱性の概念とそれがどのように起こるかについて提供および説明する。これに続き、「ローカルAVD/R」と題したセクションは、脆弱性検出および応答のためのローカルの解決について提供および議論する。これに続き、「リモートAVD/R」と題したセクションは、脆弱性検出のための種々のリモートの解決について提供および議論する。最後に、「ローカルAVD/RおよびリモートAVD/Rの両方の使用」と題したセクションは、連続した保護を与えるためにローカルおよびリモートの両方の手法をどのように適用することができるかについて提供および説明する。
「一般的なセキュリティーの脆弱性」
多くのセキュリティーの脆弱性は、プログラミングエラーから広がる。脆弱性の原因となり得る多くの異なるタイプのプログラミングエラーがある。例えば、バッファーオーバーフローを許すエラーはプログラミングエラーとしてよく知られている。このような状況において、プログラマーはデータを保持するために特定量の空間を割り当てたかもしれない。エクスプロイター(exploiter)は、予想するよりも多いデータをプログラムに提供した場合にそれを発見するかもしれず、プログラマーがバッファーオーバーフローの可能性を緩和しまたは取り除くために正しいチェックを適切に行わなかった場合、この過剰なデータがオーバーフローをもたらし得る。このオーバーフローの状況を利用して、エクスプロイターは、バッファ内で受け取ったデータの終わりにデータまたはコードを追加し、オーバーフローを発生させることができる。追加されたデータまたはコードが実行される場合、それはプログラムを変更し、またはその機能を何らかの方法で変更する場合がある。それゆえ、プログラミングエラーによって、セキュリティーの脆弱性が利用され得る。
しかしながら、しばしば、セキュリティーの脆弱性の利用(エクスプロイテーション(exploitation))がプログラムのクラッシュ(crash)の原因となる場合がある。上記の例において、そのエクスプロイテーションはプログラムに対し、メモリの任意の部分に目を向けさせ、無効な動作をもたらすコードの実行を開始し、従って、プログラムをクラッシュさせる場合がある。
従って、プログラムのクラッシュから、プログラムによる問題があることを推測することができる。この問題は、セキュリティーの脆弱性と関連するかもしれない。即ち、(1)プログラムのクラッシュをもたらす同じプログラミングエラーの多くが攻撃に利用可能であるため、(2)エクスプロイトの開発は、相当量のトライアルとエラーを必要とする−−結果として、エクスプロイトの開発の初期段階の間は、計画の失敗がプログラムにクラッシュをもたらすため、(3)エクスプロイトはしばしばプログラムの固有のバージョンでのみ機能し、時々他のバージョンをクラッシュさせるため、プログラムのクラッシュはしばしば脆弱性のサインとなる。
「ローカルのAVD/R」
図1は、一実施形態に係るシステムを、概して100で示す。システム100は、1または複数のプロセッサー104、1または複数のコンピューター読み取り可能な媒体106およびコンピューター読み取り可能な媒体に常駐し、プロセッサー(群)により実行可能な1または複数のアプリケーション108を有するコンピューティング装置102を含む。さらに、コンピューティング装置102は、この例ではソフトウェアに実装されているローカルAVD/Rコンポーネント110を含む。
コンピューティング装置102はデスクトップコンピューターの形態で示されているが、請求項に記載の主題の精神と範囲から離れることなく他のコンピューティング装置を使用することができることを理解し了解すべきである。例えば、他のコンピューティング装置は、限定ではなく例として、ポータブルコンピューター、携帯情報端末(PDAs)などのハンドヘルドコンピューター、携帯電話などを含むことができる。
この例において、ローカルAVD/Rコンポーネント110は、ログ検査部112、ユーザーインターフェイスコンポーネント114およびシールド構築部116を含む。当業者に理解されるように、ローカルコンピューティング装置上のプログラムが動作中にクラッシュすると、クラッシュに関連する情報はクラッシュログに入力される。通常クラッシュログは特定のクラッシュに関するパラメーターを記述する情報を含む。例えば、クラッシュログは、クラッシュしたプログラム、プログラム内のどの機能またはインターフェイスがクラッシュしたか、および/またはクラッシュをもたらした機能またはインターフェイスに関連する任意のパラメーターを記述する情報を含むことができる。ローカルAVD/Rコンポーネント110のログ検査部112は、クラッシュを監視し、クラッシュが発生した場合、クラッシュログのクラッシュに関連する情報を自動的に検査する。これは、どの機能またはインターフェイスがクラッシュに関連するかの確認を含むことができる。一旦ログ検査部がクラッシュの原因を確認したら、シールド構築部116を使用して、その機能またはインターフェイスを無効にする自動ランタイムソリューションを効果的に提供するシールドを構築する。ついで、この事実がユーザーインターフェイス114を介してユーザーにレポートされる。
例として、以下のことを考える。ユーザーがブラウザアプリケーションしており、関数Alert()がクラッシュすると仮定する。クラッシュに応答して、クラッシュした関数の名前およびどこでクラッシュしたかなどの、クラッシュに関連する情報によりクラッシュログが更新される。この情報を使用して、ログ検査部112はシールド構築部116を使用して、Alert()を自動的に無効にするシールドを構築する。1または複数の実施形態において、シールド構築部は図に示すもののような脆弱性/緩和テーブルを保持することができる。ここで、脆弱性/緩和テーブルは脆弱性記述子を一覧にしたカラムと緩和機能を一覧にしたカラムを含む。脆弱性記述子は、緩和機能の対象である特定の機能またはインターフェイスを記述する。緩和機能は、使用されている特定の緩和機能を記述する。上記の例において、クラッシュが発生すると、シールド構築部は脆弱性/緩和テーブルに項目を作り、脆弱性記述子カラムに「Alert()」を追加する。さらに、シールド構築部は緩和機能カラムの対応する行に「無効」を追加する。これにより、アプリケーション、この場合はユーザーのブラウザに、Alert()が無効にされたことを伝える。
さらに、少なくとも一部の実施形態において、この事実はユーザーインターフェイスコンポーネント114を介してユーザーに報告される。対応するユーザーインターフェイスを使用して、ユーザーは効果的にこの機能を元に戻すことを選択する。従って、この実施形態において、脆弱性の潜在的な存在が検出され、対応する機能またはインターフェイスは選択的に無効にされ、このようにしてその後の攻撃のための利用を回避する。
図2は、一実施形態に係る方法におけるステップを説明する流れ図である。本方法は、任意の適当なハードウェア、ソフトウェア、ファームウェアまたはそれらの組み合わせとの関連において実施することができる。1または複数の実施形態において、本方法は図1に示しかつ説明したもののようなシステムとの関連において実施することができる。他のシステムは請求項の記載の主題の精神および範囲から離れることなく使用することができる。
ステップ200でローカルのプログラムがクラッシュする。このクラッシュがどのようになされ得るかは上記で与えられている。ステップ202でクラッシュログを検査し、クラッシュを取り巻く環境を確認する。ステップ204でクラッシュの対象となった機能またはインターフェイスを無効にする。どのように無効にするかの例は上記で与えられている。ステップ206でユーザーに無効化された機能またはインターフェイスを通知する。
「リモートADV/R」
1または複数の実施形態において、プログラムのクラッシュに関連する情報はリモートで使用することができる。特に、クラッシュが発生したとき、この情報は更なる分析のためにリモートに報告することができる。このような分析は、限定でなく例として、クラッシュのソースおよび種々の関連するパラメーターの分析、ならびに複数のユーザーに亘るこのようなクラッシュを評価してクラッシュに関連するパターンがあるかどうかを評価することを含む。脆弱性が検出された場合、対応するシールドを構築し、ユーザーに提供して、脆弱性を攻撃に利用することを要求するエクスプロイテーションから保護する。
例として、図3を検討する。システムは一実施形態に関し、概して300で示されている。システム300は、1または複数のプロセッサー304、1または複数のコンピューター読み取り可能な媒体306およびコンピューター読み取り可能な媒体に常駐し、プロセッサー(群)により実行可能な1または複数のアプリケーション308を有するコンピューティング装置302を含む。さらに、コンピューティング装置302は、この例ではソフトウェアに実装されるリモートAVD/Rコンポーネント310を含む。
コンピューティング装置302はデスクトップコンピューターの形態で示されているが、請求項に記載の主題の精神と範囲から離れることなく他のコンピューティング装置を使用することができることを理解し了解すべきである。例えば、他のコンピューティング装置は、限定ではなく例として、ポータブルコンピューター、携帯情報端末(PDAs)などのハンドヘルドコンピューター、携帯電話などを含むことができる。
この例において、リモートAVD/Rコンポーネント310は、ログ検査部312、ユーザーインターフェイスコンポーネント314およびクラッシュレポーターコンポーネント316を含む。ローカルコンピューティング装置上のプログラムが動作中にクラッシュすると、上述のようにクラッシュに関連する情報はクラッシュログに入力される。リモートAVD/Rコンポーネント310のログ検査部312は、クラッシュを監視し、クラッシュが発生すると、クラッシュログのクラッシュに関連する情報を自動的に検査する。これは、どの機能またはインターフェイスがクラッシュに関連するかを確認することを含むことができる。一旦ログ検査部がクラッシュの原因を確認すると、リモートAVD/Rコンポーネントは、ユーザーインターフェイス314を介して、ユーザーがクラッシュを更なる分析のためにリモートサーバーに報告することを希望するかどうかについて、そのユーザーに尋ねる。ユーザーがクラッシュ情報を報告することを選択すると、情報が集められ、サーバーにより分析される。少なくとも一部の実施形態において、クラッシュ情報の分析は人間の専門家を使用して、何らかのエクスプロイテーションが採用されているかどうかを確認することを含むことができる。
クラッシュログの分析が、脆弱性が攻撃のため利用されていることを示している場合、上記したもののような1または複数のシールドを、ローカルにダウンロードし適用するように、開発し使用することができる。1または複数の実施形態において、ユーザーインターフェイス314は、無効にされた、または無効にされている機能またはインターフェイスを再度有効にするためのオプションをユーザーに提供することができる。
図4は、一実施形態に関する方法におけるステップを記述する流れ図である。本方法は、適当なハードウェア、ソフトウェア、ファームウェアまたはそれらの組み合わせとの関連において実施することができる。1または複数の実施形態において、本方法は、図3に示され説明されるものなどのシステムとの関連において実施することができる。請求項の主題の精神および範囲から離れることなく、他のシステムを使用することができる。
ステップ400でローカルプログラムのクラッシュを検出する。この検出は、上記で与えられている。ステップ402でクラッシュログを検査し、クラッシュを取り巻く環境を確認する。ステップ404でユーザーに問い合わせ、クラッシュをレポートすることができるかどうか確認する。ステップ406で、ユーザーが権限を与えられている場合、リモートサーバーにクラッシュを報告する。ステップ408でクラッシュの対象となった機能またはインターフェイスを効果的に無効にするシールドを受け取り実施する。シールドは、インターネットなどのネットワークを介してダウンロードすることにより受信することができる。このステップの一部として、ユーザーインターフェイスを使用して、機能またはインターフェイスを無効にするためのオプション、または機能またはインターフェイスを再度有効にするためのオプションをユーザーに与えることができる。これがどのようになされるかについては、上記で与えられている。
「ローカルAVD/RおよびリモートAVD/Rの両方の使用」
1または複数の実施形態において、プログラムのクラッシュに関する情報は、ローカルとリモートの両方で使用することができる。特に、クラッシュが発生したとき、この情報をローカルで使用してシールドを適用することにより、影響を受けた機能またはインターフェイスを無効にすることができる。さらに、この情報をリモートで使用して上記のように分析を行うことができる。このような分析は、限定ではなく例として、クラッシュのソースおよび種々の関連するパラメーターの分析、ならびに複数のユーザーに亘ってこのようなクラッシュを評価して、クラッシュに関連するパターンあるかどうかを確認することを含むことができる。脆弱性が検出された場合、対応するシールドを構築してユーザーに提供し、脆弱性を攻撃に利用することを要求する何らかのエクスプロイテーションから保護することができる。
例として、図5を検討する。システムは一実施形態に関し、概して500で示されている。システム500は、1または複数のプロセッサー504、1または複数のコンピューター読み取り可能な媒体506およびコンピューター読み取り可能な媒体に常駐しプロセッサー(群)により実行可能な1または複数のアプリケーション508を有するコンピューティング装置502を含む。さらに、コンピューティング装置502は、この例ではソフトウェアに実装されるリモートAVD/Rコンポーネント510を含む。
コンピューティング装置502はデスクトップコンピューターの形態で示されているが、請求項に記載の主題の精神と範囲から離れることなく他のコンピューティング装置を使用することができることを理解し了解すべきである。例えば、他のコンピューティング装置は、限定ではなく例として、ポータブルコンピューター、携帯情報端末(PDAs)などのハンドヘルドコンピューター、携帯電話などを含むことができる。
この例において、ローカル/リモートAVD/Rコンポーネント510は、ログ検査部512、ユーザーインターフェイスコンポーネント514、レポーターコンポーネント516およびシールド構築部518を含む。ローカルコンピューティング装置上のプログラムが動作中にクラッシュすると、上記のように、クラッシュに関連する情報はクラッシュログに入力される。ローカル/リモートAVD/R510のログ検査部512はクラッシュを監視することができ、クラッシュが発生すると、クラッシュログのクラッシュに関連する情報を自動的に検査する。この検査は、どの機能またはインターフェイスがクラッシュに関連するかについて確認することを含む。一旦ログ検査部がクラッシュの原因を確認すると、ローカル/リモートAVD/Rコンポーネントは、上記のように、シールドをローカルに適用して、クラッシュに関連する機能またはインターフェイスを無効にすることができる。これは、ユーザーインターフェイスコンポーネント514を介してユーザーに報告することもでき、ユーザーインターフェイスコンポーネント514は、ユーザーが無効にされた機能またはインターフェイスを再度有効にさせることもできる。
更に、1または複数の実施形態において、ローカル/リモートAVD/Rコンポーネントは、ユーザーインターフェイス514を介して、更なる分析のためにリモートサーバーに報告したいかどうかについてユーザーに尋ねることができる。ユーザーがクラッシュ情報を報告することを選択する場合、サーバーにより情報が集められ、分析される。少なくとも一部の実施形態において、クラッシュ情報の分析は、人間の専門家を使用して、何らかのエクスプロイテーションが採用されているかどうかについて分析し確認することを含むことができる。
クラッシュログの分析が、脆弱性が攻撃に利用されていることを示す場合、上記したもののような1または複数のシールドを、ローカルマシンにダウンロードし適用するように、開発し使用することができる。1または複数の実施形態において、ユーザーインターフェイス514は、無効にした、または無効にしている機能またはインターフェイスを再度有効にするためのオプションをユーザーに提供することができる。
図6は、一実施形態に係る方法におけるステップを説明する流れ図である。本方法は、任意の適当なハードウェア、ソフトウェア、ファームウェアまたはそれらの組み合わせとの関連において実施することができる。1または複数の実施形態において、本方法は図6に示しかつ説明したもののようなシステムとの関連において実施することができる。他のシステムは請求項の記載の主題の精神および範囲から離れることなく使用することができる。
ステップ600でローカルのプログラムがクラッシュし、ステップ602でクラッシュをリモートサーバーに報告するための承認をユーザーに求める。ステップ604で、ユーザーの承認が与えられた場合、次にステップ606でクラッシュの原因を確認し、リモートサーバーにクラッシュを報告し、そのクラッシュに利用可能かもしれない何らかのソリューションを調査する。クラッシュをリモートサーバーに報告することにより、クラッシュの分析および複数のユーザーに亘る任意の関連するパターンのための分析を行うことができる。分析は、自動的な機械分析および人手による分析の両方を含むことができる。次にステップ608で任意の関連するシールドをローカルにダウンロードしかつ適用し、ステップ610でユーザーに通知する。
一方、ステップ604で承認が与えられない場合、ステップ612でクラッシュしている機能またはインターフェイスを特定し、ステップ614でシールドの適格性を判断する。ステップ616で、問題に対処するために適格なローカルのシールドがあると判断した場合、ステップ618で上記のようにシールドを適用し、ステップ620でユーザーに通知する。一方、適格なシールドがない場合、ステップ620でユーザーに通知する。
上記の実施形態は、任意の適当なアプリケーションとの関連意おいて実施することができ、そのアプリケーションにより使用されるアプリケーションの部分または別個のコンポーネントを含むことができる。例えば、1または複数の実施形態において、上記の機能はブラウザ、インスタントメッセージングアプリケーションまたは他の任意の適当なアプリケーションまたはソフトウェアコンポーネントまたはシステムの部分として実装することができる。例えば、この機能はオペレーティングシステムの部分として実装することができる。
1または複数の実施形態において、セキュリティーをさらに強化するために1または複数のいわゆるレピュテーションサービス(reputation service)を使用することができる。特に、レピュテーションサービスまたはサードパーティーサービスは、セキュリティーの開発用に広く監視を行い、適切な関係機関に任意の認識されたまたは実際の脆弱性を報告することができる。例えば、レピュテーションサービスは、特定のウェブページに関連する特定の機能に関連するセキュリティーの脆弱性があることを検出することができる。一旦検出されると、次にレピュテーションサービスは、マイクロソフト(会社名)などの適切な会社に脆弱を報告し、および/またはシールドを、選択的にダウンロードさせ、または他の方法で認識された脆弱性に対処するために種々のユーザーに利用可能にさせる。
「結論」
種々の実施形態は、セキュリティーの脆弱性を検出し、これに応答して、影響を受けたプログラムを変更することができ、その結果たとえエクスプロイトが実行されても、プログラムの全体性が維持される。少なくとも一部の実施形態において、ローカルの自動的脆弱性検出および応答(AVD/R)コンポーネントは、ユーザーのローカルマシンで実行され、シールドの使用を通じて潜在的な脆弱性を検出し、緩和する。また、リモートの自動的脆弱性検出および応答(AVD/R)コンポーネントは、認識された脆弱性を報告するために実行され、その結果、1または複数のシールドをローカルに送りかつ適用し、認識された脆弱性を緩和することができる。
本発明を構造的特徴および/または方法論的ステップに固有の言語で説明したが、添付の特許請求の範囲は説明された特定の特徴またはステップに限定する必要がないことを理解すべきである。そうではなく、特定の特徴およびステップは、請求項に記載された発明の実施の好ましい形態として説明されている。

Claims (20)

  1. ローカルプログラムのクラッシュを検出する動作と、
    前記検出に応答して、前記プログラムのクラッシュの被害を受けた機能またはインターフェイスを無効にする動作と
    を含むことを特徴とするコンピューター実施方法。
  2. 前記検出する動作の後でかつ前記無効にする動作の前に、クラッシュのログを検査して前記プログラムのクラッシュに関連する機能またはインターフェイスを確認する動作をさらに備えることを特徴とする請求項1に記載の方法。
  3. 機能またはインターフェイスが無効にされたことをユーザーに通知する動作をさらに備えることを特徴とする請求項1に記載の方法。
  4. 前記無効にする動作は、シールドを構築しかつ適用することにより実行されることを特徴とする請求項1に記載の方法。
  5. 前記シールドは、自動的な、実行時ソリューションを提供することを特徴とする請求項4に記載の方法。
  6. 前記構築する動作および前記適用する動作は、脆弱性を緩和機能と関連付ける脆弱性/緩和テーブルを使用することにより実行されることを特徴とする請求項4に記載の方法。
  7. 前記検出する動作および前記無効にする動作は、ウェブ・ブラウザにより実行されることを特徴とする請求項1に記載の方法。
  8. 実行されたとき、請求項1に記載の方法を実施するコンピューター読み取り可能な命令を有することを特徴とする1または複数のコンピューター読み取り可能な媒体。
  9. 請求項8に記載の1または複数のコンピューター読み取り可能な媒体を具体化したことを特徴とするコンピューターシステム。
  10. ローカルプログラムのクラッシュを検出する動作と、
    前記検出に応答して、ユーザーに問い合わせて前記プログラムのクラッシュを報告することができるか確認する動作と、
    前記ローカルプログラムのクラッシュをレポートする動作と、
    前記レポートに応答して、前記プログラムのクラッシュの被害を受けた機能またはインターフェイスを無効にするために有効なシールドを受信しかつ適用する動作と
    を含むことを特徴とするコンピューター実施方法。
  11. 機能またはインターフェイスが無効にされたことをユーザーに通知する動作をさらに含むことを特徴とする請求項10に記載の方法。
  12. 前記ユーザーに、ユーザーインターフェイスを介して、無効にされた前記機能またはインターフェイスを再度有効にするためのオプションを提供する動作をさらに含むことを特徴とする請求項10に記載の方法。
  13. 前記適用する動作は、脆弱性を緩和機能と関連付ける脆弱性/緩和テーブルを使用することにより実行されることを特徴とする請求項10に記載の方法。
  14. 前記検出に応答して、クラッシュのログを検査して前記プログラムのクラッシュに関連する機能またはインターフェイスを確認する動作をさらに含むことを特徴とする請求項10に記載の装置。
  15. 前記検出する動作、前記問い合わせる動作、前記レポートする動作、前記受信しかつ適用する動作はウェブ・ブラウザにより実行されることを特徴とする請求項10に記載の方法。
  16. 実行されたとき、請求項10に記載の方法を実施するコンピューター読み取り可能な命令を有することを特徴とする1または複数のコンピューター読み取り可能な媒体。
  17. 請求項16に記載の1または複数のコンピューター読み取り可能な媒体を具体化したことを特徴とするコンピューターシステム。
  18. ローカルプログラムのクラッシュを検出する動作と、
    ユーザーに前記クラッシュをリモートサーバーへレポートするための承認を要求する動作と、
    ユーザーの承認が与えられた場合、
    前記クラッシュを前記リモートサーバーへレポートする動作と、
    前記レポートに応答して、前記クラッシュに関連する機能またはインターフェイスを無効にするように構成された1または複数のシールドをダウンロードする動作と、
    前記1または複数のシールドを適用して前記機能またはインターフェイスを無効にする動作と、
    ユーザーの承認が与えられなかった場合、前記プログラムのクラッシュの被害を受けた機能またはインターフェイスを無効にする動作と
    を含むことを特徴とするコンピューター実施方法。
  19. 前記ユーザーに、ユーザーインターフェイスを介して、無効にされた前記機能またはインターフェイスを再度有効にするためのオプションを提供する動作を更に備えることを特徴とする請求項18に記載の方法。
  20. 前記検出する動作および前記要求する動作はウェブ・ブラウザにより実行されることを特徴とする請求項18に記載の方法。
JP2009544323A 2006-12-29 2007-12-31 自動的脆弱性検出および応答 Pending JP2010515177A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/618,470 US8453245B2 (en) 2006-12-29 2006-12-29 Automatic vulnerability detection and response
PCT/US2007/089221 WO2008083382A1 (en) 2006-12-29 2007-12-31 Automatic vulnerability detection and response

Publications (2)

Publication Number Publication Date
JP2010515177A true JP2010515177A (ja) 2010-05-06
JP2010515177A5 JP2010515177A5 (ja) 2011-02-17

Family

ID=39586025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009544323A Pending JP2010515177A (ja) 2006-12-29 2007-12-31 自動的脆弱性検出および応答

Country Status (10)

Country Link
US (1) US8453245B2 (ja)
EP (1) EP2118802A4 (ja)
JP (1) JP2010515177A (ja)
KR (1) KR20090117705A (ja)
CN (1) CN101573712A (ja)
AU (1) AU2007341952B2 (ja)
BR (1) BRPI0720666A2 (ja)
MX (1) MX2009007064A (ja)
RU (1) RU2462754C2 (ja)
WO (1) WO2008083382A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101619691B1 (ko) 2015-01-22 2016-05-10 주식회사 엔씨소프트 프로그램 오류 분석 방법 및 시스템
JP2018522359A (ja) * 2015-08-11 2018-08-09 シマンテック コーポレーションSymantec Corporation コンピューティングプロセス内の未知の脆弱性を検出するためのシステム及び方法
WO2018154701A1 (ja) * 2017-02-24 2018-08-30 株式会社Fuji 不具合情報共有システム

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8453245B2 (en) 2006-12-29 2013-05-28 Microsoft Corporation Automatic vulnerability detection and response
US8627475B2 (en) * 2010-04-08 2014-01-07 Microsoft Corporation Early detection of potential malware
US20120311715A1 (en) * 2011-05-30 2012-12-06 Yaron Tal System and method for protecting a website from hacking attacks
CN103595708B (zh) * 2013-10-22 2017-08-25 北京奇虎科技有限公司 浏览器异常关闭的处理方法、系统、浏览器和服务器
CN103595765B (zh) * 2013-10-22 2016-11-09 北京奇虎科技有限公司 浏览器异常关闭的处理方法、系统、浏览器和服务器
US10445505B2 (en) 2014-09-22 2019-10-15 Mcafee, Llc Process vulnerability assessment
US10089473B2 (en) 2014-12-24 2018-10-02 Sap Se Software nomenclature system for security vulnerability management
CN110096873A (zh) 2018-01-31 2019-08-06 开利公司 通过补丁变换的自动诱饵推导
US11340894B2 (en) 2019-04-30 2022-05-24 JFrog, Ltd. Data file partition and replication
US11886390B2 (en) 2019-04-30 2024-01-30 JFrog Ltd. Data file partition and replication
US11386233B2 (en) 2019-04-30 2022-07-12 JFrog, Ltd. Data bundle generation and deployment
WO2021014326A2 (en) 2019-07-19 2021-01-28 JFrog Ltd. Software release verification
US11307920B2 (en) 2019-11-26 2022-04-19 Disney Enterprises, Inc. Automated crash recovery
RU2739831C1 (ru) * 2019-11-27 2020-12-28 Акционерное общество "Лаборатория Касперского" Способ устранения неполадки, возникшей при работе приложения
RU2739867C1 (ru) * 2019-11-27 2020-12-29 Акционерное общество "Лаборатория Касперского" Способ определения модуля приложения, связанного с причиной неполадки, возникшей при работе приложения
US11860680B2 (en) 2020-11-24 2024-01-02 JFrog Ltd. Software pipeline and release validation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0433105A (ja) * 1990-05-30 1992-02-04 Toshiba Corp プログラマブル・コントローラのプログラム監視装置
JP2002264455A (ja) * 2001-03-07 2002-09-18 Canon Inc 画像形成装置および画像形成装置管理装置および画像形成装置の制御方法および画像形成装置管理装置の制御方法および記憶媒体
US6629267B1 (en) * 2000-05-15 2003-09-30 Microsoft Corporation Method and system for reporting a program failure
JP2006094046A (ja) * 2004-09-22 2006-04-06 Fuji Xerox Co Ltd 複合機および複合機の管理システム
JP2006127422A (ja) * 2004-11-01 2006-05-18 Ntt Docomo Inc 端末制御装置及び端末制御方法
JP2006228206A (ja) * 2005-02-17 2006-08-31 Microsoft Corp 識別された脆弱性を遮蔽するためのシステムおよび方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6874084B1 (en) 2000-05-02 2005-03-29 International Business Machines Corporation Method and apparatus for establishing a secure communication connection between a java application and secure server
US6675295B1 (en) * 2000-06-19 2004-01-06 Microsoft Corporation Method and computer system for detecting and correcting a failure in a computer application program during startup
US6708333B1 (en) 2000-06-23 2004-03-16 Microsoft Corporation Method and system for reporting failures of a program module in a corporate environment
US20020124172A1 (en) 2001-03-05 2002-09-05 Brian Manahan Method and apparatus for signing and validating web pages
US7313822B2 (en) 2001-03-16 2007-12-25 Protegrity Corporation Application-layer security method and system
US7096362B2 (en) 2001-06-01 2006-08-22 International Business Machines Corporation Internet authentication with multiple independent certificate authorities
US7231659B2 (en) 2001-07-31 2007-06-12 Verisign, Inc. Entity authentication in a shared hosting computer network environment
US7562222B2 (en) 2002-05-10 2009-07-14 Rsa Security Inc. System and method for authenticating entities to users
KR100777938B1 (ko) 2003-09-04 2007-11-21 싸이언스 파크 가부시키가이샤 부정 코드 실행의 방지 방법, 및 부정 코드 실행의 방지용 프로그램의 기록매체
US7437764B1 (en) * 2003-11-14 2008-10-14 Symantec Corporation Vulnerability assessment of disk images
RU2261470C1 (ru) * 2004-03-01 2005-09-27 Федеральное государственное унитарное предприятие "Научно-производственное предприятие "Полет" Устройство программного управления
US7413085B2 (en) 2004-09-07 2008-08-19 Iconix, Inc. Techniques for displaying emails listed in an email inbox
US7979889B2 (en) 2005-01-07 2011-07-12 Cisco Technology, Inc. Methods and apparatus providing security to computer systems and networks
US7743254B2 (en) 2005-03-23 2010-06-22 Microsoft Corporation Visualization of trust in an address bar
US7735136B2 (en) * 2005-04-18 2010-06-08 Vmware, Inc. 0-touch and 1-touch techniques for improving the availability of computer programs under protection without compromising security
US8453245B2 (en) 2006-12-29 2013-05-28 Microsoft Corporation Automatic vulnerability detection and response

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0433105A (ja) * 1990-05-30 1992-02-04 Toshiba Corp プログラマブル・コントローラのプログラム監視装置
US6629267B1 (en) * 2000-05-15 2003-09-30 Microsoft Corporation Method and system for reporting a program failure
JP2002264455A (ja) * 2001-03-07 2002-09-18 Canon Inc 画像形成装置および画像形成装置管理装置および画像形成装置の制御方法および画像形成装置管理装置の制御方法および記憶媒体
JP2006094046A (ja) * 2004-09-22 2006-04-06 Fuji Xerox Co Ltd 複合機および複合機の管理システム
JP2006127422A (ja) * 2004-11-01 2006-05-18 Ntt Docomo Inc 端末制御装置及び端末制御方法
JP2006228206A (ja) * 2005-02-17 2006-08-31 Microsoft Corp 識別された脆弱性を遮蔽するためのシステムおよび方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101619691B1 (ko) 2015-01-22 2016-05-10 주식회사 엔씨소프트 프로그램 오류 분석 방법 및 시스템
JP2018522359A (ja) * 2015-08-11 2018-08-09 シマンテック コーポレーションSymantec Corporation コンピューティングプロセス内の未知の脆弱性を検出するためのシステム及び方法
WO2018154701A1 (ja) * 2017-02-24 2018-08-30 株式会社Fuji 不具合情報共有システム
JPWO2018154701A1 (ja) * 2017-02-24 2019-11-07 株式会社Fuji 不具合情報共有システム
US11157344B2 (en) 2017-02-24 2021-10-26 Fuji Corporation Failure information sharing system

Also Published As

Publication number Publication date
WO2008083382A1 (en) 2008-07-10
MX2009007064A (es) 2009-07-09
CN101573712A (zh) 2009-11-04
EP2118802A4 (en) 2012-08-22
US8453245B2 (en) 2013-05-28
EP2118802A1 (en) 2009-11-18
RU2009129132A (ru) 2011-02-10
US20080163374A1 (en) 2008-07-03
AU2007341952A1 (en) 2008-07-10
BRPI0720666A2 (pt) 2014-01-14
RU2462754C2 (ru) 2012-09-27
AU2007341952B2 (en) 2011-10-13
KR20090117705A (ko) 2009-11-12

Similar Documents

Publication Publication Date Title
JP2010515177A (ja) 自動的脆弱性検出および応答
US20220284094A1 (en) Methods and apparatus for malware threat research
TWI559166B (zh) 應用程式的威脅程度評估
US7665139B1 (en) Method and apparatus to detect and prevent malicious changes to tokens
RU2566329C2 (ru) Способ защиты компьютерной системы от вредоносного программного обеспечения
US20170171229A1 (en) System and method for determining summary events of an attack
US7845006B2 (en) Mitigating malicious exploitation of a vulnerability in a software application by selectively trapping execution along a code path
US20170331848A1 (en) System and method of comparative evaluation for phishing mitigation
Reis et al. Browser security: lessons from google chrome
US20110277035A1 (en) Detection of Malicious System Calls
AU2006252969A1 (en) Methods and systems for repairing applications
US11163645B2 (en) Apparatus and method of control flow integrity enforcement utilizing boundary checking
JPWO2004075060A1 (ja) コンピュータウィルス判断方法
JP2013168141A (ja) マルウェアの検出方法
CN102446253B (zh) 一种网页木马检测方法及系统
Reis et al. Browser Security: Lessons from Google Chrome: Google Chrome developers focused on three key problems to shield the browser from attacks.
US9483645B2 (en) System, method, and computer program product for identifying unwanted data based on an assembled execution profile of code
WO2019005395A2 (en) MITIGATION OF MALICIOUS ACTIONS ASSOCIATED WITH GRAPHICAL USER INTERFACE ELEMENTS
US20170171224A1 (en) Method and System for Determining Initial Execution of an Attack
KR100976961B1 (ko) 인터넷 사이트 보안 시스템 및 그 방법
Dao et al. Security sensitive data flow coverage criterion for automatic security testing of web applications
CN111177726A (zh) 一种系统漏洞检测方法、装置、设备及介质
KR20090080220A (ko) 유해 프로세스 검출/차단 재발방지 방법
CA3236695A1 (en) Memory hybrid-dynamic vulnerability assessment
Turner To Patch or Not to Patch?

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101224

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120510

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120713