JP4864333B2 - ソフトウェアの脆弱性の悪用を防止するように通信をフィルタ処理するための方法およびシステム - Google Patents

ソフトウェアの脆弱性の悪用を防止するように通信をフィルタ処理するための方法およびシステム Download PDF

Info

Publication number
JP4864333B2
JP4864333B2 JP2005048972A JP2005048972A JP4864333B2 JP 4864333 B2 JP4864333 B2 JP 4864333B2 JP 2005048972 A JP2005048972 A JP 2005048972A JP 2005048972 A JP2005048972 A JP 2005048972A JP 4864333 B2 JP4864333 B2 JP 4864333B2
Authority
JP
Japan
Prior art keywords
application
message
state
vulnerability
communication protocol
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.)
Expired - Fee Related
Application number
JP2005048972A
Other languages
English (en)
Other versions
JP2005276185A (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 JP2005276185A publication Critical patent/JP2005276185A/ja
Application granted granted Critical
Publication of JP4864333B2 publication Critical patent/JP4864333B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • AHUMAN NECESSITIES
    • A46BRUSHWARE
    • A46BBRUSHES
    • A46B11/00Brushes with reservoir or other means for applying substances, e.g. paints, pastes, water
    • A46B11/001Brushes with reservoir or other means for applying substances, e.g. paints, pastes, water with integral reservoirs
    • A46B11/002Brushes with reservoir or other means for applying substances, e.g. paints, pastes, water with integral reservoirs pressurised at moment of use manually or by powered means
    • A46B11/0041Flexible or deformable reservoirs, e.g. resilient bulbs, compressible tubes
    • AHUMAN NECESSITIES
    • A46BRUSHWARE
    • A46BBRUSHES
    • A46B17/00Accessories for brushes
    • A46B17/04Protective covers for the bristles
    • AHUMAN NECESSITIES
    • A46BRUSHWARE
    • A46BBRUSHES
    • A46B5/00Brush bodies; Handles integral with brushware
    • A46B5/0095Removable or interchangeable brush heads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • AHUMAN NECESSITIES
    • A46BRUSHWARE
    • A46BBRUSHES
    • A46B2200/00Brushes characterized by their functions, uses or applications
    • A46B2200/10For human or animal care
    • A46B2200/1066Toothbrush for cleaning the teeth or dentures

Description

本発明の技術は、全般的に、アプリケーションの脆弱性の悪用を検出しかつ防止することに関する。
インターネットはコンピュータシステム間の通信を容易にすることや電子商取引を可能にすることに関して大きな成功を収めているが、インターネットに接続されているコンピュータシステムは、その動作を妨害しようと狙っているハッカーによる攻撃に対してほとんど常時曝された状態に置かれている。こうした攻撃の多くは、これらのコンピュータシステム上で動作するアプリケーションプログラムその他のコンピュータプログラムの脆弱性を悪用しようと狙っている。コンピュータシステムを攻撃する最も破壊的な方法のうちの1つはコンピュータプログラムに「ワーム(worm)」を送り込むことである。ワームは、脆弱性を悪用する自己増殖型の攻撃の1つであり、その攻撃は、コンピュータシステムの支配権を握りこのコンピュータシステムを使って同じ脆弱性をもつ別のコンピュータシステムに対する攻撃を仕掛ける(すなわち、同じワームを送りつける)ことによる。ワームは、受信しているコンピュータプログラムの脆弱性を悪用するように設計された1つのメッセージまたは一連のメッセージである。この1つのメッセージまたは複数のメッセージを受信すると、そのコンピュータプログラムは、そのコンピュータシステムに対するワームによる支配権の取得を可能にさせるいくつかの措置を実施する。
アプリケーションの開発者およびコンピュータシステムの管理者は、脆弱性を識別して除去するために多大に労力および経費を費やしている。しかし、アプリケーションの複雑さのために、アプリケーションをリリースする前に脆弱性をすべて識別し除去することは事実上不可能である。アプリケーションがリリースされた後で、開発者は様々なやり方で脆弱性を認識する可能性がある。悪意のない第三者がアプリケーションの脆弱性を発見することがあり、またこうした第三者が開発者に内密にこれを知らせ、ハッカーがこれを見付けて悪用する前に脆弱性を除去できることがある。ハッカーが最初に脆弱性を発見した場合は、開発者はその脆弱性についてはこれが悪用される(悲惨な結果を伴うこともある)まで熟知していないことがある。
開発者が脆弱性についてどの様にして見出したのかに関わりなく、開発者はその脆弱性を除去する「パッチ(patch)」を開発してシステム管理者に配布するのが一般的である。その脆弱性がまだ悪用されていない場合(例えば、ハッカーに知られていないことがある)、開発者はきちんとした方法でパッチを設計、実現、試験、および配布することができる。その脆弱性がすでに広く露呈されている場合、開発者はパッチを急いで配布することがあり、通常の状況下で用いられるのと同じ慎重さを伴わないことがある。コンピュータシステムの管理者にパッチが配布されると、彼らは脆弱性を除去するためにそのパッチに関するスケジューリングおよびインストールを行う責任がある。
しかしながら、様々な理由で管理者は脆弱性を除去するためのパッチのインストールを遅延させることが多い。パッチがインストールされると、アプリケーション、ならびにアプリケーションをその上で動作させているコンピュータシステムは、シャットダウンして再起動させることが必要となることがある。その脆弱性がある組織の成果にとって極めて重要なアプリケーション内に存在する場合、管理者はアプリケーションを立ち上げた稼働状態に保ってこれに関連した攻撃を受けるリスクを取るか、パッチのインストールのために極めて重要なリソースをシャットダウンするかに関してその兼ね合いを解析する必要がある。ある管理者らは、性急な配布であるため適正に試験がなされておらず意図しない副作用を有している可能性があることを懸念して、パッチのインストールを遅延させることがある。パッチが意図しない副作用を有していると、そのパッチそれ自体によってアプリケーション(または、コンピュータシステム)がシャットダウンされることがある。管理者は、パッチをインストールするか否かを判断する際には、意図しない副作用の可能性を織り込んでおく必要がある。これらの管理者は、他の管理者による経験によって意図しない重大な副作用が存在しないことが示されるまでパッチのインストールを遅延させることがある。
アプリケーション内の脆弱性の悪用を防止するためには別の方法も利用可能である。例えば、悪用のソースが既知であれば、そのソースからのすべてのメッセージについてこれらがアプリケーションに到達する前に阻止して廃棄することができる。しかし、攻撃ソースは厳密には識別できないことがあり、こうなると多くの善良なソースからのメッセージも廃棄されることがある。別の例として、脆弱性を悪用しようと試みるメッセージは、これがアプリケーションまで送られる前に検出し廃棄できるようなある種の特徴(例えば、非常に長いファイル名)を有していることがある。
脆弱性の悪用を防止するための現行の方法は、様々な理由で、完全に満足のゆくものではない。ある管理者らは単に脆弱性の悪用を防止できるほどに迅速にパッチをインストールしないことがあるという理由のため、パッチのインストールは完全に満足のゆくものではない。さらに、パッチはそれ自体が、脆弱性の悪用と比べてより大きな損害をもたらす副作用を有している可能性もある。悪用の試みを識別するためのメッセージの阻止もまた、その識別が知られている悪用に基づいているため完全に満足のゆくものではなく、さらに同じ脆弱性に関する未知の悪用を防止できないことがある。パッチを必要とせず、また脆弱性の具体的な任意の悪用と独立した方式で脆弱性の悪用を防止することができることが望ましい。
あるコンポーネントの通信プロトコルの状態が満足された時点を識別するための方法およびシステムを提供する。一実施形態では、本システムは、通信プロトコルの少なくとも一部分(すなわち、通信プロトコルのモデル)を指定する指定基準(specification)を提供すると共に、何時条件が満足されるのかを通信プロトコルの指定された部分内に示している。そのコンポーネントに対する通信が受信されると、コンポーネントによって通信が処理される前に、本システムは受信した通信が条件を満足するか否かを、提供された指定基準の指定に従って判定する。次いで、本システムは条件が満足されたか否かに応じた適当な措置を取ることができる。例えば、その条件がコンポーネントの脆弱性を曝露させることに関連する場合、本システムは、脆弱性の曝露を防止するために、条件が満足されたときにはそのコンポーネントに対して通信を提供しないという措置を取ることがある。
通信プロトコル(例えば、メッセージベースまたはストリームベースのプロトコル)を実装しているアプリケーションなどのコンポーネントを、通信ベースの脆弱性の悪用に対して保護するための方法およびシステムを提供する。一実施形態では、防護システムによって、ある識別の脆弱性を曝露させるメッセージを認識する方法を指定しかつ脆弱性が曝露されたときに取るべき措置を指定している「防護ポリシー」が提供される。防護ポリシーは、脆弱性を曝露させる一連のメッセージおよびそのペイロードの特徴を指定している。この防護システムは、メッセージプロトコルステートマシンを用いてメッセージのシーケンスを指定することがある。アプリケーションのメッセージプロトコルステートマシンは、アプリケーションが様々なメッセージを受信するに従って遷移して行く状態のことを意味している。ある防護ポリシーのメッセージプロトコルステートマシンは、アプリケーションのメッセージプロトコルステートマシンのうちの脆弱性に関連した一部分とすることがある。この防護システムは、メッセージプロトコルステートマシンを使用して結果的に脆弱性の曝露につながる状態をトラッキングしている。この防護ポリシーは実施されるべき措置を、現行の状態ならびに受信したまたは現行のメッセージに従って指定することがある。これらの措置は、ある条件が満たされたか否かを判定するためのメッセージのペイロードに対するチェック、メッセージプロトコルステートマシンに関する次の状態の識別、メッセージの廃棄、メッセージのソースとの切断、その他を含むことがある。この防護ポリシーは脆弱性に関連付けされたメッセージプロトコルに基づいているため、この防護ポリシーは脆弱性の任意の悪用から独立している。したがって、この防護システムは、そのアプリケーションによって使用される通信ベースのプロトコルをモデル化し、脆弱性の曝露などの条件を検出しかつ防止することができる。
一実施形態では、防護ポリシーには、アプリケーションの脆弱性、ならびにその脆弱性の悪用に対する防護のための措置が記述されている。防護ポリシーには2つの部分がある。その第1の部分は、プロトコル状態、イベント、および使用したポートなどのアプリケーションレベルの一般プロトコル情報、イベントタイプの位置、セッション識別子、およびパケット内のシーケンス番号、およびメッセージ境界マーカ(message boundary markers)を規定している。その第2の部分は、ハンドラー(すなわち、措置の組)およびメッセージペイロード構文解析命令を規定している。このハンドラーは、メッセージペイロードを検査し脆弱性の任意の悪用を識別するため、ならびにその悪用を防止するように対抗策を取るか後で悪用の識別するために必要なセッション情報を記録するために、実行時に起動される。この防護システムは、実行時間の前に、ハンドラーおよび防護ポリシーのペイロード命令を構文解析し、かつ実行時により効率よく処理できるようにするためこれらをシンタックスツリー内に保存する。この防護システムは、防護ポリシーの第1の部分とシンタックスツリーとを「脆弱性指定基準(vulnerability specification)」として保存する。この脆弱性指定基準は、状態、イベント、およびハンドラーからなるトリプレット(triplet)を含むことがある。
メッセージがアプリケーションに送られてしまう前に防護システムがそのメッセージを受信すると、防護システムはそのメッセージに対応するイベント、ならびにそのアプリケーションのメッセージプロトコルステートマシンの現行の状態を識別する。次いで、防護システムは、そのトリプレットによる指示に従って現行の状態および現行のイベントに関連付けされたハンドラーを識別して実行する。このハンドラーは、脆弱性の曝露につながる特徴が存在しているか否かを判定するためにメッセージ(そのペイロードを含む)を解析することがある、このメッセージの特徴に応じて現行の状態を次の状態に変更することがある、別のメッセージを受信したときに後続の判定を実施するのに必要な状態情報を保存することがある、識別された悪用に対する対抗措置を実施することがある、等々である。防護システムによってあるメッセージが脆弱性を曝露させることになると判定された場合、このメッセージはアプリケーションに提供しない。したがって、この防護システムによれば、アプリケーションにパッチをかけることなく、アプリケーションの脆弱性の悪用が防止される。さらに、この防護システムは、メッセージベースの異なる多くのアプリケーションに関して脆弱性の悪用を防止するために使用することが可能な一般的なフレームワークである。
一実施形態では、その防護システムは、ネットワークプロトコルのトランスポートレイヤとアプリケーションレイヤの間で動作する。しかし当業者であれば、防護システムが、様々なネットワークプロトコルレイヤの間でまたは様々なネットワークプロトコルレイヤの内部で、また複数のプロトコルレイヤで同時に実行することができることを理解されよう。例えば、いくつかのアプリケーションは、アプリケーションがメッセージの処理を実施する前にメッセージを前処理するためにフック(hook)を提供することがある。こうしたアプリケーションについて、この防護システムはアプリケーションレイヤで動作して、そのメッセージがアプリケーションによって処理される前にメッセージを処理することができる。その防護システムによってある脆弱性が曝露されると判定された場合、防護システムはそのメッセージを廃棄すること、アプリケーションを中止させること、あるいは何らかの適当な別の措置を取ることができる。
複数のクライアントに対してサービス提供しているアプリケーションは、どのクライアントがメッセージを送ったのかを識別する際に使用するために、各クライアントに対して1つのセッション識別子を割り当てることがある。単一のクライアントが複数のセッションを有する、したがって複数のセッション識別子を有することがある。このケースでは、1つのセッション識別子が、あるクライアントの具体的な1つのセッションを識別している。あるセッション内の一連のメッセージによって脆弱性が曝露されることがあり得る。したがって、この防護システムは各セッションごとにメッセージの状態をトラッキングしている。この防護システムは新たにセッションが識別された時点で状態情報の新たなインスタンスを作成する。各メッセージは、ターゲットアプリケーションおよびセッションを識別している。あるメッセージが受信されると、防護システムはこのメッセージからそのアプリケーションおよびセッションを識別する。この防護システムは、そのメッセージのヘッダ情報内に格納されたポート番号に基づいてそのアプリケーションを、またそのメッセージ内でセッション情報が格納されている場所に関する識別アプリケーション向けの指示に基づいてそのセッションを識別することがある。あるアプリケーションの脆弱性指定基準は、当該アプリケーションに関連付けされたポート番号を指定し、かつ当該アプリケーションのメッセージの内部にセッション識別子の位置を記述することがある。さらに、あるアプリケーションの脆弱性指定基準は、あるメッセージの内部で、メッセージタイプの位置およびメッセージ境界の位置などの別の情報の位置を指定することがある。そのメッセージがあるセッションの最初である場合、防護システムは当該セッションに関する状態情報データ構造を割り当てることがある。あるアプリケーションの脆弱性指定基準は、メッセージ単位で格納されることが必要な情報に基づいてそのデータ構造を規定することがある。防護システムは、セッションの現行の状態を脆弱性指定基準によって規定された初期状態に設定することを含むこと場合がある、状態情報に対する初期化を行う。新たなメッセージを受信するたびに、防護システムはそのアプリケーションおよびセッションを識別し、当該のアプリケーションおよびセッションに関する状態情報を取り出し、次いでステートマシンエンジンを呼び出し、現行の状態および受信したメッセージによって指定されたイベントに基づいて実行するためのハンドラーを選択する。
一実施形態では、その防護システムは、単一のメッセージ単位として到着しないことがあるアプリケーションレベルのメッセージを取り扱う。単一のアプリケーションレベルのメッセージの複数メッセージ単位となった分散した到着は、TCP輻輳制御、アプリケーションの指定メッセージ取扱い実現形態、その他の結果として起こることがある。例えば、あるUDPサーバは単一のアプリケーションレベルのメッセージを受信するために複数の呼を発する。こうしたケースでは、防護システムは、アプリケーションレベルのメッセージに関して複数メッセージ単位の到着を認識する。セッション識別子またはメッセージタイプが単一のメッセージ単位で受信されない場合、またはハンドラーがその処理を完了できるだけの十分なアプリケーションレベルのメッセージが受信されていない場合は、防護システムは、そのアプリケーションレベルのメッセージをハンドラーが処理できるようになるまで、各メッセージ単位からなる必要な部分に関するコピーを作成する。防護システムは、部分的メッセージ情報をセッションごとに保存することが可能であり、このためにはセッションごとのバッファの割り当てが必要となることがあり得る。しかし、複数のセッションが同じソケットを通じて送られる場合は、防護システムは、部分的メッセージ情報を各ソケット単位で格納することが可能となり得る。ソケットは、典型的には、あるセッションに関する完全なメッセージが受信されてから、同じソケットを介して別のメッセージの任意の部分が受信されるという特徴を有している。セッション数と比べて存在するソケット数がより少ないことがあるため、セッションごとに情報を保存する際に割り当てを要するバッファはより少ないことがある。バッファは、そのセッション識別子が受信される前は1つのソケットだけに関連付けすることができる。セッション識別子を受信した後に、このバッファはそのセッションに関連付けさせることができる。
一般に、防護システムは、部分的に到着したフィールドを保存することが不要であるのみならず、受信済みのアプリケーションレベルのメッセージの部分全体を保存することも不要である。例えば、4バイトのセッション識別子のうちの2バイトが受信済みである場合、防護システムが保存を要するのは当該メッセージのうちこの2バイトのみである。防護システムは、アプリケーションレベルのメッセージ1つあたり1つのフィールド構文解析状態を使用し、どのフィールドが構文解析を受けているか、ならびに受信済みであるのが何バイトかをトラッキングすることがある。防護システムは、そのメッセージが悪用につながることがないと判定済みの場合であっても、各アプリケーションレベルのメッセージに関して構文解析中の現行のフィールドの構文解析状態を維持する。この状態が維持されていないと、アプリケーションレベルのメッセージの別の部分が新たなメッセージとして取り扱われることがあり得る。こうしたケースでは、アプリケーションの実際のメッセージ状態と防護システムのエミュレートしたメッセージ状態との間に不整合を生じさせるように攻撃者によってメッセージが巧みに作られている可能性がある。
防護システムは、順序が乱れて受信したアプリケーションレベルのメッセージが順序通りに処理できるようにするために、メッセージをバッファリングすることがある。例えば、UDPが使用される場合に、アプリケーションレベルのメッセージは順序が乱れて受信される可能性がある。防護システムは、そのアプリケーションに関する防護ポリシー内の指定に従ったシーケンス番号を使用する。さらに、いくつかのアプリケーションメッセージプロトコルによってアプリケーションレベルのメッセージの断片化および再構築が可能となる。これらの断片は、順序通りに受信される場合(例えば、TCPの場合)や、順序が乱れて受信される場合(例えば、UDPの場合)があり得る。防護システムは、順序通りに受信した断片を上述した部分的フィールド処理と同様の方式で取り扱うことができる。その断片を順序が乱れて受信した場合は、防護システムはこれらを保存してこれらを順序通りに処理することができる。
一実施形態では、その防護システムの原理は、メッセージプロトコルを強化するために適用することができる。例えば、メッセージプロトコルのある状態において認証処理を追加することによって、アプリケーションのセキュリティを改善することが望ましい。しかし、アプリケーションの開発者はこれを行うことに乗り気でないことがある。こうしたケースでは、防護システムと同様のシステム(例えば、認証システム)が実現される可能性がある。認証システムは、サーバ側とクライアント側とを有することがある。サーバ側は、状態、イベントおよびハンドラーの指定基準と、ステートマシンエンジンとを使用し、認証を起動させたときに適当な状態およびイベントを識別することになる。この状態およびイベントに関するハンドラーは、メッセージがアプリケーションに提供される前にクライアントに対してチャレンジを送ることが可能である。チャレンジを受信すると、認証システムのクライアント側はチャレンジが受信済みであることを検出し、適当な応答を送出することが可能である。クライアント側は、チャレンジを検出するために指定基準およびステートマシンエンジンを有することがある。サーバ側が応答を受信すると、サーバ側はその応答を検証しメッセージを適宜アプリケーションに提供することができる。より一般的には、メッセージプロトコル状態をトラッキングし、ターゲットアプリケーションによる処理以前に所望の処理を実施することができる汎用アーキテクチャが提供される。このアーキテクチャはクライアントおよびサーバに関して対称とすることがあるが、その指定基準については、サーバとこれに対するクライアントの処理ニーズが異なるため、非対称となる。この汎用アーキテクチャは暗号化スキーム、メッセージのログ処理、問題のデバッグ、等々を実現するために使用される可能性がある。
一実施形態では、その防護システムは、メッセージを処理するためのアプリケーションプログラミングインターフェース(「API」)を装備することによってメッセージを阻止することがある。例えば、sockレイヤAPIの受信機能は、潜んでいる非装備の受信機能を呼び出し、次いでそのメッセージが含んでいるバッファを防護コンポーネントに渡すために装備されることがある。防護コンポーネントによってそのメッセージが脆弱性を悪用することになると判定された場合、この防護は、当該メッセージを廃棄する、すなわち通信セッションを解除することがあり、また装備された受信機能がエラーを返すことがある。そうでない場合は、装備された受信機能は、非装備の受信機能であったとした場合と同様にバッファを返すことがある。防護システムは、APIの階層の様々なレベルにおいて、メッセージまたはメッセージの一部分を阻止するために使用されることがある。APIの階層には、より低いレベルのAPIを呼び出すAPIが含まれており、一方このより低レベルのAPIはさらにより低レベルのAPIを呼び出している。アプリケーションのプログラマは、典型的には、最上位レベルのAPIを呼び出すためのアプリケーションを開発する。例えば、あるアプリケーションは、顧客からの新たな注文を引き出すために顧客関係管理システム(「CRM」)のAPIから注文取得機能を呼び出す。この注文取得機能は、ヘッダ取得機能を呼び出し、さらにより低レベルの発注APIのライン項目取得機能を反復して呼び出し、アプリケーションに戻すためにその注文情報を集計することがある。このライン項目取得機能は、ソケットレイヤAPIの受信機能を呼び出し、顧客から送られてきた次行の項目のメッセージを取り出すことがある。CRM APIの注文取得機能は、この新たな注文を防護システムに渡すために装備されることがある。防護システムは、新たな注文パラメータを解析しかつこれにより脆弱性が悪用されることになるか否かを判定するためにハンドラーを有することがある。ここで防護システムは、脆弱性を悪用することになるパラメータを検出して補正するために使用されることがある。例えば、防護システムは、顧客からのある新たな注文が認証を受けることができるか否かを判定するために使用されることがある。否であれば、防護システムはこの新規注文を廃棄し、アプリケーションに対してエラーを返すことができる。したがって、防護システムは、様々な抽象レベルにおいてメッセージの意味を解析するために使用することができる。
図1は、一実施形態による防護システムを表したブロック図である。この防護システム110は、通信リンク140を介してクライアント130と接続されており、また、アプリケーション120に接続されている。これらの防護システムとアプリケーションは、同じコンピュータシステム上で動作すること、それぞれ別のコンピュータシステム上で動作すること、あるいはこれらの何らかの組み合わせで動作することがある。この防護システムは、脆弱性指定基準記憶装置111と防護コンポーネント112とを含んでいる。この脆弱性指定基準記憶装置は、各アプリケーションに対する脆弱性指定基準を包含している。通信リンクを介してクライアントからメッセージが受信されると、防護コンポーネントはそのメッセージが導かれる先のアプリケーション、ならびに当該アプリケーションの内部のセッションを識別する。防護コンポーネントは、当該アプリケーションに関する脆弱性指定基準に基づいて、当該セッションに関するメッセージ状態を遷移させる。脆弱性に対する悪用につながらないメッセージは、アプリケーションに直接受け渡される。これに対して、防護コンポーネントは、脆弱性を悪用することになるメッセージをドロップさせ、セッションの解除などの別の適当な措置を取ることがある。脆弱性指定基準記憶装置は、新たな脆弱性が発見されると、防護システムの動作を中断することなく、新規の指定基準を動的にロードおよびアンロードすることがある。
図2は、一実施形態による脆弱性指定基準内に規定されるメッセージプロトコルの一部分の状態図である。状態211〜215は、あるアプリケーションの当該脆弱性に関連するメッセージプロトコル状態を意味している。これらの状態は、そのアプリケーションのメッセージ状態のうちの1つの部分組である。ハンドラー221〜224は、あるセッションに関連付けされたメッセージ状態がメッセージが受信されるに連れてある状態から次の状態へと遷移する際に実施される措置の組を意味している。状態211は、セッションの初期状態であって、このセッションがRPCバインドメッセージを待っている状態であることを示している。状態211にあるときにRPCバインドメッセージを受信すると、防護システムは、RPCバインドハンドラー221を実行する。RPCバインドハンドラーはこのセッションの次の状態を、RPCバインド確認を待っている状態である状態212に設定するか、あるいはそのセッションの最終状態である状態215に設定する。状態212にあるときにRPCバインド確認メッセージを受信すると、防護システムはRPCバインド確認ハンドラー222を実行する。RPCバインド確認ハンドラーはRPC要求を待っている状態である状態213に遷移するか、あるいは最終状態である状態215に遷移する。状態213にあるときにRPC要求メッセージを受信すると、防護システムはRPC要求ハンドラー223を実行する。RPC要求ハンドラーがそのメッセージの内容に基づいて脆弱性が曝露されると判定した場合は、その次の状態を、そのセッションを解除することを示す状態214に設定するか、さもなければ最終状態である状態215に設定する。状態214にあるときに解除要求が確認されると、防護システムはセッション解除確認ハンドラー224を呼び出し、セッションの解除を完了させると共に、最終状態である状態215に遷移する。ハンドラー221および222はそのメッセージがアプリケーションに送られることを許可することがあるが、ハンドラー223は次の状態が状態214であるときにはそのメッセージがアプリケーションに送られることを許可しない。
図3は、一実施形態による防護システムのアーキテクチャを表したブロック図である。この防護システムは、ポリシーローダー301と、アプリケーションディスパッチャ303と、セッションディスパッチャ304と、ステートマシンエンジン305と、インタープリタ306とを含んでいる。この防護システムはさらに、脆弱性指定基準記憶装置302と、アプリケーション/セッション状態記憶装置307とを含んでいる。ポリシーローダーは、脆弱性に対する防護ポリシーを受け取り、防護ポリシーを脆弱性指定基準に変換し、さらにこれを脆弱性防護記憶装置内に保存する。ポリシーローダーは、同じアプリケーションに関する脆弱性指定基準を自動式に結合させ、各アプリケーションが脆弱性指定基準を1つだけ有するようにすることがある。防護システムによって受信されたメッセージは先ず、アプリケーションディスパッチャによって処理される。アプリケーションディスパッチャはそのメッセージに関連付けされたポートをメッセージヘッダから識別し、次いで脆弱性指定基準記憶装置に対して当該ポート番号に関連付けされたアプリケーションを識別するように要求する。脆弱性指定基準記憶装置はアプリケーション識別子によって応答する。次いで、アプリケーションディスパッチャはこのアプリケーション識別子およびそのメッセージをセッションディスパッチャに転送する。セッションディスパッチャはそのメッセージに関連付けされたセッションを識別する。セッションディスパッチャは脆弱性記憶装置に対してそのアプリケーション識別子に関連付けされたセッション識別情報を提供するように要求する。脆弱性指定基準記憶装置はそのメッセージ内部のセッション識別子の位置を記述している情報によって応答しており、またさらにメッセージタイプの位置およびメッセージ境界および別のヘッダまたはペイロード記述情報を含むこともある。次いで、セッションディスパッチャはこの位置情報を用いてメッセージからセッション識別子を取り出す。セッションディスパッチャはさらに、そのメッセージを解析してメッセージに関連付けされたメッセージイベントを識別することがある。一実施形態では、メッセージタイプとイベントの間には一対一の対応関係が存在することがある。ステートマシンエンジンは、セッションディスパッチャから、アプリケーション識別子、セッション識別子、現行のイベント、およびメッセージを受け取る。ステートマシンエンジンは、アプリケーション識別子を脆弱性指定基準記憶装置に提供すると共に、当該アプリケーション識別子に関連付けされたステートマシントリプレットを要求する。ステートマシンエンジンはさらに、アプリケーション識別子およびセッション識別子をアプリケーション/セッション状態記憶装置に提供すると共に、関連付けされた状態情報を要求する。トリプレットおよび状態情報を受信した時点で、ステートマシンエンジンは現行の状態および現行のイベントとマッチングするトリプレットを検索する。マッチングが得られたら、ステートマシンエンジンはこのマッチングしたトリプレットに関連付けされたハンドラーを実行するようにインタープリタに指令する。インタープリタは、対応する防護ポリシーによって規定された措置を実施するハンドラーを実行する。この措置には、次の状態などの状態情報をアプリケーション/セッション状態記憶装置内に保存することを含むことがある。ハンドラーはさらに、アプリケーション/セッション状態記憶装置から情報(例えば、セッションの以前のメッセージを処理したハンドラーが保存した情報)を取り出すことがある。
防護システムをその上に実現させる計算デバイスは、中央演算処理装置、メモリ、入力デバイス(例えば、キーボードおよびポインティングデバイス)、出力デバイス(例えば、ディスプレイデバイス)、ならびに記憶デバイス(例えば、ディスク駆動装置)を含むことがある。メモリおよび記憶デバイスは、防護システムを実現させる命令を含むことがあるコンピュータ読み取り可能な媒体である。さらに、通信リンク上の信号などデータ伝送媒体を介してデータ構造およびメッセージ構造が保存または伝送されることがある。インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、またはポイントツーポイントのダイアルアップ接続など、様々な通信リンクが使用されることがある。
図3は、防護システムをその内部に実現させることがある適当な動作環境の一例を表している。この動作環境は、適当な動作環境の単なる一例であって、防護システムの利用法および機能の範囲に関する何らの限定を示唆することを意図したものではない。使用に適することがあるような、よく知られている別の計算システム、環境、および構成には、パーソナルコンピュータ、サーバコンピュータ、ハンドへルドまたはラップトップデバイス、ルータ、スイッチ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な民生用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、以上のシステムまたはデバイスのいずれかを含む分散型計算環境、その他が含まれる。
防護システムは、1つまたは複数のコンピュータまたは別のデバイスによって実行されるプログラムモジュールなどコンピュータ実行可能な命令の一般的コンテキストで記述されることがある。一般的に、プログラムモジュールは、識別のタスクを実施するか、あるいは識別の抽象データタイプを実現しているような、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、その他を含んでいる。典型的には、このプログラムモジュールの機能は、様々な実施形態において所望により結合されたり、分散されたりすることがある。「アプリケーション」という用語は、ドライバ、カーネルモードのコード、オペレーティングシステム、システムユーティリティ、ウェブサーバ、データベースサーバ、その他など、任意のタイプの実行ソフトウェアを意味している。
表1は、一実施形態の防護ポリシーの一部分を表している。この防護ポリシーは、特殊用途の言語を用いて開発されることがある。防護ポリシーは、アプリケーションおよびステートマシン情報を備えた第1の部分と、ハンドラーおよびペイロード命令を備えた第2の部分とを有している。先頭に「#」を付けた行はコメントである。アプリケーション情報(行1〜5)は、位置およびポート情報を記述している。ステートマシン情報(行6〜28)は、状態、イベント、およびトリプレットを記述している。ハンドラー(行46〜67)は実施すべき処理を規定している。ペイロード命令(行29〜45)は、アプリケーションのメッセージのフィールドを構文解析する方法を指定している。ペイロード命令は、悪用の検出に使用されるフィールドを規定するためにのみ必要である。これ以外のフィールドは、ひとまとめにしたり、フィールド構文解析中においてスキップさせることができる。ハンドラーは、理論的には任意のプログラミング言語で記述することが可能である。防護ポリシー自体を攻撃することを困難とさせるような言語を使用すべきである。こうした攻撃の防止に役立つように特殊用途のプログラミング言語が開発されている。表1のハンドラーでは、その言語は、ブール型、カウンタ(例えば、整数)、ならびにワードおよびバイトのアレイのデータタイプを使用している。この言語はさらに、メッセージのドロップ、セッションの解除、メッセージ長の決定、その他などの様々な演算を提供する。「>>ペイロード」という演算(例えば、行49)は、指定されたペイロード命令に従ってペイロードを構文解析すること(例えば、このペイロードは「P_RPCRequest」のバッファサイズである)を示している。この言語はさらに、if−thenステートメント、特殊用途のforループ、その他などのステートメントを許容することがある。特殊用途のforループは、反復式ペイロード構造のために使用される。一実施形態では、そのハンドラーは、実行時にインタープリタによって解釈される。
Figure 0004864333
Figure 0004864333
図4は、一実施形態のステートマシンエンジンの処理を表した流れ図である。このエンジンは現行のイベント、アプリケーション識別子、セッション識別子、およびメッセージを通過する。ブロック401において、このエンジンはアプリケーション識別子およびセッション識別子をアプリケーション/セッション状態記憶装置に提供する。ブロック402において、このエンジンはそのアプリケーション識別子およびセッション識別子に関する現行の状態をアプリケーション/セッション状態記憶装置から受け取る。ブロック403において、このエンジンはアプリケーション識別子を脆弱性指定基準記憶装置に提供する。ブロック404において、このエンジンはアプリケーション識別子に関するステートマシントリプレットを脆弱性指定基準記憶装置から受け取る。ブロック405〜407において、このエンジンはトリプレットが現行の状態および現行のイベントとマッチングするか否かを判定するようにループ動作する。ブロック405において、このエンジンは次のトリプレットを選択する。判断ブロック406において、トリプレットのすべてがすでに選択され終っている場合には、このエンジンは終了となり、そうでなければこのエンジンはブロック407から継続される。トリプレットの組には、現行の状態および現行のイベントとマッチングするトリプレットが他にない場合に実行すべきハンドラーを識別するデフォルトトリプレットを含むことがある。さらに、トリプレットの状態およびイベントは、そのトリプレットとマッチングする状態およびイベントを規定する正規表現とすることがある。判断ブロック407において、トリプレットの状態が現行の状態とマッチングしており、かつそのトリプレットのイベントが現行のイベントとマッチングしている場合には、このエンジンはブロック408から継続され、そうでなければこのエンジンは次のトリプレットを選択するためにブロック405までループ動作する。ブロック408において、このエンジンは、ハンドラー、アプリケーション識別子、セッション識別子、現行のイベント、およびメッセージを通過するインタープリタを呼び出す。次いで、このエンジンは終了となる。
図5は、一実施形態による脆弱性指定基準の試験を表したブロック図である。この防護システム510は、試験を受ける脆弱性指定基準511を含んでいる。この防護システムはさらに、図3のアプリケーションディスパッチャ、セッションディスパッチャ、ステートマシンエンジン、およびインタープリタに対応する防護コンポーネント512を含んでいる。この防護システムは、その脆弱性が脆弱性指定基準によって表現されているアプリケーション501にメッセージを提供する。ネットワークシミュレータ502はメッセージを防護システムに引き渡している。このメッセージは、アプリケーションに提供される典型的なメッセージシーケンスから収集されたネットワークデータ503から取り出されることや、代表的なトラフィックの合成試験スイート(synthetic test suite)とすることがある。この防護システムはアプリケーションに対するパッチではないため、その試験が簡略化される。詳細には、防護システムに関連する副作用は、典型的なアプリケーションの副作用の場合と比べてより容易に分離することができる。アプリケーションの観点からすると、この防護システムはメッセージを提供するかメッセージをドロップするかのいずれかである。そのネットワークデータが脆弱性を曝露させる一連のメッセージを含まない場合は、メッセージはすべて防護システムを通過させてアプリケーションに提供すべきである。防護システムによってあるメッセージが廃棄された場合、このことは、脆弱性指定基準に関する問題点を指摘している場合や、脆弱性の曝露が検出されたことを示す場合がある。
図6は、一実施形態による脆弱性指定基準の作成を表したブロック図である。脆弱性指定基準は、アプリケーションに対するメッセージプロトコルステートマシンの標準的な規定に基づいて自動式にまたは半自動式に作成されることがある。指定基準作成器610は、標準規定を用いて規定されたあるアプリケーション向けのメッセージプロトコルステートマシン記述601を入力する。指定基準作成器はステートマシンを処理して適当な脆弱性指定基準602を出力する。指定基準作成器は、脆弱性ステートマシン識別コンポーネント611と、ハンドラー作成コンポーネント612と、指定基準生成コンポーネント613とを含んでいる。脆弱性ステートマシン識別コンポーネントはユーザ入力を受け取り、そのステートマシンのうちの脆弱性を曝露させる部分を識別する。このユーザ入力は、脆弱性の曝露につながる状態を選択することがあり、また各状態が如何にしてかつどの様な場合に脆弱性を曝露させるかを示すために状態の様々な条件を提供することがある。例えば、あるメッセージが脆弱性を曝露させるのは、前のメッセージがある種の内容を含んでいた場合だけであることがある。ハンドラー作成コンポーネントは、ユーザ入力に基づいてハンドラーを自動式で作成することがある。指定基準生成コンポーネントは、脆弱性ステートマシンおよびハンドラーから、脆弱性指定基準や防護ポリシーを作成する。
防護システムの具体的な実施形態について例示を目的として本明細書に記載してきたが、当業者であれば、本発明の精神および趣旨を逸脱することなく様々な修正を実施できることを理解されよう。例えば、メッセージのペイロードが暗号化されている場合、防護システムはアプリケーションに暗号解読キーを要求することがある。次いで、防護システムはメッセージを暗号解読し、暗号解読したメッセージを処理することができる。この防護システムは、アプリケーションに対して暗号未解読の形態でメッセージを提供することができる。別法として、その防護システムは、そのアプリケーションのキー保管庫(vault)から暗号解読キーを取り出すことがある。暗号解読キーはまた、システム管理者やキーエスクローシステムによって防護システムに提供されることもある。別の例として、アプリケーションにポートが動的に割り当てられている場合、こうしたポートを検出しこの当該アプリケーションに対するポートを脆弱性指定基準記憶装置によって登録するように脆弱性指定基準を開発することができる。この防護システムについて、主にメッセージベースのプロトコルのコンテキストで記述してきたが、この防護システムの原理はさらに、ストリームベースのプロトコルにも適用することができる。さらに、この防護ポリシーは有限のステートマシンの代わりに正規表現を用いることもある。この防護システムは、参照により本明細書に組み込むことにする「METHOD AND SYSTEM FOR DYNAMIC SYSTEM PROTECTION」と題する2004年2月23日に提出された特許文献1(整理番号第41826.8018US)に記載されている技法と一緒に使用することができる。この出願に記載されているように、防護ポリシーは、アプリケーションに適用されたパッチに応じて自動式に有効化または無効化することができる。防護システムは、アプリケーションの呼び出し用アプリケーションプログラミングインターフェース(「API」)に基づいて脆弱性の悪用の試みを検出するために使用することができる。APIは、プログラムがこれを介してアプリケーションのサービスにアクセスすることができるインターフェースを提供する。このインターフェースは、プログラムがアプリケーションと通信するための通信プロトコルを規定している。したがって、「通信プロトコル」という用語はコンポーネント間の通信に関する手続きおよび規則を示しており、ISOプロトコルスタックのプロトコルに限定しない。したがって、本発明は添付の特許請求の範囲による以外の限定を受けない。
一実施形態による防護システムを表したブロック図である。 一実施形態による脆弱性指定基準内に規定されるメッセージプロトコルの一部分の状態図である。 一実施形態による防護システムのアーキテクチャを表したブロック図である。 一実施形態によるステートマシンエンジンの処理を表した流れ図である。 一実施形態による脆弱性指定基準の試験を表したブロック図である。 一実施形態による脆弱性指定基準の作成を表したブロック図である。
符号の説明
110 防護システム
111 脆弱性指定基準記憶装置
112 防護コンポーネント
120 アプリケーション
130 クライアント
140 通信リンク
211 RPCバインドを待つ状態
212 RPCバインド確認を待つ状態
213 RPC要求を待つ状態
214 セッションを解除する状態
215 最終状態
221 RPCバインドのハンドラー
222 RPCバインド確認のハンドラー
223 RPC要求のハンドラー
224 セッション解除確認のハンドラー
301 ポリシーローダー
302 脆弱性指定基準記憶装置
303 アプリケーションディスパッチャ
304 セッションディスパッチャ
305 ステートマシンエンジン
306 インタープリタ
307 アプリケーション/セッション状態記憶装置
501 アプリケーション
502 ネットワークシミュレータ
503 ネットワークデータ
510 防護システム
511 試験脆弱性指定基準
512 防護コンポーネント
601 メッセージプロトコルステートマシン
602 アプリケーション脆弱性指定基準
610 指定基準作成器
611 脆弱性ステートマシン識別
612 ハンドラー作成
613 指定基準生成

Claims (14)

  1. コンピュータシステムにおいて、コンポーネントとの複数の通信が当該コンポーネントの脆弱性を暴露する時点を識別するための方法であって、前記コンポーネントは当該コンポーネントが通信を受信すると遷移する複数の通信プロトコル状態を有する通信プロトコルを使用するコンポーネントであり、前記方法は、
    ある通信プロトコル状態から別の通信プロトコル状態への遷移に関連する通信の特徴と共に前記コンポーネントの前記複数の通信プロトコル状態の少なくとも一部分を指定しかつ特定の通信シーケンスを利用した前記脆弱性が暴露される時点の通信プロトコル状態を示す、当該脆弱性の暴露から独立している指定基準を提供するステップと、
    前記コンポーネントに対する複数の通信を受信するステップと、
    前記受信された通信の各々が前記コンポーネントによって処理される前に、
    前記コンポーネントの現在の通信プロトコル状態を判定し、
    前記提供された指定基準および前記受信された通信の1つのメッセージに基づいて次の通信プロトコル状態を判定し、
    前記次の通信プロトコル状態が脆弱性を暴露する通信プロトコル状態であると示される場合に、前記受信された通信を前記コンポーネントへ提供せず、
    前記次の通信プロトコル状態が脆弱性を暴露する通信プロトコル状態であると示されない場合に、前記受信された通信を前記コンポーネントへ提供し、
    前記現在の通信プロトコル状態を前記次の通信プロトコル状態にセットする、ステップと
    を含むことを特徴とする方法。
  2. 前記提供された指定基準は通信の処理を制御するためのステートマシンを規定していることを特徴とする請求項1に記載の方法。
  3. 前記ステートマシンは、前記通信プロトコルの複数の通信プロトコル状態と、通信プロトコル状態間での遷移イベントとを規定していることを特徴とする請求項2に記載の方法。
  4. 前記指定基準は前記通信プロトコル状態間での遷移の際に実施すべき措置を指定していることを特徴とする請求項2に記載の方法。
  5. 前記判定は、前記指定基準、現在の通信プロトコル状態および現在のイベントを入力し、前記現在の通信プロトコル状態および前記現在のイベントに対して前記指定基準内で識別されるハンドラーを選択し、かつある措置を実施するように前記ハンドラーの起動を指示しているステートマシンエンジンによって実施されていることを特徴とする請求項4に記載の方法。
  6. 前記現在の通信プロトコル状態は各コンポーネント単位で保存されていることを特徴とする請求項1に記載の方法。
  7. 前記現在の通信プロトコル状態は各セッション単位で保存されていることを特徴とする請求項1に記載の方法。
  8. 前記コンポーネントは複数のセッションを取り扱っており、かつ前記通信プロトコル状態を判定することは1つのセッションの通信のみに基づいていることを特徴とする請求項1に記載の方法。
  9. アプリケーションにメッセージが送られる結果として当該アプリケーションの脆弱性が曝露される時点を検出するシステムであって、メモリとプロセッサとを備え、
    前記メモリは、
    あるメッセージが前記アプリケーションの特定の通信シーケンスを利用した前記脆弱性を曝露させる時点を示すステートマシンを規定しかつ前記アプリケーションの前記脆弱性の曝露を防止するために取るべき措置を規定している前記アプリケーション向けの指定基準であって、ここで、前記ステートマシンは前記アプリケーションによって使用される通信プロトコルの1つのメッセージを処理すると遷移する複数の通信プロトコル状態を指定しており、当該脆弱性の暴露から独立している指定基準
    前記ステートマシンによって表された前記アプリケーションの現在の状態を保存している状態ストア、および
    プログラムを記録しており
    記プログラムは、前記プロセッサを、
    前記アプリケーションに対する複数のメッセージを受信し、
    前記アプリケーションに関する前記ステートマシンの現在の通信プロトコル状態を取り出し、かつ
    前記取り出された現在の通信プロトコル状態にありかつ当該メッセージが受信されたときに実施すべき措置を前記アプリケーションに関する前記指定基準から識別するエンジンと
    として機能させることを特徴とするシステム。
  10. 前記状態ストアは各セッション単位で状態情報を保存することを特徴とする請求項9に記載のシステム。
  11. あるアプリケーションに関して複数の脆弱性が規定されている場合、前記脆弱性を指定するために単一の指定基準が使用されていることを特徴とする請求項9に記載のシステム。
  12. あるメッセージの一部分を前記メッセージの全体が受信されるまで保存している記憶装置を含むことを特徴とする請求項9に記載のシステム。
  13. 前記メッセージの前記一部分は各ソケット単位で保存されていることを特徴とする請求項12に記載のシステム。
  14. コンピュータシステムを制御してメッセージがアプリケーションの脆弱性を暴露する時点を識別するためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記アプリケーションは当該アプリケーションがメッセージを受信すると遷移する複数のメッセージプロトコル状態を有するメッセージプロトコルを備え、前記プログラムは、前記コンピュータシステムに、
    前記アプリケーションの前記メッセージプロトコル状態の少なくとも一部分を指定し、かつ前記メッセージプロトコル状態の前記指定された部分の内部で前記アプリケーションの特定の通信シーケンスを利用した前記脆弱性が暴露される時点を指示している、当該脆弱性の暴露から独立している指定基準を提供するステップであって、ここで前記提供された指定基準はメッセージの処理を制御するためのステートマシンを規定しており、前記ステートマシンは複数のメッセージプロトコル状態および状態間での遷移イベントを規定している、ステップと、
    前記アプリケーションに対する複数のメッセージを受信するステップと、
    前記アプリケーションの前記メッセージプロトコル状態の前記指定された少なくとも一部分、現在のメッセージプロトコル状態及び前記前記受信されたメッセージに基づいて受信された1つのメッセージが前記アプリケーションの前記脆弱性を暴露するか否かを判定するステップと、
    前記脆弱性を暴露すると判定されたときは前記受信された1つのメッセージを前記アプリケーションに提供せず、前記脆弱性を暴露しないと判定されたときは前記受信された1つのメッセージを前記アプリケーションに提供するステップと
    を実行させることを特徴とするコンピュータ読み取り可能な記録媒体。
JP2005048972A 2004-02-24 2005-02-24 ソフトウェアの脆弱性の悪用を防止するように通信をフィルタ処理するための方法およびシステム Expired - Fee Related JP4864333B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US54713104P 2004-02-24 2004-02-24
US60/547,131 2004-02-24
US10/955,963 2004-09-30
US10/955,963 US7694022B2 (en) 2004-02-24 2004-09-30 Method and system for filtering communications to prevent exploitation of a software vulnerability

Publications (2)

Publication Number Publication Date
JP2005276185A JP2005276185A (ja) 2005-10-06
JP4864333B2 true JP4864333B2 (ja) 2012-02-01

Family

ID=34915591

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005048972A Expired - Fee Related JP4864333B2 (ja) 2004-02-24 2005-02-24 ソフトウェアの脆弱性の悪用を防止するように通信をフィルタ処理するための方法およびシステム

Country Status (5)

Country Link
US (1) US7694022B2 (ja)
EP (2) EP1569413B1 (ja)
JP (1) JP4864333B2 (ja)
KR (1) KR101109393B1 (ja)
CN (1) CN1728706B (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7584382B2 (en) 2004-02-19 2009-09-01 Microsoft Corporation Method and system for troubleshooting a misconfiguration of a computer system based on configurations of other computer systems
US7392295B2 (en) * 2004-02-19 2008-06-24 Microsoft Corporation Method and system for collecting information from computer systems based on a trusted relationship
US8023408B2 (en) * 2004-11-19 2011-09-20 International Business Machines Corporation Dynamically changing message priority or message sequence number
US20100195538A1 (en) * 2009-02-04 2010-08-05 Merkey Jeffrey V Method and apparatus for network packet capture distributed storage system
US7343599B2 (en) * 2005-01-03 2008-03-11 Blue Lane Technologies Inc. Network-based patching machine
US7584182B2 (en) * 2005-12-19 2009-09-01 Microsoft Corporation Determining cardinality of a parameter using hash values
US7856100B2 (en) * 2005-12-19 2010-12-21 Microsoft Corporation Privacy-preserving data aggregation using homomorphic encryption
US7743123B2 (en) * 2005-12-19 2010-06-22 Microsoft Corporation Aggregating information from a cluster of peers
US8510596B1 (en) 2006-02-09 2013-08-13 Virsec Systems, Inc. System and methods for run time detection and correction of memory corruption
US7599861B2 (en) 2006-03-02 2009-10-06 Convergys Customer Management Group, Inc. System and method for closed loop decisionmaking in an automated care system
US8379830B1 (en) 2006-05-22 2013-02-19 Convergys Customer Management Delaware Llc System and method for automated customer service with contingent live interaction
US7809663B1 (en) 2006-05-22 2010-10-05 Convergys Cmg Utah, Inc. System and method for supporting the utilization of machine language
US9147271B2 (en) 2006-09-08 2015-09-29 Microsoft Technology Licensing, Llc Graphical representation of aggregated data
US8234706B2 (en) * 2006-09-08 2012-07-31 Microsoft Corporation Enabling access to aggregated software security information
US8266702B2 (en) * 2006-10-31 2012-09-11 Microsoft Corporation Analyzing access control configurations
US8302197B2 (en) 2007-06-28 2012-10-30 Microsoft Corporation Identifying data associated with security issue attributes
US8250651B2 (en) * 2007-06-28 2012-08-21 Microsoft Corporation Identifying attributes of aggregated data
US8289854B1 (en) * 2007-11-28 2012-10-16 Mcafee, Inc. System, method, and computer program product for analyzing a protocol utilizing a state machine based on a token determined utilizing another state machine
US8521732B2 (en) 2008-05-23 2013-08-27 Solera Networks, Inc. Presentation of an extracted artifact based on an indexing technique
US20090292736A1 (en) * 2008-05-23 2009-11-26 Matthew Scott Wood On demand network activity reporting through a dynamic file system and method
US8004998B2 (en) * 2008-05-23 2011-08-23 Solera Networks, Inc. Capture and regeneration of a network data using a virtual software switch
US8625642B2 (en) * 2008-05-23 2014-01-07 Solera Networks, Inc. Method and apparatus of network artifact indentification and extraction
US9262357B2 (en) 2008-09-29 2016-02-16 International Business Machines Corporation Associating process priority with I/O queuing
US8146158B2 (en) * 2008-12-30 2012-03-27 Microsoft Corporation Extensible activation exploit scanner
US8954725B2 (en) * 2009-05-08 2015-02-10 Microsoft Technology Licensing, Llc Sanitization of packets
US20110125748A1 (en) * 2009-11-15 2011-05-26 Solera Networks, Inc. Method and Apparatus for Real Time Identification and Recording of Artifacts
US20110125749A1 (en) * 2009-11-15 2011-05-26 Solera Networks, Inc. Method and Apparatus for Storing and Indexing High-Speed Network Traffic Data
US8849991B2 (en) 2010-12-15 2014-09-30 Blue Coat Systems, Inc. System and method for hypertext transfer protocol layered reconstruction
US8666985B2 (en) 2011-03-16 2014-03-04 Solera Networks, Inc. Hardware accelerated application-based pattern matching for real time classification and recording of network traffic
KR102368170B1 (ko) * 2013-09-12 2022-02-25 버섹 시스템즈, 인코포레이션 멀웨어의 자동화된 런타임 검출
CN107077412B (zh) 2014-06-24 2022-04-08 弗塞克系统公司 单层或n层应用的自动化根本原因分析
AU2015279923B9 (en) 2014-06-24 2018-01-25 Virsec Systems, Inc. System and methods for automated detection of input and output validation and resource management vulnerability
CN104484608A (zh) * 2014-12-16 2015-04-01 北京奇虎科技有限公司 一种应用程序的消息处理方法和装置
RU2606883C2 (ru) * 2015-03-31 2017-01-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ открытия файлов, созданных уязвимыми приложениями
KR102419574B1 (ko) 2016-06-16 2022-07-11 버섹 시스템즈, 인코포레이션 컴퓨터 애플리케이션에서 메모리 손상을 교정하기 위한 시스템 및 방법
WO2018081833A1 (en) * 2016-10-31 2018-05-03 Talla, Inc. State machine methods and apparatus executing natural language communications, and al agents monitoring status and triggering transitions
US10534915B2 (en) * 2017-06-29 2020-01-14 Aqua Security Software, Ltd. System for virtual patching security vulnerabilities in software containers
US11579985B2 (en) * 2019-05-31 2023-02-14 Acronis International Gmbh System and method of preventing malware reoccurrence when restoring a computing device using a backup image

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE414943T1 (de) 2000-03-03 2008-12-15 Ibm System zur bestimmung von schwächen von web- anwendungen
AU2001293080A1 (en) * 2000-09-28 2002-04-15 Symantec Corporation System and method for analyzing protocol streams for a security-related event
JP3692290B2 (ja) * 2000-11-24 2005-09-07 株式会社エヌ・ティ・ティ・ドコモ データ取得方法および端末
EP1225513A1 (en) * 2001-01-19 2002-07-24 Eyal Dotan Method for protecting computer programs and data from hostile code
US7313822B2 (en) * 2001-03-16 2007-12-25 Protegrity Corporation Application-layer security method and system
US7624444B2 (en) * 2001-06-13 2009-11-24 Mcafee, Inc. Method and apparatus for detecting intrusions on a computer system
US7359962B2 (en) * 2002-04-30 2008-04-15 3Com Corporation Network security system integration
US7454499B2 (en) * 2002-11-07 2008-11-18 Tippingpoint Technologies, Inc. Active network defense system and method
JP3999188B2 (ja) * 2003-10-28 2007-10-31 富士通株式会社 不正アクセス検知装置、不正アクセス検知方法および不正アクセス検知プログラム

Also Published As

Publication number Publication date
US20050198110A1 (en) 2005-09-08
EP1569413A2 (en) 2005-08-31
EP3544259A1 (en) 2019-09-25
KR20060042149A (ko) 2006-05-12
CN1728706A (zh) 2006-02-01
US7694022B2 (en) 2010-04-06
CN1728706B (zh) 2010-06-16
KR101109393B1 (ko) 2012-01-30
JP2005276185A (ja) 2005-10-06
EP1569413A3 (en) 2005-11-30
EP1569413B1 (en) 2019-06-12

Similar Documents

Publication Publication Date Title
JP4864333B2 (ja) ソフトウェアの脆弱性の悪用を防止するように通信をフィルタ処理するための方法およびシステム
Lee et al. Delta: A security assessment framework for software-defined networks.
US10885182B1 (en) System and method for secure, policy-based access control for mobile computing devices
EP3472746B1 (en) Systems and methods for remediating memory corruption in a computer application
US8127290B2 (en) Method and system for direct insertion of a virtual machine driver
US7765194B1 (en) Detection and enforcement of version compatibility in network devices
JP6188832B2 (ja) データベース・クライアント要求を処理するための方法、コンピュータ・プログラム製品、データ処理システム、およびデータベース・システム
US7523308B2 (en) Method and system for dynamic system protection
US8769127B2 (en) Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT)
Jero et al. Beads: Automated attack discovery in openflow-based sdn systems
US20010044904A1 (en) Secure remote kernel communication
US20150180885A1 (en) Malicious Mobile Code Runtime Monitoring System and Methods
JP4828551B2 (ja) 分割通信システム
US9219755B2 (en) Malicious mobile code runtime monitoring system and methods
Lee et al. A comprehensive security assessment framework for software-defined networks
KR20160114037A (ko) 멀웨어의 자동화된 런타임 검출
US20090007268A1 (en) Tracking computer infections
Woo et al. RE-CHECKER: Towards secure RESTful service in software-defined networking
Neves et al. Sandboxing data plane programs for fun and profit
Corrick Progger 3: A low-overhead, tamper-proof provenance system
Michaud Malicious use of omg data distribution service (dds) in real-time mission critical distributed systems
Endsuleit et al. A security analysis on jade (-s) v. 3.2
Aßmann MeTA1 README
Lamb SDN control plane with information flow control
Aziz Applying Covert Channel in TCP Fast Open (TFO)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110509

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111019

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111109

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4864333

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees