"コンピュータにより実行される方法であって、ネットワークコンピューティングデバイスにおけるネットワークトラフィックのキャプチャ中に失われたセグメントを含みそれぞれがセッションに対応する部分データストリームを識別するステップと、前記部分データストリームのコンテンツの特徴を決定するステップと、前記部分データストリーム内の損失セグメントのコンテンツ部分をパディングするステップと、少なくとも一つのデータ損失防止DLPポリシーに従って、前記部分データストリームを機密情報についてスキャンするステップとを含む方法。請求項1に記載のコンピュータにより実行される方法において、前記部分データストリームを識別するステップが、前記ネットワークコンピューティングデバイスにおいて、複数のセグメントを含むネットワークトラフィックをキャプチャするステップと、前記セグメントのトランスポート層ヘッダに基づいて、セグメントが前記データストリームの第1セグメントとして識別される毎にデータストリームを生成するステップと、前記データストリームをセッションと関連付けるステップと、前記データストリームに属するセグメントを、該セグメントのトランスポート層ヘッダを使って識別するステップと、前記データストリームから欠落したセグメントを識別するステップと、前記欠落したセグメントを損失セグメントキューに置くステップと、ストリーム終端の表示を受信した際、または所定の時間間隔が経過した際に、前記損失セグメントキューに残っているセグメントを損失セグメントとしてマーキングするステップとを含む方法。請求項2に記載のコンピュータにより実行される方法において、データストリームの生成されていない接続タプルと関連付けられたデータセグメントを識別するステップと、前記接続タプルと関連付けられた第1セグメントが失われたことを決定するステップと、前記接続タプルに基づいて部分データストリームを生成するステップと、前記部分データストリームが前に生成したセッションに属しているか否かを決定するステップと、前記部分データストリームが前に生成したセッションに属していない場合、該部分データストリームを新しいセッションと関連付けるステップと、前記部分データストリームが前に生成したセッションに属している場合、該部分データストリームを前に生成したセッションに移動させるステップとをさらに含む方法。請求項1に記載のコンピュータにより実行される方法において、前記部分データストリームのコンテンツ部分の特徴を決定するステップが、損失セグメントを識別した後に、部分データストリームにおける前記損失セグメントの位置に開始マーカおよび終了マーカを挿入するステップと、前記損失セグメントの位置をメタデータストアに記録するステップと、前記部分データストリームのデータストリーム要素のプロトコル解析を行うステップとを含む方法。請求項4に記載のコンピュータにより実行される方法において、前記部分データストリームのデータストリーム要素のプロトコル解析を行うステップが、各データストリーム要素の種類を決定するステップと、前記種類に基づいて各データストリーム要素をパーシングしてメタデータを抽出するステップと、前記メタデータをメタデータストアに格納するステップとを含む方法。請求項5に記載のコンピュータにより実行される方法において、各データストリーム要素の種類を決定するステップが、前記データストリーム要素の種類がわかっている場合、該データストリーム要素の種類に対応するパーサを識別するステップと、前記データストリーム要素の種類がわからない場合、照合するシグネチャを見つけるまで、各々が特定の種類に対応する、複数のシグネチャを前記データストリーム要素に適用し、前記照合するシグネチャを使って前記データストリーム要素の種類を識別し、前記データストリーム要素の種類に対応するパーサを識別するステップとを含む方法。請求項5に記載のコンピュータにより実行される方法において、前記複数のシグネチャをデータストリーム要素に適用するステップが、可能な最初のヘッダタグから開始するように前記データストリーム要素を配置するステップと、前記複数のシグネチャを各々の可能なヘッダタグに適用するステップと、前記照合するシグネチャを使ってヘッダの種類を識別するステップとを含む方法。請求項7に記載のコンピュータにより実行される方法において、前記ヘッダの種類がアプリケーション層プロトコルヘッダであり、該アプリケーション層プロトコルヘッダから抽出されたメタデータは、送信者情報、受信者情報、データの種類およびデータの長さのうちの少なくとも一つを含んでいる方法。請求項7に記載のコンピュータにより実行される方法において、前記ヘッダの種類がプレゼンテーション層ヘッダであり、該プレゼンテーション層ヘッダから抽出されたメタデータはデータフォーマットを含んでいる方法。請求項7に記載のコンピュータにより実行される方法において、前記照合するシグネチャがヘッダフォーマットおよび前記ヘッダの種類に関連付けられた複数のタグを使用し、該複数のタグは複数の主要タグおよび複数の追加タグを含んでいる方法。請求項6に記載のコンピュータにより実行される方法において、前記データストリーム要素の種類を識別するステップが、前記データストリームの前のデータストリーム要素の種類を識別する際に収集したメタデータを利用するステップをさらに含む方法。請求項4に記載のコンピュータにより実行される方法において、前記部分データストリーム内の各々の損失セグメントのコンテンツ部分をパディングするステップが、前記部分データストリーム内に存在する各コンテンツ部分の位置を識別するステップと、前記部分データストリーム内に存在する各コンテンツ部分の種類を識別するステップと、各損失セグメントのコンテンツ部分を有効とタグ付けするステップと、前記部分データストリーム内に存在する任意のコンテンツ部分の変換が必要か否かを決定するステップと、前記部分データストリーム内に存在する任意のコンテンツ部分の変換が必要な場合、必要とされる変換の種類を識別し、必要とされる変換の識別された種類を使って前記コンテンツ部分を変換するステップとを含む方法。請求項1に記載のコンピュータにより実行される方法において、前記少なくとも一つのDLPポリシーに従って部分データストリームを機密情報についてスキャンするステップが、欠落したコンテンツ部分を識別するステップと、前記機密情報のシグネチャを使って該機密情報のコンテンツをスキャンする際に、前記欠落したコンテンツ部分を無視するステップとを含む方法。請求項13に記載のコンピュータにより実行される方法において、前記コンテンツをkグラムのシグネチャを使ってスキャンする方法。請求項13に記載のコンピュータにより実行される方法において、部分データストリーム内の機密情報を検出すると、DLPポリシー違反と前記部分データストリーム内の欠落したコンテンツの割合を報告するステップをさらに含む方法。命令を提供しコンピュータで読み取り可能な記録媒体であって、該記録媒体は、コンピュータシステムで実行される場合、該コンピュータシステムに、ネットワークコンピューティングデバイスにおけるネットワークトラフィックのキャプチャ中に失われたセグメントを含みそれぞれがセッションに対応する部分データストリームを識別するステップと、前記部分データストリームのコンテンツの特徴を決定するステップと、前記部分データストリーム内の損失セグメントのコンテンツ部分をパディングするステップと、少なくとも一つのデータ損失防止DLPポリシーに従って、前記部分データストリームを機密情報についてスキャンするステップとを含む方法を行わせる記録媒体。請求項16に記載のコンピュータで読み取り可能な記録媒体において、前記方法が、損失セグメントを識別した後に、部分データストリームにおける該損失セグメントの位置に開始マーカおよび終了マーカを挿入するステップと、前記損失セグメントの位置をメタデータストアに記録するステップと、前記部分データストリームにおけるデータストリーム要素のプロトコル解析を行うステップとを含む記録媒体。請求項16に記載のコンピュータで読み取り可能な記録媒体において、前記部分データストリームにおけるデータストリーム要素のプロトコル解析を行うステップが、複数のシグネチャを使って各データストリーム要素の種類を決定するステップと、前記種類に基づいて各データストリーム要素をパーシングしてメタデータを抽出するステップと、前記メタデータをメタデータストアに格納するステップとを含む記録媒体。ネットワークデバイスであって、メモリと、前記メモリに連結されたプロセッサと、前記プロセッサによって前記メモリから実行される部分データストリームサブシステムとを備え、ネットワークコンピューティングデバイスにおけるネットワークトラフィックのキャプチャ中に失われたセグメントを含みそれぞれがセッションに対応する部分データストリームの識別と、前記部分データストリームのコンテンツの特徴の決定と、前記部分データストリーム内の損失セグメントのコンテンツ部分のパディングと、少なくとも一つのデータ損失防止DLPポリシーに従って、前記部分データストリームの機密情報についてのスキャンとを行う、ネットワークデバイス。請求項19に記載のネットワークデバイスにおいて、前記部分データストリームサブシステムが、複数のシグネチャを使って部分データストリームにおけるデータストリーム要素のプロトコル解析を行うプロトコル解析器と、プロトコル解析中に抽出されたメタデータを格納するメタデータストアと、前記部分データストリーム内に存在する各コンテンツ部分の位置と種類とを識別し、各損失セグメントの前記コンテンツ部分を無効としてタグ付けをし、変換を必要とする前記部分データストリーム内に存在する任意のコンテンツ部分を変換するコンテンツマネージャと、欠落したコンテンツ部分を識別し、機密情報のシグネチャを使って前記コンテンツ部分を機密情報についてスキャンする際に、欠落したコンテンツ部分を無視し、部分データストリーム内で機密情報が検出されると、DLPポリシー違反と、前記部分データストリーム内の欠落したコンテンツの割合とを報告するDLPスキャナとを備えるネットワークデバイス。DLP監視装置は通常、ネットワークトラフィックを指定バッファに記録する、ネットワークアダプタカードやパケットキャプチャソフトウェアに依存する受動素子である。大量のネットワークトラフィックのため、バッファは満杯になり、データパケットのいくつかは失われてしまう可能性がある。現状では、DLP監視装置は損失データパケットを含むデータストリームをドロップし、そのように不完全なデータストリームについては機密情報のスキャンを行っていない。しかしながら、これは信頼性やDLPソリューションの完全性に関して深刻な結果を招くことになる。部分データストリームにおけるデータ損失監視の方法および装置について説明する。一実施形態による例示的方法は、ネットワークコンピューティングデバイスにおけるネットワークトラフィックのキャプチャ中に失われたセグメントを含みそれぞれがセッションに対応する部分データストリームを識別するステップと、これらの部分データストリームのコンテンツの特徴を決定するステップと、これらの部分データストリーム内における損失セグメントのコンテンツ部分をパディングするステップと、少なくとも一つのデータ損失防止DLPポリシーに従って、これらの部分データストリームを機密情報についてスキャンするステップとを含んでいる。一実施形態において、部分データストリームを識別するステップは、ネットワークコンピューティングデバイスにおいて複数のセグメントを含むネットワークトラフィックをキャプチャするステップと、セグメントのトランスポート層ヘッダに基づき、セグメントがデータストリーム内の第1セグメントとして識別される毎にデータストリームを生成するステップと、このデータストリームをセッションと関連付けるステップと、セグメントのトランスポート層ヘッダを使ってデータストリームに属するセグメントを識別するステップと、データストリームから欠落したセグメントを識別するステップと、この欠落したセグメントを損失セグメントキューに置くステップと、ストリーム終端の表示を受信した際、または所定時間間隔が経過した際に、損失セグメントキューに残っているセグメントを損失セグメントとしてマーキングするステップとを含んでいる。一実施形態において、例示的方法は、データストリームの生成されていない接続タプルと関連付けられているデータセグメントを識別するステップと、この接続タプルと関連付けられている第1セグメントが失われていることを決定するステップと、この接続タプルに基づいて部分データストリームを生成するステップと、この部分データストリームが前に生成したセッションに属しているか否かを決定するステップと、この部分データストリームが前に生成したセッションに属していない場合、この部分データストリームを新しいセッションに関連付け、この部分データストリームが前に生成したセッションに属している場合、この部分データストリームを前に生成したセッションに移動させるステップとをさらに含んでいる。一実施形態において、部分データストリームのコンテンツ部分の特徴を決定するステップは、損失セグメントを識別した後に、部分データストリーム内の損失セグメントの位置に開始マーカおよび終了マーカを挿入するステップと、この損失セグメントの位置をメタデータストアに記録するステップと、この部分データストリームにおけるデータストリーム要素のプロトコル解析を行うステップとを含んでいる。一実施形態において、部分データストリームにおけるデータストリーム要素のプロトコル解析を行うステップは、各データストリーム要素の種類を決定するステップと、種類に基づいて各データストリーム要素をパーシングしてメタデータを抽出するステップと、このメタデータをメタデータストアに格納するステップとを含んでいる。一実施形態において、各データストリーム要素の種類を決定するステップは、データストリーム要素の種類がわかっている場合は、データストリーム要素の種類に対応するパーサを識別し、データストリーム要素の種類がわからない場合は、照合するシグネチャが見つかるまで複数のシグネチャをデータストリーム要素に適用するステップであって、この複数のシグネチャの各々は特定の種類に対応するステップと、照合するシグネチャを使ってデータストリーム要素の種類を識別するステップと、このデータストリーム要素の種類に対応するパーサを識別するステップとを含んでいる。一実施形態において、複数のシグネチャをデータストリーム要素に適用するステップには、データストリーム要素を、可能な最初のヘッダタグから開始するように配置するステップと、複数のシグネチャを各々の可能なヘッダタグに適用するステップと、照合するシグネチャを使ってヘッダの種類を識別するステップとを含むことができる。ヘッダの種類はアプリケーション層プロトコルヘッダであってもよく、アプリケーション層プロトコルヘッダから抽出されたメタデータは、送信者情報、受信者情報、データの種類およびデータ長さの内の少なくとも一つを含んでいてもよい。あるいは、ヘッダの種類はプレゼンテーション層ヘッダであってもよく、プレゼンテーション層ヘッダから抽出されたメタデータはデータフォーマットを含んでいてもよい。照合するシグネチャは、ヘッダフォーマットおよびヘッダの種類と関連付けられた複数のタグを使用してもよく、これらの複数のタグは、複数の主要タグおよび複数の追加タグを有している。一実施形態において、データストリーム要素の種類を識別するステップは、当該データストリームの前のデータストリーム要素の種類を識別する際に、収集したメタデータを利用するステップをさらに含んでいる。一実施形態において、部分データストリーム内における各損失セグメントのコンテンツ部分をパディングするステップは、部分データストリーム内に存在する各コンテンツ部分の位置を識別するステップと、部分データストリーム内に存在する各コンテンツ部分の種類を識別するステップと、各損失セグメントのコンテンツ部分を無効としてタグ付けするステップと、部分データストリーム内に存在する任意のコンテンツ部分の変換が必要か否かを決定するステップと、部分データストリーム内に存在する任意のコンテンツ部分の変換が必要な場合、必要とされる変換の種類を識別し、必要とされる変換の識別された種類を使ってコンテンツ部分を変換するステップとを含んでいる。一実施形態において、少なくとも一つのDLPポリシーに従って、部分データストリームを機密情報についてスキャンするステップは、欠落したコンテンツの部分を識別するステップと、機密情報のシグネチャを使ってコンテンツを機密情報についてスキャンする際に、欠落したコンテンツの部分を無視するステップとを含んでいる。このコンテンツはkグラムのシグネチャを使ってスキャンしてもよい。一実施形態において、部分データストリーム内で機密情報を検出すると、DLPポリシー違反と部分データストリーム内の欠落したコンテンツの割合を報告する。さらに、部分データストリームにおけるデータ損失監視のための、コンピュータ読み取り可能記録媒体について説明する。例示的なコンピュータ読み取り可能記録媒体は命令を提供し、これが処理システムで実行されると、処理システムに上述の例示的方法のような方法を実行させる。さらに、ネットワークデバイスでの部分データストリームのデータ損失監視について説明する。例示的なネットワークデバイスは、メモリと、メモリに連結されるプロセッサと、プロセッサによってメモリから実行される部分データストリームサブシステムとを備え、ネットワークコンピューティングデバイスにおけるネットワークトラフィックのキャプチャ中に失われたセグメントを含みそれぞれがセッションに対応する部分データストリームを識別し、部分データストリームにおけるコンテンツの特徴を決定し、部分データストリーム内の損失セグメントのコンテンツ部分をパディングし、少なくとも一つのデータ損失防止DLPポリシーに従って、部分データストリームを機密情報についてスキャンする。一実施形態において、部分データストリームサブシステムは、複数のシグネチャを使って部分データストリームにおけるデータストリーム要素のプロトコル解析を行うプロトコル解析器と、プロトコル解析中に抽出されたメタデータを格納するメタデータストアと、部分データストリーム内に存在する各コンテンツ部分の位置と種類を識別し、各損失セグメントのコンテンツ部分に無効とタグ付けをし、変換を必要とする部分データストリーム内に存在する任意のコンテンツ部分を変換するコンテンツマネージャと、欠落したコンテンツの部分を識別し、機密情報のシグネチャを使ってコンテンツを機密情報についてスキャンする際に、欠落したコンテンツの部分を無視し、部分データストリーム内の機密情報検出の際に、DLPポリシー違反と部分データストリーム内の欠落したコンテンツの割合を報告するDLPスキャナとを備えている。本発明は、下記の詳述および本発明における種々の実施形態の添付の図面から、より十分に理解されるであろうが、これらは本発明を特定の実施形態に限定するものではなく、説明および理解のためのみのものであるととらえるべきである。部分データストリームにおけるデータ損失の監視方法および装置について説明する。ネットワーク監視装置はネットワークトラフィックをキャプチャし、キャプチャしたトラフィックに関して、顧客、従業員または患者のデータ、設計プラン、ソースコード、CAD図面、会計報告書などの機密情報の有無についてスキャンする。大量のトラフィックのため、ネットワーク監視装置は常に全てのデータセグメントをキャプチャできるわけではなく、いくつかのデータストリームが不完全なものとなってしまう。本発明の実施形態は、不完全なまたは部分データストリームにおける機密情報の有無についてスキャンすることを可能にする技術を提供することにより、ネットワーク監視装置におけるデータ損失防止DLP機能の信頼性や完全性を向上させる。以下の多くの詳細を記載する。しかしながら本開示の恩恵を受ける当事者にとって、本発明の実施形態がこれらの具体的詳細なく実施可能であることは明白であろう。図1は、本発明の実施形態を操作することができる例示的ネットワークアーキテクチャ100のブロック図である。ネットワークアーキテクチャ100は、一以上のサーバ104およびネットワーク106例えばインターネットなどのパブリックネットワークまたはローカルエリアネットワークLANなどのプライベートネットワークを介して連結したクライアントデバイスクライアント102を有する。クライアント102にはパーソナルコンピュータ、ラップトップ、PDA、携帯電話、ネットアプライアンスなどが含まれる。サーバ104にはeメールサーバ、ウェブサーバまたはクライアント102とデータ交換を行う任意のその他のサーバが含まれる。サーバ104は同じまた異なるマシン例えば、サーバコンピュータシステム、ゲートウェイ、パーソナルコンピュータなど上に設けることができる。ネットワークデバイス108はネットワーク上に設けられ、そこで、例えば、クライアント102およびサーバ104によって送受信されるweb要求およびメッセージを含む、ネットワークトラフィックを観察することができる。メッセージは、eメールメッセージ、インスタントメッセージIM、テルネットセッション中に交換されるメッセージ、ファイル転送プロトコルFTPセッション中に交換されるメッセージなどであってもよい。ネットワークデバイス108は、スニファーまたはネットワーク106を通過するトラフィックをキャプチャすることの可能な、任意のその他のコンピューティングデバイスであってもよい。ネットワークデバイス108は、キャプチャしたトラフィックを組織が保持する機密情報の有無についてスキャンする、データ損失防止DLPシステム110をホストする。機密情報には、例えば、顧客、従業員、患者または価格データ、設計プラン、ソースコード、CAD図面、会計報告書、人事報告書、顧客または患者報告書、価格文書、企業の合併吸収文書、政府例えば証券取引委員会の書類およびユーザアクセスの制限された任意のその他の情報が含まれる。DLPシステム110は、DLPポリシーに従ってキャプチャされたネットワークトラフィックをスキャンする。DLPポリシーには、コンテンツをスキャンして機密情報の有無を検出するルールが含まれている。ルールによってコンテンツのスキャンを行う必要のある機密情報を識別し、ポリシー違反を引き起こす条件例えば、同じ送信者による3つのeメールメッセージにおける機密情報の検出時を特定し、スキャンの例外例えば、eメールメッセージの受信者が組織のCEOである場合、スキャンを控えるを提供するなどを行うことができる。スキャンされるコンテンツは、ファイル、eメールメッセージ、テキストメッセージ、web要求またはネットワークデバイス108によってキャプチャされたネットワークトラフィックの一部である、任意のその他のデータアイテムであってもよい。ネットワークデバイス108には、ネットワークトラフィックを指定バッファに記録するネットワークアダプタカードおよび/またはパケットキャプチャソフトウェアが含まれる。大量のネットワークトラフィックのため、バッファは周期的に満杯となり、データセグメントのうちのいくつかが失われてしまう。一実施形態において、DLPシステム110は、損失セグメントを含む部分データストリームのDLP監視を可能にする、部分データストリームサブシステム112を有する。特に、部分データストリームサブシステム112は、セグメントをデータストリームに例えばセグメントのトランスポート層ヘッダを使って再構成し、いくつかのデータストリームが欠落したセグメントを有することを決定することによって、最初に損失セグメントを含む部分データストリームを識別することができる。欠落したセグメントのため、部分データストリームは部分データストリームの異なる要素の種類を識別する情報が欠けているかもしれない。データストリーム要素には、異なるプロトコルおよびアプリケーションのヘッダと、コンテンツ部分例えば、eメールの本文部分、eメールの添付部分などとが含まれている。ヘッダには、例えば、トランスポート層プロトコルヘッダ例えば、伝送制御プロトコルTCPヘッダ、ユーザデータグラムプロトコルUDPヘッダなど、アプリケーション層プロトコルヘッダ例えば、ハイパーテキスト転送プロトコルHTTPヘッダ、簡易メール転送SMTPヘッダなど、アプリケーションヘッダ例えば、eメールヘッダ、Web2.0アプリケーションヘッダなど、およびデータプレゼンテーションヘッダ例えば、zipファイルヘッダ、マルチパートフォームヘッダなどがある。ヘッダは、データストリーム内におけるコンテンツ部分の位置、コンテンツ部分の長さ、コンテンツ部分の種類、コンテンツ部分のフォーマットなど、それぞれのコンテンツ部分の特徴を識別する情報を提供する。部分データストリームサブシステム112は、データストリーム要素を解析してそれらの種類を決定し、決定した種類に従ってデータストリーム要素をパーシングし、部分データストリームのそれぞれのコンテンツ部分の特徴を抽出する。これらの特徴に基づいて、部分データストリームサブシステム112は部分データストリーム内に存在するコンテンツ部分の位置を見つけ、損失セグメントのコンテンツ部分をパディングし、部分データストリームに存在するどのコンテンツ部分を変換する必要があるのかと、必要とされる変換の種類例えば、解凍または復号化とを識別する。その後、部分データストリームサブシステム112は必要であれば例えば部分データ操作専用ハイブリッド変換エンジンを使ってコンテンツ部分を変換し、その結果得られたコンテンツを、機密情報の有無についてDLPポリシーに従ってスキャンすることができる。コンテンツをスキャンする際、部分データストリームサブシステム112は実際のソースデータ実際の機密情報を使用せず、ソースデータの指紋を使用して機密情報がさらされるのを防ぎ、コンテンツのより効率的な検索を容易にする。指紋には、ソースデータのハッシュ、暗号化されたソースデータ、またはソースデータを独自に識別する任意のその他のシグネチャが含まれる。スキャンされたコンテンツに機密情報が含まれる場合、部分データストリームサブシステム112は部分データストリーム内の欠落したコンテンツの割合とともに、DLPポリシーの違反を報告することができる。図2は、部分データストリームサブシステム200の一実施形態のブロック図である。部分データストリームサブシステム200は、部分データストリーム生成器202、ストリームマーカ204、プロトコル解析器206、メタデータストア212、コンテンツマネージャ214およびDLPスキャナ216を含むことができる。いくつかの実施形態によれば、部分データストリームサブシステム200の構成要素はモジュールとすることができ、これらのモジュールは組み合わせたり、さらにモジュールに分けたりすることができる。部分データストリーム生成器202は、キャプチャされたデータセグメントの例えば、TCPヘッダに含まれるシーケンス番号、セグメントソース、宛先データを使ったデータストリームへの再構成、例えば、SYN/ACKおよびFINTCPメッセージを使った再構成したデータセグメントからのデータストリームの生成、およびデータストリームから欠落したセグメントの検出を行う。一実施形態において、部分データストリーム生成器202は、例えば、TCP制御メッセージに応答するセッションを生成し、またはTCP制御メッセージを損失した場合、接続タプルソースアドレス/ポートおよび宛先アドレス/ポートのセッションを生成することによって、各々の部分データストリームをセッションと関連付ける。ストリームマーカ204は、部分データストリーム内の各損失セグメントの位置に、開始および終了マーカを挿入し、各損失セグメントの位置をメタデータストア212に記録する。プロトコル解析器206は、部分データストリームのデータストリーム要素の処理を行い、それらの種類を決定する。データストリーム要素には、トランスポート層ヘッダ例えば、TCPヘッダ、UDPヘッダなど、アプリケーション層ヘッダ例えば、HTTPヘッダ、SMTPヘッダなどのアプリケーション層プロトコルヘッダおよびeメールヘッダ、ウェブログヘッダなどのアプリケーションヘッダ、プレゼンテーション層ヘッダ例えばzipファイルヘッダ、マルチパートフォームヘッダなどおよびコンテンツ部分例えば、eメール本文、eメール添付、ブログ投稿などが含まれる。損失データセグメントのため、現在のデータストリーム要素の種類がわからない場合がある。例えば、webメールを送信するクライアントはwebメールメッセージを5つの部分に分割して、5つのデータセグメントとなることがある。第2データセグメントがHTTP識別子を含むHTTPヘッダを含んでいる可能性もある。次のデータセグメントのHTTPヘッダは種々のその他の情報例えば、webメールメッセージの本文を含むクッキー部を含み、HTTP識別子を含んでいない能性がある。第2データセグメントが失われた場合、次のデータセグメントのHTTPヘッダのIDが明らかでなくなる。プロトコル解析器206には、シグネチャデータストアに格納されているシグネチャ208を利用することにより、現在のデータストリーム要素におけるIDの欠如に対処する。シグネチャ208には、種々のプロトコルヘッダのシグネチャと種々のコンテンツフォーマット例えば、eメールメッセージのフォーマット、マルチパートフォーム、ブログなどのシグネチャとが含まれる。シグネチャ208は、特定のプロトコルのフォーマットを理解する対応パーサ210を有している。データストリーム要素に照合するシグネチャ208を見つけると、プロトコル解析器206は対応するパーサ210を使ってデータストリーム要素をパーシングし、データストリーム要素に含まれているメタデータを抽出する。現在のデータストリーム要素の終端に達すると、プロトコル解析器206は部分データストリーム内に存在する次のデータストリーム要素に移動し、同様に次のデータストリーム要素を処理し、部分データストリーム内に存在する全てのデータセグメントを処理するまでこれらの操作を反復する。プロトコル検出操作の例を、以下により詳細に記載する。データストリーム要素の処理中に収集したメタデータをメタデータストア212に格納する。メタデータには、例えば、データストリーム要素における種類の識別子、部分データストリームの送信者と受信者、部分データストリームのコンテンツ部分の特徴例えば、部分データストリーム内に存在する各コンテンツ部分の位置、部分データストリーム内に存在する各コンテンツ部分の長さ、部分データストリーム内に存在する各コンテンツ部分の種類、部分データストリーム内に存在するコンテンツ部分の変換必要とされる場合の種類、各損失セグメントの開始および終了位置などが含まれる。コンテンツマネージャ214はメタデータストア212内のメタデータを使用し、部分データストリームに存在するコンテンツ部分の位置および種類と、必要であればこれらのコンテンツ部分の変換の種類を決定する。さらにコンテンツマネージャ214はメタデータを使って損失セグメントのコンテンツ部分を識別し、それによってこれらのコンテンツ部分をパディングする。部分データストリーム内に存在する任意のコンテンツ部分の変換が必要とされる場合、コンテンツマネージャ214は必要とされる変換を行う。変換操作の例をより詳しく以下に説明する。DLPスキャナ216は、機密データの指紋220を使って部分データストリームをスキャンする。スキャンはDLPポリシー218に従って行うことができる。さらにDLPポリシーは、いつポリシー違反をトリガすべきかを定義することができる例えば、ポリシー違反をトリガするための指紋照合の数、送信者または受信者の例外など。指紋220は指紋ストアに格納することができる。DLPポリシー218はDLPポリシーストアに格納することができる。メタデータストア212、シグネチャストア、指紋ストアおよびDLPポリシーストアは、磁気または光学式記憶ベースディスク、ソリッドステートドライブまたはハードドライブなどの一以上の大容量記憶装置上に置かれた、単一のデータ構造または複数のデータ構造データベース、保管所、ファイルなどとすることができる。DLPスキャナ216は部分コンテンツをスキャンする際に、損失セグメントのコンテンツ部分を無視することができる。部分DLPスキャン操作の例をより詳しく以下に説明する。DLPスキャナ216はDLPポリシー218の違反を検出するとDLP警報を生成し、警報に部分データストリーム内の欠落したコンテンツの割合を含めることにより、警報の信頼性を示してもよい。図3は本発明のいくつかの実施形態に係る部分データストリームの処理を示している。部分データストリームは、トランスポート層要素例えばTCPヘッダ、UDPヘッダなど302、アプリケーション層要素例えばHTTPヘッダ、SMTPヘッダなどのアプリケーション層プロトコルヘッダなど、およびeメールヘッダ、ウェブログヘッダなどのアプリケーションヘッダ306、プレゼンテーション層要素例えば、zipファイルヘッダ、マルチパートフォームヘッダなど306、およびコンテンツ要素例えば、eメール本文、eメール添付、ブログ投稿など308などの、種々の層のデータストリーム要素を含むことができる。各層において、メタデータはメタデータストアに記録し、格納する。各層で収集したメタデータは、次の層における処理のヒントとして使用することができる。一実施形態において、トランスポート層302で行う処理には、パケットのキャプチャ処理310および損失セグメントの検出処理312が含まれる。パケット通信に使用するトランスポート層プロトコルがデータセグメント例えばUDPのシーケンス番号を提供しないその他の実施形態において、パケットのキャプチャ処理310および損失セグメントの検出処理312は、アプリケーション層304での処理中に行う。パケットのキャプチャ処理310には、データセグメントのキャプチャと、例えばセグメントヘッダ例えばTCPヘッダに含まれるシーケンス番号を使った、データセグメントのデータストリームへの再構成を含めることができる。一実施形態において、欠落したセグメントを検出すると、それを所定時間例えばタイマーを設定してまたはTCPクローズ接続FINメッセージが受信されるまで、損失セグメントキューに置く。TCP制御SYN/ACKメッセージは、特定の接続タプル宛先アドレス/ポートおよびソースアドレス/ポートに関連付けられたデータストリームをいつ生成するかを決定するために使用することができる。損失セグメントの検出処理312は、損失セグメントキューのタイムアウトによって起動することができる。損失セグメントの検出処理312では、特定のセッションのために記録したセグメントを全て抜き出し、セッションが存在しない場合例えば、TCP制御セグメントが失われた場合にはセッションを生成し、または、データストリームがデータストリームをアクティブなストリームとして識別する情報を例えばHTTPヘッダのクッキー内に含んでいる場合には、前に生成したセッションにデータストリームを移す。一実施形態において、アプリケーション層304で行う処理には、損失セグメントストリームのマーキング処理314と、ストリームのパディング処理316と、部分プロトコルの配置処理318と、部分プロトコルの検出処理320と、メタデータのパーシング処理322と、コンテンツの発見処理324とが含まれる。損失セグメントストリームのマーキング処理314では、損失セグメントが検出される各々の一定の点に開始および終了のストリームマーカを挿入し、開始および終了のストリームマーカの位置をメタデータストアに格納する。ストリームのパディング処理316では、ストリームマーカを使ってパディングを提供する。一実施形態において、ストリームのパディング処理316は、アプリケーション層ヘッダ処理の前すなわち、部分プロトコルの配置処理318および部分プロトコルの検出処理320の前に行う。あるいは、ストリームのパディング処理316は、部分プロトコル検出処理320を終了して、部分データストリームのコンテンツ部分を発見した後に実行される。この代替実施形態において、部分プロトコルの配置処理318および部分プロトコルの検出処理320では、ストリームマーカを使って、パーシングするコンテキストのデリミタを決定し、不必要なオーバーヘッドを回避するためにパッディングは使用しない。部分プロトコルの配置処理318は、アプリケーション層ヘッダの情報がすぐに利用できない例えば、前の層または現在のデータストリーム要素内に提供されていない場合のアプリケーション層ヘッダの種類の決定において、部分プロトコルの検出処理320を支援するために実行される。部分プロトコルの検出処理320では、特定のプロトコルに関連付けられた異なるシグネチャを使ってヘッダの種類が決定される。部分データストリームの処理中、ストリームはマルチプルプロトコルからマルチプルプロトコルへ例えば、TCPヘッダからHTTPヘッダへ、HTTPヘッダからWeb2.0アプリケーションeメールヘッダへ、Web2.0アプリケーションeメールヘッダからzipファイルヘッダへなどと遷移させることができる。プロトコルヘッダは通常、新しいフィールドまたはヘッダタグがいつ利用可能かを示す共通のデリミタを使用する。部分プロトコル配置処理318ではデリミタを識別し、プロトコルシグネチャ処理で認識することのできる、可能な最初のプロトコルタグから開始するようにストリームを配置する。複数のデリミタ標識を単一のデータストリーム内に置くことができるので、部分プロトコルの配置処理318では、部分プロトコルの検出処理320において部分データストリームの処理が終了するまで、プロトコルシグネチャ処理のために、各々の可能な開始位置を、部分プロトコルの検出処理320のために配置し、ディスパッチする。部分プロトコルの検出処理320では、異なるプロトコルに関連付けられた種々のシグネチャを、部分データストリームの異なるデータストリーム要素に適用する。一実施形態において、部分プロトコルの検出処理320では、プロトコルの拡張属性を反映させるシグネチャを使ってプロトコルのIDを確認する。既存のシグネチャ識別手法では、プロトコルヘッダのフォーマットを使用して、使用されているプロトコルの種類を確立する。例えば、HTTPのシグネチャ検出では、GET<URI>HTTP/1.1\r\nの文字列を使ってこのプロトコルを識別する。しかしながら上述の文字列を有するHTTPヘッダを含むデータセグメントが失われた場合、既存のシグネチャID手法のHTTPのIDも失われる。本発明の実施形態では、シグネチャを利用してこの制限を解消する。これらのシグネチャは、主要なプロトコル属性だけでなく追加の従属タグ例えば、Keep-alive、Connection、Content-TypeなどのHTTPタグを含む全プロトコル仕様例えば全てのHTTPタグ仕様も反映している。一実施形態において、部分プロトコルの検出処理320では、ヘッダフォーマット例えば、HTTP接続タグConnection:keep-alive\r\nに基づくものと、追加タグの存在との組み合わせを使って、プロトコルシグネチャを認証する。部分プロトコルの検出処理320では、テキストベースプロトコルおよびバイナリプロトコルを含む種々のプロトコルのために、拡張プロトコル属性を反映させるシグネチャを使用する。プロトコルを一旦識別すると、対応するパーサを使ってデータストリーム要素をパーシングする。部分プロトコルの検出処理320によって解析、パーシングされるデータストリーム要素には、アプリケーション層プロトコルヘッダ例えばHTTPまたはSMTPヘッダ、アプリケーションヘッダ例えばeメールヘッダまたはウェブログヘッダおよびプレゼンテーション層ヘッダ例えばzipファイルヘッダまたはマルチパートフォームヘッダがある。ヘッダからヘッダへと遷移させることによって、部分プロトコルの検出処理320では対応するパーサを使ってヘッダをパーシングし、次の層における処理に必要なメタデータを抽出する。一実施形態において、収集したメタデータがそれぞれのコンテンツ部分の発見やコンテンツの種類の識別に十分でない場合、部分プロトコルの検出処理320は、コンテンツ部分の種類例えば、eメールメッセージの本文またはeメール添付を決定するため、シグネチャをコンテンツ部分に適用することによって処理を続ける。メタデータのパーシング処理322では、パーサによって抽出されたメタデータを記録する。メタデータには、送信者と受信者の情報例えば、Facebookのような特定アプリケーションのためにHTTPヘッダに埋め込まれているもの、損失セグメントの位置、部分データストリームに存在するコンテンツ部分の位置、コンテンツ部分の長さ例えば、損失セグメントによる、部分データを含むeメールメッセージの本文、コンテンツ部分の種類および該当する場合には、コンテンツ部分に使用される変換の種類例えば圧縮または符号化の種類がある。コンテンツの特徴に加え、メタデータには、部分データストリームに存在する異なるヘッダの特徴例えば、種類、長さなどが含まれる。メタデータのパーシング処理322では、部分データストリーム処理における異なる層のメタデータを収集し、この情報は次の層の処理を補助する。特に、メタデータは次の処理が行われている際にヒントとして使用することができる。例えば、メタデータがデータセグメントの前の2つのデータストリーム要素をHTTPヘッダおよびSMTPヘッダとして識別する場合、データセグメントの現在のデータストリーム要素はwebメールヘッダである可能性が高い。コンテンツの発見処理324では、部分データストリームに存在するコンテンツ部分の位置と種類を決定し、該当する場合、これらのコンテンツ部分の復号化および/またはマーシャリングのレベルを定義する。コンテンツの発見処理324ではまた、部分データストリームにおいて、損失セグメントのコンテンツ部分のパディングも行う。例えば、マルチパートフォームを処理する場合、非常に長いペイロード部分は部分データセットとなることがあり、このような損失は、メタデータストア内のストリームの位置のパディングおよびタグ付けによって表すことができる。一実施形態において、コンテンツの発見324では、部分データストリームに存在するコンテンツ部分を有効とし、そしてパディングされた部分を無効としてラベルを付け、次の操作例えばDLPスキャン処理にどの部分を無視することができるかを知らせる。下の層からのメタデータは、変換するコンテンツが存在するかまたはしないかを決定するために使用することができる。コンテンツの発見処理324では、異なる種類のコンテンツにおける次の処理のための、ユーザ設定の可能な方法または所定の方法を識別することができるが、この場合、次の処理には、全ての利用できるコンテンツまたは部分コンテンツの変換、およびコンテンツのDLPスキャンを含むことができる。一実施形態において、プレゼンテーション層306で行われる処理には、部分データストリームにおけるコンテンツの変換を行うプレゼンテーションの変換処理326が含まれる。全て利用可能なコンテンツは、標準変換プロセス例えばgzip解凍などを使って変換することができる。部分コンテンツの場合、プレゼンテーション変換326では、部分データ操作専用のハイブリッド変換エンジンを使用し、マルチパートフォーム、圧縮データおよび符号化データなどのコンテンツの制限を理解し、それに従ってコンテンツを変換することができる。一実施形態において、データコンテンツ層308で行われる処理には、全DLPスキャン処理328、部分DLPスキャン処理330およびDLP部分警報処理332が含まれる。全DLPスキャン処理328は、データストリームにおける全ての利用可能なコンテンツを、機密情報の指紋を使って機密情報に関してスキャンするために使用する。部分データコンテンツの場合、部分DLPスキャン処理330を使用する。これはプロトコルおよびコンテンツの解析中に派生したメタデータを理解するように構成されている。部分DLPスキャン処理330ではメタデータを使用して部分コンテンツの許容レベル例えば、欠落したコンテンツの大きさがどれ位であるかを計算し、DLPスキャン中の指紋照合基準を定義する例えば、部分コンテンツと指紋との間の類似度が少なくとも75である場合に照合をトリガするなど。メタデータは、ストリームマーカを介して、無視するべきコンテンツ部分の表示にも使用され、スキャンを続けるべき相対的なコンテンツ/指紋の交差の提供にも使用される。一実施形態において、部分DLPスキャン処理330において変換する必要のないデータの処理を行う場合、部分DLPスキャン処理330ではパターン照合手法を使って、元のコンテンツ指紋と部分セット可能な場合との間の次の有効なデータ交差の位置を見つける。部分DLPスキャン処理330でkグラムの指紋すなわちk個の文字のセットの指紋を使用する一実施形態において、メタデータは、kグラム指紋とコンテンツの適切な部分との位置を合わせ、欠落したコンテンツ部分に対応するkグラム指紋を無視するために使用される。一実施形態において、部分DLPスキャン処理330で解凍データを処理する場合、メタデータを使用して、評価中の特定のファイルを確認する。この目的のために使用するメタデータは、添付タグおよび他のそのような標識を介したファイル名であってもよい。ファイルのIDを決定すると、上述のパターン照合手法および/またはkグラム指紋を使ってスキャンを行うことができる。全てのスキャン手法に関して、欠落したデータの量に対する照合の割合は、警報の決断のための計算中に粒度/重量を提供するための測定関数として定義することができる。DLP部分警報処理332では、DLPポリシーの違反が検出された際に警報を生成する。DLPポリシーのルールにより、違反は例えば、指紋照合が単一のメッセージ内で検出された場合、または指紋照合が同じ送信者から送信された少なくともN個のメッセージで検出された場合、あるいは指紋照合が特定の受信者に送信されたメッセージで検出された場合などにトリガすることができる。DLP部分警報処理332によって生成される警報には、損失の可能性がその誤検出FPの確立に対して決定できるように、解析されたデータのレベルおよび/または割合および/または量を定義する追加情報を含むことができる。この追加情報は警報の信頼性を示す。図4~図7は、本発明のいくつかの実施形態に係るネットワークデバイス例えば、図1のネットワークデバイス108によって行われる方法を示すフローチャートである。これらの方法は、ハードウェア電気回路、専用論理回路など、ソフトウェア汎用コンピュータシステムまたは専用マシンで実行されるものまたはそれらの組み合わせから構成することのできる処理論理回路によって行われる。図4は、部分データストリームにおけるデータ損失の監視方法400の一実施形態のフローチャートである。方法400は、ネットワークデバイスで損失セグメントを含む部分データストリームを識別するステップブロック402から始めることができる。部分データストリームはトランスポート層プロトコルヘッダまたはアプリケーション層プロトコルヘッダを使って識別することができる。TCPヘッダを使って部分データストリームを識別する方法の一実施形態について、図5を参照して以下に詳述する。ブロック404において、ネットワークデバイスは部分データストリームのコンテンツの特徴を決定する。部分データストリームのコンテンツの特徴には、部分データストリームに存在するコンテンツ部分の位置、部分データストリームに存在する各コンテンツ部分の長さ、部分データストリームに存在する各コンテンツ部分の種類、部分データストリームに存在するコンテンツ部分に必要な変換の種類該当する場合および部分データストリーム内における損失セグメントのコンテンツ部分の位置がある。部分データストリームのコンテンツの特徴を決定する方法のいくつかの実施形態を、図6および図7を参照して以下に詳述する。決定されたコンテンツの特徴に基づき、ネットワークデバイスは部分データストリームに存在するコンテンツ部分を発見し、部分データストリーム内の損失セグメントのコンテンツ部分をパディングするブロック406。該当する場合、ネットワークデバイスは部分データストリームのコンテンツを変換例えば、解凍または復号化する。部分データストリームのコンテンツを変換する方法の一実施形態を、図8を参照して以下に詳述する。ブロック408において、ネットワークデバイスは、一以上のDLPポリシーに従い、部分データストリームを機密情報についてスキャンする。ネットワークデバイスは機密情報の指紋を使ってスキャンを行うことができ、DLPポリシーの違反を識別するDLP警報を生成することができる。DLP警報は部分データストリーム内の欠落したコンテンツの割合を特定し、DLP警報の信頼性を示すこともできる。部分データストリームのDLPスキャンの方法に関する一実施形態を、図9を参照して以下に詳述する。図5は、損失セグメントを含む部分データストリームを識別する方法500に関する一実施形態のフローチャートである。方法500は、ネットワークデバイスでデータストリームがまだ生成されていない接続タプルソースアドレス/ポートおよび宛先アドレス/ポートと関連付けられたセグメントを検出するステップから始まるブロック502。ブロック504において、ネットワークデバイスは、この接続タプルに関連付けられた初期セグメント例えば、TCP制御SYN/ACKセグメントが存在するかどうか例えば、検出されたセグメントがTCP制御セグメントか、またはバッファ内に対応するTCP制御セグメントがあるかを決定する。識別された接続タプルに関連付けられた初期セグメントが存在する場合、ネットワークデバイスは初期セグメントに基づいて新しいデータストリームを生成しブロック510、この新しいデータストリームを新しいセッションと関連付けブロック512、ブロック514に進む。識別された接続タプルに関連付けられた初期セグメントが存在しないすなわち失われた場合、ネットワークデバイスは接続タプルに基づいて新しいデータストリームを生成しブロック505、このデータストリームのセッションがすでに存在しているか否かを決定するブロック506。このデータストリームのセッションが存在しない場合、ネットワークデバイスはデータストリームを新しいセッションと関連付けブロック512、ブロック514に進む。このデータストリームのセッションがすでに存在する場合、ネットワークデバイスはデータストリームを存在するセッションに関連付けブロック508、ブロック514に進む。ブロック514において、ネットワークデバイスはセグメントのトランスポート層ヘッダ例えば、データセグメントのTCPヘッダ内のシーケンス番号を使って、データストリームに属するセグメントを識別する。ブロック516において、ネットワークデバイスはデータストリームから欠落したセグメントを識別する。ブロック518において、ネットワークデバイスは欠落したセグメントを損失セグメントキュー上に置く。キューに置かれたセグメントがキャプチャされた場合ブロック520、ネットワークデバイスはこのセグメントをキューから取り除きブロック522、ブロック524に進む。ブロック524において、ネットワークデバイスはストリーム終端の表示を例えば、TCPFINメッセージとして受信したかどうかを決定する。受信している場合、方法500はブロック528に進む、受信していない場合、ネットワークデバイスは所定の時間間隔が経過したかどうかを決定するブロック526。経過している場合、方法500はブロック528に進む。経過していない場合、方法500はブロック520に戻る。ブロック528において、ネットワークデバイスは損失セグメントキューに残っているセグメントを損失セグメントとしてマークする。図6は、部分データストリームのコンテンツの特徴を決定する方法600の一実施形態のフローチャートである。方法600は、ネットワークデバイスで部分データストリーム内における各損失セグメントの位置に開始マーカおよび終了マーカを挿入するステップから始まるブロック602。ブロック604において、ネットワークデバイスは各損失セグメントの位置をメタデータストアに記録する。ブロック606において、ネットワークデバイスは部分データストリームにおけるデータストリーム要素のプロトコル解析を行う。プロトコル解析には、部分データストリームにおけるデータストリーム要素の種類を決定するステップと、対応するパーサを使ってデータストリーム要素をパーシングして、データストリーム要素からメタデータを抽出するステップとが含まれる。プロトコル解析方法の一実施形態を、図7を参照して以下に詳述する。図7は、部分データストリームにおけるデータストリーム要素のプロトコル解析を行う方法700の、一実施形態によるフローチャートである。方法700は、ネットワークデバイスにおいて、部分データストリームに存在する第1データセグメントを識別するステップから始まるブロック702。ブロック704において、ネットワークデバイスは第1データセグメントのトランスポート層プロトコルヘッダ例えばTCPヘッダをパーシングし、次のデータストリーム要素の開始を識別する例えば、HTTPヘッダ、SMTPヘッダなどのアプリケーション層プロトコルヘッダの先頭。ブロック706において、ネットワークデバイスは次のデータストリーム要素の種類がわかっているかどうか例えば、次のデータストリーム要素が自身の種類の識別子を含んでいるか、または前のデータストリーム要素が次のデータストリーム要素の識別子を含んでいたかを決定する。データストリーム要素の種類がわかっている場合、ネットワークデバイスは対応するパーサをデータストリーム要素に適用してメタデータを抽出し、データストリーム要素の終端を検出するブロック710。データストリーム要素の種類がわからない場合、ネットワークデバイスは照合するシグネチャが見つかるまで、シグネチャのセットをデータストリーム要素に適用しブロック708、対応するパーサをデータストリーム要素に適用してメタデータを抽出し、このデータストリーム要素の終端を検出するブロック710。一実施形態において、シグネチャを適用する前に、ネットワークデバイスはいつ新しいフィールドまたはヘッダタグが利用できるかを示す共通のデリミタを識別し、プロトコルシグネチャ処理で認識される可能性のある、可能な最初のプロトコルタグから開始するようにストリームを配置する。複数のデリミタ標識を単一のデータストリーム内に置くことができるので、各々の可能な開始位置を、シグネチャの適用に使用することができる。一実施形態において、ネットワークデバイスはプロトコルの拡張属性を反映するシグネチャを使ってプロトコルのIDを確認する。プロトコルシグネチャは、ヘッダフォーマット例えば、HTTP接続タグConnection:keep-alive\r\nに基づくものと追加タグの存在との組み合わせを使って有効にすることができる。解析、パーシングされるデータストリーム要素には、アプリケーション層プロトコルヘッダ例えばHTTPまたはSMTPヘッダ、アプリケーションヘッダ例えばeメールヘッダまたはウェブログヘッダおよびプレゼンテーション層ヘッダ例えばzipファイルヘッダまたはマルチパートフォームヘッダがある。ブロック712において、ネットワークデバイスはパーシング中に抽出したメタデータをメタデータストアに格納する。メタデータにはデータストリーム要素の種類例えば、HTTPヘッダ、SMTPヘッダ、eメールヘッダ、Facebookヘッダ、zipファイルヘッダなど、送信者と受信者の情報例えば、Facebookのような特定アプリケーションのためにHTTPヘッダに埋め込まれたもの、損失セグメントの位置、部分データストリーム内に存在するコンテンツ部分の位置、コンテンツ部分の長さ例えば、損失セグメントによる部分データを含むeメールメッセージの本文、コンテンツ部分の種類および該当する場合、コンテンツ部分に使用される変換の種類例えば、圧縮または符号化の種類が含まれる。データストリーム要素のパーシングが終了すると、ネットワークデバイスは現在のデータセグメントが他のデータストリーム要素を含んでいるか否かを決定することができるブロック714。含んでいる場合、ネットワークデバイスはデータセグメントの次のデータストリーム要素に移動しブロック718、ブロック706に戻る。一実施形態において、次のデータストリーム要素がデータセグメントのコンテンツ部分である場合、ネットワークデバイスは収集したメタデータがコンテンツ部分に関する十分な情報例えば、コンテンツ部分の長さ、コンテンツ部分の種類、コンテンツ部分に必要な変換を含んでいるかどうかを決定する。含んでいる場合、ネットワークデバイスはコンテンツ部分の処理をスキップし、ブロック716に進む。含んでいない場合、ネットワークデバイスはブロック706から714でコンテンツ部分を処理し、ブロック716に進む。ブロック716において、ネットワークデバイスは、部分データストリームがまだ処理されていないデータセグメントをさらに含んでいるか否かを決定するブロック716。含んでいない場合、方法700は終了する。含んでいる場合、ネットワークデバイスは部分データストリームに存在する次のセグメントに進みブロック720、ブロック704に戻る。図8は、部分データストリームのコンテンツを変換する方法800に関する一実施形態のフローチャートである。方法800は、ネットワークデバイスにおいて部分データストリームに存在する各コンテンツ部分の位置を決定するステップブロック802および部分データストリーム内に存在する各コンテンツ部分の種類を決定するステップブロック804から始まる。ネットワークデバイスはメタデータストアに格納されたメタデータを使用してこの決定を行う。ブロック806において、ネットワークデバイスは部分データストリームに存在するデータセグメントのコンテンツ部分を有効としてタグ付けを行い、損失データセグメントのパディングされたコンテンツ部分を無効としてタグ付けを行い、DLPスキャン中にどの部分をスキャンし、どの部分を無視するのかを示す。ブロック808において、ネットワークデバイスは任意のコンテンツ部分が変換を必要とするか否かを決定する。必要としない場合、方法800は終了する。必要とする場合、ネットワークデバイスは必要とされる変換を識別しブロック810、部分データストリームに存在する対応するコンテンツ部分を変換するブロック812。いくつかの実施形態において、部分データ操作専用で、マルチパートフォーム、圧縮データおよび符号化データの制限を解釈するハイブリッド変換エンジンを、部分コンテンツの変換に使用する。変換エンジンの使用はコンテンツの種類に応じて例えば、ユーザ指定データに基づいて設定することができる。図9は、部分データストリームにおけるDLPポリシー違反を検出する方法900に関する一実施形態のフローチャートである。ブロック902において、ネットワークデバイスは部分データストリームのコンテンツを機密情報についてスキャンするブロック902。部分データストリームのコンテンツが全て利用できる場合、ネットワークデバイスは機密情報の指紋を使ってコンテンツをスキャンする。コンテンツのいくつかの部分が欠落している場合、ネットワークデバイスは部分コンテンツの許容レベル例えば、欠落したコンテンツの大きさがどれ位であるかを決定し、DLPスキャン中の指紋照合基準例えば、部分コンテンツと指紋との間の類似度が少なくとも75である場合に照合をトリガするなどを定義する。一実施形態において、スキャンするコンテンツを変換する必要がない場合、ネットワークデバイスはパターン照合手法を使って、最初のコンテンツ指紋と部分セットとの間の次の有効なデータ交差の位置を見つける。一実施形態において、ネットワークデバイスはkグラムの指紋を使い、欠落したコンテンツ部分に対応するkグラム指紋を無視して、kグラムの指紋とコンテンツの適切な部分とをメタデータに基づいて位置合わせする。あるいは、スキャンするコンテンツが解凍されたデータを含んでいる場合、ネットワークデバイスはメタデータを使って評価中の特定のファイルを確認する。この目的に使用されるメタデータは、添付タグまたは他のそのような標識によるファイル名であってもよい。ファイルのIDが決定されると、上述のパターン照合手法および/またはkグラム指紋を使ってスキャンを行うことができる。ブロック904において、ネットワークデバイスは部分データストリームが機密情報を含んでいるか否かを決定する。含んでいない場合、方法900を終了する。含んでいる場合、ネットワークデバイスは損失セグメントによって何パーセントのコンテンツが欠落しているのかを計算するブロック906。さらにネットワークデバイスは欠落したデータの量に対する照合の割合を計算することもできる。ブロック908において、ネットワークデバイスはDLPポリシー違反と欠落したコンテンツの割合とを報告する。さらに、欠落したデータの量に対する照合の割合も報告することができる。図10は、コンピュータシステム1000の例示的な形態におけるマシンを図式で表したものであり、このコンピュータシステム内では、本明細書に記載する方法の内の一つまたは複数をマシンに実行させる命令のセットを実行することができる。代替実施形態において、マシンは他のマシンにLAN,イントラネット、エクストラネットまたはインターネットで接続ネットワーク接続することができる。マシンはクライアントサーバネットワーク環境において、サーバまたはクライアントマシンとして、またはピアツーピアまたは分散ネットワーク環境において、ピアマシンとして操作することができる。このマシンは、スニファー、パソコンPC,タブレット型PC、セットトップボックスSTB、パーソナルデジタルアシスタントPDA、携帯電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチまたはブリッジあるいはそのマシンのとる動作を特定する命令のセット連続的またはその他を実行することのできる任意のマシンとすることができる。さらに、単一のマシンのみを説明したが、マシンという用語は、命令の一セットまたは複数のセットを個々にまたは共同して実行し、本明細書に記載する方法の内の一つまたは複数を実行するマシンの任意の集合体を含むと解釈されたい。例示的コンピュータシステム1000は、処理装置プロセッサ1002、メインメモリ1004例えば、読み取り専用メモリROM、フラッシュメモリ、同期DRAMSDRAMなどの動的ランダムアクセスメモリ、スタティックメモリ1006例えば、フラッシュメモリ、スタティックRAMSRAMなどおよびバス1008を介して相互に通信するデータ記憶装置例えばドライブユニットを含む。プロセッサ1002は、マイクロプロセッサ、中央演算処理装置などの一以上の汎用処理装置を表す。より詳細には、プロセッサ1002は、複数命令セットコンピュータCISC:complexinstructionsetcomputingマイクロプロセッサ、縮小命令セットコンピュータRISC:reducedinstructionsetcomputingマイクロプロセッサ、超長命令語VLIW:verylonginstructionwordマイクロプロセッサまたはその他の命令のセットを実行するプロセッサもしくは命令セットの組み合わせを実行するプロセッサであってもよい。プロセッサ1002はまた、特定用途向け集積回路ASIC:applicationspecificintegratedcircuit、フィールドプログラマブルゲートアレイFPGA:fieldprogrammablegatearray、デジタルシグナルプロセッサDSP:digitalsignalprocessor、ネットワークプロセッサなどの、一以上の特定用途向け処理装置であってもよい。プロセッサ1002は、本明細書に記載の操作やステップを行うための処理論理回路例えば命令1026を実行するように構成される。コンピュータシステム1000は、ネットワークインターフェース装置1022をさらに含むことができる。コンピュータシステム1000にはまた、ビデオディスプレー装置1010例えば、液晶表示LCD:liquidcrystaldisplayまたはブラウン管CRT:cathoderaytube、英数字入力装置1012例えばキーボード、カーソル移動制御装置1014例えばマウス、信号発生装置1020例えばスピーカーも含まれる。データ記憶装置1016は、本明細書に記載の方法または機能の内の一つまたは複数を具体化する、一以上の命令のセット例えばソフトウェア1026が格納された、コンピュータ可読媒体1024を含むことができる。ソフトウェア1026はまた、コンピュータ可読媒体を構成するコンピュータシステム1000、メインメモリ1004およびプロセッサ1002によって実行される間、メインメモリ1004および/またはプロセッサ1002内に完全に、または少なくとも部分的に置いてもよい。ソフトウェア1026はさらに、ネットワークインターフェース装置1022を介してネットワーク1020で送受信することができる。コンピュータ可読媒体1024を例示的実施形態において単一の媒体として説明したが、コンピュータ可読媒体という用語は、一以上の命令のセットを格納する単一または複数の媒体例えば、集中または分散データベースおよび/または関連するキャッシュまたはサーバを含むものと解釈されたい。コンピュータ可読媒体という用語はまた、マシンによって実行するための命令のセットを格納、符号化またはキャリーすることができ、マシンに本発明の一以上の方法を実行させる任意の媒体を含むと解釈されたい。よってコンピュータ可読媒体という用語は、ソリッドステートメモリ、光媒体および磁気媒体を含むが、それらに限定されるものではないと解釈されたい。上述の説明において、周知の構造および装置を詳細ではなくブロック図で示し、本発明が曖昧なものにならないようにした。説明のいくつかの部分は、コンピュータメモリ内のデータビットの演算アルゴリズムおよび記号表現の用語で表している。これらのアルゴリズム的記述および表現は、データ処理を行う当事者が彼らの作業の内容を他の当事者へ最も効率的に伝えるための手段である。本明細書において、そして一般に、アルゴリズムは所望の結果を導き出すステップの自己無撞着なシーケンスであると考えられる。ステップは物理量の物理的操作を必要とするものである。一般に、これらの量は格納、伝送、結合、比較およびその他の操作が可能な電気または磁気信号の形態をとるが、必ずしもそうでなければならないということではない。主に共用のため、時として、これらの信号をビット、値、要素、記号、文字、用語、数字などと称すると便利であることがわかっている。しかしながらこれらの用語および類似の用語は全て適切な物理量に関連するものであり、これらの量に適用される便利なラベルにすぎないものであると留意されたい。特に明記しない限り、上述の記載から明らかなように、説明全体において識別、適用、抑制、スキャン、更新などの用語を使用している記載は、コンピュータシステムのレジスタおよびメモリ内において物理例えば電子量で表されるデータを、コンピュータシステムメモリ、レジスタまたはその他の情報記憶装置、伝送装置または表示装置内において物理量として表される同様の他のデータに操作、変換するコンピュータシステムまたは類似の電子コンピューティングデバイスの動作および処理のことであると理解されたい。本発明の実施形態は、本明細書における操作を行うための装置に関するものでもある。その装置は、必要とされる目的のために特別に構成することができる、または、コンピュータに格納されたコンピュータプログラムによって選択的に起動または再設定される汎用コンピュータを備えることができる。上述のように、このようなコンピュータプログラムはコンピュータ可読媒体に格納することができる。本明細書に提示するアルゴリズムおよび表示は、任意の特定のコンピュータまたはその他の装置と本質的に関係があるものではない。種々の汎用システムを本明細書の教示に従ってプログラムと共に使用することができる、または、必要とされる方法のステップを行うためにより特殊化された装置を構成すると便利だろう。これらの種々のシステムに必要とされる構造は、下記の記載から明らかとなるだろう。さらに本発明は、任意の特定のプログラミング言語を使って説明していない。本明細書に記載する発明の教示を実現するには、種々のプログラミング言語を使用することができると理解されたい。上記の記載は説明のためのものであって、制限するものではないと理解されたい。当事者であれば、上述の記載を読んで理解する際に、多くの他の実施形態が明らかとなるであろう。従って本発明の範囲は、添付の特許請求の範囲およびこの特許請求の範囲に権利が与えられる均等物の全ての範囲を参照して決定されるべきである。"