説明

高性能のネットワーク内容解析プラットフォーム

【課題】完全なクライアント−サーバ変換ストリームを再構成し、復号器および/またはデコンプレッサを適用し、多次元内容プロファイル化および/または加重されたコンテキスト内のキーワードを使用して結果的なデータ流を解析する方法を提供する。
【解決手段】この方法は例えばデータがそのオリジナルの形態および/または文書タイプから変更されている場合でも、データの押出しを検出することを可能にする。復号器はまた例えばeメール添付のような隠れた転送機構を明らかにすることができる。この方法は更に無許可(例えば不正)の暗号化されたセッションを検出し、違法と見られるデータの転送を停止することができる。この方法は例えば2Gbps(全二重方式)が可能な押出し防止マシンを構築することを可能にする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はネットワーク通信に関し、特に、本発明は例えば情報の漏洩の防止および/または不正の暗号化の検出のための、ネットワーク内容の解析に関する。
【背景技術】
【0002】
一般的に内容の走査は比較的よく開発されている分野である。ほとんどの応用では、内容の走査はキーワードベースであるが、より進歩した応用では通例の表現またはパターン突合せ/文書分類の統計的な方法を使用する。この方法自体は多くの文書分類問題に対して適用されている。統計的な分類子の適切な応用の1例はスパン濾波であり、ここではベイズ分類子は98%の正確度を示す。
【0003】
(例えばネットワークチャンネルを通っての情報の漏洩を防止する)デジタル資産保護の分野はかなり新しい。これまでの商用のシステムは既存の分野からの方法及びツールを借りており、キーワードの存在を調べるためにデータのオフライン解析に集中している。デジタル資産保護の最も開発された部分はeメールの転送および交換ソフトウェアへのアドオンとして動作するeメールスキャナである。この分野の製品はキーワードベースおよびregexpベースの濾波を提供し、外界へ攻撃的またはその他の不正なeメールを伝送する行為を防止し、生じ得る訴訟から会社を保護することに焦点を置いている。
【発明の開示】
【発明が解決しようとする課題】
【0004】
デジタル資産保護分野は最近、特に米国政府のプライバシー保護法、例えば財務機関をターゲットとするグラム−リーチ−ブリレイ法案(“GLBA”)およびヘルスケア提供業者の健康保険移動継続及び責任法案(“HIPAA”)のために、注意を引き始めた。例えばクレジットカード番号及び医療記録の漏洩は訴訟に数百万ドルかかるので、これらの事件を停止させなければならない。
【課題を解決するための手段】
【0005】
本発明は1特徴によれば、ネットワークデータを受信し、クライアント−サーバ通信セッションをネットワークデータから再構成し、ネットワークデータを通して、(i)統計的検出および(ii)キーワードベース検出の少なくとも一方を使用してクライアント−サーバ通信セッションを解析することによって情報の漏洩を検出するステップを含んでいる方法を提供する。
【0006】
別の特徴によれば、本発明はネットワーク通信を受信し、少なくとも内容の再構成、実時間でのネットワーク通信の走査及び認識を行うことにより、ネットワーク通信を介するデータの無許可および/または不当な転送を防止するステップを含んでいる方法を提供する。
【0007】
更に別の特徴によれば、本発明はネットワークデータを受信し、ネットワークデータを介する情報の漏洩を少なくとも多次元内容プロファイル化を適用することにより防止するステップを含んでいる方法を提供する。
【0008】
本発明の更に別の特徴によれば、本発明は符号化された情報を有するマシンの読取り可能な媒体を提供し、この情報がマシンにより読取られて実行されるとき、ネットワークデータを受信し、クライアント−サーバ通信セッションをネットワークデータから再構成し、ネットワークデータを通して、(i)統計的検出および(ii)キーワードベース検出の少なくとも一方を使用してクライアント−サーバ通信セッションを解析することによって情報の漏洩を検出するステップを含んでいる方法を実行させる。
【0009】
本発明の更に別の特徴によれば、本発明は符号化された情報を有するマシンの読取り可能な媒体を提供し、それはこの情報がマシンにより読取られ実行されるとき、ネットワーク通信を受信し、少なくとも内容の再構成、実時間でのネットワーク通信の走査及び認識を行うことにより、ネットワーク通信を介するデータの無許可および/または不当な転送を防止するステップを含んでいる方法を実行させる。
【0010】
更に別の特徴によれば、本発明は符号化された情報を有するマシンの読取り可能な媒体を提供し、この情報がマシンにより読取られ実行されるとき、ネットワークデータを受信し、ネットワークデータを介する情報の漏洩を少なくとも多次元内容プロファイル化を適用することによって防止するステップを含んでいる方法を実行させる。
【0011】
更に別の特徴によれば、本発明はネットワークデータを受信する受信機と、受信機に結合されたプロセッサとを具備し、このプロセッサが(i)クライアント−サーバ通信セッションをネットワークデータから再構成し、(ii)ネットワークデータを通して、(i)統計的検出および(ii)キーワードベース検出の少なくとも一方を使用してクライアント−サーバ通信セッションを解析することによって情報の漏洩を検出する装置を提供する。
【0012】
本発明の更に別の特徴によれば、本発明はネットワーク通信を受信する受信機と、その受信機に結合されたプロセッサとを具備し、プロセッサが少なくとも内容の再構成、実時間でのネットワーク通信の走査及び認識を行うことにより、ネットワーク通信を介するデータの無許可および/または不当な転送を防止する装置を提供する。
【0013】
更なる別の特徴によれば、本発明はネットワーク通信を受信する受信機と、受信機に結合されたプロセッサとを具備し、プロセッサがネットワークデータを介する情報の漏洩を少なくとも多次元内容プロファイル化を適用することにより防止する装置を提供する。
【発明を実施するための最良の形態】
【0014】
[略語のリスト]
GLBA グラム リーチ ブリレイ法案
HIPAA 健康保険移動継続及び責任法案
IP インターネットプロトコル
TCP 伝送制御プロトコル
DF デジタル指紋
HTML ハイパーテキストマークアップ言語
FSA 有限状態オートマトン
PDF 移動可能文書フォーマット
HTTP ハイパーテキスト伝送プロトコル
FTP ファイル転送プロトコル
XML 拡張可能なマークアップ言語
SSN 社会保険番号
OS オペレーティングシステム
API アプリケーションプログラミングインターフェース
NIC ネットワークインターフェースカード
FD 全二重方式
SPAN 交換ポート解析装置
CPU 中央処理装置
SMP 対称マルチ処理
IPC プロセス間通信
DoS サービスの否認
PCAP パケット捕捉
PLR パケット損失比
RAM ランダムアクセスメモリ
FDC フリー記述子チェーン
SMTP シンプルメール転送プロトコル
MCP 多次元内容プロファイリング
MIME 多目的インターネットメール拡張
TAR テープアーカイブ
AKD 自動キーワード発見
AIR 警告情報記録
DRM デジタル利権管理
ACP 自動内容プロファイラ
FIFO 先入れ−先出し
VM バーチャルマシン
ASCII 米国情報交換用標準符号
CCN クレジットカード番号
VPN バーチャル私設ネットワーク
RED 不正暗号化検出器
SSL/TLS 秘密保護ソケット層/転送層セキュリティ
NCAP ネットワーク内容解析プラットフォーム
MUTEX 相互−排他的ロック
UDP ユーザデータグラムプロトコル
ACL アクセス制御リスト
SNMP シンプルネットワーク管理プロトコル
ROM 読取り専用メモリ
【0015】
[本発明を実行するためのモード]
ほぼあらゆる組織は、例えば患者の記録、顧客のクレジットカード番号、化学構造および/または顧客リストを含む貴重な情報をそのネットワークに維持している。過去6年間にわたって、調査した組織の約20%がネットワークの所有情報の盗難を認識している。そのとき、彼等の報告した経済的損失は850パーセントも増加し、所有情報の盗難はコンピュータの誤使用による経済的損失の最大の原因になった。
【0016】
組織はそれらのデータを守るために間接的な方法、即ち例えばハッカーからの防御、ソフトウェアパッチ、ユーザ認証、物理的なセキュリティのような基本ネットワークセキュリティの実施を使用している。より直接的な方法はデータ自体の流れ(例えばアウトフロー)を単に観察するか、および/または1以上の間接的な方法と組合わせることである。
【0017】
本発明の1実施形態は情報の流出(例えばアウトフロー)を監視し阻止する方法を提供する。情報は感知可能情報、個人情報および/または知的財産のようなデジタル資産を含むことができる。この方法はネットワークトラフィックを捕捉し、内容の走査と認識を例えば実時間および/またはオフラインで行うことができる。その方法は(i)データの無許可の移動、(ii)情報の漏洩および/または(iii)デジタル資産のバルク転送を検出および/または阻止するために使用されることができる。デジタル資産には顧客のリスト、クライアント及び患者の記録、財務情報、クレジットカード番号および/または社会保険番号を含まれることができる。
【0018】
本発明の方法は完全なクライアント−サーバ変換ストリームを再構成し、復号器および/またはデコンプレッサを適用し、および/または1以上の内容スキャナを用いて結果的なデータを解析する。1以上の内容スキャナは多次元内容プロファイル化、加重されたコンテキスト内のキーワードおよび/またはデジタル指紋を含んでいてもよい。本発明の方法はさらに個人のネットワークパケットを扱う深いパケット検査を行うことができる。その方法は更に例えば共通の圧縮、集合、ファイルフォーマットおよび/または符号化スキーマを“剥離”できる内容復号の1以上の階層を提供し、処理に適した形態で実際の内容を抽出することができる。さらに、復号器は例えばeメール添付物のような隠れた転送機構を明らかにすることができる。この方法は(例えば統計的および/またはキーワードプロファイル)データをプロファイルし、例えばデータがそのオリジナルの形態および/または文書タイプから変更されていてもデータの流出を検出できる。この方法はまた無許可(例えば不正)の暗号化されたセッションを検出し、違法と見られるデータの転送を停止することができる。この方法は(例えば1Gbpsネットワークを含む)実時間ネットワークトラフィックで動作でき、例えば無許可の情報転送を防止するために全二重方式が可能な(例えば1以上のGbps)マシンを構築することを可能にする。
【0019】
多次元内容のプロファイル化は文書(例えばテキスト、二進データ、データファイル)の特徴を捕捉し、文書の寿命に共通の変化、即ち編集、幾つかの独立したバージョン、類似の文書のセット等への分岐を許容する。これはキーワードの走査と指紋との両者に対する後継として考慮され、両技術の能力を結合している。
【0020】
キーワード走査は比較的効率的でユーザに平易の文書分類方法である。これはテキストで逐語的に一致する非常に特別なワードのセットに基づいている。走査に使用される辞書は通信では不適切なワード、極秘のプロジェクト、製品、およびまたはプロセスのコードワードおよび/またはそれらの使用のコンテキストとは独立して疑いが生じるその他のワードを含んでいる。突合せはセット状のストリング整合アルゴリズムに基づいたシングルパス突合せ装置により実行されることができる。ゴーグルに精通する人はキーワード検索の信号対雑音比がキーワード自体の特有性と、キーワードとそれらが捕捉した概念とのマッピングの正確度にしたがって、良好な状態から許可できない状態まで変化することを立証できる。
【0021】
デジタル指紋(“DF”)はゼロに近づく偽の陽性度によって、ある文書および/またはデータファイルの正確なレプリカを正確に指摘できる。この方法は秘密保護ハッシュアルゴリズム(例えばSHA−1とMD5)によりメッセージダイジェストを計算できる。DFは特定のデータファイルの無許可のコピーを検出し、および/またはファイルがみだりに変更されていないことを証明できる。DFを流出検出に応用する問題は稀であり、それはDFがコンテキストの小さい変化に対して高感度であるからであり、例えば極秘情報と知的財産を構成する任意の実在のデータセットが時間において“凍結”され、オリジナル形態でのみ利用可能であるならば、非常に稀である。不完全な情報(例えば文書の一部)または異なる形態の同一の情報(例えばHTMLとして送信されるワード文書)或いは付加的な句読点符号を有する同一の文書は完全に気づかれずにDFベースの検出器を通過できる。これらの欠点にもかかわらず、DFは依然として内容の変化を抽出する幾つかの方法の上部の第2の層として有用である(例えばケースフォールディング、白色空間正規化、ワード順序正規化、ワードステミング、ワードの代わりにSOUNDEXコードの使用)。
【0022】
内容プロファイル化はある文書クラスに属す文書を識別するための1以上の技術を含むことができる。同一のクラスの文書は例えばプロファイル化のような予備プロセスの期間中に決定された類似の統計的特性を共有する。プロファイル化はクラス(正の学習セット)に属する文書の代表的なセットと、それに付随してそのクラスに類似しているがそのクラスに属さない(負の学習セット)文書とを利用する。クラスのプロファイル化プロセスは一度行われ、統計的特性の結果的なセット(例えばプロファイル)はそのクラス中のメンバーであるかについての試験に使用される。
【0023】
プロファイルの品質はそのクラスの全ての文書に共通する特徴を捕捉するプロファイル化アルゴリズムの能力にしたがっており、異なる特性の多数の関連しない特徴の使用によって改良される。各特徴はディメンション(例えば1つの文書と別の文書とでは異なる量的尺度)を規定できる。セキュリティ装置の内容プロファイル化は複数の異なる特徴を使用でき(例えば400以上の異なる特徴)、これはネットワークを通過するデータについて実時間で計算されることができる。ネットワークを通過する各文書は多次元スペース中の単一点にマップされることができ、このスペース中のその位置はクラスのメンバー(例えば2以上のクラスのメンバーが識別されることができる)の計算に使用されることができ、警報および/または反応尺度をトリガーする。
【0024】
内容プロファイル化方法は数世紀にわたり暗号解読により使用されており、古代ローマ人は個人の手紙の頻度の変化に基づいた簡単な解析方法を知っていた。依然として貴重であるが、簡単な統計的特性は、高レベルの統計的方法により補足されるときに最良に作用し、例えばワードおよび文章のようなより大きいエレメントで動作する。
【0025】
多次元のプロファイラは複数(例えば約200)の低レベルの統計的尺度で動作し、残りは高レベルの統計的尺度である。高レベルの統計はある一般的な問題領域(例えば個人の健康記録に関する極秘の個人情報、銀行口座情報、顧客リスト、クレジットカード情報、郵便アドレス、eメール、個人の経歴等)を念頭において設計されており、新しいドメイン特定次元を付加することにより他の領域を新しいターゲットとすることができる。
【0026】
所定のエレメントの全体的な使用を要約している個々の高レベルおよび低レベル特徴に加えて、プロファイラは文書の空間的構造に専用の複数(例えば100以上)の次元を有してもよく、これはエレメントの相互の同時発生および整列を含んでいる。1例として、これは郵便アドレスでは、州の名称とジップコードが非常に類似の頻度を有し、ジップコードがすぐその後に続く州の名称で相互にインターリーブすることを捕捉できる。空間的解析は文書の全体構造の捕捉に使用されてもよく、ターゲットクラスに類似の使用パターンを有する索引、語彙目録、その他のタイプの文書は容易にいじることができない。
【0027】
文書の学習セットのプロファイル化はセット中の文書と同数の点を多次元属性スペースに発生できる。各点は個々の文書(または文書のセクション)を表し、(クラス内では)“+”としてマークされ、(クラス外では)“−”とマークを付される。最終的な学習行為は“+”と“−”点を最小のオーバーラップによって分離する属性スペースの最も簡単な区分化を計算することができる。この区分化は有限状態オートマトン(“FSA”)に基づいてデータ駆動アルゴリズムに自動的に“デジタル化”されることができ、その有限状態オートマトンは例えば高い信頼度とワイヤ速度で“群衆の中の顔”を識別できる高速度シングルパス走査エンジンとして動作する。
【0028】
本発明の方法は以下の特徴を個別にまたは組合わせて含むことができる。
・データ(例えば企業データ)の流出を識別し、阻止するためにパケットレベルでネットワークトラフィックを監視する;
・例えば顧客リスト、クライアント及び患者の記録等のようなデジタル資産の“バルク”転送に焦点を置く;
・例えば最小の構造要求を有する実時間ネットワークベース;
・TCPセッションの再構成;
・トラフィックの全ての層(例えばPDF、イーサネット(登録商標)、IP、TCP、HTTP)を明らかにし、解析する;
・データ転送に使用される全ての普及しているプロトコル(例えばeメール、FTP、HTTP)のマルチレベル復号化;
・ネストされたデータ層(例えば添付物、ZIPアーカイブ)の深い検査;
・普及しているデータフォーマット(例えばMSワード、MSエクセル、HTML、XML、普通テキスト)の検査;
・統計的および/またはキーワードベースの検出;
・ローカルデータに対する本発明の方法の態様を調節するために自動プロファイル化及びキーワード発見のための1以上のツール;
・例えば文書構造を考慮に入れた多次元解析;
・統計的解析のためのドメイン特定高レベル特徴(例えばSSN、クレジットカード番号、郵便アドレス、eメールアドレス);
・オンタイム応答、実時間での違法通信の閉路;および/または
・不正暗号化(例えば無許可に暗号化された通信チャンネル)の検出
【0029】
1以上のこれらの特性はネットワーク機器に組込まれることができる。機器は自蔵され、タスクの的を絞られており、および/または企業のデジタル資産に関するネットワーク使用方針のセットを設定及び強化することを可能にする。
【0030】
この方法は既製のLimux(登録商標)オペレーティングシステム(“OS”)とインテル(登録商標)ベースのハードウェアでインストールされ、その機器がスタンドアロンネットワーク機器として機能することを可能にする。この方法はネットワークパケット捕捉のためLimux(登録商標)システムAPIを使用できる。この方法はLimux(登録商標)特定実時間スケジュール化設備と標準的なUNIX(登録商標)プロセス間通信(“IPC”)チャンネルも使用できる。この方法は更に一般的な管理目的(例えば警報情報の構成と、それの遠隔コンソールへの送信)用にUNIX(登録商標)ネットワーク化APIを使用する。この方法はパケット捕捉のために1以上のネットワークインターフェースカード(“NIC”)も使用できる。NICは(例えば割当てられたIPアドレスのない)OSにより十分に付勢されず、“乱”モードで使用されることができる。この方法は例えばFD/SPANモードでNICの随意選択的な番号を聞くことができる。この方法の多数のインスタンスは機器で動作することもできる。この方法は不正なTCPセッションを分解するためにTCPセッションキラーモジュールを含み、パケットを特定されたネットワークセグメントに注入するために別々のNICを使用することができる。
【0031】
マシンの読取り可能な媒体(例えばCD)は例えばペンティアム(登録商標)IVおよび/またはより高いCPUを有するPCハードウェアで動作する任意のLinux(登録商標)7.3+にインストールされるようにその方法によりプログラムされることができる。ギガビットのインテル(登録商標)NICはネットワークのスニフに使用されることができる。機器は64ビットPCI/Xバスと、対応するインテル(登録商標)プロ64ビットの1Gbpsカードを含むことができる。
【0032】
機器のインストールは3つの行為を含むことができる。
・強化されたLinux(登録商標)カーネルと、必要なLinux(登録商標)ユーティリティセットのインストール;
・この方法によるソフトウェアのインストール;および/または
・特別なハードウェア構造に一致するためのソフトウェアの構成/同調
【0033】
図1は幾つかのモジュールを含んでいるシステム(例えばプラットフォーム)の1実施形態を示している。このシステムは種々の応用、例えばTCP/IPネットワークデータ交換の内容を含むネットワークトラフィックの全ての層をアクセスするのに適している。システムは例えば汎用ハードウェア(例えばギガビットNICを有するマルチプロセッサ インテル(登録商標)/Linux(登録商標)ボックス)を使用して十分に飽和されたギガビットトラフィックで動作することができる。システムはスケール可能であり、例えばネットワークスニフおよび解析的応用をIPCを経て通信する幾つかのモジュールに分解することによって対称マルチ処理(“SMP”)構造で1以上のCPUの効率的な使用を可能にする。
【0034】
このシステムはネットワークデータ交換の効率的で正確な再構成を行う。システムは(1)例えば乱調モードで動作するネットワークインターフェースカードの支援により、ネットワークを経て伝播する個々のパケットを捕捉し、(2)パケットを復号し基本的な転送層(例えばIP)を明らかにし、(3)断片化されたパケットを合体し、(4)進行中の双方向データ交換(例えばセッション)とTCPセッションに対して追跡し、(5)各データセッションの両側を再構成し、それらの全体的な内容を内容解析層に対して利用可能にすることができる。
【0035】
このような再構成は幾つかの要因によって複雑にされる。要因の1つは速度であり、現代のネットワーク化装置は最新のギガビットイーサネット(登録商標)標準方式をサポートし、したがって多くのネットワークセグメントは700乃至800Mbps以上に到達する効率的な速度で動作する。このような接続を続けるために、スニフコンポーネントは十分に高速であり、それによってそれぞれのパケットは捕捉され、(例えば個別的またはセッションの一部としての)その内容の解析には十分な時間が残される。別の要因は正確度であり、受動的なアプリケーションであるスニファは全ての場合において全てのトラフィックを再構成するために必要な全ての情報をもたない可能性がある(そうするためには、通信ホストの内部状態にアクセスしなければならない)。スニファが全二重方式のストリームまたは非対称的にルートされるトラフィックを解析するならば、状態は更に複雑になり、幾つかの関連するネットワークストリームは別々のNICを介して捕捉され、単一通信チャンネルとして解析されることができる。
【0036】
この問題に対する既存のオープンソースおよび所有の解決策は多くのカウントで不足する。効率的な策はIBM(登録商標)のパワーNPネットワークプロセッサのような特別なハードウェアに依存するものであり、そうではないものは非常に遅く、理想的な高速度ネットワーク環境で有用であるには不正確である。
【0037】
この問題を解決するシステムでさえも任意の特別なハードウェアに依存しない。システムはパケットスニフ、断片化解除、復号、IPおよびTCPセッション追跡、例えばギガビット速度での層2−7の再構成および/または解析を行うことができる。更にシステムは一時的なイベント記憶及びイベントスプーラで支援される統一されたイベント処理手段を含むことができる。
【0038】
システムは多数のCPUを利用し、内容解析アルゴリズムのスケール能力を与えるように設計されている。このスケール能力はアプリケーション全体を多数のモジュールに分解し、それらをフレキシブルなIPC機構を介して所定の構造に適するように接続することにより実現される。プラットフォームのAPIは処理モジュールの以下のような接続方法を含むことができる。
・インライン。パケット解析装置はフレームワークと共に同一の実行可能なものにコンパイルされ、主要なパケット処理サイクルでその時間シェアを取る。この方法は単一プロセッサハードウェアに対して適切である。
・パケットレベル並列。例えばIPおよびTCPリアセンブラにより復号され最初に処理された後、パケットは更に解析されるため循環待ち行列を使用して別々のプロセスに対して利用される。例えば1以上(例えば32まで)の外部解析装置は単一の待ち行列に取り付けられることができる。1つの選択肢はまたそれらの間でのラウンドロビンパケット分配により幾つかの独立した待ち行列を設定することを含む。および/または
・ストリームレベル並列。TCPストリームリアセンブラは再構成されたストリームデータを循環ストリーム待ち行列に与えることができる。この待ち行列はクライアント−サーバの会話全体の内容を解析するように設計されているプログラムの役目を行う。例えば1以上(例えば32まで)の外部解析装置は単一の待ち行列に接続されることができる。また多数の待ち行列はそれらの間のラウンドロビン分配により構成されることができる。
【0039】
インラインおよび外部内容解析コンポーネントの両者は例えばメッセージベースのAPIを介して中央イベント処理コンポーネントを呼出すことによりイベントを発生できる。イベント処理コンポーネントは規則的な優先順位により別々のプロセスで作動する。これは入力待ち行列からイベントを獲得し、それらを一時的なファイル記憶装置に書込むことができる。一貫したイベント記憶装置は情報損失を最小にしてネットワークの故障をしのぐために使用されることができる。
【0040】
イベント処理コンポーネントはスニファ自体に対するサービスの否認(“DoS”)アタックの可能な影響を最小にするために設計されることができる。これはシリーズ全体を全ての情報を圧縮形態で記憶する1つの“結合された”事象に圧縮することによって一連の同一または類似の事象に応答でき、同一のイベントに対しては、結合されたイベントはイベントカウントと共に単一のイベントからの情報を含むことができる。
【0041】
イベントプロセッサにより集められた情報は例えばイベントスプーリングコンポーネントによってその目的地(例えばデータ採掘コンソールのような別々のイベント解析コンポーネント)へ送信されることができる。イベントスプーラはこれらがスプールディレクトリに書込まれるとき新しいイベントの追跡を維持できる。新しいイベントのそれぞれは暗号化され、1以上の目的地に送信されることができる。イベントスプーラは別々の低い優先順位のプロセスとして動作することができる。
【0042】
[パケット捕捉]
パケット捕捉モジュール(例えば図1参照)の1実施形態は高速度で確実なパケット捕捉および/またはギガビットが可能なネットワークスニファ用に構成されることができる。単一NICの半二重モードでは、パケット捕捉モジュールはストックハードウェア(例えばギガビットインテル(登録商標)NICを有するLinux(登録商標)/インテル(登録商標)ボックス上のlibpcap)における通常のパケット捕捉方法よりも2倍の速度アップを与える。この速度アップは例えばハードウェア中断、システム呼出し、データコピーのような時間がかかる行為を最小にし、パケット処理により多くの時間を残すことによって実現されることができる。実在のネットワークトラフィックはヘエロジーニアスである。通常のパケットサイズの分布は約80バイトおよび1500バイトで最大である傾向がある。時間におけるパケット速度の分布は非常に不均一である。適合目的地ホストとは異なって、ネットワークスニファはその必要性にしたがってパケット速度を折衝する能力をもたない。それ故、スニフしているトラフィックの適切なバッファを行うために設計され、このようにして各パケット当り寸法の定められた処理ウィンドウが与えられるように設計されることができる。
【0043】
各ハードウェアの中断は潜在的にコンテキストの切換を生じて、これは新型のインテル(登録商標)CPUでは非常に高価な動作である。中断を最小にするために、パケット捕捉モジュールはカスタム化されたインテル(登録商標)ドライバを利用して、インテル(登録商標)NICの遅延された中断モードを十分に使用することができる。システムの呼数は最新のLinux(登録商標)カーネルにより支援されるパケットソケットモードへのいわゆる“ターボ”拡張を利用することによって減少されることができる(例えばPACKET_RX_RINGソケットオプション)。
【0044】
十分な潜在性まで使用するとき、変更されたドライバ及びターボモードはNICデータバッファへ最速の可能なアクセスを行い、100%の容量でのポーリングは捕捉されたパケット当り約0.001中断/システム呼だけ(償却)を生じる。トラフィック中の瞬間的なサージに対処するため、パケット捕捉モジュールはパケットバッファに対して数メガバイトを割当てることができる。大きいバッファはまたIPデフラグメンタおよびTCPリアセンブラにより発生された不規則な遅延により生じるパケット損失を減少させることができる。
【0045】
パケット捕捉モジュールは多数のNICを使用してFD/SPANモードで動作し、十分なセッション再構成のサポートを行う。乱調モードで動作する多数のNICから来るパケットは幾つかのパケットバッファを同時にポーリングすることによりインターリーブされることができる。ポーリング戦略は付加的なコンテキスト交換またはシステム呼出しを誘起せずに、各バッファがその注意のシェアを得ることができる。
【0046】
パケット捕捉モジュールは幾つかのロード・オン・デマンドダイナミックライブラリとして構成されることができる。“汎用目的”ライブラリは随意の数の選択的なNICを処理する。1(HDモード)と2(FDモード)NIC用に最適化されたハードコード化パラメータを有するバージョンも存在する。プログラミングAPIはPCAPに似ている(機能的な違いのために十分な両立性は実際的ではない)。汎用目的のライブラリは多数のインターフェース(例えば“eth1:eth3:eth5”)を有するインターフェース初期化ストリングを受取る。
【0047】
パケット到着時間の分配用のTCP指向モデルを有する実際のトラフィックとシミュレートされたトラフィックの測定は、パケットバッファ及びピックアップに対する改良が平均20%だけパケット処理の時間スロットを増加することを示した。同一のトラフィックでは、これは0.5−1Gbpsゾーンではパケット損失比(“PLR”)で30%乃至50%の減少につながり、同じPLRカットオフ及びトラフィック飽和レベルである場合、センサが1.5倍以上のロードを処理することを可能にする。
【0048】
パケット捕捉モジュール(例えば図2参照)はLinux(登録商標)高速度ネットワーク捕捉インターフェースを使用するように構成されることができる。このインターフェースはNICドライバスペース内でリングバッファを割当て、これを直接的に受取人のプロセスにマップし、カーネルから目的地プロセスへデータをコピーするためのシステム呼出しのオーバーヘッドを除去する。リングバッファの付加的な利点はネットワークトラフィックにおけるサージとパケット処理の遅延を効率的に平滑にすることである。
【0049】
パケット捕捉モジュールはロード・オン・デマンドダイナミックライブラリの形態でC言語を使用して実行されることができる。1NIC、2NIC、および随意選択的な量のNICで使用するのに適した3つのライブラリが存在する。
【0050】
[パケット捕捉モジュールAPI]
パケット捕捉モジュールは標準的なUNIX(登録商標)ダイナミックライブラリインターフェースを使用して構成されることができる。これはロード・オン・デマンドダイナミックライブラリとしてパケット捕捉モジュールで使用されることができる。異なる数のNIC(例えば1、2、ユーザ特定)用に最適化されたパケット捕捉モジュールライブラリが幾つか存在する。パケット捕捉モジュールAPIは例えば、特別な数のNIC名称を含んでいる特別にフォーマットされたストリングを予測する初期化呼を除いて、全てのインスタンスに対して同一である。
【0051】
パケット捕捉モジュールは以下の機能をエクスポートできる。
・void*init(char*iface, char*errbuf, char*nr_blocks)
・iface:“eth1”のようなNIC名称ストリング。多数のインターフェースの場合、ifaceストリングは“eth1:eth3:eth2”のようになる。
・errbuf:呼者が与えたエラーバッファに対するポインタであり、例えば512バイト以上である。
・nr_blocks:NICドライバにより割り当てられるリクエストされた量のブロック。nr_blocksが0であるならば、デフォルト値がリクエストされる。
・void fini (void*handler)
・handler:対応するinit( )functionにより戻される値
・void stat (void*handler, pc_st*stat)
・handler:対応するinit( )functionにより戻される値
・stat:統計データ構造
・int linktype (void*handler)
・handler:対応するinit( )functionにより戻される値
・int loop (void*handler, pc_catcher_t*func, char*arg)
・handler:対応するinit( )functionにより戻される値
・func:パケットデータを受取るユーザ特定機能に対するアドレス
・arg:func( )に通過される随意選択的なアーギュメント
【0052】
[パケット捕捉モジュールの初期化]
方法はパケット捕捉ダイナミックライブラリをロードし、そのint( )functionを呼ぶことができる。この機能はNIC名称に対する入力ストリングをパーズし、発見された各NICは以下のことを行う。
・パケットソケットを生成する;
・特定されたサイズを有するリングバッファを割当てるようにNICドライブにリクエストする;
・結果的なバッファをそのメモリスペースにマップする。および/または
・バッファセグメントの最初を指向する内部バッファマーカを初期化する。
【0053】
初期化後、方法(例えば図3参照)はループ()機能を呼出す。ループ()機能は方法の寿命期間、例えば致命的なエラーが生じるまでまたは方法が終端信号を受信するまで動作する。ループ()はラウンドロビン方法でNICバッファをポールできる。各バッファの現在のセグメントはドライバ(例えば図2参照)により初期化された制御フィールドをチェックすることによりデータの準備について確認されることができる。セグメントに利用可能なデータがないならば、次のNICバッファがチェックされることができる。全てのバッファが空であるならば、ループ()は例えばポール()システム呼を使用して、方法を中断することができる。
【0054】
新しいデータが利用可能になったとき、またはタイムアウト(例えば1秒のタイムアウト)後、いずれのデータが最初に来ても、方法は再開されることができる。タイムアウトの場合、ユーザ特定機能はNULLアーギュメントで呼出されることができる。これはトラフィックがないことを監視するタスクを有するあるパケットプロセッサで有用である。ユーザ機能が呼出された後、方法はポール()を経て再度中断されることができる。利用可能なデータの場合、方法はいずれのNICバッファが現在データを有するか否かを見るためにポール()により戻された結果をチェックすることができ、バッファの最後にチェックされたセグメントに直接ジャンプでき、その後に通常のバッファポーリング手順を再開する。ポール()が1を超える準備バッファについて通報するならば、方法はセーブされたバッファインデックスから通常の手順を再開できる。
【0055】
パケット捕捉モジュールは方法が終了する理由を見つけたとき停止する。パケット捕捉APIからのfini()機能は制御ソケットを閉じることができる。UNIX(登録商標)標準プロセルの終了手順は全ての通信チャンネルを閉じ、その方法により使用された全てのメモリを再要求する。したがって、fini()を呼ぶ必要はない。
【0056】
[IPデフラグメンタ]
IPデフラグメンタ(例えば図1参照)の1実施形態はネットワークスニファの特別な要求を満たすために構成されることができる。多目的のIPデフラグメンタはトラフィックが合法でフラグメント化が稀であるとする仮定下で設計されている。パケット検査アプリケーションのベースとして作用するネットワークスニファは大きなロード下で動作し、DoSアタックが存在しても安定でなければならない。高速度および/または頑丈なパケット再構成を行うことに加えて、違法のフラグメントが到着するとすぐにそれを検出して反応することができる。パケット検査アプリケーションはその後、低反応待ち時間を含み、“標準的な”IPスタックを分解するように特別に設計されたアタックに耐えることができる。ネットワークスニファのIPデフラグメンタは次の構成可能な選択肢を与える。:即ち最小のフラグメントサイズ、パケット当り最大数のフラグメント、最大の再構成されたパケットサイズ、パケット再構成タイムアウト等を提供できる。IPデフラグメンタは任意のフラグメント順序で良好に等しく実行するように構成されている。
【0057】
デフラグメンタは低いフラグメント当りのオーバーヘッドを含み、違法および/またはランダムにオーバーラップするフラグメントによりネットワークに押し寄せるDoSアタックを処理するためにフラグメント単位(および/またはパケット単位のオーバーヘッド)に集中する。フラグメント当りのオーバーヘッドの最小化は初期化/完了化相の負担を低下させ、および/またはフラグメント間の処理を(例えば均一に)分配することにより実現されることができる。結果として、無効なフラグメントストリームはプロセス中で早期に認識され、最初の無効のフラグメントに後続する全てのフラグメントに対してほとんど時間を費やさない。初期化/完結化時間の最小化はセキュリティ装置をターゲットとする幾つかのDoSアタックで使用される非常に短いフラグメントにおいてデフラグメンタの性能にプラスの影響を与えることもできる。この改良によってNIC及びパケット捕捉ライブラリにより与えられるバッファ能力を良好に使用することができる。
【0058】
デフラグメンタは例えば1GBPSを超えるスループットを与え、例えば大きい無効のフラグメントでは19Gbpsに到達できる。無効のフラグメントでは、デフラグメンタの早期の無効フラグメントの検出は6倍の性能増加につながる。IPフラグメントの順序はIPデフラグメンタ性能に影響を与えない。
【0059】
比較のために、Snort v2.0のデフラグメンタは例えば平均してIPデフラグメンタ性能よりも3倍遅いスコアである。小さいフラグメントおよび/または無効のフラグメントにおける低スループットは大きいロードを処理し、ギガビットネットワークにおけるDoSに耐えるための全体的なパケット検査アプリケーション能力に影響するボトルネックである。
【0060】
IPデフラグメンタ(例えば図4参照)の1実施形態は正確で高速度のIPパケットデフラグメンタであるように構成されることができる。IPデフラグメンタのサブルーチンはパケット捕捉モジュールから来る各ネットワークパケット当り一度呼ばれることができる。サブルーチンはIPフラグメント属性についてパケットをチェックできる。属性が発見されたならば、パケットはフラグメントと考慮されることができ、フラグメント処理/再構成サブルーチンに送信されることができる。フラグメントはまた次のプロセッサモジュールへ送信されることもでき、SNORTRANのようなパケットプロセッサはフラグメントを含む受信された全てのパケットを走査する必要がある。適切な再構成後、再構成されたIPパケットは更に処理するように依頼されてもよい。不良であると見られるかおよび/または別々に構成された要求を満たしていないIPフラグメントは例えば警報設備を使用して報告されることができる。IPデフラグメンタは受信されたフラグメント、デフラグメントされたパケット、発生された警報等をカウントするために統計メモリプールを使用することができる。
【0061】
[IPデフラグメンタ構造パラメータ]
IPデフラグメンタは以下の構造パラメータを受入れることができる。
・mempool:これはメモリプールのサイズと、対応するハッシュテーブルのサイズを設定する。値は小、中、大、巨大である。
・最大サイズ:これは“合法に”再構成されたIPパケットの最大サイズを設定する。IPデフラグメンタは警報を発生し、再構成された長さが特定された値よりも大きいならばパケットを捨てる。デフォルト値は10KBである。
・最小サイズ:これは“合法に”再構成されたIPパケットの最小サイズを設定する。IPデフラグメンタは警報を発生し、再構成された長さが特定された値よりも小さいならばそのパケットを捨てる。デフォルト値は1000KBバイトである。および/または
・タイムアウト:これはIPパケットの再構成のためのタイムアウトを設定する。IPデフラグメンタは警報を発生し、この特定のパケットの再構成時間が特定された値を超えるならば、そのパケットを捨てる。デフォルト値は30秒である。
【0062】
[IPデフラグメンタ初期化手順]
IPデフラグメンタ初期化サブルーチンipdefrag_init()はスタートアップ期間に呼出されることができる。このサブルーチンは構造ファイルを読み、対応するハッシュテーブル(サイズは構造ファイル中で設定されることができる)と共にデフラグメンタセッション記述子のプールを割当てることができる。IPデフラグメンタはパケット処理位相期間中にダイナミックにメモリを割当てず、全てのリクエストされたリソースは初期化段中に予め割当てられることができる。性能を改良するために、割当てられたメモリは例えばLinux(登録商標)mlock()システム呼を使用することによってスワッピングから除外されることができる。mlock()を呼出した後、割当てられたメモリはbzero()呼を使用して初期化され、全ての必要なページがメモリにロードされ、そこにロックされ、それ故ページの故障がパケット処理相中に生じないことを確実にする。ipdefrag_init()はmlock()呼出しが成功することを確実にするため管理者の特権下で呼出されることができる。
【0063】
割当て後、プールからの全てのセッション記述子は逐次的に一方方向のフリー記述子チェーン(例えば図5参照)に挿入されることができる。このチェーンはパケット処理相中に割当ておよび割当て解除サブルーチンにより使用されることができる。
【0064】
IPデフラグメンタのパケット処理(例えば図8参照)の1実施形態はエントリ点、即ちip_defrag()を含んでおり、これは新しいパケットデータがパケット捕捉モジュールから来る度に呼出されることができる。ip_defrag()はパケットがIPフラグメント属性を有すること、例えばMFフラグおよび/またはフラグメントオフセットがゼロではないかをチェックする。パケットがIPフラグメントとして認識されるならば、その長さは確認され、最後のものを除く全てのIPフラグメントは8で割算することが可能なペイロード長を有する。警報は不正確な長さのフラグメントで発生され、その後このようなフラグメントは無視される。
【0065】
入来するパケットがIPフラグメントとして認識されていないならば、ip_defrag()はタイムアウトしたエレメントの記述子エイジチェーン(例えば図6参照)で最も古いエレメントをチェックし、発見されたならばそれらの割当てを解除する。割当て解除サブルーチンはデフラグメンタセッション記述子をリセットし、それをハッシュテーブルおよび記述子エイジチェーン(例えば図6参照)から除去してそれをフリー記述子チェーン(例えば図5参照)の最初に置き、フリー記述子チェーン(“FDC”)の変数を調節する。
【0066】
そうでなければ、フラグメントのIP idとそのプロトコル、ソース及び目的地アドレスは入来するフラグメントのセッション記述子にアクセスするためのハッシュ値の計算に使用されることができる。そのフラグメントに対してセッション記述子が発見されないならば、新しいセッション記述子が割当てられる。割当てサブルーチンは記述子をFDC変数(図5参照)により参照されるフリー記述子チェーンのヘッドから取り、その後FDCをチェーン中の次の記述子へ切換える。新しく割当てられた記述子の参照は以下の2つの位置に挿入されることができる。
【0067】
・計算されたハッシュ値を使用するハッシュテーブルおよび/または
・“最も若い”エントリとして、2方向の記述子エイジチェーン、変数TC_young(図6参照)を調節する。
【0068】
フリー記述子チェーンが空であるならば、統計共有プールからの割当て失敗カウンタはインクリメントされ、記述子エイジチェーンからの最も古い記述子が再使用されることができる。これは以下のことを確実にする。
【0069】
・この方法はクラッシュなしにリソース不足を処理できる。および/または
・新しいIPパケットは古いIPパケットよりも高い優先順位を有する。現代のネットワークでは30秒のIPの再構成タイムアウトは稀であり、通常は不当行為を示す。
【0070】
デフラグメンタセッション記述子(例えば図7参照)は2つの部分、即ち制御データとペイロードバッファを含むことができる。入来するIPフラグメントからのペイロードデータは対応するセッション記述子のペイロードバッファへコピーされることができる。記述子中のIPオフセットビットマスクのフラグは、いずれの再構成されたIPパケットの8バイトチャンクがコピーされるかを正確に識別するように設定されることができる。
【0071】
既にマークされているチャンクを有する任意の新しいIPフラグメントは警報を発生させる。対応するデフラグメンタ記述子は不良としてマークされる。不良記述子に属する次の各フラグメントは無視される。前述したように、不良記述子は結果として(例えばそのタイムアウトが満了するとき)割当てを解除されることができる。この方法は以下のことを可能にする。
【0072】
・不当のIPフラグメント(ティアドロップアタック等)は警報の送信後でも識別されることができる。
・各不当セッション当りただ1つの警報だけが発生される。および/または
・不当なIPフラグメントはフリー記述子チェーンでリソース不足を生じる。
【0073】
デフラグメンタセッション記述子により参照される再構成されたIPパケットは以下の条件を満たすならば完全であると考慮される。
・全てのフラグメントがコピーされる(例えばIPオフセットビットマスクにギャップがない)。
・最後のIPフラグメントが受信される。および/または
・再構成されたペイロードの結果的な長さが対応するセッションからの全てのペイロードフラグメントの合計に等しい。
【0074】
再構成されたパケットは必要ならば新しいIPおよび層4チェックサムを受信する。その後、更に処理するために残りのパイプラインに送信されることができる。
【0075】
パケット転送が完了するとき、対応するデフラグメンタセッション記述子は前述したように割当てを解除されることができる。
【0076】
[TCPリアセンブラ]
TCPリアセンブラの1実施形態(例えば図1参照)は多ギガビットデータ処理を行うことができる。これは再構成されたネットワークデータを例えば内容走査及び暗号化検出のようなモジュールに供給できる。またTCPストリーム属性を、処理された各ネットワークパケットに割当てることができ、例えば深いパケット検査モジュールによりパケットを解析することを可能にする。
【0077】
TCPリアセンブラはTCPセッションを追跡し、各オープンセッションを説明する情報のリストを維持し、および/またはセッションに属すパケットを連結して、クライアント及びサーバストリームの全体内容が内容検査の上位レベルに通過されることができる。TCPリアセンブラは多層の再構成と内容検査を行うことができる。“深い”パケット検査、全二重方式の接続の一方の側のみの処理および/または確率的検出器の機会を改善するためのデータストリーム内の随意選択的な領域の再構成のような部分的な解決策は適切ではない。
【0078】
TCPリアセンブラは実在のパケットストリームの複雑さに対処するのに十分精巧である。パケット検査装置のリアセンブラが直面する問題はTCP/IPスタックの問題とはかなり異なり、乱調モードでスニファNICにより見られるパケットは予測された順序で来るのではなく、したがって伝統的な状態図はほとんど使用されず、標準的なタイムアウトはタップ及びルータにより導入される種々の遅延のために調節される必要があり、クライアント及びサーバの内部状態を計算するための十分な情報はパケットストリームに存在しない可能性がある。
【0079】
パケットスニファのためのTCPストリームリアセンブラは例えば任意の“標準的な”TCP/IPスタックよりも良好な進歩したネットワークの厳しい環境で動作する。TCPリアセンブラはTCP SYNフラッド保護、メモリのオーバーロード保護等を含むことができる。パケットスニファ用のTCP/IPストリームリアセンブラは高速であってもよい。
【0080】
TCPリアセンブラはパケット捕捉層に結合され、それによって任意の数のNICを同時に観察し、および/または異なるネットワークストリームから採取したデータをインターリーブすることができる。パケット捕捉層は例えば全二重方式のTCPストリーム中でのクライアントとサーバデータ、および/または非対称的なルートで伝送されたパケットの確実な再構成を可能にし、各ストリームはセッション制御情報のために他のものに依存する。
【0081】
TCPリアセンブラは次のような1以上のモードで動作できる。
・セッションの追跡のみ。このモードはTCPパケットの方向(例えばクライアントからサーバまたはその逆)と正当性の追跡だけを必要とするアプリケーションに適している。SMP設定では、方向情報はパケットレベルのAPIを介して受取人のアプリケーションに利用可能にされる。
・セッション追跡および部分的なTCPストリーム再構成。クライアント−サーバの会話の初期部分は構成可能なカットオフ値により限定されるバッファ中に集められることができる。SMP設定では、再構成されたストリームはストリームレベルのAPIを介して受取人のアプリケーションに利用可能にされる。このモードは不当なパケットを含んでいるTCPセッションのアプリケーションロギング初期セグメントで構成されることができる。デフォルトカットオフ値は会話のサーバ部分に対する8KBとクライアント部分に対する8KBである。および/または
・セッション追跡および進歩したTCPストリーム再構成。クライアント−サーバの会話は予め割当てられたバッファチェーン中に集められることができる。デフォルトにより、会話毎に1600KBまで集められることができる(例えば方向当り800KB)。サイズパラメータは構成可能であり、必要なときに増加されることができる。再構成されたストリームはSMP設定で受取人のアプリケーションに利用可能にされる。長いTCPセッションで通常の“TCPシーケンススキップ”効果は観察され、不正および/またはウィンドウ外のパケットから弁別される。このモードは例えば再構成されたストリームが再度層毎に分解され/復号され、内容を解析されるアプリケーションではストリーム再構成を転送する。
【0082】
TCPリアセンブラはマルコフネットワークの簡単化された状態遷移図の回想に基づいている。各ソケット対は入来パケットのタイプ、その通し番号、最も最近の“ベース点”(例えば先のパケットまたはキー遷移に対応するパケット)に関するそのタイミングとに基づいて状態から状態で切換えることにより会話を追跡する別々の有限状態オートマトンにマップされることができる。リアセンブラは場所外のパケット(例えば応答パケット後に来るリクエストパケット)を処理しなければならないので、遷移はパケットタイプに独占的に依存しない。各状態で、自動化は会話の実際の状態が何であるかについて幾つかの“推測”を維持し、入来するパケットに基づいて“最良”のものを選択することができる。いずれの“推測”がより良好に予測しても、パケットの外観は会話の観察された状態の“最良”特性として採取され、新しい“推測”が次の行為のために形成される。
【0083】
TCPリアセンブラはハードコード化されたプラン及び遷移も含み、固定されインライン置換されたパラメータはコードの最適化を可能にする。結果的なリアセンブラは通常のトラフィックで1.5乃至2Gbps(またはその前後)の平均スループットを含むことができる。平均パケット長が80バイトであるとき、特別に準備されたSYNフラッド/DoSアタックでは250Mbpsまで下がる可能性がある。
【0084】
TCPリアセンブラは十分に飽和された1Gbpsトラフィックを処理するのに十分な高速度である。SMP構造の第2のCPUで動作する分離したパケットレベルの検査プロセスまたは1以上の別のTCPストリーム復号器/解析装置と組合わせて、プラットフォームは広範囲のギガビットが可能なネットワーク監視解決法の基礎を与えることができる。比較では、Snortストリーム4のような現在利用可能なオープンソース解決手段は汎用ハードウェアでギガビットトラフィックを維持するための詐欺およびトリックを必要とする。Snort2では、これは制限されたデフォルト設定(クライアントのみ、幾つかのよく知られたポート)と、“HTTPフロー制御”プロセッサのような人工的なフィルタを意味し、デフォルトモードのトラフィックの80%程を無視する。Snort2設定による実験によって、ストリーム4のスループットは実際のボトルネックであることが明らかになり、Snortがパケットを“予測可能”から“ランダム”に落とす方法の単なる変化においてより多くのパケットを可能にする。
【0085】
TCPリアセンブラモジュールのサブルーチン(例えば図9参照)はIPデフラグメンタから来る各ネットワークパケット当り一度呼出される。そのルーチンはパケットがTCPパケットであることを確認できる。パケットがTCPパケットであるならば、そのパケットはTCP処理/再構成のために送信される。パケットは(存在するならば)それが属すTCPセッションのアドレスによって注釈を付けられ、(構造にしたがって)更に処理するようにそのパイプラインに依頼されることができる。
【0086】
パケット及び対応するセッションは違法のTCPフラグの組合せをチェックされることができる(合法であることの規定は別々に構成されることができる)。違法のパケット及びセッションは警報設備を通して報告され、および/または構造に応じて破棄される。TCPリアセンブラはクライアント−サーバの会話データと共にTCPセッションを再構成し、例えばUNIX(登録商標)IPC共有メモリおよびセマフォ−プールを使用して、さらに処理するためにそれらを解析モジュールへ送信することができる。解析モジュールは別々のUNIX(登録商標)プロセスとして動作できる。これらはTCPセッションデータを検索するためにIPCチャンネルを使用することができる。TCPリアセンブラは再構成されたセッション、発生された警報等をカウントするために統計メモリプールも使用できる。
【0087】
[TCPリアセンブラ構造パラメータ]
TCPリアセンブラは以下の構造パラメータを受入れることができる。
【0088】
・alert:違法パケットとTCPセッションに警報を発生する。
・evasion_alert:TCPパケットが予測されるTCPウィンドウに適合しない場合に警報を発生する。
・noclient:会話のクライアント部分を再構成しない(ソケット対)。
・noserver:会話のサーバ部分を再構成しない。
・plimit:特定のクライアント−サーバ会話を再構成するために使用されるメモリバッファの最大量を設定する。
・pring:再構成されたデータを解析装置へ送信するために使用されるペイロードリングのサイズを設定する。
・mempool:TCPセッション記述子に対して使用されるメモリのプールサイズおよび対応するハッシュテーブルサイズを設定する。値は小、中、大、巨大である。
・payload:クライアントサーバの会話を再構成するために使用されるメモリバッファの総量とそれらの総寸法を設定する。セッション当りの限度はplimitパラメータにより設定されることができる。
【0089】
[TCPリアセンブラの初期化]
TCPリアセンブラの初期化サブルーチンであるtcps_init()はセットアップ中に呼出される。サブルーチンは構造ファイルを読み、以下のメモリプールを割当てるためにUNIX(登録商標)共有メモリを使用できる。
・TCPセッション記述子;
・セッション記述子プールにアクセスするためのハッシュテーブル;
・ペイロードバッファおよび/または
・TCPセッションリングバッファ
メモリ割当てサイズは構造パラメータに基づいて計算される。サイズ32のUNIX(登録商標)セマフォ−のセットも割当てられることができる。
【0090】
TCPリアセンブラはパケット処理相中にメモリをダイナミックに割当てず、全てのリクエストされたリソースは初期化段階中に予め割当てられることができる。割当てられ共有されたメモリはshmctl()システム呼のLinux(登録商標)SHM_LOCKオプションの使用によってスワッピングから除外されることができる。ロックのリクエスト後、割当てられたメモリはbzero()呼を使用して初期化され、全ての必要なページがメモリにロードされ、そこにロックされ、それ故ページの故障がパケット処理相中に生じないことを確実にする。tcp_stream_init()はshmctl()呼が成功したことを確証するため管理者の特権下で呼出されることができる。
【0091】
必要なセグメントが既に割当てられ、全てのサイズが正しいならば、tcp_stream_init()はそれらをリセットせずに既存のメモリプールに取り付けることができる。更に、モジュールは再スタートするならばメモリの割当てを解除しない。これは“ソフト再スタート”特性をサポートするために行われ、再ロードされたアプリケーションは既存のTCPセッションデータを使用し続け、丁度再ロードの瞬間にパケットを失う。
【0092】
TCPリアセンブラはメモリ(例えば大量のRAM)を必要とする。全てのリクエストされたメモリを得るため、アプリケーションは標準的なスタートアップ手順中にSHMMAXシステムを増加するためにsysctl()を利用できる。
【0093】
割当て後、TCPセッション記述子とペイロードバッファは逐次的にフリーセッションチェーンとフリーペイロードチェーンへそれぞれ挿入される(例えば図10参照)。これらのチェーンはパケット処理相中に割当ておよび割当て解除サブルーチンにより使用されることができる。
【0094】
[TCPセッション割当て及び状態遷移]
TCPセッションの全二重方式特性を反映するために、記述子はクライアント及びサーバストリームを説明する2つの同一のサブ構造を含むことができる。各ストリームで認識される状態はLISTEN、SYN_RCVD、SYN_SENT、ESTABLISHED、CLOSEDを含むことができる。両ストリームのライフサイクルはCLOSED状態で開始できる。通常のTCP/IPトラフィックでは、ストリーム遷移図(例えば図11参照)にしたがって、状態はESTABLISHEDにアップグレードされ、最終的にCLOSEDに戻る。
【0095】
ストリームの記述子フィールドISNはSYNとSYN_ACKパケットが受信されるときSEQ番号の保存に使用される。このフィールドは後にTCPペイロード再構成と付加的なTCPセッション検査に使用されることができる。
【0096】
TCPセッション記述子はそれ自身の状態フラグを有するそのストリームの遷移にしたがい、セッションの通常状態、即ちUNESTABLISHED、ESTABLISHED、CLOSEDを反映する。
【0097】
図12はセッション状態遷移図の1実施形態を示している。各セッションはUNESTABLISHED状態で開始できる。クライアントおよびサーバストリームの両者がESTABLISHEDに切換えられるとき、ESTABLISHED状態にアップグレードされる。セッションは両ストリームがCLOSED状態に切換えられるときCLOSEDであってもよい。
【0098】
各セッション状態はセッションエイジチェーンの特定の場所に対応してもよい(例えば図13参照)。セッション割当てサブルーチンは以下の行為を行う。
・記述子はbzero()を呼出すことにより初期化される。
・記述子はハッシュテーブルに位置付される。
・記述子はフリーセッションチェーンから除去される。
・記述子はUNESTABLISHEDエイジチェーンのヘッドに位置付けられ、および/または
・特有のセッションidは記述子のsidフィールドに割当てられる。
【0099】
セッション毎のアップグレードにより、セッション状態遷移図にしたがって、記述子は現在のエイジチェーンから除去され、次のチェーンのヘッドに置かれる。
【0100】
[TCPセッションの割当て解除]
TCPセッション記述子はこの特定のセッションに属す最も最近のパケットの時間を維持するetimeと呼ばれるフィールドを含むことができる。TCPリアセンブラにより受信されるそれぞのパケットでは、エイジチェーンの最後のセッションは例えばses_recycle()サブルーチンによりタイムアウトに対して試験されることができる。使用されるタイムアウトはセッション状態に依存している。
【0101】
・UNESTABLISHED:12秒
・ESTABLISHED:600秒
・CLOSED:30秒
【0102】
ses_recycle()手順は、受信されたパケット毎に割当てを解除するための古いセッションの最大数を決定するモジュール−幅RC_LVL変数を見ることもできる。この数はパケット当り2つの古いセッションから開始し、例えばパケット当り30程度のセッションで終了する(RC_LVL値に基づいてセッション数を計算するためのテーブルが存在し、ここでRC_LVL自体は1から7の範囲である)。ses_recycle()手順は限度を計算し、必要ならばRC_LVLをデクレメントし(最小値は1である)、UNESTABLISHED、CLOSED、ESTABLISHEDの順序でASC_old側(例えば図13参照)からセッションエイジチェーンへ接近する。各チェーンで、最後から古いセッションの割当てを解除し、その後、必要ならば古いセッションがなくなるまで、または限度に到達するまで逐次的に次のチェーンへ移動する。
【0103】
RC_LVLはハッシュテーブルへの新しいセッションの挿入期間中に衝突がある度に増加される。これはリアセンブラがTCPリアセンブラオーバーロード状態モードにあるとき最大値に割当てられることもできる。
【0104】
割当て解除サブルーチンはハッシュテーブルとセッションエイジチェーンからセッション記述子を除去し、これを例えばFSC_tail変数を使用してフリーセッションチェーンの最後へ転送する。割当て解除手順中にリセットされるセッションデータがない場合、このようにしてデータはその後の割当て期間中にリセットされるまで依然として非同期モジュールにより使用されることができる。
【0105】
セッションがその集められたペイロードデータを有するならば、サブルーチンはセッションアドレスとセッションidをTCPセッションリングバッファ中へ挿入し、セマフォ−アレイをリセットし、セッションデータが非同期処理で利用可能であることを示す。非同期処理モジュールは与えられたセッションidとsidフィールドに割当てられたセッションidとを比較して、データがまだ重ね書きされないことを確認し、処理を開始する。
【0106】
TCPセッション情報はまたセッションがCLOSED状態にアップグレードされるならばTCPセッションリングバッファへ挿入されることができる。提出後、ペイロードバッファはセッションから切離される。セッション記述子のフリーのフィールドはTCPリアセンブラがデータを二度提出しないようにする。
【0107】
[TCPリアセンブラオーバーロード状態の処理]
TCPリアセンブラオーバーロード状態の1実施形態は割当てリクエストを満足するために利用可能なフリーセッション記述子が存在しないときに生じる。メモリプール構造パラメータがネットワークトラフィックで不適切であるならば、またはネットワークセグメントがTCP syn−floodアタックを受けているとき、これは発生することができる。このモードに切換えるとき、TCPリアセンブラはRC_LVL変数をその最大値に設定でき、フリーセッション量が例えばセッションプール全体の10%を下回るようになるまで新しいセッションの割当てを中止する。これは既存のセッションを追跡し、それらのペイロードデータを集め続ける。
【0108】
[TCPセッション待ち行列API]
TCPセッションリングバッファとセマフォアレイは例えばUNIX(登録商標)IPC設備を使用してTCPリアセンブラ初期化相期間に割当てられることができる。バッファは許可を有する任意のプロセスに対してアクセス可能である。図14はTCPセッションアドレス、セッションid、ビットマスクとして扱われる整数値(例えば32ビット)を含んでいる各バッファセクタを示している。セマフォアレイは32のセマフォを含むことができる。
【0109】
各非同期処理モジュールはリングバッファとセマフォアレイに取り付けられるように、0と31の間の特有のID番号を特定するtcpplcl_init()サブルーチンを呼出すことができる。与えられるidはセマフォアレイの特定のセマフォおよびビットマスク中の対応するビットを参照するために他のAPI機能により使用されることができる。プロセスはその後、次に利用可能なTCPセッションを得るためにtcpplcl_next()を呼出すことができる。
【0110】
TCPリアセンブラは以下の行為を行うことにより処理するための新しいセッションを提出する。
・セッションアドレス及びセッションidをリングバッファの次のセクタに位置させ、
・このセクタのビットマスクをリセットし、および/または
・セマフォアレイをリセットする。
【0111】
クライアント側のtcpplcl_next()サブルーチンは例えばsemwait()呼出しを使用して、ID特定セマフォを待機する。バッファの準備ができたとき、セグメントづつバッファを通り、次のセクタのビットが既に設定されていることを発見するまでビットマスク中にid特定ビットを設定する。この状態はまだ有効なデータがなく、再度semwait()を呼ぶ時間であることを意味している。APIはTCPセッションおよび再構成されたペイロードデータにおける十分な情報をアプリケーションに供給する。利用可能になるとすぐに、情報は処理されることができる。
【0112】
[TCPペイロード再構成]
セッション記述子がESTABLISHED状態に切換えられる度に、クライアントなしおよびサーバなしの構造パラメータにより許容されるならば、ペイロードバッファはフリーペイロードチェーンから取られ、初期化され、クライアントおよび/またはサーバストリーム記述子へ割当てられることができる。
【0113】
特定のセッションに属すパケットの空ではないペイロードはそれぞれセッションがCLOSED状態にアップグレードされるか、例えばplimitパラメータ(例えば図15参照)により特定されるようにペイロードバッファの数が限度を超えるまで、ペイロードバッファの対応する場所にコピーされることができる。バッファ内のパケットペイロードの位置はパケットのSEQ番号、ストリームのISN、ストリームのベースフィールドの値の組合せにより決定されることができる。後者はサブルーチンにより計算されることができ、新型のTCPスタックは長いTCPセッションに対してSEQ番号をランダムに増加する傾向があり、ベースフィールドはこれらの変化を補償する。
【0114】
pl_alloc()サブルーチンは例えばplimit値までペイロードバッファをチェーンに付加するために使用される。空のフリーペイロードチェーンの場合、pl_alloc()は以下の動作を行う。
・統計プール中のペイロード故障カウンタをインクリメントし、
・完了したとして現在のペイロードチェーンをマークし、後のバウンド外のペイロードコピーを防止し、および/または
・エラーを呼者へ戻す。
【0115】
セッションがCLOSED状態に到達するとき、またはセッションタイムアウトのためにペイロードバッファがESTABLISHED状態から割当てを解除されるとき、ses_free()サブルーチンは以下のことを行う。
・TCPセッションをTCPセッションリングバッファへ提出し、
・ペイロードバッファをフリーペイロードチェーンの最後に付加し、および/または
・セッションが二度提出されないようにセッション記述子のフリーにされたフィールドを設定する。
【0116】
ses_free()サブルーチンはペイロードおよび/またはセッションデータを消去せず、単にバッファを利用可能としてマークし、バッファはTCPセッション待ち行列APIを介して非同期アプリケーションにより処理される。
【0117】
[パケット処理サイクルの概要]
TCPリアセンブラのエントリ点サブルーチンtcps()は新しいパケットデータがIPデフラグメンタから来る度に呼出されることができる。最初に、tcps()はses_recycle()を呼び(TCPセッション割当て解除セクションを参照)、データが本当にTCPパケットであるかをチェックできる(例えば図16参照)。入来するパケットがTCPパケットとして認識されないならば、tcps()は終了する。
【0118】
TCPパケットはその後、多数の違法のTCPフラグの組合せに対して証明される(例えばSYNとFINフラグの両者の存在)。警報構成フラグが設定されているならば、警報が無効のTCPパケットで発生され、その後、このようなパケットは無視される。
【0119】
他方、警報構成フラグが設定されていないならば、パケットソースと目的地アドレスとポート(ソケット対情報)はハッシュ値を計算し、パケットの対応するセッション記述子を識別するために使用されることができる。パケット解析相はフラグ及びパケットベアと、セッション記述子が発見されたか否かに基づいて後続する。この相は違法パケットを識別しようとし、例えばパケットがSYNフラグを含み、セッション記述子が既に割当てられているならば、解析はストリームのISNとパケットのSEQ番号との比較と、対応するタイムアウトの試験を含むことができる。この特定の解析の結果として、このパケットは以下のように認識されることができる。
・TCP再送信試行;
・新しいTCPセッションの開始;および/または
・TCPセッションスプーフ/ハイジャックの試行
【0120】
この解析によって決定された違法のTCPパケットは無視および/または報告される。
【0121】
この点において、全ての違法パケットは濾波されることができる。セッション/パケットの組合せは次に解析されることができる。セッション状態及びパケットフラグ/ペイロードにしたがって、1以上の以下の行為が行われる。
・パケットのペイロードはペイロードバッファ中に記憶される。
・新しいセッションが割当てられる。
・ストリームの状態がアップグレードされる。
・セッションの状態がアップグレードされる。
・セッションはTCPセッションリングバッファに提出される。および/または
・ストリームのベース値はストリームのSEQ値の突然のジャンプを補償するために増加される。
【0122】
tcps()の最後で、パケットはそれが属すTCPセッションのアドレスを注釈として付けられ、さらに処理するため残りのパイプラインへ送られる。
【0123】
[TCPリアセンブラのアンロード]
TCPリアセンブラは通常のエグジット期間中にatexit()設備を使用して共有されたリソースの割当てを解除できる。アプリケーションが再構成サイクル中に再構成リクエストを例えばプロセス管理者から受信しているならば、共有されたメモリとセマフォアレイはそのままにされる。モジュールはその再構成ファイルを再度読み、全ての他のモジュールが通常の動作を継続する。再ロード動作は迅速であり、再ロードされたTCPリアセンブラモジュールはそれらを再設定せずに、共有されたリソースへ再度取り付けられ、その任務を続ける。
【0124】
[ペイロード復号器]
プラットフォームの1実施形態は実時間ネットワークトラフィック(例えば100Mbpsおよび/またはそれより高いか低い)で動作し、例えば共通の圧縮、集合、ファイルフォーマット化、符号化スキーマを“剥離する”内容復号の多数の層によりサポートされ、処理に適切な形態で実際の内容を抽出する。ペイロード復号器の1実施形態(例えば図1参照)は既知のデータフォーマットのペイロードを検査し、それをそれぞれの復号器の支援により復号し、復号された内容に対して同一の手順を反復する(例えば図17参照)動作を繰返し行う。ペイロード復号器は例えば種々のマイクロソフトオフィスフォーマット、eメール、HTML/XML、圧縮されたデータ、HTTP、その他の普及しているTCPベースのプロトコル等のための複数の復号器(例えば約14個の復号器)を含んでいる。ペイロード復号器はこれがその入力データをさらに復号できなくなるか、またはそのメモリ限度に到達するとき停止する。いずれにせよ、復号されたデータチャンクは検査のために例えば1以上の内容スキャナ(例えばキーワードおよび/またはMCPスキャナ)に送信される。
【0125】
ペイロード復号器は1以上の復号器を含むことができる。
【0126】
・SMTPメールセッション;
・複数パートのMIMEエンベロープ;
・引用−印刷可能なメール添付物;
・ベース64メール添付物;
・8ビット二進メール添付物;
・ZIPアーカイブ;
・GZipアーカイブ;
・TARアーカイブ;
・マイクロソフトワード文書;
・マイクロソフトエクセル文書;
・マイクロソフトパワーポイント文書;
・ポストスクリプト文書;
・XML文書;および/または
・HTML文書
【0127】
普通の平文および/または二進文書は直接走査され、任意の特殊化された復号をもたない。付加的な復号器は例えば復号器APIの支援によりシステムにプラグされることができる。
【0128】
[初期化]
内容復号器モジュールの初期化相はクライアントとして登録されるようにTCPセッションリアセンブラAPIを呼ぶことにより開始できる。その後、メモリは統計情報を記録するために割当てられ、ローカルメモリ管理機構は初期化されることができる。個々の復号器は利用可能な復号器についての情報を集収するinit_decoder()手順を呼出すことにより登録され、これを共有されるメモリの全般的な統計情報領域にコピーできる。そのinit()方法を呼出すことにより、各復号器を初期化することもでき、復号器がそれらの固有のデータを初期化させることを可能にする。
【0129】
[メモリの割当て]
復号器は例えばdq_alloc()手順を呼出すことにより各復号されたコンポーネントデータブロックに対して新しいデータバッファを割当てることができる。幾つかの復号器(例えばマイクロソフトワード)は復号されたデータに対して単一のデータブロックを割当て、他(例えばZIP)はコンポーネント当り1ブロックにより多数のブロックを割当てることができる。dq_alloc()を呼出すと、オリジナルペイロード内の復号されたバッファの位置を特有に識別する階層的“パス”を組立てるために使用される位置情報と共に、リクエストされたメモリサイズを伝送する。復号パスは識別の成功を報告し、統計及び復号の進行情報を与えるために使用されることができる。
【0130】
dq_alloc()の呼者によりリクエストされるメモリは物理的理由または人工的な制限の結果として利用可能ではない可能性がある。各モジュールはその自分のメモリキャップを有し、それによってそれぞれのプロセスはその限度内にとどまり、全体的なシステム性能は入来データが常に正しいという仮定にしたがわない。ZIPのような幾つかの復号器は復号されたメモリブロックに対して評価されたサイズだけを提供でき、1以上の復号器はより小さいブロックを受ける準備がされており、したがって部分的な復号に限定される。全ての復号器は部分的な復号をサポートするために書込まれることができる。
【0131】
[フォーマット認識及び復号]
復号器は共通の復号器API復号()方法によって呼出される。各復号器はそれ自身のフォーマット認識を行い、不一致または内部復号の失敗の場合には“認識されないフォーマット”結果を戻す。復号器がデータブロックをdq_alloc()を介して割当てるならば、“認識されない”結果を戻す前に、dq_clear()を介してそれらをフリーにすることができる。復号器はメモリ限定による部分的な結果を発生し、これは失敗として考慮されない。バッファが復号されるとすぐに、そのメモリはフリーにされ、ループから排除される(1以上の復号されたバッファにより効率的に置換される)。
【0132】
メモリ制限に加えて、内容復号器は復号待ち行列の長さに別々の限度を設定し、復号“ツリー”のサイズと、結果として全てのそのエレメントを復号するのに必要な時間を限定する(例えば図18参照)。高ロード設定では、これによって与えられたペイロードのそれぞれのコンポーネントを復号する必要性と、次のペイロードが利用可能になる前に復号を終了する必要性とを平衡させることができる。待ち行列の長さのパラメータのデフォルト値(DQ_MAX_LEN)は(約)100である。
【0133】
復号の待ち行列が制限されるという事実は復号ツリーの横断戦略に影響を与える。内容復号器は“深さ1”戦略を使用し、例えば多数のブロックを不完全に復号する代わりに、少なくとも幾つかのブロックを“最後まで”復号する嗜好を与える。
【0134】
[走査]
適切な復号器が(さらに)発見されないか、または人工的な限定(例えば復号ツリーの“リーフ”)のために、もはや復号が可能ではないデータバッファは例えばキーワードおよびMCPスキャナのような検査のために送信されることができる。各ペイロードは“生”および/または復号された形態で検査されることができる。
【0135】
[内容の走査]
内容走査は情報(例えば機密情報および知的財産)の無許可の転送を阻止することを目的としている。
【0136】
[キーワードスキャナ]
キーワード走査は簡単で比較的効率的なユーザに便利な文書分類方法である。これはテキストにおいて文字が一致する1組のワードに基づいている。走査に使用される辞書は通信において不適切なワード、機密プロジェクトのコードワード、製品またはプロセスおよび/またはそれらの使用のコンテキストとは独立して容疑が生じる他のワードを含んでいる可能性がある。幾つかのコンテキスト情報は多ワードのフレーズの使用により考慮されることができるが、大きいテキストに対しては、これは組合せによる爆発につながる。
【0137】
自動キーワード発見(AKD)ツールの1実施形態はキーワードおよび/またはキーフレーズを発見することができ、キーフレーズの長さのしきい値はパラメータとして入力されることができる。AKDツールはファイルのリストを受取り、テキスト情報を抽出し、“正”の訓練セット(例えば“保護された”クラスに属す文書)のためのワードおよび/またはフレーズ頻度辞書を準備する。これらの辞書は標準辞書および/または負の訓練セット(例えば“他”文書を表す)から準備された辞書に対して比較される。標準的なベイズの分類手順(例えばCheeseman, P., Self, M., Kelly, J., Taylor, W., Freeman, D.とStutz, J.(1988年)のべイズ分類を参照。人工知能における第7回全国会議、ミネソタ州セントポール、607乃至611頁収録)は正のセットの頻度が負のセットの頻度とは非常に異なるキーワードおよび/またはキーフレーズに重みを割当てるために使用される。結局、正規化された重みは1以上のキーワードおよび/またはキーフレーズに割当てられ、これらは分類され、ツールは例えばトップ100(またはその前後)を手作業の検査のために戻す。
【0138】
加重されたキーワードおよび/またはキーフレーズのリストは、キーワードの存在についてペイロード復号器から出てくるデータの各チャンクを走査するキーワードスキャナコンポーネントにロードされることができる。突合せはセット状ストリング突合せアルゴリズム(例えばSetwise Boyer-Moore-Horspool)に基づいてシングルパス突合せ装置により実行されることができる(例えばG.A. Stephen、String Search-Technical Report TR-92-gas-0.1、ノースウェルズ大学、1992年10月参照)。一致が存在するならば、スコアリング機能により評価され、予め設定されたスコアしきい値に到達するならば、警報が発生されることができる。
【0139】
[AKDツールデータフロー]
AKDツールは例えば所有文書および/またはデータベースのようなカスタマ特定データに基づいて、キーワードおよびキーワードフレーズの両者を発見できる。AKDは伝統的な“ナイーブな”ベイズ学習アルゴリズムに基づいている。このアルゴリズムはむしろ簡単であり、その仮定は実用においてほとんど常に侵害されるが、最近の研究により、ナイーブなベイズ学習は実用において非常に効率的であり、体系的に改良が困難であることが示された。確率的な文書分類はアルゴリズムのアプリケーション領域の1つである。
【0140】
アルゴリズムは正と負のデータ(例えば文書)の両者の代表的な訓練セットを使用できる(例えば図19参照)。セットはワード/フレーズ頻度辞書の構成に使用されることができる。正と負のセットの辞書がその後比較され、ワード/フレーズはベイズの確率評価値を割当てられる。高い評価値を有するワード/フレーズは正または負の訓練サンプルのいずれか一方と緊密に関連するので、サンプル文書のタイプの推定に使用されることができる。組合わされた辞書からのワード/フレーズは結果的な加重により分類され、アルゴリズムは例えばその上位100を戻すことができる。
【0141】
負のセットは大きく、例えば負のセットの局部的に計算された頻度辞書とビジネス書状の公共頻度辞書とを組合わせている。特別なアプリケーション領域では、ドメイン特定頻度辞書は負の訓練セットを表すために使用されることができる。
【0142】
正の訓練セットは正の頻度辞書の計算に使用されることができる。辞書のサイズは変化するので、両辞書の頻度カウントは3つの最もよく使用される英語のワード(例えば“the”、“of”、“and”)のそれぞれのカウントを使用して正規化されることができる。非英語のアプリケーション領域は特殊化された正規化ルールを使用できる(例えばワードカウント全体により正規化される)。
【0143】
キーワードを発生する基本ワード頻度ベースのパスに加えて、AKDはキーフレーズを得ることを可能にする。キーフレーズは正確性が高いのでキーワードよりも有効であるが、直接的な組合せ列挙が非常に低い実用値の大きな辞書で生じる。AKDは例えばデータベース記録のような混合されたテキスト/二進ファイルに適している非組合せ方法を使用できる。これはUnix(登録商標)“ストリング”ユーティリィにより与えられるものと等価のテキストストリング抽出アルゴリズムに基づいている。データファイルはデータストリームが中断される(例えば二進からテキストまたはその逆に切換える)場所を決定するためにマークされ、2つの中断間の短いテキストストリングが“キーフレーズ”として採取される。これらのキーフレーズはその後、負の訓練セット中で識別され、それぞれのキーフレーズの頻度辞書が生成されることができる。これらの辞書は前述のキーワード辞書と類似の方法で使用されることができる。
【0144】
最も有効なキーワード/キーフレーズが識別され、それらの加重が計算されるとき、最後の作業は最大の頻度を計算することである。最大の頻度は、通常偽の陽性の識別を生じさせる多数のキーワード一致に対するキーワードスキャナの感度を制限するために使用されることができる。
【0145】
最大の頻度は同一の正規化された頻度辞書を使用して計算されることができる。スキャナの感度を低下するため、1000バイトの訓練データ当りの平均一致数の2倍が“有効”キーワード/キーフレーズ一致の限度として取られることができる。この限度を超える全ての一致は無視されることができる(例えばこれらは最終スコアに貢献しない)。
【0146】
[キーワードスキャナデータフロー]
キーワードスキャナはセット状のストリング突合せアルゴリズムに基づいている。例えばキーワードスキャナは有限状態オートマトン(FSA)を使用するBoyer-Moore-Horspoolアルゴリズムのセット状拡張を使用することができる。入力ストリングのセット(例えばキーワードおよび/またはキーフレーズ)はLexスキャナツールと同じ技術を使用してFSAに変えられることができる。さらに、Boyer-Moore-Horspoolスキップテーブルはサブリニア検索時間を実現するために付加されることができる。メモリの要求は大きくなるが、アルゴリズムの性能はキーワード/キーフレーズの数と共に大きくならない。また、アルゴリズムの性能はセット中の最短のストリングの長さにしたがう(例えば本当に短いストリングは性能を線状にし、アルゴリズムの速度を低下させる)。
【0147】
突合せは“並列に”行われ、アルゴリズムがデータにわたって1回のパスしか必要としないことを意味している(例えば図20参照)。全ての一致は別々の一致カウントアレイにおいてフラグされることができる。アレイはキーワード/キーフレーズ当り1つのカウンタを含むことができる。
【0148】
最初に、全てのカウンタはゼロに設定される。各一致の度に、それぞれのカウンタはインクリメントされる。スキャナがデータブロックの最後に到達するとき、カウンタアレイはAKDツールにより行われる先行プロファイル化にしたがって、頻度の一致の重要度を減少するように正規化されることができる。このツールは例えば所有文書及びデータベースのようなカスタマ特定データに基づいてキーワードとキーフレーズの両者を発見することができる。発見された各キーワード/キーフレーズは2つの関連する番号、即ち各一致に対するスコアと、入力データの1000バイト当りの最大の一致数と共に戻されることができる。両者の数値は訓練データに基づいて計算され、これらはキーワードとその予測される頻度の相対的な重要度を反映している。
【0149】
正規化は各一致カウンタを、与えられたキーワード/キーフレーズの最大の一致カウント以下に制限できる(例えば入力バッファのサイズに調節される)。その後、カウンタは対応する一致スコアと乗算され、合計され、正規化されて、1000バイト当りの出力スコアを得ることができる。
【0150】
文書の一致を評価するため、キーワードスキャナは出力スコアを構成可能なしきい値と比較できる。
【0151】
[初期化]
モジュールはキーワード/キーフレーズデータを、−kパラメータを介して特定された外部ファイルから例えばloadkwv()ルーチンを介して、押出し防止モジュールへロードすることにより初期化されることができる。コマンドラインは共通の構成ファイルに記憶され、キーワードファイルはユーザのサンプルデータファイルからAKDツールにより生成されることができる。各キーワードファイルは識別情報(例えば訓練セット名)、1以上の警報情報記録(例えば警報ID、説明、スコアしきい値)、キーワードのリスト/相対スコア/一致限度の3倍を含むことができる。新しいメモリブロックが各キーワードファイルに割当てられることができ、ロードされたキーワードファイルはチェーン中に維持され、対応するスコアの計算に使用されることができる。
【0152】
キーワードファイルのロード後、モジュールは内容復号器から来るデータを受取るためにそれ自体を登録する。また、警報を発生できるように、プラットフォームの警報設備との接続を設定してもよい。
【0153】
最後の初期化動作はキーワードファイルでFSAを構築することである。キーワードの各セットは例えばAho−Corasick接頭ツリー整合装置に基づいて有限状態オートマトンを計算するために使用される。オートマトンは例えば接頭が多数のパターンで開始しても、それぞれのプレフィックスが1つのみの状態により表されるような構造にされている。Aho−CorasickスタイルのFSAには同一のストリングセットから計算されたBoyer-Moore-Horspoolスキップテーブルが付随する。FSAは対応するスキップテーブルと共に1回のパスで全てのキーワードの一致についてデータを走査できる。使用されるアルゴリズムはセット状のBoyer-Moore-Horspoolストリング検索であってもよい。
【0154】
各入来するデータブロックに対しては、ロードされたキーワードのファイル毎に1スコアで、一致スコアのリストが計算される。キーワードファイルのスコアを計算するため、fsa_search()手順が対応するFSAと、パラメータとしてのスキップテーブルにより呼出される。fsa_search()手順はカウンタアレイの一致カウンタをインクリメントすることにより全てのキーワードの一致を登録できる。アレイはキーワード/キーフレーズ当り1つのカウンタを含むことができ、カウンタは最初にゼロに設定され、各一致でインクリメントされることができる。
【0155】
検索が終了するとき、カウンタは与えられたキーワードセットのデータブロックのスコアの計算に使用されることができる。スコアを計算するために、各カウンタはそれぞれの一致限度に対してチェックされ、キーワードファイルからロードされることができる。カウンタがその一致限度よりも大きいならば、その値は一致限度に設定される。全てのカウンタがこのようにしてクリップされるとき、これらはそれぞれの相対スコア値により乗算され、キーワードファイルからロードされることができる。相対スコアにより乗算されたカウンタは加算され、その結果は例えば1000バイトのブロックサイズまで正規化され、与えられたキーワードファイルにおける最終スコアを生成する。
【0156】
最終スコアはしきい値と比較され、キーワードファイルからロードされた対応する警報情報記録(AIR)リストに記憶されることができる。与えられたスコア以下の最大のしきい値は警報が発生されるものを限定し、警報の発生に必要な全ての情報は対応するAIRに記憶されることができる。
【0157】
[多次元内容プロファイル化(MCP)スキャナ]
キーワード走査のように、MCPは文書および/またはデータファイルの特性(例えば基本特性)を捕捉でき、文書の寿命において共通の分散、即ち編集、幾つかの独立するバージョンへの分岐、類似の文書のセット等を許容する。MCPはキーワード走査および/またはデジタル指紋の能力を組合わせることができる(Tomas Sander(編集者)、Security and Privacy in Digital Rights Management、ACM CCS-8 Workshop DRM 2001、米国ペンシルベニア州フィラデルフィアで2001年11月5日に開催)。
【0158】
内容プロファイル化はある文書クラスに属する文書の識別をターゲットとする技術の組合せである。同じクラスの文書は例えばプロファイル化と呼ばれる先行プロセス過程で決定される類似の統計特性を共有する。自動内容プロファイラ(ACP)ツールは必要ならば負の訓練セット(そのクラスに類似するが属さない文書)を伴ってそのクラス(正の訓練セット)に属す文書の代表的なセットを受取ることができる。クラスのプロファイル化プロセスは一度だけ行われ、統計特性の結果的なセット(例えばプロファイル)はクラスのメンバーシップについて検査するために使用される。
【0159】
プロファイルの品質はプロファイル化アルゴリズムにおけるクラスの全ての文書に共通の特性を捕捉する能力にしたがっており、これは異なる特性の多数の関連しない特徴の使用によって改良されることができる。各特徴は次元(例えば1つの文書から別の文書で変化する量的尺度)を規定できる。内容プロファイル化コンポーネントは例えばネットワークを通る全てのデータに対して実時間で計算される400の異なる特徴よりも多い(または少ない)特徴を使用できる。各文書(例えばペイロード復号器により戻されるデータチャンク)は多次元スペース中の単一点にマップされ、スペース中のその位置はクラスのメンバーシップの計算に使用され(2以上のクラスのメンバーシップが識別されることができる)、警報および/または応答手段をトリガーすることができる。
【0160】
内容プロファイル化方法は多年にわたり、暗号解析により使用されてきた。しかし依然として貴重で簡単な統計特性は高レベルの統計方法で補足されるとき最良に動作し、ワード及び文章のようなより大きいエレメントで動作する。
【0161】
多次元プロファイラは約200の低レベルの統計尺度と100程度の高レベルの統計的尺度の組合せにより動作できる。高レベルの統計特性はあるビジネスに関連する問題領域(例えば“個人”の健康記録、銀行の口座情報、顧客リスト、クレジットカード情報、郵便アドレス、eメール、個人の経歴、SSN等に関する機密の個人情報の保護)を念頭において設計されており、新しいドメイン特定次元を付加することにより他の領域を新しいターゲットとすることができる。
【0162】
所定のエレメントの全体的な使用を要約している個々の高レベルおよび低レベル特性に加えて、プロファイラは文書の空間的構造に専用の100を超える次元を有し、これにはエレメントの相互の同時発生および整列が含まれている。1例として、これは郵便アドレスでは、州の名称とジップコードが非常に類似の頻度を有し、ジップコードがすぐその後に続く州の名称と相互にインターリーブすることを捕捉できる。空間的解析は文書の全体構造の捕捉に使用され、ターゲットクラスに類似の使用パターンを有する索引、語彙目録、その他のタイプの文書は容易にいじることができない。
【0163】
ACPツールが訓練文書セットをプロファイルするとき、そのセット中の文書と同数の点を多次元属性スペースに発生できる。各点は個々の文書(または文書のセクション)を表し、(クラス中では)“+”としてマークされ、(クラス外では)“−”とマークを付される。最終的な学習行為は“+”と“−”点を最小のオーバーラップによって分離する属性スペースの最も簡単な区分を計算することができる。この区分は有限状態オートマトン(“FSA”)に基づいてデータ駆動アルゴリズムに自動的に“デジタル化”されることができ、その有限状態オートマトンは高速のシングルパス走査エンジンとして動作する。
【0164】
プロファイラにより発生されるFSAはペイロード復号器から来るデータの各チャンクを点検するMCPスキャナコンポーネント中へロードされることができる。“保護される”文書のクラス中のメンバーシップの確率尺度は各データチャンクに対して計算されることができる。設定されたしきい値に到達するならば、警報が発生されることができる。
【0165】
MCPが発生する警報は文書タイプに応じて、例えば相対的加重に基づいてキーワードスキャナにより発生される警報と組合わされることができる。内容走査方法の組合せにより保護されるデータは確実に認識される。
【0166】
MCPモジュールはファースト・イン・クラスの流出防止システムで動作できる。防止モードはデータが完全に転送される前に、実時間の解析および不当セッションの終了を命令する。APIは随意選択的(構成可能な)数の接続点を可能にし、各点は主パケット捕捉サイクルと並列に動作する32までの内容走査モジュールに、再構成されたセッションデータに対する基準値を送信できる。各接続点にはラウンドロビンベースで再構成されたセッションデータへのリンクが与えられることができる。接続点自体は例えばFIFO能力を自動オーバーフロー保護と組合わせるリングバッファとして構成されることができる。これは最後の128セッションを保持し、独立的にバッファ中の各モジュール位置を追跡し、トラフィック中のスパイクと内容解析モジュール処理速度の差を効率的に平滑にする。
【0167】
経験によって、小中企業で一般的なネットワークトラフィックでは、高速度のNICを有する2プロセッサインテル(登録商標)ベースのハードウェアの使用で十分であることが示されている。大企業または密集ネットワークラインは4プロセッササーバでより多くの処理パワーを使用できる。
【0168】
[ACPツールデータフロー]
自動内容プロファイラ(ACP)ツールは必要ならば負の訓練セット(そのクラスに類似するが属さない文書)を伴ってそのクラス(正の訓練セット)に属す文書の代表的なセットを受取ることができる。クラスのプロファイル化プロセスは一度だけ行われ、統計特性の結果的なセット(例えばプロファイル)はMCPスキャナにより使用されることができる。
【0169】
ACPツールは3つの相(図21参照)で動作できる。第1に、正及び負の訓練セットの全ての文書はMCPスキャナにより動作時間で使用される同一のアルゴリズムによって測定されることができる。このアルゴリズムは多次元スペースの1点として各文書を表す(統計属性当り1次元、全体で(約)420次元)。スコア決定は既存のプロファイルを必要とするので、走査アルゴリズムの最終的なスコア決定動作は使用されない。第1の相の最後に、例えば420次元のスペース中に2セットの点が存在し、それらのセットは正と負の訓練セットに対応していてもよい。
【0170】
結果的なセットは異なる次元に沿って種々の程度にオーバーラップできる。第2の相の仕事は正と負のセットを表す点を効率的に分離するために超平面の実際のセットを発見することである(図22参照)。アルゴリズムは本来、統計的であるので、確率基準が分離品質を決定するために使用されることができる。超平面位置の関数としての不適切な分類のベイズの条件的確率は簡単な下降アルゴリズムにより最小にされる。スキャナの作動時間性能を改良するために、軸の1つに直交する超平面だけを使用できる(単一の次元に対する投影により動作できる)。この方法は実行が簡単なプロファイルを生成し、その品質は考慮される次元の数(例えば多数)のため、ほとんどの場合に十分である。与えられた次元の最小の有効な分離品質が得られないならば、その次元は無視される。分離超平面の組合わされたセットの品質全体もベイズの統計基準により評価されることができる。
【0171】
超平面のセットが計算されるとき、最終的な動作はそれをスキャナにロードされることのできるフォーマット(例えばプロファイル)に変換することである。MCPスキャナはマシン(例えば正規化された次元における約20の簡単な算術的演算を実行できる仮想マシン(“VM”))の支援によりプロファイルを解釈できる。ハードコード化されたパラメータ化されたスコアの計算機の代りにVMを使用することによって、分離表面の実行可能な表示においていくらかのフレキシブル性が可能であり、これは直交しない超平面またはハンドコード化されたプロファイルで、そのままの状態(as−is)で使用されることができる(プロファイルは手作業で編集されることのできる読取り可能なASCII表示を有することができる)。
【0172】
結果的なプロファイルは初期化時にMCPスキャナにロードされることができる。MCPスキャナは多数のプロファイルをサポートでき、各データブロックに対して測定アルゴリズムは一度作動でき、スコア計算アルゴリズムはロードされるプロファイル数と同じ回数だけ動作できる。
【0173】
最大の頻度は同一の正規化された頻度辞書を使用して計算されることができる。スキャナの感度を低下させるために、1000バイトの訓練データ当りの平均一致数×2が“有効”キーワード/キーフレーズ一致の限度として採用されることができる。この限度を超える全ての一致は無視されてもよい(例えばこれらは最終スコアに貢献しない)。
【0174】
[MCPスキャナデータフロー]
MCPスキャナは有限状態オートマトン(FSA)に基づいている。FSAは各状態を表すコードフラグメントのセットおよび状態から状態への転送の制御を行うジャンプのセットとして符号化される(例えばレベル1状態を示し、計算を追跡する、低レベル特性([例えば文字及び数字のカウンタ]に関する図25を参照する)。(付加的な状態は高レベル特性の計算を可能にするためにエキストラ状態変数に記憶されることができる)。FSAは初期状態で開始し、入力ストリームが空になるときに停止する。状態を表す各フラグメントは入力ストリームから抽出される次のデータバイト/符号の値に応じて、1組のアクションを符号化する。MCPのFSAはハードコード化され、これは例えば並列に動作する実行カウンタの数を計算するアルゴリズムを実行できる。MCPは(約)500の実行カウンタを使用することができ、各状態は入力バイトに基づいて、それらのいくつかを更新できる。異なる意味を有する以下の多数のMCPカウンタが存在する。
・文字カウンタ:あるクラスの文字数
・文字位置カウンタ:あるクラスの文字の最後の位置
・文字距離カウンタ:あるクラスの文字間の距離の合計
・数値カウンタ:10進数の実行値(SSN/CCN/...)
・ストリング値カウンタ:ストリングの実行値(例えば上位レベルのドメイン名)
・特徴カウンタ:異なるタイプの高レベル“特徴”の数
・特徴位置カウンタ:高レベル特徴の最後の位置
・特徴距離カウンタ:ある特徴間の距離の合計
【0175】
MCPは順番にカウンタを更新し(図23参照)、特徴は現在のFSA状態、文字カウンタの値、数字/ストリング値カウンタの内容に基づいて計算されることができる。各特徴はこれを予め定められた特徴のハッシュテーブルの検索(これは2文字の州略称、ZIPコード、上位レベルのドメイン名、eメールアドレスにより動作する)および/または専用の検査アルゴリズム(SSNまたはCCNに対するチェックサムまたは範囲)により検査されることができる。SSNのような特徴が計算されるとき、アルゴリズムはそれぞれの高レベルのカウンタを更新できる。2層構造は入力データの多数の特徴の効率的なワンパス“並列”計算を可能にする。
【0176】
全てのデータが処理されるとき、カウンタは出力次元の値の計算:すなわち入力データの比較的独立した特徴に使用されることができる。各次元は1以上のカウンタの値に基づいている。次元はカウンタ値の正規化により計算され、正規化は以下の動作を含むことができる。
・バイトの総数によりカウンタを分割し、
・相対的な“デルタ”尺度を得るために相互にカウンタを減算し、
・相対的な“ファクタ”尺度を得るため相互によりカウンタを割算し、
・得られた尺度を減算及び割算する。
【0177】
MCPのFSAはドメイン特定次元(例えばカスタマ/クライアント情報)方向に調節されることができるが、特定のカスタマに特定されない。MCPのFSAは複数(例えば420)の出力次元を計算できる。
【0178】
最後の動作は出力スコアの計算である(例えば図24参照)。この動作はカスタマデータに基づいて統計プロファイルを構築する別々のMCPプロファイル化ツールにより処理されるデータを使用することができる。プロファイルは多次元(例えば420次元)スペースを2つのサブスペースに分割する多次元表面であり、そのサブスペースの一方はターゲット文書(識別される必要のあるデータ)のセットに対応する。MCPはそれぞれスペースを2つのサブスペースに切断する超平面のセットとして分割表面を表し、サブスペースの一方はターゲットサブスペースを含んでいる。
【0179】
ターゲットサブペースのメンバーシップの計算は各超平面に対して一連の計算を使用することができ、問題の点が全ての超平面の“右”側にあるならば、これはターゲットサブスペースに属する。出力スコアは与えられた点と全ての超平面との間の距離の和として計算されることができる(超平面の“誤った”側は負の距離として扱われる)。スコアはACPツールにより“プログラムされる”簡単なバーチャルマシン(MCPスコアVM、以下の表1を参照)により計算されることができる。正のスコアは適切なサブスペースメンバーシップを保証せず、負のスコアは非メンバーシップを保証する。MCPプロファイル化ツールにより計算される多次元表面は丁度真の文書メンバーシップの近似であるので、ターゲットサブスペースの適切なメンバーシップは必要条件ではない。文書のメンバーシップを評価するために、MCPスキャナは出力スコアを構成可能なしきい値と比較することができる。
【0180】
[構成の詳細]
モジュールはプロファイルデータを、例えば−fパラメータを介して特定された外部ファイルからloadfpv()ルーチンを介して、流出防止モジュールへロードすることにより初期化されることができる。コマンドラインは共通の構成ファイルに記憶され、プロファイルファイルはユーザのサンプルデータファイルからACPツールにより生成されることができる。各プロファイルファイルは識別情報(プロファイル名)、1以上の警報情報記録(警報ID,説明、スコアしきい値)、MCPスコアVM指令のリストを含むことができる。新しいメモリブロックが各プロファイルに対して割当てられることができ、ロードされたプロファイルはチェーン中に維持され、対応するスコアの計算に使用されることができる。
【0181】
プロファイルのロード後、モジュールは内容復号器から来るデータを受取るためそれ自体を登録できる。また、警報を発生できるように、プラットフォームの警報設備との接続を設定してもよい。
【0182】
各入来するデータブロックに対しては、MCPスキャナは出力次元のセットを計算できる。出力次元は実行カウンタのアレイから計算されることができる。このアレイは複数(例えば8)のサブディビジョンを含むことができる。
1.大文字のカウンタ(UCディビジョン)
2.小文字のカウンタ(LCディビジョン)
3.ジップコードカウンタ(ZIPディビジョン)
4.州略称カウンタ(STEディビジョン)
5.Eメールアドレスカウンタ(ATディビジョン)
6.上位レベルドメイン名カウンタ(TLDディビジョン)
7.クレジットカード番号カウンタ(CCNディビジョン)
8.社会保険番号カウンタ(SSNディビジョン)
各サブディビジョンは60(またはその前後)のカウンタを含み、値、位置および/または距離を追跡する。全てのカウンタは特定化されたものを除いて32ビットの整数であり、SSNとCCNの追跡に使用される(例えば64ビットの整数は長い番号で使用されることができる)。高レベルの値は特定化された検査アルゴリズムにより検査され、SSNとCCNを除く全ての分割では、検査部はbsearch()ルーチンを介して合法値の予め分類されたアレイにおいて集収された情報を検索することを含んでいる。SSNとCCNでは、特定化された検査コードは番号が許容された範囲内であり、不可能なディジットを含まず、チェックサム試験にパスすることを確認できる。
【0183】
低及び高レベルのエレメントの相対的な位置の計算は距離カウンタに基づいている。各サブディビジョンは例えば50個(またはその前後)の距離カウンタを使用でき、それぞれ0乃至49の文字によりスペースを開けられた同一のタイプの2つ特徴の発生をカウントする。小文字では、最も最近の大文字への距離がカウントされ、高レベル特徴では、付加的なカウンタがジップコード、上位レベルのドメイン名、eメールアドレス間の距離を追跡する。ひとまとめにして、カウンタはユーザ記録に典型的で、名称、郵便アドレス、eメールアドレス、社会保険、クレジットカード番号の組合せ(幾つかのエレメントは存在しなくてもよい)を含んでいる文書構造を正しい順序で捕捉する。
【0184】
MCPスキャナは例えば約20の簡単な算術演算を正規化された次元で行うことのできる簡単なバーチャルマシン(MCPスコアVM)の支援によりプロファイルを解釈できる。ハードコード化されたパラメータ化されたスコアの計算機の代りにVMを使用することによって、分離表面の実行可能な表示においていくらかの柔軟性が可能であり、これは直交しない超平面またはハンドコード化されたプロファイルで、そのままの状態(as−is)で使用されることができる(プロファイルは手作業で編集されることのできる読取り可能なASCII表示を有することができる)。MCPプロファイル化ツールにより計算される多次元表面の特性が簡単であるので、5(程度)の少ない演算が使用されることができる。
【0185】
表1:共通スコアVMコマンド
VM演算 説 明
FPOP_GT[i,c] カウンタiと定数cとの間に差を付加する
FPOP_GTS[i,c,s] カウンタiと定数cとの間に差を付加し、sでスケールする
FPOP_LT[i,c] カウンタiと定数cとの間に反転した差を付加する
FPOP_LTS[i,c,s] カウンタiと定数cとの間に差を付加し、sでスケールする
FPOP_DIFF[i,j,s] カウンタiとjとの間に絶対差を付加し、sでスケールする
【0186】
各コマンドはある値を最初にゼロに設定されている実行スコアカウンタへ付加できる。結果的なスコアは1000バイトへ正規化され、しきい値と比較され、対応する警報情報記録(AIR)リストに記憶される。スコア以下である最大のしきい値は警報が発生されるものを規定し、警報を発生するために必要な全ての情報は対応するAIRに記憶されることができる。
【0187】
[詐欺の暗号化検出]
eコマース技術の開発と共に、新しいプロセッサのコンピュータ処理パワーが増加したことにより、デスクトップコンピュータ市場には、特別目的の政府のプロジェクトのみに従来利用可能であった多数の高品質の暗号アルゴリズムが利用できるようになった。インターネットの買物客およびハイテクビジネスのための新しい技術の利点を過大評価することは難しく、機密性及びセキュリティの増加は全体的なコンピュータ化時代に必要なこととなった。多くの技術的進歩のように、強力な暗号化は両刃の剣である。全ての通信に対するプライバシーとセキュリティを保証することにより、これは例えば知的財産の盗難のような違法行為を隠す。
【0188】
“詐欺”暗号化はコンピュータネットワークに対する新しい脅威として認識される。無線LAN、ad−hocセットアップ、“半公共”および承認されていないVPNの増加によって、ネットワークは外部からの無許可のアクセスに対して脆弱にされている。またビジネス界ではそれぞれのトランザクションと通信チャンネルを暗号化するための現代のコンピュータ技術にたよる風潮もあり、状況を更に悪化している。IT人員はいずれの接続が許可されているかを弁別することがもはやできなくなり、他人の家庭のコンピュータへの暗号化された接続はしばしばeコマースサーバへの許可された接続から弁別することができない。承認されていないVPNの設定はより容易になっている。P2Pソフトウェアの流行の増加は企業のネットワークの脆弱性を増加させ、HTTPを通過するトンネル化によって合法のeコマーストラフィックを装うソフトウェアは明白なユーザリクエストがなくても(例えば何かをインストールする副効果として)インストールされることができる。承認されていないVPNは周囲の防御に“穴”を生成し、これが所有データを無許可の位置から離れたイントラネットコンピュータへ転送するかそのイントラネットコンピュータを動作できるようになれば直に、周囲の防御は効率的になくなる。
【0189】
このような風潮では、幾つかのコンピュータセキュリティの専門家は、イントラネット上の各個々のコンピュータをそれらが会社のファイヤウォール外のある点から直接アクセスできるかのように保護することによって内部の防御にを中心とすることを推奨している。この戦略は部分的に問題を解決するが、このような解決策の総費用は通常、非常に高価である。“周囲”を構成するコンピュータの数は通常非常に少なく、ゆっくりと成長しているが、イントラネット全体は非常に大きく高速度で成長しており、絶え間ない注意が必要である(例えばパッチ及び新しいサービスパックは通常、同一のホストにインストールされるセキュリティソフトウェアと矛盾する)。適切な訓練を受けた人員の不足を考慮すると、各内部コンピュータの追求は大部分の組織では実用的ではない。
【0190】
比較において、より率直で経済的な解決策は、承認されたセッションのみ(例えば部門間のVPNおよび限定された量のよく知られたeコマースサイト)に暗号化を限定して全ての外部の接続を監視し制御することである。この解決方法は周囲防御を維持するためのコスト全体を低く維持し、内部コンピュータは、従来のように、規則的な方法で秘密保護される必要がある。詐欺の通信チャンネルの制御は“内部セキュリティ全体”戦略の潜在的価格の数分の1しか付加されない。
【0191】
この問題解決方法は、無許可のVPN状のチャンネルが設けられたとき、全ての秘密保護接続を追跡し、セキュリティ人員に警報を与える詐欺暗号検出器(RED)コンポーネントを含んでいる。付加的な利点として、これは暗号化されたセッションを絶えずチェックでき、そのパラメータは暗号化強度のプロトコルバージョンの設定された範囲外等である。
【0192】
REDコンポーネントは感度の高い情報領域の境界を横切る暗号化されたトラフィックのための合法パラメータのセット(ソース、目的地、プロトコル、キーの長さ等)を与えることにより構成されることができる。これは(アマゾンの秘密保護サーバで書籍を購入するような)共通のeコマース行為と、秘密保護P2Pチャンネルを設定する試みとを区別できる。許可されたVPNはREDの可能にされたソース/目的地/ポートリストで特定されることができ、したがって通常のオフィス間トラフィックは何等の警報も生じない。
【0193】
REDは例えば再構成されたTCPセッションデータフィードからその情報を獲得する専用のプロセスとして動作できる。オンザフライTCPセッションの再構成により、SSLセッションとその属性が適切に認識されることができる。各セッションは暗号化をチェックされ(例えばSSL/TLSの全ての共通のバリエーションが認識されることができる)、これが暗号化されているならば、そのパラメータ(クライアントIP、サーバIP、ポート、期間、バージョン等)は許可されたVPNのリストと比較されることができる。普通のeコマーストラフィックは内部から開始された短いセッションを別々に処理することにより、デフォルトによって可能にされることができる。
【0194】
REDコンポーネントにより集められた情報は中央化されたイベントプロセッサへ送信され、コンソールに転送され、ここで記憶され、多数のセンサから来るその他の関連するイベントと共に処理されることができる。これにより“詐欺のVPN”の試みと他のネットワークポリシーの侵害との相関、および中央化された法律情報の記憶とデータの採掘が可能である。
【0195】
[REDデータフロー]
REDは例えばTCPセッションリアセンブラモジュールにより与えられる再構成されたTCPセッションで動作できる。REDは解析されるセッションが暗号化されているか否かを決定し、暗号化されているならば、暗号化パラメータが構造ファイルに特定されているポリシーに一致しているか否かを決定する。
【0196】
REDはSSLおよび/またはTLSセッションを検出するように構成されることができる(例えば前述のSSlバージョン2.0と前述のTLSバージョン1.0)。REDはキーマテリアルにアクセスせず、したがってセッションの内容を解読できないが、初期のハンドシェークおよび暗号文一式の交渉メッセージが明白に送信され、セッションは暗号化され、選択された暗号文一式は検出器に対して有効である。
【0197】
REDはプロトコルの積層構造にしたがい、交換されている情報へのアクセスを得るためにその層を復号することができる。SSLv2.0とSSLv3.0/TLS1.0は異なる記録及びメッセージフォーマットを有し、別々の復号手順により処理されることができるが、全体的な復号器の機能は同一であってもよい(図26参照)。
【0198】
最初に、REDはSSL/TLS記録プロトコル層を復号して、その上部にあるメッセージを検査する。次に、REDは交渉された暗号文一式上に情報を含んでいるClientHelloおよび/またはServerHelloメッセージを識別することができる。
【0199】
前述の任意の行為において、復号が失敗したならば、REDは暗号化されていないセッションを考慮できる。セキュリティプロトコルは厳密であり、接続は誤ったまたは紛失データでは設定されない。復号が成功したならば、REDは会話の符号化に使用される初期暗号文一式上の情報を獲得できる(暗号文一式は会話の途中で変更されることができるが、これは明白に行われないので、REDはその次の変化を追跡できない)。
【0200】
セッションが暗号化され、内容の暗号化に使用される暗号文一式では、REDは以下のチェックを行うことができる。
・ローカルポリシーにしたがって、与えられ通信されるパーティは秘密保護接続を設定できる
・暗号文一式は今日の標準方式により強力である
・通信の期間は許容された範囲内である。
【0201】
REDの構造ファイルにより、いずれのパーティ(IPアドレス)が秘密保護チャンネルを設定できるかの特定が可能である(クライアントとサーバは弁別され、秘密保護接続のイニシエータに別々の限定が存在する)。このような各記録に対しては、可能にされたポート、接続の総期間の限度、暗号文一式における最小の強度についての情報が存在する。ポートは暗号化されているサービス(例えばHTTP)の制限に使用され、期間の限度はSSLベースのeコマースで使用される短いセッションを、長く潜在的に違法のセッションから弁別するために使用されることができる。接続が可能にされるならば、その暗号文一式の強度はこの接続に特定された最小の許容可能レベルと比較されることができる。
【0202】
構造により明示的に可能にされない接続を設定する全ての試みは検出され、システムの警報処理バックエンドへ警報の形態で送信される。その構造にしたがって、警報はオペレータに報告されることができ、および/または即座の行動(進行中の接続のブレークダウン)を取ることができる。
【0203】
[プロセスマネジャ]
ネットワーク内容解析プラットフォーム(“NCAP”)で構築されたアプリケーションは例えば並列で動作する幾つかのUNIX(登録商標)プロセスを含むことができる。プロセスの数及びそれらの機能の数は変化できる。他方で、次のような機能、即ちスタート、停止、再構成が行われることができる。再構成は単に幾つかの特別な機能またはモジュールを表すプロセスの特別なグループに対して必要とされ、残りのアプリケーションは任意の共有されたデータを失わずに継続されなければならない。
【0204】
“スタート”および“終了”は正常なブートアップ/シャットダウンシーケンス期間中にOSにより発せられることができる。“再構成”リクエストは特定のモジュール(例えばルールセット更新手順)のオンザフライ再ロードを行うための自動化されたダウンロード設備から送られてもよい。総再構成時間は最小にされることができる。この手順期間中に、アプリケーションは部分的にのみ操作可能できる。
【0205】
スタートアップ手順は幾つかのNCAPモジュール(図27参照)を起動できる。これらのモジュールはそれらの機能を行うための異なるIPCリソースを割当ておよび/または必要とする。IPCデッドロック依存性はアプリケーションプラニング段で解決されるが、開始シーケンスは自動的であり、必要なリソースが直ちに利用可能ではない場合に、頑丈なモジュール回復を確実に可能にする。
【0206】
時には、支援者の状況を容易にする付加的な特徴は再構成リクエストを手作業で出す能力と、アプリケーション全体を手作業で開始/停止する能力と、標準的なシステムユーティリティを介して利用可能ではない全ての必要な内部情報と共に現在実行しているプロセスをリストする能力とである。
【0207】
プロセス管理装置の1実施形態は全体的なNCAPベースのアプリケーションに対して起動装置/モニタとして動作する信頼性のあるプロセスを提供するように構成されることができる。その特徴は以下を含んでいる。
・フレキシブルな構造;随意選択的な数のプログラムのサポート、
・標準的なエラー報告設備、
・自動的なモジュール回復、
・オーバーロード保護回復:モジュールが数回続けて起動後すぐに止まったならば、次回、基本的な問題が解決されるまでの遅延後に、再スタートされる。
・標準的な再構成設備はアプリケーションの共有されたデータを保護する特殊化されたモジュールグループを再スタートする。
【0208】
適切な許可後、更に別のIPCチャンネルを使用して主管理プロセスに接続する特別な制御ユーティリティも開発されることができる。これはリストをサポートし、グループコマンドを再ロードすることができ、自動アップロード設備に対する一般的なインターフェースを提供する。
【0209】
[イベントスプーラ]
イベントスプーラの1実施形態はイベント処理用の一般的なAPIを提供する。またこれは統計及びプロセス、フィルタを集収し、暗号化されたチャンネルを使用してデータをネットワークにわたって確実に転送できる。これはさらに実在のネットワークの厳しい条件においても“開始”および“忘却”モードで動作できる。
【0210】
NCAPはイベントの形態で情報を伝送できる。イベントは独立した処理と、その後の記憶及びデータ採掘に適した情報の最小の基本ピースであってもよい。発生されるイベントは例えば適時で確実な方法でイベント処理/データ採掘コンソールに転送されることができる。イベント処理モジュールは結果的な情報の処理と、その情報のデータベースへの記憶と、必要ならばSNMPおよび/またはeメール警報を送信する付加的な層を適用できる。
【0211】
種々のNCAPモジュールにより発生されたイベントはスプールファイル中に記憶されることができる。モジュールはまた実時間の統計データ(例えば処理される複数のパケット、プロトコル分配、モジュール特定情報)を記憶するためIPCを使用する。統計データは偶然的なパワー停止の場合にリセットされることができる。イベントデータはファイルシステムレベルを有する。付加的な利点として、バッファされたイベントストリームは中央イベントデータベースへの記憶/再ロードを可能にするために圧縮形態でバックアップされることができる。
【0212】
イベントスプーラは随意選択的な数のイベントスプールディレクトリと統計データブロックを監視するように構成されることができる。これは異なるデータソースを独立して監視できる。各イベントスプールファイルはFIFO順に専用のUNIX(登録商標)プロセス(スプールモニタ)により処理されることができる。各統計ブロックは構成可能な間隔を有する状態コレクタプロセスにより定期的にポールされることができる。スプールモニタはモニタの現在の状態についての完全な情報を含んでいる独立した二進チェックポイントファイルを生成できる。イベントスプーラはパワーサイクルの場合、各待ち行列の最後の不完全なトランザクションから連続することができる。
【0213】
イベントスプーラはモジュラアプリケーションであってもよい。これはデータを集め、それを論理ストリーム(例えばイベントストリーム、統計ストリーム等)の形態で導く。これはロードオンデマンドデータ処理モジュール(プラグイン)用のAPIを有することができる。各ストリームは随意選択的な数のプラグインに関連されることができる。プラグインは特定のストリームの内部構造についての知識を有する唯一のモジュールである。イベントスプーラはこのように構成される場合、幾つかのデータ処理モジュール間で共有されることのできる汎用目的のMUTEX状リソースを提供できる。このようなアーキテクチャは容易な拡張能力を可能にし、コードのメンテナンス労力を減少する。新しいデータタイプの処理(例えばTCPセッションデータ)をイベントスプーラに付加することは、単に構造ファイルの変更とこのデータタイプを認識するプラグインを書込む労力に転化する。
【0214】
センサ側で動作するイベント圧縮アルゴリズムに加えて、イベント処理モジュールはイベント処理(例えば事後処理)と、データ受信時の相関を行うことができる。信頼性のある秘密保護ネットワークデータ転送は次の組込み特徴、即ちチェックサム検査、再送信時間計算アルゴリズムによるパケットまたはセッションレベルの再送信、サーバ側のACL検査、オンザフライデータ圧縮、暗号化を有するUDPベースのネットワークプロトコルを使用して開発されることができる。イベント処理モジュールは例えばポート80/UDPにおいてイベントスプーラ聴取のサーバ部分(“ネットスプール”)を動作できる。これはセンサの名称によりタグ付けされている各許可されたセンサからデータストリームを受取ることができる。論理的なストリームタイプに基づいて、ネットスプールはそのデータを付加的な処理へ送信し、そのデータを記憶するためにプラグインを呼出すことができる。構造に基づいて、これはeメール/SNMPメッセージを発生し、そのオリジナルデータを更に処理するために送信することもできる。ネットワークの停止の場合には、スプールモニタおよび/またはネットスプールは(漸進的にタイムアウト間隔を増加して)30分までデータを送信しようと試み、その後終了する。終了したプロセスは主イベントスプーラプロセスにより再スタートされ、不完全なトランザクションを継続できる。サイクルはデータ送信が成功するまで存続できる。
【0215】
図28は分布モードで動作するイベントスプーラの1実施形態を示している。センサはまた動作しているネットスプールプロセスを有し、これはローカルクライアント接続のみを可能にできる。スプールモニタと状態コレクタはデータを送信することができるが、機器当りデータストリームの1ソースのみを有することができる。構造はセンサホストのそれぞれのモジュールで自動MUTEXスタイルのロックを行うことができる。
【0216】
イベントスプーラは例えばNCAPベースのアプリケーション内の全てのモジュールにより発生されるイベントを集めて転送することができる。イベントスプーラはUNIX(登録商標)IPCと、相互及び残りのシステムと通信するためのネットワーク化とを使用する特殊化されたサブプロセスを有するマルチプロセス分布アプリケーションとして構成されることができる。
【0217】
イベントスプーラアプリケーションに含まれることのできるサブプロセスのリストを以下に示す。
・alertd:UNIX(登録商標)メッセージングを使用して解析モジュールからイベントを集める。ユーザにより破棄されたイベントを濾波する
・evspool:スプーラプロセス管理装置
・status collector:共有された統計プールを保存する
・spool monitor:特定のスプールディレクトリからイベントデータを取る。
【0218】
プロセスマネジャはalertedプロセス(図29参照)を開始し、IPCメッセージプールに添付し、および/またはファイルから警報マップをマップする。その後、事象フレームの入来を待機する。フレームを受信すると、これはそのフレームから警報id情報を復号し、警報マップセットに対してそれをチェックする。警報idが送信を許容されるならば、alertedプロセスはフレームをスプールファイルへ位置させることができる。
【0219】
警報フレームはスプールモニタによりスプーラファイルから取られることができ、これはevspoolの監督下で実行される。スプールモニタのタスクは1つづつスプールファイルからフレームをピックアップし、各フレームにストリームラベル及びセンサ名をプリペンドし、チェックポイントファイル中の現在のスプールポインタを追跡し、結果的なフレームをネットスプールプロセスに送信することである。データは所有者の、信頼性のある秘密保護されたUDPベースのプロトコルにより送信されることができる。イベントデータはそれが送信されるまでスプールファイル中に維持されることができる。特別に開発されたネットワークプロトコルとチェックポイントファイルはそのアプリケーションがネットワークの停止とハードウェアのリブートに耐えることを確実にできる。
【0220】
ネットスプールプロセスはフレームを受信し、その構造に応じてこれを別のネットワークスプールに送信するか、ローカルデータベースプラグインに送信するか、またはその両者である。データベースプラグインはロードオンデマンドのダイナミックライブラリとして構成されることができる。事後処理の付加的な層はイベント相関を含むことができる。
【0221】
ネットスプールは状態コレクタから情報を集めることもできる。状態コレクタはNCAPベースのアプリケーションの統計プールに対して割当てられた共有されたメモリセグメントのコピーを作り、これを(予め構成された時間間隔で)そのデータベースへ反復的に送信する。
【0222】
[TCPキラー]
TCPキラーモジュールの1実施形態は例えば実時間でTCPセッションを停止することにより不当なトラフィックに反応する能力を提供する。
【0223】
TCPキラーモジュールはLinux(登録商標)パケットソケットAPIを利用できる。このインターフェースはNICドライバへ直接接続し、人工的に発生されたパケットをその出力待ち行列中に位置させる能力を提供する。そのドライバはユーザスペースプログラムから(層2のヘッダを含む)完全なネットワークパケットを受取り、これを変更せずにネットワークへ注入する。ネットワーク解析装置が十分に高速であるならば、これは不当と判断される場合に、進行中のTCPセッションを停止するためにTCP RSTパケットを発生することができる。
【0224】
これは適切なSEQ及びソケット対属性を有するTCP RSTパケットをクライアントとサーバコンピュータの両者へ送信することによりそれを行うことができる。特別なソケット対でTCP RSTパケットを受信した後、ホストのTCP/IPスタックは接続を閉じ、データバッファをフラッシュし、エラーをユーザアプリケーションに戻すことができる(“ピアによる接続のリセット”は標準的なエラーメッセージである)。
【0225】
TCPキラーが取り付けられたアプリケーションは通常のネットワーク動作アクチビティに干渉するので、モジュールの性質において別々のオーバーライド制御を有することができる。TCPキラーモジュールはNCAPアプリケーションからのいずれのセッション終端リクエストが承諾され、いずれが無視されるかの制御を含んでいてもよい。制御機構は可能なリセットターゲットリスト(IPフィルタ)に含まれるかそれらから除外されるように目的地アドレスとポート範囲を特定する別々の構造ファイルと、RSTパケット命令(警報マップ)を含んだ各警報IDに対するリセットパケット生成を許可/却下する“ビットマップ”ファイルとを含んでいる。
【0226】
TCPキラーモジュールはUNIX(登録商標)メッセージングIPCを使用して、そのクライアント(例えばローカルアプリケーション)と通信する別々のUNIX(登録商標)プロセスとして構成されることができる。これはスタートアップ期間に構造ファイルからIPフィルタリストを読み出し、警報マップファイルを共有モードでメモリへマップすることができ、受られるようにtcpkcからの変更を許容する。モジュールの再スタートはIPフィルタ情報が変更される必要がある場合にのみ必要とされる。標準的な再スタート手順はプロセス管理装置によって行われることができる。再スタートはNCAPベースのアプリケーションにおける他のプロセスに影響しない。
【0227】
[TCPキラーモジュールAPI]
TCPキラーAPIはUNIX(登録商標)メッセージング設備を使用できる。TCPキラーはスタートアップ手順期間中にNCAPコアにより割当てられたメッセージ待ち行列に取り付けられることができる。待ち行列のIDは全てのNCAPモジュールに知られてもよい。
【0228】
TCPキラープロセスはtcpk_t構造により説明されるフォーマットのメッセージバッファを予測する。tcpk_t構造はTCP RSTパケットの生成に必要な警報idおよび層2/3/4情報を含むことができる。
【0229】
[TCPキラーモジュールの初期化]
TCPキラーはプロセス管理装置により開始されることができる。これはNIC名、警報マップ名、IPフィルタ構造ファイル名をコマンドラインから得ることができる。これはIPフィルタ情報を読取り、解釈し、警報マップファイルをメモリへマップすることができる。
【0230】
次の動作は例えば特定されたNIC名を有するパケットソケットを開くことによってNICドライバへの制御接続を開くことである。初期化相の最後に、モジュールは特定されたNICをNOARPモードに設定することができる。
【0231】
初期化後、TCPキラーはセッション終端リクエストを待機し、それらを受取り、IPフィルタと警報マップを用いて受信されたリクエストを濾波し、可能ならばそのリクエストで与えられた情報を使用してTCP RSTパケットを発生する無限ループに入ることができる。
【0232】
前述したように、警報マップはパケットを送信する場所の方向、即ちクライアント側、サーバ側またはその両者を特定できる。両者の側が特定されるならば、TCPキラーモジュールは連続して2つのパケットを発生して送信し、その一方は接続のサーバ側用に生成され、他方はクライアント側用である。
【0233】
[TCPキラーモジュールの再構成]
tcpkcコマンドラインユーティリティは警報マップ情報を更新する方法を提供する。これは特定された二進マップファイルを変更することができ、その変更はこのファイルをそのメモリにマップされた状態に維持する実行中のTCPキラープロセスに対して即時に利用可能にされる。
【0234】
IPフィルタ情報を変更するために、TCPキラーモジュールは再スタートされることを必要とする。これはプロセス管理装置が提供する標準的な機構によって行われることができる。TCPキラーモジュールの再スタートは他のNCAPベースのモジュールに影響しない。
【0235】
[TCPキラーモジュールのアップロード]
TCPキラーモジュールはNCAPベースのアプリケーションが退出する理由を発見するとき停止する。UNIX(登録商標)標準退出手順は全ての通信チャンネルを閉じ、プロセスにより使用されている全てのメモリを再度要求するので、モジュールは何等の特別な行動も取らない。
【0236】
マシンの読取り可能な媒体は符号化された情報を含み、これはマシンにより読取られ実行されるとき、例えば説明した実施形態(例えば1以上の説明した方法)を行う。マシンの読取り可能な媒体はプログラム可能なパラメータであり、実行可能な命令、非プログラム可能なパラメータおよび/または他のデータを含む情報を記憶することができる。マシンの読取り可能な媒体は読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、非揮発性メモリ、光ディスク、磁気テープおよび/または磁気ディスクを備えることができる。マシンの読取り可能な媒体はさらに、例えばマシン(例えばコンピュータ)により読取られ、復調/復号され、実行されることのできる指令を伝達するように変調されたまたは他の方法で操作された搬送波を含むことができる。マシンは1以上のマイクロプロセッサ、マイクロ制御装置および/または他の論理素子のアレイを具備することができる。
【0237】
先の説明を考慮すると、説明した実施形態がソフトウェア、ファームウェアおよび/またはハードウェアで実行されることができることは当業者には明白であろう。本発明の実行に使用される実際のソフトウェアコードまたは特殊化された制御ハードウェアは本発明を限定するものではない。すなわち、実施形態の動作及び態様については実際のソフトウェアコードまたは特殊化されたハードウェアコンポーネントを特別に参照せずに説明した。当業者がここでの説明に基づいて本発明の実施形態を実行するためのソフトウェアおよび/または制御ハードウェアを設計できることが明らかに理解できるので、このような特別な参照がなくても適応することができる。
【0238】
当業者が本発明を実行し、或いは使用することができるようにするために、前述の実施形態を説明した。これらの実施形態に対する種々の変形が可能であり、ここで与えた一般原理は他の実施形態にも同様に適用されるであろう。例えば本発明はハードワイヤ回路として、特定用途用集積回路に製造される回路構造として、または非揮発性メモリにロードされるファームウェアプログラムとして、或いは論理素子のアレイにより実行可能な指令であるコードのようなマシンの読取り可能なコードとしてデータ記憶媒体から、またはデータ記憶媒体へロードされるソフトウェアプログラムとして、部分的にまたは全体として実行されることができ、このようなコードはマイクロプロセッサまたは他のデジタル信号処理装置または幾つかの他のプログラム可能なマシンまたはシステムとして論理素子のアレイにより実行可能である。このように、本発明は前述の実施形態に限定されることを意図するものではなく、任意の特別な指令のシーケンスおよび/または任意の特定のハードウェア構造はむしろここでの任意の方法で開示された原理及び優秀な特性と一貫した最も広い技術的範囲にしたがうべきである。
【図面の簡単な説明】
【0239】
【図1】ネットワーク内容解析プラットフォームの1実施形態のブロック図。
【図2】図1のパケット捕捉の1実施形態のブロック図。
【図3】図1のパケット捕捉の1実施形態のフロー図。
【図4】図1のIPデフラグメンタの1実施形態のブロック図。
【図5】IPデフラグメンタのフリー記述子チェーンの1実施形態の概略図。
【図6】IPデフラグメンタ記述子のエイジチェーンの1実施形態の概略図。
【図7】IPデフラグメンタセッション記述子の構造の1実施形態の概略図。
【図8】図1のIPデフラグメンタの1実施形態のフロー図。
【図9】図1のTCPリアセンブラの1実施形態のブロック図。
【図10】TCPリアセンブラのフリーセッション及びペイロードチェーンの1実施形態の概略図。
【図11】ストリーム遷移の1実施形態の概略図。
【図12】TCPセッション遷移の1実施形態の概略図。
【図13】TCPセッションエイジチェーンの1実施形態の概略図。
【図14】TCPセッションリングバッファの1実施形態の概略図。
【図15】TCPペイロードチェーンの1実施形態の概略図。
【図16】図1のTCPリアセンブラの1実施形態のフロー図。
【図17】図1の内容復号器の1実施形態のフロー図。
【図18】内容復号ツリーの1実施形態の概略図。
【図19】自動キーワード発見ツールの1実施形態のフロー図。
【図20】図1のキーワードスキャナの1実施形態のフロー図。
【図21】自動内容プロファイラツールの1実施形態のフロー図。
【図22】超平面計算の1実施形態のフロー図。
【図23】図1の多次元内容のプロファイル化スキャナの1実施形態のフロー図。
【図24】出力スコア計算の1実施形態のフロー図。
【図25】内容スキャナの有限状態オートマトンの1実施形態の概略図。
【図26】図1の不正暗号化検出器の1実施形態のフロー図。
【図27】図1のプロセス管理装置の1実施形態のブロック図。
【図28】図1のイベントスプーラの1実施形態のブロック図。
【図29】図1のイベントスプーラの1実施形態のフロー図。
【図30】図1のTCPキラーの1実施形態のブロック図。
【図31】図1のTCPキラーの1実施形態のフロー図。

【特許請求の範囲】
【請求項1】
ネットワークデータを受信し、
クライアント−サーバ通信セッションをネットワークデータから再構成し、
ネットワークデータを通して、(i)統計的検出および(ii)キーワードベース検出の少なくとも一方を使用してクライアント−サーバ通信セッションを解析することによって情報の漏洩を検出するステップを含んでいる方法。
【請求項2】
さらに、1以上のアプリケーションプロトコルを検出し検査するためクライアント−サーバ通信セッションを復号するステップを含み、
クライアント−サーバ通信セッションは1以上のアプリケーションプロトコルを含んでいる請求項1記載の方法。
【請求項3】
1以上のアプリケーションプロトコルは少なくとも(i)pdf、(ii)http、(iii)eメール、(iv)eメール添付物、(v)ftp、(vi)zip、(vii)msワード、(viii)msエクセル、(ix)html、(x)xml、(xi)gzip、(xii)tar、(xiii)プレインテキストの1つを含んでいる請求項2記載の方法。
【請求項4】
クライアント−サーバ通信セッションは少なくとも(i)TCP、(ii)IP、(iii)イーサネット(登録商標)のうちの1つを含んでいる請求項1記載の方法。
【請求項5】
統計ベースの検出は多次元内容プロファイル化を含んでいる請求項1記載の方法。
【請求項6】
統計ベースの検出はドメイン特定高レベル特性を含んでいる請求項1記載の方法。
【請求項7】
ドメイン特定高レベル特性は少なくとも(i)社会保険番号、(ii)クレジットカード番号、(iii)郵便アドレス、(v)eメールアドレスのうちの1つを含んでいる請求項6記載の方法。
【請求項8】
キーワードベースの検出は1以上の加重されたキーワードを含んでいる請求項1記載の方法。
【請求項9】
情報はデジタル資産を含んでいる請求項1記載の方法。
【請求項10】
さらに、任意の無許可の暗号化されたセッションを検出するためにネットワークデータを解析するステップを含んでいる請求項1記載の方法。
【請求項11】
ネットワーク通信を受信し、
少なくとも内容の再構成と、実時間でのネットワーク通信の走査及び認識とを行うことにより、ネットワーク通信を介するデータの無許可の転送および/または不当な転送を防止するステップを含んでいる方法。
【請求項12】
内容の走査と認識は多次元内容プロファイル化を含んでいる請求項11記載の方法。
【請求項13】
内容の走査と認識はローカルデータについて行われる請求項11記載の方法。
【請求項14】
十分に飽和されたギガビット速度でネットワーク通信を介するデータの無許可の転送および/または違法の転送を阻止する請求項11記載の方法。
【請求項15】
ネットワークデータを受信し、
ネットワークデータを介する情報の漏洩を少なくとも多次元内容プロファイル化を適用することにより防止するステップを含んでいる方法。
【請求項16】
情報はデジタル資産を含んでいる請求項15記載の方法。
【請求項17】
多次元内容プロファイル化は情報の構造を考慮して行われる請求項15記載の方法。
【請求項18】
符号化された情報を有するマシン読取り可能な媒体において、
前記情報がマシンにより読取られ実行されるとき、
ネットワークデータを受信し、
クライアント−サーバ通信セッションをネットワークデータから再構成し、
ネットワークデータを通して、(i)統計的検出および(ii)キーワードベースの検出の少なくとも一方を使用してクライアント−サーバ通信セッションを解析することによって情報の漏洩を検出するステップを含んでいる方法を実行するマシン読取り可能な媒体。
【請求項19】
符号化された情報を有するマシン読取り可能な媒体において、
前記情報がマシンにより読取られ実行されるとき、
ネットワーク通信を受信し、
少なくとも内容の再構成と、実時間でのネットワーク通信の走査及び認識とを行うことにより、ネットワーク通信を介するデータの無許可の転送および/または不当な転送を防止するステップを含んでいる方法を実行するマシン読取り可能な媒体。
【請求項20】
符号化された情報を有するマシン読取り可能な媒体において、
前記情報がマシンにより読取られ実行されるとき、
ネットワークデータを受信し、
ネットワークデータを介する情報の漏洩を少なくとも多次元内容プロファイル化を適用することにより防止するステップを含んでいる方法を実行するマシン読取り可能な媒体。
【請求項21】
ネットワークデータを受信する受信機と、
前記受信機に結合されているプロセッサとを具備し、このプロセッサは
(i)クライアント−サーバ通信セッションをネットワークデータから再構成し、
(ii)ネットワークデータを通して、(i)統計的検出および(ii)キーワードベースの検出の少なくとも一方を使用してクライアント−サーバ通信セッションを解析することによって情報の漏洩を検出するように構成されている装置。
【請求項22】
ネットワーク通信を受信する受信機と、
前記受信機に結合されているプロセッサとを具備し、このプロセッサは少なくとも内容の再構成と、実時間でのネットワーク通信の走査及び認識とを行うことにより、ネットワーク通信を介するデータの無許可の転送および/または不当な転送を防止するように構成されている装置。
【請求項23】
ネットワーク通信を受信する受信機と、
前記受信機に結合されているプロセッサとを具備し、このプロセッサはネットワークデータを介する情報の漏洩を少なくとも多次元内容プロファイル化を適用することにより防止するように構成されている装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate


【公表番号】特表2007−507763(P2007−507763A)
【公表日】平成19年3月29日(2007.3.29)
【国際特許分類】
【出願番号】特願2006−526298(P2006−526298)
【出願日】平成16年9月9日(2004.9.9)
【国際出願番号】PCT/US2004/029503
【国際公開番号】WO2005/027539
【国際公開日】平成17年3月24日(2005.3.24)
【出願人】(506083327)フィデリス・セキュリティー・システムズ (2)
【Fターム(参考)】