(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-19
(45)【発行日】2024-12-27
(54)【発明の名称】エンド・ツー・エンド・リンクのトラスト・レベルの動的決定方法、システム
(51)【国際特許分類】
G06F 21/62 20130101AFI20241220BHJP
【FI】
G06F21/62 318
(21)【出願番号】P 2023502949
(86)(22)【出願日】2021-07-08
(86)【国際出願番号】 IB2021056128
(87)【国際公開番号】W WO2022018554
(87)【国際公開日】2022-01-27
【審査請求日】2023-12-12
(32)【優先日】2020-07-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ソファ、オデッド
【審査官】上島 拓也
(56)【参考文献】
【文献】特開2020-061667(JP,A)
【文献】特開2012-010339(JP,A)
【文献】米国特許出願公開第2017/0316342(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
メモリとプロセッサを有するコンピュータ・データベースの情報処理によって、前記コンピュータ・データベースのエンド・ツー・エンド・リンクのトラスト・レベルを動的に決定するための方法であって、
前記方法が、
準備段において、
第1のエンド・ツー・エンド・リンクのメッセージの第1のセットをキャプチャすることと、
前記メッセージの第1のセットの各メッセージのスケルトンを圧縮して前記メッセージの第1のセットの各メッセージのコンストラクトを生成することであり、前記スケルトンは値フィールドを含まない前記メッセージを含む、前記圧縮して生成することと、
前記メッセージの第1のセットの前記コンストラクトの特徴ヒストグラムを作成することと、
動作段の間に、
前記第1のエンド・ツー・エンド・リンクのメッセージの第2のセットをキャプチャすることと、
前記メッセージの第2のセットの各メッセージのスケルトンを圧縮して前記メッセージの第2のセットの各々のコンストラクトを生成することと、
前記メッセージの第2のセットの前記コンストラクトのワーク・ヒストグラムを作成することと、
前記ワーク・ヒストグラムを前記特徴ヒストグラムと比較することによって前記第1のエンド・ツー・エンド・リンクのトラスト・レベルを決定することと
を含む、方法。
【請求項2】
エンド・ツー・エンド・リンクが前記エンド・ツー・エンド・リンクのパラメータに従って定義され、前記パラメータは、ホスト名、サービス名、データベース名、クライアント・ホスト名、オペレーティング・システム・ユーザ、およびデータベース・ユーザから成るリストから選択される、請求項1に記載の方法。
【請求項3】
前記エンド・ツー・エンド・リンクの前記トラスト・レベルを決定することは、前記メッセージの第2のセットの前記コンストラクトのうちの少なくとも1つが前記メッセージの第1のセットの前記コンストラクトの前記特徴ヒストグラムの中に含まれていない場合に、前記エンド・ツー・エンド・リンクの前記トラスト・レベルが信頼できないものと判定することを含む、請求項1に記載の方法。
【請求項4】
スケルトンを圧縮することは前記スケルトンをハッシュすることを含む、請求項1に記載の方法。
【請求項5】
前記準備段において、
コマンド・グループへと分割された前記メッセージの第1のセットのコマンドを前記特徴ヒストグラムに追加することと、
前記動作段の間に、
コマンド・グループへと分割された前記メッセージの第2のセットのコマンドを前記ワーク・ヒストグラムに追加することと
を含む、請求項1に記載の方法。
【請求項6】
前記準備段において、
メッセージの複数のセットを取得することであって、各セットがエンド・ツー・エンド・リンクのセットのうちのあるエンド・ツー・エンド・リンクに関連している、前記取得することと、
前記メッセージの複数のセットの各メッセージのコンストラクトを生成することと、
前記エンド・ツー・エンド・リンクのセットの各エンド・ツー・エンド・リンクについて特徴ヒストグラムを作成することであって、各特徴ヒストグラムは、前記エンド・ツー・エンド・リンクのセットのうちのあるエンド・ツー・エンド・リンクのメッセージのセットの前記コンストラクトから作成される、前記作成することと、
前記特徴ヒストグラムのクラスタリングを行ってエンド・ツー・エンド・リンクのクラスタを決定することと、
動作中に、
前記ワーク・ヒストグラムを前記第1のエンド・ツー・エンド・リンクのクラスタの前記特徴ヒストグラムの各々と比較して、前記第1のエンド・ツー・エンド・リンクの前記トラスト・レベルを決定することと
を含む、請求項1に記載の方法。
【請求項7】
メッセージの第2のセットをキャプチャすることは新しいセッションごとに周期的に繰り返される、請求項1に記載の方法。
【請求項8】
前記トラスト・レベルが信頼できるおよび信頼できないから選択され、
前記トラスト・レベルが信頼できる場合に、前記エンド・ツー・エンド・リンクの以降のメッセージに対して包括的セキュリティ分析を行わないことと、
前記トラスト・レベルが信頼できない場合に、前記エンド・ツー・エンド・リンクの以降のメッセージにポリシ・ルールを適用することと
を含む、請求項1に記載の方法。
【請求項9】
前記トラスト・レベルが信頼できる場合に、前記メッセージの第2のセットの各々の前記コンストラクトを前記特徴ヒストグラムに追加することを含む、請求項1に記載の方法。
【請求項10】
前記ワーク・ヒストグラムの分散を前記特徴ヒストグラムの分散と比較することによって、前記ワーク・ヒストグラムが前記特徴ヒストグラムと比較される、請求項1に記載の方法。
【請求項11】
請求項1~10の何れか1項に記載の方法を、メモリとプロセッサを有するコンピュータ・ハードウェアにより実行する、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に動的ホワイトリスティングに関し、詳細には、ユーザからコンピュータ・データベースへのエンド・ツー・エンド・リンクのトラスト・レベル(trust level)の動的決定に関する。
【背景技術】
【0002】
データ・ファイアウォールは典型的には、データベースへのデータ・アクセス(例えば、要求および応答)をリアル・タイムでキャプチャまたはスニフィングし、そのデータをポリシ・ルールに従って分析する。データ・ファイアウォールは、データベース・アクティビティ・モニタ(DAM)またはファイル・アクティビティ・モニタ(FAM)あるいはその両方を含み得る。データ・ファイアウォールによってスニフィングされる要求および応答は、要求、例えば、構造化クエリ言語(SQL)文、または応答、および関連付けられたヘッダ情報を含み得る。ヘッダは、マシン情報、ネットワーク情報、ユーザ情報、クライアント情報、等といったメタデータを含み得る。
【0003】
DAMに関する規範的な解決法は、データ・ソース・サーバ(例えば、データベース・サーバ)上にエージェントを導入することである。エージェントは要求および応答をキャプチャ、ミラーリング、またはスニフィングし、要求および応答をセキュリティ・サーバに送信し得る。セキュリティ・サーバはデータを解析し、ポリシの実行を行い、その後必要に応じて要求および応答を監査する、それらを分析する、それらにアラートする、またはそれらをブロックすることができる。DAMの主な課題のうちの1つは、キャプチャおよび分析されなければならないデータの量が膨大であることである。例えば、一般的な企業環境では、DAMは、1秒あたり約1億個のトランザクション(例えば、要求および応答)(TPS(transactions per second))をキャプチャまたはスニフィングする場合がある。そのような膨大な量のデータをリアル・タイムまたは準リアル・タイムでスニフィングおよび分析するには適切なコンピュータ・インフラが必要であるが、これは非常に高価な場合がある。
【0004】
したがって、分析されるデータの量を減らすための方法が必要とされている。
【発明の概要】
【0005】
本発明の実施形態によれば、コンピュータ・データベースのエンド・ツー・エンド・リンクのトラスト・レベルを動的に決定するためのシステムおよび方法は、準備段において、第1のエンド・ツー・エンド・リンクのメッセージの第1のセットをキャプチャすることと、メッセージの第1のセットの各メッセージのスケルトンを圧縮してメッセージの第1のセットの各メッセージのコンストラクト(construct)を生成することであり、スケルトンは値フィールドを含まないメッセージを含む、圧縮して生成することと、メッセージの第1のセットのコンストラクトの特徴ヒストグラム(characteristic histogram)を作成することと、動作段の間に、第1のエンド・ツー・エンド・リンクのメッセージの第2のセットをキャプチャすることと、メッセージの第2のセットの各メッセージのスケルトンを圧縮してメッセージの第2のセットの各々のコンストラクトを生成することと、メッセージの第2のセットのコンストラクトのワーク・ヒストグラム(work histogram)を作成することと、ワーク・ヒストグラムを特徴ヒストグラムと比較することによって第1のエンド・ツー・エンド・リンクのトラスト・レベルを決定することとを含み得る。
【0006】
本発明の実施形態によれば、エンド・ツー・エンド・リンクがエンド・ツー・エンド・リンクのパラメータに従って定義され、パラメータは、ホスト名、サービス名、データベース名、クライアント・ホスト名、オペレーティング・システム・ユーザ、およびデータベース・ユーザから選択される。
【0007】
本発明の実施形態によれば、エンド・ツー・エンド・リンクのトラスト・レベルを決定することは、メッセージの第2のセットのコンストラクトのうちの少なくとも1つがメッセージの第1のセットのコンストラクトの特徴ヒストグラムの中に含まれていない場合に、エンド・ツー・エンド・リンクのトラスト・レベルが信頼できないと判定することを含み得る。
【0008】
本発明の実施形態によれば、スケルトンを圧縮することは、スケルトンをハッシュしてハッシュを生み出すことを含み得る。
【0009】
本発明の実施形態は、準備段において、コマンド・グループへと分割されたメッセージの第1のセットのコマンドを特徴ヒストグラムに追加することと、動作段の間に、コマンド・グループへと分割されたメッセージの第2のセットのコマンドをワーク・ヒストグラムに追加することとを含み得る。
【0010】
本発明の実施形態は、準備段において、メッセージの複数のセットを取得することであって、各セットがエンド・ツー・エンド・リンクのセットのうちのあるエンド・ツー・エンド・リンクに関連している、取得することと、メッセージの複数のセットの各メッセージのコンストラクトを生成することと、エンド・ツー・エンド・リンクのセットの各エンド・ツー・エンド・リンクについて特徴ヒストグラムを作成することであって、各特徴ヒストグラムは、エンド・ツー・エンド・リンクのセットのうちのあるエンド・ツー・エンド・リンクのメッセージのセットのコンストラクトから作成される、作成することと、特徴ヒストグラムのクラスタリングを行ってエンド・ツー・エンド・リンクのクラスタを決定することと、動作中に、ワーク・ヒストグラムを第1のエンド・ツー・エンド・リンクのクラスタの特徴ヒストグラムの各々と比較して、第1のエンド・ツー・エンド・リンクのトラスト・レベルを決定することとを含み得る。
【0011】
本発明の実施形態によれば、メッセージの第2のセットをキャプチャすることは、新しいセッションごとに周期的に繰り返され得る。
【0012】
本発明の実施形態によれば、トラスト・レベルは、信頼できるおよび信頼できないから選択され、本発明の実施形態は、トラスト・レベルが信頼できる場合に、エンド・ツー・エンド・リンクの以降のメッセージに対して包括的セキュリティ分析を行わないことと、トラスト・レベルが信頼できない場合に、エンド・ツー・エンド・リンクの以降のメッセージにポリシ・ルールを適用することとを含み得る。
【0013】
本発明の実施形態は、トラスト・レベルが信頼できる場合に、メッセージの第2のセットの各々のコンストラクトを特徴ヒストグラムに追加することを含み得る。
【0014】
本発明の実施形態によれば、ワーク・ヒストグラムの分散を特徴ヒストグラムの分散と比較することによって、ワーク・ヒストグラムが特徴ヒストグラムと比較され得る。
【0015】
本発明と見なされる主題は、本明細書の終結部分において具体的に指摘され明確に特許請求される。ただし本発明の実施形態は、構成および動作の方法の両方、ならびにそれらの目的、特徴、および利点に関して、添付の図面と一緒に読まれる以下の詳細な説明を参照することで最もよく理解され得る。本発明の実施形態は、付属の図面の各図において限定ではなく例示として説明されており、それらの図では同様の参照符号は対応する、類似する、または同様の要素を示している。
【図面の簡単な説明】
【0016】
【
図1】本発明の一実施形態に係るクラウド・コンピューティング環境を描いた図である。
【
図2】本発明の一実施形態に係る抽象化モデル層を描いた図である。
【
図3】本発明の実施形態に係るシステムを描いた図である。
【
図4A】本発明の実施形態に係るデータベース・サーバを含むデータ・ソース・マシンの一例を描いた図である。
【
図4B】ゲートウェイ、ネットワーク・ゲート、またはプロキシと、データベース・サーバとの組合せを含む、データ・ソース・マシンを描いた図である。
【
図5】本発明の実施形態に係る、エンド・ツー・エンド・リンクのメッセージ、スケルトン、コンストラクト、および特徴ヒストグラムを描いた図である。
【
図6A】本発明の実施形態に係る、エンド・ツー・エンド・リンクのワーク・ヒストグラムとエンド・ツー・エンド・リンクの特徴ヒストグラムとの比較を描いた図である。
【
図6B】本発明の実施形態に係る、エンド・ツー・エンド・リンクのワーク・ヒストグラムと、エンド・ツー・エンド・リンクのクラスタに各々関連する複数のエンド・ツー・エンド・リンクの複数の特徴ヒストグラムとの、比較を描いた図である。
【
図6C】本発明の実施形態に係る、エンド・ツー・エンド・リンクのワーク・ヒストグラムと、エンド・ツー・エンド・リンクのクラスタの共通の特徴ヒストグラムとの、比較を描いた図である。
【
図7】本発明の実施形態に係る、メッセージをエンド・ツー・エンド・リンクと関連付けるための方法のフローチャートである。
【
図8】本発明の実施形態に係る、特徴ヒストグラムを生成するための方法のフローチャートである。
【
図9】本発明の実施形態に係る、コンピュータ・データベースのエンド・ツー・エンド・リンクのトラスト・レベルを動的に決定するための方法のフローチャートである。
【
図10】本発明の実施形態に係る例示のコンピューティング・デバイスを示す図である。
【発明を実施するための形態】
【0017】
図に示されている要素は、説明が簡潔かつ明確になるように、必ずしも実際の縮尺で描かれている訳ではないことが諒解されるであろう。例えば、明確にするために、要素のうちのいくつかの寸法が他の要素に対して誇張されている場合がある。更に、適切であると考えられる場合は、対応するまたは類似の要素を示すために図の間で参照符号を繰り返す場合がある。
【0018】
以下の説明では本発明の様々な態様について記載する。説明の目的で、具体的な構成および詳細が本発明の完全な理解が得られるように記載されている。しかしながら、本明細書に提示する具体的な詳細がなくとも本発明が実施されることもまた、当業者には明らかであろう。また更に、本発明が分かりにくくならないように、よく知られている特徴は省略または簡略化される場合がある。
【0019】
本発明のいくつかの実施形態は以下の点に関して限定されるものではないが、例えば、「処理する」、「演算する」、「計算する」、「決定する」、「確立する」、「分析する」、「チェックする」、または類似のものなどの用語を利用する考察は、コンピュータ、コンピューティング・プラットフォーム、コンピューティング・システム、あるいは、コンピュータのレジスタもしくはメモリまたはその両方内の物理量(例えば電子的な量)として表されるデータを操作する、あるいはそれを、コンピュータのレジスタもしくはメモリまたはその両方内の、あるいはプロセッサによって実行されるとプロセッサに動作もしくはプロセスまたはその両方を実行させる命令を格納し得る他の情報一過性もしくは非一過性の(information transitory or non-transitory)またはプロセッサ可読のストレージ媒体内の物理量として同様に表される他のデータへと変換する、あるいはその両方を行う、他の電子的コンピューティング・デバイスの、動作またはプロセスあるいはその両方を指し得る。本発明の実施形態は以下の点に関して限定されるものではないが、用語「複数(plurality)」および「複数(a plurality)」は本明細書で使用する場合、例えば「複数の(multiple)」または「2つ以上の(two or more)」を含み得る。本明細書の全体にわたって、2つ以上の構成要素、デバイス、要素、ユニット、パラメータ、または類似のものを記述するために、用語「複数(plurality)」または「複数(a plurality)」が使用される場合がある。用語「セット」は本明細書で使用される場合、そうでないと述べられていない限りは、1つまたは複数の事項を含み得る。明示的に述べられていない限りは、本明細書に記載する方法の実施形態は特定の順序または配列に制約されない。更に、記載されている方法の実施形態またはその要素のうちのいくつかは、記載した順序と異なる順序で、同時に、同じ時点において、または同時並行で(concurrently)発生し得るか、または実行され得る。
【0020】
本開示はクラウド・コンピューティングについての詳細な説明を含むものの、本明細書に記載する教示の実施はクラウド・コンピューティング環境に限定されないことが理解されるべきである。むしろ本発明の実施形態は、現在知られているかまたは今後開発される任意の他のタイプのコンピューティング環境と関連させて実施可能である。
【0021】
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースできる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの、便利なオン・デマンドのネットワーク・アクセスを可能にするための、サービス提供のモデルである。例示のクラウド・モデルは例えば、5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの配置モデルを含み得る。
【0022】
特徴は例えば以下であり得る。
【0023】
オン・デマンド・セルフ・サービス:クラウド利用者は、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を、サービスのプロバイダとの人的対話を要することなく、必要に応じて自動的に、一方的にプロビジョニングすることができる。
【0024】
広範なネットワーク・アクセス:機能はネットワークを介して利用可能であり、異種のシンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する、標準の機構を通じてアクセスされる。
【0025】
リソース・プーリング:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを使用して、様々な物理リソースおよび仮想リソースが需要に応じて動的に割当ておよび再割当てされて、複数の利用者にサービスされるようにプールされる。利用者は、より高い抽象化レベル(例えば、国、州、またはデータセンタ)での位置の特定は可能であり得るものの、一般には提供されるリソースの正確な位置は制御できないかまたは把握していないという点で、位置非依存の感覚がある。
【0026】
迅速なエラスティック性:機能を迅速かつ弾性的に、場合により自動的にプロビジョニングして急速にスケール・アウトする、および迅速にリリースして急速にスケール・インすることができる。利用者には、プロビジョニングのために利用可能な機能は多くの場合見掛け上無限であり、任意の時点で任意の量で購入可能である。
【0027】
測定サービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適したある程度の抽象化レベルでメータリング機能を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用状況を監視、制御、および報告することができ、利用されているサービスのプロバイダおよび利用者の両方に対して透明性がもたらされる。
【0028】
サービス・モデルは例えば以下であり得る。
【0029】
ソフトウェア・アズ・ア・サービス(SaaS):利用者に提供される機能は、クラウド・インフラ上で実行されるプロバイダのアプリケーションを使用することである。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを介して、様々なクライアント・デバイスからアクセス可能である。基礎となるクラウド・インフラにはネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能さえも含まれるが、利用者はその管理または制御は行わない。ただし、限定されたユーザ専用のアプリケーション構成設定は例外となり得る。
【0030】
プラットフォーム・アズ・ア・サービス(PaaS):利用者に提供される機能は、利用者が製作または取得した、プロバイダがサポートするプログラミング言語およびツールを使用して製作されたアプリケーションを、クラウド・インフラ上に配置することである。基礎となるクラウド・インフラにはネットワーク、サーバ、オペレーティング・システム、またはストレージが含まれるが、利用者はその管理または制御は行わず、ただし、配置されたアプリケーションおよび場合によってはアプリケーションのホスティング環境構成を制御することはできる。
【0031】
インフラ・アズ・ア・サービス(IaaS):利用者に提供される機能は、オペレーティング・システムおよびアプリケーションを含み得る、利用者が任意のソフトウェアを配置および実行できる、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースのプロビジョニングである。利用者は、基礎となるクラウド・インフラを管理または制御することはないが、オペレーティング・システム、ストレージ、配置されたアプリケーションを制御することはでき、場合によっては、選択されたネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)の限定的な制御も行える。
【0032】
データベース・アズ・ア・サービス(DBaaS):利用者に提供される機能は、クラウド・インフラ上にデータを格納することである。DBaaSパラダイムはクラウド・ベースのコンピュータ化サービスにおけるデータを格納するための一般的な手法であり、その場合ユーザはハードウェアまたはソフトウェアを管理する必要なくデータへのアクセスが可能になる。
【0033】
配置モデルは例えば以下であり得る。
【0034】
プライベート・クラウド:このクラウド・インフラはある組織に対してのみ運用される。これはその組織または第三者によって管理されてもよく、オン・プレミスに存在してもオフ・プレミスに存在してもよい。
【0035】
コミュニティ・クラウド:このクラウド・インフラはいくつかの組織によって共有され、共通の関心(例えばミッション、セキュリティ要件、ポリシ、およびコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。これはそれらの組織または第三者によって管理されてもよく、オン・プレミスに存在してもオフ・プレミスに存在してもよい。
【0036】
パブリック・クラウド:このクラウド・インフラは、一般人または大きな業界グループが利用可能となっており、クラウド・サービスを販売する組織が所有している。
【0037】
ハイブリッド・クラウド:このクラウド・インフラは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合体であり、これらのクラウドは独自のエンティティのままであるが、データおよびアプリケーションのポータビリティ(例えばクラウド間のロード・バランシングのためのクラウド・バースティング)を可能にする標準化されたまたは独自の技術によって、1つに結合されている。
【0038】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味相互運用性に焦点を当てて指向されたサービスである。クラウド・コンピューティングの中心となるのは、相互接続されたノードのネットワークを含むインフラである。
【0039】
本発明の実施形態は、動的ホワイトリスティングのための、またはコンピュータ・データベースの接続のトラスト・レベルを動的に決定するための、システムおよび方法を提供し得る。本発明の実施形態によれば、信頼できるエンド・ツー・エンド・リンクと関連付けられたメッセージ(例えば、データベース要求および応答の本体またはペイロード)は、包括的セキュリティ分析を受けなくてもよい。
【0040】
DAMおよびFAM製品の現行のアーキテクチャは2ステップのプロセスに基づいている。第1のステップは、データ・ソース・マシン上にインストールされたエージェント・ソフトウェアまたはアプリケーションによってリアル・タイムで実行され、第2のステップは、コレクタとも呼ばれるセキュリティ・サーバ・アプリケーションによってオフラインで実行される。データ・ソース・マシンは、例えばデータベース・サーバ、ファイル・サーバ等のデータベースを、または、データベースとデータベースのプロキシもしくはネットワーク・ゲートとの組合せを含み得る。エージェント・ソフトウェアはデータベース自体に、またはデータベースのプロキシもしくはネットワーク・ゲートにインストールされ得る。データベースのプロキシまたはネットワーク・ゲートにエージェント・ソフトウェアをインストールすることによって、そのデータベースにソフトウェア・アプリケーションをインストールすることを許可しない第3者が何度も動作させる(DBaaSモデルが使用される場合の)クラウド・ベースのデータベースにおいて、データ・レコードとも呼ばれるデータ・パケットをキャプチャすることが可能になり得る。
【0041】
先行技術のアプリケーションによれば、エージェント・アプリケーションは、監視されるデータベースの要求および応答を含む全てのデータ・パケットをキャプチャまたは受信し、ヘッダ情報を読み取り、ヘッダ情報に対して初期ルール処理を行い、その後データ・パケットをオフラインの包括的セキュリティ分析のためにコレクタ・アプリケーションに送信し得る。コレクタによって行われる包括的セキュリティ分析は、エージェントからデータ・パケットを得るかまたは受信すること、データ・パケットを解析すること、データを構造化すること、例えばデータを分類しデータにメタデータをマッピングすること、データ階層を構築すること、分類されたデータに対してポリシ・ルールを適用してセンシティブなデータを識別すること、およびルール・マッチングに従ってデータ漏洩またはデータ改ざんを検出することを含み得る。その後コレクタは、他の構成要素による更なる分析および監査のためにデータを送信し得る。
【0042】
コレクタによって行われる包括的セキュリティ分析のプロセスのうちの多くはデータのマッピングおよび分類を利用するものであり、これは典型的には、膨大な量のデータ(例えば、データ・ソースあたり+100,000TPSまたは合計1億TPS)のマッピングおよび分類の複雑さおよび性能要件に起因して、オフラインで実行されている。エージェントはトランザクションを遅延させてはならず、また待ち時間を回避しなければならない。そのような膨大な量のデータをリアル・タイムまたは準リアル・タイムでスニフィングおよび分析するには適切なコンピュータ・インフラが必要であるが、これは非常に高価な場合がある。
【0043】
分析されるデータの量を減らすための1つの手法は、ホワイトリスティングである。ホワイトリスティングは、信頼できるエンド・ツー・エンド・リンクの要求および応答に関する包括的セキュリティ分析を行わないエンド・ツー・エンド・リンクに関するトラスト・レベルまたは他の評価を決定することと、信頼できないエンド・ツー・エンド・リンクの要求および応答に関して包括的セキュリティ分析を行うことと、を含み得る。
【0044】
ホワイトリスティングに関する既存の解決法は、ユーザ行動分析アプリケーション(UBA)、リスク評価、シグネチャ検索、および信頼できる接続などの技術を使用して、エンド・ツー・エンド・リンクを信頼できるまたはできないものとしてタグまたはラベル付けすることを含み得る。しかしながら、これらの技術は全て静的なものであり、例えば、一度接続が信頼できるものとして分類されると、この接続における通信の全ボリュームが信頼できるものと見なされる。したがってこれらの技術は、攻撃者が接続の一部分を乗っ取り関係者のうちの一人として振る舞う、ハイジャッキングなどの攻撃に曝される。
【0045】
本発明の実施形態は、動的である(例えば、ラン・タイム中に周期的に実行される)ことと、同時に、必要とする計算リソースが(通信の完全な分析と比較して)少ないことと、を両立する、ホワイトリスティングのための、またはエンド・ツー・エンド・リンクのトラスト・レベルもしくは評価の決定のための方法を提供することによって、セキュリティ分析の技術を改善し得る。エンド・ツー・エンド・リンクのトラスト・レベルを決定するための方法の実施形態はリアル・タイムまたは準リアル・タイムで周期的に行われ、この結果、既に信頼できると判定されたエンド・ツー・エンド・リンク上の通信の異常な挙動を検出することが可能になり得る。したがって、ハイジャッカーがエンド・ツー・エンド・リンクの正常なユーザとは異なる振る舞いをし得ると仮定すれば、既に信頼できるものとして類別されたエンド・ツー・エンド・リンクの一部分を攻撃者が乗っ取るハイジャック攻撃を検出することができる。
【0046】
データベース接続は、クライアントのアプリケーションまたはソフトウェアによるデータ・ソース・マシンとの通信、例えばコマンドの送信および返答の受信を可能にし得るソフトウェア構造であり得る。多くのアプリケーションにおいて、接続は接続の再利用が容易になるようにプールされる。したがって、複数のユーザが複数の接続を共同で使用する場合がある。本発明の実施形態によれば、エンド・ツー・エンド・リンクは、単一のクライアントと単一のデータベースとの間の通信を表し得る。リンクは、1つまたは複数の接続プール中の複数の接続に引き継がれ得る。
【0047】
本発明の実施形態によれば、エンド・ツー・エンド・リンクは、エンド・ツー・エンド・リンクを指定する、データベースに送信される要求もしくはデータベースからの応答に関連するパラメータのタプル、または組合せによって定義され得る。タプルは要求または応答を単一のユーザに関連付けるパラメータを含み得る。これらのパラメータは要求または応答のヘッダから取られてもよい。理想的には、エンド・ツー・エンド・リンクは単一のユーザに一意であり得るか、または利用可能なパラメータに基づいた単一のユーザに少なくとも可能な限り近いものであり得る。パラメータのタプルは、ユーザ情報、ソース・プログラム情報、およびデータベース情報を含み得る。ユーザ情報はユーザ自身を識別するパラメータを含み得る。例えば、ユーザ情報パラメータは、データベース・ユーザ識別情報(DB User)、オペレーティング・システム・ユーザ識別情報(OS User)、アプリケーション・ユーザ識別情報(App User)、およびクライアント・ホスト・アドレス(ClientHost)のうちの、1つまたは複数を含み得る。ソース・プログラム情報は、ユーザをデータベースに接続するために使用されるアプリケーションまたはソフトウェア、例えば、SQLplus、Java(R)データベース・コネクティビティ(JDBC)、等を識別するパラメータを含み得る。データベース情報はデータベースを識別するパラメータを含み得る。例えば、データベース情報は、データベースの名前(DbName)またはサービス名(ServiceName)のうちの1つ、および、データベース・サーバ・ホスト名(ServerHostName)またはデータベース・サーバIPのうちの1つを含み得る。他のユーザ情報パラメータ、ソース・プログラム情報パラメータ、データベース情報パラメータ、または他のパラメータを使用してもよい。
【0048】
エンド・ツー・エンド・リンクを指定するためにデータベース・ユーザ識別情報(DB User)だけでなくタプルを使用することによって、単一のユーザによって使用される単一のエンド・ツー・エンド・リンクの定義が可能になり得る、例えば、複数のユーザが同じ接続または接続プールを共有している状況において、単一のユーザが検出され得る。複数のユーザが同じ接続または接続プールを使用または共有する状況は多くの用途において非常に一般的であり、例えば、複数の銀行出納係が単一の接続を使用して、同じデータベースにアクセスする場合がある。
【0049】
本発明の実施形態によれば、エンド・ツー・エンド・リンクのシグネチャが生成され得る。シグネチャは、エンド・ツー・エンド・リンクの正常な挙動を表し得る、エンド・ツー・エンド・リンクに関連するメッセージに基づいて生成され得る。いくつかの実施形態では、シグネチャは、値フィールドを含まないメッセージの圧縮したもしくはサイズを小さくしたバージョン、および/または、エンド・ツー・エンド・リンクにおいて使用されるコマンドを含み得るか、あるいはそれらから生成され得る。本発明のいくつかの実施形態によれば、エンド・ツー・エンド・リンクは、例えば分類器によってまたはシグネチャに対してクラスタリング分析を行うことによって、類似のエンド・ツー・エンド・リンクのグループまたはクラスタに分割され得る。各クラスタは、クラスタ中のエンド・ツー・エンド・リンクのシグネチャ同士の間の距離が小さいエンド・ツー・エンド・リンクのグループを含み得る。シグネチャが作成されると、エンド・ツー・エンド・リンクに関連する通信が、エンド・ツー・エンド・リンクを介する通信をシグネチャとまたはシグネチャのクラスタと比較することによって、周期的にチェックされ得る。エンド・ツー・エンド・リンクのトラスト・レベルはこの比較に基づいて決定され得る。
【0050】
いくつかの実施形態では、シグネチャは、エンド・ツー・エンド・リンクのメッセージのセットの(値フィールドを含まない)各メッセージのコンストラクトを作成し、コンストラクトから特徴ヒストグラムを作成することによって生成され、その場合シグネチャは特徴ヒストグラムであり得るか、またはそれを含み得る。例えば、コンストラクトは、メッセージの値フィールドを含まないメッセージのハッシュ、または他の圧縮されたバージョンを含み得る。メッセージを圧縮する前にメッセージの値フィールドを除去することによって、圧縮された値の画一性が高まり得る。コンストラクトを生成するために使用される動作は、いくつかの実施形態では、ビットの数を減らすことができ、演算が非常に高速であり得、コリジョンを最小限にし得る(コリジョンは異なるメッセージに対して同じコンストラクトが生成されるときに生じ得る)。コンストラクトから特徴ヒストグラムを生成するために、コンストラクトはビンへと分割され得る。エンド・ツー・エンド・リンクの正常な動作中は大多数の(値フィールドを含まない)メッセージが類似していると想定され、したがって値フィールドを含まないメッセージをハッシュすると、典型的な特徴ヒストグラムが生成され得る。
【0051】
いくつかの実施形態では、特徴ヒストグラムはまた、エンド・ツー・エンド・リンクのメッセージのセットのコマンドを含み得る。例えば、特徴ヒストグラムは、コマンドをコマンド・グループのビンへとグループ化することによって生成され得る。例えば、コマンド・グループは、データ定義言語コマンド(DDL)、データ操作言語コマンド(DML)、データ・クエリ言語コマンド(DQI)、データ制御言語コマンド(DCL)、トランザクション制御言語コマンド(TCL)、等を含み得る。エンド・ツー・エンド・リンクの正常な動作中はコマンドの大多数がそれ自体を繰り返すことになると想定され、したがって各コマンド・グループ中のコマンドの数を計数すると、特徴ヒストグラムに含まれる典型的なコマンド・ヒストグラムが生成され得る。したがって、いくつかの実施形態によれば、エンド・ツー・エンド・リンクのシグネチャは、コンストラクトまたはコマンド・ビンあるいはその両方を含む特徴ヒストグラムを含み得る。
【0052】
多くのデータベース・アプリケーションでは、同じユーザによっておよび同じ役割の他のユーザによって、同じ動作が繰り返されている。例えば、銀行のリテール部門職員(retail banker)であるユーザ全員が、1日の間に同じ動作を何度も繰り返す場合がある。例えばそのような職員らが、お金の移動、貸付承認、多くの顧客の当座勘定等のような事務処理を行う場合があり、その場合各事務処理は、何百というSQL文によって行われ得る。この場合、本発明の実施形態によれば、メッセージから値を除去すると、繰り返される一般的な動作が見出される場合がある。こうして、同じユーザが同じ目的でエンド・ツー・エンド・リンクを使用している限りは、特徴ヒストグラムの全体的形状は同じままであり得る。対照的に、特徴ヒストグラムの全体的形状における大きな逸脱は、可能性のあるセキュリティ問題の指標としての役割を果たす場合がある。
【0053】
ここで
図1を参照すると、例示的なクラウド・コンピューティング環境50が描かれている。示されているように、クラウド・コンピューティング環境50は、1つまたは複数のクラウド・コンピューティング・ノード10を含み、これを用いて、クラウド利用者が使用するローカルのコンピューティング・デバイス、例えば、携帯情報端末(PDA)もしくは携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなどが、通信を行うことができる。ノード10は互いに通信してもよい。これらは、本明細書で上記したような、プライベート、コミュニティ、パブリック、もしくはハイブリッドのクラウド、またはこれらの組合せなどの、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化されてもよい(図示せず)。このことにより、クラウド・コンピューティング環境50が、インフラ、プラットフォーム、またはソフトウェア、あるいはその組合せを、クラウド利用者がローカルのコンピューティング・デバイス上でリソースを保守する必要のないサービスとして提供することが可能になる。クラウド・コンピューティング環境は一般にそのユーザからリモートに配置される。
図1に示すいくつかのタイプのコンピューティング・デバイス54A~54Nは、単に例示となることを意図していること、ならびに、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワークまたは(例えばウェブ・ブラウザを使用した)ネットワーク・アドレス指定可能な接続あるいはその両方を介して、任意のタイプのコンピュータ化されたデバイスと通信できることが、理解される。
【0054】
ここで
図2を参照すると、クラウド・コンピューティング環境50(
図1)が提供する1組の機能抽象化層が示されている。
図2に示すコンポーネント、層、および機能は、単に例示となることを意図しており、本発明の実施形態はこれらに限定されないことが、予め理解されるべきである。描かれているように、以下の層および対応する機能が提供される。
【0055】
ハードウェアおよびソフトウェア層60は、
図10に描かれているハードウェアおよびソフトウェア・コンポーネントなどの、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、およびブレード・サーバ64などのプロセッサ(例えば、
図10に描かれているプロセッサ705)、ストレージ・デバイス65(例えば、
図10に描かれているストレージ・デバイス730)、ならびにネットワークおよびネットワーキング・コンポーネント66が挙げられる。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67とデータベース・ソフトウェア68とを含む。
【0056】
仮想化層70は、以下の仮想エンティティの例を提供し得る抽象化層を提供する:仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75。
【0057】
いくつかの実施形態によれば、監視されるデータベースが仮想ストレージ72上に実装され、物理的にはストレージ・デバイス65上に配置され得る。データベースは、本発明の実施形態に係るエージェント・ソフトウェアを含み得る、データベース・ソフトウェア68によって管理され得る。コレクタまたはデータ・セキュリティ・アプリケーションは、仮想サーバ71上で実行されるソフトウェアによって実装され得る。ただし他のアーキテクチャおよびハードウェアを使用してもよい。
【0058】
1つの例では、管理層80は、以下に記載する例示の機能を提供し得る。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの、動的な調達を提供する。メータリングおよびプライシング82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求処理またはインボイス処理を行う。1つの例では、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、クラウド利用者およびタスクについての身元情報の検証、ならびにデータおよび他のリソースの保護を提供する。ユーザ・ポータル83は、利用者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割当ておよび管理を提供する。サービス・レベル・アグリーメント(SLA)計画および履行85は、SLAによって将来必要となることが予期されるクラウド・コンピューティング・リソースの、事前調整および調達を提供する。
【0059】
ワークロード層90は、クラウド・コンピューティング環境が利用される機能性の例を提供する。この層から提供されるワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、ならびにトランザクション処理95が含まれる。
【0060】
本発明の実施形態に係るシステム300が描かれている
図3を参照する。いくつかの実施形態によれば、セキュリティ・サーバ330は仮想サーバ71上に実装され、データ・ソース・マシン320は仮想ストレージ72上に実装されるが、他の実装形態も適用され得る。
図3に示すコンポーネントおよび機能は単に例示となることを意図しており、本発明の実施形態はこれらに限定されないことが予め理解されるべきである。
【0061】
ネットワーク340は、データベース・クライアント310、データ・ソース・マシン320、およびセキュリティ・サーバ330の間の通信のサポートに利用可能な、任意のタイプのネットワークまたはネットワークの組合せを含み得る。ネットワーク340は例えば、有線、ワイヤレス、光ファイバ、または任意の他のタイプの接続、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、インターネットおよびイントラネット・ネットワーク、等を含み得る。追加または代替として、データベース・クライアント310、データ・ソース・マシン320、およびセキュリティ・サーバ330のうちのいずれも、互いに直接接続され得る。
【0062】
いくつかの実施形態によれば、データベース・クライアント310上で実行されるデータベース・クライアント・アプリケーション312は、例えば、例えばデータベース・クエリを含むデータ・パケットまたはデータ・レコード350を生成しデータ・ソース・マシン320に提出することによって、データ・ソース・マシン320と通信し得る。データ・パケットはエンド・ツー・エンド・リンク360に関連し得る。
【0063】
1つの例では、データベース・クライアント310からデータ・ソース・マシン320に送られる(transmit)クエリは、ヘッダ352とペイロード354とを含むデータ・パケット350とも呼ばれる、1つまたは複数のデータベース・プロトコル・パケットであり得るか、またはその中に含まれ得る。ヘッダ352は、マシン情報、ネットワーク情報、ユーザ情報、クライアント情報、等といったメタデータを含み得る。例えば、ヘッダは、エンド・ツー・エンド・リンク360を定義するために使用される以下のパラメータ、ServerHostName、ServiceName、DbName、ClientHost、OsUser、DbUser、等を含み得る。ペイロード354は、データ、またはデータベース・クエリに関する文、例えばSQL要求もしくは応答、あるいはその両方を含み得る。
図3には単一のデータベース・クライアント310および単一のデータ・ソース・マシン320が示されているが、1つまたは複数のデータ・ソース・マシン320が、1つまたは複数のデータベース・クライアント310またはクライアント・アプリケーション312に、データベース・サービスを提供し得る。
【0064】
1つの例では、データ・パケット350のペイロード354は、クエリ(例えば、要求もしくはSQL文)またはクエリに対する応答を含み得るが、それらは本明細書では一様に、メッセージ510(
図5に描かれている)と呼ばれる。クエリは、データベース管理アプリケーション(例えば、データベース管理アプリケーション324、またはデータベース・ソフトウェア68、あるいはその両方)によって管理されるテーブル中のデータにアクセスするための、構造化クエリ言語(SQL)文を含み得る。SQLは、リレーショナル・データベース中のデータを定義および操作するための、標準化された言語を表す。例えば、リレーショナル・データベース・モデルにおいては、データベースはデータを含むテーブルのセットとして認識され、データは、1つまたは複数のテーブルから導出される結果のテーブルを指定するためのSQL文を使用することによって取り出され得る。クエリは、リレーショナル・データベース中のまたは他のタイプのデータベース中のデータを定義および操作するための、1つまたは複数の追加または代替の言語またはプロトコルで定義され得る。
【0065】
データ・ソース・マシン320は、データベース326、例えば、データベース・サーバ、ファイル・サーバ、等、またはデータベース326とデータベース326のプロキシもしくはネットワーク・ゲートとの組合せと、データベース管理アプリケーション324と、エージェント・アプリケーション322と、を含み得る。データベース・サーバ410を含むデータ・ソース・マシンの一例が
図4Aに描かれている。データベース・サーバ410は、エージェント・アプリケーション322を含み得るかまたはこれと通信し得るデータベース管理アプリケーション324によって管理される、データベース326を含み得る。同様のアーキテクチャがファイル・サーバに適用され得る。
図4Bには、ゲートウェイ、ネットワーク・ゲート、またはプロキシ422と、データベース・サーバ(またはファイル・サーバ)420との組合せを含む、データ・ソース・マシンが描かれている。データベース・サーバ420は、データベース管理アプリケーション324によって管理されるデータベース326を含み得る。この実施形態では、エージェント・アプリケーション322は、ゲートウェイ、ネットワーク・ゲート、またはプロキシ422に配置されている。
【0066】
1つの例では、データベース・クライアント310からのクエリに応答して、データベース管理アプリケーション324がクエリに対処し、クエリに対する応答を生成してもよく、この応答がデータベース・サーバ応答において、データベース・クライアント310に返される。
【0067】
データ・パケット350は、エンド・ツー・エンド・リンク360上でデータベース・クライアント310とデータ・ソース・マシン320との間でストリームされ得る。エージェント322は、データベース・クライアント310とデータ・ソース・マシン320との間の通信ストリームに沿って、1つまたは複数のデータ・パケット350を、データ・ソース・マシン320へのデータ・パケット350の通信と干渉することなくキャプチャ、スニフィング、またはインターセプトし得る、コンピュータ実行プロセスであり得る。エージェント322は、データベース・クライアント・アプリケーション312とデータ・ソース・マシン320との間の通信ストリームに沿った1つまたは複数の箇所に実装されて、データ・パケット350がないか監視し、それをキャプチャまたはインターセプトし得るが、このときデータベース管理アプリケーション324(またはデータベース・ソフトウェア68)の関与は必要なく、またデータベース管理アプリケーション324のいかなる形態のネイティブの監査またはネイティブのログにも依存しない。データ・ソース・マシン320の一部として描かれているが、エージェント322はデータ・パケット350を、限定するものではないが例えば、データベース・サーバ410および420のデータベース・メモリにおいて、ネットワーク340内で、オペレーティング・システムのレベルにおいて、またはデータベース・ライブラリのレベルにおいてなどの、他の場所でインターセプトし得る。
【0068】
エンド・ツー・エンド・リンク360は、(典型的にはヘッダ352内に見出される)データ・パケット350に関連するパラメータのタプルまたは組合せによって定義され得る。タプルは、OsUser、DbUser、App User、(例えばデータベース・クライアント310に関連する)ClientHost、等といったユーザ情報パラメータ、ソース・プログラム情報、ならびに、ServiceNameまたはDbNameおよびServerHostNameまたは(例えばデータベース326に関連する)データベース・サーバIPなどのデータベース情報のうちの、1つまたは複数を含み得る。例えば、複数のユーザが単一の接続または接続プールを使用または共有する状況では、接続または接続プール内のエンド・ツー・エンド・リンク360を識別するために、ユーザ名(DB User)だけではなくタプルを使用してエンド・ツー・エンド・リンク360を指定することが必要となり得る。
【0069】
本発明の実施形態によれば、エージェント322は、データ・ソース・マシン320とデータ・クライアント310との間を流れる複数のデータ・パケット350をキャプチャまたはインターセプトし得る。エージェント322は、データ・ソース・マシン320からデータ・クライアント310へと送られるクエリ・パケットを含むデータ・パケット350、および、データ・クライアント310からデータ・ソース・マシン320へと送られる応答パケットを含むデータ・パケット350の、両方をキャプチャし得る。データ・パケット350は、待ち時間または遅延を実質的に追加することなく、リアル・タイムでキャプチャされ得る。
【0070】
いくつかの実施形態によれば、エージェント322は、キャプチャされたデータ・パケット350を復号して、各データ・パケット350のヘッダ352を取得し得る。エージェント322は、ヘッダ情報を取得するために、および、ヘッダ情報に基づいてパケットをエンド・ツー・エンド・リンク360と関連付けるために、ヘッダ352を分析し得る。本発明のいくつかの実施形態によれば、エンド・ツー・エンド・リンク360は、トラスト・レベル、セキュリティ状態、またはセキュリティ・グレードもしくは評価と関連付けられ得る。本発明の実施形態によれば、エージェント322は、各データ・パケット350を、それが関連するエンド・ツー・エンド・リンク360のセキュリティ状態またはトラスト・レベルと関連付け得る。トラスト・レベルは類別的なパラメータであってもよく、これは例えば「信頼できる(trusted)」または「信頼できない(not trusted)」のいずれかであり得る。他のトラスト・レベルまたは評価を使用してもよい。
【0071】
いくつかの実施形態では、エージェント322は、信頼できないエンド・ツー・エンド・リンク360の以降のメッセージにポリシ・ルールを適用し得る。本発明の実施形態によれば、エージェント322は、データ・パケット350をセキュリティ・サーバ330に送信する必要があるかどうかを、トラスト・レベルに基づいてまたはそれに従って判定し得る。信頼できるエンド・ツー・エンド・リンク360がホワイトリスト内に置かれてもよく、信頼できるエンド・ツー・エンド・リンク360と関連付けられたメッセージ510は無視、例えば、更なるセキュリティ分析から、具体的にはセキュリティ・サーバ330によって行われる包括的セキュリティ分析から、除外され得る。この場合、エージェント322は、信頼できるエンド・ツー・エンド・リンク360と関連付けられたメッセージ510を、セキュリティ・サーバ330に送信しない場合がある。他方で、エンド・ツー・エンド・リンク360が信頼できないものとして類別される場合、(信頼できない)エンド・ツー・エンド・リンク360と関連付けられたメッセージ510は、包括的セキュリティ分析を受けるためにエージェント322によってセキュリティ・サーバ330に送信され得る。いくつかの実施形態では、エンド・ツー・エンド・リンク360が信頼できないものとして類別される場合、エージェント322はアラートを発出し得る。本発明の実施形態によれば、エンド・ツー・エンド・リンク360が信頼できないものとして類別される場合、他のセキュリティ方策を採用してもよい。本明細書で開示されているように、単一のエンド・ツー・エンド・リンク360が、ある場合には信頼できるものとして、また別の場合には信頼できないものとして類別される場合のあることが、当然ながら容易に理解されよう。
【0072】
このように、データ・パケット350をキャプチャするとき、エージェント322はヘッダ352を復号して、例えばマシン情報、ネットワーク情報、ユーザ情報、クライアント情報、等を含む、メタデータとも呼ばれるヘッダ情報を取得し得る。エージェント322はヘッダ情報に基づいて、データ・パケット350と関連付けられたエンド・ツー・エンド・リンク360を決定し得る。エンド・ツー・エンド・リンク360が既知になると、エージェント322は、エンド・ツー・エンド・リンク360と関連付けられたセキュリティ状態を検証し、それに応じて機能し得る。エージェント322はセキュリティ状態に基づいて、ヘッダ352と関連付けられたメッセージ510をブロックすべきかどうか、それ以上分析せずに流れさせるべきかどうか、または更なるセキュリティ分析が必要かどうかを判定し得る。例えば、ヘッダ・セキュリティ・ルールにおいて、ユーザが悪意のあるエンティティとして知られている場合は特定のエンド・ツー・エンド・リンク360からのメッセージ510をブロックするものとする、エンド・ツー・エンド・リンク360が信頼できる場合はそれ以上分析せずに流れさせる(例えば無視する)ものとする、または、エンド・ツー・エンド・リンク360の状態が信頼できない場合は更に分析するものとする、と規定してもよい。他のヘッダ・セキュリティ・ルールまたはヘッダ・セキュリティ・ルールの組合せを使用してもよい。ヘッダ構造は既知であるので、ヘッダ352の復号および分析は、大きな遅延をもたらすことなくリアル・タイムで行われ得る。
【0073】
本発明の実施形態によれば、エージェント322は、エンド・ツー・エンド・リンク360に対してシグネチャ362を生成し得る。エージェント322は、例えば本明細書で開示されているように準備段においておよび動作段の間に、エンド・ツー・エンド・リンク360を介して送信されエージェント322によってキャプチャされたメッセージ510に基づいて、シグネチャ362を生成し得る。この場合、シグネチャ362は、エンド・ツー・エンド・リンク360の正常な挙動を表し得る。シグネチャ362を生成するために、エージェント322は、準備段(訓練段とも呼ばれる)の時間窓にわたって、または十分な数のメッセージ510がキャプチャされるまで、メッセージ510をキャプチャし得る。例えば、典型的なアプリケーションでは、シグネチャ362を生成するために、約150,000~400,000個のメッセージ510が必要となり得る。いくつかの実施形態では、準備段は、複数のセッション(セッションとは、ログインからログアウトまでのデータベースへの接続の論理的表現を指し得る)を含み得る。いくつかの実施形態では、エージェント322は、20~40回のセッションの最初の1または2分の間にメッセージ510をキャプチャして、シグネチャ362を生成し得る。シグネチャ362を生成するためのメッセージをキャプチャするための、他の時間窓を使用してもよい。本発明の実施形態によれば、エージェント322は、高ボリュームまたは高レートのメッセージ510を有するエンド・ツー・エンド・リンク360に対して、シグネチャ362を生成し得る。例えば、エージェント322は、閾値未満の、例えば1秒あたりのメッセージが100個未満のメッセージ・レートを有するセッションに対して、シグネチャを生成しなくてもよい。
【0074】
いくつかの実施形態では、シグネチャ362を生成するために使用される全てのメッセージ510が、本明細書で開示されているような包括的セキュリティ分析を受け得るか、さもなければ、それらがエンド・ツー・エンド・リンク360の正常な挙動を表すことを検証すべく検査され得る。
【0075】
シグネチャ362は、準備段の間にキャプチャされた値フィールドを含まないメッセージ510の、圧縮されたまたはサイズを小さくしたバージョンを含み得る。シグネチャ362が作成されると、エージェント322は、エンド・ツー・エンド・リンク360のメッセージ510をシグネチャ362と比較することによって、エンド・ツー・エンド・リンク360を介する通信を周期的にチェックし得る。エージェント322はこの比較に基づいて、エンド・ツー・エンド・リンク360のトラスト・レベルを計算または決定し得る。いくつかの実施形態によれば、準備段およびシグネチャ362の生成は周期的に、例えば週に1回または年に1回、繰り返され得る。
【0076】
いくつかの実施形態によれば、シグネチャ362は、準備段の間にエンド・ツー・エンド・リンク360を介して送信されたメッセージ510に関連する特徴ヒストグラムを含み得る。準備段の間に生成されたヒストグラムを、本明細書ではエンド・ツー・エンド・リンク360の特徴ヒストグラムと呼ぶ場合がある。この場合、動作段の間に時間窓にわたってメッセージ510をサンプリングし、ワーク・ヒストグラムを生成し、ワーク・ヒストグラムと本明細書で開示されているような特徴ヒストグラムを比較することによって、比較が行われ得る。
【0077】
ここで、本発明の実施形態に係る、メッセージ510、スケルトン520、コンストラクト530、およびエンド・ツー・エンド・リンク360のヒストグラム540を描いた、
図5を参照する。ヒストグラム540は、特徴ヒストグラムまたはワーク・ヒストグラムのいずれかを表し得る。例えば、特徴ヒストグラム(例えばシグネチャ362)を生成するために、エージェント322は訓練または準備段の間にメッセージ510をキャプチャし得、またワーク・ヒストグラムを生成するために、エージェント322はラン・タイムまたは動作段の間にメッセージ510をキャプチャし得る。
【0078】
いくつかの実施形態では、エージェント322は、ヒストグラム540を生成するために使用される各メッセージ510からスケルトン520を、各スケルトン520からコンストラクト530を、そしてコンストラクト530からヒストグラム540を生成することによって、ヒストグラム540を生成し得る。ヒストグラム540は、準備段の間にキャプチャされたメッセージに関するエンド・ツー・エンド・リンク360のシグネチャ362、および、ラン・タイムまたは動作段の間にキャプチャされたメッセージに関するワーク・ヒストグラムであり得る(またはその一部であり得る)。
【0079】
エージェント322は、メッセージ510から値を除去することによって、メッセージ510からスケルトン520を生成し得る。値はデータベース・テーブルに格納されている特定のデータ要素であり得るか、またはそれを参照し得る。この場合、スケルトン520はメッセージ510を含み得るが、値フィールドは含まない。SQL文の例を以下に示す:
例1:Select NAME from EMPLOYEE where DEPARTMENT=”SALE” and BAND>8;
例2:SELECT FULL_NAME, ADDRESS from CUSTOMER, PHONE where PHONE.PHONE_NO like “01230123012%” and CUSTOMER.CUSTOMER_ID=PHONE.CUSTOMER_ID;
【0080】
例1における値は「SALE」および「8」であり、例2では値は電話番号「01230123012」である。これらの例は要求に関するものである。応答は典型的には列見出しと値とを含む。この場合、応答からスケルトン520を生成するために値が除去されてもよく、スケルトン520は列見出しを含んでもよい。
【0081】
エージェント322はスケルトン520から、スケルトン520をハッシュすることまたは他の圧縮方法を使用することによって、コンストラクト530を生成し得る。コンストラクト530を生成するために使用される動作は、メッセージ510のビットの数を減らすことができ、演算が非常に高速であり得、コリジョンを最小限にし得る、例えばいくつかの場合には、異なるスケルトン520に対して同じコンストラクト350を生成しないものとするか、またはほぼ生成しないものとする。典型的なアプリケーションでは、スケルトン520の長さは、数十文字から複雑な文の場合で最大数千文字の範囲であり得る。スケルトン520のハッシュは最大約15~25文字であり得る。
【0082】
特徴ヒストグラム540を生成するためにエージェント322はコンストラクト530の値を一連の間隔に分割してもよく、典型的にはこれらの間隔は連続し隣接した重なり合わないものであり、各間隔はビンまたはバケットと呼ばれる場合がある。エージェント322は次いで、何個のコンストラクト530が各ビン内に収まるかを計数し得る。これらのビンはサイズが等しくてもそうでなくてもよい。エンド・ツー・エンド・リンク360のメッセージ510は、特に値を除去したときに、それら自体の繰り返しとなり得るか、または互いに類似し得ると想定される。この場合、メッセージ510のスケルトン520に基づいて特徴ヒストグラム540を生成することは、エンド・ツー・エンド・リンク360の共通の挙動を表し得る。したがって、エンド・ツー・エンド・リンク360のメッセージ510の分布は特徴ヒストグラムと類似したままとなるものと予想され得る。
【0083】
いくつかの実施形態によれば、ヒストグラム540は、コンストラクト530に対する追加または代替として、メッセージ510において使用されるコマンドを含み得る。例えば、エージェント322は、メッセージ510の中に含まれるコマンド550をコマンド・グループに分割し得る。例えば、コマンド・グループは、DDL、DML、DQI、DCL、TCL、等を含み得る。この場合、各コマンド・グループはヒストグラム540におけるビンであってもよく、エージェント322は各コマンドをコマンドのタイプに基づいて適切なビンの中に置くことができる。
【0084】
本発明の実施形態によれば、動作段中、エンド・ツー・エンド・リンク360が信頼できるものとしてラベリングまたは類別される限りは、エージェント322はエンド・ツー・エンド・リンク360と関連付けられたメッセージ350を、包括的セキュリティ分析のためにセキュリティ・サーバ330に送信しなくてもよい。このことによって、セキュリティ・サーバ330で要求される演算能力が劇的に低減され得る。ただし、ハイジャック攻撃を検出するために、エージェント322は、エンド・ツー・エンド・リンク360と関連付けられたメッセージ510を時々、例えば周期的に、例えば10~30分ごとに、または新しいセッションごとに、あるいはその組合せでサンプリングし、シグネチャ、例えば特徴ヒストグラムとの相異がないかをチェックしてもよい。本発明の実施形態によれば、エージェント322は、エンド・ツー・エンド・リンク360のメッセージ510をサンプリングし、高ボリュームまたは高レートのメッセージ510を有するセッションにおいてのみ、シグネチャ362との相異がないかをチェックしてもよい。例えば、エージェント322は、閾値未満の、例えば1秒あたりのメッセージが100個未満のメッセージ・レートを有するセッションのシグネチャ・メッセージに対しては、チェックを行わなくてもよい。代わりに、それらのセッションのメッセージ510は大量のデータを含まずしたがってシステムに高負荷をもたらさないので、包括的セキュリティ分析を受けてもよい。
【0085】
例えば、エージェント322は、サンプリング時間窓の間に、エンド・ツー・エンド・リンク360と関連付けられたメッセージ510をサンプリングし得る。サンプリング時間窓は固定長のものであってもよく(例えば1~2分)、または、十分な数のメッセージ510(例えば100~400個のメッセージ)がサンプリングされるまで継続してもよい。本発明の実施形態によれば、エージェント322は、本明細書で開示されているようなサンプリングされたメッセージ350から、ワーク・ヒストグラム540を生成し得る。
【0086】
ここで、本発明の実施形態に係るエンド・ツー・エンド・リンク360のワーク・ヒストグラム610とエンド・ツー・エンド・リンク360の特徴ヒストグラム620との比較を描いた、
図6Aを参照する。
図6Aでは、本明細書で開示されているように、準備段において特徴ヒストグラム620が生成され、動作段の間にワーク・ヒストグラム610が生成される。本発明の実施形態によれば、エージェント322は、エンド・ツー・エンド・リンク360のトラスト・レベル604を決定するために、ワーク・ヒストグラム610を特徴ヒストグラム620と比較し得る602。いくつかの実施形態では、エージェント322はトラスト・レベル604を比較602から直接決定してもよく、いくつかの実施形態では、エージェント322は比較602に基づいてセキュリティ・グレードを計算してもよく、セキュリティ・グレードを閾値と比較することによってトラスト・レベル604を決定してもよい。比較602は、任意の適用可能な統計的な、または他の方法を使用して行われ得る。例えば、エージェント322は、ワーク・ヒストグラム610の分散を特徴ヒストグラム620の分散と比較し得る602。例えば、エージェント322は、例えば以下が真である場合にはエンド・ツー・エンド・リンク360が信頼できるままであり得ると、および、以下が真ではない場合にはエンド・ツー・エンド・リンク360が信頼できないものとして分類されると判定し得る(他のルールを使用してもよい):
work_histogram_variance < 2* characteristic_histogram_variance (式1)
【0087】
ここで、本発明の実施形態に係る、エンド・ツー・エンド・リンク360のワーク・ヒストグラム610と、エンド・ツー・エンド・リンク360、362、364のクラスタ630に各々関連する複数のエンド・ツー・エンド・リンク360、362、364の複数の特徴ヒストグラム620、622、624との比較606を描いた、
図6Bを参照する。クラスタ630は3つのエンド・ツー・エンド・リンク360、362、364を含むものとして描かれているが、これは単に一例に過ぎず、クラスタ630は任意の数のエンド・ツー・エンド・リンクを含み得る。
【0088】
エージェント322は、クラスタリングに使用される特徴が例えば、エンド・ツー・エンド・リンク360、362、364のコンストラクト、またはエンド・ツー・エンド・リンク360、362、364において使用されるコマンド、あるいはその両方を含み得る場合に、エンド・ツー・エンド・リンク360、362、364のクラスタ630を見出し得る。例えば、エンド・ツー・エンド・リンク360、362、364において使用されるコマンドは、コマンド・グループ、例えばDDL、DML、DQI、DCL、TCL、等にグループ化され得る。類似のエンド・ツー・エンド・リンク、例えば共通のコンストラクトおよびコマンドを有するエンド・ツー・エンド・リンクを各々含むクラスタを見付けるために、クラスタリング・アルゴリズムが使用され得る。いくつかの実施形態では、k平均法を使用して、エンド・ツー・エンド・リンク360が、各エンド・ツー・エンド・リンク360が最も近い平均値を有するクラスタ630に属する、k個のクラスタ630に区画され得る。他のクラスタリング方法を使用してもよい。
【0089】
いくつかの実施形態では、エージェント322は、エンド・ツー・エンド・リンク360のトラスト・レベル604を決定するために、ワーク・ヒストグラム610を、(例えば式1を使用して)エンド・ツー・エンド・リンク360のクラスタ630の特徴ヒストグラム620、622、および624の各々と比較し得る606。例えば、エンド・ツー・エンド・リンク360を信頼できるものと見なすためには、式1はいくつかの実施形態では、全ての特徴ヒストグラム620、622、および624に対して真であるべきであり、エンド・ツー・エンド・リンク360を信頼できないものと見なすためには、式1が特徴ヒストグラム620、622、および624のうちの1つに対して真でなくなれば十分であり得る。エンド・ツー・エンド・リンク360のトラスト・レベルを決定するために、他のルールおよび条件を使用してもよい。
【0090】
ここで、本発明の実施形態に係る、エンド・ツー・エンド・リンク360のワーク・ヒストグラム610と、エンド・ツー・エンド・リンク360、362、364のクラスタ630の共通の特徴ヒストグラム640との比較608を描いた、
図6Cを参照する。いくつかの実施形態では、クラスタ630の全てのエンド・ツー・エンド・リンクに共通の共通特徴ヒストグラム640が生成されてもよく、エンド・ツー・エンド・リンク360のワーク・ヒストグラム610は、エンド・ツー・エンド・リンク360のトラスト・レベルを決定するために、608で共通特徴ヒストグラム640に対して(例えば比較602と同様に)比較され得る。
【0091】
本発明の実施形態によれば、エンド・ツー・エンド・リンク360のトラスト・レベルの計算は、リアル・タイムの動作が可能になるように高速であるべきである。本発明の実施形態によれば、この要件は本発明の実施形態によって達成されるが、その理由は、ハッシュ値の計算およびヒストグラムの比較に要求される演算リソースが少ないからである。本発明の実施形態に係る動的ホワイトリスティングは、包括的セキュリティ分析を行うために必要な演算能力を動的に低減し得る。
【0092】
図3に戻ると、本発明の実施形態によれば、エージェント322は、エンド・ツー・エンド・リンク360のトラスト・レベルが信頼できるから信頼できないに変化する場合に、エンド・ツー・エンド・リンク360のデータ・パケット350をセキュリティ・サーバ330に送信し得る。追加または代替として、エージェント322は、エンド・ツー・エンド・リンク360のトラスト・レベルが信頼できるから信頼できないに変化する場合、セキュリティ・アラートを発出し得る。追加または代替として、エージェント322は、エンド・ツー・エンド・リンク360のトラスト・レベルが信頼できるから信頼できないに変化する場合、エンド・ツー・エンド・リンク360のデータ・パケット350をブロックし得る。
【0093】
セキュリティ・サーバ330はデータ・セキュリティ・アプリケーション332を実装または実行し得る。データ・セキュリティ・アプリケーション332は、ファイアウォール、DAMまたはFAMあるいはその両方、外部データベース非侵入的セキュリティ機構(external database non-intrusive security mechanism)(EDSM)、企業データベース監査、およびリアル・タイム保護であり得るか、またはこれらを含み得る。データ・セキュリティ・アプリケーション332は、包括的セキュリティ分析を行うことを含む、データ・ソース・マシン320のデータベース・アクティビティ・モニタリング・サービスを提供し得る。データ・セキュリティ・アプリケーション332は、データ・ソース・マシン320のデータベース・アクティビティの連続的なモニタリングを提供し得る。データ・セキュリティ・アプリケーション332の例としては、限定するものではないが、International Business Machines Corporationから入手可能なGuardium(R)アプリケーションを挙げることができる。
【0094】
本発明の実施形態によれば、データ・セキュリティ・アプリケーション332は、データ・パケット350を受信または取得し得る。包括的セキュリティ分析は、データ・パケットを解析することと、メタデータをデータにマッピングすることと、データの階層を構築すること(例えば、名前値の階層ツリーを構築すること)と、ポリシ・ルールを処理することと、を含み得る。ポリシ・ルールの処理には関連付けられた名前および値が必要であり得る。例えば、ルールは「%ID%のような名前および値が特定の正規表現(Regex)と一致する場合」を含んでもよく、または、ルールは郵便番号と通りの名前を想定してもよい。
【0095】
いくつかの実施形態によれば、データ・セキュリティ・アプリケーション332は、インターセプトされたメッセージ510からデータベース・クエリまたはデータベース・クエリに対する応答を抽出し、抽出されたデータベース・クエリまたは応答を解析し、データベース・プロトコル・ルールに従ってセキュリティ構造を作成し得る。ルールは、クエリにおいて識別される動作またはコマンドのタイプ、その動作によって動作することになるデータベース・オブジェクト、およびクエリを要求しているユーザのユーザ識別子、サービスIPアドレスに関する識別子、クライアントIPアドレス、クライアントMAC、データにアクセスするために使用されるネットワーク・プロトコル、データベース・タイプ、データを提供するサービスの名前に関するサービス名、アクセスされるデータベースの名前、データ・アクセスのために使用されるソース・アプリケーション、アプリケーション・ユーザ名、およびオペレーティング・システム・ユーザ、データベース関連フィールド、エラー・コード、例外タイプ、アクセスされるデータの場所のサービスIPアドレス、および追加または代替のルールを含み得るが、これらに限定されない。
【0096】
いくつかの実施形態によれば、データ・セキュリティ・アプリケーション332は、ポリシ・ルールによって規定されるセキュリティ・ポリシに照らして、セキュリティ構造におけるあり得るデータベース・オブジェクト・アクセス違反を検証し得る。1つの例では、セキュリティ構造の妥当性がセキュリティ・ポリシに照らして確認されない場合、データ・セキュリティ・アプリケーション332は、管理者または他のエンティティに、インターセプトされたデータ・パケット350の妥当性がセキュリティ・ルールに照らして確認されなかったことを示すアラートを発出し得る。1つの例では、管理者またはサービスがルールの各々を設定し得る。いくつかの実施形態によれば、セキュリティ・ルールは、限定するものではないが、アクセスが許可されるまたはされない動作のタイプを指定する動作タイプ設定、動作が作用する1つまたは複数の特定のデータベース・オブジェクトを指定するオブジェクト設定、および、データベース・オブジェクトに対する動作を要求するユーザに関する1つまたは複数のユーザ識別子を指定するユーザ設定などの、1つまたは複数の設定を含み得る。例えば、セキュリティ・ルールによって制約される動作は、限定するものではないが、作成、選択、更新、および削除などの動作を含み得る。セキュリティ設定は追加のまたは代替のタイプの設定を含み得る。
【0097】
データベース・クライアント310、セキュリティ・サーバ330、およびデータ・サーバ420の各々は、
図6に描かれているコンピューティング・デバイス700などのコンピューティング・デバイスであり得るか、またはそれを含み得る。1つまたは複数のデータベース326はストレージ・デバイス730などのストレージ・デバイスであり得るか、またはそれを含み得る。
【0098】
本発明の実施形態に係るメッセージをエンド・ツー・エンド・リンクと関連付けるための方法のフローチャートである、
図7を参照する。メッセージをエンド・ツー・エンド・リンクと関連付けるための方法の一実施形態が、例えば
図1、
図2、
図3、
図4、および
図9に示すシステムによって実施され得る。メッセージをエンド・ツー・エンド・リンクと関連付けるプロセスは、データ・ソース・マシンとデータ・クライアントとの間を流れる複数のデータ・パケットに対して繰り返され得る。
【0099】
動作742において、データ・パケット(例えばデータ・パケット350)がキャプチャされ得る。データ・パケットは、ヘッダ352と、データ・クライアントによってデータベースに送信されるクエリまたはクエリに対するデータベースの応答(例えばメッセージ510)を含む、ペイロード354と、を含み得る。例えば、データ・ソース・マシン(例えばデータ・ベース・サーバまたはデータベース・サーバのプロキシもしくはネットワーク・ゲート)に配置されそこで実行されるエージェント・ソフトウェア・インスタンスは、データ・パケットをキャプチャし得る。動作744において、エージェント322は、データ・パケットを復号してデータ・パケットのヘッダおよびメッセージを取得し得る。エージェント322は、エンド・ツー・エンド・リンクのパラメータ、例えばServerHostName、ServiceName、DbName、ClientHost、OsUser、DbUser、等を取得するために、ヘッダを分析し得る。動作746において、エージェント322は、パケットをエンド・ツー・エンド・リンクと関連付けるために、例えばヘッダから抽出されたパラメータに基づいて、本明細書で開示されているようにヘッダを分析し得る。
【0100】
本発明の実施形態に係る特徴ヒストグラムを生成するための方法のフローチャートである、
図8を参照する。特徴ヒストグラムを生成するための方法の一実施形態が、例えば
図1、
図2、
図3、
図4、および
図9に示すシステムによって実施され得る。特徴ヒストグラムを生成するための方法の一実施形態は例えば、訓練段または準備段において実施され得る。いくつかの実施形態によれば、特徴ヒストグラムの生成は、特徴ヒストグラムを最新の状態に保つために周期的に、例えば週に1回または月に1回、繰り返され得る。特徴ヒストグラムを生成するための方法の一実施形態は、高ボリュームまたは高レートのメッセージを有するエンド・ツー・エンド・リンク360に対して行われ得る。例えば、1秒あたり100個を超えるメッセージである。
【0101】
動作750において、エージェント322は、単一のエンド・ツー・エンド・リンクのメッセージのセットを取得し得る。メッセージのセットは、事前に決定された数のメッセージ、または事前に決定された時間窓にわたって取得されたメッセージを含み得る。例えば、典型的なアプリケーションでは、エージェント322は、動作750において、単一のエンド・ツー・エンド・リンクの約150,000~400,000個のメッセージをキャプチャし得る。いくつかの実施形態では、エージェント322は、単一のエンド・ツー・エンド・リンクの複数のセッションにおいてメッセージをキャプチャし得る。いくつかの実施形態では、エージェント322は、動作750において、単一のエンド・ツー・エンド・リンクの20~40回のセッションの最初の1または2分の間に、メッセージをキャプチャし得る。シグネチャを生成するためのメッセージをキャプチャするための、他の時間窓を使用してもよい。動作752において、エージェント322はメッセージの各々からスケルトンを生成し得る。スケルトンは値フィールド以外のメッセージ・テキストを含み得る。動作754において、エージェント322はコンストラクト、または圧縮された形態の各スケルトンを生成し得る。例えば、エージェント322は、コンストラクトを取得するためにスケルトンをハッシュし得る。動作755において、エージェント322はメッセージの各々からコマンドを抽出し得る。動作756において、エージェント322は、エンド・ツー・エンド・リンクに関する特徴ヒストグラムを生成し得る。例えば、エージェント322は、本明細書で開示されているように、コンストラクトから特徴ヒストグラムを生成し得る。追加または代替として、エージェント322はメッセージのコマンドから、本明細書で開示されているようにコマンドをコマンド・グループに分割することによって、特徴ヒストグラムを生成し得る。動作750~756は、特徴ヒストグラムが複数のエンド・ツー・エンド・リンクの各々に対して生成されるように、複数のエンド・ツー・エンド・リンクに対して繰り返され得る。動作758において、エージェント322は、エンド・ツー・エンド・リンクのクラスタが取得されるように、エンド・ツー・エンド・リンクをクラスタリングまたは分類し得る。いくつかの実施形態では、クラスタリングまたは分類は、本明細書で開示されているようなコンストラクトおよびエンド・ツー・エンド・リンクのコマンドに基づいて行われ得る。いくつかの実施形態では、エージェント322は、エンド・ツー・エンド・リンクのクラスタの特徴ヒストグラムを生成し得る。いくつかの実施形態では、エージェント322は、クラスタ中の複数のエンド・ツー・エンド・リンクの各々に対して特徴ヒストグラムを生成し得る。
【0102】
本発明の実施形態に係る、コンピュータ・データベースのエンド・ツー・エンド・リンクのトラスト・レベルを動的に決定するための方法のフローチャートである、
図9を参照する。エンド・ツー・エンド・リンクのトラスト・レベルを動的に決定するための方法の一実施形態が、例えば、
図1、
図2、
図3、
図4、および
図9に示すシステムによって実施され得る。コンピュータ・データベースのエンド・ツー・エンド・リンクのトラスト・レベルを決定するためのプロセスは、周期的に、または新しいセッションごとに、あるいはその両方で繰り返され得る。エンド・ツー・エンド・リンクのトラスト・レベルを動的に決定するための方法の一実施形態は例えば、高ボリュームまたは高レートのメッセージを有するエンド・ツー・エンド・リンクに対して実施され得る。例えば、エージェント322は、閾値未満の、例えば1秒あたりのメッセージが100個未満のメッセージ・レートを有するセッションに対しては、エンド・ツー・エンド・リンクのトラスト・レベルを決定しなくてもよい。代わりに、閾値未満のメッセージ・レートを有するセッションのメッセージは全て、包括的セキュリティ分析を受けてもよい。
【0103】
動作760において、エージェント322は、単一のエンド・ツー・エンド・リンクのメッセージのセット(メッセージの第2のセットとも呼ばれる)を取得し得る。メッセージのセットは、事前に決定された数のメッセージ(例えば100~400個のメッセージ)、または事前に決定された時間窓(1~2分)にわたって取得されたメッセージを含み得る。動作762において、エージェント322はメッセージの各々からスケルトンを生成し得る。スケルトンは値フィールド以外のメッセージ・テキストを含み得る。動作764において、エージェント322はコンストラクト、または圧縮された形態の各スケルトンを生成し得る。例えば、エージェント322は、コンストラクトを得るためにスケルトンをハッシュし得る。動作765において、エージェント322は、メッセージの第2のセット中のメッセージの各々から、コマンドを抽出し得る。動作766において、エージェント322は、エンド・ツー・エンド・リンクに関するワーク・ヒストグラムを生成し得る。例えば、エージェント322は、本明細書で開示されているように、コンストラクトからワーク・ヒストグラムを生成し得る。追加または代替として、エージェント322はメッセージのコマンドから、本明細書で開示されているようにコマンドをコマンド・グループへと分割することによって、ワーク・ヒストグラムを生成し得る。
【0104】
動作768において、エージェント322は、ワーク・ヒストグラムを特徴ヒストグラムと比較し得る。いくつかの実施形態では、エージェント322は、ワーク・ヒストグラムを同じエンド・ツー・エンド・リンクの特徴ヒストグラムと比較し得る。いくつかの実施形態では、エージェント322は、ワーク・ヒストグラムを、エンド・ツー・エンド・リンクが関連しているエンド・ツー・エンド・リンクのクラスタの特徴ヒストグラムと比較し得る。いくつかの実施形態では、エージェント322は、ワーク・ヒストグラムを、エンド・ツー・エンド・リンクが関連しているエンド・ツー・エンド・リンクのクラスタの複数の特徴ヒストグラムの各々と比較し得る。
【0105】
動作770において、エージェント322は、エンド・ツー・エンド・リンクのトラスト・レベルを決定し得る。例えば、エージェント322は、エンド・ツー・エンド・リンクのトラスト・レベルを比較に基づいて決定し得る。いくつかの実施形態では、エージェント322は、ワーク・ヒストグラムの分散を特徴ヒストグラムの分散と比較し、ワーク・ヒストグラムの分散が特徴ヒストグラムよりも事前に決定された倍数だけ、例えば2倍大きい場合、エンド・ツー・エンド・リンクのトラスト・レベルが信頼できないと判定し得る。他のルールが適用されてもよい。追加または代替として、エージェント322は、メッセージの第2のセットのコンストラクトのうちの少なくとも1つが新しい場合、エンド・ツー・エンド・リンクのトラスト・レベルが信頼できないものと判定し得る。エージェント322は、メッセージの第2のセットのコンストラクトを、そのコンストラクトが特徴ヒストグラムの中に含まれていない場合に、新しいものであると判定し得る。この場合、いくつかの実施形態によれば、エンド・ツー・エンド・リンクを信頼できないものと見なすかまたは分類するためには、エンド・ツー・エンド・リンクのワーク・ヒストグラムがエンド・ツー・エンド・リンクの特徴ヒストグラムと異なっていれば、または、メッセージの第2のセットのコンストラクトのうちの少なくとも1つが新しいものであれば、十分である。エンド・ツー・エンド・リンクはそれ以外の場合は信頼できるものとして見なされるかまたは分類され得る。
【0106】
いくつかの実施形態によれば、エンド・ツー・エンド・リンクが信頼できると判定される場合、エージェント322は、エンド・ツー・エンド・リンクのメッセージを包括的セキュリティ分析のためにセキュリティ・サーバ330に送信しなくてもよい。いくつかの実施形態によれば、エージェント322は、特徴ヒストグラムを最新の状態に保つために、ワーク・ヒストグラムを生成するために使用されるコンストラクトを特徴ヒストグラムに追加し得る。いくつかの実施形態によれば、動作770においてエンド・ツー・エンド・リンクが信頼できないと判定される場合、エージェント322は以降のエンド・ツー・エンド・リンクのメッセージにポリシ・ルールを適用してもよく、エンド・ツー・エンド・リンクが信頼できる場合、エージェント322はエンド・ツー・エンド・リンクの以降のメッセージにポリシ・ルールを適用することを省略してもよい。例えば、エージェント322は、エンド・ツー・エンド・リンクが信頼できない場合に、包括的セキュリティ分析のためにセキュリティ・サーバ330にエンド・ツー・エンド・リンクのメッセージを送信し得る。動作778において、エージェント322は、エンド・ツー・エンド・リンクが信頼できない場合に、セキュリティ・アラートを発出し得る。
【0107】
図10は、本発明の一実施形態に係る例示のコンピューティング・デバイスを示す。データベース・クライアント310、セキュリティ・サーバ330、データ・ソース・マシン320、データベース・サーバ410および420、ゲートウェイまたはプロキシ422、エージェント・アプリケーション322、ならびに他のモジュールなどの様々な構成要素は、コンピューティング・デバイス700であるか、もしくはこれを含み得るか、もしくはこれによって実行されるか、または
図10に示されているような構成要素を含み得る。例えば、本発明の実施形態によれば、データ・ストリーミングのためにデータをリアル・タイムで分類するために、第1のプロセッサ705を有する第1のコンピューティング・デバイス700が使用され得る。
【0108】
コンピューティング・デバイス700は、例えば中央処理装置プロセッサ(CPU)、チップ、または任意の好適なコンピューティング・デバイスもしくは演算デバイスであり得るプロセッサ705、オペレーティング・システム715、メモリ720、ストレージ730、入力デバイス735、および出力デバイス740を含み得る。プロセッサ705は、同一場所に配置されているもしくは分散されている、1つもしくは複数のプロセッサ等であり得るか、またはこれを含み得る。コンピューティング・デバイス700は、例えばワークステーションもしくはパーソナル・コンピュータであり得るか、または、(例えば「クラウド」内の)1つもしくは複数の遠隔のサーバによって、少なくとも部分的に実装され得る。例えば、コンピューティング・デバイス700は、
図1および
図2に描かれているクラウド・コンピューティング環境50の中に含まれ得る。
【0109】
オペレーティング・システム715は、例えば、コンピューティング・デバイス700の動作の調整、スケジューリング、調停、監視、制御、またはそれ以外の管理を含むタスクを行うように設計されたまたは構成されたあるいはその両方である任意のコード・セグメントであり得るか、またはそれを含み得る。オペレーティング・システム715は市販のオペレーティング・システムであってもよい。オペレーティング・システム715は、仮想マシン、例えばコンピュータ・システムのエミュレーションを実現するように設計されたまたは構成されたあるいはその両方である、任意のコード・セグメントであり得るか、またはそれを含み得る。メモリ720は例えば、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、動的RAM(DRAM)、同期DRAM(SD-RAM)、2倍データ・レート(DDR)メモリ・チップ、フラッシュ・メモリ、揮発性メモリ、不揮発性メモリ、キャッシュ・メモリ、バッファ、短期記憶ユニット、長期記憶ユニット、または他の好適なメモリ・ユニットもしくはストレージ・ユニットであり得るか、またはそれらを含み得る。メモリ720は複数の、場合によっては異なるメモリ・ユニットであり得るか、またはそれらを含み得る。
【0110】
実行可能コード725は任意の実行可能コード、例えばアプリケーション、プログラム、プロセス、タスク、またはスクリプトであり得る。実行可能コード725は、オペレーティング・システム715の制御下にあり得るプロセッサ705によって実行され得る。例えば、実行可能コード725は、本発明の実施形態に係る、コンピュータ・データベースのエンド・ツー・エンド・リンクのトラスト・レベルを動的に決定するためのソフトウェアであり得るか、またはこれを含み得る。いくつかの実施形態では、2つ以上のコンピューティング・デバイス700が使用され得る。例えば、コンピューティング・デバイス700の中に含まれるものと同様の構成要素を含む複数のコンピューティング・デバイスがネットワークに接続され、システムとして使用され得る。
【0111】
ストレージ730は例えば、ハード・ディスク・ドライブ、フロッピー(R)・ディスク・ドライブ、コンパクト・ディスク(CD)・ドライブ、CD記録可能(CD-R)ドライブ、ユニバーサル・シリアル・バス(USB)デバイス、あるいは他の好適な取外し可能なもしくは固定されたまたはその両方のストレージ・ユニットであり得るか、またはそれらを含み得る。ストレージ730は、データベース326を含む1つまたは複数のデータベースを含み得るかまたは格納し得る。いくつかの実施形態では、
図10に示す構成要素のうちのいくつかを省略してもよい。例えば、メモリ720は、ストレージ730のストレージ容量を有する不揮発性メモリであり得る。これに応じて、ストレージ730は、別々の構成要素として示されているが、メモリ720に埋め込まれても、またはその中に含まれてもよい。
【0112】
入力デバイス735は、マウス、キーボード、タッチ・スクリーンもしくはタッチ・パッド、または任意の好適な入力デバイスであり得るか、またはそれらを含み得る。ブロック735によって示されるように、コンピューティング・デバイス700には、任意の好適な数の入力デバイスが動作可能に接続されることが認識されよう。出力デバイス740は、1つまたは複数のディスプレイ、スピーカ、または任意の他の好適な出力デバイス、あるいはその組合せを含み得る。ブロック740によって示されるように、コンピューティング・デバイス700には、任意の好適な数の出力デバイスが動作可能に接続されることが認識されよう。ブロック735および740によって示されているように、任意の適用可能な入力/出力(I/O)デバイスが、コンピューティング・デバイス700に接続され得る。入力デバイス735または出力デバイス740あるいはその両方の中には、例えば、有線またはワイヤレスのネットワーク・インターフェース・カード(NIC)、モデム、プリンタ、またはファクシミリ・マシン、ユニバーサル・シリアル・バス(USB)デバイス、または外部ハード・ドライブが含まれ得る。ネットワーク・インターフェース750は、デバイス700が1つまたは複数の他のコンピュータまたはネットワークと通信するのを可能にし得る。例えば、ネットワーク・インターフェース750は、Wi-FiまたはBluetoothデバイスまたは接続部、イントラネットまたはインターネットへの接続部、アンテナ、等を含み得る。
【0113】
本開示に記載されている実施形態は、以下でより詳細に検討するように、様々なコンピュータ・ハードウェアまたはソフトウェア・モジュールを含む、専用または汎用コンピュータの使用を含み得る。
【0114】
本開示の範囲内の実施形態はまた、コンピュータ実行可能命令またはデータ構造を担持するかまたはそれらを格納するためのコンピュータ可読媒体、または非一過性のコンピュータ・ストレージ媒体を含む。命令は実行されるとプロセッサに本発明の実施形態を実施させ得る。そのようなコンピュータ可読媒体またはコンピュータ・ストレージ媒体は、汎用または専用コンピュータがアクセス可能な任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光学ディスク・ストレージ、磁気ディスク・ストレージまたは他の磁気ストレージ・デバイス、あるいは、コンピュータ実行可能命令またはデータ構造の形態において所望のプログラムコード手段を搬送または格納するために使用でき、汎用または専用コンピュータがアクセス可能な、任意の他の媒体を含み得る。情報がネットワークあるいは別の通信接続(ハードウェア組込みの、ワイヤレスの、またはハードウェア組込みもしくはワイヤレスの組合せのいずれか)を介してコンピュータに伝送または提供されるとき、コンピュータはその接続をコンピュータ可読媒体と見なしても差し支えない。この場合、任意のそのような接続をコンピュータ可読媒体と呼称しても差し支えない。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【0115】
コンピュータ実行可能命令は例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスにある機能または機能の群を実行させる命令およびデータを含む。主題について構造的な特徴または方法論的な動作あるいはその両方に特有の言語で記載してきたが、付属の特許請求の範囲において規定される主題は、必ずしも上記した特定の特徴または動作に限定されないことが理解されるべきである。むしろ上記した特定の特徴および動作は、各請求項を実施する例示の形態として開示されている。
【0116】
本明細書で使用する場合、用語「モジュール」または「構成要素」は、コンピューティング・システム上で実行されるソフトウェア・オブジェクトまたはルーチンを指し得る。本明細書に記載する様々な構成要素、モジュール、エンジン、およびサービスは、コンピューティング・システム上で(例えば、別々のスレッドとして)実行されるオブジェクトまたはプロセスとして実装され得る。本明細書に記載するシステムおよび方法はソフトウェアにおいて実装されるのが好ましいが、ハードウェアまたはソフトウェアとハードウェアの組合せでの実装も可能でありかつ企図されている。本明細書では、「コンピュータ」は、本明細書において既に定義したような任意のコンピューティング・システム、または、コンピューティング・システム上で実行される任意のモジュールもしくはモジュールの組合せであり得る。
【0117】
開示されるプロセスまたは方法あるいはその両方に関して、プロセスおよび方法において実行される機能は、文脈が示唆し得るような様々な順序で実装され得る。また更に、概説したステップおよび動作は単に例として提供されており、ステップおよび動作のうちのいくつかは、任意選択的なものであっても、組み合わせてより少数のステップおよび動作とされても、または追加のステップおよび動作へと拡張されてもよい。
【0118】
本開示は本願に記載されている特定の実施形態に関して限定されるものではなく、それらの実施形態は様々な態様の例示として意図されている。その範囲から逸脱することなく、多くの修正および変形を行うことができる。上記の説明から、列挙したもの以外に、本開示の範囲内にある機能的に等価な方法および装置が、当業者には明らかになろう。そのような修正および変形は付属の特許請求の範囲の範囲内に収まることが意図されている。本開示は、付属の特許請求の範囲の用語、およびそのような特許請求の範囲によって権利が認められる等価物の全範囲によってのみ、限定されるものである。本開示において使用される専門用語は特定の実施形態を説明するためのものに過ぎず、限定となることは意図していないこともまた理解されるべきである。
【0119】
本開示は場合によっては、様々な他の構成要素内に含まれるかまたはそれらに接続される、様々な構成要素を例示し得る。描かれているそのようなアーキテクチャは単に例示的なものであり、同じかまたは類似の機能性を達成する多くの他のアーキテクチャが実装可能である。
【0120】
本開示の態様は、その精神または本質的な特徴から逸脱することなく他の形態において具現化され得る。記載されている態様は、あらゆる点において例示的であり制限的ではないものと見なされるべきである。特許請求される主題は上記の説明によってではなく、付属の特許請求の範囲によって指示される。特許請求の範囲の意味内容および等価な範囲内で行われるあらゆる変更は、その範囲内に包含されるものである。