(57)【要約】  高スループット、低待ち時間のサービスをストリームデータに対して実行できるようにするコンテンツ処理アーキテクチャ及び方法。ストリームコントローラ（３００）がストリームデータを受信して記憶するとともに、複数のストリームプロセッサ（３１０）によるストリームデータに対する機能の実行を調整する。機能の結果は１つ又は複数のサービスプロセッサ（３２０）により使用されて、ストリームコンテンツへの加入者のアクセスを許可するか否かの判断を下す。サービスプロセッサは、その判断に従って動作するようにストリームコントローラに指示する。【選択図】図３
2008516306.tif 000002
【特許請求の範囲】
【請求項１】
加入者へのストリームコンテンツの送出を制御する、ネットワークで実施されるコンテンツ処理装置であって、
ストリームコンテンツを受信して記憶するストリームコントローラと、
該ストリームコントローラに結合され、それぞれが、ストリームコンテンツに対して１つ又は複数の所定のデータ処理機能を実行し、それにより、前記ストリームコントローラがとるべきさらなる動作を指示する動作データを含むプロセス出力データを提供するようになっている複数のストリームプロセッサと、
前記ストリームコントローラからのサービス要求に応答して、加入者サービスを適用し、前記ストリームコントローラに結合されて前記加入者サービスに関連するサービスポリシーに応じてストリームコンテンツへの加入者アクセスを調整するサービス出力を生成する１つ又は複数のサービスプロセッサであって、前記サービス要求は前記プロセス出力データに応じて前記ストリームコントローラにおいて構築される、１つ又は複数のサービスプロセッサと
を備える、ネットワークで実施されるコンテンツ処理装置。
【請求項２】
各ストリームプロセッサは、前記ストリームコントローラから受信するパイプラインコマンドに応じてストリームコンテンツをさらなるストリームプロセッサに送信するようになっており、前記パイプラインコマンドは前記プロセス出力データに依存する、請求項１に記載のネットワークで実施されるコンテンツ処理装置。
【請求項３】
前記ストリームコントローラは、各ストリームプロセッサによって現在実行されている前記データ処理機能に応じてストリームコンテンツの受信を制御するようになっている、請求項１又は２に記載のネットワークで実施されるコンテンツ処理装置。
【請求項４】
前記複数のストリームプロセッサは、ストリームコンテンツに対して複数のデータ処理機能を同時に実行することができる、請求項１ないし３のいずれか１項に記載のネットワークで実施されるコンテンツ処理装置。
【請求項５】
各データ処理機能はコンテンツ処理機能又はプロトコル処理機能のいずれかである、請求項１ないし４のいずれか１項に記載のネットワークで実施されるコンテンツ処理装置。
【請求項６】
サービスロスなしで、データ処理機能及びサービスポリシーのうちの１つ又は複数の更新に有効なコード及び情報の更新を受信するようになっている、請求項１ないし５のいずれか１項に記載のネットワークで実施されるコンテンツ処理装置。
【請求項７】
或る加入者サービスに関連するサービス出力データは、１つ又は複数のさらなる加入者サービスに関連する前記サービスポリシーの更新に有効である、請求項１ないし６のいずれか１項に記載のネットワークで実施されるコンテンツ処理装置。
【請求項８】
前記ストリームコントローラにより受信される前記ストリームコンテンツは、前記加入者を識別する加入者識別子を含む、請求項１ないし７のいずれか１項に記載のネットワークで実施されるコンテンツ処理装置。
【請求項９】
前記サービスポリシーは前記加入者識別子に依存する、請求項８に記載のネットワークで実施されるコンテンツ処理装置。
【請求項１０】
前記ストリームプロセッサのうちの１つ又は複数は、前記ストリームコンテンツが使用するデータプロトコルを識別するようになっている、請求項１ないし９のいずれか１項に記載のネットワークで実施されるコンテンツ処理装置。
【請求項１１】
加入者ポリシーを記憶する加入者ポリシーデータベースをさらに備え、前記ストリームコントローラは、前記加入者識別子、前記データプロトコル、及び前記加入者ポリシーの組み合わせに応じてストリームコンテンツを１つ又は複数のストリームプロセッサに送信するようになっている、請求項１０に記載のネットワークで実施されるコンテンツ処理装置。
【請求項１２】
それぞれが、１つ又は複数のデータ処理機能の異なるセットを実行するようになっている複数の異なる種類のストリームプロセッサを備える、請求項１ないし１１のいずれか１項に記載のネットワークで実施されるコンテンツ処理装置。
【請求項１３】
前記加入者サービスは、アンチウィルスサービス、アンチスパムサービス、アンチフィッシングサービス、及びコンテンツ制御サービスを含む群から選択される、請求項１ないし１２のいずれか１項に記載のネットワークで実施されるコンテンツ処理装置。
【請求項１４】
前記データ処理機能のうちの１つは前記ストリームコンテンツのダイジェストの計算に有効であり、該ダイジェストはその後、関連情報と共に記憶され、それによって前記ネットワークを渡っている前記コンテンツの統計解析を可能にする、請求項１ないし１３のいずれか１項に記載のネットワークで実施されるコンテンツ処理装置。
【請求項１５】
加入者へのストリームコンテンツの送出を制御する方法であって、
ストリームコントローラでストリームコンテンツを受信するとともに記憶するステップと、
ストリームコンテンツを前記ストリームコントローラから複数のストリームプロセッサのうちの１つ又は複数に送信するステップであって、各ストリームプロセッサはストリームコンテンツに対してデータ処理機能を実行するようになっており、各データ処理機能は、前記ストリームコントローラがさらにとるべき動作を指示する動作データを含むプロセス出力データを生成して前記ストリームコントローラに返す、送信するステップと、
前記ストリームコントローラにおいて、前記プロセス出力データに応じて１つ又は複数のサービス要求を構築するステップと、
前記動作データに応答して、１つ又は複数のサービス要求を前記ストリームコントローラから１つ又は複数のサービスプロセッサに送信するステップであって、各サービスプロセッサは加入者サービスをサービス要求に適用するようになっており、各加入者サービスは、該加入者サービスに関連するサービスポリシーに依存するサービス出力データを生成して前記ストリームコントローラに返す、送信するステップと、
前記ストリームコントローラにおいて、前記サービス出力データに応じてストリームコンテンツへの加入者アクセスを調整するステップと
を含む、加入者へのストリームコンテンツの送出を制御する方法。
【請求項１６】
前記ストリームコントローラから受信するパイプラインコマンドに応じてストリームコンテンツを或るストリームプロセッサからさらなるストリームプロセッサに送信するステップイをさらに含み、前記パイプラインコマンドは前記プロセス出力データに依存する、請求項１５に記載の加入者へのストリームコンテンツの送出を制御する方法。
【請求項１７】
前記ストリームコンテンツは、各ストリームコントローラによって現在適用されている前記データ処理機能に応じて、前記ストリームコントローラにより前記複数のストリームプロセッサに送信される、請求項１５又は１６に記載の加入者へのストリームコンテンツの送出を制御する方法。
【請求項１８】
前記複数のストリームプロセッサは、ストリームコンテンツに対して複数のデータ処理機能を同時に実行する、請求項１５ないし１７のいずれか１項に記載の加入者へのストリームコンテンツの送出を制御する方法。
【請求項１９】
各データ処理機能はコンテンツ処理機能又はプロトコル処理機能のいずれかである、請求項１５ないし１８のいずれか１項に記載の加入者へのストリームコンテンツの送出を制御する方法。
【請求項２０】
サービスロスなしで、データ処理機能及びサービスポリシーのうちの１つ又は複数の更新に有効なコード及び情報の更新を受信するステップをさらに含む、請求項１５ないし１９のいずれか１項に記載の加入者へのストリームコンテンツの送出を制御する方法。
【請求項２１】
或る加入者サービスに関連するサービス出力データは、１つ又は複数のさらなる加入者サービスに関連する前記サービスポリシーの更新に有効である、請求項１５ないし２０のいずれか１項に記載の加入者へのストリームコンテンツの送出を制御する方法。
【請求項２２】
前記ストリームコントローラにより受信される前記ストリームコンテンツは、前記加入者を識別する加入者識別子を含む、請求項１５ないし２１のいずれか１項に記載の加入者へのストリームコンテンツの送出を制御する方法。
【請求項２３】
前記サービスポリシーは前記加入者識別子に依存する、請求項２２に記載の加入者へのストリームコンテンツの送出を制御する方法。
【請求項２４】
前記ストリームコンテンツに対して実行されるべき予備データ処理機能は、前記ストリームコンテンツが使用するデータプロトコルを識別する、請求項１５ないし２３のいずれか１項に記載の加入者へのストリームコンテンツの送出を制御する方法。
【請求項２５】
前記データプロトコル識別後に、ストリームコンテンツを１つ又は複数のストリームプロセッサに送信することは、前記加入者識別子、前記データプロトコル、及び加入者ポリシーデータベースに記憶されている加入者ポリシーの組み合わせに依存する、請求項２４に記載の加入者へのストリームコンテンツの送出を制御する方法。
【請求項２６】
前記複数のストリームプロセッサは、それぞれが、１つ又は複数のデータ処理機能の異なるセットを実行するようになっている複数の異なる種類のストリームプロセッサを含む、請求項１５ないし２５のいずれか１項に記載の加入者へのストリームコンテンツの送出を制御する方法。
【請求項２７】
各加入者サービスは、アンチウィルスサービス、アンチスパムサービス、アンチフィッシングサービス、及びコンテンツ制御サービスを含む群から選択される、請求項１５ないし２６のいずれか１項に記載の加入者へのストリームコンテンツの送出を制御する方法。
【請求項２８】
前記データ処理機能のうちの１つは、前記ストリームコンテンツのダイジェストの計算に有効であり、該ダイジェストはその後、関連情報と共に記憶され、それによって前記ネットワークを渡っている前記コンテンツの統計解析を可能にする、請求項１５ないし２７のいずれか１項に記載の加入者へのストリームコンテンツの送出を制御する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークベースのコンテンツ処理プラットフォームに関する。特に、本発明は、ネットワークサービスプロバイダが管理コンテンツセキュリティサービスをそれぞれの加入者に届けられるようにするセキュリティプラットフォームに関する。
【背景技術】
【０００２】
インターネットは、ネットワークの組まれたサーバ及びワークステーションのセキュリティを脅かし得る、データの悪意のある増殖及び偶発的な増殖に多くの機会を提示する。システムのセキュリティの一部は、インターネットを通じて伝送されるデータに関連する。このデータ又はコンテンツの例としては、電子メール、ウェブページ、インスタントメッセージ、情報ストリーム、及びパケットストリームが挙げられる。
【０００３】
コンテンツセキュリティは、暗号化／認証ソリューション（たとえば、仮想私設ネットワーク又はＶＰＮ）又はネットワーク保護（たとえば、ファイアウォール）等の他の分野のコンピュータ関連セキュリティと異なる。名称が示唆するように、コンテンツセキュリティアプリケーションは、危険、破壊的、未承諾、又は攻撃的なコンテンツからの保護を提供するコンテンツで動作する。
【０００４】
現在、種々のコンテンツセキュリティ製品が存在し、各製品は通常、限られた数の攻撃から保護する。たとえば、アンチウィルス（ＡＶ）、アンチスパム（ＡＳ）、及びウェブアクセスフィルタリングが既知であり、ネットワークアーキテクチャの種々の部分に実装されている。しかし、コンテンツセキュリティ問題への現行の対処法の多くの欠点が簡単に分かる。
【０００５】
特に、広く、膨張し続ける範囲の攻撃に対処するために必要な資源は、通常のネットワークのいずれのレベルでも容易に利用することができない。コンテンツセキュリティサービスを提供するインターネットサービスプロバイダ（ＩＳＰ）又は他のネットワーク管理者は、新たなセキュリティシステムを、加入者が多数であることにより高価すぎて導入できないと考える場合があり、その一方で、エンドユーザが新たに発生する脅威に対処する専門知識を有する可能性は低い。
【０００６】
現行のコンテンツセキュリティのより顕著な欠点は、従来のコンピューティングアーキテクチャ及び慣例に頼る、構築の前提そのものの結果である。
【０００７】
手短に言えば、コンテンツセキュリティは通常、３つの方法で対処される。すなわち、パーソナルコンピュータ（ＰＣ）等の標準プラットフォームで実行される、主にソフトウェアベースのソリューションを通じて、こういったソフトウェアベースのソリューションのハードウェア加速化製品を通じて、たとえば少数の機能の高速動作を提供する周辺構成要素相互接続（ＰＣＩ）カードの形態をとって、又は特定の問題にハードウェア加速化機能を提供する少数のネットワークベースの製品を使用して、である。
【０００８】
まず、ユーザ又はエンドポイントセキュリティ製品に伴う根本的な欠陥を考える。ＰＣにインストールされた個々のポイント製品はそのＰＣに送信されたトラフィックのみを解析可能であり、ネットワークで伝送されるコンテンツの脅威の検出に関連する情報を解析することができない。たとえば、スパム及びマスメーラワームはその性質により、多くの宛先に送信され、コンテンツのレベル解析が、このようなコンテンツを検出して加入者に到達する前にブロックするさらなるツールを提供する。これは、総トラフィック負荷及び個々の加入者負荷の、通常レベルと比較しての解析により行われる必要がある。
【０００９】
ポイント製品では必要なトラフィック負荷が見られないため、このような解析は単一のＰＣのポイント製品で可能でなく、標準ＡＶスキャナを実行している企業サーバでは可能であるが、トラフィック量はそれでも低すぎて、要求される時間以内に効率的な検出速度を生じさせない。
【００１０】
コンテンツセキュリティが、脅威についての知識を共有でき、結局のところネットワークセキュリティへの脅威であるものに対する集合的な対応を最適化できるように、集合的に又は少なくとも通信可能に、最も効率的に実行されることは明らかである。明らかに、集合的に保護されるユーザプールが大きいほど、任意の脅威から防護するために蓄積される知識プールも大きくなる。たとえば、悪意のあるコードを含むサイトサイトが特定された場合、そのサイトへのいずれのユーザアクセスもブロックされて、リスクを無くすことが好ましい。しかし、多数のユーザ（典型的なＩＳＰには何百万もの加入者を有するものがある）にセキュリティサービスを提供することは、ロジスティックス及び技術の面で大きな問題を呈する。問題は、各加入者が望むセキュリティサービスが異なる可能性があるため、サービスの或る程度のユーザ構成を可能にすべきであると考えられる場合に拡大する。
【００１１】
多数の加入者が関わる場合、最も差し迫った問題はパフォーマンスであると考えられ得る。現行のソリューションは、通常、ＩＳＰが経験する多量のトラフィック（おそらく、コンテンツ１０，０００個／秒）に対処することができない。多くの場合、追加のプラットフォーム、通常は標準のＰＣが、増大する負荷に対処するために追加されるが、このようなソリューションはすぐに不安定になり、費用効率が悪くなる。
【００１２】
待ち時間も問題である。電子メール等の非リアルタイムアプリケーションの場合、配送時間に数秒又は数分が付加されても大きな問題とはみなされない。しかし、ダウンロード又はインスタントメッセージ等のリアルタイム、又はリアルタイムに近いアプリケーションの場合、この水準の待ち時間の付加は、加入者が（パフォーマンスが落ちるため）コンテンツセキュリティ料を払わなくなるため、許容できない。
【００１３】
パフォーマンスの問題に対処するために、サービスは多くの場合、タスクの小さなサブセットを実行するように最適化される。これはわずかな改良を提供するが、ユーザ、及び実際にはサービスそれ自体が柔軟性を失うことになる。ユーザは望むように明示的にサービスを使用することができなくなり、サービスはもはや、新種の脅威への対処に向けて適合することができない。これは、ハードウェア加速化技法が利用されている場合に特に当てはまる。根本的な二分裂は、ハードウェア技法のみが要求されるパフォーマンスを提供することができ、その一方で、ソフトウェアシステムのみが要求される柔軟性を提供することができることである。したがって、従来のシステムでは、常にパフォーマンス及び柔軟性のうちの一方を犠牲にしなければならない。
【００１４】
問題は、上述したように、今日、システムに要求されるパフォーマンス及び柔軟性を提供することだけでなく、不確定の未来に備えたシステムを提供することでもある。ウィルス、スパム、及びコンテンツフォーマットは常に変化し続け、これらが進化するにつれて新しい技法を供給するように更新できるリアルタイム設計要素をどのように提供するかという問題を呈する。さらに、その道の先にはまったく新しく予測不能な脅威が確実に存在する。
【００１５】
コンテンツセキュリティ製品は現在、新しいウェブサイトを見る（且つ、場合によってはサイトブロックリストに追加する）、新しい有害ソフトを含む可能性のあるコンテンツサンプルの解析（ＡＶスキャナの更新に至り得る）等のコンテンツ脅威のオフライン解析によって最新に保たれる。このプロセスは、実際に可能な限り高速で実行されるが、実行に数週ではないにせよ数日かかる。
【００１６】
上記考察では特にコンテンツセキュリティについて言及したが、同様の問題にすべての種類のコンテンツ処理で直面する。コンテンツ処理（たとえば、ファイル、ウェブページ、電子メール、ウェブ要求等の情報ストリーム、及びデータベーストランザクションメッセージに対して）が、種々のアプリケーション（パケットで動作するネットワーク装置とは対照的に）でのデータの解析及び変更を可能にする。非セキュリティ処理の例には、広告を顧客のプロファイルに合わせること、ネットワークを通過している違法コンテンツを検出すること、ネットワークを通過している際に機密情報を除去して、偶発的な開示を阻止すること、及びコンテンツをより適したフォーマットにリフォーマットすることが含まれ得る。コンテンツ処理のより多くの例が当業者に明らかであろう。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
コンテンツ処理、特にコンテンツセキュリティは、現代のネットワーク環境においてその有用性をますます増している。従来のシステムはまったく、特に真に価値のあるサービスの提供に種々の解析技法が要求される場合に、解析しなければならない莫大な量のトラフィックに向けて準備されていない。
【課題を解決するための手段】
【００１８】
本発明の第１の態様によれば、加入者へのストリームコンテンツの送出を制御する、ネットワークで実施されるコンテンツ処理装置であって、
ストリームコンテンツを受信して記憶するストリームコントローラと、
当該ストリームコントローラに結合され、それぞれが、ストリームコンテンツに対して１つ又は複数の所定のデータ処理機能を実行し、それにより、ストリームコントローラがとるべきさらなる動作を指示する動作データを含むプロセス出力データを提供するようになっている複数のストリームプロセッサと、
ストリームコントローラからのサービス要求に応答して、加入者サービスを適用し、ストリームコントローラに結合されて加入者サービスに関連するサービスポリシーに応じてストリームコンテンツへの加入者アクセスを調整するサービス出力を生成する１つ又は複数のサービスプロセッサであって、サービス要求はプロセス出力データに応じてストリームコントローラにおいて構築される、１つ又は複数のサービスプロセッサと
を備える、加入者へのストリームコンテンツの送出を制御する、ネットワークで実施されるコンテンツ処理装置が提供される。
【００１９】
本発明の第２の態様によれば、加入者へのストリームコンテンツの送出を制御する方法であって、
ストリームコントローラでストリームコンテンツを受信するとともに記憶するステップと、
ストリームコンテンツをストリームコントローラから複数のストリームプロセッサのうちの１つ又は複数に送信するステップであって、各ストリームプロセッサはストリームコンテンツに対してデータ処理機能を実行するようになっており、各データ処理機能は、ストリームコントローラがさらにとるべき動作を指示する動作データを含むプロセス出力データを生成してストリームコントローラに返す、送信するステップと、
ストリームコントローラにおいて、プロセス出力データに応じて１つ又は複数のサービス要求を構築するステップと、
動作データに応答して、１つ又は複数のサービス要求をストリームコントローラから１つ又は複数のサービスプロセッサに送信するステップであって、各サービスプロセッサは加入者サービスをサービス要求に適用するようになっており、各加入者サービスは、当該加入者サービスに関連するサービスポリシーに依存するサービス出力データを生成してストリームコントローラに返す、送信するステップと、
ストリームコントローラにおいて、サービス出力データに応じてストリームコンテンツへの加入者アクセスを調整するステップと
を含む、加入者へのストリームコンテンツの送出を制御する方法が提供される。
【００２０】
本発明は、現代のネットワーク世界により呈されるコンテンツ処理問題に有効、柔軟、且つ強力なソリューションを提供する。このソリューションはコンテンツセキュリティの分野で特に有用性を見出され、リアルタイムで、且つユーザ指定の要件に従ってコンテンツを取り込んで解析することができ、それによって待ち時間を短縮し、高スループットを可能にする。最適化されたハードウェア（ストリームプロセッサ）及びユーザが要求する加入者柔軟性（サービスプロセッサ）の両方を含む統合装置が、利用可能な処理能力の完全利用を保証するように設計されたストリームコントローラによって調整される。ストリームプロセッサは、１つ又は複数の機能（ＨＴＭＬ復号化又はプロトコル復号化等）を実行するようになっており、サービスプロセッサは、これらの機能の結果に対してどのように応答するかについての最終判断を下す。本発明により提供されるサービスの加入者構成を容易にするために、ストリームコントローラが受信するストリームコンテンツは、好ましくは、加入者を識別する加入者識別子を含む。
【００２１】
ストリームプロセッサによって実行されるデータ処理機能は、好ましくは、コンテンツ処理機能及びプロトコル処理機能の両方を含み、これらの２種類の機能の間には明確な境界がある。このようにすれば、コンテンツ処理機能をあらゆるプロトコルのデータに対して実行するように調整する必要がなく（プロトコル処理は別個に実行されるため）、それによって利用可能なコンテンツ処理資源の利用が最適化される。
【００２２】
本発明によれば、加入者アクセスの調整は、加入者が単に、特定のコンテンツへのアクセスを阻止されるだけであるか、又はより複雑であってもよい選択的フィルタリングの形態をとることができる。別法として、コンテンツ自体を、追加、削除、又は変更により操作することができ、それによって加入者アクセスのレベルをコンテンツ処理の性質及び加入者のプリファレンスに従って最適化できるようにする。
【００２３】
好ましい実施の形態では、各ストリームプロセッサはさらに、ストリームコントローラから受信するパイプラインコマンドに応じて、ストリームコンテンツをさらなるストリームプロセッサに送信するようになっており、パイプラインコマンドはプロセス出力データに依存する。したがって、異なるストリームプロセッサによって最適に実行される機能を、ストリームコントローラがコンテンツを繰り返し送信する必要なく同じコンテンツに対して実行することができる。たとえば、第１のストリームプロセッサで実行中のＵＲＬ抽出機能によって生成されたプロセス出力データが、ウェブページの本文を字句解析する必要があることを示し得る。次いで、ストリームコントローラは、複数のストリームプロセッサのうちのいずれがそのタスクに最も適しているか（この判断の基準は可用性及び処理能力を含むことができる）を評価し、パイプラインコマンドを使用して、関連データが、第１のストリームプロセッサにより選ばれたプロセッサに送信されることを保証する。
【００２４】
本発明はネットワークに実装されるため、多くのユーザのコンテンツを見ることになり、トラフィック、スポットトレンド、及び通常のトラフィックパターンからの異常を解析する（すなわち、リアルタイムのネットワークベースのトラフィック解析を実行する）ことが可能になる。これは、単一ユーザ又は単一企業のソリューションでは可能でない。さらに、この解析はリアルタイムで行われ、結果は即座に実施する（たとえば、ネットワークで伝送される新しい有害ソフトを特定して、すべてのユーザに対してブロックする）ことができる。
【００２５】
好ましくは、ストリームコントローラは、各ストリームプロセッサが現在実行中のデータ処理機能に応じて、複数のストリームプロセッサによるストリームコンテンツの受信を制御するようになっている。このようにして、ストリームコントローラはストリームプロセッサの現在の可用性を認識し、ストリームコンテンツを、要求されるタスクを最もよく実行することができるストリームプロセッサに向ける。たとえば、ストリームコントローラは、別の同等に適したストリームプロセッサが使用中でなければ、現在かなりのデータ処理に従事しているストリームプロセッサにストリームコンテンツを向けない。
【００２６】
複数のストリームプロセッサは、好ましくは、ストリームコンテンツに対して複数のデータ処理機能を同時に実行することが可能である。それに従って、本発明は、２つ以上のコンテンツセキュリティ機能又はサービスを、待ち時間をまったく付加することなくデータに対して実行することができる並列アーキテクチャを提供する。たとえば、電子メールに対してウィルス及びスパムを同時にチェックすることができる。
【００２７】
好ましい実施の形態では、ストリームプロセッサのうちの１つ又は複数は、ストリームコンテンツが使用しているデータプロトコルを識別するようになっている。この場合、ストリームコンテンツはこれらのストリームプロセッサのうちの１つに、任意の他のストリームプロセッサに渡される前に渡されて、受信中のデータの種類（たとえば、電子メール又はウェブページ）を素早く識別できるようにする。その後のデータ処理は、そのストリームプロセッサが生成するプロセス出力データにより制御され、使用中のプロトコルに最適に適合される（すなわち、ウェブページに対してスパムのチェックをしなくてもよい）。
【００２８】
ストリームコントローラは、ストリームデータが関連する加入者に応じて各種サービスを実行することができる。たとえば、加入者はアンチフィッシング及びアンチウィルスに登録するが、アンチスパムに登録しないことができる。好ましくは、この制御は、加入者ポリシーを含む加入者ポリシーデータベースの提供によって行われ、この場合、ストリームコントローラは、加入者識別子、データプロトコル、及び加入者ポリシーの組み合わせに応じてストリームコンテンツへの加入者アクセスを調整するようになっている。
【００２９】
このレベルのユーザ制御に加えて、加入者は、１つの特定のサービスをどのように構成するかを選ぶことも可能であり得る。たとえば、加入者は、フィッシングの可能性があると特定されたすべての電子メールのブロックを望む、又はそれにもかかわらずフィッシングの可能性があると特定された電子メールを何らかの方法で危険性ありとマーキングされるだけで送信されることを望む場合がある。したがって、サービスポリシーは好ましくは、加入者に依存する。
【００３０】
本発明は、好ましくは、複数の異なる種類のストリームプロセッサを含み、各種類が、１つ又は複数のデータ処理機能の異なるセットを実行するようになっている。したがって、本発明のハードウェアは手持ちのタスクに最適化される。ストリームコントローラは、ストリームコンテンツを、要求される種類のデータ処理機能に最適化された種類のストリームプロセッサに向ける。たとえば、多数のデータ処理機能はパターンマッチングの要素（典型的なマイクロプロセッサでは非効率に実行される）を含むことができ、それによって１つ又は複数の種類のストリームプロセッサをこのタスクを実行するように適合させることができる。
【００３１】
多数の異なる種類のストリームプロセッサ（たとえば、高速ＣＰＵ、高速データベース、フィールドプログラマブルゲートアレイ（ＦＰＧＡ））の使用により、柔軟性（たとえば、アプリケーションが或る機能を他のアプリケーションよりも多く使用することを要求する場合、関連する種類がより多数回インスタンス化される）及び新しい又は更新された機能をストリームプロセッサの種類に将来構成することができる拡張性の両方が提供される。同様に、特定のストリームプロセッサの種類は、リアルタイムフレームワークに追加されるデータ／情報更新（たとえば、ウィルスシグネチャ）を容易に取り入れることができる。
【００３２】
本発明の特定の一実施の形態では、複数のサービスプロセッサ及びサービス出力データをサービスプロセッサ間で共有する手段があってもよく、それによってすべてのサービスプロセッサが利用可能な情報を更新する。このようにして、１つのサービスにより発見された脅威をその他に向けて明らかにすることができる。たとえば、ウィルスを含むことが見つかった電子メール中のウェブアドレスへのリンクをＵＲＬフィルタリング（ウェブページブロック）サービスに送信することができ、ＵＲＬフィルタリングサービスは疑いのあるウェブページをブラックリストに入れ、こういったページへの将来のユーザアクセスを拒絶する。本発明は、１つのサービスが学習した情報を有効利用して、別のサービスを自動的にリアルタイムで更新することができる。
【００３３】
装置は、ストリーミングアーキテクチャの利点がコンテンツ処理時に待ち時間をさらに短縮するように、加入者マシンにインストールされたクライアントを使用して有利に動作することができる。本発明は、コンテンツを本発明自体に通じて流し、加入者マシンにインストールされたクライアントに無視できる待ち時間で渡すことができる。クライアントはデータを加入者マシンにバッファリングするが、本発明により、コンテンツに操作が必要ないことが示されるまで、加入者マシンで実行中の加入者アプリケーション又はＯＳに渡さない（すなわち、ストリームコンテンツへのユーザアクセスを阻止する）。ストリームコンテンツは、クライアントがストリームコンテンツをリリースするまで加入者に送出されたとはみなされない。本発明により、コンテンツに操作が必要であると判断された場合、本発明は命令をクライアントに渡し、クライアントはバッファリングしたコンテンツを変更し、コンテンツの変更されたバージョンを加入者アプリケーション又はＯＳに送信する。
【００３４】
本発明の例について、添付の図面を参照しつつこれより詳細に説明する。
【発明を実施するための最良の形態】
【００３５】
本発明を理解するために、コンテンツセキュリティへの従来の手法の諸側面についてこれより考察する。
【００３６】
ソフトウェアベースのソリューションは通常、クライアントＰＣ又はサーバ（たとえば、電子メール、ファイル、プロクシ）への導入に向けて書き込まれる。ソフトウェアベースのソリューションはこの環境ではうまく機能して良好なソリューションを提供するが、標準ソフトウェアを利用することから、動作しているプラットフォームの速度により制限される。ＣＰＵ及びプラットフォームの速度は増大しているが、これらのソリューションは常に、ＣＰＵ及びプラットフォームの計算能力によって制限され（特に、複雑なアルゴリズム又はデータ操作が必要な場合）、ネットワークトラフィックパスに、トラフィックが非リアルタイムオペレーティングシステムへの割り込み等、計算エンジンに渡されるか、又は計算エンジンから渡される最適化されていない様式で導入される場合。こういった制限にもかかわらず、ソフトウェアソリューションは或る程度の柔軟性を提供し、既知の業界ツール及び技法を使用して適合、拡張、及び更新を容易に行うことができる。
【００３７】
ソフトウェアベースのアプリケーションの例としては、Ｓｙｍａｎｔｅｃ（登録商標）からのＡＶ、Ｔｒｅｎｄ（登録商標）からのプロキシサーバ、Ｃｈｅｃｋｐｏｉｎｔ（登録商標）からのファイアウォール、Ｂｒｉｇｈｔｍａｉｌ（登録商標）からのＡＳ、及びＳｕｒｆＣｏｎｔｒｏｌ（登録商標）からのＵＲＬフィルタリングが挙げられる。
【００３８】
ハードウェア加速化ソリューションは、ソフトウェアベースの手法の付属として見ることができ、既存の、又は変更されたソフトウェアソリューションが呼び出すことができる高速専用機能をハードウェアに提供する。
【００３９】
上に紹介したソフトウェアソリューションは、それぞれのコンテンツセキュリティタスクを実行するときに多数の技法及び機能を実施し、たとえば、ＰＣにインストールされたアンチウィルス製品はファイルをスキャンし、この場合、こういったファイルはＺＩＰ等のアーカイブフォーマットで圧縮されている場合がある。スキャナはまず、アーカイブを復元してコンテンツを生じさせなければならない。コンテンツが利用できるようになると、スキャナはパターン探索等の機能をコンテンツ全体に実行することができる。これらの２つの機能、すなわち復元及びパターン探索は両方とも時間のかかるものであり、専用ハードウェアによってはるかに高速に実行することができるため、ハードウェア製品を使用して高速専用機能を提供することができる。このようなハードウェア加速化製品は、個々のクライアントＰＣよりも多くのコンテンツを処理するサーバにコンテンツセキュリティを導入する場合に有用である。この手法の一例はＴａｒａｒｉ（登録商標）加速化製品である。
【００４０】
最終的な従来の手法はネットワークベースのハードウェアソリューションである。これらのソリューションは、標準のソフトウェアソリューションでは負荷が大きすぎ時間のかかるタスクに対して、効率的に設計されたネットワーク機器の利点をハードウェア支援と組み合わせる。ルータ、スイッチ、及びファイアウォール等のネットワーク装置は、装置を通るトラフィック及び装置内での内部トラフィックの両方の転送を最適化するようにうまく設計されたデータパスを有するため、コンテンツが装置内のセキュリティ要素による処理に向けて効率的に提示されるように、このタスクをソフトウェアから解放する。さらに、装置は、パターンマッチング及びＭＩＭＥ復号化等の機能に向けてのハードウェア支援を有することができ、これはソフトウェアから負荷を減じさせ、ここでもコンテンツセキュリティ機能の処理を早める。
【００４１】
これらの装置はＰＣベースのサーバよりも改良されたパフォーマンスを提供するが、柔軟でないという制約を受けるとともに、危険、破壊的、未承諾、又は攻撃的なコンテンツの検出に必要な技法の範囲に対応することができない。たとえば、これらの製品に現在実装されているハードウェア支援機能は、スパムを探しての電子メールの解析、多形性で変成型の有害ソフトの検出、又は今のところ未知の有害ソフトの検出を行うことができない。
【００４２】
現行のソフトウェアソリューションは、柔軟であるが、そのままの形態では、大規模ネットワークでの導入に求められるとともに、すべてのアプリケーションにわたってすべての脅威からの保護を提供するために求められる必要レベルのパフォーマンスに拡張可能なソリューションを提供することができない。
【００４３】
ハードウェア支援ネットワークソリューションは、限られたコンテンツセキュリティ機能に求められるパフォーマンスレベルを提供するが、検出及び遮断に異なる技法を必要とする新規の脅威から保護する柔軟性を提供しない。
【００４４】
上記考察は、従来のコンテンツセキュリティソリューション及びこれがどのように導入されるかをハイライトしている。これらのソリューションは、総称としてコンテンツセキュリティ技法と呼ばれる多数の既知の技法を使用する。これらの技法のいくつかについて以下に説明する。
【００４５】
今日、実施されているコンテンツセキュリティソリューションは、広範囲の技法及びメカニズムを利用する。次世代のネットワークベースのコンテンツセキュリティ装置に組み込まなければならないこういった技法の種類及び性質を評価するために、既存の技法についての幅広い研究が行われ、その結果のサンプルを以下においてハイライトする。
【００４６】
ホワイトリスト及びブラックリスト：これらは、オペレータ又は加入者のいずれかにより指定された任意の宛先への／発信元からのトラフィックを許可又は許すために使用される。これらは通常、ホワイトリストの場合では信頼できる発信元／宛先であり、ブラックリストの場合では好ましくないコンテンツの既知の発信元である。
リアルタイムブラックリスト：これらは、スパム又は有害ソフトの送信者と見られる動的に更新される発信元のセットである（オペレータ又は加入者によって変更されるまで静的な標準ブラックリストを参照）。これらのリストは組織によって常に更新され、頻繁にアンチスパムサービスに使用される。
メッセージダイジェスト：これらのダイジェストはチェックサムとしても知られ、各コンテンツで計算され、そのコンテンツに一意の識別子又は指紋を規定する。これらのダイジェストは、ネットワークを移動しているコンテンツについて集められ、アンチスパムサービスに使用するために、普通に存在するコンテンツを識別するために使用される。これらのダイジェストはメッセージの多くの異なる部分に対して（たとえば、メッセージの不変部分に限定して）計算することができることに留意されたい。
復元：コンテンツはアーカイブ等の圧縮されたフォーマットで、又は圧縮コンテンツとして送信されることが多い。この場合、コンテンツセキュリティアプリケーションは、危険、破壊的、未承諾、又は攻撃的なコンテンツを探してコンテンツを解析するために、このコンテンツを復元する必要がある。
ベイズフィルタリング：これは、任意の入来するコンテンツにユーザ標準コンテンツプロファイルを相関付けるために使用されるアルゴリズムである。アンチスパムサービスにおいて、電子メールがそのユーザが受信する通常コンテンツに一致するか否か、又はユーザの通常メッセージの型に当てはまらない未承諾コンテンツであるか否かを判断するために使用される。
パターンマッチング：この技法は、コンテンツのパターン又はシグネチャを検索する。これはファイル中の有害ソフトの検出に有用であるとともに、コンテンツ中の既知の言葉又は語句の検出にも有用である。この技法は、専ら固定パターンを探すという点で単純であり、又はコンテンツ中の特定の場所に特定の順で発生する可変パターンのセットを探し、非常に柔軟であり得る。
ヒューリスティック：これは、特定の属性又は情報についてのコンテンツの解析であり、次いでこれらの属性を使用して、コンテンツが危険、破壊的、未承諾、又は攻撃的である可能性があるか否かを判断する。情報の例としては、ファイルサイズ、ダイジェスト値、ヘッダフォーマット、コンパイル時間、パターン等が挙げられる。次いで、この情報が、コンテンツに対してどの動作をとるかを判断する或る形態のアルゴリズムを通じて解析される。
エミュレーション：この広く使用されている用語は、コンテンツの目的又は動作の解析を意味する包括的用語である。これは、コンテンツの性質を理解することなくパターンを盲目的に探すパターンマッチングと対照的であり、エミュレーションは、或る程度のコンテンツの復号化を含み、時にはとる一連の動作を確立する。コンテンツが復号化されると、解析は、命令分布チェックの形態をとることができ、又は場合によっては、実行時にコンテンツがとる一連の動作に焦点を当てることができる。
トークン化：この技法は字句コンテンツに対して使用されて、字句コンテンツを語句又は単語に分解し、その後、解析できるようにする。
字句解析：コンテンツが、コンテンツを構成する基本単語及び語句に分解されると、解析をこれらの「トークン」に対して実行して、コンテンツが危険、破壊的、未承諾、又は攻撃的であるか否かを判断することができる。
ＨＴＭＬ構文解析：この技法はＨＴＭＬフォーマットのコンテンツをスキャンし、関連情報を蒸留し、必要であれば生のＡＳＣＩＩコンテンツを出力する。関連情報の一例は、スパムメッセージに使用されることがある白色背景上の白色テキスト（すなわち、レンダリングされたときに見えない）。同様の技法が、ＸＭＬ等の他のマークアップ言語に必要である。
ＭＩＭＥ復号化：テキストのみのレガシープロトコル（たとえば、ＳＭＴＰ）を介して送信される非テキストコンテンツは、送信前に符号化しなければならず、これは添付及びＨＴＭＬを含む。この場合、コンテンツセキュリティアプリケーションが、解析前にコンテンツを復号化する必要がある。
パケット分類：この技法は、ネットワーキング装置に、装置を通過しているトラフィックの種類、発信元及び転送先を判断するために広く使用されている。
プロトコル復号化：この技法は、ウェブサーバ／クライアント、電子メールクライアント／サーバ等のネットワーキングソリューションに広く使用されている。プロトコルメッセージの復号化はメッセージ交換の主要部であり、例示的なプロトコルはＳＭＴＰ、ＨＴＴＰ、ＦＴＰ等である。
コンテンツ識別：この技法は、コンテンツが１つ又は複数の脅威を伝送している可能性があるか否かを判断するために、装置を通って流れているコンテンツの性質を判断するために必要である。たとえば、特定のファイル種類は有害ソフトを伝送することができないため、ファイル種類を確立することで、アンチウィルスコンテンツセキュリティを適用しなければならないか否かが判断される。
ファイアウォール化：この技法は、ＵＤＰポート情報等の特定のプロトコル識別子についての情報をブロックすることを含む。この技法は、プロトコルベースのワームからの防護に使用される。
ネットワークトラフィック解析：このリアルタイム技法は、危険、破壊的、未承諾、又は攻撃的なコンテンツを示す可能性のある振る舞いを識別するためにトラフィックパターンの解析に使用される。これは通常、予め規定されたしきい値レベルとの通常トラフィック負荷の比較を含む。
【００４７】
本発明による装置がどのように動作するかの概念図を図２に示し、簡潔に言えば、データストリームを取り込み、解析し、操作してから送出し、それによってストリームコンテンツへの加入者アクセスを調整する。図２は、ＣＳＧが多数のサービスを同じデータストリームに対して並列に実行できるようにする方法を示す。ネットワークデータがネットワークトラフィック処理構成要素２３０により受信され、ストリームデータとしてＣＰ２００に渡される。ストリームコントローラ２１０がストリームデータを受信し、加入者が識別される（２１１）。識別２１１はストリームコントローラ２１０で行われるものとして示すが、加入者の識別に使用される物理的な構成要素は他のどこかにあってもよい。加入者ポリシーデータベース２１２は、調べられたものであり、加入者がＣＳＧに実行してもらいたいサービスがいずれかを確立する。図示するように、次いで多数のサービス２２０が並列に実行され、次いでマニピュレータ２１３が、サービス２２０の出力に応じてストリームデータに対して変更を行うか、又は行わず、それから操作されたストリームを出力バッファ２１４に渡す。すべてのサービスが完了すると、（操作された）データはさらなるネットワークトラフィック処理構成要素２４０に渡されて、加入者に送信される。
【００４８】
装置は、ハードウェア、ソフトウェア、及びマイクロコード化要素を組み込んだ内蔵システム製品として実施され、ウェブサーバ及びデータベース等の他の標準インフラ要素と組み合わされると、コンテンツセキュリティサービスをリアルタイムで送出できるようにする。このような実施では、内蔵システムをコンテンツセキュリティゲートウェイ（ＣＳＧ）と呼ぶことができ、図１はＣＳＧの可能な１つの導入ソリューションを示す。
【００４９】
図１は、多数のＣＳＧ１４０をどのように、大規模ＩＳＰ又はネットワークオペレータにより運営されるポイントオブプレゼンス（Points of Presence：アクセスポイント）に加入者トラフィックに沿って導入することができるかを示す。図示する特定の実施形態では、ソリューションプロバイダ１２０（この場合、Ｓｔｒｅａｍｓｈｉｅｌｄ（登録商標））が、コンテンツセキュリティサービスをＩＳＰ１００の加入者１１０に提供する。多数のＣＳＧ１４０がＩＳＰ１００のシステム内に導入され、ＩＳＰ１００の内部ネットワーク１０１を介して他の構成要素に接続される。ＩＳＰに導入されるＣＳＧ１４０は単一のＳｔｒｅａｍＳｈｉｅｌｄ（登録商標）サーバ１０５によって集中管理され、ＳｔｒｅａｍＳｈｉｅｌｄ（登録商標）サーバ１０５はコード及び情報の更新を提供し、情報をＣＳＧ１４０間に配布できるようにする。ＩＳＰ管理者１０６もまたＳｔｒｅａｍｓｈｉｅｌｄサーバ１０５にアクセスすることができ、ＩＳＰ１００がＣＳＧ１４０を必要に応じて構成できるようにする。図１は、ＣＳＧ１４０が提供するサービスをどのように、認証（ＲＡＤＩＵＳ）１０３及び課金インフラ１０７への接続を通じてＩＳＰ又はネットワークオペレータが使用する課金システムに統合できるかも示す。
【００５０】
この実施形態では、ＲＡＤＩＵＳサーバ１０３、課金インフラ１０７、及びＳｔｒｅａｍｓｈｉｅｌｄサーバ１０５がすべて、ＩＳＰ加入サーバ１０４を介してＩＳＰネットワークに接続される。さらに、任意のＩＳＰ１００又はネットワークサービスプロバイダが使用するＣＳＧ１４０からの情報の更新を集めて、各ＩＳＰ１００又はネットワークプロバイダのＳｔｒｅａｍＳｈｉｅｌｄサーバ１０５を介してＣＳＧ１４０に配布するＳｔｒｅａｍｓｈｉｅｌｄ．ＮＥＴサーバ１２１がＩＳＰ１００のシステム外にある。これは、ＣＳＧ１４０を組み込むネットワークインフラの単なる一例にすぎず、他の例は、ＩＳＰのピアリングポイント１０２に（ＩＳＰコアネットワークがインターネットに接続する場合）、又は高負荷サーバファーム（電子メールサーバファーム等）の前にＣＳＧ１４０を導入できることに留意されたい。さらに、ＩＳＰは、ＣＳＧにより提供されるサービスを、ＩＳＰのネットワークインフラを利用する他のＩＳＰ（たとえば、仮想ＩＳＰ及び２番手の（secondtier）ＩＳＰ）に転売することができる。
【００５１】
ＣＳＧにより採用されるＣＰは、ＣＳＧ（及び拡張してＩＳＰ）が多数のサービス（たとえば、ＵＲＬフィルタリング、アンチウィルス）を送出できるようにし、この場合、これらのサービスは加入者により購入されて使用される。次いで、これらの加入者は、加入者が使用し得る各種アプリケーションにどのサービスを適用したいかを選択することができる。
【００５２】
以下は、本発明により提供することができるサービスの例である。
ＵＲＬフィルタリング：このサービスは、加入者が、インターネット接続を介して見ることができるウェブサイトの種類及び性質を規定できるようにする。加入者は、どのカテゴリを許可する（たとえば、子供向けのサイト）かを選択し、許可されたカテゴリ外にあると分かっているサイト（たとえば、ポルノグラフィ）へのいかなるアクセスもブロックする。サービスは使用限度も考慮に入れることができ、１日の時間帯によって使用回数を変更できるようにすることができる。「ウェブアクセスフィルタリング」及び「サイトブロッキング」等の用語は、同様のサービスを記述するために一般に使用されている。
アンチウィルス：このサービスは、加入者のインターネット接続に入る（又は出て行く）いかなる有害ソフトも阻止する。これは、ワーム、ウィルス、トロイ、スパイウェア等のすべての形態の悪意のあるコンテンツを含む。
アンチスパム：このサービスは、受信したくない未承諾のメッセージを加入者が受信しないようにする。これは、大量広告、詐欺、いたずら等を含む。
ファイアウォール：このサービスは、ネットワークベースのファイアウォールを提供して、開いているＵＤＰ／ＴＣＰポートでの加入者インターネット接続に入るトラフィックをブロックする。これは、他のインターネットユーザがポートスキャンを通じて拾い集めた情報を得ることにより加入者のマシンに接続するのを阻止する。
ＩＤＳ／ＩＰＳ：このサービス（侵入者検出サービス／侵入者阻止サービス）は、ＨＴＴＰ（ウェブ閲覧用）及びＳＭＴＰ（電子メール用）等の通常開かれているポートを通じて、ネットワーク内のサービス及びマシンに接続している他のインターネットユーザから加入者を保護する。これはサービス拒絶（ＤｏＳ）攻撃及び分散型ＤｏＳ（ＤＤｏＳ）攻撃を含む。
アプリケーションレベルファイアウォール：このサービスは、インターネットが面しているアプリケーション及びサービスを保護することを目的とする。このファイアウォール関連技術はコンテンツアウェアであり、たとえば、攻撃者がシステムへのアクセスを獲得できるようにする、複数の形式で提示することができる悪意のあるＳＱＬ情報を監視するとともに、たとえばＸＭＬセキュリティ機能を加速化する。
チャットルーム規制：このサービスは、許可されたチャットサイトのセットへのアクセスを制限し、許可されたチャットルームに送信される／から送信されるトラフィックを監視し、個人の詳細（たとえば、子供が登校する時間）及びコンタクト情報（たとえば、子供の電子メールアドレス、電話番号、又は住所）等の危険な情報の漏洩を防ぐ。
アンチポルノ：このサービスはポルノ画像へのアクセスをブロックする。
アンチプロファニティ（Anti-Profanity）：このサービスは、汚い言葉、攻撃的な言葉、又は危険な言葉を含むコンテンツへのアクセスをブロックする。
機密性：このサービスは、機密情報がインターネット接続を通じて加入者のネットワークから出て行かないようにする。
迷惑コンテンツブロック：このサービスは、漫画、ジョーク等の不必要なコンテンツが加入者インターネット接続を通じて入らないように、又は出ないようにブロックする。
ポップアップブロック：このサービスは、不快なポップアップ広告がダウンロードされたウェブページから発生しないようにする。
監視サービス：これは、加入者が、規定した期間中にインターネット接続を通じて送受信したトラフィックのログをとれるようにする。これは、加入者がインターネットの使用を追跡し、どのウェブサイトに訪れたか、どのチャットルームに訪れたか、電子メールのやりとり等を監視できるようにする。
トラフィックシェーピング：このサービスは、ネットワークオペレータ（たとえば、ＩＳＰ）がアプリケーション（たとえば、Ｐ２Ｐ）に許可されたトラフィック量を制限し、それによってウェブ閲覧等の加入者の他のアプリケーションに十分な帯域幅を保証できるようにする。
【００５３】
図３はＣＰのブロック図を示し、ＣＰは、ストリームコントローラ３００、ストリームプロセッサアレイ３１０、及び多数のサービスプロセッサ３２０を備える。これらの３つの要素の相互作用が、本発明の高スループットと低待ち時間とのパフォーマンスを提供する。以下に説明するように、これは、純粋なソフトウェアソリューションのすべての柔軟性と共にハードウェア加速化のすべての利点を提供する。
【００５４】
使用に際して、データがＣＰにストリーミングされ、ＣＰにおいて、データはストリームコントローラ１００によって受信されて記憶され、ストリームコントローラ１００において、データは入力キュー３０１によって受信される。ストリームコントローラ１００は、ストリームデータを適当な宛先に向けることができるコントローラ３０２を含み、データのプロトコルが未知の場合、データは、データプロトコルを識別する機能を実行するようになっている複数のストリームプロセッサ３１０のうちの１つに渡される。ストリームプロセッサの識別機能は、十分なデータを受信している場合ではデータプロトコルを示す結果を返すか、又はより多くの情報が必要であることを示す。
【００５５】
データストリームの処理中、ストリームコンテキストストア３０４が、ストリームの現在の状態についての情報（ストリームコンテキストデータと呼ばれる）の収集に使用される。このデータが、ストリームがすでに識別されているか否かを示すことになる。
【００５６】
データプロトコル識別は事実上、さらなる処理が行われる前の予備ステップである。その結果は、プロセス出力データとしてストリームコントローラ３００に返される。データプロトコルが分かると、サービスプロセッサはどのサービス（アンチフィッシング又はアンチウィルス等）がそのデータに利用できるかを評価することができる。加入者がそのサービスに加入している場合、それがＣＰによって実行されることになる。加入者ポリシーデータベース１１が、各加入者が料金を支払った、又は要求したサービスを示す加入者ポリシーを含む。
【００５７】
以下に説明するように、次いで、サービスが、インタフェース回路要素３４０を介して互いに接続されるとともにストリームコントローラに接続されているストリームプロセッサ３１０及びサービスプロセッサ３２０の組み合わせによって適用される。ストリームコントローラ３００内のストリームプロセッサ負荷モニタ３０５を使用して、タスクがストリームプロセッサ３１０に効率的に割り振られることを保証する。サービスプロセッサ３２０の動作は、サービスポリシーデータベース３２１に記憶されているサービス情報に依存し、また、１つ又は複数の公開データベース３２２（公開データベースは、たとえば、既知のスパム発信元又は既知のウェブサイトの詳細についての情報を保持することができる）にも依存し得る。サービス情報は通常、ソリューションプロバイダによって提供され、加入者のプリファレンスを含むことができる。サービスが適用されると、マニピュレータ３０６がストリームデータの必要な任意の操作を実行する。次いで、ストリームデータは出力キュー３０７に渡されてから、送信ネットワーク処理ファイアウォール３５０を通じて加入者にリリースされる。
【００５８】
加入者は、ストリームコンテンツに組み込まれる加入者識別子を使用して識別することができる。通常、これは、以下にさらに詳細に説明するネットワークトラフィック処理（ＮＴＰ）サブシステムによって追加することができる。手短に言えば、ＮＴＰは、ストリームコンテンツの発信元又は宛先のネットワークアドレスに基づいて識別子を追加する。
【００５９】
この技法は提供されるサービスに或るレベルの個人化を提供するが、大規模な企業又は組織は、同じネットワーク関連情報をそれぞれ共有する何百人又は何千人もの従業員を有し得る。したがって、各加入者のネットワーク情報が一意ではないため、加入者を区別するさらなる手段が必要であり得る。本発明の一実施形態によれば、さらなるレベルの加入者識別が追加され、それにより、ストリームプロセッサの機能を利用して、同じネットワーク詳細を有する個人を区別及び識別する。この実施形態では、コンテンツプロセッサは、加入者の識別に使用することができるさらなる情報を探して各ストリームを構文解析し、たとえば、電子メールストリームでは、加入者の氏名が宛先欄又は差出人欄に見られ、それによって加入者を識別でき、したがってその加入者の個人ポリシーの適用が可能になる。
【００６０】
したがって、このような実施形態での加入者識別は２段階のプロセスと考えることができ、第１の段階は、ＮＴＰによるネットワーク識別子の抽出及びこの情報のＣＰへの伝達であり、第２の段階はＣＰを使用しての最終的な加入者の識別である。ＣＰは、ネットワーク識別子が分かれば、加入者を識別するためにさらなるいかなる処理も実行する必要がないことを念頭に置くことが重要である。加入者という用語は、ネットワークを使用するすべての人を表すことができ、又は別法として、そのネットワークを使用する複数の個人のうちの１人を表すことができる。
【００６１】
サービスは多数の機能の実行を要求することができ、各ストリームプロセッサが、これらのデータ処理機能のうちの１つ又は複数の実行に最適化される。したがって、ストリームプロセッサは、ストリームデータを関連する機能に送信する。機能は別の機能の結果に依存してもしなくてもよいことを念頭に置くことが重要である。本発明の有利な並列アーキテクチャによれば、複数の機能を同時に行って１つ又は複数のサービスを行うことができる。
【００６２】
各機能は、サービスを完了することができる前にもしあればさらなる機能を行う必要があることを示す出力データの１つ又は複数のセット（まとめてプロセス出力データと呼ぶ）を生成する。生成することができる出力の種類の例の非排他的なリストは以下である。
１．コンテキスト情報：これは、ストリームプロセッサによって処理されている特定のストリームの状態の詳細（ストリームプロセッサが結果に達したか、又はより多くのデータを必要とするか等）を含むことができる。
２．結果：たとえば、ストリームプロセッサが、ストリームコンテンツがＨＴＴＰメッセージを含むことを確立した場合、プロセス出力データは、この情報及びストリームコンテンツをＵＲＬフィルタリングサービスに送信するという要件を含む。
３．導出されたストリーム：ストリームプロセッサはストリームコンテンツから新しいストリームを作り出すことができ、このような場合、プロセス出力データはストリームコントローラに新しいストリーム及び新しいストリームを次にどの種類のストリームプロセッサに渡すべきかについての詳細を通知する。
【００６３】
ストリームコントローラは、受信した（多数のストリームプロセッサからであり得る）プロセス出力データに応じて動作し、さらなるストリームプロセッサが必要に応じてストリームコンテンツの関連する側面（aspect）を受信することを保証する。有利なことに、ストリームコントローラは、各ストリームプロセッサの現在の負荷及び能力を認識する（たとえば、ストリームプロセッサ負荷モニタを使用して）。したがって、ストリームコントローラは、ストリームデータが、ビジーでなく且つ要求される機能を実行可能なストリームプロセッサに送信されることを保証する。
【００６４】
以下は、ストリームプロセッサが実行できる機能の網羅的ではなく例示的なリストである。
プロトコル認識：ストリームがシステムに届くと、この機能が、ストリームが何であるか（たとえば、電子メール／ＳＭＴＰストリーム、ウェブ閲覧／ＨＴＴＰストリーム等）を判断し、関連する統計（たとえば、進行中のＳＭＴＰストリームの数）を収集する。
プロトコル復号化：プロトコルが認識されると、行われる次の機能は通常、そのプロトコルの完全なプロトコル復号化である。
ＭＩＭＥ復号化：特定のプロトコルを介して送信されたコンテンツはＭＩＭＥ符号化されている場合があり、この機能はこの符号化されたコンテンツを復号化する。
コンテンツ認識：ストリームがプロトコルを介してコンテンツを伝送している場合、この機能が復号化されたプロトコルストリームに対して動作し、伝送されているコンテンツの種類を判断する（たとえば、ＨＴＭＬ文書、実行ファイル、ワード文書等）。
復元：ネットワークを通じて伝送されているコンテンツは圧縮された形態（たとえば、ＺＩＰ形式に圧縮されて）いる場合があり、この機能は圧縮コンテンツに対して動作して通常フォーマットに変換する。
ＨＴＴＰメッセージ抽出：この機能は、ＨＴＴＰ復号化されたトラフィックに対して動作し、ＧＥＴメッセージ及び他のメッセージを抽出し、これらをウェブフィルタデータベースでの高速ルックアップに適した形態に変換する。
コンテンツ抽出：この機能は、コンテンツを伝送するプロトコルからコンテンツを抽出する（たとえば、電子メールから添付を抽出してウィルススキャナに送信する）。
ウィルススキャナ：指定された種類の抽出されたコンテンツがこの機能に送信されて、ウィルススキャンされ、結果が返される。今日、これらの機能は２つの部分を含み、第１の部分はコンテンツをスキャナに適したフォーマットに事前処理し、第２の部分が実際のウィルススキャナであることに留意されたい。
ＨＴＭＬ復号化：この機能はＨＴＭＬパーサを有し、ＨＴＭＬ文書を復号化する。
ＨＴＭＬスキャナ：この機能はＨＴＭＬデコーダと密接に動作し、悪意のあるコード（これはＩフレーム等の特定のＨＴＭＬタグの検出からウィルスを有するＨＴＭＬに埋め込まれたスクリプトの検出までの範囲を有することができる）を探してＨＴＭＬを解析する。この機能は、ウィルススキャナと同様の能力を含むが、異なる技法を使用して根本的に異なる様式で実施されることから別個に列挙されており、ＨＴＭＬを乗せた特定のストリームはこの機能に行き、ファイルを乗せた特定のストリームはウィルススキャナに行き、両方の種類のコンテンツを含む特定のストリームは、認識後に各コンテンツを適当な機能に送信することに留意されたい。
ＸＭＬ復号化：この機能はＸＭＬパーサを有し、ＸＭＬ文書を復号化する。
メールヘッダ抽出：この機能は、差出人ドメイン及び宛先ドメイン等の電子メールヘッダ情報を抽出する。
トークン化：この機能は、単語を含むコンテンツ（たとえば、テキストファイル、電子メール本文）に対して動作し、コンテンツを単語及び語句に分解する。
コンテンツシグネチャ計算：この機能は、このコンテンツを一意に識別するダイジェスト又はシグネチャを計算する。この機能は、頻繁に発生するコンテンツの検出に使用される。
ベイズフィルタリング：この機能はコンテンツに対して動作して、このコンテンツを基準と比較し、電子メールが基準の型に合っている確率を推定する。
字句ヒューリスティック：この機能はトークン化されたコンテンツに対して動作し、電子メールが既知のスパムコンテンツと類似するか否かを判断するアルゴリズムを実行する。アルゴリズムは時間の経過に伴って更新及び改良されるが、最初は、特定の単語又は語句に得点を与え、これらの得点を合計して結果を推定する。
コンテンツ容量測定：この機能は、シグネチャを使用してこのようなシグネチャのデータベースに印を付けることにより、コンテンツがインターネット上に見られた頻度を測定し、各データベースエントリは、エントリがネットワークで見られる度に更新される。
【００６５】
各ストリームプロセッサは、上記（又は他の）機能のうちの１つ又は複数を実行するように最適化することができる。たとえば、多数の上記機能はパターンマッチングの要素を含み、したがって、１つ又は複数のストリームプロセッサがそのプロセス（又は下位機能）を実行するようになっている。多数の同一のストリームプロセッサが存在することになり、したがって、複数のストリームプロセッサを複数の異なる種類のストリームプロセッサに分けることを考えることが都合よい可能性がある。したがって、各機能は優先的に１つの種類で実行される。たとえば、ＨＴＴＰ取得機能は種類１のストリームプロセッサによって実行することができる。したがって、ストリームコントローラは、ＨＴＴＰ取得機能の実行を要求する場合、データを種類１のストリームプロセッサ（現在ビジーではない）に送信することになる。
【００６６】
異なる種類のストリームプロセッサの例としては、
１．通常、ソフトウェアに最も適したコンテンツセキュリティ機能の実行（たとえば、データベースルックアップ等の計算集約的ではない既存の第三者ソフトウェアソリューション、機能を再使用して）場合に使用される、軽量のリアルタイムオペレーティングシステムを実行しているプロセッサ回路、
２．通常、計算集約的な特定のタスク（たとえば、数学計算）に使用されるＦＰＧＡを使用したカスタムメード設計の回路、
３．業界の製造販売元から入手可能な専用シリコンチップ（たとえば、画像解析シリコンチップ）、及び
４．処理要件により、専用高速ハードウェア機能及び密接に結合されたより低速の機能に対する明らかな要求が示される場合、カスタムメード設計のＦＰＧＡ／ＣＰＵの組み合わせが挙げられるが、これらに限定されない。
【００６７】
ストリームプロセッサは、共有バス又はスイッチ構成等の従来のコンピュータ相互接続を通じて相互接続される。これらのストリームプロセッサは、ストリームプロセッサを保持している主回路基板にストリームプロセッサの異なる組み合わせを構成でき、実際に、将来の新しいストリームプロセッサをサポートできるようにドータカードに収容できることに留意されたい。たとえば、メインカードは、たとえば、単一の種類の２０のストリームプロセッサを収容することができ、又は２つのストリームプロセッサの種類を１０ずつ収容することができる。種類の構成は、図３に示す例によって決して限定されない。
【００６８】
これらのストリームプロセッサには、導入されているソリューションの要求に応じて異なる処理能力を構成することができる。たとえば、ソフトウェアを実行しているストリームプロセッサは多くの可能なタスク（たとえば、プロトコル復号化、データベースルックアップ、ウィルススキャン、第三者ソフトウェアの実行等）を有することができ、任意のタスクがＣＰＵ実行ユニット（複数可）で常に実行されている。ＦＰＧＡベースのストリームプロセッサには、２０の異なる非関連機能、又は２０の同機能を有し、すべて並列動作されるように異なる処理能力を構成することができる。
【００６９】
異なる種類のストリームプロセッサを組み合わせることの利点の一例として、第三者ソフトウェアソリューション（上述したように）を実行中のストリームプロセッサを考える。このソフトウェアを実行中のこのストリームプロセッサは、業界標準オペレーティングシステムを有する業界標準プロセッサであることができ、したがって、取得して使用する第三者ソフトウェアを交換又は更新するのは簡単なことである。しかし、これらのソリューションのすべてに共通する機能（プロトコル復号化及びファイル抽出等）の実行に最適化されたさらなるストリームプロセッサを提供してこれらの「非コア」機能を加速化し、それによって大きなパフォーマンスの利益を提供する（要求されるすべての機能に同じプロセッサを使用する従来のシステムとは対照的に）。有利なことに、第三者ソリューション間で切り替えることは、このようにして得られる利益に影響を与えない。
【００７０】
本発明はまた、第三者情報（たとえば、リスト又はデータベースの形態での）から利益を受けることができ、特定のストリームプロセッサ及びサービスプロセッサが、共通の業界標準フォーマットで記憶された情報を利用し、それらの発展に遅れずについていくようになっている。
【００７１】
したがって、ＣＰは、各種セキュリティサービスを実行する従来のソフトウェアセキュリティシステムの全柔軟性（ソフトウェアを実行するプロセッサを含むことができるため）及び加速化されたハードウェアセキュリティ構成要素の全能力（これらも含むことができるため）を有する。また、新しい構成要素（さらなるストリームプロセッサ又はさらなるソフトウェア）で容易にアップグレードされ、複数のストリームプロセッサが常に並列して別個の機能を実行できることから利益を受ける。ＣＳＧはネットワークで実施されるソリューションであるため、任意の種類のコンテンツ関連パターン（ウィルス数、ファイルサイズの分布、最も頻繁に訪れたウェブサイト、又は最も頻繁なダウンロード等）についてネットワークトラフィックを追跡することも可能である。
【００７２】
データ処理機能はストリームプロセッサによって実行されるため、ＣＰはプロセス出力データに応じてサービス要求を構築する。これは、そのサービスに関連すると分かっている任意の情報を含む。たとえば、ストリームデータが電子メールである場合、アンチスパムサービスをアクティブ化することができ、機能の１つが、その電子メールが疑いのある発信元から発信されたことを検出した場合、この情報をサービス要求に含むことができる。
【００７３】
すべての機能が特定のサービスに対して実行されると、サービス要求は図３に示すサービスプロセッサ３２０のうちの１つ又は複数に渡される。通常、１つのサービスに１つのサービスプロセッサがあるが、サービス間で情報を共有するようになっているさらなる「マスタ」サービスプロセッサがあってもよい（たとえば、ウィルスが特定のウェブサイトから見つかった場合、そのウェブサイトが将来、常にブロックされるように、そのウェブサイトについての詳細をサイトブロックサービス間で共有することができる）。これらのサービスプロセッサは通常、標準的なストリームプロセッサの種類の１つに配置された異なる処理機能に過ぎないが、それぞれの役割は、サービスがコンテンツを処理するときに求められる最終判断を下すことである。
【００７４】
サービスプロセッサは、サービス要求を受信すると、関連するサービスポリシーデータベース３２１を調べ、それに従って動作する。サービスポリシーデータベース３２１は、そのサービスについての加入者のプリファレンスを列挙したサービスポリシーを含む。たとえば、個々のユーザは、ＵＲＬフィルタリングサービスにより実行される個々にカスタマイズされた（tailored）サイトブロックリストを有することができる。サービスプロセッサが利用可能なさらなるデータベースは、スパムの既知の発信元等の加入者に固有でない情報を含むことができる。ストリームデータがセキュリティ脅威を表すことが発見された場合（加入者の適合されたサービス下で、また適合されたサービス内のサービスプリファレンス下で）、サービスプロセッサにより指示される動作もまた、サービスポリシーに記憶されているユーザのプリファレンスに依存することができる。たとえば、アンチスパムサービス要素が、電子メールに対してどの動作をとるべきか（たとえば、スパムとして拒絶、加入者に転送、修正して転送、転送するがさらに中身を追加等）を決定することができ、これはサービス要求のみならずサービスポリシーにも依存する。
【００７５】
ユーザによるコンテンツへのアクセスを阻止すべき場合、これは多数の方法で行うことができる。単純な場合、ストリームコントローラは、すべての関連サービスによりクリアされるまで、ストリームコンテンツ／データをユーザに渡さない。マニピュレータ３０６をストリームコントローラに含めて、ストリームを加入者マシンに送信する前にサービスプロセッサによって指示されたように操作することができる。しかし、待ち時間を最短にするために、未チェックデータに「保留エリア」を提供するクライアントソフトウェアを加入者のコンピュータにインストールできることも予見される。
【００７６】
クライアントがインストールされる場合、本発明は、コンテンツをクライアントに流し、コンテンツを無視できる待ち時間で加入者マシンにインストールされているクライアントに渡せるようにすることができる。クライアントはデータを加入者マシンにバッファリングするが、本発明が、コンテンツに操作が必要ないことを示すまで、加入者マシンで実行中の加入者アプリケーション又はＯＳに渡さない（すなわち、ストリームコンテンツへのユーザアクセスを阻止する）。ＣＰが、任意の操作が必要であるか否かを確立すると、それに従ってクライアントが命令される。必要な操作が実行された後、クライアントは修正されたデータをユーザアプリケーション又はＯＳにリリースする（コンテンツのブロックである場合もあり、この場合、修正されたデータは元のストリームコンテンツをほとんど又はまったく含まない）。
【００７７】
ここで、多数の別個のストリームを同時に処理可能なＣＰのメモリ要件を考える。これらのストリームにわたって転送されるコンテンツが小さい（たとえば、１０キロバイト単位で測定される）場合、このコンテンツはＣＰ内に短時間だけ留まり、（上述したように、ストリームコンテンツがＣＰに入る際にストリームコンテンツを記憶する）ストリームコントローラに課されるバッファリング要件はあまり大きくない。
【００７８】
しかし、このストリームが多数のコンテンツ、たとえば１Ｍバイトを超える複数のファイルを伝送している場合、これは、ストリーム毎に出力キューを保持するコントローラに対して相当なバッファリング要件を課す恐れがある。たとえば、サービスを完了する前に、コンテンツ全体を受信して記憶しなければならない場合もある。クライアントなしでは、このデータはギガバイト単位になる可能性があり、これをストリームコントローラの出力キューに記憶しなければならない。
【００７９】
出力キューは、データをストリームプロセッサに転送して機能を実行するために使用される限られた入力バッファとは別個に保持することができる。ＣＰは、トラフィックを受信したときの速度でトラフィックを処理するように設計されるため、これは処理負荷のピークにだけ要求される。このようなピーク中、要求された機能を実行可能なすべてのストリームプロセッサがビジーであり、したがってこれらが利用可能になるまでデータがバッファリングされることが発生し得る。
【００８０】
さらに、ストリームプロセッサ自体が、限られた記憶量を有してもよく、現在処理中のストリームを一時的に記憶できるようにすることができる。したがって、最も顕著なバッファリング要件は、加入者のコンピュータにクライアントがインストールされていない場合にＣＰが使用する出力キューに対してである。上述したように、クライアントの使用により、コンテンツをＣＰにそのまま流すことができ、それによってＣＰでの過度のバッファリング要件がなくなる。
【００８１】
本発明による装置の実施に使用できる多くの異なる実施態様がある。特に、種々の異なる処理ユニットを使用して、ストリームプロセッサ及びサービスプロセッサを提供することができる（たとえば、異なるバス、要素を共に結合する異なる方法等）。
【００８２】
図４は、ＣＳＧ４００（ＣＰ４１０を含む）の構成要素を示すブロック図である。ＣＳＧ４００は、インターネットベースのサーバ４４０と加入者マシン４５０との間のネットワーク上に配置される。上述した種類のクライアント４５１が、加入者マシン４５０にインストールされて示される。ＣＰ４１０は、ストリームコントローラ４１１、ストリームプロセッサアレイ４１２、及び多数のサービスプロセッサ４１３を備えて示される。ＮＴＰ４２０及びＣＰ４１０は両方とも、記憶装置４３１（すなわち、ハードディスクドライブ）及び電源４３２を有するホストハードウェア４３０によってサポートされる。ＣＰについてはいくらか詳細に説明している。これより、他の構成要素、特にＮＴＰ４２０を考察する。
【００８３】
ＮＴＰ４２０は、サービスをどのトラフィックに適用すべきかを特定し、このコンテンツを伝送するプロトコルからこのコンテンツを取り込み、次いで処理のためにストリームコンテンツ／データとしてＣＰに提示する役割を担う。ＮＴＰ４２０はマルチプロトコルアウェアであり、ＴＣＰ、ＵＤＰ、又はＩＰ等の任意の伝送プロトコルからコンテンツを抽出できることに留意されたい。
【００８４】
ＣＳＧネットワークポート４０１がＮＴＰのポートに接続される。ＮＴＰは、ＣＳＧに接続されているネットワークに／からトラフィックを送受信する標準ネットワークポート４２１（たとえば、１０／１００イーサネット、１Ｇビット／秒イーサネット、ＦＤＤＩ、ＯＣ１２、ＳＴＭ１６等）とインタフェースする。
【００８５】
ＣＳＧは加入者にサービスを提供することを意図するが、ネットワーク内への導入は、非加入者トラフィックもＣＳＧを通ることを意味する。したがって、ＮＴＰ４２０は加入者トラフィック及び非加入者トラフィックを識別しなければならない。これは、各ネットワークポートに届くトラフィックの発信元ＩＰアドレス、宛先ＩＰアドレス、及びプロトコル情報の比較、並びにこれらのＩＰアドレスと加入者が現在使用しているＩＰアドレスのリスト（アクセス制御リストすなわちＡＣＬ）との比較を通じて行われる。このＡＣＬは多数の技法によって決定することができることに留意されたく、そのうちの３つを以下に列挙する。
１．ＣＳＧが、加入者及びＩＳＰインフラによって交換されるＲＡＤＩＵＳ（又は同様の）認証及びアカウントパケットを検出し、これらを遮断する。これらのパケットは、加入者名（たとえば、john.smith@myISP.com）を含み、加入者が「ログイン」したときにＩＳＰがその加入者に割り当てるＩＰアドレスを含むことができる。次いで、ＣＳＧは加入者名を、サービス対象の加入者リストと突き合わせて調べ、一致がある場合、その加入者のＩＰアドレスがローカルデータベースに追加される。
２．同様のログオンプロセスが、既知のＤＨＣＰプロトコルを利用してＩＰアドレスを割り当てることができ、ここでも、これらのメッセージはＣＳＧにより検出され、加入者識別子と割り当てられたＩＰアドレスとの関連が学習される。
３．ＩＳＰは、固定且つ規定のＩＰアドレスセットを使用するように管理されたサービスに加入者を割り当てることができ、したがって、これらはＮＴＰに直接プログラムされる。
【００８６】
ＮＴＰは、加入者側ポート及びインターネット側ポートからパケットを受信し、いずれかのポートから届く各パケット毎に、発信元、宛先、及びプロトコル情報を組み合わせてフロー識別子にする。次いで、ＮＴＰはこのフロー識別子をデータベースで調べる。これがフローで受信される最初のパケットである場合、データベースは新しいフローを示す結果をもたらす。この時点で、ＮＴＰは以下のチェックを行う。
１．パケットが加入者側ポートからのものである場合、ＡＣＬで発信元ＩＰアドレスを調べる。結果が、トラフィックが加入者からのものであることを示す場合、このフローのトラフィックをＣＰに渡すべきであることを示すエントリをフローデータベースに作成する。ＡＣＬを調べたことにより、トラフィックが非加入者からのものであることが示される場合、トラフィックをＣＰに渡すことなくＮＴＰから直接渡すべきであることを示すエントリをフローデータベースに作成する。
２．パケットがインターネット側ポートからのものである場合、ＡＣＬで宛先ＩＰアドレスを調べる。結果が、トラフィックが加入者からのものであることを示す場合、このフローのトラフィックをＣＰに渡すべきであることを示すエントリをフローデータベースに作成する。ＡＣＬを調べたことにより、トラフィックが非加入者からのものであることが示される場合、トラフィックをＣＰに渡すことなくＮＴＰから直接渡すべきであることを示すエントリをフローデータベースに作成する。
【００８７】
したがって、このフローを使用して受信される後続パケットは、トラフィックをＣＰに渡すか、又はそれ以上の処理なしでＣＳＧを通じてＣＰを迂回するかをＮＴＰに示す結果をフローデータベースにもたらす。この迂回ルートでは、非加入者トラフィックが無視できる遅延で、リアルタイムで転送されるような非常に短い待ち時間である。
【００８８】
ＵＤＰ又はＴＣＰを介して伝送されるトラフィックの場合、フロー識別子の構築に使用されるプロトコル情報は、プロトコルの種類、宛先ポート番号、及び発信元ポート番号から成ることに留意されたい。他のプロトコルを介して伝送されるトラフィックの場合、フロー識別子の構築に使用されるプロトコル情報は単にプロトコルの種類（たとえば、ＩＣＭＰ）である。
【００８９】
ＮＴＰが、ＴＣＰ接続又はＵＤＰを介して送信されたパケットに対して、パケットをＣＰで処理すべきであるか否かを判断すると、ＮＴＰはこれらのプロトコルからペイロードを抽出してストリームを生じさせ、このストリームで受信した情報を、加入者識別子を添付してＣＰに渡す。このストリームはＣＳＧに数分、数時間、又はさらには数日という延長期間にわたって届くこと場合があり、各情報が届いたときに、ＮＴＰはストリーム情報を抽出し、これを識別子と共にＣＰに渡すことに留意されたい。この識別子が、同じネットワーク接続を使用している別個の加入者を区別せず、さらなる加入者識別技法をＣＰにより行うこともできることを想起されたい。
【００９０】
ＮＴＰはこれを、それ自体の中でローカルにＴＣＰ接続を終端することによって実現する。これは、加入者マシンと宛先マシンとの間にエンドツーエンドを形成するＴＣＰ接続に代えて、１つの接続が加入者とＣＳＧとの間に形成され、第２の接続がＣＳＧと宛先マシンとの間に形成されることを意味する。ＴＣＰを使用する新しいフローが検出され、ＮＴＰによりそのフローが加入者に属するものであると判断された場合、この時点で、２つの接続がセットアップされる。セッション層プロトコル（たとえば、ＨＴＴＰ）は依然としてエンドツーエンドであるが、ＣＰはこのセッションを介して渡される情報を操作できることに留意されたい。ＣＳＧは、従来のネットワークプロキシのように（たとえば、各接続が別個のネットワーク層アドレス及びリンク層アドレスを利用する）、又はこれらのリンク層アドレス及びネットワーク層アドレスがＴＣＰ接続対で同一であるようにトランスペアレントにＴＣＰ終端を行うことができる。
【００９１】
同じ「トランスペアレントな」手法がＵＤＰ及び他のプロトコルに使用される。
【００９２】
これらのＴＣＰ接続の終端により、ＣＰは、コンテンツがエンドポイント間を渡るときにコンテンツを修正することができ、ＣＰにより行われるコンテンツへのいかなる変更も通信問題を生じさせないことを保証する。仮にＴＣＰ接続がまだエンドツーエンドであれば、ＣＰがコンテンツを修正する際に、ＴＣＰの肯定応答機能が問題を生じさせる。これは、一方の当事者により送信された情報が他方により受信される情報と異なり（ＣＰが情報を修正したため）、連続的な再送信要求を生じさせるためである。
【００９３】
上述したように、ＣＳＧのＣＰ構成要素は、ＮＴＰにより取り込まれる多数のユーザコンテンツストリームに対して動作するように設計され、ストリームは様々な時間にわたって種々の量のコンテンツを転送することができる。ＣＰは、いずれの時点でも受信したコンテンツ量を処理するように構成される。
【００９４】
上述したように、コード及び情報の更新を提供して、ＣＳＧが最新のサービスを提供することを保証することができる。したがって、本発明は、ＣＰがこのような更新を受信でき、それによって加入者を最近現れた脅威（新しい難読化技法で生成された新しいウィルス又はスパムメッセージ等）から保護するようになっている。好ましくは、更新プロセスは、ＣＰ更新時に加入者がサービスロスを受けないように実施される。
【００９５】
本発明の一実施形態によれば、コード又は情報の更新が必要な場合、ホスト４３０（図４に示す）に、更新の要求された宛先を示すマーカを含む新しいコード又は情報が提供される。更新は、たとえば、或る種類のストリームプロセッサ、ストリームプロセッサ機能、サービスプロセッサ、又は関連するデータベースのいずれかに固有であることができる。更新はストリームコントローラに渡されてから、最終的な宛先に向けられる。
【００９６】
コード又は情報の更新は大まかに２つの種類に分けることができる。第１の種類は「増分的」更新であり、これにより、関連構成要素（ストリームプロセッサ、サービスプロセッサ等）が、構成要素をオフラインすることなく（すなわち、構成要素が更新中に通常通り機能し続ける）関連するコード又は情報を吸収することができる。第２の種類は、構成要素を一時的に停止させる必要があり、「交換」更新と呼ばれる場合があり、この種類の更新を受けるとき、関連構成要素は、この時点で機能できないことをストリームプロセッサに示す。交換更新が完了すると、構成要素は、再び機能する準備が整ったことをストリームプロセッサに示す。
【００９７】
本発明の利点は、１つの構成要素がオフラインになった場合、他の構成要素を利用できるため、加入者はこのことに気づく必要がないことである。たとえば、ストリームプロセッサがオフラインになって更新される場合、残りのストリームプロセッサが単にその負荷を引き継ぐ（すべてのストリームプロセッサを更新する必要がある場合、更新は一度に１つのストリームプロセッサずつ行われる）。実際に、これは、ストリームプロセッサが何らかの理由によりオフラインである場合（たとえば、ストリームプロセッサが破損するか、又は故障している場合）に行われる。
【００９８】
上述したように、本発明のコンテンツ処理能力は、情報ストリームをパケットからファイル、ウェブページ、電子メール等のコンテンツに変換し、その後、このコンテンツに対して機能を実行できるようにする。このような機能の１つは、このコンテンツを一意に識別する、コンテンツの指紋又はダイジェスト（たとえば、ＭＤ５）を計算することである。このダイジェストは、このコンテンツをカプセル化して転送するネットワークパケットではなく、コンテンツを、ネットワークを通って流れるときに識別することに留意されたい。
【００９９】
本発明の好ましい実施形態は、次いでこれらの計算されたダイジェストについての情報をリアルタイム内蔵データベースに、ダイジェストが属するコンテンツのネットワーク発信元、コンテンツの種類、コンテンツが本発明により或る時間期間にわたってネットワークで検出された回数等の各ダイジェストに関連する情報と共に記憶するさらなる機能を含む。この場合、このコンテンツ関連情報のデータベースは、ネットワークオペレータが各自のネットワークを通って流れるコンテンツの品質、種類、及び性質を確定するために、外部管理システム（ＳｔｒｅａｍＳｈｉｅｌｄサーバ又は第三者ネットワーク管理システム等）に提供することができる。
【０１００】
このようにして、このような管理ソリューションはこのコンテンツ情報を報告して、たとえば、ネットワークを通じて行われた最も頻繁なファイルダウンロード、ネットワークを通じて行われたダウンロードの数を時間に対してグラフで、又はネットワークを通じて閲覧された最も閲覧回数の多いウェブページを示すことができる。
【０１０１】
これより、本発明によるＣＳＧの特定の使用例を考察する。
【０１０２】
まず、ＵＲＬフィルタリングサービスの提供を考える。加入者に、ブロックすべきカテゴリのリストを指定することによって特定のウェブサイトへのアクセスをブロックする能力が提供される。たとえば、加入者はスポーツ関連コンテンツのウェブサイトへのアクセスを許可したいが、ポルノコンテンツを含むサイトへのアクセスをブロックしたいことがある。加入者は、標準管理システムを通じてこの情報を構成し、次いで、この情報はＣＳＧに渡され、この加入者にＵＲＬフィルタリングサービスを適用しなければならないとの知識がＣＰのストリームコントローラの加入者ポリシーデータベースに記憶され、次いで、サービス固有の情報がＣＰのＵＲＬフィルタリングサービスポリシーデータベースに記憶される。
【０１０３】
ＣＳＧには、それぞれに関連するカテゴリを有するウェブサイトアドレス（ドメイン及び／又はＩＰアドレス）のデータベースも構成される。このデータベースも、ＵＲＬフィルタリングサービスに関連するＣＰ内のサービスプロセッサに渡される。
【０１０４】
加入者はここでウェブ閲覧セッションを開始し、スポーツ関連コンテンツを主催するサイトのウェブサイトアドレスを入力し、このサイトがＣＳＧにロードされるウェブサイトデータベースに含められる。加入者がサイトのＵＲＬを入力すると、ブラウザはホストサイトへのＴＣＰ接続を標準の様式で形成し、ＣＳＧ内のＮＴＰが上述したように動作して加入者ＴＣＰ接続を識別し、そのＴＣＰ接続を通じて送信されたストリーム情報をＣＰに向け、このストリームは一意の識別子を有し、識別子が作成されると、ＣＰはこのストリーム識別子、加入者識別子、及びストリームについての情報を渡される。これに応答して、ストリームコントローラは、この情報を含むこのストリームのエントリをストリームコンテキストストアに作成し、未知の種類の新しいストリームとしてマーキングする。
【０１０５】
ここで、ストリームコンテンツは、ネットワークを介して届くと、その度に一意のストリーム識別子と共に部分で（in sections）ＣＰに渡されている。ストリームコントローラは、ストリームコンテキストストアにおいてそのストリームを調べ、それが未知の種類であることに気づき、したがってストリームを識別可能なストリームプロセッサにストリームを送信する。この段階では、ストリームプロセッサがデータプロトコルを識別するのに十分なストリームコンテンツを受信していない場合があり、この場合、ストリームプロセッサはこれを示す結果をストリームコントローラに返送し、それまでに送信されたストリーム情報のローカルコピーを記憶することができる。
【０１０６】
ストリームの次の部分が届くと、ストリームコントローラはここでも、ストリーム識別子を使用して、ストリームコンテンツを前に使用したものと同じストリームプロセッサ又はプロトコル識別に適合した別のストリームプロセッサのいずれかに送信し、このストリームプロセッサはその新しい情報及び記憶されている任意の必要な情報を使用し、ストリームの識別に十分な情報を有する場合には、トラフィックがＨＴＴＰストリーム（この例では）であることを示すとともに、ストリームのどの部分が識別されたかをストリームコントローラに対して示すストリームポインタも含む結果をストリームコントローラに返送する。
【０１０７】
ＣＰはここでストリームの種類及び加入者識別子を知り、加入者ポリシーデータベースストアを使用して、ＵＲＬフィルタリングサービスをこのストリームに適用すべきであると判断する。その結果、ストリームポインタ後に受信されるコンテンツはストリームプロセッサに送信されて、プロトコル復号化機能が実行される。
【０１０８】
次いで、このプロトコル復号化機能がＵＲＬ（たとえば、www.sportscontentsite.com）をＨＴＴＰストリームから抽出し、プロセス出力データがストリームコントローラに返される。このプロセス出力データは、ＵＲＬが、ストリーム識別子及びストリーム処理で達したポイントを示すストリームポインタと共に、ＵＲＬフィルタリングサービスに関連するサービスプロセッサに渡されるべきであることを示す。適当であれば、機能が抽出データ（プロセス出力データを含む）をさらに処理できることに留意されたい。たとえば、この場合、機能はＵＲＬのダイジェストを計算することもでき、この計算されたダイジェストは、ＵＲＬのデータベースが暗号化されている場合に、平文ではなくダイジェストを通じてアクセスされるようにサービスプロセッサによって使用される。
【０１０９】
ＵＲＬフィルタリングサービスプロセッサは、次いで、ウェブサイトデータベースでＵＲＬを調べ、スポーツカテゴリを返し、加入者識別子を使用して加入者のサービスポリシーを調べ、このカテゴリが加入者によって許可されていることを確認する。したがって、ウェブ要求に対して動作を行うべきではなく、この結果はストリームポインタ情報と共にコントローラに返される。
【０１１０】
ストリームプロセッサ及びサービスプロセッサは、ストリームコントローラによって並列して記憶されている元のコンテンツのコピーに対して動作することに留意されたい。ストリームコントローラは、それ自体及び機能により計算したストリームポインタを使用して、意図される宛先にどの程度のコンテンツを「リリース」すべきかを判断する。たとえば、ＵＲＬフィルタリングサービスプロセッサがウェブ要求を許可すべきであると判断したとき、コントローラはそのストリームの１，２００バイトに値する情報を記憶しているとする。許可すべきウェブ要求が８００バイトサイズであるとすると、これは情報であり、機能によって計算されたストリームポインタによって記憶され、したがって、ストリームコントローラは８００バイトの送信を許可し、まだクリアする必要のある残りの４００バイトを保持する。
【０１１１】
ＵＲＬフィルタリングサービスプロセッサが、加入者がブロックすべきであると構成したサイトとして分類されていた場合のように、サイトをブロックすべきであると判断した場合、ＵＲＬフィルタリングサービスプロセッサは、ＨＴＭＬ「ブロック」ページを含むＨＴＴＰ応答をストリームコントローラに渡し、この応答は、このストリームに固有の情報（たとえば、ブロックの理由）を含む。この時点で、ストリームコントローラは８００バイトを削除し（ストリームポインタによって示されるように）、次いで、ＨＴＭＬブロックページコンテンツをストリーム識別子と共にＮＴＰに渡す。次いで、ＮＴＰはブロックページを加入者に送信し、ブロックページが加入者のブラウザによってレンダリングされる。ブロックページのコンテンツ又はそもそも実際にブロックページが送信されるのか否かは加入者ポリシーに従うことができ、したがってＵＲＬフィルタリングサービスの個人化を可能にする。
【０１１２】
ストリーム識別子は、任意のＴＣＰ接続が両方向に流れるコンテンツを有するため、ストリームを流れるコンテンツの方向を示すサブ識別子も有し、このサブ識別子は、流れる方向を単に示し、ＮＴＰにより発信され、ストリームコントローラによって使用される。
【０１１３】
ＵＲＬフィルタリングサービスは、加入者がウェブを閲覧できる時間量の制限又はアクセスの１日の特定の時間帯への制限等の他のウェブアクセス制御機能を提供する役割を担うこともできる。サービスプロセッサに、これらのチェックの実行に必要な生の情報が提供される。たとえば、サービス要求が渡されるとき（プロセス出力データに応じて）、サービス要求は、加入者識別子及びＴＣＰ接続が開かれていた時間を含むことができる。サービスプロセッサは訪問されたウェブサイトの性質及び種類についての統計並びに使用統計（たとえば、最も多く訪問されたサイト）を収集することもできることに留意されたい。
【０１１４】
ＣＳＧは、ウェブサイトデータベースに含まれていない未分類ウェブサイトへのものであるか、又はサイトが既知であるが加入者のポリシーによって許可されていることにより、加入者ウェブ要求を通すことを許可する場合では、その許可されたウェブ要求に応答して返されるコンテンツも検査する。
【０１１５】
行われるプロセスは最初は、ストリームがまずＨＴＴＰストリームとして分類され、応答として、このストリームにＵＲＬフィルタリングサービスを適用すべきである加入者に属するという点で、ウェブ要求に対して行われるものと同様である。この時点で、以下のプロセスが行われる。
【０１１６】
次いで、ストリームデータがコンテンツ識別機能に送信され、コンテンツ識別機能はこれをＨＴＭＬページとして識別し、次いで、ストリームコントローラがストリームをＨＴＭＬ構文解析機能に向ける。ウェブページがヘッダに含まれるＰＩＣＳメタタグを有する場合、これらが抽出され、詳細がサービス要求に組み込まれるが、サービス要求はこの段階では未完了とマーキングされ、したがって、いかなるサービスプロセッサによる動作も受けない。機能は引き続きＨＴＭＬコンテンツを構文解析し、コンテンツに含まれる任意の単語を抽出する（タグのレンダリングとは対照的に）。次いで、これらの単語が字句解析機能（これは同じストリームプロセッサで行うことができるが、そうである必要はない）に送信され、字句解析機能の結果（たとえば、性関連の単語が多量にある）が使用されて、さらにサービス要求が構築される。ＨＴＭＬ構文解析が完了すると、サービス要求は終了とマーキングされ、ＵＲＬフィルタリングサービスプロセッサがここで、供給された結果に対して動作して、ページをブロックすべきか否かを判断する。要求された動作を判断するために、ＵＲＬフィルタリング要素はＰＩＣＳメタタグをカテゴリにマッピングし、同様のマッピングを使用して字句解析結果をカテゴリに関連づけることに留意されたい。
【０１１７】
これらの結果のいずれにも、加入者がブロックを要求したカテゴリが出ない場合、ストリームコントローラに、ここでも正しいデータのみがリリースされることを保証するためにストリームポインタを使用してコンテンツのリリースを指示する。ＵＲＬフィルタリングサービスは、ページがブロックすべきコンテンツを含むと判断する場合、ブロックの理由を含むブロックページをストリームコントローラに返す。
【０１１８】
どの機能が呼び出されるか、及び結果をどこに送信するかを全体的に制御するのはストリームコントローラであるが、ストリームコントローラは、ストリームプロセッサにより返されるプロセス出力データに応答して制御を行う。好ましい一実施形態では、ストリームコントローラに、各種類のコンテンツの処理に使用すべきアルゴリズムの知識がマイクロコード化される。上記例を考えると、ストリームコントローラは、以下をスケジュールする。
１．プロトコル識別。
２．ストリームコンテンツがＨＴＭＬであることを示すプロセス出力データの受信を受けてのＨＴＭＬ構文解析。特に、構文解析は、まずＰＩＣＳメタタグを見つけることを含み、ＰＩＣＳメタタグは次いでサービス要求に詳述される。
３．ストリームコンテキストが字句解析機能に渡され、その結果がここでもサービス要求に組み込まれる、さらなるＨＴＭＬ構文解析。
４．ＨＴＭＬ構文解析が完了すると、サービス要求がＵＲＬフィルタリングサービスプロセッサに渡されて、サービスプロセッサが最終結果を計算すること。
【０１１９】
ＨＴＭＬ構文解析段階中に生成されるプロセス出力データは、さらなる機能又は実際にはサービスを行わなければならないことを示し得ることに留意されたい。たとえば、画像が見つかった場合、これは画像解析機能に送信され、その結果がサービス要求に組み込まれる。別法として、有害ソフトを伝送する恐れのあるアクティブコンテンツが見つかった場合、ＡＶサービスをスケジュールすることができる。
【０１２０】
加入者が検索中のウェブページが画像コンテンツ及び字句コンテンツの両方を含む例において、ストリームコントローラが複数のサービス及び複数の機能にこのコンテンツに対して動作させる場合、これらの機能は通常、並列して実施されるが、１つの機能が別の機能の出力に依存する場合、この出力は依存する機能に直接渡される。このプロセスはストリームコントローラにより以下のようにスケジュールされる。
１．ＨＴＭＬ構文解析機能を実行するストリームプロセッサが、ウェブページ中の画像を検出し、それに従ってストリームコントローラに通知するプロセス出力データを作成する。
２．ストリームコントローラは、どのストリームプロセッサが画像の処理に利用できるかを判断し、次いで、最も適したストリームプロセッサに、ＨＴＭＬ構文解析機能からの画像解析するストリームを待つように指示する。
３．次いで、ストリームコントローラは、ＨＴＭＬ構文解析機能に、ストリームコントローラが判断したストリームプロセッサに画像（その画像のみ）を直接送信するように指示する。
４．その後、ＨＴＭＬ構文解析機能がウェブページ中のテキストを検出し、それに従ってストリームコントローラに通知する。
５．ストリームコントローラは、どのストリームプロセッサがテキストの処理に利用できるかを判断し、次いで、最も適したストリームプロセッサに、ＨＴＭＬ構文解析機能からの字句解析するストリームを待つように指示する。
６．次いで、ストリームコントローラは、ＨＴＭＬ構文解析機能に、ストリームコントローラが字句解析に選択したストリームプロセッサにこのテキスト（このテキストのみ）を直接送信するように指示する。
７．ストリームコントローラは、３つの機能（ＨＴＭＬ構文解析、画像解析、及び字句解析）を実行するストリームコントローラからプロセスデータを受信し、サービス要求をプロセス出力データに応じて構築する。
８．機能が完了すると、サービスプロセッサがサービス要求に対して動作し、サービスプロセッサは次いで、ストリームコントローラにストリームの処理の仕方（すなわち、ユーザに送信すべきか否か）を指示する。
【０１２１】
上記のこれは、作業が各種構成要素間でどのように分けられるかを示す。コントローラは、どのサービスを適用する必要があるかを判断し、次いで、ＨＴＭＬ構文解析機能により提供されるプロセス出力データに応答して、さらにどの機能が必要かを判断する。並列アーキテクチャが上記例によりよく示されている。時により、３つすべての機能が一度に行えることがある（ＨＴＭＬ構文解析がさらなるテキスト又は画像を求めて探索し、画像解析及び字句解析がすでに識別された画像及びテキストを調査する）。
【０１２２】
上記は、ＣＰが加入者コンテンツをどのように処理することができるかの一例を提供するが、ＣＰがまた、機能及びサービスの結果を解析して、両方を更新できることを念頭に置くことが重要である。上記例では、返されるコンテンツはブロックされ、出力が許可された要求のＵＲＬがストリームコンテキストストアに記憶されており、ＵＲＬフィルタリングサービスが、返されるコンテンツをブロックすべきであると判断する場合、ＵＲＬはウェブサイトデータベースの適当なカテゴリ（ブロックされたデータの性質を表すカテゴリ）の下に追加される。同様に、返されるコンテンツが、有害ソフトを伝送することが分かったアクティブコンテンツを含んでいる場合、ＵＲＬはまた、ウェブサイトデータベースに適当なカテゴリの下に追加される。
【０１２３】
上記の節は、加入者のウェブアクセスがどのように制御されるかを示すが、サイトブロックは、ファイル転送プロトコル（ＦＴＰ）を使用するファイル転送等の他のアプリケーション上でも提供される。初期ＦＴＰアプリケーションが、ＴＣＰ接続であって、当該接続を介して送信中のコンテンツをＣＰに処理させるＴＣＰ接続を開く場合、上述したプロセスと同じプロセスが使用される。ここでも、ＣＰはプロトコルの種類を識別し、加入者識別子を使用して、宛先を調べなければならないと判断する。プロトコルは、トラフィックがＣＰに届くにつれてさらに復号化され、宛先サイト又はドメインがブロックを要求されているカテゴリ内にあることが分かった場合、ＦＴＰセッションはＣＳＧに引き継がれない。同様に、宛先ドメインが許可されている場合、返されているコンテンツは調べられ、要求されるサービスを求めて任意の必要な機能が適用され、たとえば、ファイルが有害ソフトを伝送している可能性があると考えられる場合、アンチウィルスサービスがコンテンツに対して実行される。
【０１２４】
これより、本発明により提供されるアンチウィルスサービスの例を考察する。危険又は破壊的である場合がある、悪意のあるいかなるコンテンツも識別するプロセスが、アンチウィルスサービスによって実行される。このサービスは任意のアプリケーション（たとえば、ウェブ閲覧、ＩＭ）に対して実行され、電子メールに対して行われるプロセスについて以下に説明する。
【０１２５】
加入者は、各自の電子メールクライアントを開き、電子メールの受信を要求して、電子メールクライアントに、ＳＭＴＰ、ＰＯＰ３、又はＩＭＡＰ等のプロトコルを介しての一連のメール操作を実行させる。これらは、クライアントにまずＴＣＰ接続を開かせ、ＮＴＰがこれを、前の節で説明したように処理し、ＣＰに、加入者識別子を含む情報を保持するストリームコンテキストストア内のエントリを開かせる。ここでも、ＣＰはこのストリームに乗って届いているコンテンツを受信して、最終的に（この場合）電子メールにより使用されるものとして復号化されるプロトコルの解析に利用できる識別機能に送信し、後続するコンテンツはコンテンツ識別機能に送信される。このプロセスは、各コンテンツが届くとストリームコントローラによりストリームプロセッサに送信される、前の節で説明した様式で行われる。ストリームプロセッサは、コンテンツの限られたコピーを保持してもよく、ストリームコントローラ及びストリームプロセッサの両方が、ストリームポインタを使用して、入来するストリームの処理のどこにいるかを判断し、その間に同時にこのストリームは記憶される。
【０１２６】
コンテンツがさらにストリームに乗って届くと、メールヘッダ及び本文の解析に使用される機能がコンテンツに対して動作する。これは、ＭＩＭＥヘッダの解析を含み、これらのヘッダにより、メールがいずれの方法でも圧縮されていない添付を伝送していることが示される場合、この機能は任意の必要なＭＩＭＥ復号化を実行し、次いでファイル解析アルゴリズムを使用してファイルの種類（たとえば、．ｅｘｅ、．ｖｂｓ、．ｊｐｇ）を識別する。ファイルの種類が判断されると、この結果がストリームコントローラに渡され、ファイルが有害ソフトを伝送している恐れがあることを示す。次いで、ストリームコントローラは、加入者にＡＶサービスを適用すべきであるか否かを判断し、適用すべき場合、ファイル解析機能を実行するストリームプロセッサに、ＡＶ機能（複数可）を実行可能なストリームプロセッサ（複数可）に出力（ストリームポインタ、ストリーム識別子等の情報を含むヘッダ情報を有するＭＩＭＥ復号化ストリーム）を送信するように指示する。ストリームポインタは、ストリームがファイル全体を含むことを保証する。
【０１２７】
通常、ＡＶ機能は商用のＡＶスキャナであり、ストリームは、インストールされている種々のスキャナと同じ数だけ並列に送信される。追加のＡＶ機能を使用してもよい。ここでも、ストリームコントローラは、ストリームコンテンツが、要求される機能を実行可能なストリームプロセッサに送信されることを保証する（ストリームコントローラが各ファイル種類毎に従う予めセットされたアルゴリズムがあり得る）。いくつかのＡＶ機能はファイル全体にアクセスする必要があることがあり、したがって、これらの機能用に設計されたストリームプロセッサは、大きな記憶容量を有する。まとめると、この段階では、添付を含むストリームデータはＭＩＭＥ復号化され、この復号化されたものが、複数のＡＶ機能を提供する複数のストリームプロセッサ内に存在することができ、元のストリームはストリームコントローラによって記憶されている。プロトコル、コンテンツ、及びファイルの識別機能並びにＭＩＭＥ復号化機能を実行するストリームプロセッサは、この時点で、各コンテンツを破棄することができる。
【０１２８】
ＡＶ機能が実行されるとき、プロセス出力データが返されており、これに基づいてサービス要求が構築されている。サービス要求の準備が整うと、ＡＶサービスプロセッサはこれらの複数の結果を適したアルゴリズムを使用して解析し（たとえば、いずれか１つの結果がウィルスの存在を示す場合、トラフィックをブロックする）、加入者のサービスポリシーにアクセスして、検出されたウィルスをどのように処理すべきか（たとえば、削除、隔離）を判断し、その結果を指示としてストリームコントローラに送信する。ＡＶサービスはまた、ウィルスが検出される場合、電子メールが加入者に添付を除いて転送されるが、ヘッダが適宜変更され、スキャンメッセージが追加されるように、加入者固有の「スキャンメッセージ」をストリームプロセッサに提供してもよい。このスキャンメッセージはバイトセットとして、ストリームコントローラにこれをストリームのどこに追加すべきかを指示する制御情報と共に提供される。
【０１２９】
この例は、ストリームコントローラがどのように、ストリームの導出コピー（ＭＩＭＥ復号化したもの）を、ＡＶサービスをコンテンツに適用する限られた期間にＣＰ内に存在させるかを示す。ＣＰは、コンテンツがアーカイブ（たとえばＺＩＰ形式に圧縮）又は圧縮された場合、コンテンツを復元可能なストリームプロセッサも含む。上記例を考えると、添付が圧縮されていた場合、識別機能は、ＭＩＭＥヘッダの解析及びファイル内からの情報からこれを判断し、この結果をストリームコントローラに渡す。次いで、ストリームコントローラは、機能に、復元可能なストリームプロセッサにストリーム（ＭＩＭＥ復号化後の導出ストリームであり得る）を直接送信するように指示し、復元可能なストリームプロセッサはここでも、ＡＶ機能（複数可）に送信する準備ができた添付をもたらす新しいストリームを導出する。
【０１３０】
これらのパイプライン化された機能は、コンテンツがＣＳＧに届くとコンテンツに対して動作し、たとえば、１Ｋバイト毎に、１Ｋバイトの各コンテンツがＮＴＰにより取り込まれると処理することに留意されたい。これは、コンテンツセキュリティサービスを適用する際の待ち時間を短縮する。たとえば、加入者が１００Ｋバイトファイルをダウンロードしており、２つの機能を適用しなければならず、第２の機能が第１の機能の出力に対して動作する場合、両方の機能が、１Ｋバイトが届くと１Ｋバイト単位で直列して動作し、１００回呼び出されることになる。
【０１３１】
上記例は、ＡＶサービスを実施する場合にファイルベースのコンテンツがどのように処理されるかを示すが、有害ソフトは低レベルプロトコルベースのワーム（たとえば、Ｗ３２／スラマー）、偽造メッセージ等の他の形態で、ウェブページに埋め込まれたアクティブコンテンツとして存在し得る。ＡＶサービスはまた、以下の手段によってコンテンツにこれらの種類の有害ソフトがないことを確認する。
【０１３２】
ウェブ由来のアクティブコンテンツ：先に提供したウェブアクセス例を考えると、各ウェブページはＣＰ内のＨＴＭＬ構文解析機能によって構文解析され、ＨＴＭＬ構文解析機能はいかなるスクリプト又は他のアクティブコンテンツも識別する。この情報はストリームコントローラに（通常のストリーム識別子及びストリームポインタと共に）渡され、ストリームコントローラは、構文解析機能に、ストリームのこの部分を１つ又は複数のＡＶ可能ストリームプロセッサに送信するように指示する（たとえば、第三者スキャナ、パターンマッチング、又はエミュレーションを実行するために）。その結果でサービス要求が構築され、このサービス要求はＡＶサービスプロセッサに渡される。識別されたアクティブコンテンツが悪意のあるものであると考えられる場合、ＡＶサービスはストリームポインタをストリームコントローラに、コンテンツ削除要求又は必要であればページ全体のブロック要求と共に渡す。次いで、ストリームコントローラは、出力ストリームに修正を行ってＮＴＰに送信し、ＮＴＰは次いで、これを加入者に送信する。
【０１３３】
プロトコルベースのワーム：これらは、単純なパケットベースの有害ソフトであり、その単純さ故に高速で複製が可能であり、ファイルを構成しないため、ＯＳファイル操作に結び付いた従来のＰＣベースのウィルススキャナで検出することができない。このプロトコルベースの情報は、通常の様式でＣＰに送信され、ストリームのコピーがストリームプロセッサに送信されて、任意の既知のワームを探してストリームを調べるために使用される複雑なパターンマッチング機能を実行する。このパターンマッチングは、既知の業界標準侵入検出システム（ＩＤＳ）の形態であり、ワームパターンが検出される場合、ストリーム中のワームの境界を識別するストリームポインタ及び一致したパターンを含むサービス要求が構築されて、ＡＶサービスプロセッサに送信される。ＡＶサービスプロセッサは、この情報を、そのストリームに対して進行中の他の操作と相関付け、適したアルゴリズムを使用して、コンテンツが悪意のあるワームであると判断し、ワームの活動についての局所的な統計を更新する。ＡＶサービスプロセッサはこの判断をストリームコントローラに渡し、ストリームコントローラはストリームポインタをガイドとして使用してあらゆるワームの送信をブロックする。
【０１３４】
上記技法は、既知のワーム有害ソフト検出及び遮断に使用されるが、それでもやはり、これは新しい未だ知られていないワーム有害ソフトの伝搬を許す。これらのワームは、ＮＴＰ操作とＣＰにより通常の様式で使用される機能の組み合わせによって検出される。プロトコルワームは通常、ＵＤＰポート、ＴＣＰポート及びＩＰプロトコル（たとえば、ＩＣＭＰ）を使用して、インターネット上の脆弱なマシンを攻撃し、ＮＴＰは、ＴＣＰを介して開かれている接続の量及びレート、ＵＤＰ及びＩＰプロトコルトラフィック量等の規定のトラフィック測度を監視する。これらの測度が予め規定されたしきい値を超える場合、コンテンツのサンプルが、検出されたしきい値及び統計情報と共にＣＰに送信される。これは、ストリームコントローラにエントリをストリームコンテキストストアに作成させ、このストリームで受信されたコンテンツは１つ又は複数の機能に送信され、各機能は異なるアルゴリズムを実施可能であり、また並列して動作可能であり、この場合、これらの機能はＮＴＰから受信した情報及びコンテンツの解析専用である。これらの機能により、新しいワームが出回っている恐れがあると判断される場合、その結果はＡＶサービスプロセッサに送信され、ＡＶサービスプロセッサはアルゴリズムを実施して、どの動作をとるべきかを判断する。ＡＶサービスプロセッサは、このアルゴリズムが、ＮＴＰに向けての、ＴＣＰポート又はＵＤＰポートの閉鎖等の追加動作を生じさせる可能性があることを除き、ストリームコントローラにこれらの動作を通常通りにとるように指示する。これは、閉じるポート（複数可）、閉じるべき方向（複数可）、及び閉じる時間長を規定する制御メッセージとしてＮＴＰに渡される。
【０１３５】
上記の節では、説明したＣＳＧがどのようにアンチウィルスサービスを電子メールベースのアプリケーションに提供するかを説明した。同じアルゴリズム及びプロセスが、ＨＴＴＰ、ＦＴＰ、ピアツーピア、ＩＭ等の他のアプリケーションを介して転送されるコンテンツに対して同じサービスを提供するために使用される。唯一の違いはプロトコル復号化フェーズである。
【０１３６】
上記の節はまた、サービスの実行に使用される並列化及びパイプライン化をハイライトする。ワーム検出及びＡＶスキャナはすべて並列して実行されて利用可能であれば結果を返し、予備のＭＩＭＥ復号化段階及び復元段階がパイプライン化される。
【０１３７】
本明細書において詳細に考察する最後の例は、アンチスパム（ＡＳ）サービスの例である。前と同様に、プロトコル復号化機能がまずストリームコンテンツに対して動作し、十分なコンテンツが届いたときにストリームをＳＭＴＰ（たとえば）として識別する。次いで、コンテンツの種類が識別され、プロセス出力データが生成される。たとえば、コンテンツが平（ＡＳＣＩＩ）文であることが分かった場合、ストリームコントローラは、以下の機能を実行するように設計されたストリームプロセッサにコンテンツを送信することができる。
１．送信者、電子メールタイトル等についての情報をもたらすヘッダ抽出
２．ダイジェスト計算（たとえば、ＭＤ５）
３．メールを一連の単語又は語句に分解するトークン化
【０１３８】
サービス要求が、上記機能の結果に応じて構築され、適したアルゴリズムを実行するようになっているＡＳサービスプロセッサに渡される。このようなアルゴリズムの一例は、
１．ヘッダ情報を使用して、発信元情報をローカルブラックリストデータベースに記憶されている公開されている情報と突き合わせて調べることにより、送信者がスパム発信元として列挙されていないことを調べるもの、
２．ＡＳＣＩＩテキストに対して計算されたダイジェストを、頻繁に発生するメールダイジェストの公開データベース（ローカルに記憶されるスパムダイジェストデータベース）と比較し、ダイジェストがデータベースにある場合、スパムとして分類するもの、
３．ルールベースのヒューリスティックアルゴリズムを、メールから抽出されたトークンに対して実行するもの、
４．トークンを、別個の学習プロセスによって準備され、加入者によって改良されたベイズフィルタにかけるもの
である。
【０１３９】
次いで、ＡＳサービスプロセッサは、アルゴリズムの結果及び加入者のサービスポリシーに依存するサービス出力を返す。次いで、ストリームコントローラは、通常通りにストリームデータへのユーザアクセスを調整する。
【０１４０】
ＣＰについてＣＳＧの文脈で上述したが、いくつかの実施形態では、ＣＰはＰＣＩカードとして供給されてもよく、又はＮＴＰ構成要素なし（又は、さらに言えばホストなし）でもよい。これらの実施形態は、たとえば、スループットが低い企業環境に特に有用であり得る。
【０１４１】
さらに、上述したように、詳細に上述したものよりも多くの潜在的なサービスがある。たとえば、本発明が有利に利用することができるアンチフィッシングサービスが、本出願人の同時係属中の欧州特許出願第ＥＰ０５２５０１５７．４号に記載されている。大まかに言えば、この装置は、規定の種類のコンテンツを遮断してからユーザ毎に解析し、次いで場合によってはそのコンテンツを規定の方法で修正する手段である。本発明が規定することができる非コンテンツセキュリティアプリケーションの例としては、ユーザトラフィック毎にカスタマイズされた広告の追加、インターネット由来の画像の解析（たとえば、法的処置のため）、インターネット由来のウェブサイトの解析（たとえば、法的処置のため）、電子メール及びＩＭメッセージの監視（たとえば、法的処置のため）、及び全ウェブサイトの自動分類が挙げられる。同様に、ＣＳＧのスループット力を、大量トラフィックをオフラインで解析する、たとえば、１００万の画像をスキャンする手段として使用することができる。
【０１４２】
本発明は、常に膨張し続け進化し続けているコンテンツ解析の分野にかつてない能力及び柔軟性を提供し、コンテンツセキュリティにおいて特に有用である。
【図面の簡単な説明】
【０１４３】
【図１】本発明の一実施形態による装置が導入されるＩＳＰネットワークアーキテクチャを示す図である。
【図２】本発明の一実施形態によるコンテンツセキュリティゲートウェイ（ＣＳＧ）の動作の概念図を示す図である。
【図３】本発明による装置のコンテンツプロセッサ（ＣＰ）構成要素のブロック図である。
【図４】本発明によるＣＳＧの構成要素を示すブロック図である。
【図１】
2008516306.tif 000003
【図２】
2008516306.tif 000004
【図３】
2008516306.tif 000005
【図４】
2008516306.tif 000006
【国際調査報告】
2008516306.tif 000007
2008516306.tif 000008