JP5519646B2 - ファイルの存在検出とモニタリング - Google Patents

ファイルの存在検出とモニタリング Download PDF

Info

Publication number
JP5519646B2
JP5519646B2 JP2011510797A JP2011510797A JP5519646B2 JP 5519646 B2 JP5519646 B2 JP 5519646B2 JP 2011510797 A JP2011510797 A JP 2011510797A JP 2011510797 A JP2011510797 A JP 2011510797A JP 5519646 B2 JP5519646 B2 JP 5519646B2
Authority
JP
Japan
Prior art keywords
file
imprint
initial
computer
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011510797A
Other languages
English (en)
Other versions
JP2011523130A (ja
Inventor
デビッド,ジャン−ピエール
Original Assignee
ポリバロー リミテッド パートナーシップ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ポリバロー リミテッド パートナーシップ filed Critical ポリバロー リミテッド パートナーシップ
Publication of JP2011523130A publication Critical patent/JP2011523130A/ja
Application granted granted Critical
Publication of JP5519646B2 publication Critical patent/JP5519646B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

この特許出願は、その明細書の内容を本願明細書中に組み入れた2008年6月2日付け米国仮出願第61/057944号「ネットワーク・ファイル送信モニタリング」に基づく優先権を主張する。
本発明は、ファイルの存在モニタリング、より詳しくは、発信源から送信先へ送信中の、または記憶媒体に記憶中の特定のファイルまたはファイルの一部の検出に関する。
多くの組織は、ある種のファイルがネットワークを介して送信されることが絶対にないように、送信されるとしたら安全に送信されることを、これらのファイルの機密性を維持するために必要としている。このことは、例えば、部外者の発信元から、または部外者の送信先へ、または想定外の時間において、予期しないネットワーク部分を介して行なわれる既知ファイルの転送に関してネットワークをモニターすることによって達成される。政府や公共の警備機関も、サイバーウォッチやサイバー監視を利用して潜在的な攻撃、不法なファイル所有などの摘発に努めている。サイバー監視は、サイバー・ウィルスとの戦いにも、著作権保護の強化にも有効である。
現在のサイバー監視は、ネットワークを介して送信されるデータから幾つかのパターンまたは特徴を抽出する、ソフトウェアをベースとする「スニファー」を使用して行われるのが典型である。抽出されたデータが解析される。多くの場合、種々のネットワーク層で送信されたデータは、さらなる処理がなされる前に完全に再構成することによってファイルを特定する。このようなスキームは、時間がかかり、且つ相当の処理資源を要する。従って、送信が例えば100Mb/sというような比較的遅いデータ送信速度で行われる場合でも、データがネットワークを介して送信された後に初めてファイル検出が達成されるということになる。
従って、送信中でも、静的に媒体に記憶されるときでも、既知ファイルを検出できるように改良された方法およびシステムが必要である。
ネットワークを介して電子ファイルが送信される過程でも、ファイルが媒体に記憶されるときでも、既知ファイルを検出できる本発明の方法およびシステムを以下に説明する。
第1実施態様によれば、コンピュータ可読媒体において実施され、ファイルの一部を受信し、この部分からコンテンツを抽出し;コンテンツに対して多数回に亘って初期関数を適用し、即ち、コンテンツ中のエレメントの複数のブロックのそれぞれに初期関数を適用してブロックのそれぞれに割当てられる表示を作成し;ファイル部分毎の初期インプリントとして多数の表示から表示の1つを選択し;初期インプリントを、検出すべき既知電子ファイルに割当てられた、少なくとも初期関数を利用して作成された複数の検出インプリントを含む第1メモリーのコンテンツと比較し;初期インプリントが第1メモリー中の検出インプリントと対応するときマッチ(match)と判断するように構成された既知電子ファイル検出モジュールが提供される。
他の実施態様によれば、ファイルの一部を受信し、この部分からコンテンツを抽出し;コンテンツに対して多数回に亘って初期関数を適用し、即ち、コンテンツ中のエレメントの複数のブロックのそれぞれに初期関数を適用してブロックのそれぞれに割当てられる表示を作成し;ファイル部分毎の初期インプリントとして多数の表示から表示の1つを選択し;初期インプリントを、検出すべき既知電子ファイルに割当てられた、少なくとも初期関数を利用して作成された複数の検出インプリントを含む第1メモリーのコンテンツと比較し;初期インプリントが第1メモリー中の検出インプリントと対応するときマッチ(match)と判断するように構成された少なくとも1基のコンピュータを含み、既知電子ファイルを検出するためのソフトウェア・プロセスを実行するネットワークが提供される。
さらに他の実施態様によれば、ファイルの一部を受信し、この部分からコンテンツを抽出し;コンテンツに対して多数回に亘って初期関数を適用し、即ち、コンテンツ中のエレメントの複数のブロックのそれぞれに初期関数を適用してブロックのそれぞれに割当てられる表示を作成し;ファイル部分毎の初期インプリントとして多数の表示から表示の1つを選択し;初期インプリントを、検出すべき既知電子ファイルに割当てられた、少なくとも初期関数を利用して作成された複数の検出インプリントを含む第1メモリーのコンテンツと比較し;初期インプリントが第1メモリー中の検出インプリントと対応するときマッチ(match)と判断するステップを含む、既知電子ファイルを検出するための、コンピュータによって実行される方法が提供される。
さらに他の実施態様によれば、ファイルの一部を受信し、この部分からコンテンツを抽出し;コンテンツに対して多数回に亘って初期関数を適用し、即ち、コンテンツ中のエレメントの複数のブロックのそれぞれに初期関数を適用してブロックのそれぞれに割当てられる表示を作成し;ファイル部分毎の初期インプリントとして多数の表示から表示の1つを選択し;初期インプリントを、検出すべき既知電子ファイルに割当てられた、少なくとも初期関数を利用して作成された複数の検出インプリントを含む第1メモリーのコンテンツと比較し;初期インプリントが第1メモリー中の検出インプリントと対応するときマッチ(match)と判断するように構成された、既知電子ファイル検出のためのディジタル・デバイス・ネットワークが提供される。
ディジタル・デバイスのネットワークは、プロセッサ、メモリー、マイクロコントローラー、マイクロプロセッサ、フィールド・プログラマブル・ゲート・アレイ、論理ゲート・アレイ、トランジスタのような半導体デバイス、またはこれらと等価のデバイスまたは対応の構成を有する周知のディジタル・デバイスを含む。
本発明の方法およびシステムを使用することによって、ネットワーク上の、または記憶媒体に記憶されているファイルまたはファイルの部分の存在を検出することができる。もしファイルの一部が第1ルーター/サーバーを通過し、同じファイルの他の部分が第2ルーター/サーバーを通過した場合、表示の幾つかだけしか検出されないが、充分な数の表示が受信されれば、ファイルを検出できる。ハード・ドライブ、DVD、CD、USBキーまたはその他の媒体に記憶されているファイルの部分についても同様である。ファイルが記憶される時、ファイルが複数の部分に分割され、媒体の種々のセクターまたはセグメントに記憶される。ファイルの分割された各部分が2つの隣接するセクターに記憶されていなくても、また、セグメントが全部揃って存在しなくても(例えば、部分的に削除されたファイル)、分割されたファイルの部分を検出することができる。
この明細書において使用される語「表示」(representation)とは、モニターすべきファイル部分または検出すべきファイル部分に属するエレメント群に割当てられる識別マークを意味する。「表示」は、エレメント群に関数を適用することによって割当てることができる。語「関数」は、数学的関数でも非数学的関数であってもよく、エレメントを表示として使用できるものに変換する。幾つかの実施態様においては、ハッシュ関数またはスライディング・ハッシュ関数のように、関数がビット・ファイルに含まれると考えられるビットの総数を減少させることになる。但し、例えば、1組のビットを数値に変換する関数または0次元ファイル中の構造データ・エレメントから表示を作成する関数のような異なるタイプの関数を利用することもできる。
さらにまた、この明細書中に使用される語「インプリント」は。ファイル部分またはファイルに属する、例えば、ビットのような同一エレメント群に割当てられる初期表示セットから選択される表示または表示群を意味する。選択は、1つまたは1組の関数を使用して、または任意に行なうことができる。インプリントは、ファイルまたはファイル部分に割当てられる。エレメント群に1つだけの表示が割当てられる場合、表示は、このエレメント群のためのインプリントを形成する。
「エクストラ・データ」という表現は、「インプリント」と連携するビット群を含むファイルの部分を意味し、このビット群を含めてこれを囲むデータに相当する。「エクストラ・データ」として選択されるデータの量は可変であり、所与のマッチ(match)基準に必要な信頼度に応じて異なる。エクストラ・データは必須なものではない。
最後に、この明細書中に使用される語「シグネチャ」は、モニターすべき1つの全ファイルに割当てられる複数のインプリントを意味する。シグネチャは、1つのファイルに関して決定されたすべてのインプリントを含む。1つのファイルに1つだけのインプリントが割当てられる場合、このインプリントがファイルのシグネチャを形成する。
コンピュータ可読媒体において実施されるモジュールは、USBキー、携帯電話、ハード・ドライブ、CD/DVD、またはその他のタイプの、電子媒体用支持体またはメモリーに実装してもよい。
本発明の実施態様を添付の図面を参照して以下に説明する。添付の図面において:
図1aは、本発明の一実施態様として、ネットワーク上または媒体中におけるファイルの存在を検出する方法を示すフローチャートである。 図1bは、図1aのステップを示すフローチャートである。 図2は、本発明の一実施態様として、連携のインプリントを求めるための、ファイルまたはその一部の分割を例示する簡略図である。 図3aは、本発明の一実施態様として、インプリントおよびエクストラを含むテキスト・ファイル部分を例示する。 図3bは、2進レベルで表わされ、スライディング・ハッシュ関数を適用された図3のテキスト・ファイル部分を例示する。 図4aは、不思議の国のアリスから抜粋されたテキストのサンプル・ブロックの例である。 図4bは、フィルタ後における図4aからのテキストのサンプル・ブロックである。 図4cは、ハッシュ・アルゴリズムが適用され、現在ハッシュ値が最大ハッシュ値として保持されないフィルタリング済みテキスト・ブロックを示す。 図4dは、ハッシュ・アルゴリズムが適用され、現在ハッシュ値が最大ハッシュ値として保持されないフィルタリング済みテキスト・ブロックを示す。 図5aは、図1bの方法の一実施態様を示すフローチャートである。 図5bは、図1aの方法の一実施態様を示すフローチャートである。 図6は、一実施態様として、送信中のファイル部分の存在を検出するように構成されたモジュールである。 図7は、一実施態様として、記憶媒体におけるファイル部分の存在を検出するように構成されたモジュールである。
添付の全図面を通して、類似の構成エレメントには類似の参照符号を付してある。
電子ファイルは、ネットワークを介して送信またはスタティック・メモリーに記憶させることができる。いずれの場合にも、電子ファイルは、種々のファイル部分に分断される。送信の場合、これらの部分は、データ・パケットである。記憶されるファイルの場合、CD/DVDのトラックに、または、例えばハード・ドライブに記憶される場合ならファイルの分断部分に対応する。本発明の方法を利用する場合、ファイルを検出するのにすべての分断部分を再組立する必要はない。本発明の方法およびモジュールを利用すれば、記憶媒体におけるファイルまたはファイルの一部の存在、またはネットワークまたはネットワーク・チャンネルを介しての所与のファイルの送信またはファイルの一部の送信をリアルタイムで検出することができる。ファイルは、その全体が存在しなくてもよい。
図1aに示すように、ネットワークを介して送信中のファイルまたは媒体に記憶されているフアィルの存在を検出する方法は、下記のステップを含む。ステップ10において、検出すべきそれぞれのファイルにファイル・シグネチャを割当ててデータベースを構成する。ファイル・シグネチャはそれぞれのファイルの部分に1つまたは2つ以上の関数を適用することによって得られる。それぞれのファイル・シグネチャは、ファイルの各部分に少なくとも1つのインプリントを割当てることによって形成される。このステップについては、さらに詳しく後述する。ファイル・シグネチャが決定され、データベースに記憶されたら、本発明の方法によって、送信中のファイルの1つまたはその部分、または記憶媒体に存在するファイルまたはその部分を検出することができる。
ステップ20において、ファイルが分析される。それぞれのファイル部分は、(ペイロード・ビットのような)ファイルのコンテンツに関するエレメントやエレメントをパッケージし、フォーマットするカプセルを含む。ファイル送信の場合、これらのエレメントは、発信元および送信先を示し、プロトコルおよびフォーマット層を定義(define)する。あるいはまた、パッケージおよびフォーマット・エレメントが記憶セクターまたは、例えば、ファイルが記憶されているメモリーを示すことができる。
ステップ22において、ファイル部分からペイロード・ビットが抽出される。但し、ファイル部分のプロトコル層を抽出する必要はなく、さらなる検出ステップに必要な情報だけを抽出すればよい。図3Aに例示する電子ファイルの部分300では、インプリント310とエクストラ・データ320の一実施態様が示されている。プロトコル情報の一部または全部をもファイルから抽出する場合には、無視するか、またはノイズとして扱うことができる。これはファイル部分を解析する際に行われる。ペイロード・ビットを抽出する際には、発信元と送信先、セクター、ターゲット・ポート番号、またはネットワークを介して交換される有用な情報を別々に記憶しておけば、検出された際にファイルの送信または記憶に関する補足的な情報をレポートすることができる。ステップ22ではペイロード・ビットのフィルタリングが行なわれ、空白、タブ、行末、空文字または些末な冗語などのような不要なバイトが除去される。
ステップ24において、コンテンツを解析することによってファイル部分にインプリントが割当てられる。このステップは、ファイル部分がネットワーク上を通過中にリアルタイムで行なうことができる。ステップ24において、ファイルにシグネチャが割当てられる時に使用されるのと同じ関数をファイルに適用することによってファイル部分に対するインプリントを得る。
ステップ26において、ファイル部分からのインプリントがデータベースに記憶されているファイル・シグネチャのインプリントのすべてと比較される。データベースは、どんな形のメモリーまたは記憶手段であってもよい。
ステップ27において、ファイル部分のインプリントがファイル・シグネチャにおけるファイル部分のインプリントの1つとマッチ(match)するかどうかが判断される。マッチするなら、次のステップに進む。マッチしなければ、ステップ22に戻り、次のファイル部分が検討される。
ステップ28において、ファイル部分のインプリントに対応するエクストラ・データを、マッチと判断されたデータベース中のインプリントのエクストラ・データを比較する。
ステップ29において、ファイル部分のインプリントに対応するエクストラ・データがデータベース中のマッチング(matching)インプリントのエクストラ・データとマッチするかどうかを判断することによってランダムな且つ部分的なマッチを排除する。もしマッチするなら、ステップ30に進む。もしマッチしなければ、ステップ22に戻って次のファイル部分を検討する。
ステップ30において、マッチが確認される。このことは、ファイル・シグネチャと連携するファイルの少なくとも一部が検出されたことを示唆する。この示唆はファイルの存在を示すトレースである。換言すると、このトレースは、ファイル部分がモニターされている所与のファイルのすくなくとも一部を含むことを指摘するものである。このトレースが検出されれば、マッチング(matching)ファイル・シグネチャと連携するファイルがネットワークを介して実際に送信中であるか、または記憶媒体に記憶されている確率が高い。ステップ30においては、ファイル部分のインプリントとファイル・シグネチャからのインプリントとのマッチに基づいて得られたトレースがレポートされ且つ記憶される。ファイル送信の場合、ステップ30は、ファイル部分送信の発信元および送信先をユーザーにレポートするか、または統計のためこのような情報を記憶することもできる。一実施態様においては、(フォーマット情報を含む)ファイル部分全体を保存することにより、将来いつでも任意の情報を抽出できるようにする。記憶媒体に記憶されているファイルの場合、ステップ30は、デバイスまたは記憶媒体に記憶されている検出対象としてのファイル部分の場所に関する情報をレポートすることもできる。
ステップ32において、次のファイル部分を検討する。従って、ステップ22から32までがそれぞれのファイル部分に対して繰返される。
図1bは、図1aのステップ10をより詳細に示す図であり、本発明の方法の初期段階であり、データベースまたはメモリーに検出用のインプリントおよびシグネチャが設定される。ステップ40において、ファイルまたはその一部が所与の数のデータ・ブロックに分割される。従って、それぞれのデータ・ブロックは、ファイルに属する多数のビットを含む。上述したように、多数のデータ・ブロックに分割する前にファイルをフィルタリングすることも可能である。
ステップ42において、少なくとも1つの表示にそれぞれのデータ・ブロックを割当てる。表示としては、数値、マークまたはデータ・ブロック中のビットを特徴付ける任意の形式を採用することができる。
一実施態様においては、それぞれのデータ・ブロックをさらにサブ−ブロック(図3Bに詳細を示す)に分割し、それぞれのサブ−ブロックに表示を割当てる。この場合、それぞれのブロックのためのインプリントとして表示の1つが選択される。これをステップ43に示す。ブロックをサブ−ブロックにまで細分しない場合には、ブロックの表示は、このブロックに割当てられるインプリントということになる。
ステップ45において、エクストラ・データがデータベースに記憶され、それぞれのインプリントと連携させられる。エクストラ・データは、それぞれのインプリントと連携するファイルの部分を囲むデータであり、ファイル部分検出の2次確認を可能にする。ステップ45において、データ・ブロックに割当てられたインプリントを利用してファイル・シグネチャが求められる。
ステップ46において、ファイル・シグネチャとエクストラ・データがデータベースに記憶される。これらのシグネチャと連携するファイルの識別番号をも記憶させることができる。データベースは、ハッシュ表、連想メモリー、インデックス・メモリーなどのような、情報の迅速な検索を可能にする構造であれば、どのような構造であってもよい。頻繁にではなく、インプリントマッチの場合にのみ使用されるなら、情報のゆっくりとした検索を可能にするメモリーにエクストラ・データを記憶させてもよい。エクストラ・データを記憶するメモリーは、実際の検出を行なうモジュールまたはコンピュータから遠隔に配置してもよい。
ステップ48において、システムは、データベース中の次のファイルまたはファイル部分に移行する。このファイルまたはファイル部分を対象にステップ40〜46が繰返される。ステップ40〜48は、ファイル検出に使用されるファイル・シグネチャのデータベースを作成する。
本発明の方法は、プロトコルのタイプとは無関係であり、ファイルにバイト・レベルの些細な変化があっても支障なく対応できる。e−メールで送信されるファイルを検出する場合、ファイルを例えばBASE64でコード化すればよい。このフォーマット中のデータを検出するためには、オリジナル・ファイルと、BASE64でコード化されているファイルとの双方を考察しなければならない。
図2は、図1bに示すステップ40において行なわれるようなファイルまたはファイル部分の分割を例示する。
ファイル部分50は、サイズがWの幅(窓とも呼称される)を有する多数のデータ・ブロックに分割される。図2に示すように、データ・ブロックは、互にオーバーラップする。オーバーラップすることは必須条件ではないが、オーバーラップ・スキームを採用することで、トレースまたはファイル送信を検出する確率を高くすることができる。ファイル送信検出の確率を高めるためには、ファイルまたはファイル部分をブロック(およびサブ−ブロック)に分割する際にオーバーラッピング・スキームを採用すればよい。
図3bは、2進レベルで表わした場合のバイト・リストとしての文字リストを示す(352)。一実施態様に見られるように大きくオーバーラップする一連のビットに複数のハッシュ関数を適用(以下「適用」というときには「apply」を意味する)する場合には、スライディング・ハッシュを使用すればよい(354)。ハッシュされるウィンドー間に差が1バイトである実施態様においては、スライディング・ハッシュの結果、ハッシュはブロックに含まれるバイトと同数となる。ハッシュの少なくとも1つがこのブロック(またはファイル部分)のためのインプリントとして選択される。
図4aは、物語「不思議の国のアリス」から抜粋されたテキストの一部である。このパラグラフは、物語全体を含むファイルの一部を表わす。図4bでは、スペースなど不要な情報を除くためテキストがフィルタリングされている。図4cでは、16文字から成るそれぞれのシリーズにスライディング・ハッシュが適用されており、第3のハッシュが図示されている。この第3ハッシュのハッシュ値は「0x3ead6b31ca87544」である。この実施態様の場合、本発明の方法は最高ハッシュ値を探しており、そのため、現在ハッシュ値が最後に記録されている最高値と比較されるが、この最後に記録された最高値が「現在のインプリント」として識別され、「0xedbb925b6ca6b761」に相当する。このヘキサデシマル値は現在ハッシュ値よりも高いから、もはや現在値ではない。図4dは、先行の「現在インプリント」と比較してこれよりも高いことが判明したため、新しい「現在インプリント」として記憶される新しい現在ハッシュ値を示す。このアプローチを利用し、系統立った方法でファイルにアルゴリズムを適用して一度に1つだけの値を記憶することができる。これに代わるアプローチとして、それぞれの現在ハッシュ値を記憶し、すべてのハッシュが適用された後にインプリントを選択することも可能である。
図5aを参照して、図1bの方法におけるステップ40からステップ46の詳細な実施態様を説明する。
ステップ60において、ファイルをそれぞれが幅Wを有するデータ・ブロックに分割する。幅Wはすべてのデータ・ブロックに関して一定とするか、または既知のビヘビアのような所与のパラメータに従って変化させるかのいずれかである。
例えば、20,480バイトを含むファイルをフィルタリングすることによって480バイトを除くことができる。残る20,000バイトをB=4個のオーバーラップするデータ・ブロックに分割する:

b1=ファイル[1...5015](サイズは5015バイト)
b2=ファイル[5001...10015](サイズは5015バイト)
b3=ファイル[10001..15015](サイズは5015バイト)
b4=ファイル[15001..20000](サイズは5000バイト)
ステップ62において、図1のステップ42と同様に、それぞれのデータ・ブロックに少なくとも1つの表示を割当てるため、B個のデータ・ブロックのそれぞれにN個の関数hから成る群を適用する。但し、Nは1からNまでの整数である。関数hを適用することで、例えば、データ・ブロックb1,b2,b3およびb4のそれぞれにN個の表示が割当てられる。図3bにおいて、関数hは例えばスライディング・ハッシュ関数である場合も可能であり、この場合、B個のデータ・ブロックのそれぞれから予め抽出された幅Wの連続するS個のサブ-ブロックすべてにハッシュ関数HFが適用される。従って、1つのデータ・ブロックにN個の関数からなる群を適用する結果、1つのデータ・ブロックにN×Sの表示が割当てられることになる。Sはサブ−ブロックの個数である。表示は数値などのように識別性を有するものなら如何なるものでもよい。
データ・ブロックb1〜b4の上記例においては、例えば、幅W=16バイトのそれぞれのサブ−ブロックにN個のハッシュ関数が適用される:
データ・ブロックb1は抽出されたS=5000個の幅16のサブ−ブロックを有する:

ファイル[1..16],ファイル[2..17],...ファイル[5000..5015]
データ・ブロックb4は、幅16を抽出されたS=4985個のサブ−ブロックを有する:
ファイル[15001..15016],...ファイル[19985..20000]
ステップ63において、N=3として、3個のハッシュ関数HFがそれぞれのデータ・ブロックb1〜b4の各サブ−ブロックに適用される。その結果、それぞれのデータ・ブロックにそれぞれが5000個から成る3組のハッシュが適用される。ハッシュ関数HFはサブ-ブロックの数値に定数cを乗算し、モジュロM(即ち、HF(v)=v*c modulo M)を利用して残りを計算する。従って、それぞれのブロックのS個のサブ−ブロックに関数HFが適用され、それぞれのブロックとhにS個のハッシュという結果になる。関数mは所与の基準に従ってそれらの1つを選択し、そのブロックのインプリントとする。このインプリントからhの代わりにビットと連携するエクストラ・データも記憶される。
データ・ブロックb1〜b4の上記例において、N=3ならば、b1はHF、HFおよびHFからそれぞれ得られる、それぞれが5000個のハッシュから成る3組から3つの最大値M1、M2およびM3を有する。b2〜b4についても同様であり、合計12個の最大値M1〜M12が得られる。選択されるこれら12個の値M1〜M12がファイル・インプリントであり、B×N、即ち、4×3である。
次いで、ファイル・シグネチャとエクストラ・データがステップ64においてデータベースに記憶される。
データ・ブロックの表示は、必ずしも数値でなくてもよく、記号、タグなど、特徴付けできるエレメントであればよい。
図5bは、図1aに示した方法の実施例を詳細に示すフローチャートである。ステップ22においてファイル部分からペイロード・ビットを抽出した後、ステップ70において、ファイル部分のペイロード・ビットをウィンドーW’、JおよびW’を任意に設定したJ個のデータ・ブロックに分割する。
ステップ24において、ファイル部分にインプリントを割当てたように(図1a参照)、ステップ74において、ファイル部分の各ブロックJにN個の関数hを適用する。但し、iは1からNまでの整数である。関数hは図5のステップ63における関数と同じ関数である。これらN個の関数hを適用することでパケット中の各データ・ブロックにN個の表示群が割当てられる。図3bに示すように、関数hは例えばスライディング・ハッシュ関数(354)であってもよく、その場合、J個のデータ・ブロックのそれぞれから予め抽出された幅W’の連続するT個のサブ−ブロックすべてにハッシュ関数HFが適用される。各データ・ブロックにN個の関数から成る群が適用されるから、各データ・ブロックにN×T個の表示が割当てられることになる。但し、Tはサブ−ブロックの個数である。表示は数値などのように識別性を有するものであれば如何なるものでもよい。
一例として、ファイル部分のサイズが1515バイト、ペイロードのサイズが1465バイトとし、ペイロードのサイズから65バイトを除いて1400バイトとし、J=2と想定する;ペイロード・ビットをサイズが715バイトのオーバーラップするブロックj1=パケット[1..715]とサイズが700バイトのブロックj2=パケット[701..1400]に分割する。次いで、データ・ブロックj1およびj2のそれぞれにN個の関数hを適用する。もし関数hが例えばスライディング・ハッシュ関数なら、データ・ブロックj1およびj2をさらに、幅W’=16の多数の連続し且つオーバーラップするサブ−ブロックに再分割する。
N=3の場合:データ・ブロックj1がさらに多数のサブ−ブロックT=700個に分割される:パケット[1..16]、パケット[2..17]、...パケット[700..715]。次いで、それぞれのサブ−ブロックにN=3個のハッシュ関数HFが適用され、それぞれが700個のハッシュsh1、sh2およびsh3から成る3組のハッシュ、即ち、合計2100個の値がデータ・ブロックj1と連携することになる。
同様に、データ・ブロックj2がさらに多数のサブ−ブロックT=685個に分割される:パケット[701..715]、 パケット[1385..1400]。次いで、それぞれのサブ−ブロックにN=3個のハッシュ関数HFが適用され、それぞれが685個のハッシュsh1、sh2およびsh3から成る3組のハッシュ、即ち、合計2100個の値がデータ・ブロックj2と連携することになる。
プレイロード・ビットのインプリントを決定するため、ステップ74において、関数m(図5aにおけるステップ63参照)を適用することによってそれぞれのデータ・ブロックに割当てられる表示の1つを選択する。関数mは所定の選択基準に基づいて1つの表示を選択し、シグネチャ・データベース作成時にシグネチャ割当てに使用される関数に相当する関数であればよい。例えば、表示をその重要度基準に従って予め順序を定め、重要性が最も高い表示と最も低い表示を選択する。
例えば、mが最大値に相当する場合、ステップ74において割当てられる表示をブロック毎に互に比較することによって最高値の表示を決定する。これらのN×J個の最高値表示を、ステップ24(図1a参照)または図5aに示すステップ63と同様にプレイロード・ビットに割当てられる。
上記j1およびj2の例においては、ブロックに割当てられるハッシュsh1、sh2およびsh3のそれぞれの組毎に1つの最大値を選択する。j1に関しては:700個のハッシュsh1から成る第1組からm1を選択し;700個のハッシュsh2から成る第2組からm2を選択し;700個のハッシュsh3から成る第3組からm3を選択する。j2に関しても同様である。
なお、hとmとは互に異なる方式で選択することができる。例えば、mは必ずしも各データ・ブロックと連携する値のうちの最大値に相当しなくてもよく、HFの適用後、ブロックに割当てられるT個の値から成る群から、所与の選択基準または所与の重要度順序に基づくランク付けに従って選択された値に相当すればよい。従って、最小値も選択することができる。関数mは表示群から弁別できる表示を選択する関数であれば如何なる関数であってもよい。63(図5aの)63におけるhは(図5bの)74におけるhと同じか(少なくともコンパチブル)である。
ステップ76において、ファイル部分毎に決められた複数のファイル・インプリントが図5aのステップ63において求められるようなそれぞれのファイル・シグネチャを形成し、ファイル部分の複数のインプリントがそれぞれのファイル・シグネチャの複数のファイル・インプリントと比較される。
ステップ78は、図1aのステップ27と同様であり、ファイル部分のインプリントとファイル・シグネチャを形成するファイル・インプリントとのマッチを判断する。マッチが検出されなければ、方法はステップ22に戻る。マッチが検出されれば、エクストラ・データが比較される(28)。ステップ29においてマッチが検出されると、ステップ30においてファイルの存在のトレースがレポートされる。
ステップ80において、インプリントがファイルのシグネチャとマッチする複数のファイル部分がネットワーク上または記憶媒体中で検出された所与のファイルに関して記憶されたトレースの総量が閾値と比較される。閾値を超えれば、パケットがファイルに属し、従って、ファイルがネットワークを介して送信されている極めて高い確率が存在する。閾値はユーザーによってまたは適当な確率アルゴリズムによって設定される。最大閾値は、ファイル・シグネチャ中のファイル・インプリントの総数に相当するように設定される。
上記実施態様に代わる態様として、ステップ80において、検出されるトレースの数およびこれと関連するエクストラ・データ、および/または送信のトレースが検出されるファイル部分のコンテンツに基づいてファイルの少なくとも部分が存在するかどうかを判断するためにカスタム・アルゴリズムが利用される。
ファイルが検出されると、本発明の方法はステップ82に進み、検出されなければ、ステップ22に戻り、ネットワーク上を通過中の、または検出中の次のファイルに対する作業が継続される。ステップ82において、ファイルの存在が検出され、ファイル部分の存在を示すレポートが出力される。レポートに代わるものとして既知ファイルの検出を知らせるようにアラームを設定することもできる。統計分析またはその他のモニタリングを目的とするレポートを記憶させておくだけでもよい。ファイルが送信されている場合、好ましくないファイル送信を検出したら直ちに行動を起こすこともできる。例えば、パケット全部が送信先に到着する前に送信を阻止することができる。検出されたファイルの発信元と同じIPアドレスからの以後のファイル転送すべてを保存して、後刻これを解析することができる。ステップ82においては、ファイル転送に関連する情報、例えば、インターネット・プロトコル(IP)アドレス、ネットワーク・アドレス、ファイル転送の発信元および送信先など、ステップ22におけるパイロード・ビットだけでなくファイル部分から任意に抽出された情報が出力される。
次に、ネットワークを介したファイル送信を検出するためのモジュール90の実施態様を示す図6を参照して説明する。モジュール90は、2つのデータベース92、94、処理デバイス96、アプリケーション98、入/出力デバイス100およびアラーム102を有する。モジュール90は、発信元106から送信先108への、ネットワーク104の種々のチャンネルを巡回する、または場合によってはルーターを通過するファイル部分を回収する。なお、ネットワーク104は如何なるタイプのネットワークであってもよい:即ち、インターネット、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア/ネットワーク(WAN)、ワイヤレス・ネットワークまたはその他のタイプのデータ送信ネットワークであってもよい。他の実施態様として、パーソナル・コンピュータ(PC)のようなコンピュータ・システムをネットワークとすることもできる。さらに他の実施態様として、発信元がUSB記憶媒体または外部ハード・ドライブのような外延メモリーである場合も考えられる。モジュール90は、種々のタイプの計算デバイスに作用し、任意のタイプのコンピュータ可読媒体において実施される。プログラマブルな論理を有するフィールド・プログラマブル・ゲート・アレイ(FPGA)を、上記方法のステップのいずれかおよび/またはすべてを運用するに構成するもとできる。
次に、持続性メモリー120における電子ファイルの記憶を検出するためのモジュール90の実施態様を示す図7を参照して説明する。この場合には、記憶媒体におけるデータを読み、ファイル部分の存在を検出するためセクターを走査するようにモジュール90を構成する。
他の実施態様では、持続性メモリー120として、ハード・ディスク、CD、DVDなど、ファイルをセクターに分割できるものを使用することができる。モジュール90は、持続性メモリー120におけるファイル部分を検出し、検出インプリントに対応する検出インプリントおよびエクストラ・データとマッチするか否かを判断することができる。なお、モジュール90は、ファイル部分を検出するためのソフトウェア処理を実行するネットワーク中のコンピュータの形態を取ることができる。モジュール90は、任意のタイプの計算デバイスに作用し、任意のタイプのコンピュータ可読媒体において実施される。モジュール90は、フィールド・プログラマブル・ゲート・アレイ(FPGA)またはその他のタイプのプログラマブル・プロセッサにおいて実施されるようにすることも可能である。
図6および図7のモジュール90は図1a、1b、5aおよび5bのフローチャートに示すように上記方法を実行するように構成されている。
データベース92は、ネットワーク104上で、または持続性メモリー120からその存在が検出またはモニターされるファイルを記憶している。データベース92はまた、検出すべきそれぞれのファイルのそれぞれのインプリントと連携するエクストラ・データをも記憶している。ファイルは遠隔記憶が可能であり、インターネットなどの方法によってアクセスすることもできるから、上記の記憶方式は選択可能である。データベース94これらのファイルの部分のインプリントから形成されるシグネチャとともにどのファイルにシグネチャが割当てられるかの指示をも記憶している。データベース92および94はハッシュ・テーブル、連携メモリー、索引付きメモリーなどのような情報の迅速な検索を可能にする構造として機能することができる。データベース92は、特に迅速な検索を可能にする必要はない。さらにまた、組み合わせて単一のデータベースとしてもよいし、それぞれを複数のメモリー・デバイスにおける複数のデータベースと適当な態様で結合した形で構成することもできる。
処理デバイス96は、データベース92および94と連結し、アプリケーション98とも連結する。処理デバイス96は、アプリケーション98のインストラクション、構成またはプログラム・コードを実行する。アプリケーション98は、アプリケーション自体のためのタスクを実行するように構成することができる。
入/出力デバイス100およびアラーム102はファイルの存在、またはファイル部分のインプリントがファイル・シグネチャのインプリントとマッチすることを示唆するトレースの検出をレポートするのに使用される。ネットワーク104および/または持続性メモリー120に入/出力デバイス100を介してアクセスされる。
デバイス100はファイルが転送されている発信元106および送信先108の識別のような、チャンネルにおいて検出されたファイルの存在に関する情報を出力するためにも利用される。どのファイルが検出されているか、検出の時間または送信の時間、または統計上の、またはモニタリング上の目的に有用なその他の情報のような関連情報をレポートすることができる。デバイス100はまた、ネットワーク上を通過中の一連のファイル部分が所与のファイルに相当することを立証するのに利用される閾値のような種々のパラメータを設定する目的でユーザーが利用することも可能である。デバイス100は、また、例えば、望ましくないファイル送信が検出された時に然るべき行動を取るために利用することもできる。異なるネットワーク・ポートを介して巡回するトレースを相関させるには、複数のデバイスを接続すればよい。例えば、10Gb/sの能力を有する10基のデバイスを接続すれば100Gb/sの通信をモニターすることができる。
データベース92、94、処理デバイス96およびアプリケーション98(または少なくともその一部)は約10Gb/s以上のデータ転送速度でネットワーク94上を通過するファイルをリアルタイムで検出することを可能にするフィールド・プログラマブル・ゲート・アレイ(FPGA)テクノロジーを利用して実施することができる。データベースのサイズを増大させるためには、標準的なPCに含まれるDDR2のような外部メモリーにFPGAを接続すればよい。当業者には明らかなように、処理能力、記憶容量およびデータ転送速度においてFPGAと同等な如何なるテクノロジーを利用してもよい。
上記方法は、例えば、特定のFPGAモジュール90によって実行することができる。このFPGAモジュール90はファ入りをB=4個のデータ・ブロックに分割し、それぞれのデータ・ブロックにハッシュ・ウィンドウWが16バイトのスライディング・ハッシュ関数を適用することによってファイル・シグネチャを決定する。N個のハッシュ関数HFを適用することによってデータ・サブ−ブロックのそれぞれに表示を割当てる:

HF(サブ−ブロック)=2進値サブ−ブロック*cモジュロM (1)

上記式においてMは任意の定数;i=1...N;cとMはcが定数Mとプライマリであり、cもMも同数のビットを表わすように選択される。
Mとcは、所与のビット数に対してインプリント値の個数が最大となるように選択される。システムはモジュロ乗算のための種々の論理的、演算的単純化テクニックを駆使して実行することができる。例えば、一連の回転、加算、および事前計算された定数で、HFをすべて2項領域に求めることができる。
一例として、Mが264−1として、ファイル部分をサブ−パケットp[1..16]にハッシュする:

HF(x)=(x*c)モジュロM
但し、xはp[1..16]の2進値。
HFの計算を簡単にするため、y=p[2..17]の2進値とする。Mを上記のように選択したから、

y=x.256−p[1]+p[17](モジュロM);および
HF(y)=256*HF(x)−HF(p[1])+HF(p[17])(モジュロM)

2進法では*256は、8個の位置の左方移動(実際にはモジュロMによる回転)であり、HF(z)は[0...255]内のzに関して事前計算できるから、この方法は極めて迅速な検出を可能にする。
以上に述べたファイルの存在を検出するモジュールおよび方法は、コミュテータ、ルーターまたは異なるネットワーク・トポロジーに使用されるその他のスイッチングおよびルーティング・デバイスと一体化するように構成することができる。また、ウィルス対策のようなセキュリティ・アプリケーションやその他のネットワーク・アプリケーションとも併用されるように構成することができる。モジュールは、ファイル部分をチェックするだけであるから、非侵襲的である。従って、ネットワーク・ポートへの物理的アクセスを有する既存のモジュールと接続可能である。
上述したように、ファイルは、ネットワークを介して送信されたり、持続性メモリーのセクターに記憶される時にファイル部分に分割されるのが普通である。ファイル部分がモニターされているデータ・ブロックの一部に対応するに過ぎず、ファイル部分はブロックのサイズよりも小さいため、この一部からファイル・インプリントが得られたという場合がある。サブ−ブロックを利用することでこの問題を解決できるかもしれない。しかし、インプリントに対応するバイトは第1パケットの末尾と第2パケットの先頭にあるかもしれない。この場合、マッチは望めない。そこで、上述した幾つかの実施態様では複数のインプリントを使用する。
上記のモジュールおよび方法は、圧縮された、または圧縮されていない種々のタイプのデータ・ファイルおよびフォーマットに応用できる。例えば、オーディオ、ビデオまたはその他のタイプのデータに応用できる。このようなデータは、種々の次元に従って構成されているがいずれも上記の方法を利用して検出することができる。データのタイプとしては、例えば、ツリー構造(即ち、XMLコード)のような0次元データ、ファイル、ディジタル・サウンド・レコーディング、送信用ファイル部分のような1次元データ;画像のような2次元データ;ビデオのような3次元データがある。例示したこれらのデータ・タイプのそれぞれに対して、本発明の検出方法は所与の関数またはパターンに従ってデータから抽出されたエレメントを利用する。無次元のデータに関しては、抽出エレメントは所与の大きさKを有するサブ−ツリーであればよい。1次元データの場合には、一連の隣接エレメントまたはブロックを抽出すればよい。画像のような2次元データの場合、抽出されるエレメントは、矩形、円または特定の形状または画像自体に含まれる図示エレメントの形となる。ビデオストリームのような3次元データ・ファイルの場合には、所与の時間に亘るビデオストリームのサブ−シーケンスに含まれる矩形または球形のような特定の形状をファイルのエレメントとして抽出すればよい。
一実施態様として、検出可能なデータ送信がウェブ・ページのダウンローディングまたはアップローディングまたはe-メール送信の場合がある。送信をモニターされているファイルを、同じファイルの圧縮フォーマットから計算されるファイル・インプリントと連携させることができる。これによって、圧縮、非圧縮フォーマットの別なく、ネットワーク上のファイルを検出することができる。データベース92、94のメモリー・スペースを節約するため、モジュールはファイル全体を記憶するのではなくファイルをタグすることもできる。
なお、上記方法およびモジュールはファイル送信に使用されるデータ送信プロトコルに左右されない。従って、ファイル部分がネットワークを通過し、検出モジュールに到達する順序は問題とならない。
図1a、1b、5a、5bにおける方法ブロックは、特定の順序で起こるように示しているが、当業者なら容易に理解できるように、ブロックの多くは入れ替え可能であり、順序を変えても方法の結果に著しく影響することはない。また、本発明を主として方法として説明したが、当業者には明らかなように、本発明は、上記方法を実行するための装置にも関し、上記方法の各ブロックを実行するための装置部分、例えば、ハードウェア・コンポネントおよび上記方法の実行を可能にする適当なソフトウェアによってプログラムされたコンピュータとの組み合わせをも含む。また、上記装置と併用される製品、例えば、予め記録された記憶デバイスなどのようにプログラム・インストラクションが記録されているコンピュータ可読媒体、またはコンピュータのデータ信号を搬送するコンピュータ可読プログラム・インストラクションは装置による本発明の方法の実行を容易にする。このような装置、製品およびコンピュータ・データ信号も本発明の範囲に含まれる。
以上に述べた本発明の実施態様はあくまでも実施例である。当業者ならば、本発明の範囲を逸脱することなくこれらの実施例に多様な変更を加えることができる。具体的には、上述した1つまたは2つ以上の実施態様から選択される構成要件を組み合わせることによって、新しい実施態様を構成することができ、このような組み合わせに好適な構成要件は当業者が容易に理解するところである。特許請求の範囲に記載の内容は技術上の適当なすべての変更を包含するものである。

Claims (22)

  1. 知の電子ファイル検出をプロセッサで実行するためのコンピュータ可読インストラクションが記憶されたコンピュータ可読媒体であって、
    前記インストラクションが、
    ファイルの一部を受信し、この部分からコンテンツを抽出し;
    前記コンテンツに対して多数回に亘って初期関数を適用し、前記初期関数は前記コンテンツ中のエレメントの複数のブロックのそれぞれに適用して前記ブロックのそれぞれに割当てられる表示を前記ブロック毎に作成し;
    前記ファイルの部分毎の初期インプリントとして、所与の選択基準に基づいて最大値及び最小値のいずれか一方の値となる前記表示の1つを選択し;
    前記初期インプリントを、検出すべき既知電子ファイルに割当てられた複数の検出インプリントを含む第1メモリーのコンテンツと比較し、前記検出インプリントは少なくとも前記初期関数を利用して作成し;
    前記初期インプリントが第1メモリー中の検出インプリントと対応するときマッチと判断するように構成される前記コンピュータ可読媒体
  2. 初期関数の前記適用は、前記ブロックの少なくとも1つにすべてのエレメントが含まれるまで前記エレメントのブロックに順次前記初期関数を適用することを含む請求項1に記載のコンピュータ可読媒体
  3. 初期関数の前記適用は、順次隣接する関数においてエレメントをオーバーラップさせることを含む請求項2に記載のコンピュータ可読媒体
  4. 前記初期インプリントの比較の後、前記初期インプリントとして使用されるブロック中において前記エレメントを囲むエクストラ・データを識別し、前記エクストラ・データを、前記初期インプリントとして使用されるブロック中において前記エレメントを囲むエクストラ・データに対応する、第2メモリー中に記憶されているエクストラ検出データと比較するステップをも含み、前記初期インプリントおよび前記エクストラ・データが前記検出インプリントおよび前記エクストラ検出データとそれぞれマッチするとき、前記マッチの判断がなされることを含む請求項1に記載のコンピュータ可読媒体
  5. 前記初期関数とは異なる少なくとも1つの追加関数を適用して少なくとも1つの追加インプリントを作成し、前記少なくとも1つの追加インプリントを前記複数の検出インプリントと比較するステップをも含む請求項1に記載のコンピュータ可読媒体
  6. 前記ファイルの一部からの前記コンテンツ抽出は、ノイズを除去することを含む請求項1に記載のコンピュータ可読媒体
  7. 前記所与の選択基準に基づいて最大値及び最小値のいずれか一方の値となる前記表示の1つの前記選択は、最高ハッシュ値および最低ハッシュ値の一方を選択することを含む請求項1に記載のコンピュータ可読媒体
  8. 前記ファイル部分は、2次元データのファイルからのファイル部分であり、前記ブロックは、エレメントの領域である請求項1に記載のコンピュータ可読媒体
  9. 前記ファイル部分は、3次元データのファイルからのファイル部分であり、前記ブロックは、エレメントのボリュームである請求項1に記載のコンピュータ可読媒体
  10. 初期関数の前記適用は、ハッシュ関数を適用する請求項1から請求項9までのいずれか1項に記載のコンピュータ可読媒体
  11. 既知の電子ファイルを検出するためのシステムであって、
    処理デバイスと、
    前記処理デバイスに連結され、既知電子ファイルの複数の検出インプリントを記憶するメモリーと、
    前記メモリーに記憶されるとともに、前記処理デバイスで実行可能な少なくとも1つのプログラム・コード及び前記処理デバイスを構成するための構成データの少なくとも一方を備える、少なくとも1つのアプリケーションとを含み、
    前記システムが
    ファイルの一部を受信し、この部分からコンテンツを抽出し;
    前記コンテンツに対して多数回に亘って初期関数を適用し、前記初期関数を前記コンテンツ中のエレメントの複数のブロックのそれぞれに適用して、前記ブロックのそれぞれに割当てられる表示を前記ブロック毎に作成し;
    前記ファイルの部分毎の初期インプリントとして所与の選択基準に基づいて最大値及び最小値のいずれか一方の値となる前記表示の1つを選択し;
    前記初期インプリントを前記検出インプリントと比較し
    前記初期インプリントが前記検出インプリントの1つと対応するときマッチと判断する前記システム
  12. 少なくとも1つの前記メモリーと、前記処理デバイスと、少なくとも1つの前記アプリケーションの一部とが、少なくとも1つのフィールド・プログラマブル・ゲート・アレイからなる、請求項11に記載のシステム
  13. 電子ファイルを検出するための、コンピュータで実行される方法であって、
    ファイルの一部を受信し、この部分からコンテンツを抽出し;
    前記コンテンツに対して多数回に亘って初期関数を適用し、前記初期関数は前記コンテンツ中のエレメントの複数のブロックのそれぞれに適用して前記ブロックのそれぞれに割当てられる表示を前記ブロック毎に作成し;
    前記ファイルの部分毎の初期インプリントとして所与の選択基準に基づいて最大値及び最小値のいずれか一方の値となる前記表示の1つを選択し;
    前記初期インプリントを、検出すべき既知電子ファイルに割当てられた複数の検出インプリントを含む第1メモリーのコンテンツと比較し、前記検インプリントは少なくとも前記初期関数を利用して作成し;
    前記初期インプリントが前記第1メモリー中の検出インプリントの1つと対応するときマッチと判断するステップを含む前記コンピュータで実行される前記方法。
  14. 期関数の前記適用は、前記ブロックの少なくとも1つにすべてのエレメントが含まれるまでエレメントの前記ブロックに前記初期関数を順次適用することを含む請求項13に記載の、コンピュータで実行される方法。
  15. 初期関数の前記適用は、順次隣接する前記初期関数においてエレメントをオーバーラップさせることを含む請求項14に記載の、コンピュータで実行される方法。
  16. 前記初期インプリントの比較の後、前記初期インプリントとして使用されるブロック中において前記エレメントを囲むエクストラ・データを識別し、前記エクストラ・データを、前記初期インプリントとして使用されるブロック中において前記エレメントを囲むエクストラ・データに対応する、第2メモリー中に記憶されているエクストラ検出データと比較するステップをも含み、前記初期インプリントおよび前記エクストラ・データが前記検出インプリントおよび前記エクストラ検出データとそれぞれマッチするとき、前記マッチの判断がなされることを含む請求項13に記載の、コンピュータで実行される方法。
  17. 前記初期関数とは異なる少なくとも1つの追加関数を適用し、少なくとも1つの追加インプリントを作成し、前記少なくとも1つの追加インプリントを前記複数の検出インプリントと比較することをも含む請求項13に記載の、コンピュータで実行される方法。
  18. 前記ファイルの一部からの前記コンテンツ抽出は、ノイズを除去することを含む請求項1に記載の、コンピュータで実行される方法。
  19. 前記所与の選択基準に基づいて最大値及び最小値のいずれか一方の値となる前記表示の1つの前記選択は、最高ハッシュ値および最低ハッシュ値の一方を選択することを含む請求項13に記載の、コンピュータで実行される方法。
  20. 前記ファイル部分は、2次元データのファイルからのファイル部分であり、前記ブロックは、エレメントの領域である請求項13に記載の、コンピュータで実行される方法。
  21. 前記ファイル部分は、3次元データのファイルからのファイル部分であり、前記ブロックは、エレメントのボリュームである請求項13に記載の、コンピュータで実行される方法。
  22. 初期関数の前記適用は、ハッシュ関数の適用である請求項13から請求項21までのいずれか1項に記載の、コンピュータで実行される方法。
JP2011510797A 2008-06-02 2009-06-01 ファイルの存在検出とモニタリング Expired - Fee Related JP5519646B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US5794408P 2008-06-02 2008-06-02
US61/057,944 2008-06-02
PCT/CA2009/000762 WO2009146536A1 (en) 2008-06-02 2009-06-01 File presence detection and monitoring

Publications (2)

Publication Number Publication Date
JP2011523130A JP2011523130A (ja) 2011-08-04
JP5519646B2 true JP5519646B2 (ja) 2014-06-11

Family

ID=41397672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011510797A Expired - Fee Related JP5519646B2 (ja) 2008-06-02 2009-06-01 ファイルの存在検出とモニタリング

Country Status (4)

Country Link
US (1) US9264434B2 (ja)
EP (1) EP2307961B1 (ja)
JP (1) JP5519646B2 (ja)
WO (1) WO2009146536A1 (ja)

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355374A (en) * 1992-05-08 1994-10-11 Scientific-Atlanta, Inc. Communication network with divisible auxilliary channel allocation
US5918225A (en) * 1993-04-16 1999-06-29 Sybase, Inc. SQL-based database system with improved indexing methodology
US6546112B1 (en) 1993-11-18 2003-04-08 Digimarc Corporation Security document with steganographically-encoded authentication data
US6128483A (en) * 1996-11-19 2000-10-03 Ericsson, Inc. Simultaneous over the air data download to multiple radios
US6064738A (en) * 1996-12-10 2000-05-16 The Research Foundation Of State University Of New York Method for encrypting and decrypting data using chaotic maps
US7117358B2 (en) * 1997-07-24 2006-10-03 Tumbleweed Communications Corp. Method and system for filtering communication
US6219669B1 (en) * 1997-11-13 2001-04-17 Hyperspace Communications, Inc. File transfer system using dynamically assigned ports
US6243079B1 (en) * 1998-07-07 2001-06-05 Primax Electronics, Ltd. Initialization method for one-way communications and apparatus for use therewith
US6654889B1 (en) 1999-02-19 2003-11-25 Xilinx, Inc. Method and apparatus for protecting proprietary configuration data for programmable logic devices
ATE251365T1 (de) * 1999-05-18 2003-10-15 Herrero Angel Jose Ferre Selbstkorrigierendes verschleierungs-und verschlüsselungssystem und verfahren
US7406214B2 (en) * 1999-05-19 2008-07-29 Digimarc Corporation Methods and devices employing optical sensors and/or steganography
US6785815B1 (en) * 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
US7152047B1 (en) 2000-05-24 2006-12-19 Esecure.Biz, Inc. System and method for production and authentication of original documents
US20040073617A1 (en) * 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
JP2002050956A (ja) 2000-07-13 2002-02-15 Sun Microsyst Inc フィールド・プログラマブル・ゲート・アレイ
US6757675B2 (en) * 2000-07-24 2004-06-29 The Regents Of The University Of California Method and apparatus for indexing document content and content comparison with World Wide Web search service
US7681032B2 (en) 2001-03-12 2010-03-16 Portauthority Technologies Inc. System and method for monitoring unauthorized transport of digital content
WO2002082271A1 (en) * 2001-04-05 2002-10-17 Audible Magic Corporation Copyright detection and protection system and method
US7003619B1 (en) * 2001-04-09 2006-02-21 Matrix Semiconductor, Inc. Memory device and method for storing and reading a file system structure in a write-once memory array
DE10136608B4 (de) * 2001-07-16 2005-12-08 Francotyp-Postalia Ag & Co. Kg Verfahren und System zur Echtzeitaufzeichnung mit Sicherheitsmodul
US6941003B2 (en) * 2001-08-07 2005-09-06 Lockheed Martin Corporation Method of fast fingerprint search space partitioning and prescreening
KR20040086350A (ko) * 2002-02-05 2004-10-08 코닌클리케 필립스 일렉트로닉스 엔.브이. 핑거프린트의 효율적 저장
US6947933B2 (en) * 2003-01-23 2005-09-20 Verdasys, Inc. Identifying similarities within large collections of unstructured data
JP4297345B2 (ja) 2004-01-14 2009-07-15 Kddi株式会社 マスメイル検出方式およびメイルサーバ
US7249251B2 (en) * 2004-01-21 2007-07-24 Emc Corporation Methods and apparatus for secure modification of a retention period for data in a storage system
US7430645B2 (en) * 2004-01-21 2008-09-30 Emc Corporation Methods and apparatus for extending a retention period for data in a storage system
US7657581B2 (en) * 2004-07-29 2010-02-02 Archivas, Inc. Metadata management for fixed content distributed data storage
US7660865B2 (en) * 2004-08-12 2010-02-09 Microsoft Corporation Spam filtering with probabilistic secure hashes
RU2292074C2 (ru) * 2004-09-27 2007-01-20 Самсунг Электроникс Ко., Лтд. Способ и устройство формирования стартового значения для генератора псевдослучайных чисел
JP2006221586A (ja) 2005-02-08 2006-08-24 Umi Nishida 報告型迷惑メールフィルタリングシステム
US8059551B2 (en) * 2005-02-15 2011-11-15 Raytheon Bbn Technologies Corp. Method for source-spoofed IP packet traceback
JP5019480B2 (ja) * 2006-01-05 2012-09-05 ウエッジ ネットワークス インコーポレーテッド 改良されたネットワーク型コンテンツ検査システムおよび方法
FR2907934B1 (fr) * 2006-10-27 2009-02-06 Inst Nat Rech Inf Automat Outil informatique de gestion de documents numeriques
US7865585B2 (en) * 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing dynamic ad hoc proxy-cache hierarchies
US7894358B2 (en) * 2007-03-15 2011-02-22 Cisco Technology, Inc. Detection of heavy users of network resources
US8082233B2 (en) 2007-03-29 2011-12-20 Microsoft Corporation Comparing data sets through identification of matching blocks

Also Published As

Publication number Publication date
US9264434B2 (en) 2016-02-16
WO2009146536A1 (en) 2009-12-10
EP2307961A4 (en) 2013-11-06
US20110145267A1 (en) 2011-06-16
EP2307961A1 (en) 2011-04-13
JP2011523130A (ja) 2011-08-04
EP2307961B1 (en) 2016-05-18

Similar Documents

Publication Publication Date Title
Rafique et al. Firma: Malware clustering and network signature generation with mixed network behaviors
Conti et al. Visual reverse engineering of binary and data files
WO2017107965A1 (zh) 一种web异常检测方法和装置
TWI434190B (zh) 在支持查詢時有效地儲存記錄資料以協助電腦網路安全
US20140164442A1 (en) Rule parser
US8463800B2 (en) Attributes of captured objects in a capture system
US10855701B2 (en) Methods and devices for automatically detecting attack signatures and generating attack signature identifications
US8707008B2 (en) File system for a capture system
US10474818B1 (en) Methods and devices for detection of malware
TW201702921A (zh) 異常預測方法、系統及裝置
JP6674036B2 (ja) 分類装置、分類方法及び分類プログラム
CN109284624B (zh) 一种基于区块链存储的数据安全隔离方法及装置
Moia et al. Similarity digest search: A survey and comparative analysis of strategies to perform known file filtering using approximate matching
JP2022549075A (ja) 暗号化されたデータの異常判定方法、システム、プログラム
US20190104147A1 (en) Intrusion investigation
JP2008507222A5 (ja)
JP5519646B2 (ja) ファイルの存在検出とモニタリング
US20220129421A1 (en) System and methods for bandwidth-efficient encoding of genomic data
Tereshchenko et al. Features of applying pretrained convolutional neural networks to graphic image steganalysis
JP2012239048A (ja) パケット分類器、パケット分類方法、及びパケット分類プログラム
Dandass et al. An empirical analysis of disk sector hashes for data carving
Selvaraj et al. Packet payload monitoring for internet worm content detection using deterministic finite automaton with delayed dictionary compression
Teuton et al. LINEBACkER: Bio-inspired data reduction toward real time network traffic analysis
JP2006041969A (ja) ネットワーク監視装置及びネットワーク監視方法及びプログラム
US20240154622A1 (en) System and method for extracting data from a compressed and encrypted data stream

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20110713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110714

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120525

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140212

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140403

R150 Certificate of patent or registration of utility model

Ref document number: 5519646

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees