(57)【要約】  本発明の幾つかの実施形態によれば、アプリケーションを攻撃から保護するシステム及び方法が提供される。本発明の幾つかの実施形態において、通信ネットワークからのトラフィックは、異常検出構成要素によって受信される。異常検出構成要素は、受信されたトラフィックをモニターし、保護されたアプリケーション、又はアプリケーションと全ての状態情報を共用するハニーポットのいずれかにトラフィックを転送する。受信されたトラフィックがハニーポットに転送された場合、ハニーポットは、攻撃についてトラフィックをモニターする。攻撃が発生した場合、ハニーポットは保護されたアプリケーションを修復する（例えば、攻撃から被ったあらゆる状態変化を廃棄すること、又は以前にセーブされた状態情報に復帰すること、その他）。【選択図】図３
2008537267.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを攻撃から保護するための方法であって、前記方法が、
アプリケーションに到達しようとする通信ネットワークからのトラフィックを受信する段階と、
前記受信されたトラフィックが前記アプリケーションに対する潜在的な攻撃であるかどうかを予測し且つ低偽陰性率を達成するように調整された異常検出構成要素を介して前記受信されたトラフィックを送信する段階と、
前記アプリケーションに対する潜在的な攻撃の予測に関しての前記異常検出構成要素からの指示を受信する段階と、
前記異常検出構成要素からの前記指示の受信に応答して、前記アプリケーションと状態情報を共用する前記アプリケーションのインスタンスであり且つ前記受信されたトラフィックを前記アプリケーションへの攻撃についてモニターするハニーポットに対して、前記受信されたトラフィックを送信する段階と、
前記受信されたトラフィックが前記アプリケーションへの攻撃であることの指示を前記ハニーポットから受信する段階と、
前記ハニーポットから命令を受信して、前記アプリケーションの状態情報を修復する段階と、
を含む方法。
【請求項２】
前記修復が、前記アプリケーションの状態情報を以前にセーブされた状態情報にロールバックする段階を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記修復が、前記アプリケーションの状態情報を廃棄する段階を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記修復が、前にセーブされた状態情報を有する前記アプリケーションの新しいインスタンスを初期化する段階を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記受信されたトラフィックを前記異常検出構成要素に送信する前に、前記受信されたトラフィックをフィルタリングする段階を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記フィルタリングは、ペイロードコンテンツ及び前記攻撃のソースのうちの少なくとも１つに基づく、
ことを特徴とする請求項５に記載の方法。
【請求項７】
前記ハニーポットからのフィードバックを前記異常検出構成要素に送信する段階を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項８】
前記ハニーポットからのフィードバックに少なくとも一部基づいて前記異常検出構成要素を更新する段階を更に含む、
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記異常検出構成要素に関連した予測子及びモデルのうちの少なくとも１つを更新する段階を更に含む、
ことを特徴とする請求項７に記載の方法。
【請求項１０】
前記フィードバックを使用して前記異常検出構成要素を自動的に調整する段階を更に含む、
ことを特徴とする請求項７に記載の方法。
【請求項１１】
前記フィードバックを使用してフィルタを自動的に調整する段階を更に含む、
ことを特徴とする請求項７に記載の方法。
【請求項１２】
前記アプリケーションは、サーバアプリケーション、クライアントアプリケーション、オペレーティングシステム、及びメインフレーム上のアプリケーションのうちの１つである、
ことを特徴とする請求項１に記載の方法。
【請求項１３】
前記異常検出構成要素の前にフィルタを設ける段階と、
前記ハニーポットからのフィードバックを前記フィルタに送信する段階と、
前記ハニーポットからのフィードバックに少なくとも一部基づいて前記フィルタを更新する段階と、
を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項１４】
攻撃からアプリケーションを保護するためのシステムであって、前記システムが、
アプリケーションに到達しようとする通信ネットワークからのトラフィックを受信し、
前記受信されたトラフィックが前記アプリケーションへの潜在的な攻撃であるかどうかを予測する、
ように構成され、低偽陰性率を達成するように調整された異常検出構成要素と、
前記潜在的な攻撃の予測に関しての前記異常検出構成要素からの指示を受信し、
前記アプリケーションへの攻撃について前記受信されたトラフィックをモニターし、
前記受信されたトラフィックが前記アプリケーションへの攻撃であることの判定に応答して、前記アプリケーションの状態情報を修復する、
ように構成され、前記アプリケーションと状態情報を共用する前記アプリケーションのインスタンスであるハニーポットと、
を備えるシステム。
【請求項１５】
前記ハニーポットは、前記アプリケーションの状態情報を以前にセーブされた状態情報にロールバックするように更に構成されている、
ことを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記ハニーポットは、前記アプリケーションの状態情報を廃棄するように更に構成されている、
ことを特徴とする請求項１４に記載のシステム。
【請求項１７】
前記ハニーポットは、以前にセーブされた状態情報を有する前記アプリケーションの新しいインスタンスを初期化するように更に構成されている、
ことを特徴とする請求項１４に記載のシステム。
【請求項１８】
前記受信されたトラフィックを前記異常検出構成要素に送信する前に、前記受信されたトラフィックをフィルタリングするフィルタを更に備える、
ことを特徴とする請求項１４に記載のシステム。
【請求項１９】
前記ハニーポットは、前記ハニーポットからのフィードバックを前記異常検出構成要素に送信するように更に構成されている、
ことを特徴とする請求項１４に記載のシステム。
【請求項２０】
前記異常検出構成要素は、前記ハニーポットからのフィードバックに少なくとも一部基づいて、前記異常検出構成要素を更新するように更に構成されている、
ことを特徴とする請求項１９に記載のシステム。
【請求項２１】
前記異常検出構成要素は、前記異常検出構成要素に関連した予測子及びモデルのうちの少なくとも１つを更新するように更に構成されている、
ことを特徴とする請求項１９に記載のシステム。
【請求項２２】
前記異常検出構成要素は、前記フィードバックの少なくとも一部に基づいて前記異常検出構成要素を調整するように更に構成されている、
ことを特徴とする請求項１９に記載のシステム。
【請求項２３】
前記異常検出構成要素の前に前記トラフィックを受信するように構成されたフィルタを更に備え、前記フィルタが、前記ハニーポットからフィードバックを受信し、前記ハニーポットからのフィードバックに少なくとも一部基づいて更新される、
ことを特徴とする請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、引用により全体が本明細書に組み込まれる２００５年４月１８日に出願された米国暫定特許出願第６０／６７２，２８０号の３５Ｕ．Ｓ．Ｃ．§１１９（ｅ）に基づく利益を主張する。
【０００２】
本発明は、コンピュータセキュリティの分野に関する。より詳細には、本発明は、ソフトウェア攻撃を検出し抑止するためのシステム及び方法に関する。
【背景技術】
【０００３】
コンピュータウイルス、ワーム、トロイの木馬、ハッカー、キー・リカバリ攻撃、悪意のある実行ファイル、プローブ、その他は、公共コンピュータネットワーク（インターネットなど）及び／又はプライベートネットワーク（企業コンピュータネットワークなど）に接続されたコンピュータのユーザにとって脅威である。これらの脅威に対して、多くのコンピュータはアンチウイルスソフトウェア及びファイアウォールによって保護されている。しかしながら、これらの予防措置が常に適切であるとは限らない。例えば、人々が脆弱性に気付いた翌日にワーム及び他の攻撃がコンピュータソフトウェアにおいて（例えばファイアウォール技術において）の既知の脆弱性を利用していた多くの事例がある。このような急速な攻撃開始に起因して、攻撃を防ぐために脆弱性を修正するのに必要なパッチの配布を間に合わせることができない。同様に、ほとんどのアンチウイルスソフトウェアは、既知のウイルスの署名を用いて脅威を認識することができるようなこうしたソフトウェアの更新に依存している。「ゼロ−デイ」ワーム又はウイルス（例えば、開始されたばかりのワーム又はウイルス）の場合は、既知のパッチ又は署名更新が未だ利用可能ではないので、ほとんどのコンピュータシステムが攻撃に対しては完全に脆弱である。
【０００４】
こうしたレベルのインターネット上の悪意のあるアクティビティによって、組織は、新しい攻撃又は疑わしいアクティビティを検出し対処するための機構を配備しており、これは侵入防止システムと呼ばれることもある。しかしながら、これらの侵入防止システムの多くは、ルールベース侵入検出システムを使用しているので、既知の攻撃に対して保護することに制限される。
【０００５】
ハニーポット及び異常検出システムなどの検出メカニズムは、より強力な反応−防御システムで使用するために開発されてきた。侵入検出システムとは対照的に、ハニーポット及び異常検出システムは、これまで知られていない攻撃又は「ゼロ−デイ」攻撃を検出し対処する可能性を提供する。ハニーポットは、一般に、情報システムの許可されていない使用の試みを検出又はそらすように設定されたトラップとして定義される。しかしながら、ハニーポットは合法的なトラフィック又はアクティビティを調べない点に留意すべきである。この理由の１つとしては、ハニーポットは、合法的なトラフィックがアクセスする理由がないネットワークロケーションに配置されることが多いからである。別の理由は、通常ハニーポットがあまりにも遅く実世界アプリケーションに要求される時間内にトラフィックを処理できないからである。更に別の理由は、ハニーポットが、例えば実際のシステムと状態を完全に共有しないので合法的なトラフィックを十分にサービスする能力がないからである。異常検出システムは、リソースへの試行アクセスをモニタリングしヒューリスティックを使用してアクセスを正常又は異常に分類することによってリソースを保護する。ハニーポット及び異常検出システムは、検出できる正確さと攻撃の範囲との間の種々のトレードオフを提供する。
【０００６】
ハニーポットは、正確に攻撃を検出するように厳重に備え付けることができるが、これは、ハニーポットに対する脆弱性を悪用しようとするアタッカー次第である。このことは、ハニーポットをスキャニングワームの検出に対しては効果的なものにするが、マニュアル指向の攻撃又はトポロジカル及びヒット−リストワームに対しては効果がないものになる。更にハニーポットは通常、サーバ−タイプアプリケーションにのみ使用される。
【０００７】
異常検出システムは、理論的には両方のタイプの攻撃を検出することができるが、通常は、ハニーポットほど正確ではない。ほとんどの異常検出システムは、偽陽性と偽陰性の検出率の間のトレードオフを提供する。例えば、より潜在的な攻撃を検出するようにシステムを調整できることがあるが、これは、合法的なトラフィックを誤って分類してしまうリスクが高くなる。また異常検出システムの攻撃に対する感度をより低くすることもできるが、これは、幾つかの実際の攻撃を見逃してしまうリスクが高くなる。異常検出システムは、例えば合法的な要求を逃すことによって合法的なトラフィックに悪影響を与える可能性があるので、システム設計者は、攻撃を合法的なトラフィックとして誤って分類する可能性のある低偽陽性率に対してシステムを調整することが多い。
【０００８】
従って、従来技術のこれら及び他の欠陥を克服するシステム及び方法を提供することが望まれる。
【発明の開示】
【０００９】
本発明の幾つかの実施形態において、アプリケーションを攻撃から保護するためのシステム及び方法が供給される。受信されたトラフィック（例えばネットワークトラフィック）は、異常検出構成要素を介して送信される。異常検出構成要素は、受信されたトラフィックがアプリケーションへの潜在的な攻撃であるかどうかを予測し、異常検出構成要素は、低偽陰性率を達成するように調整される。トラフィックが攻撃である可能性があることの指示を異常検出構成要素から受信したことに応答して、受信されたトラフィックをハニーポットに送信する。ハニーポットは、アプリケーションと状態情報を共用するアプリケーションの実装されたインスタンスとすることができる。幾つかの実施形態において、ハニーポットは保護されたアプリケーション自体の少なくとも一部である可能性がある点に留意されたい。ハニーポットは、アプリケーションへの攻撃について受信されたトラフィックをモニターする。受信されたトラフィックがアプリケーションへの攻撃であることの指示をハニーポットから受け取ったことに応答して、ハニーポットは、アプリケーションの状態情報を修復するための指示を提供する。
【００１０】
幾つかの実施形態において、修復は、アプリケーションの状態情報を以前にセーブされた状態情報にロールバックする段階を含むことができる。幾つかの実施形態において、修復は、アプリケーションの状態情報を廃棄する段階を含むことができる。幾つかの実施形態において、修復は、以前にセーブされた状態情報を有するアプリケーションの新しいインスタンスを初期化する段階を含むことができる。
【００１１】
幾つかの実施形態において、受信されたトラフィックを異常検出構成要素に送信する前にトラフィックをフィルタリングするフィルタを設けることができる。フィルタリングは、ペイロードコンテンツ及び攻撃のソースのうちの少なくとも１つに基づくものとすることができる。
【００１２】
幾つかの実施形態において、ハニーポットによるフィードバックを提供することができる。幾つかの実施形態において、ハニーポットからのフィードバックを用いて、異常検出構成要素（例えば、異常検出構成要素に関連した予測子及びモデル）及び／又はフィルタを更新することができる。幾つかの実施形態において、フィードバックを使用して異常検出構成要素及び／又はフィルタを自動的に調整することができる。
【００１３】
以上、以下の本発明の詳細な説明をより理解するため、及び当該技術分野への本発明の寄与をより正しく評価する目的で本発明のより重要な特徴をかなり広範に概説してきた。勿論、以下に説明され、添付の請求項の主題を形成することになる本発明の更なる特徴が存在する。
【００１４】
これに関して、本発明の少なくとも１つの実施形態を詳細に説明する前に、本発明は、以下の説明において記載され又は図面で示された構造の詳細及び構成要素の構成に対する応用に限定されない点を理解されたい。本発明は、他の実施形態が可能であり、種々の方法で実施及び実行することができる。また、本明細書で用いられる表現及び用語は説明の目的のものであり、限定と見なすべきでないことを理解されたい。
【００１５】
従って、当業者であれば、本開示が基づく概念が、本発明の幾つかの目的を果たすための他の構造、方法、及びシステムの設計の基礎として容易に利用できることが理解されるであろう。その結果、重要なのは、本発明の精神及び範囲から逸脱しない限り請求項がこれらの均等な構造を含むものとしてみなされることである。
【００１６】
本発明を特徴付ける新規性の種々の特徴と共に、これらの目的及び本発明の他の目的は、本開示の一部に添付され且つ一部を形成する請求項において特異性が明らかにされる。本発明、その動作の利点、並びに使用によって得られる特定の目的をより理解するためには、本発明の好ましい実施形態が図示される添付図面及び説明部分を参照すべきである。
【発明を実施するための最良の形態】
【００１７】
本発明の上記及び他の利点は、同様の参照符号が図面全体を通じて同様の要素を示す添付図面と共に以下の詳細な説明を考慮すれば明らかになるであろう。
【００１８】
以下の説明では、本発明を十分に理解するために、本発明のシステム及び方法、並びにこうしたシステム及び方法が動作可能な環境などに関して多くの特定の詳細が記載される。しかしながら、本発明はこうした特定の詳細がなくとも実施することができ、本発明の対象が複雑になるのを避けるために当技術分野で公知の幾つかの特徴が詳細には説明されていない点は、当業者には明らかであろう。加えて、以下に提示される実施例は例証であり、本発明の範囲内にある他の方法及びシステムの存在が企図される点は理解されるであろう。
【００１９】
本発明によれば、アプリケーションに対する攻撃からの保護を改善するシステム及び方法が提供される。これらのシステム及び方法は、少なくとも１つの異常検出器と少なくとも１つのハニーポット（「シャドーハニーポット」と呼ばれることもある）を提供する。これらのシャドーハニーポットは、攻撃の兆候を検出することを可能にし、アプリケーションをこのような攻撃から保護することを可能にする。異常検出器は、保護されるアプリケーションに送られた全てのトラフィックをモニターする。異常とみなされるトラフィックをアプリケーションが処理できる代わりに、異常トラフィックは、ハニーポットによって処理される。本明細書で使用されるハニーポットは、実質的に全ての内部状態をアプリケーションの正規インスタンスと共用する保護されたアプリケーションのインスタンスである。しかしながら、ハニーポットは種々の手法で提供することができる。例えば、幾つかの実施形態では、ハニーポットアプリケーションは、保護されたアプリケーション自体の少なくとも一部とすることができる。ハニーポットを使用すると、ハニーポットに対する攻撃が検出され、ハニーポットがアプリケーションを修復する（例えば、被ったあらゆる状態変化が廃棄される）。他の実施形態では、アプリケーションを再起動し、攻撃の前にセーブされた状態情報をロードすることができる。異常検出器によって誤って分類された合法的なトラフィックは、ハニーポットによって妥当性が確認され、システムによって正しく且つユーザに透過的に処理することができる。シャドーハニーポットは、サーバアプリケーションとクライアントアプリケーションの両方の保護に対して用いることができる点に留意されたい。
【００２０】
本発明の幾つかの実施形態によって、システム設計者は、低偽陰性率に対して異常検出システムを調整することが可能となり、これによって、ハニーポットがあらゆる偽陽性（又は攻撃に関する誤ってトリガされた指示）を取り除くので、実際の攻撃を合法的なトラフィックとして誤って分類するリスクが最小になる。本発明は、特定の内部状態を有する特別なサイトにカスタマイズされた攻撃に対して防御することができる。
【００２１】
図１は、本発明の幾つかの実施形態に従ってアプリケーションを攻撃から保護するためのシステム及び方法の実施に好適な例証となるシステム１００の概略図である。図１を参照すると、本発明を実施するための例示的なシステム１００が示されている。図示のように、システム１００は、１つ又はそれ以上のクライアント１０２を含むことができる。クライアント１０２は、互いにローカル或いは互いからリモートとすることができ、通信リンク１０８を介してサーバ１１０にリンクされている通信ネットワーク１０６に１つ又はそれ以上の通信リンク１０４によって接続されている。本出願の種々の実施形態は、サーバ及びクライアントの少なくとも１つで実施することができる。
【００２２】
システム１００では、サーバ１１０は、プロセッサ、コンピュータ、データ処理デバイス、又はこれらのデバイスの組み合わせなどのアプリケーションを実行するための何らかの適切なサーバとすることができる。通信ネットワーク１０６は、インターネット、イントラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線ネットワーク、デジタル加入者回線（ＤＳＬ）ネットワーク、フレームリレーネットワーク、非同期転送モード（ＡＴＭ）ネットワーク、仮想プライベートネットワーク（ＶＰＮ）、又はこれらのいずれかのあらゆる組み合わせを含む、何らかの適切なコンピュータネットワークとすることができる。通信リンク１０４及び１０８は、ネットワークリンク、ダイヤルアップリンク、無線リンク、ハードワイヤードリンクなどのクライアント１０２とサーバ１１０との間のデータ通信に好適なあらゆる通信リンクとすることもできる。クライアント１０２は、パーソナルコンピュータ、ラップトップコンピュータ、メインフレームコンピュータ、ダム端末、データディスプレイ、インターネットブラウザ、パーソナルデジタルアシスタント（ＰＤＡ）、双方向ページャ、無線端末、ポータブル電話、その他、或いはこれらのあらゆる組み合わせとすることもできる。クライアント１０２及びサーバ１１０は、どのような適切なロケーションにも位置付けることができる。１つの実施形態では、クライアント１０２及びサーバ１１０は、１つの組織内に位置付けることができる。或いは、クライアント１０２及びサーバ１１０は、複数の組織間に分散させることができる。
【００２３】
図１に描かれたサーバ及びクライアントの１つが図２に更に詳細に示される。図２を参照すると、クライアント１０２は、プロセッサ２０２、ディスプレイ２０４、入力デバイス２０６、及びメモリ２０８を含むことができ、これらは相互接続することができる。好ましい実施形態において、メモリ２０８は、プロセッサ２０２を制御するためのクライアントプログラムを記憶する記憶デバイスを含む。メモリ２０８はまた、少なくとも１つの他のアプリケーションを攻撃から保護するアプリケーションを含むことができる。幾つかの実施形態では、アプリケーションは、クライアント１０２又はサーバ１１０のメモリに常駐させることができる。
【００２４】
本発明の方法及びシステムは、本明細書ではクライアント又はサーバ上に実装されるものとして説明されるが、これは単に例証に過ぎない。本アプリケーションは、これらの特徴を提供するためにあらゆる好適なプラットフォーム（例えば、パーソナルコンピュータ（ＰＣ）、メインフレームコンピュータ、ダム端末、データディスプレイ、双方向ページャ、無線端末、ポータブル電話、ポータブルコンピュータ、パームトップコンピュータ、Ｈ／ＰＣ、自動車ＰＣ、ラップトップコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、セルラー電話とＰＤＡの組み合わせなど）上に実装することができる。
【００２５】
本発明による幾つかの実施形態のシステムの簡略図が図３に示されている。図示のように、システム３００は、異常検出センサ３１０を含む。異常検出センサ３１０は、ネットワーク３２０からトラフィックを受信する。異常検出センサ３１０は、保護されたアプリケーション３３０又はアプリケーションのハニーポットバージョン３４０のいずれかにトラフィックを転送することができる。幾つかの実施形態では、異常検出センサ３１０は、異常検出センサ３１０によって行われた予測に基づいて保護されるアプリケーション３３０又はハニーポット３４０にトラフィックを転送することができる。例えば、異常検出センサ３１０は、少なくとも一部においてペイロード分析の実施又はネットワーク動作の分析に基づいてネットワーク３２０からのトラフィックに関して予測を行うことができる。
【００２６】
前述のように、アプリケーションのハニーポットバージョン３４０は、アプリケーションの正規のインスタンスと実質的に全ての内部状態を共用する保護されたアプリケーション３３０のインスタンスである。幾つかの実施形態では、ハニーポットアプリケーションは、保護されたアプリケーション自体の少なくとも一部とすることができる。ハニーポット３４０を使用すると、ハニーポット３４０に対する攻撃が検出され、被った全ての状態変化が廃棄される。異常検出センサ３１０によって誤って分類されたトラフィック３２０は、ハニーポット３４０によって妥当性が確認され、システム３００によって正しく且つユーザに対し透過的に処理することができる。ハニーポット３４０及び保護されたアプリケーション３３０の両方は、同じプロセス状態情報３５０に接続されている。一般に、プロセス状態情報３５０は、例えば、変数値、メモリ割り当て情報、関連の構成要素又はデバイスに関する状態情報、或いはプロセスの現在の状態を定義するのに必要とすることができる他のいずれかの適切な情報を含むことができる。
【００２７】
幾つかの実施形態では、ハニーポット３４０などのハニーポットは、異常検出センサ又はシステム３００の他のいずれかの適切な構成要素にフィードバックを提供することができる。図３に示されるように、ハニーポット３４０は、フィードバック３６０を異常検出センサ３１０に提供することができる。例えば、ハニーポット３４０は、攻撃に関する情報を異常検出センサ３１０に提供することができる。異常検出センサ３１０は、異常検出センサ３１０内で使用される予測子を更新するためにハニーポット３４０からのフィードバック３６０を使用し、或いは異常検出センサ３１０を調整するための他のいずれかの適切な手法においてフィードバック３６０を使用することができる。
【００２８】
図４は、本発明の幾つかの実施形態による異常検出センサとハニーポットの対話を示す例示的なフロー図である。異常検出センサでは、ネットワークからのトラフィックがシステムによって受信される（図４の４１０）。異常検出センサは、受信されたトラフィックがアプリケーションへの攻撃かどうかを判断する（図４の４２０）。
【００２９】
受信されたトラフィックが攻撃であると異常検出センサが予測した場合、受信されたトラフィックはハニーポットに転送される（図４の４３０）。ハニーポットに到達したトラフィックは、ハニーポットによって処理されて、攻撃がモニターされる（図４の４４０）。ハニーポットによって攻撃が検出されなかった場合、コードの処理がシステムによって透過的に処理される（図４の４５０）。ユーザの観点からは、保護されたアプリケーションによってトラフィックが処理されたように見える。ハニーポットはまた、間違った予測を行ったことを異常検出センサに知らせることができる（図４の４５０）。異常検出センサは、異常検出センサによって行われる今後の予測を改善するためにこの情報を使用することができる。或いは、受信されたトラフィックが攻撃であるとハニーポットが判断した場合、ハニーポットは、攻撃によって引き起こされたあらゆる状態変化を廃棄することができる（図４の４６０）。またハニーポットは、異常検出センサに正しい予測を知らせることができる。正しい予測に関する情報はまた、異常検出センサによって行われる今後の予測を改善するために使用することができる。
【００３０】
或いは、受信されたトラフィックが攻撃ではないと異常検出センサが予測した場合、受信されたトラフィックは、保護されたアプリケーションに転送される（図４の４７０）。この場合、受信されたトラフィックはハニーポットバージョンには転送されない。
【００３１】
図５は、本発明の幾つかの実施形態による攻撃検出システムの別の例示的な構成を示す。図５の構成において、システム５００は、フィルタリングエンジン５１０、異常検出センサのアレイ５２０、アプリケーションのハニーポットバージョン５３０、保護されたアプリケーション５４０、現在のプロセス状態５５０、及びロールバック用にセーブされたプロセスステートメント５６０を含む。
【００３２】
フィルタリングエンジン５１０は、ネットワークからのトラフィック５７０を受信する。フィルタリングエンジン５１０は、受信されたトラフィック５７０内の既知の攻撃を阻止するようにシステム５００が使用することができる。フィルタリングは、例えば、ペイロードコンテンツ、攻撃のソース、いずれかの適切なフィルタリング手法の組み合わせに基づいて、或いは受信されたトラフィックをフィルタリングするための他のいずれかの適切な方法によって行うことができる。図５に示されるように、フィルタリングエンジン５１０は、異常検出センサのアレイ５２０とネットワークからのトラフィック５７０との間のレイヤとして構成することができる。フィルタリングエンジン５１０を用いて、何らかの追加処理を行う前にトラフィックの特定のタイプを削除することができる。
【００３３】
ネットワークからのトラフィック５７０がフィルタリングエンジン５１０を通過した場合、１つ又はそれ以上の異常検出センサのアレイ５２０を用いて、受信されたトラフィック５７０を処理することができる。システム５００で使用できる異常検出センサ５２０のタイプの実施例は、ペイロード分析を行うセンサ及びネットワーク動作異常検出器を含む。しかしながら、本発明によるあらゆる適切な異常検出センサが使用できる点に留意されたい。
異常検出センサ５２０を高感度に調整した場合には得られる結果を改善することができる点に留意されたい。これにより異常検出センサ５２０によって報告される偽陽性の量が増し、保護されたアプリケーション５４０に攻撃が到達しないように更に確実にされる。
【００３４】
１つ又はそれ以上の異常検出センサ５２０の予測に少なくとも一部基づいて、システム５００は、保護されたアプリケーションの正規のインスタンス５４０又はアプリケーションのハニーポットバージョン５３０のいずれかを呼び出す。前述のように、アプリケーションのハニーポットバージョン５３０は、実質的に全ての内部状態をアプリケーションの正規のインスタンスと共用するアプリケーションの実装されたインスタンスである。ハニーポット５３０を使用すると、ハニーポット５３０に対する攻撃が検出され、被ったあらゆる状態変化が廃棄される。ハニーポット５３０及び保護されたアプリケーション５４０の両方は、同じプロセス状態情報５５０に接続される。
しかしながら、攻撃又は障害の検出に応答して、ハニーポット５３０は、あらゆる状態変化を既知の良好な状態にロールバックすることができる。例えば、ハニーポット５３０は、保護されたアプリケーション５４０が悪意のある要求を処理する前に有していた状態（例えば、ロールバック用にセーブされたプロセスステートメント５６０）にロールバックすることができる。或いは、ハニーポット５３０は、攻撃の検出に応答して、アプリケーションを再起動するか、或いは以前にセーブしていた状態情報を有するアプリケーションの新しいインスタンスを初期化することができる。
【００３５】
幾つかの実施形態では、ハニーポット５３０は、フィルタリングエンジン５１０、１つ又はそれ以上の異常検出センサ５２０、又はシステム５００の他のいずれかの適切な構成要素にフィードバックを提供することができる。例えば、ハニーポット５３０による実際の攻撃の検出、偽陽性の判断、又は攻撃が検出されなかったことに応答して、ハニーポット５３０は、異常検出センサ５２０の１つ又はそれ以上に情報を提供することができる。１つ又はそれ以上の異常検出センサ５２０は、１つ又はそれ以上の異常検出センサ５２０内で使用された予測子を更新するためにハニーポット５３０からのフィードバック５８０を使用するか、又は１つ又はそれ以上の異常検出センサ５２０を調整するための他のいずれかの適切な方法でフィードバック５８０を使用することができる。例えば１つ又はそれ以上の異常検出センサ５２０はこの情報を使用して、将来における類似の攻撃を阻止し、及び／又は過去の正しい予測及び間違った予測から学習することができる。別の実施例では、予測子又は予測モデルは、攻撃が検出されなかった場合に更新することができる。１つ又はそれ以上の異常検出センサ５２０を自己調整及び更新するための他のいずれかの適切な方法を使用することもできる。
【００３６】
別の実施例では、ハニーポット５３０による実際の攻撃の検出、偽陽性の判断、又は攻撃が検出されなかったことに応答して、ハニーポット５３０は、フィルタリングエンジン５１０に情報（例えばフィードバック５９０）を提供することができる。フィルタリングエンジン５１０は、フィルタリングエンジン５１０によって使用されたフィルタを更新するためにハニーポット５３０からのフィードバック５９０を使用し、或いはフィルタリングエンジン５１０を調整するための他のいずれかの適切な方法でフィードバック５９０を使用することができる。例えば、フィルタリングエンジン５１０はフィードバック５９０を使用して、将来における類似の攻撃を阻止し、及び／又は過去の正しい予測及び間違った予測から学習することができる。フィルタリングエンジン５１０を自己調整し更新するための他のいずれかの適切な方法を使用することもできる。
【００３７】
攻撃トラフィックを含むシステム５００を通過するトラフィックは、フィルタリングエンジン５１０及び１つ又はそれ以上の異常検出センサ５２０による処理によって保護されたアプリケーションと対話することができ、ここでサイドチャンネルアクセスは許可されない点に留意されたい。
【００３８】
本発明の幾つかの実施形態は、サーバとクライアントの両方と統合することができる。
【００３９】
幾つかの実施形態では、シャドーハニーポットをサーバに密結合することができる。サーバアプリケーションは、サーバアプリケーション及びハニーポットが機能及び状態をミラーしているサーバアプリケーションのハニーポットバージョンに疑わしい要求を迂回させることによって保護することができる。保護されたアプリケーションは、例えばウェブサーバとすることができる。
【００４０】
幾つかの実施形態では、シャドーハニーポットをクライアントに密結合することができる。クライアントアプリケーションは、例えば、攻撃者がクライアントのユーザをおびき寄せて、攻撃を含むデータをダウンロードさせる受動攻撃（例えば、ＭｉｃｒｏｓｏｆｔインターネットエクスプローラのＪＰＥＧ処理における最近のバッファオーバーフロー脆弱性）から保護することができる。保護されたアプリケーションを用いて、例えば単一のパケット、フロー全体、又はフローのセット内に含まれる攻撃からクライアントのウェブブラウザ又は他の何らかのアプリケーションを保護することができる。
【００４１】
本発明は、ハニーポットの状態とアプリケーションの状態が同じ状態を共用することで、攻撃者が双方の相違を利用できないように密結合された前述の例示的な実施形態において説明し図示されているが、本開示は例証として与えられており、本発明の精神及び範囲から逸脱することなくプロセス及び装置の構造及び組み合わせ並びに構成の詳細における多くの変更を行い得る点に留意されたい。例えば、本発明の幾つかの実施形態による疎結合された構成を提供することができる。ハニーポットは、異なるシステムに常駐させることができ、保護されたアプリケーションと状態を共用することはない。この疎結合された実施形態によって、ハニーポットを別個のエンティティによって管理することが可能となり、これによってハニーポットの管理を外部委託する能力をユーザに提供する。
【００４２】
図示のように、フィルタリング及び異常検出構成要素（例えば、フィルタリングエンジン５１０及び１つ又はそれ以上の異常検出センサ５２０）は、保護されたアプリケーションに密結合させることができる。或いは、フィルタリング及び異常検出構成要素をファイアウォールなどのネットワークトポロジーの自然集約ポイントに集中させることができる。
【００４３】
図６は、本発明の幾つかの実施形態による攻撃検出システムの別の例示的な構成の図を示す。図６の構成に示されるように、フィルタリング及び異常検出構成要素は、全ての検出ヒューリスティックを実装するネットワークプロセッサボードに接続されたコンピュータ上で実行される拡張可能なカスタム負荷分散装置及びスノートセンサのアレイとしてネットワークプロセッサに実装することができる。例えば、選択されたネットワークプロセッサは、ＩＸＰ１２００ネットワークプロセッサとすることができる。幾つかの実施形態において、ネットワークプロセッサが簡単な転送用に設計されており、必要な速度に要求される処理能力が無く、更に他のプロセッサよりもプログラム及びデバッグが難しい可能性があれば、検出ヒューリスティックはネットワークプロセッサ上に実装されない。しかしながら、一部の実施形態では、検出ヒューリスティックはネットワークプロセッサ上に実装することができる。
【００４４】
異常検出構成要素は、潜在的に悪意のある要求をハニーポットに迂回する機能を提供する。例えば、ウェブサーバでは、攻撃コンテキストの妥当な定義はＨＴＴＰ要求である。この目的のために、異常検出構成要素は要求を構成し、異常検出ヒューリスティックを実行し、その結果に応じて要求を転送する。この処理は、ＨＴＴＰレベルで実行することができるので、ＨＴＴＰプロキシ様機能が提供される。密結合されたハニーポットサーバの異常検出構成要素は、入って来る要求に対し抽象ペイロード実行検出ヒューリスティックを適用し、その決定に従ってこれらを転送する能力を用いてＨＴＴＰプロキシを強化することで実装することができる。
【００４５】
クライアントシナリオでは、受動モニタリングに基づく交互解決を使用することができる。この設定では、ＨＴＴＰ接続のＴＣＰストリームを再構成することができ、ＨＴＴＰプロトコルを復号して疑わしいオブジェクトを抽出することができる。オブジェクトは次に、ヒューリスティックアルゴリズムを適用することによって直接調べることができる。オブジェクトが疑わしいとみなされる場合、サーバが起動され、疑わしい応答を再生し、ハニーポットブラウザをこのサーバに差し向ける。
【００４６】
抽象ペイロード実行を介したペイロードシフト及びバッファオーバーフロー検出を、異常検出のためのヒューリスティックとして使用することができる。ペイロードシフトアルゴリズムは、ネットワークトラフィック内の一般的なサブストリングを識別することによって、急速に広がっているワームのフィンガープリントを導き出す。抽象ペイロード実行を介したバッファオーバーフロー検出は、ネットワークトラフィックでの有効な命令の十分に長いシーケンスをサーチすることによって、バッファオーバーフロー攻撃を検出する。有効な命令の長いシーケンスは、悪意のないデータに現れることができ、ここはハニーポットを実装できる場所である。この検出メカニズムは、攻撃の第１インスタンスに遭遇したときに個々の攻撃及びトリガ検出に適用できるので魅力的である。これは、異常として攻撃にフラグを立てる前に複数の攻撃の証拠を必要とする多くの異常検出メカニズムとは異なる。
【００４７】
幾つかの実施形態において、コード変換ツールを使用してハニーポットを作成することができる。このツールは、入力としてオリジナルアプリケーションを受け取り、ハニーポットコードに挿入する。これらの実施形態ではメモリ違反エラーを主に説明しているが、本発明を用いて他の違反をキャッチし検出することができる点に留意されたい。ＴＸＬ、ハイブリッド機能、及び規則ベースの言語を使用して、コード変換を実行することができ、ここでＧＣＣ  Ｃ（ＧＮＵ  Ｃコンパイラ）をフロントエンドとして使用することができる。ＴＸＬは、ソース間変換を実行するのに好適であるが、様々な言語を使用することもできる。ソース入力をパーズする役割を担う文法は、拡張バッカスナウアに類似の表記で指定される。
【００４８】
幾つかの実施形態では、ハニーポットは、全ての静的バッファをヒープに移動することによって作成される。静的バッファは、前に宣言された関数を入力することで各バッファを動的に割り当てることによって、ヒープに移動することができる。これらのバッファは、暗示的（例えば、関数本体の終わりに到達することによって）或いは明示的（例えばリターン命令文によって）のいずれかで関数を出ると割り当て解除することができる。割り当てられたメモリ領域が実装されているので、ポインタエイリアスに関する不正アクセスが検出されることに留意されたい。
【００４９】
メモリ割り当てにおいて、ｐｍａｌｌｏｃ（）と呼ばれるｍａｌｌｏｃ（）の新しいバージョンが作成された。図７は、本発明の幾つかの実施形態によるｐｍａｌｌｏｃ（）ベースのメモリ割り当ての例示的な実施例である。図７に示されるように、ｐｍａｌｌｏｃ（）ベースのメモリ割り当ては３つのメモリページ７１０を割り当てる。基本の１ページの他に、ｐｍａｌｌｏｃ（）は、要求されたバッファを括弧で囲む２つの付加的なゼロで満たされた書き込み保護ページ７２０を割り当てる。追加のページは、読出し専用として／ｄｅｖ／ｚｅｒｏからｍｍａｐ（）’を行うことができる。ｍｍａｐ（）はメモリページの細分性で動作するので、メモリ要求は、最も近いページに集められる。ｐｍａｌｌｏｃ（）によって戻されたポインタ７３０は、あらゆるバッファオーバーフロー又はアンダーフローを即座にキャッチするように調整することができる。
【００５０】
図８は、本発明の幾つかの実施形態によるコード変換の実施例を示す。オリジナルコードをブロック８１０に示し、変換されたコードをブロック８２０に示す。ｍａｌｌｏｃ（）を介して割り当てられたバッファを、ｐｍａｌｌｏｃ（）８３０にスイッチすることができる。これは、ソースでの宣言を調べ、これらをｍａｌｌｏｃ（）関数呼出しでサイズが割り当てられるポインタに変換することによって得ることができる。Ｃ文法はまた、関数が戻る前にメモリ８４０を開放するよう調整することができる。
【００５１】
ｐｍａｌｌｏｃ（）を介して割り当てられたバッファのあらゆるオーバフロー又はアンダーフローは、ｍａｉｎ（）のソースコードに付加される信号ハンドラによって捕らえられたセグメンテーション違反（ＳＥＧＶ）信号を受信するプロセスを引き起こすことができる。信号ハンドラは、この要求を処理する間、プロセスによってなされた全ての状態変化を中止するようオペレーティングシステムに通知する。これを行うために、オペレーティングシステムへの新しいシステム呼出しは、呼び出されたｔｒａｎｓａｃｔｉｏｎ（）を付加することができる。ｔｒａｎｓａｃｔｉｏｎ（）関数は、ｓｈａｄｏｗ＿ｅｎａｂｌｅ（）関数の裁量でコード内の３つのロケーションに条件付きで呼び出される。ｓｈａｄｏｗ＿ｅｎａｂｌｅ（）関数は、コードのハニーポットバージョンが実行しているときには真を返す。
【００５２】
ｔｒａｎｓａｃｔｉｏｎ（）が配置される第１ロケーションは、新しい要求の処理を始める前にメイン処理ループの内側にある。これは、新しいトランザクションが始まっていることをオペレーティングシステムに示す。オペレーティングシステムは、全てのメモリページ許可のバックアップを行い、全てのヒープメモリページを読出し専用としてマーク付けする。プロセスが実行されてこれらのページを修正するときには、オペレーティングシステムは、オリジナルページのコピーを保持し、使用するプロセスに対してバックアップからのオリジナルページにより許可された新しいページを割り当てる。これは、コピー・オン・ライトが最新のオペレーティングシステムで動作する同じ方法で行われる。ｔｒａｎｓａｃｔｉｏｎ（）へのこの呼出しは、例えば、プログラマー又はシステム設計者によってマニュアルで配置することができる。ページの双方のコピーは、以下に説明されるようにｔｒａｎｓａｃｔｉｏｎ（）が再度呼び出されるまで保持される。
【００５３】
要求の処理後、メイン処理ループの内側にある第２ロケーションのｔｒａｎｓａｃｔｉｏｎ（）を呼び出すことができる。これは、トランザクションが正常に完了したことをオペレーティングシステムに示すためにここで行われる。オペレーティングシステムは次に、要求の処理中に修正されたメモリページの全てのオリジナルコピーを廃棄する。トランザクションへのこの呼出しは、マニュアルで配置することができる。
【００５４】
トランザクションを呼び出すことのできる第３ロケーションは、信号ハンドラの内側にある。このロケーションは、本発明の実施形態によって自動的にインストールすることができる。これは、攻撃（例外）が検出されたことをオペレーティングシステムに示すために行われる。オペレーティングシステムは次に、オリジナルページを復元することによって全ての修正されたメモリページを廃棄する。
【００５５】
幾つかの実施形態において、上述されたものに類似したメカニズムをファイルシステムの周りに構築することができる。これは、例えば、コードのハニーポットバージョンで行われる処理に対してバッファキャッシュのプライベートなコピーを使用することによって実行することができる。
【００５６】
本発明は、以下の説明において記載され又は図面で示された構造の詳細及び構成要素の構成に対する応用に限定されない点を理解されたい。本発明は、他の実施形態が可能であり、種々の方法で実施及び実行することができる。また、本明細書で用いられる表現及び用語は説明の目的のものであり、限定と見なすべきでないことを理解されたい。
【００５７】
従って、当業者であれば、本開示が基づく概念が、本発明の幾つかの目的を果たすための他の構造、方法、及びシステムの設計の基礎として容易に利用できることが理解されるであろう。その結果、重要なのは、本発明の精神及び範囲から逸脱しない限り請求項がこれらの均等な構造を含むものとしてみなされることである。
【００５８】
本発明は前述の例示的な実施形態において説明され図示されてきたが、本開示は例証として行われ、本発明の実施の詳細における多くの変更は、添付の請求項によってのみ限定される本発明の精神及び範囲から逸脱することなく行い得る点を理解されたい。
【図面の簡単な説明】
【００５９】
【図１】本発明の幾つかの実施形態に従ってトラフィックをモニターし且つアプリケーションを攻撃から守るアプリケーションの実装に好適な例示的なシステムを示す概略図である。
【図２】本発明の幾つかの実施形態に従って使用することができる図１のサーバとクライアントの１つについての詳細な実施例を示す図である。
【図３】本発明の幾つかの実施形態に従ってトラフィックをモニターし且つアプリケーションを攻撃から守るのに好適な別の例示的な構成を示す概略図である。
【図４】本発明の幾つかの実施形態に従ってアプリケーションを攻撃から守るための例示的なフロー図である。
【図５】本発明の幾つかの実施形態に従ってトラフィックをモニターし且つアプリケーションを攻撃から守るのに好適な別の例示的な構成を示す概略図である。
【図６】本発明の幾つかの実施形態に従ってトラフィックをモニターし且つアプリケーションを攻撃から守るのに好適な別の例示的な構成を示す概略図である。
【図７】本発明の幾つかの実施形態に従って使用されるｐｍａｌｌｏｃ（）−ベースのメモリ割り当ての実施例を示す図である。
【図８】本発明の幾つかの実施形態に従って実行されるＣコードの変換の実施例を示す図である。
【符号の説明】
【００６０】
３１０  異常検出センサ
３２０  ネットワーク
３３０  保護されたアプリケーション
３４０  アプリケーションのハニーポットバージョン
３５０  プロセス状態情報
３６０  フィードバック
【図１】
2008537267.tif 000003
【図２】
2008537267.tif 000004
【図３】
2008537267.tif 000005
【図４】
2008537267.tif 000006
【図５】
2008537267.tif 000007
【図６】
2008537267.tif 000008
【図７】
2008537267.tif 000009
【図８】
2008537267.tif 000010
【国際調査報告】
2008537267.tif 000011