(57)【要約】アプリケーションレベルのセキュリティのためのシステムおよび方法を開示する。アプリケーションレベルのセキュリティとは、機能的ユーザ挙動からセキュリティ脅威を検出することを指す。機能的ユーザ挙動に関する情報は、挙動セッションに変換される。挙動セッションは、挙動パターンに変換される。挙動パターンは、潜在的なセキュリティ脅威を検出するように評価パターンと相関している。挙動パターンは、分析を向上させるように、経時的に収集される。
2012527691.tif 000002
【特許請求の範囲】
【請求項１】
ウェブアプリケーション上の悪意のある機能的ユーザ挙動を検出するための方法であって、
セッション中に、クライアントデバイスから前記ウェブアプリケーションをホストするウェブサーバに送信された複数のユーザ要求を収集するステップであって、
前記複数のユーザ要求は、機能的ユーザ挙動と関連付けられる情報を含み、
前記ウェブアプリケーションは、インターネット上で、前記ウェブサーバよって前記クライアントデバイスに提供される、ステップと、
機能的ユーザ挙動と関連付けられる前記情報を、前記機能的ユーザ挙動を定性的に記述する挙動パターンに変換するステップと、
一式の既知の評価パターンを、前記挙動パターンと相関させるステップであって、前記既知の評価パターンのうちの少なくとも１つは、悪意のある機能的ユーザ挙動と関連付けられる、ステップと、
前記相関から、前記挙動パターンと、悪意のある機能的ユーザ挙動と関連付けられる評価パターンとの間の合致を発見することに応じて、前記合致評価パターンと関連付けられる修復措置を自動的に実行するステップと
を含む、方法。
【請求項２】
機能的ユーザ挙動と関連付けられる情報は、前記ウェブアプリケーション上のユーザ活動に関する定性的情報、および前記ウェブアプリケーション上のユーザ活動に関する定量的情報のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
前記挙動パターンは、特定の定性的な機能的ユーザ挙動特性に関する定量化可能な情報を含み、前記定性的な機能的ユーザ挙動特性は、ウェブページ上のユーザ入力、ウェブページ閲覧シーケンス、ユーザ入力のタイムスタンプ、および前記閲覧シーケンスにおけるページ訪問のタイムスタンプのうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項４】
ユーザ入力は、テキスト入力、マウスクリック、カーソル移動、および触覚入力のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項５】
前記セッションは、前記ウェブアプリケーションとの相互作用が開始する第１の時間から、前記ウェブアプリケーションとの相互作用が終了する第２の時間までに開始する、ユーザ挙動セッションである、請求項１に記載の方法。
【請求項６】
複数の挙動パターンをデータ記憶デバイスに経時的に記憶するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記評価パターンのうちの１つは、入力として特異的な正規表現を受信するステップを含む、請求項１に記載の方法。
【請求項８】
前記評価パターンのうちの１つは、特定の一連のウェブページの存在を含む、請求項１に記載の方法。
【請求項９】
前記評価パターンは、前記ウェブアプリケーションに特異的であり、一式の非アプリケーション特異的挙動パターンから生成される、請求項１に記載の方法。
【請求項１０】
前記評価パターンは、階層的に関連している、請求項１に記載の方法。
【請求項１１】
相関させるステップは、統計的相関アルゴリズムおよびヒューリスティックを使用して、前記挙動パターンを分類するステップを含み、統計的相関アルゴリズムは、前記挙動パターンと前記評価パターンのそれぞれとの間の類似性を定量的に計算するステップを含む、請求項１に記載の方法。
【請求項１２】
ヒューリスティックに少なくとも部分的に基づいて、前記評価パターンを更新するステップをさらに含む、請求項１に記載の方法。
【請求項１３】
１つ以上の新しい評価パターンを抽出するように、前記評価パターンに対して収集される挙動パターンをクラスタ化するステップをさらに含む、請求項６に記載の方法。
【請求項１４】
収集される挙動パターンに少なくとも部分的に基づいて、前記評価パターンを更新するステップをさらに含む、請求項６に記載の方法。
【請求項１５】
前記挙動パターンを分類するステップは、前記挙動パターンにおける特定の機能的特性の有無に少なくとも部分的に基づく、請求項１１に記載の方法。
【請求項１６】
前記修復措置は、システム管理者に通知を送信するステップを含む、請求項１に記載の方法。
【請求項１７】
前記修復措置は、一定の期間にわたって、前記ユーザが前記ウェブアプリケーションにアクセスすることを阻止するステップを含む、請求項１に記載の方法。
【請求項１８】
前記修復措置は、前記ウェブアプリケーション上に警告を表示することによって、前記セッションを修正するステップを含む、請求項１に記載の方法。
【請求項１９】
複数の分散ネットワークおよびアクセスポイントにわたって、複数のユーザ要求を収集するステップをさらに含む、請求項１に記載の方法。
【請求項２０】
ウェブアプリケーション上の悪意のある機能的ユーザ挙動を検出するためのシステムであって、
セッション中に、クライアントデバイスから前記ウェブアプリケーションをホストするウェブサーバに送信された複数のユーザ要求を受信するように構成される、サーバ上の制御回路であって、
前記複数のユーザ要求は、機能的ユーザ挙動と関連付けられる情報を含み、
前記ウェブアプリケーションは、インターネット上で、前記ウェブサーバよって前記クライアントデバイスに提供され、
受信される前記ユーザ要求の中の前記情報を、前記機能的ユーザ挙動を定性的に記述する挙動パターンに変換する、制御回路と、
前記複数のユーザ要求および前記挙動パターンを記憶するための前記サーバ内のデータ記憶装置と、
前記サーバ上のプロセッサであって、
一式の既知の評価パターンを、前記挙動パターンと相関させるためのプロセッサであって、前記既知の評価パターンのうちの少なくとも１つは、悪意のある機能的ユーザ挙動と関連付けられ、
前記挙動パターンと、悪意のある機能的ユーザ挙動と関連付けられる評価パターンとの間の合致を発見することに応じて、前記合致評価パターンと関連付けられる修復措置を自動的に実行するためのプロセッサである、プロセッサと
を備える、システム。
【請求項２１】
機能的ユーザ挙動と関連付けられる前記情報は、前記ウェブアプリケーション上のユーザ活動に関する定性的情報、および前記ウェブアプリケーション上のユーザ活動に関する定量的情報のうちの少なくとも１つを含む、請求項２０に記載のシステム。
【請求項２２】
前記挙動パターンは、特定の定性的な機能的ユーザ挙動特性に関する定量化可能な情報を含み、前記定性的な機能的ユーザ挙動特性は、ウェブページ上のユーザ入力、ウェブページ閲覧シーケンス、ユーザ入力のタイムスタンプ、および前記閲覧シーケンスにおけるページ訪問のタイムスタンプのうちの少なくとも１つを含む、請求項２０に記載のシステム。
【請求項２３】
ユーザ入力は、テキスト入力、マウスクリック、カーソル移動、および触覚入力のうちの少なくとも１つを含む、請求項２０に記載のシステム。
【請求項２４】
前記セッションは、前記ウェブアプリケーションとの相互作用が開始する第１の時間から、前記ウェブアプリケーションとの相互作用が終了する第２の時間までに開始する、ユーザ挙動セッションである、請求項２０に記載のシステム。
【請求項２５】
複数の挙動パターンを前記データ記憶デバイスに経時的に記憶するステップをさらに含む、請求項２０に記載のシステム。
【請求項２６】
前記評価パターンのうちの１つは、入力として特異的な正規表現を受信するステップを含む、請求項２０に記載のシステム。
【請求項２７】
前記評価パターンのうちの１つは、特定の一連のウェブページの存在を含む、請求項２０に記載のシステム。
【請求項２８】
前記評価パターンは、前記ウェブアプリケーションに特異的であり、一式の非アプリケーション特異的挙動パターンから生成される、請求項２０に記載のシステム。
【請求項２９】
前記評価パターンは、階層的に関連している、請求項２０に記載のシステム。
【請求項３０】
相関させるステップは、統計的相関アルゴリズムおよびヒューリスティックを使用して、前記挙動パターンを分類するステップを含み、統計的相関アルゴリズムは、前記挙動パターンと前記評価パターンのそれぞれとの間の類似性を定量的に計算するステップを含む、請求項２０に記載のシステム。
【請求項３１】
前記プロセッサは、ヒューリスティックに少なくとも部分的に基づいて、前記評価パターンを更新するようにさらに構成される、請求項２０に記載のシステム。
【請求項３２】
前記プロセッサは、１つ以上の新しい評価パターンを抽出するように前記評価パターンに対して収集される、挙動パターンをクラスタ化するようにさらに構成される、請求項２５に記載のシステム。
【請求項３３】
収集される挙動パターンに少なくとも部分的に基づいて、前記評価パターンを更新するようにさらに構成される、請求項２５に記載のシステム。
【請求項３４】
前記挙動パターンを分類するステップは、前記挙動パターンにおける特定の機能的特性の有無に少なくとも部分的に基づく、請求項３０に記載のシステム。
【請求項３５】
前記修復措置は、システム管理者に通知を送信するステップを含む、請求項２０に記載のシステム。
【請求項３６】
前記修復措置は、一定期間にわたって、前記ユーザが前記ウェブアプリケーションにアクセスすることを阻止するステップを含む、請求項２０に記載のシステム。
【請求項３７】
前記修復措置は、前記ウェブアプリケーション上に警告を表示することによって、前記セッションを修正するステップを含む、請求項２０に記載のシステム。
【請求項３８】
前記制御回路は、複数の分散ネットワークおよびアクセスポイントにわたって、複数のユーザ要求を受信するようにさらに構成される、請求項２０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２００９年５月１９日に出願された米国出願第１２／４６８，７３９号の利益を主張し、この米国出願の開示は、その全体が本明細書において参照により援用される。
【背景技術】
【０００２】
本発明は、概して、アプリケーションレベルのセキュリティシステムに関し、より具体的には、アプリケーションレベルの機能的ユーザ挙動に関する情報を収集し、かつ攻撃が起こる前にセキュリティ脅威を検出するように、収集される情報を評価パターンと相関させる、ウェブアプリケーションセキュリティシステムに関する。
【０００３】
セキュリティは、インターネットに関する最大の懸念点および市場の１つである。より多くのユーザおよび会社が、クレジットカード情報および従業員記録等、インターネット上の機密情報にアクセスするにつれ、インターネットベースの商取引に対するセキュリティ脅威は、日々拡大する。インターネットセキュリティへのソリューションの大部分は、ネットワーク、サーバの動作環境、およびデータに重点を置いている。
【０００４】
例えば、インターネットセキュリティに対する一般的なソリューションのうちの１つは、ネットワークファイアウォールである。ネットワークファイアウォールは、資産への未承認のアクセスを阻止し、（例えば、顧客等の承認されたユーザに対して）ある種のアクセスの発生を可能にする。例えば、ネットワークファイアウォールは、特定のＩＰアドレスから生じる通信を阻止することができる。ハードウェアファイアウォール等のネットワークレベルのセキュリティソリューションは、通常、アクセス許可を判定するための規則およびアクセス制御リストを実行する。例えば、ハードウェアファイアウォールは、外部ネットワークトラフィックのアクセス許可を制限することによって、プライベートネットワークを保護することができる。
【０００５】
しかしながら、アプリケーションレベルでの保護は、おおむね軽視されている。主要な検討事項としてのセキュリティなく書き込まれ、配置されたウェブアプリケーションは、不注意に、機密または秘密情報を暴露し、ウェブサイトの改変を促進し、プライベートネットワークへのアクセスを提供し、サービス拒否（ＤｏＳ）攻撃を仕掛け、かつバックエンドデータベースへの妨害のないアクセスを促進する可能性がある。危険度は高く、攻撃者がアプリケーションに対する攻撃を開始する機会を得る前に、脅威を検出し、修復しなければならない。
【０００６】
攻撃者は、ハードウェアファイアウォールの開放されたドアを通ってアクセスを取得するように、アプリケーションを操作することがより効果的であることに気付いている。これらの攻撃は、ウェブサーバおよびウェブサーバが実行するアプリケーションを利用して、通常のユーザ（例えば、顧客）がウェブサイトにアクセスするために使用する境界領域防衛内の同じ開放されたドアを通って進入することによって機能する。そのような場合において、攻撃者は、概して、ウェブアプリケーションのコードの脆弱性を利用する。アプリケーションレベルの攻撃の一例として、ＳＱＬインジェクションがある。この種類の攻撃に対して脆弱であるウェブアプリケーションは、ユーザから受信したテキストをＳＱＬコードと連結させてＳＱＬクエリを作成することによって、ＳＱＬクエリを構成するように、フォームフィールドへのテキスト入力等のユーザ入力を使用することが多い。対象のクエリの代わりに悪意のあるクエリが作成されるように、適切なテキストがフォームフィールドを通じて提出された場合、ウェブアプリケーションは、パスワードまたは他の種類の個人情報等、ユーザを対象としていない情報を返す場合がある。
【０００７】
Ｊｕｎｉｐｅｒ  Ｎｅｔｗｏｒｋｓのネットワークファイアウォール等、アプリケーションレベルの攻撃を対象にした既存のセキュリティソリューションは、パケットのペイロードを検査するように、パケットレベルのソリューションを提供し、かつアプリケーションレベルの活動をモデル化するように、ネットワークトラフィックの履歴を記憶する。例えば、ＳＱＬインジェクションから保護するために、ネットワークファイアウォールは、特殊記号に関してパケットペイロードデータを検査する。しかしながら、アプリケーションレベルの活動は断片化され、適切でないため、これらのソリューションは、ネットワークレベルでパケットを検査し、かつ再構築、スクラビング、および正規化を必要とする。アプリケーションデータの目的を解釈するように、パケットペイロードを分析する工程は難しく、厄介であり、かつ多大な諸経費に繋がる。ブラウザセッションクッキーと関連付けられるデータ等のセッション情報は、ネットワークレベルで一貫性がないため、パケットレベルのソリューションは、ブラウザセッションを容易に記録することができない。パケットレベルのソリューションはまた、あるアプリケーションから別のアプリケーションにもたらされるネットワークトラフィックを容易に区別することができない。パケットレベルのソリューションはまた、高価であり、かつファイアウォールがアプリケーションデータに関してこれらのパケットにフィルタをかけるため、ネットワークの速度を著しく減速させる可能性がある。さらに、特定のアプリケーションに基づいて、パケットレベルのソリューションを容易に適合および修正することはできない。付加的に、パケットレベルのソリューションは、生パケットデータからアプリケーションレベルのユーザ挙動を解釈し、再構成するよう試行することしかできないため、パケットレベルのソリューションは、アプリケーション上の機能的挙動を正確かつ適切に追跡することができない。生パケットデータの再構成は、曖昧さに繋がり、セキュリティシステムの性能を低下させる。さらに、既存のソリューションは、無害な、および／または悪意のある挙動の新しいパターンを自動的に学習せず、所与の一式の脅威シグネチャ（つまり、ハードウェアベンダーまたはシステム管理者によって提供される脅威シグネチャ）とのみ連携することができる。
【０００８】
アプリケーションレベルで悪意のある活動（例えば、機能的不正使用）を、ネットワークレベルの通常かつ毎日のウェブトラフィックと区別するのは困難である。アプリケーション攻撃は、侵入検出方法、ネットワークファイアウォール、または暗号化によってさえも十分に防止することはできない。アプリケーションレベルの攻撃を防止し、既存のソリューションの欠点を排除することができるソリューションに対する必要性が存在する。
【発明の概要】
【課題を解決するための手段】
【０００９】
本発明の原則に従う、攻撃が起こる前にセキュリティ脅威を検出するためのシステムおよび方法を開示する。本明細書に開示される種々の実施形態において、概して、ウェブアプリケーションセキュリティシステムは、アプリケーションレベルの機能的ユーザ挙動に関する定性的および／または定量的情報を収集し、収集される情報は、定量化可能な値を有する定性的データを含む挙動パターンに変換され、かつ攻撃が起こる前にセキュリティ脅威を検出するように、挙動パターンを評価パターンと相関させる。
【００１０】
記載したセキュリティシステムの実施形態は、アプリケーションの他の挙動パターンに対する（例えば、ブラウザセッションにおける）挙動パターンの実時間分析および相関、脅威シグネチャ、およびウェブアプリケーションの全体的な利用を通じて、通常の挙動と悪意のある挙動（例えば、それぞれ、タイプミスにより不正なパスワードを入力する顧客対パスワードの辞書攻撃を実施する攻撃者）とを見分ける。例えば、ウェブサーバによって提供されるウェブアプリケーションは、データベースプログラム、電子メールプログラム、ビデオゲーム、電子商取引ウェブサイト、または他の適したウェブアプリケーションであることができる。そのようなアプリケーションでの機能的ユーザ挙動は、タイムスタンプされたユーザのボタンクリック、フォームフィールドへのテキスト入力、ユーザにより訪問されるページのシーケンス、または他の適したユーザ操作を含んでもよい。
【００１１】
システムは、ウェブアプリケーション上の機能的ユーザ挙動に関する定性的および／または定量的情報を挙動パターンに変換するために挙動分析エンジンを使用し、統計的分析または任意の他の適した相関方法を用いて、挙動パターンを複数の評価パターンのそれぞれと相関させるために相関エンジンを使用する。機能的ユーザ挙動に関して収集される定性的および／または定量的情報は、挙動パターンが評価パターンと容易に相関することができるように、最初に収集されたデータとは異なる形式で記憶された定量的および／または定性的情報を含む挙動パターンに変換されてもよい（例えば、挙動パターンの形式が、相関方法の入力と合致するように、収集されたデータを変換する）。評価パターンは、システムによって保護されているアプリケーションに特異的であってもよい。評価パターンのうちの少なくとも１つは、悪意のある挙動と関連付けられる。
【００１２】
収集される定性的および／または定量的情報を変換する工程は、アプリケーションレベルの機能的ユーザ挙動を定性的に記述するデータを含む挙動パターンを出力する。定性的データは、統計的相関等の、記憶および／または定量的分析を促進するように、定量化可能な値を含んでもよい。例えば、ページシーケンス（例えば、定量的かつ定性的な、タイムスタンプされたＨＴＴＰページ要求）を含む生データは、ページシーケンスがロボットのようにみえるかどうかを判定するために、分析法を介して変換される（アプリケーションレベルの機能的ユーザ挙動に関する定性的データおよび情報）。ページシーケンスがロボットのようであるかどうかは、「０」または「１」として、あるいは代替的に、「０．５６」または「０．３」等のロボット挙動の相対的水準を記述するよう、種々の値として定量化されてもよい。
【００１３】
収集される情報を変換する工程は、相関のために、収集される一式の生データを、管理可能な一式のデータまで低減する。一部の実施形態において、変換工程は、相関工程と統合され、変換工程は、特定の評価パターンとの最初の相関結果に応じて、動的に変わってもよい。
【００１４】
一部の実施形態において、機能的ユーザ挙動に関する定性的および／または定量的情報は、ウェブアプリケーションをホストするウェブサーバによってユーザ挙動セッションにわたって収集される。ユーザ挙動セッションは、ユーザがウェブアプリケーションとの相互作用を開始する時間から、ユーザがウェブアプリケーションとの相互作用を中止する時間までの、直接的または間接的にアプリケーションを使用する際のエンドユーザ挙動として定義される。例えば、ブラウザクッキーは、ユーザ挙動セッションを識別するために使用されてもよい。
【００１５】
セキュリティシステムは、脅威シグネチャを表すように構成される枠を有する。各枠は、アプリケーションレベルの攻撃の特性を記述するための鋳型である。枠は、機能的不正使用特質、データ挿入、コマンド挿入、および脅威シグネチャ等の属性を含む。一部の実施形態において、枠属性は、アプリケーションに特異的な評価パターンを作成するように、システムによって自動的に、または手動で投入される。
【００１６】
多くの方法で評価パターンを実装することができる。例えば、アプリケーション特異的評価パターンは、電子メールアプリケーションへの特異的な攻撃において存在する機能的不正使用特質のリストを表すベクトルであることができる。別の場合において、特定の属性の有無を表すように、評価パターンを、値（例えば、「０」および「１」）を有するキーとしての枠属性との連想配列として実装することができる。代替的に、値は、挙動パターンにおけるその属性を発見する相対的重要性を表す重量として、０から１００の数で表されてもよい。一部の実施形態において、枠は、機能的不正使用を示し得る特定のページシーケンスを表してもよい。
【００１７】
ユーザ挙動セッションにおいて、任意の適した方法を用いて、定性的および／または定量的な機能的ユーザ挙動を追跡、収集および記憶することができる。例えば、ウェブページ上のＪａｖｅＳｃｒｉｐｔ（登録商標）コード等のクライアント側のスクリプトを、ウェブサイト上のマウスの動きおよびクリックを追跡するために使用することができる。一部の実施形態において、サーバオブジェクトは、ページ要求等の、クライアントからウェブサーバへの関連する要求（例えば、サーバ側のスクリプト）を捕捉するように、ウェブアプリケーションをホストするウェブサーバ上にインストールされる。収集される機能的ユーザ挙動に関する情報は、挙動パターンに変換されてもよく、挙動パターンは、特定の属性の有無によって定義される。これらの属性は、機能的ユーザ挙動活動を定性的に記述してもよく、それらの属性に対する値は、記憶および／または相関を促進するように、定量的であってもよい。これらの属性は、アプリケーション特異的であってもよい。例えば、挙動パターンは、定量的値（例えば、０．３５ヒット／秒）に、関連する定性的属性（例えば、「ｂｏｏｋ＿ｅｖｅｎｔＡ．ｈｔｍｌ」へのページヒット間の平均時間間隔）をマップするためのハッシュテーブルとして実装されてもよい。別の場合において、挙動パターンは、それらの定性的属性の有無（例えば、提出される電子メールアドレスフィールド内の「？＆＝」の存在）を表すように、定性的属性に対する定量的値として「０」または「１」を含む。
【００１８】
一部の実施形態において、機能的ユーザ挙動に関する情報を含むユーザ要求（例えば、ＨＴＴＰ要求）は、ユーザ挙動セッション中に追跡される。ユーザ要求の中の機能的ユーザ挙動に関する情報は、ページ要求のタイムスタンプ、要求が属するアプリケーション、ユーザ挙動セッションの識別（例えば、ブラウザセッションクッキー）、要求ペイロード（例えば、ＵＲＩ、クエリ文字列、ヘッダパラメータ、投稿されたデータ）、または機能的ユーザ挙動に関する任意の他の適した情報を含んでもよい。特定の実施形態において、挙動パターンは、定性的属性と関連付けられる定量化可能な値を有する、定性的属性と関連付けられる。例えば、定性的属性は、ユーザによって入力されるテキスト入力中の正規表現の存在であってもよく、定量化可能な値は、「０」または「１」であってもよい。一部の実施形態において、機能的ユーザ挙動に関する情報は、ページシーケンスである。ページシーケンスは、以下の定性的属性に対する定量化可能な値を含む挙動パターンに変換される。
・各ページ要求間の時間間隔の差異
・各ページ要求間の平均時間間隔
・「ｃｏｎｆｉｒｍ＿ｏｒｄｅｒ．ａｓｐｘ」がシーケンスにおいて最も訪問されているページがどうか
上記の定性的属性に対する定量的値の例：
・０．０８
・０．１２秒
・１（「はい」を示す）
機能的ユーザ挙動に関する情報の生データは、任意の適した手段を使用して挙動パターンに変換される。結果として生じる挙動パターンはまた、ページシーケンス自体等の定性的値を含んでもよい。挙動パターンは、さらなる分析のために、セキュリティシステムに記憶される。
【００１９】
挙動パターンは、一式の評価パターンのそれぞれと相関している。一部の実施形態において、アプリケーションレベルの機能的ユーザ挙動に関してより多くの情報が収集されるにつれ、挙動パターンは、評価パターンと相関し続ける。相関方法は、閾値等のある既知の値に照らして、挙動パターンにおける定量的値を確認することを含んでもよい。例えば、相関は、０．０３に照らして、各ページ要求間の時間間隔の差異を確認することを含んでもよく、差異が０．０３を下回る場合、ページシーケンスは、ウェブアプリケーション上のロボットのような、人間以外のような機能的ユーザ挙動活動を示してもよい（例えば、ユーザ挙動がロボットのようであることを示す定性的データ）。
【００２０】
一部の実施形態において、相関は、挙動パターンと既知の評価パターンのそれぞれとの間の統計的相関を発見することによって、統計的方法（例えば、分類方法）を使用して実施される。使用される他の相関または分類方法は、ニューラルネットワーク、最近接分類子、決定木、または任意の他の適した分類手法を含んでもよい。一式の既知の挙動パターンは、カテゴリー別に整理されてもよく、階層の形で互いに関連していてもよく、他の種類の分類手法がより適している場合もある。
【００２１】
一部の実施形態において、相関は、ユーザ挙動セッションにわたるページシーケンスを、既知のページシーケンスパターンと合致させるように、パターン合致方法を使用して、挙動パターンに関して実施される。この場合、システムに記憶される挙動パターンは、定性的である。相関の結果は、ユーザ挙動セッションがセキュリティ脅威と相関しているかどうかを判定するために使用される。セキュリティ脅威を検出すると、修復措置は、セキュリティ脅威に反応するように自動的に実行される。例えば、修復措置は、セキュリティ脅威に関してシステム管理者に電子メールで連絡することを含む。代替的な実施形態において、修復措置は手動で実行される。
【００２２】
一部の実施形態において、経時的に、かつ多くのユーザにわたって収集される挙動パターンは、新しい評価パターンを検出するために使用される。収集される挙動パターンを再クラスタ化することによって、システムは、任意の適したクラスタ化アルゴリズムを使用して、新しい異常な、および／または悪意のある評価パターンを学習、検出、および抽出する。システムはまた、通常のパターンを学習、検出、および抽出する。今後の相関および分析のために、新しい評価パターンを、一式の既存の評価パターンと統合することができる。
【００２３】
本発明の上記のおよび他の目的および利点は、添付の図面と組み合わせて以下の発明を実施するための形態を考慮することにより明らかであり、図面全体を通して、同様の参照番号は同様の部分を示す。
【図面の簡単な説明】
【００２４】
【図１】図１は、本発明の一実施形態に従う、例示的なウェブアプリケーションシステムの図である。
【図２】図２は、本発明の一実施形態に従う、例示的なウェブアプリケーションセキュリティシステムの図である。
【図３】図３は、例示的なウェブアプリケーションの例示的な表示部を示す。
【図４】図４は、本発明の一実施形態に従う、機能的ユーザ挙動を既知の評価パターンと相関させるための例示的なフローチャートである。
【図５】図５は、本発明の一実施形態に従う、評価パターンを作成するための例示的な方法の図である。
【図６】図６は、本発明の一実施形態に従う、多層アプリケーションレベルのセキュリ
【発明を実施するための形態】
【００２５】
図１は、サーバ−クライアントシステムとして実装される、本発明の一実施形態に従う、例示的なウェブアプリケーションシステム１００を示す。ウェブサーバ１０２は、ウェブページを供給するように、クライアントから要求を受信する責任を担うコンピュータプログラムを実行するサーバコンピュータを備える。ウェブサーバ１０２は、コマンド、要求、および他の適したデータを送信および受信するように、制御回路１１０を備えてもよい。制御回路１１０は、１つ以上のマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、プログラム可能論理デバイス等に基づく処理回路等の、任意の適した処理回路に基づいてもよい。
【００２６】
ウェブサーバ１０２はまた、データベースおよびファイルを維持するためのデータ記憶構成要素１１２を含んでもよい。データ記憶構成要素１１２は、ランダムアクセスメモリまたはハードディスクを備えてもよい。代替的に、データベースおよび／またはファイルは、ウェブサーバ１０２から異なるウェブサーバ（図示せず）に記憶されてもよい。ウェブサーバ１０２は、イーサネット（登録商標）カードまたはデータモデム等の通信デバイス１１４を使用して、インターネット、ローカルエリアネットワーク（ＬＡＮ）、無線ネットワーク、または任意の他の適したネットワーク上でアクセス可能であってもよい。ウェブサーバ１０２は、通信デバイス１１４を使用して、他のサーバまたはクライアントと通信するように構成されてもよい。通信デバイス１１４を介して、ウェブサーバ１０２は、ウェブサーバ１０２上で実行されているアプリケーションにアクセスするのに適した種々のデバイスによってアクセス可能である。
【００２７】
ウェブサーバ１０２は、ウェブアプリケーション１１６の１つ以上のインスタンスを実行する。任意の適したアプローチは、ウェブアプリケーション１１６をクライアントに提供するために使用されてもよい。任意のクライアント（つまり、ユーザ）は、任意の適したアプローチを使用して、ウェブアプリケーション１１６のインスタンスにアクセスおよび／またはそれを実行してもよい。例えば、サーバ−クライアントベースのアプローチを、ウェブベースの電子メールアプリケーションをユーザに提供するために、電子メールサーバによって使用することができる。ユーザは、ウェブアプリケーションにアクセスするために、ｂｌａｃｋｂｅｒｒｙに実装されるウェブブラウザを使用して、ｂｌａｃｋｂｅｒｒｙを使用して電子メールにアクセスし、それを送信、および受信してもよい。別の実施形態において、ユーザは、リモートデスクトップソフトウェア（例えば、ＳｙｍａｎｔｅｃのｐｃＡｎｙｗｈｅｒｅ）を使用して、サーバ上で実行されているウェブアプリケーションにアクセスしてもよい。
【００２８】
ウェブアプリケーション１１６は、オンラインバンキングウェブアプリケーション、ソーシャルネットワーキングコミュニティウェブサイト、オンラインカレンダーアプリケーション、電子商取引アプリケーション、または任意の他の適したウェブサイトであってもよい。ウェブアプリケーション１１６は、ファイルおよびデータベース等のデータにアクセスすること、およびそれを（例えば、表示デバイス１１８またはシステムに結合される他のデバイスに）表示することを支持してもよい。ウェブサーバ１０２は、第三者データを提供するための外部記憶装置を使用してもよい。データは、画像ファイル、音声ファイル、またはデータベースを含んでもよい。ウェブサーバ１０２は、ＨＴＴＰ要求および応答を処理するように、またはＰＨＰ、ＡＳＰもしくはＭｙＳＱＬ等のインターフェースを支持するように構成されてもよい。ウェブサーバ１０２は、静的および／または動的コンテンツを供給するように構成されてもよい。
【００２９】
ウェブサーバ１０２は、パーソナルコンピュータ１０４もしくはノート型パソコン１１１、または任意の他の適したユーザ機器デバイスによってアクセス可能であってもよい。コンピュータ１０４、ノート型パソコン１１１、または任意の他の適したユーザ機器デバイス等の複数のデバイスは、ウェブサーバ１０２に同時に接続されてもよい。パーソナルコンピュータ１０４は、データを要求するように、ウェブサーバに要求を送信するための、かつウェブサーバから受信したデータを処理するためのプロセッサ１２０と、ウェブページを表示するための表示部１２２とを備える。パーソナルコンピュータ１０４は、マウス、キーボード、タッチパッド、マイクロホン、アクチュエータ、または任意の適した入力デバイス等の、入力デバイス１２４を含んでもよい。パーソナルコンピュータ１０４は、人間のユーザによって使用されてもよく、またはボットもしくはボットのネットワークによって制御されてもよく、あるいは遠隔位置から人間のユーザによって、もしくはボットによってアクセスされてもよい。一部の実施形態において、ウェブブラウザは、ウェブサーバ１０２から受信されるウェブページおよびデータを表示部１２２に表示させるように、パーソナルコンピュータ１０４上に実装される。パーソナルコンピュータ１０４は、通信デバイス１２６を介して、任意の適した通信プロトコルおよび媒体を使用して、ウェブサーバ１０２と通信するように構成されてもよい。同様の方法で、ノート型パソコン１１１を実装することができる。
【００３０】
一部の実施形態において、ウェブサーバ１０２は、Ｐａｌｍ  Ｐｉｌｏｔ、ｉＰｈｏｎｅまたはＢｌａｃｋｂｅｒｒｙ等のモバイルデバイス１０６によってアクセス可能である。モバイルデバイス１０６は、ウェブページを表示するための表示部１２８、データを要求するように、ウェブサーバに要求を送信するための通信デバイス１３２、およびウェブサーバから受信したデータを処理し、かつ表示部１２８にウェブページを表示するためのプロセッサ１３０を備える。モバイルデバイス１０６は、タッチ画面、スクロールボール、キーパッド、マイクロホン、触覚センサ、アクチュエータ、または任意の適した入力デバイス等のユーザ入力デバイス１３４を含んでもよい。モバイルデバイス１０６は、人間のユーザによって使用されてもよい。一部の実施形態において、ウェブブラウザは、ウェブサーバ１０２から受信されるウェブページおよびデータを表示部１２８に表示させるように、モバイルデバイス１０６上に実装される。モバイルデバイス１０６は、空気伝送でアンテナ１３６および通信デバイス１３２を使用して、または任意の適した通信プロトコルおよび媒体を使用して、ウェブサーバ１０２と通信するように構成されてもよい。
【００３１】
一部の実施形態において、ウェブサーバ１０２は、サーバ１０８によってアクセス可能である。サーバ１０８は、プロセッサ１３８、通信デバイス１４０およびデータ記憶構成要素１４２を備える。サーバ１０８は、性能を向上させるように（例えば、アプリケーション１１６における特定のウェブページの応答時間を向上させるように）、ウェブアプリケーション加速サーバとして使用されてもよい。サーバ１０８は、バックアップ目的で、またはアプリケーション１１６によって提供されるデータの一部をホストするため等の、ウェブサーバ１０２に対してデータを記憶する責任を担ってもよい。サーバ１０８はまた、クレジットカード支払処理または何らかのサーバ／プロセッサ集中的処理等、ウェブサーバ１０２上で実行されているアプリケーション１１６に機能性を提供してもよい。サーバ１０８は、ウェブサーバ１０２上で実行されている同じアプリケーション１１６またはその一部を実行するミラーサーバであることができる。サーバ１０８は、通信デバイス１４０を介して、任意の適した通信プロトコルおよび媒体を使用してウェブサーバ１０２と通信するように構成されてもよい。一部の実施形態において、ウェブサーバ１０２およびサーバ１０８の機能性は組み合わされ、単一施設における単一システムから、または複数の施設における複数のシステムから提供される。
【００３２】
パーソナルコンピュータ１０４、モバイルデバイス１０６およびノート型パソコン１１１等のユーザ機器は、ウェブアプリケーション体験を提供するのに適した任意の機器を含んでもよい。ユーザ機器の他の例は、ゲームシステム（例えば、ＰｌａｙＳｔａｔｉｏｎ）、セットトップボックス、ＩＰ電話等を含むことができる。ユーザは、ウェブアプリケーション１１６を使用して機能を実施するために、ユーザ機器を使用してもよい。ユーザ機器とインターフェースで接続するのに適した任意の入力デバイスを使用して、ユーザは、ウェブサーバ１０８から別のウェブページを要求するように、ウェブページ上のリンクをクリックしてもよい（例えば、ＨＴＴＰ要求をウェブサーバ１０４に送信する）。ＨＴＴＰ要求を受信すると、ウェブサーバ１０８は、要求を処理し、ユーザ機器にＨＴＴＰ応答を送信し、応答は、要求されるウェブページを表示するのに必要な情報を含む。
【００３３】
ウェブサーバ１０２は、ウェブサイトをクライアントに提供するウェブアプリケーションを実行しなくてもよい。ウェブサーバ１０２は、ユーザ機器上で実行されているアプリケーションまたはプログラムのインスタンスにデータおよび他の機能を提供してもよい。一実施形態において、ウェブサーバ１０２は、航空管制官によって使用されるモバイルデバイス１０６に運航スケジュール情報を提供してもよい。モバイルデバイス１０６は、ＦｉｌｅＭａｋｅｒ、またはＭｉｃｒｏｓｏｆｔ  Ａｃｃｅｓｓのインスタンス等、その上に実装されるデータベースプログラムを有してもよい。データベースプログラムは、ウェブサーバ１０２に記憶される運航スケジュールデータのデータベース要求またはクエリを送信してもよい。ウェブサーバ１０２はまた、サーバ１０８と同様のリモートサーバから、気象情報等の第三者データを要求してもよい。
【００３４】
ウェブサーバ１０２は、ユーザに基盤およびサービスとしてのソフトウェアを提供する、クラウドコンピューティングを支持するように構成されるファイルサーバであってもよい。ウェブサーバ１０２は、または他の分散サーバと併用して、ユーザにデータ、ファイルおよびアプリケーションへのアクセスを提供してもよい。例えば、ウェブサーバ１０２は、ビジネスプロジェクトと関連付けられるファイルのリポジトリを記憶するためのプロジェクト管理ツールを支持するため、かつ世界中のユーザにデータ、ファイルおよびアプリケーションへのアクセスを提供するために使用されてもよい。
【００３５】
図２は、本発明の一実施形態に従う、例示的なウェブアプリケーションセキュリティシステム２００を示す。ウェブサーバ２０４、ウェブサーバ２０６、クライアント２０８およびクライアント２１２は、サーバ−クライアントアプローチまたは任意の他の適したアプローチを使用して通信するように構成されてもよい。ウェブサーバ２０４、ウェブサーバ２０６、挙動分析エンジン２１６、相関エンジン２１８、および学習エンジン２２０は、ネットワーク２０２（例えば、インターネット、広域ネットワーク、ローカルエリアネットワーク、移動体通信ネットワーク等）を介して、互いに通信するように構成される。例えば、ネットワーク２０２は、（例えば、ＨＴＴＰ要求および応答と通信することによって）サーバ−クライアントウェブアプリケーション体験を提供するように、ウェブサーバ２０４が、クライアント２０８およびクライアント２１２と通信することを可能にする。ウェブサーバ２０４および／またはウェブサーバ２０６は、機能的ユーザ挙動に関するデータを挙動分析エンジン２１６に伝達するために、ネットワーク２０２を使用してもよい。一部の実施形態において、機能的ユーザ挙動に関するデータは、サーバ側で捕捉される。他の実施形態において、機能的ユーザ挙動に関するデータは、クライアント側で捕捉される。
【００３６】
ネットワーク２０２は、任意の適したトポロジで実装されてもよい。ネットワーク２０２上の通信は、任意の適した通信プロトコル（例えば、ＴＣＰ／ＩＰ上のＨＴＴＰ）であってもよい。アプリケーション２２２を実装するウェブサーバ２０４は、ネットワーク２０２に結合され、かつウェブサーバ１０２と同様の方法で構成されてもよい。ウェブサーバ２０６は、ネットワーク２０２に結合され、かつサーバ１０８と同様の方法で実装されてもよい。特定の実施形態において、ウェブサーバ２０４およびウェブサーバ２０６の機能性は組み合わされ、単一施設における単一システムとして実装される。代替的な実施形態において、それらの機能性は、複数の施設における複数のシステムとして実装される。ウェブサーバ２０４および／またはウェブサーバ２０６は、機能的ユーザ挙動と関連付けられるデータを挙動分析エンジン２１６に送信するように構成されてもよい。相関エンジン２１８または別のサーバコンピュータ（図示せず）は、悪意のある挙動の検出に応じて、修復措置を実行するよう、ウェブサーバ２０４、ウェブサーバ２０６、クライアント２０８、およびクライアント２１２と通信するように構成されてもよい。
【００３７】
ウェブサーバ２０４およびウェブサーバ２０６は、少なくとも１つのクライアント、例えば、クライアント２０８およびクライアント２１２によってアクセス可能である。クライアント２０８およびクライアント２１２は、図１に関連して説明したように、ウェブサーバ２０４および／またはウェブサーバ２０６と通信し、それにアクセスするように構成される、パーソナルコンピュータ、モバイルデバイス、ノート型パソコン、サーバ、または任意の適したデバイスであってもよい。クライアント２０８およびクライアント２１２は、それぞれユーザ挙動セッション、ユーザ挙動セッション２１０およびユーザ挙動セッション２１４を確立するように構成されてもよい（例えば、ブラウザクッキーによって確立されるようなブラウザセッション）。一部の実施形態において、各クライアントマシンは、１つを超えるユーザ挙動セッションを確立してもよい。クライアント２０８およびクライアント２１２のみが図示されているが、同様の方法で実装される他のクライアントもまた、挙動セッションを確立してもよい。複数のクライアントは、ウェブサーバ２０４またはウェブサーバ２０６に同時に接続されてもよい。
【００３８】
一部の実施形態において、ユーザ挙動セッション２１０およびユーザ挙動セッション２１４等のユーザ挙動セッションは、アプリケーション上の機能的ユーザ挙動の特性が収集されるセッションを定義する。ユーザ挙動セッションは、特定のブラウザクッキーと関連付けられてもよい。ユーザ挙動セッション中にセキュリティシステム２００が記録する情報は、各ページと関連付けられる時間間隔とともに、ユーザによって移動されるウェブページまたは画面シーケンスを含んでもよい。機能的ユーザ挙動に関する情報は、アプリケーションのウェブページ、画面、またはフォームへの入力を含んでもよい。他の例は、アプリケーションのウェブページまたは画面内のタイムスタンプされたユーザクリックまたはタッチストロークを含んでもよい。機能的ユーザ挙動は、挙動のコンテキストによって処理およびタグ付けられてもよい。例えば、ウェブページ上の画像のクリックは、画像の説明（例えば、「情報アイコン」）でタグ付けられてもよい。一部の実施形態において、アプリケーション上のブラウザセッション中の機能的ユーザ挙動は、経時的に観察および追跡され、ブラウザセッション（つまり、ユーザ挙動セッション）中に収集される機能的ユーザ挙動に関する情報は、挙動パターンに変換され、記憶される。
【００３９】
ユーザ挙動セッション中の機能的ユーザ挙動の追跡は、クライアントとサーバとの間の単一接続を追跡する（つまり、単一ＩＰアドレスへの、および単一ＩＰアドレスからのトラフィックを追跡する）と向上する。単一接続（つまり、ＩＰアドレス）を阻止すること、および保護することは、ハッカーまたは不正ユーザが、攻撃を開始するために、多数のＩＰアドレスを使用して接続を確立しようとする場合があるため、効果がない場合がある。
【００４０】
一部の実施形態において、機能的ユーザ挙動に関する情報は、挙動分析エンジン２１６によって分析される。機能的ユーザ挙動に関する定性的および／または定量的情報は、ウェブサーバ２０４にインストールされるサーバオブジェクト２２４によって捕捉されてもよい。サーバオブジェクト２２４（またはクライアント側のスクリプト）によって捕捉される情報は、さらなる処理のために、ネットワーク２０２上で挙動分析エンジン２１６に伝達されてもよい。挙動分析エンジン２１６は、ウェブサーバ２０４もしくはウェブサーバ２０６上で実装されてもよく、または別々のサーバとして、もしくは多数のサーバとして実装されてもよい。挙動分析エンジン２１６は、機能的ユーザ挙動に関する定性的および／または定量的情報を収集するよう、アプリケーション２２２のクライアント（例えば、クライアント２０８およびクライアント２１２）、ウェブサーバ２０４およびウェブサーバ２０６と通信するように構成されてもよい。特定の実施形態において、挙動分析エンジン２１６は、分散サーバシステムにおいて実装され、収集された情報は、ネットワークを通じて早急に同期される。挙動分析エンジン２１６は、ウェブアプリケーション２２２上の機能的挙動を監視、追跡、記憶、変換、および分析するように構成されてもよい。挙動分析エンジン２１６は、ウェブアプリケーション２２２の一部に対してユーザ挙動セッションを追跡および収集するように構成されてもよく、または多数のウェブアプリケーションに対してユーザ挙動セッションを追跡および収集するように構成されてもよい。
【００４１】
一部の実施形態において、挙動追跡スクリプト（例えば、ＪａｖｅＳｃｒｉｐｔ（登録商標）ファイル）は、ユーザクリックもしくはテキスト入力または任意の機能的ユーザ挙動を追跡するように、ウェブアプリケーション２２２のページにインストールされる。挙動追跡スクリプトおよび挙動分析エンジン２１６は、所定の一式の種々の種類の機能的ユーザ挙動を追跡および記憶するように構成されてもよい。挙動分析エンジン２１６はまた、非機能的ユーザ挙動（例えば、サーバとクライアントとの間で送信されるＩＰ／ＴＣＰパケットヘッダデータ）を追跡してもよく、またはネットワークファイアウォールと連携して、他のデータを追跡してもよい。サーバ側のスクリプトは、サーバとクライアントとの間の要求および応答を追跡するように、ウェブサーバ２０４およびウェブサーバ２０６上に、サーバオブジェクト２２４としてインストールされてもよい。スクリプトは、さらなる分析のために、機能的ユーザ挙動と関連付けられるデータを、リレーショナルデータベース２２６または挙動分析エンジン２１６上の任意の他の適したデータ記憶構成要素等の別々のデータ記憶場所に送信するように構成されてもよい。挙動分析エンジン２１６は、ブラウザクッキーを使用して、機能的ユーザ挙動関連付けられる受信データを、ユーザ挙動セッションに整理するように構成されてもよい。収集されるデータは、挙動分析エンジン２１６によって集約、処理、変換および分析されてもよい。一部の実施形態において、機能的ユーザ挙動に関する情報は、ユーザおよび／またはクライアントから収集される生データから挙動パターンに変換され、挙動パターンは、相関方法の入力と合致する形式である。リレーショナルデータベース２２６に記憶され、収集される挙動パターンは、挙動分析エンジン２１６および相関エンジン２１８で実行されているアルゴリズムを向上させるために、学習エンジン２２０によって使用されてもよい。
【００４２】
一部の実施形態において、機能的ユーザ挙動は、ウェブサーバ２０４内のサーバオブジェクト２２４によって追跡され、ユーザ挙動セッションにおける機能的ユーザ挙動に関する情報は、挙動分析エンジン２１６内のリレーショナルデータベース２２６に記憶される。例えば、ユーザからのウェブページに対するＨＴＴＰ要求は、新しい記録としてリレーショナルデータベース２２６に記憶されてもよい。リレーショナルデータベース２２６内の情報および記録は、ブラウザセッション内のアプリケーション活動を表し、かつ定性的に記述する挙動パターンを形成するように、ユーザ挙動セッション中に集約されてもよい。ユーザ挙動セッション中のページ履歴は、早急な取得およびアクセスのために、ハッシュテーブルとして記憶されてもよい。集約される情報は、さらに処理され、挙動パターンに変換されてもよい。例えば、ユーザ挙動セッション中に集められる生データは、リレーショナルデータベース内の多次元ベクトルとして、特定のユーザ入力特性の存在およびページシーケンスにおけるページの存在を表すことによって、挙動パターンに変換されてもよい。挙動パターンは、アプリケーションレベルの機能的ユーザ挙動を定性的に記述し、さらに、特定の定性的属性および機能的ユーザ挙動の特性に対する定量化可能な値を含んでもよい。
【００４３】
一部の実施形態において、ユーザ挙動セッションにおけるページシーケンスは、マルコフ連鎖を使用することによって、挙動パターンに変換されてもよい。マルコフ連鎖は、複数の状態を有してもよい。マルコフ連鎖は、ユーザ挙動セッションにおけるページシーケンスにおける次のページに応じて、現在の状態を変更してもよい。例えば、マルコフ連鎖は、ユーザ挙動セッションにおけるページシーケンスをモデル化してもよく、かつ各ページ要求で、挙動分析エンジン２１６は、マルコフ連鎖の現在の状態を更新してもよい。ユーザのページ履歴をモデル化するのに適したマルコフ連鎖を用いて、ページ要求が処理されると、現在の状態は、ページシーケンスにおける先のページ訪問を反映することができる。マルコフ連鎖は、挙動分析エンジン２１６で新しいページ要求が受信されるたびに、シーケンスに関して全検索を行うことなく、パターン合致を発生させることを可能にする。
【００４４】
一実施形態において、相関エンジン２１８は、（例えば、ブラウザセッションにわたって挙動分析エンジン２１６によって集約される）特定の挙動セッション中に機能的ユーザ挙動と関連付けられる挙動パターンを、一式の評価パターン（例えば、一式の既知の挙動特性）と相関させるように実装される。ユーザおよび／またはクライアントから収集される機能的ユーザ挙動と関連付けられる生データ（定性的および／または定量的）は、相関エンジン２１８の入力に合致する形式に変換されてもよい。この形式のデータは、挙動パターンとして記憶され、データは、定性的および／または定量的である。ＨＴＴＰ要求（例えば、ＰＯＳＴ）の生データは、評価パターン中の属性を探すように解析されてもよい（例えば、特定の正規表現に関する解析）。
【００４５】
例示的な実施形態において、ＨＴＴＰ要求を解析した結果は、特定の正規表現がＨＴＴＰ要求に現れたかどうかを記録するベクトルに変換されてもよい。挙動パターンの例：
Ｑ＝［０，１，１，０，１，１，０，０，０］
ベクトル中の各要素は、特定の正規表現の有無を表す（例えば、．ｅｘｅの存在、／／＊の存在、％＋”の存在、＆＆＝の存在等）。悪意のある特性を表す評価パターンの例：
Ｅ＝［０，１，１，０，０，１，０，０，１］
ベクトル中の各要素は、特定の正規表現の有無を表す。相関エンジン２１８は、２つのベクトル（Ｑ．Ｅ）のドット積を発見して、２つのベクトル間の類似性を判定するために、ベクトルを使用してもよい。ドット積の結果が特定の閾値より大きい場合（例えば、閾値＝３）、相関エンジン２１８は、挙動パターンＱを、評価パターンＥとの合致とみなす。悪意のある活動と関連付けられる評価パターンとの合致は、セッション終了等の修復措置を呼び出してもよい。
【００４６】
相関エンジン２１８は、現在の挙動パターンを既知の評価パターンと相関させる。例えば、リレーショナルデータベース２２６に記憶されるユーザ挙動セッションにおけるページシーケンスに関する情報は、マルコフ連鎖の状態に変換されてもよく、状態は、現在の状態が悪意のある挙動と関連付けられるかどうかを判定するために、相関工程の一部として使用されてもよい。評価パターンは、図５に関連してさらに詳細に説明される。相関エンジンおよびその上に実装されるアルゴリズムは、ユーザ挙動に関して学習される付加的な情報およびアプリケーションに関する新しい情報を反映するように、自動的に、または手動で更新されてもよい。相関エンジン２１８は、ウェブサーバ２０４上で実行されているアプリケーション２２２に部分的に応じて、異なって実装されてもよい。
【００４７】
特定の実施形態において、相関の結果は、さらなる検査および分析のために、追跡され、システム管理者に報告される。結果はまた、（例えば、学習エンジン２２０を使用して）相関エンジン２１８内の分類システムを訓練するために使用されてもよい。代替的に、結果は、学習エンジン２２０内の一式の挙動パターンを再クラスタ化するために使用されてもよい。
【００４８】
一部の実施形態において、学習エンジン２２０は、任意の適した人工知能学習アルゴリズムを使用して、挙動分析エンジン２２６によって収集される挙動パターンおよび相関エンジン２１８からの結果から学習するように実装される。学習エンジン２２０は、一式の既知の挙動パターンを経時的に更新するように構成される。例えば、収集される挙動パターンに少なくとも部分的に基づいて、学習エンジンは、新しい評価パターンを検出するように、一式の既知の評価パターンに対して挙動パターンを再クラスタ化することができる。別の場合において、学習エンジン２２０は、挙動パターンを再クラスタ化するために、ヒューリスティックとして、過去の攻撃に関する情報（例えば、過去の攻撃の時間枠等）を使用することができる。学習エンジン２２０は、ヒューリスティックと進化アルゴリズムとの組み合わせを使用してもよい。ヒューリスティックは、過去の攻撃がどこから発生したかのロケール等の、過去の攻撃に関する情報を含んでもよい。再クラスタ化工程から学習される新しい評価パターンは、相関エンジン２１８内の一式の既知の評価パターンと統合することができる。システム２００は、検出される新しい評価パターンを学習エンジン２２０に取り込むことによって、相関エンジン２１８を修正してもよい。新しい評価パターンは、システム２００が保護しているアプリケーション２２２により特異的となってもよく、それによってセキュリティ脅威を検出する性能を向上させ得る。新しい評価パターンは、おそらく、アプリケーションの変更またはアプリケーション上のユーザ活動の変更に部分的に起因して、新しいユーザ挙動パターンを表してもよい。次いで、システム２００は、システム管理者による手動の再構成を必要とせずに、自動的にそれらの変更に適合することができる。
【００４９】
クラスタ化方法は、階層的クラスタ化、分割クラスタ化およびスペクトルクラスタ化等の人工知能アルゴリズムを含んでもよい。学習エンジン２２０は、アプリケーション２２０の変更、システム２００によって追跡される新しい特徴、新しい種類の機能的挙動、機能的ユーザ挙動の分散における変更、ハッカーによって使用される方法に関する新しい知識を反映するように適合および修正されてもよい。クラスタ化方法は、収集される挙動パターン、または任意の他の要因に適合してもよい。学習エンジン２２０は、経時的に自動的および連続的に実行されてもよく、または予定された時間間隔で実行されてもよく、あるいはシステム管理者による指示通りに実行されてもよい。
【００５０】
一式の評価パターンを更新することによって、システムの性能は、新しい評価パターンが学習されるにつれて向上することができる。学習エンジン２２０に関連して説明したように、システム２００は、現在のユーザ挙動セッションまたは過去のユーザ挙動セッションにおける挙動パターンに対して情報を収集する。学習エンジン２２０は、収集される挙動パターンを一式の既知の評価パターンと連続的にまたは個別に相関させる。機能的ユーザ挙動に関してより多くの情報が既知となるにつれ、収集される挙動パターンは、新しい評価パターンを検出および学習するように、学習エンジン２２０によって再クラスタ化されてもよい。例えば、アプリケーションは、ユーザによって経時的に使用されているため、通常の機能的ユーザ挙動パターンは、より多くのユーザがウェブサイトを使用するにつれて出現してもよく、それらの出現するパターンは、一式の評価パターンの一部として存在していなくてもよい。一部の実施形態において、異常な挙動は、より多くのユーザがウェブサイトを使用するにつれて出現してもよい。例えば、一群のハッカーは、アプリケーションの潜在的な脆弱性を発見したかもしれず、一連の攻撃を試行する場合がある。学習エンジン２２０によって、ハッカーの試行を検出することができる。
【００５１】
学習エンジン２２０における学習工程は、決まった時間にオンラインおよび／またはオフラインで行われてもよい。学習エンジン２２０を使用して発見される新しい評価パターンは、自動工程を介して挙動分析エンジン２１６および相関エンジン２１８とオフラインで組み合わせることができる。
【００５２】
動作中、挙動分析エンジン２１６、相関エンジン２１８、および学習エンジン２２０は、多数のサーバ上で実装されてもよく、あるいは全部または一部のエンジンを組み合わせ、単一の個々のサーバ上で実装することができる。
【００５３】
図３は、例示的なウェブアプリケーションの例示的な表示部を示す。一実施形態において、セキュリティシステム２００は、ウェブサーバ２０４、ウェブサーバ２０６、および／またはウェブサーバ１０２上で実行されているウェブアプリケーション上の機能的ユーザ挙動に関する情報を収集する。例示的なウェブアプリケーションは、図１に関連して説明したように、ウェブサイトとしてユーザおよびクライアントに提供されてもよい。例示的な実施形態において、図３は、ウェブサイトのスクリーンショット３００を示す。ウェブサイト「ｗｅｂｓｉｔｅ．ｃｏｍ」の「ｒｅｇｉｓｔｅｒ＿ｆｏｒｍ．ｈｔｍｌ」ページは、アドレスバー３０２に示されている通りである。ウェブサイトの他の部分へのハイパーリンクは、ナビゲーションバー３０４に提供される。ユーザは、「コンタクト」リンクをクリックして、異なるウェブページに移動してもよく、またはサーバへの通信を送信するように、スクリプトまたはプログラムを起動してもよい。ユーザクリック、異なるウェブページへの移動、通信を送信するようにスクリプトまたはプログラムを起動すること、あるいは任意の他の適したユーザ活動は、挙動分析エンジン２１６によって追跡および監視される機能的ユーザ挙動であってもよい。スクリプト、プログラムを起動する、または要求を送信するボタンのクリックは、攻撃者が、サーバを減速させ、サービス拒否攻撃を実施するために繰り返し使用し得る潜在的な脆弱性であり得る。
【００５４】
ユーザは、ログインフィールド３０６にテキスト入力を提供してもよく、または検索フィールド３０８にテキスト入力を提供してもよい。テキストフィールドの識別とともに提供される入力は、ウェブサーバ２０４内のサーバオブジェクト２２４によって追跡されてもよく、さらなる処理のために、挙動分析エンジン２１６に伝送されてもよい。ハッカーおよび攻撃者は、フィールドを使用して、バッファオーバーフロー攻撃を実施することができるので、テキストフィールドは脆弱な場合がある。ユーザはまた、ログインフィールド３０６および検索フィールド３０８、またはテキストを受信する任意の他の入力フィールドに特殊文字を提出することによって、コマンドを挿入することができてもよい。ハッカーはまた、辞書攻撃を使用して、ログインフィールド３０６を介してシステムへのアクセスを得る場合があり、アクセスを得ようとする繰り返しの試行は、挙動分析エンジン２２６によって追跡されるページシーケンスにおける「ｌｏｇｉｎ．ｈｔｍｌ」および「ｅｒｒｏｒ．ｈｔｍｌ」の繰り返しのシーケンスとして追跡されてもよい。テキスト入力およびログイン試行のタイムスタンプされたシーケンスは、挙動分析エンジン２１６によって追跡されてもよい。サーバオブジェクト２２４および挙動分析エンジン２１６によって追跡される機能的ユーザ挙動のタイムスタンプされたデータは、リレーショナルデータベース２２６に記憶されてもよい。タイムスタンプは、定量的データであり、反復シーケンスにおけるページは、ユーザ挙動セッションにわたって収集される定性的データである。シーケンスにおけるタイムスタンプおよびページは、挙動パターンに変換されてもよい。挙動パターンは、リレーショナルデータベース２２６に記憶されてもよい。挙動パターンは、相関エンジン２１８への入力として使用される。
【００５５】
ウェブアプリケーションは、登録フォーム３１０内にフォームフィールドを含んでもよい。登録フォーム３１０は、ウェブサーバ２０４およびウェブサーバ２０６上でバックエンドデータベースクエリを呼び出してもよい。フォームを通じて提供されるデータは、無効な形式である場合があり、サーバ側でエラーを発生させる可能性がある。生データ（例えば、登録フォーム３１０へのユーザ入力）を挙動パターンに変換するため、ユーザ入力は、セキュリティ脅威をもたらす入力を発見するように、正規表現を使用して解析されてもよい。多数の登録はまた、ウェブアプリケーションに対して問題となり得、かつウェブサイトに一般的な機能的不正使用特質となる可能性がある。＄１０（１０ドル）の商品券をウェブサイトに登録した全員に提供する電子商取引ウェブサイトでは、多数のアカウント登録はまた、問題となる場合があり、かつ高価な場合がある。ユーザが、フォームフィールドに部分的なデータベースクエリを入力した場合、登録フォームはまた、ＳＱＬインジェクションに対して脆弱な場合がある。例えば、解析され、バックエンドデータベースに送信される部分的なデータベースクエリを含むテキストは、ウェブサーバ２０６にユーザのパスワードを返すように要求する悪意のあるクエリとなり得る。
【００５６】
図３に示した例示的なウェブアプリケーションは、チャットボックス３２０に示したようなチャット等の他のサービスを提供するように、および／または領域３２２内に天候等の第三者情報を提供するように構成されてもよい。チャットデータは、クライアント２１２、クライアント２１４、パーソナルコンピュータ１０４、モバイルデバイス１０６、ノート型パソコン１１１等によって、あるいはウェブサーバ１０２、ウェブサーバ２０４またはウェブサーバ２０６上で実行されているコンピュータプログラム等によって、他のエンティティから提供されてもよい。第三者情報は、サーバ１０８またはウェブサーバ２０６によって提供されてもよい。例示的なウェブアプリケーション上のこれらの高度なサービスはまた、ハッカーおよび攻撃者に対して脆弱な場合がある。ユーザは、動的ウェブアプリケーションに悪意のあるトロイの木馬またはスクリプトを提出し得る。ハッカーは、悪意のある目的で、それらの第三者サーバへの合法的な要求になりすますことができ得るため、ユーザは、サーバへのサービス拒否攻撃を実施してもよい。図３に関連して説明した不正行為は、一般的に、アプリケーションレベルの攻撃と関連付けられる。
【００５７】
図４は、本発明の一実施形態に従い、セキュリティ脅威を検出するように、機能的ユーザ挙動に関する情報を既知の評価パターンと相関させることに関わる工程４００の例示的なフローチャートである。ユーザ４０２はアプリケーションを使用しているため、サーバオブジェクト２２４、および挙動分析エンジン２１６、ならびに図２に関連して説明したように、機能的ユーザ挙動に関する定性的および／または定量的情報は、ステップ４０４で収集される。ステップ４０６は、サーバオブジェクト２２４によって収集される情報を挙動パターンに変換するか、または特定のユーザ挙動セッションと関連付けられる（例えば、リレーショナルデータベース２２６に記憶されているような）挙動パターンを更新する。ステップ４０６での変換は、挙動分析エンジン２１６によって実施されてもよい。次いで、工程４００は、相関エンジン２１８において挙動パターンが評価パターンと相関しているステップ４０８に進む。ステップ４１０で、工程は、挙動パターンが悪意のある挙動パターンに合致するかどうかを判定する。ステップ４０８およびステップ３１０は、相関エンジン２１８によって実施されてもよい。
【００５８】
ステップ４１０が、はいという結果になる場合、工程４００の次のステップは、修復措置（ステップ４１２）および学習（ステップ４１４）を実行する。電子メールサーバ、またはウェブサーバ２０４等の任意の適したサーバが、修復措置を実行するために使用されてもよい。挙動パターンが、悪意のある挙動と関連付けられる評価パターンと合致（例えば、ステップ４１０に対する「はい」）していることが分かった場合、システムは、システム管理者に通知すること、またはウェブアプリケーション上のユーザアカウントを無効にすること等の、修復措置（ステップ４１４）を自動的に実行してもよい。評価パターンは、修復措置と関連付けられてもよく、または関連付けられなくてもよい。評価パターンと関連付けられる修復措置は、システム管理者によって手動で実行されてもよい。
【００５９】
修復措置は、潜在的なセキュリティ脅威に関連している情報を記載した電子メールをシステム管理者に送信すること等、（アプリケーション１１６またはウェブサーバ１０２外での）修正を含んでもよい。修復措置は、セキュリティシステム２００が悪意のある挙動を検出したことをユーザに知らせるために、ウェブページ上のポップアップとして、アプリケーション１１６またはアプリケーション２２２に挿入される警告を含んでもよい。一部の実施形態において、修復措置は、現在のセッションを停止および終了させ、かつアプリケーション１１６およびアプリケーション２２２のさらなるアクセスおよび使用を防止する、別のサーバ上でホストされる阻止ページにブラウザセッションをリダイレクトすることを含む。挙動パターンが無害な評価パターンに合致する場合、システムは、ユーザ挙動セッション中に機能的ユーザ挙動に関する情報を収集し続けてもよく、挙動パターンを更新し続けてもよく、および更新された挙動パターンを評価パターンと相関させ続けてもよい。
【００６０】
分析の更新は、ステップ４１４で学習エンジン２２０によって実施され、学習エンジン２２０は、挙動分析エンジン２１６および相関エンジン２１８を向上させるために、経時的に収集される挙動パターンに関する情報を使用する。挙動分析エンジン２１６および相関エンジン２１８で使用される測定基準は、現在のおよび／または過去の挙動パターンから収集される累積データを使用して、連続的に更新および再計算されてもよい。
【００６１】
ステップ４１０が、いいえという結果になる場合、次のステップは、ステップ４０４に戻って、機能的ユーザ挙動に関してさらなる情報を収集し、かつステップ４１４で分析を更新する。一部の実施形態において、ユーザ挙動は、悪意がない場合があるが、挙動パターンにおける情報は、学習ステップ４１４で、学習エンジン２２０によって挙動分析エンジン２１６および／または相関エンジン２１８を更新するために使用される。
【００６２】
図５は、本発明の一実施形態に従う、挙動パターンを作成するための例示的な方法５００の図である。図２に関連して説明したように、挙動パターンは、評価パターンと相関している。特定の実施形態において、枠は、特定のアプリケーションレベルの攻撃に対して手動で、または自動的に作成される。枠は、機能的不正使用特質、データ挿入、コマンド挿入、および脅威シグネチャ等の属性を含む。脅威シグネチャまたは悪意のある挙動特性の鋳型として、枠は、ホストアプリケーションおよびそのユーザに特異的であり得る、既知のアプリケーションレベルの脅威特性および学習されたアプリケーションレベルの脅威特性をモデル化するモジュラーおよび適合能力を提供する。枠５０２または任意の他の枠は、システム管理者のアプリケーションレベルの攻撃に関する専門知識に少なくとも部分的に基づいて、手動で作成されてもよい。一部の実施形態において、枠は、様々なアプリケーションに応じて調整することができるパラメータを有する。
【００６３】
枠は、本質的に一般的であってもよい。例えば、ユーザ入力の一部としての正規表現の検出は、枠属性であってもよい。一部の実施形態において、枠属性は、機能的不正使用の徴候として解釈することができるため、特定の一連のページと関連付けられてもよい。自動的に、または手動で、枠は、枠属性およびパラメータを修正およびカスタマイズすることによって、評価パターンを作成するように構成または適合されてもよい。特定の一連のページは、悪意があると解釈され得るが、一方で、ページの同様の繰り返しは、異なる種類のアプリケーションにおいて正常であり得るため、適合能力は有利である。
【００６４】
評価パターンは、枠から作成されてもよく、枠属性は、システムによって保護されているアプリケーションに適合している。例えば、枠属性を特定の正規表現（つまり、枠属性へのパラメータ）と関連付けることによって、枠属性として正規表現を有する枠を、評価パターンを作成するように修正することができる。枠は、新しい評価パターンを作成するように、学習エンジン２２０を使用して適合されてもよい。学習エンジン２２０は、再クラスタ化工程によって検出される新しいパターンを反映するために、枠属性もしくは評価パターン属性、またはパラメータを調整することによって、挙動パターンを再クラスタ化して、新しい評価パターンを作成してもよい。
【００６５】
図５に示したように、枠５０２は、枠属性として、引数挿入５０６、コマンドデリミタ５０８、不正リソース消費５１０の３つの脅威シグネチャを有する。評価パターン５０４は、評価パターン属性を有する。概して、枠属性および評価属性は定性的であり、それらの属性に対する値は、定性的および／または定量的である。自動工程（例えば、学習エンジン２２０においてクラスタ化方法を使用）または手動工程を通じて、枠５０２、その属性およびパラメータは、アプリケーションに適合することができ、アプリケーション特異的評価パターン５０４となることができる。引数挿入５０６では、枠属性５０６は、特に”，””−−文字に関して解析することによって、機能的ユーザ挙動を確認するように適合される。コマンドデリミタ５０８では、評価パターンは、ユーザ入力中の／，？および（）文字を解析することによって、挙動パターンを確認してもよい。不正リソース消費では、評価パターンは、ユーザ挙動セッション中の反復ページシーケンス（例えば、「ｓｕｂｍｉｔ．ｈｔｍｌ」は、２５回現れる）の存在に関して挙動パターンを確認してもよい。システムによって保護されているアプリケーションに応じて、不正リソース消費の属性は、異なる反復ページシーケンスに関して確認するように修正される（例えば、様々なアプリケーションにパラメータを適合する）。
【００６６】
サーバオブジェクト２２４によって収集される機能的ユーザ挙動と関連付けられる情報は、ユーザ挙動セッションにわたる機能的ユーザ活動を記述し、挙動分析エンジン２１２を使用して挙動セッションに変換されてもよい。一式の既知の枠およびアプリケーション特異的評価パターンに基づいて、機能的ユーザ挙動に関して収集される生データは、挙動パターンを容易に処理および相関することができる方法で、挙動分析エンジン２１２によって挙動パターンに変換されてもよい。変換は、サーバオブジェクト２２４によって収集される生データを、一式の既知の枠属性および／または評価パターン属性内の属性にマップすることによって実施されてもよい。例えば、マッピング工程は、リレーショナルデータベース２２６内の機能的ユーザ挙動と関連付けられる生データの列を、生データのそれらの列における特定の枠属性および／または評価パターン属性の有無を追跡する挙動パターンに（例えば、別のデータベーステーブル内の別の列に）変換してもよい。一部の実施形態において、特定の属性の有無を記録する連想配列は、挙動パターンを表すために使用される。挙動パターンは、アプリケーションに対する一式の既知の挙動パターンと統計的およびプログラム的に相関している。
【００６７】
攻撃およびアプリケーション脆弱性の種類に関する一般的な知識、既存の脆弱性および先の攻撃に関する特異的なアプリケーション種類の、および／またはプラットフォームの知識、ならびに収集された挙動パターンの確率的挙動分析に少なくとも部分的に基づいて、枠および挙動パターンを作成することができる。図２に関連して説明したように、評価パターンは、学習エンジン２２０において再クラスタ化工程を介して更新されてもよい。一部の実施形態において、評価パターンは、システム管理者によって手動で更新される。
【００６８】
一部の実施形態において、アプリケーション特異的挙動パターンは、挙動パターンにおいて考慮されるまたは除外される特異的なページの定義によって生成または作成される。挙動パターンを生成または作成する工程は、枠および／または評価パターンの属性における正規表現を指定すること等、枠および評価パターンにパラメータを構成することを含んでもよい。一部の実施形態において、学習エンジン２２０に関連して説明したように、挙動パターンは、統計的分析を使用して作成される。
【００６９】
図６は、本発明の一実施形態に従う、多層アプリケーションレベルのセキュリティシステムに対する例示的な図である。セキュリティシステム２００は、多層の世界的基盤として実装されてもよい。攻撃は、ホストアプリケーションのシステムの不正および消費利用を防止するように、攻撃にローカルな地点にある源の最も近くで停止される。瀬戸際で脅威保護を提供するように、地理的に分散された地点で、複数のローカルシステム６０６を実装することは有利であり得る。特定の実施形態において、ローカルシステム６０６は、脅威修復に使用されてもよい。
【００７０】
ユーザ挙動セッションにわたって追跡されるデータは、効果的な脅威知識の移行および修復のために、保護の全ての地点にわたって早急に同期されてもよい。複数の地域システム６０４は、地理的に、地域的に位置していてもよく、セッション検出、相関、および分析のための拠点を提供してもよい。地域システム６０４は、挙動分析エンジン２１６、相関エンジン２１８、および学習エンジン２２０のうちの少なくとも１つを備えてもよい。地域システム６０４は、図４に関連して説明した工程の構成要素を実装してもよい。
【００７１】
少なくとも１つの中央システム６０２は、主要な地理的地点に位置していてもよく、かつ報告、管理、および分析のための中核を提供するように構成されてもよい。中央システム６０２は、様々な位置から収集される情報を同期するように構成されてもよい。特定の実施形態において、中央システム６０２は、学習エンジン２２０および図４に関連して説明したように、新しい評価パターンを学習するよう、収集される挙動パターンを処理するように構成されてもよい。一部の実施形態において、中央システム６０２は、システムの性能に関して大域分析を実施するように、および／または管理者に分析データを報告するように構成されてもよい。
【００７２】
本発明に関連する方法は、コンピュータ可用および／または可読媒体を含むコンピュータプログラム製品において具体化され得ることを、当業者は理解する。例えば、そのようなコンピュータ可用媒体は、ＣＤ  ＲＯＭディスク、ＤＶＤ、フラッシュメモリスティック、従来のＲＯＭデバイス、あるいは記憶されたコンピュータ可読プログラムコードを有するハードドライブデバイスまたはコンピュータディスケット等のランダムアクセスメモリ等、読み取り専用または書き込み可能メモリデバイスから成ってもよい。
【００７３】
本発明の上述の実施形態は、例示の目的で提示されており、限定の目的で提示されておらず、本発明は、以下の特許請求の範囲によってのみ限定される。
【図１】
2012527691.tif 000003
【図２】
2012527691.tif 000004
【図３】
2012527691.tif 000005
【図４】
2012527691.tif 000006
【図５】
2012527691.tif 000007
【図６】
2012527691.tif 000008
【国際調査報告】
2012527691.tif 000009