JP2007325281A - Packet filtering system and method - Google Patents
Packet filtering system and method Download PDFInfo
- Publication number
- JP2007325281A JP2007325281A JP2007151035A JP2007151035A JP2007325281A JP 2007325281 A JP2007325281 A JP 2007325281A JP 2007151035 A JP2007151035 A JP 2007151035A JP 2007151035 A JP2007151035 A JP 2007151035A JP 2007325281 A JP2007325281 A JP 2007325281A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- procedure
- filter
- function
- document
- 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.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
(優先権主張)
本発明は、米国仮特許出願第06/296,763号に関連し、米国仮特許出願第06/296,763号の優先権を主張する。この教示は、全体として本明細書中で援用される。
(Priority claim)
The present invention relates to US Provisional Patent Application No. 06 / 296,763 and claims priority to US Provisional Patent Application No. 06 / 296,763. This teaching is incorporated herein in its entirety.
(著作権主張)
本出願は、著作権保護を受ける資料を含む。著作権者は、それが特許商標庁のファイルまたは記録に現われている場合、特許開示物を有するいかなる人によるファクシミリコピーについて異議を有さないが、他の場合、全ての著作権を保有する。
(Copyright claim)
This application contains material that is subject to copyright protection. The copyright owner has no objection to facsimile copying by anyone with a patent disclosure if it appears in the file or record of the Patent and Trademark Office, but otherwise retains all copyrights.
(発明の分野)
本発明は、パケットフィルタリングに関する。更に詳細には、それは、空間効率の良いパケットフィルタリングを達成するためのフィルタ規則を表示する、小さな、バイナリ5タプルの最適化されたシーケンスの使用と、トリガするイベントの発生時に動的および拡張可能な処理挙動を支援するおよび手順テーブルの使用とに関する。
(Field of Invention)
The present invention relates to packet filtering. More specifically, it uses a small, binary 5-tuple optimized sequence that displays filter rules to achieve space-efficient packet filtering, and can be dynamically and extensible when a triggering event occurs To support correct processing behavior and use of procedure tables.
(発明の背景)
パケットフィルタリングは、ネットワークアクセス制御、またはファイヤウォールタイプ、様々なネットワークシステムについての性能を提供する機能である。パケットフィルタリングは、通信ネットワークにおいて、ネットワークデバイス、またはノードから送信されるか、受信されたそれぞれのネットワークパケットを調べて、このように調べることに基づいて判断することにより、上記のファイヤウォールタイプを達成する。
(Background of the Invention)
Packet filtering is a function that provides performance for various network systems, network access control or firewall type. Packet filtering achieves the above firewall types by examining each network packet sent or received from a network device or node in a communication network and making decisions based on such examination. To do.
従来技術のたいていのパケットフィルタは、ネットワークアドミニストレータ、システムアドミニストレータ、ネットワークデバイス所有者等が特定のフィルタリング規則を動作上のグラフィカルユーザインターフェース(GUI)を介して規定することを可能にする。しかし、たいていのパケットフィルタリングは、単に、ユーザが、パケットが捨てられるか、このような判断に基づいて続行され得るかどうかを特定することを可能にする。これらは、「否定(deny)」および「許可(allow)」アクションまたは規則と呼ばれる。Edward Boden等の、特許文献1(2001年1月30日に発行した‘228特許)によって教示されたシステム等の、この技術への上記のアプローチは、パケットデータに基づいて特定の情報をログするアクションを含むように利用可能なアクションの数を増加させた。 Most packet filters of the prior art allow network administrators, system administrators, network device owners, etc. to define specific filtering rules via an operational graphical user interface (GUI). However, most packet filtering simply allows the user to specify whether the packet is discarded or can continue based on such a determination. These are called “deny” and “allow” actions or rules. The above approach to this technology, such as the system taught by Edward Boden et al., US Pat. No. 6,057,028 (the '228 patent issued on Jan. 30, 2001), logs specific information based on packet data. Increased the number of available actions to include actions.
許可、否定およびログフィルタ規則は、上から下へ連続して処理された、規則の秩序化されたリストとして、最も一般的に、入力される。秩序は、規則作成者、しばしばシステムまたはネットワークアドミニストレータによって特定される。それぞれの規則は、ネットワークトラフィックのある種類を許可するか、または否定する。さらにセキュアなパケットフィルタにおいて、パケット処理は、パケットが明示的に許可され、明示的に否定され、またはパケットが否定される場合の規則がなくなるまで、全ての規則を通じて続行する。一般に、かなり大きく、複雑なフィルタ規則セットは、ネットワークデバイスが支援されるべきそれぞれのプロトコルのために書き出されなければならない。
(発明の要旨)
したがって、本発明は、関連技術の制限および不利益による問題の1以上を実質的に除去するコンパクトで、拡張可能なパケットフィルタリングシステムおよび方法に関する。
(Summary of the Invention)
Accordingly, the present invention relates to a compact and extensible packet filtering system and method that substantially eliminates one or more of the problems due to limitations and disadvantages of the related art.
したがって、改良されたパケットフィルタリングシステムおよび方法を提供することが本発明の目的である。 Accordingly, it is an object of the present invention to provide an improved packet filtering system and method.
空間効率の良いパケットフィルタリングシステムおよび方法を提供することが本発明のさらなる目的である。 It is a further object of the present invention to provide a space efficient packet filtering system and method.
動的および拡張可能なフィルタリングシステムおよび方法を提供することもまた本発明の目的である。 It is also an object of the present invention to provide a dynamic and scalable filtering system and method.
本発明のさらなる特徴および利益は、以下に続く説明に記載されており、この説明から部分的に明らかであり、本発明の実用によって獲得され得る。本発明の目的および他の利益は、本明細書の記載された説明および添付された図面に特に示された構造によって実現され、達成される。 Additional features and benefits of the present invention are set forth in the description that follows and is in part apparent from the description, and can be obtained by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and the appended drawings hereof.
本発明の実施形態にしたがって、ネットワークアダプタ(またはデータリンク)のネットワークプロトコルソフトウェアスタックのレベルで、またはそれより上で、パケットをフィルタリングするシステムおよび方法は提供される。ネットワークアダプタレベルのパケットまたはネットワークアダプタレベルより上のパケットのフィルタリングは、規則ファイルまたは規則データベース(まとめて「規則ファイル」)内にユーザによって入力されたフィルタ規則文および手順文を処理することにより、達成される。このような規則ファイルは、フィルタインタープリタにロードされ得る5タプルフィルタリング規則および手順テーブルに変換され得る。次いで、フィルタインタープリタは、このアダプタでまたは低いレベルネットワークソフトウェアによるかのどちらかを介して、ネットワークアダプタによって受け取られたそれぞれのパケットのユーザ生成フィルタリング規則を解釈し得、決定(resolve)し得る。 In accordance with embodiments of the present invention, systems and methods are provided for filtering packets at or above the network protocol software stack level of a network adapter (or data link). Filtering of network adapter level packets or packets above the network adapter level is accomplished by processing filter rule statements and procedural statements entered by the user in a rule file or rule database (collectively "rule files"). Is done. Such a rule file can be converted into a 5-tuple filtering rule and procedure table that can be loaded into a filter interpreter. The filter interpreter may then interpret and resolve user generated filtering rules for each packet received by the network adapter, either through this adapter or through low level network software.
小さく、ネットワーキングを備えたデバイス、限定されるわけではないが、パーソナルデジタルアシスタント(PDA)、携帯電話、ページャ、腕時計、カメラ等(まとめて「ネットワークデバイス」)について、フィルタリングアクションは、上記のデバイスにて利用可能な限定された処理力およびメモリ量のために、かつ、それぞれのパケットのために処理されなければならない潜在的に大きい数のフィルタ規則ために、可能な限り時間的に効率良く、空間的に効率良いことが好適である。不必要に大きなフィルタファイルまたは過度に時間を消費するフィルタリング規則は、デバイスの他の使用と干渉し得、スループットまたは他の好まれない性能問題を引き起こし得る。したがって、システムを介して流れるそれぞれのパケットが全てのフィルタ規則によって処理されなければならない従来技術のシステムと異なり、本発明は、一旦パケットが識別されると、知的に、必要な規則のみをパケットに適用する。 For small, networking devices, including but not limited to personal digital assistants (PDAs), cell phones, pagers, watches, cameras, etc. (collectively “network devices”), the filtering action is Space as efficiently as possible due to the limited processing power and amount of memory available, and because of the potentially large number of filter rules that must be processed for each packet It is preferable to be efficient. Unnecessarily large filter files or excessively time consuming filtering rules can interfere with other uses of the device and can cause throughput or other undesirable performance issues. Thus, unlike prior art systems where each packet flowing through the system must be processed by all filter rules, the present invention intelligently packets only the necessary rules once the packet is identified. Applies to
従来技術のいくつか(‘228特許等)は、約6以上のパラメータを有するフィルタリング規則に基くシステムを作成したが、本発明は、5タプル定義を実施する。この低減は、結果的に、柔軟性のより高いレベル、増大された性能、および従来技術よりも低減された記憶要件を生じさせる。このような改良は、本発明が限定された記憶および処理能力のみを備えたコンピューティングデバイス上で用いられる場合に、特に有益であり得る。 While some of the prior art (such as the '228 patent) has created a system based on filtering rules having about 6 or more parameters, the present invention implements a 5-tuple definition. This reduction results in a higher level of flexibility, increased performance, and reduced storage requirements over the prior art. Such improvements can be particularly beneficial when the present invention is used on computing devices with only limited storage and processing capabilities.
本発明の他の特徴および利益は、添付の図面と関連させて、本発明の以下の詳細な説明から明らかである。前述の一般的な説明および以下の詳細な説明は、模範であり、例示で
ある。
Other features and advantages of the present invention will be apparent from the following detailed description of the invention in conjunction with the accompanying drawings. The foregoing general description and the following detailed description are exemplary and exemplary.
添付の図面は、本発明のさらなる理解を提供するように含まれ、本明細書の一部に援用され、本明細書の一部を構成するように含まれており、本発明の原理を説明するのに有用である説明とともに、本発明の実施形態を例示する。 The accompanying drawings are included to provide a further understanding of the invention, are incorporated in and constitute a part of this specification, and illustrate the principles of the invention. Embodiments of the present invention are illustrated with explanations that are useful to do so.
(好適な実施形態の詳細な説明)
ここで、本発明の好適な実施形態、添付図面に例示される実施例に、詳細に、参照される。ネットワークソフトウェアスタック内で実行され得る非常にコンパクトなパケットフィルタの生成およびテストと、不必要なオーバーヘッドで全てのパケットフィルタを担うことなく、パケットを識別する後の処理オプションの分離および拡張と、パケットフィルタがフィルタ規則を変えることなく、追加することなく、特定のパケットを識別する場合の動的プロセス変化とは、従来技術を超える本発明の利益の内にある。
(Detailed description of preferred embodiments)
Reference will now be made in detail to the preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. Generation and testing of very compact packet filters that can be performed within the network software stack, separation and expansion of processing options after identifying packets without burdening all packet filters with unnecessary overhead, and packet filters Dynamic process changes when identifying specific packets without changing or adding filter rules is within the benefits of the present invention over the prior art.
図1は、本発明の好適な実施形態の重要な要素、およびこのような要素間の論理関係およびデータフローを例示する。図1に示された実施形態は、フィルタの変形、手順および、5タプル再生122および手順表示124、および、ネットワークソフトウェア132および136を介するネットワークパケットとしての5タプル122の解釈134に関する他の規則文100に関係する。
FIG. 1 illustrates the key elements of a preferred embodiment of the present invention, and the logical relationships and data flow between such elements. The embodiment shown in FIG. 1 includes filter variants, procedures and other rule statements for 5-
フィルタ、手順、および他の規則文100は、フィルタコンパイラ102によって処理される。フィルタコンパイラ102は、以下のテーブル1およびテーブル2に提示された擬似コードに類似したコードを用いて、実施され得る。テーブル1は、フィルタ文を処理するためのサンプル擬似コードを提供し、テーブル2は、手順文を処理するためのサンプル擬似コードを提供する。フィルタコンパイラ102は、規則ファイル106および手順ファイル108を出力する規則ファイル106は、フィルタによって適用されるための規則のバイナリ表示を含む。規則ファイル106は、Java(R)バイトコード、マシン語その他の、マシン読み出し可能コードの形式を取り得る。手順ファイル108は、フィルタによって適用されるポリシーのバイナリ表示を含む。手順ファイル108は、好適には、手順表示のテーブルと、Java(R)バイトコード、マシン語その他のマシン読み出しコードにコンパイルされた手順関数のセットとの組み合わせである規則ファイル106および手順ファイル108は、規則が適用されるべきであるそれぞれのネットワークアダプタのために、生成され得るか、規則ファイル106および手順ファイル108は、ネットワークデバイスの範囲にわたってコピーされ得る。
Filters, procedures, and
ネットワークアダプタデバイスドライバ130または低レベルのネットワークプロトコル132のいずれか、または両方が初期化され、フィルタローダ120が実行する。サンプルフィルタローダ120の実行擬似コードが、以下に、テーブル3およびテーブル4で提供される。テーブル3は、手順テーブルをロードするための擬似コードを提供し、テーブル4は、5タプルをロードするための擬似コードを提供する。
Either the network
フィルタ文の処理
/*5タプルを生成するためにフィルタ文を処理する*/
構成された5タプルを保持するために5タプルバッファを作成する;
5タプルバッファの先頭に’nexttuplepointer’を設定する;
5タプルバッファの先頭に’nextrulepointer’を設定する;
while(より多くの文がファイルに存在する){
if(規則文がフィルタ文である){
for(文における各論理条件){
条件に対して5タプルを構成する;
5タプルバッファの’nexttuplepointer’にコピーする;
}
nextrulepointerをインクリメントする;
for(このフィルタ規則に対して生成された各5タプル){
’規則オフセット’5タプル要素を設定する=
nextrulepointer−5タプルのアドレス;
}
デフォルトの最後の5タプルを構成する;
5タプルバッファの’nexttuplepointer’にコピーする;
5タプルバッファ’nexttuplepointer’をインクリメントする;
}
nextrulepointerをインクリメントする;
for(このフィルタ規則に対して生成された各5タプル){
「規則オフセット」5タプルエレメントを設定する=
nextrulepointer−5タプルのアドレス;
5タプルバッファnexttuplepointer’をインクリメントする;
}
else{/*通常のように他の文を処理する*/}
}
各ネットワークアダプタのための手順ファイルを書き込む
テーブル1
フィルタ文の処理
/*手順テーブルを生成するために手順文を処理する*/
構成された手順テーブルを保持するために手順バッファを作成する;
手順バッファの先頭部に’nextprocpointer’を設定する;
while(より多くの手順文がファイル内に存在する){
if(規則文が手順文である){
手順インデックスエントリを構成する;
手順バッファの’nextprocpointer’にコピーする;
手順バッファの’nextprocpointer’をインクリメントする;
else{/*通常のように他の文を処理する*/}
}
各ネットワークアダプタのための規則ファイルを書き込む
テーブル2
ネットワークアダプタデバイスドライバ130または低レベルのネットワークプロトコル132のいずれか、または両方が初期化され、フィルタローダ120が実行する。サンプルフィルタローダ120の実行擬似コードが、以下に、表3および表4で提供される。表3は、手順テーブルをロードするための擬似コードを提供し、表4は、5タプルをロードするための擬似コードを提供する。
Filter statement processing / * Process filter statement to generate 5-tuple * /
Create a 5-tuple buffer to hold the configured 5-tuple;
Set 'nexttuplepointer' at the beginning of the 5-tuple buffer;
Set 'nextpointer' at the beginning of the 5-tuple buffer;
while (more sentences exist in the file) {
if (the rule sentence is a filter sentence) {
for (each logical condition in a sentence) {
Construct a 5-tuple for the condition;
Copy to 'nexttuplepointer' in a 5-tuple buffer;
}
increment nextpointer;
for (each 5 tuple generated for this filter rule) {
Set 'rule offset' 5-tuple element =
the address of the nextpointer-5 tuple;
}
Construct the default last 5 tuples;
Copy to 'nexttuplepointer' in a 5-tuple buffer;
Increment the 5-tuple buffer 'nexttuplepointer';
}
increment nextpointer;
for (each 5 tuple generated for this filter rule) {
Set "Rule Offset" 5-tuple element =
the address of the nextpointer-5 tuple;
Increment the 5-tuple buffer nexttuplepointer ';
}
else {/ * process other sentences as usual * /}
}
Write a procedure file for each network adapter
Table 1
Filter statement processing / * Process procedure statement to generate procedure table * /
Create a procedure buffer to hold the configured procedure table;
Set 'nextprocpointer' at the beginning of the procedure buffer;
while (more procedural statements exist in the file) {
if (the rule sentence is a procedure sentence) {
Configure a procedure index entry;
Copy to the 'nextprocpointer' in the procedure buffer;
Increment the 'nextprocpointer' of the procedure buffer;
else {/ * process other sentences as usual * /}
}
Write a rules file for each network adapter
Table 2
Either the network
ロード手順テーブル
/*手順インデックスをロードおよび分解する*/
ロード手順関数ライブラリ;
手順ファイルを読み込む;
手順テーブルをフィルタインタープリタにロードする;
for(各手順インデックスエントリ){
手順関数へのポインタを有するインデックスエントリをロードする;
}
テーブル3
5タプルテーブルをロードする
/*5タプルテーブルをロードする*/
規則ファイルを読み出す;
規則をフィルタインタープリタにロードする;
テーブル4
好適な実施形態において、フィルタローダ120の実行または初期化はまた、フィルタインタープリタ134が5タプル規則122および手順テーブル124をロードすることを可能にする。5タプル122は、一旦ロードされると、ネットワークパケットが、1以上のネットワークアダプタ(図示せず)へのデバイスドライバ130を介して、システムに入り、そこから離れて1以上のネットワークアダプタに向かう場合に、フィルタインタープリタ134によって用いられ得る。5タプルがフィルタインタープリタ134によって解釈され得るプロセスを実施する擬似コードは、以下のテーブル5にて提供される。
5タプルを解釈する
/*5タプルを解釈する
コードが各パケットに対して呼び出される
コードを許可、否定または拒否アクションを示すために呼び出し側にコードを戻す*/
第1の5タプルへの5タプルポインタを得る;
while(TRUE){
IF(Length==0){ /*整合を想定する−最後の5タプル*/
ポリシーリターンコード=5タプルにおける手順インデックスエレメントに基づく手順関数の呼び出す;
Return(手順リターンコード)
/*呼び出し側が実際の許可、否定、または拒否アクションを
行う*/
}
データオフセットからビットオフセットを抽出する;/*0であり得る*/
データオフセットにおけるビットオフセットをクリアする;
データオフセットをパケットポインタに加える;
if(Extract(長さ(Length)、パケットポインタにおけるパケットデータ、ビットオフセット)==データ値){ /*パケットおよびテストからデータを
抽出する*/
/*長さは、バイトサイズまたはビットサイズ
/*整合*/
/*整合を取るようにアクションを決定する*/
if Next Flag==SET&&/*規則は5タプルよりも多く有するか?*/
手順インデックス==0{ /*次の5タプルを有するANDか?*/
次の5タプルへの5タプルポインタを設定する;/*規則を継続する*/
}else{ /*手順を呼び出す*/
手順リターンコード=5タプルで手順インデックス要素に基づいて手順関数を呼び出す;
Return(手順リターンコード)
/*呼び出し側が実際の許可、否定、または拒否アクションを
行う*/
}
}Else{ /*整合なし*/
/*不整合に対して取るアクションに関して決定する*/
if Next Flag==SET /*規則は5タプルよりも多く有するか?*
/
if手順インデックス==0 { /*論理AND*/
5タプルポインタに規則オフセットを加える;/*規則の残りをスキップする*/
else /*次の5タプルを有する論理OR*/
次の5タプルに5タプルポインタを設定する;/*規則を継続する*/
else /*規則の終了*/
規則オフセットを5タプルポインタに加える;
break;/*ループの間に出る*/
}
}
テーブル5
ネットワークアダプタは、通常、デバイスに組み込まれるか、脱着可能にデバイスに結合される。このようなネットワークアダプタは、限定されるわけではないが、電気電子技術協会(Institute of Electrical and Electronics Engineers)(IEEE)802.3または802.5規格を実施し、fiber distributed−data interface(FDDI)、10Base−2、100−Base−FX、100Base−TXその他を含むもの等の無線デバイスの形式と、限定されるわけではないが、無線周波数、光学、音響または磁気誘導トランスミッタを実施し、IEEE802.11規格、ブルートゥース(Blue Tooth)無線通信規格その他を含むもの等の有線デバイスの形式を取る。ネットワークアダプタは、通常、デバイスがアクセスを有するインターフェースデータ構造を提示することにより、ネットワークアダプタが組み込まれるか、取り付けられるデバイスと通信を取る。
Load procedure table / * Load and disassemble procedure index * /
Load procedure function library;
Read the procedure file;
Load the procedure table into the filter interpreter;
for (each procedure index entry) {
Load an index entry with a pointer to a procedure function;
}
Table 3
Load 5-tuple table / * Load 5-tuple table * /
Read the rules file;
Load the rules into the filter interpreter;
Table 4
In the preferred embodiment, execution or initialization of the
Interpret 5 tuples / * Return code to caller to indicate code that interprets 5 tuples allow, deny, or deny actions for each packet * /
Get a 5-tuple pointer to the first 5-tuple;
while (TRUE) {
IF (Length == 0) {/ * Assume matching-last 5 tuples * /
Call procedure function based on procedure index element in policy return code = 5 tuples;
Return (procedure return code)
/ * The caller does the actual allow, deny, or deny action
Do * /
}
Extract bit offset from data offset; / * can be 0 * /
Clear bit offset in data offset;
Add a data offset to the packet pointer;
if (Extract (length, packet data in packet pointer, bit offset) == data value) {/ * data from packet and test
Extract*/
/ * Length is byte size or bit size
/ * Alignment * /
/ * Determine actions to align * /
if Next Flag == Does the SET && / * rule have more than 5 tuples? * /
Procedure index == 0 {/ * AND with the next 5 tuples? * /
Set a 5-tuple pointer to the next 5-tuple; / * continue the rule * /
} Else {/ * Call procedure * /
Call procedure function based on procedure index element with procedure return code = 5 tuples;
Return (procedure return code)
/ * The caller does the actual allow, deny, or deny action
Do * /
}
} Else {/ * No match * /
/ * Determining actions taken for inconsistencies * /
if Next Flag == SET / * Does the rule have more than 5 tuples? *
/
if procedure index == 0 {/ * logical AND * /
Add rule offset to 5-tuple pointer; / * Skip the rest of the rule * /
else / * logical OR * / with next 5 tuples
Set the 5-tuple pointer to the next 5-tuple; / * continue the rule * /
else / * end of rule * /
Add a rule offset to the 5-tuple pointer;
break; / * comes out during the loop * /
}
}
Table 5
The network adapter is typically built into the device or removably coupled to the device. Such network adapters include, but are not limited to, the Institute of Electrical and Electronics Engineers (IEEE) 802.3 or 802.5 standards, and the fiber-distributed-data interface (FDDI). Implement wireless frequency, optical, acoustic or magnetic inductive transmitters, including, but not limited to, wireless device types such as, including, but not limited to, 10Base-2, 100-Base-FX, 100Base-TX and others. It takes the form of wired devices such as 11 standards, including Bluetooth (Bluetooth) wireless communication standards and others. A network adapter typically communicates with the device in which it is installed or attached by presenting an interface data structure that the device has access to.
デバイス開発者または製造者は、デバイスドライバコード130を書き込み、これにより、通常、コマンドのあるセットを用いて動作し得、所定のデータ構造を備えるデバイスが、コマンドの異なるセットおよび異なるデータ構造を用い得るネットワークアダプタと効果的かつ効率良く通信可能にする。デバイスドライバコード130は、常に、デバイスのコマンドおよびデータ構造を、ネットワークアダプタによって用いられるコマンドおよびデータ構造に変換する(逆もまた同様)。たいていの実施形態では、デバイスドライバコードは、ネットワークアダプタ、または、デバイスに取り付けられるか、または組み込まれる他の周辺機器とデバイス上で起動するオペレーティングシステムとの間のインターフェースとして、働く。周辺機器から受けるか、周辺機器があて先とされるデータまたはコマンド(まとめて「データ」)は、データが必要なフォーマットに変換され得るように、デバイスドライバを介してルーティングされる。上記の説明が明示的なデバイスドライバコードの使用を詳述するが、デバイスが明示的にデバイスドライバの使用を支援しないこのような環境にあってさえ、デバイスがネットワークアダプタとのインターフェースを取ることを可能にするソフトウェアまたはハードウェアがデバイスドライバと機能的な等価物であり、本発明の精神または範囲から逸脱することなく、デバイスドライバと取り替えられ得ることが当業者には明らかである。
A device developer or manufacturer can write the
現在では、フィルタインタープリタ134は、可能な限り、プロトコルスタック上で低く、ネットワークアダプタに近くで、実施されることが好適である。図1は、デバイスドライバコード130および低レベルネットワークプロトコルソフトウェア132に関して、本発明の一つの可能な実施形態を例示する。この実施形態において、フィルタインタープリタ134は、デバイスドライバコード130を介して1以上のネットワークアダプタと通信できる。図2に示された別の実施形態において、フィルタインタープリタ134は、低レベルネットワークプロトコルソフトウェア132を介して、1以上のネットワークアダプタと通信する。
Currently, the
図1および図2の両方が例示するように、フィルタインタープリタ134は、任意の入来するパケットを、TCP、UDP、NetBios、SPX、ブルートゥースおよびその他等の低レベルネットワークプロトコル132またはより高いレベルのネットワークプロトコル136に通過させる前に、5タプル122として示されるフィルタ規則と、手順テーブルおよび手順関数124として例示される手順とを実施する。さらに、図2および図3に例示される実施形態は、フィルタインタープリタ134が、任意の出て行くパケットをデバイスドライバコード130または低レベルネットワークプロトコル132に通過させる前に、フィルタ規則および手順を実施することを可能にする。さらに別の実施形態において、フィルタインタープリタ134は、好適にはネットワークアダプタの近くで、可能な限りより高いレベルで、一つのプロトコルスタックレベルで入来するネットワークパケットを遮断し得る一方、出て行くパケットが別のプロトコルスタックレベルに遮断される。上述の説明は、可能な限りネットワークアダプタの近くで、主にフィルタインタープリタ134を実施することに焦点を置いているが、フィルタインタープリタ134は、本発明の精神または範囲から逸脱することなく、別のレベルで実施され得る。
As both FIG. 1 and FIG. 2 illustrate, the
図3は、ネットワークまたはシステムアドミニストレータによって入力され、フィルタコンパイラ102によって受信されるサンプルフィルタ規則文100を例示する。三つの実施例規則140、142および144が示される。最初の二つの、規則140および142は、明示的にシステムアドミニストレータによって入力された規則である。好適な実施形態において、最後の、「デフォルト否定」規則とも呼ばれる規則144は、フィルタコンパイラ102により、自動的に、生成される。あるいは、システムアドミニストレータ、ネットワークアドミニストレータまたは他のユーザが規則を入力することを可能にするユーザインターフェースは、ユーザが、「デフォルト否定」規則の包含がイネーブルまたはディセーブルすることを可能にする。このような包含がディセーブルにされると、「デフォルト許可」規則が置き換えられ得る。「デフォルト否定」規則が用いられる場合、フィルタ規則146を秩序化する好適なアプローチは、所望の、または、望ましいネットワークトラフィックが続行することを可能にする規則を書き込むことである。パケットが続行することを明示的に可能にするいくつかの規則(規則140および142等)にマッチングしない任意のパケットは、デフォルト否定規則144によって捨てられる。
FIG. 3 illustrates a sample
フィルタセットfs1(Filter Set fs1)の規則(rule)140は、Procedure=Allow 150、およびセレクタのDirection=*152(*は「任意」を意味する)、ソースアドレスSource Addr=*154,あて先アドレスDest Addr=*156およびプロトコルProtocol=TCP158を含む。フィルタセットfs1(Filter Set fs1)の規則142は、Procedure=Allow and Log 160,およびセレクタのDirection=*162、ソースアドレスSource Addr=*164、Dest Addr=*166およびプロトコルProtocol=UCP168,ソースポートSource Port=(161,162)170,あて先ポートDest Port=(161,162)172を含む。n規則144は、Procedure=Deny 180,およびセレクタのDirection=*182、Source Addr=*184,Dest Addr=*186およびプロトコルProtocol=TCP188を含む。図3に例示された例は特定のフィールド名を参照するが、このようなフィールド名は任意であり、任意のまたは全てのフィールド、または、デバイスによって支援されたパケット配向プロトコルと共に送信される他の類似の情報を含み得ることが当業者には理解される。
The
規則140、142および144は、それぞれのパケットについて上から下へと論理的に処理される。したがって、パケットが所与の規則に記載された局面全てを満足させる場
合、適切な手順関数は、規則(図2のブロック150、160または180)に特定化されたように、呼び出される。例として、本発明を限定することを意図することなく、規則140については、Procedure=Allow 150が、パケットが続行可能にする「Allow手順関数を呼び出す」として解釈され得る。所与のパケットが第1の規則140にマッチングしない場合、パケットが次の規則142に対して調べられる。このプロセスは、最後の規則144まで繰り返す。用いられると、デフォルト否定規則144は、任意のパケットにマッチングし、パケットが否定手順関数によって処理され、捨てられる(すなわち続行することが可能とされない)ことを意味するProcedure=Deny 180を呼び出すように構成される。
図3に示された実施形態において、第1のフィルタ規則140は、任意のソースから任意のあて先への、全てのTCP/IPデータグラムを許可する。第2のフィルタ規則142は、ソースポートまたはあて先ポートが161または162である場合、UDPトラフィックを許可する。これらは、SNMP(Simple Network Management Protocol)についての周知のポートである。フィルタセット名(「fs1」)は、NETWORK__INTERFACE文を介して、規則セットの先頭に、フィルタ規則セットを特定のネットワークアダプタに関連させるように用いられる。この文について、1以上のフィルタセットは、1以上のネットワークアダプタと関連する。好適な実施形態において、ネットワークアダプタと関連するフィルタセットのみが、そのネットワークアダプタに、フィルタローダによってロードされる。これは、それぞれのネットワークアダプタが、ファイル規則のそれ自身の個別のコピーを備えたそれ自身のフィルタローダを有さなければならないことを意味する。これが全体の記憶要件を増加させる一方で、好適なバイナリ規則の実施は、デバイス上に重大な記憶要件を一般に課さないように十分に小さい規則セットを生成する。個別のフィルタローダの使用およびそれぞれのネットワークアダプタに対するフィルタ規則が、現在、好適であるが、任意の時間のメモリ内のフィルタ規則およびフィルタローダの数は、本発明の精神または範囲から逸脱することなく、様々な技術を介して低減され得ることが当業者には明らかである。
In the embodiment shown in FIG. 3, the
図4を参照すると、それぞれの5タプルの論理構造が長さ(length)200、手順インデックス202、規則オフセット204、データオフセット206および値208を含む。長さ200は、実行されるべき比較する長さ(例えば一つのオクテット(octet)、二つのオクテット等)を表示する。長さ200はまた、値208と比較されるべきオクテットのビット、例えばフラグビットを示し得る。
Referring to FIG. 4, each 5-tuple logical structure includes a
手順インデックス202は、比較が真である場合に実行されることになる手順テーブル関数を指す手順テーブルエントリについてのインデックス、またはポインタである。以下のテーブル6は、手順関数を実施するサンプル擬似コードを提供する。
テーブル6が示すように、全ての手順は、本発明の好適な実施形態において、パケットを許可し(Allow)、否定し(Deny)、または拒絶する(Reject)ためにアクションコードを戻す。さらなるアクションコードおよび特定のパケット処理手順は、容易に、このスキームで実施される。好適な実施形態において、このようなさらなるパケット処理手順は、限定されるわけではないが、記録、サニタイジング(sanitizing)およびこれらの組み合わせを含み得る。好適な実施形態にて実施されるこのような手順の特定リストが、図5のパケット処理手順340〜348により、例示される。組み合わせ手順の例として、手順が規則の手順要素のDENY_AND_LOGである場合、フィルタリング処理の直接のユーザ可視性を提供するログエントリが作成され、パケットが否定される。
As Table 6 shows, all procedures return an action code to allow (Deny) or reject (Reject) the packet in the preferred embodiment of the present invention. Further action codes and specific packet processing procedures are easily implemented in this scheme. In a preferred embodiment, such additional packet processing procedures may include, but are not limited to, recording, sanitizing, and combinations thereof. A specific list of such procedures implemented in the preferred embodiment is illustrated by the packet processing procedures 340-348 of FIG. As an example of a combination procedure, if the procedure is a rule procedure element DENY_AND_LOG, a log entry is created that provides direct user visibility of the filtering process and the packet is denied.
ログがフィルタ規則をデバッグし、検証し、アタックを検出するために用いられる場合、このような記録が有用であり得る。好適な実施形態において、IPパケットのそれぞれのログエントリに含まれる情報は、手順インデックス要素(ALLOW_AND_LOG、DENY_AND_LOG等)、パケットの方向(内向きまたは外向き)、ソースおよびあて先IPアドレス、オフセットでのパケット内のソースおよびあて先ポート数の値、フィルタ5タプルを識別するのに十分な情報(実際のフィルタ規則5タプルまたはフィルタ規則の始動位置のオフセット等)を含む。それぞれがログされ、フィルタリングされたプロトコルは、利用可能なフィールドおよび情報の任意の組み合わせまたはフォーマットを有する一意的なログエントリジェネレータを実施するための、本発明の、拡張可能な手順アーキテクチャを使用できる。 Such a record may be useful if the log is used to debug, validate filter rules and detect attacks. In the preferred embodiment, the information contained in each log entry of an IP packet includes the procedure index element (ALLOW_AND_LOG, DENY_AND_LOG, etc.), packet direction (inbound or outbound), source and destination IP address, packet at offset Value of the source and destination ports, and information sufficient to identify the filter 5 tuple (such as the actual filter rule 5 tuple or the offset of the filter rule start position). Each logged and filtered protocol can use the extensible procedural architecture of the present invention to implement a unique log entry generator with any combination or format of fields and information available.
規則オフセット204は、規則テーブルの次の規則に対して現在の5タプルからオフセットされるバイトである数である。5タプルがパケットにマッチングしない場合、フィルタインタープリタは、NEXT flagと呼ばれる特別のフラグが設定される場合を除いて、規則オフセットを現在の5タプルのアドレスに加えることにより、次の規則を選択する。5タプルがパケットにマッチングせず、NEXT flagが設定され、手順インデックスが有効になる場合、フィルタインタープリタは、現在の5タプルのアドレスに、現在の5タプルのサイズを加えることにより、次の5タプルを選択する。フィルタコンパイラは、規則オフセットがゼロでないことを確実にする。NEXT flagの使用につ
いてさらに詳しく言うと、規則オフセット204のNEXT flagが設定される場合、フィルタインタープリタは、比較のために、規則の次の5タプルに踏み入れる。NEXT flagが設定され、比較が真である後に手順インデックスが空かヌルである場合、次の比較の結果が現在の比較に論理積される。比較が偽である後にNEXT flagが設定され、Procedure Indexが有効である場合、次の比較が現在の比較に論理和される。
Rule offset 204 is a number that is a byte offset from the current 5-tuple for the next rule in the rule table. If the 5-tuple does not match the packet, the filter interpreter selects the next rule by adding the rule offset to the current 5-tuple address, except when a special flag called NEXT flag is set. If the 5-tuple does not match the packet, the NEXT flag is set, and the procedure index is valid, the filter interpreter adds the size of the current 5-tuple to the current 5-tuple address, thereby adding the next 5-tuple. Select. The filter compiler ensures that the rule offset is not zero. More specifically about the use of NEXT flag, when the NEXT flag for rule offset 204 is set, the filter interpreter steps into the next five tuples of the rule for comparison. If the NEXT flag is set and the procedure index is empty or null after the comparison is true, the result of the next comparison is ANDed with the current comparison. If the NEXT flag is set after the comparison is false and the Procedure Index is valid, the next comparison is ORed with the current comparison.
データオフセット206は、この5タプルによって調べられるそのパケット内のフィールドに関するパケットへのオフセットである数である。データオフセットは、本発明が、ネットワークプロトコルパケットまたは他のネットワーク送信内の任意のフィールドまたはデータポジションにアクセスすることを可能にする。例により、本発明を限定する意図なく、データオフセット206は、オクテットオフセットまたはオクテットオフセットの組み合わせおよびオクテット内のビットオフセットであり得る。フィルタコンパイラは、規則セットの最新の5タプルが否定手順インデックスを含むことを確実にする。任意に、フィルタコンパイラは、許可手順インデックスを含む規則セットの最新の5タプルを発生し得る。データオフセットが、様々なネットワークスタックレベルで動作するための規則を採用するように、規則ローディング中に直接に変更され得るか、ベースパケットオフセットについての処理中に組み合わされ得ることが当業者に理解される。ベースパケットオフセットは、フィルタ規則が適用されるネットワークプロトコルレベルに依存して変更する。 Data offset 206 is a number that is an offset into the packet for the field in that packet that is examined by this 5-tuple. Data offsets allow the present invention to access any field or data position within a network protocol packet or other network transmission. By way of example, without intending to limit the present invention, the data offset 206 may be an octet offset or a combination of octet offsets and a bit offset within an octet. The filter compiler ensures that the most recent 5 tuple of the rule set contains a negative procedure index. Optionally, the filter compiler may generate the latest five tuples of the rule set that includes the allowed procedure index. Those skilled in the art will appreciate that data offsets can be modified directly during rule loading, or combined during processing for base packet offsets to employ rules for operating at various network stack levels. The The base packet offset changes depending on the network protocol level to which the filter rule is applied.
値208は、データオフセット206によってアクセスされるパケット内のフィールドと比較されることになる値である。この5タプル要素に関して、5タプルの論理動作は、「オペランド1,イコール?,オペランド2」として表現される。オペランド1は、データオフセット206のパケットデータから得られ、オペランド2は、5タプル要素値208である。「イコール?」は均等性についてのテストを言う。そして、5タプルは、「ソースポート数,イコール?,テストポート数」等の表現を表示し得る。均等テストが、本発明の好適な実施形態の一部として用いられるが、別の数学テストが本発明の精神または範囲から逸脱することなく置き換わられ得ることが、当業者には明らかである。
The value 208 is the value that will be compared to the field in the packet accessed by the data offset 206. With respect to this 5-tuple element, the 5-tuple logical operation is expressed as "operand 1, equal ?,
図5は、図3の三つのフィルタ規則140、142および144に対応する5タプル220、224、226、230、232、234および240のセットを例示する。テーブル7は、これらの5タプルの別の表示を提示する。「NEXT+」は、規則オフセットで論理積される設定されたNEXT flagを言う。図5を参照すると、ブロック274、284、294および304の「N」が設定されたNEXTflagに対応する。
FIG. 5 illustrates a set of five
全ての5タプルは、いくつかがヌル(バイナリ0)であり得るか、いくつかの他の未使用の値であり得る5つの要素を有する。
All 5 tuples have 5 elements, some of which can be null (binary 0) or some other unused value.
テーブル7には、手順インデックス1は、図5の手順インデックス252および手順テーブルエントリ340に対応し、手順インデックス2は、図5の手順インデックス312および手順テーブルエントリ342に対応し、手順インデックス7は、図5の手順インデックス322および手順テーブルエントリ342に対応する。
In table 7, procedure index 1 corresponds to procedure index 252 and
もちろん、5タプルの直接メモリ内形式は、’’)’’または’’を含まず、’’は、個別の線上にあり、バイナリデータのT*S8ビットオクテットである。Tは、5タプルの8ビットオクテット内に、この特定の例にて、5タプルであり、Sはサイズである。ユーザが定義し得るフィルタ規則の数または5タプルの結果として生じるサイズ(5タプル122のオクテット内の全長さ)についての効率的な限界はない。 Of course, the 5-tuple direct in-memory format does not include ")" or "", which is on a separate line and is a T * S8 bit octet of binary data. T is 5 tuples in this particular example, within 5 tuples of 8 bit octets, and S is the size. There is no efficient limit on the number of filter rules that can be defined by the user or the resulting size of 5 tuples (the total length in octets of 5 tuples 122).
テーブル72および図5は、手順分解を示さない。(252、272、282、292、302、322)で示された手順値のそれぞれは、実際に、関数エントリポイントへのアドレスポインタのテーブルへのインデックスまたはポインタである。手順関数は、二つの独立変数、それらの手順インデックスを含む現在の5タプルへのポインタおよびパケットについてのポインを取り、リターンコードを戻す。手順関数は、戻す前にパケットを変更させ得る。 Table 72 and FIG. 5 do not show procedural decomposition. Each of the procedure values indicated by (252, 272, 282, 292, 302, 322) is actually an index or pointer to a table of address pointers to function entry points. The procedure function takes two independent variables, a pointer to the current 5-tuple containing their procedure index and a point for the packet, and returns a return code. The procedural function may cause the packet to be modified before returning.
図5の例を参照すると、値258にマッチングするパケットデータに関する5タプル220の解釈後に、function Allow340に関する独立変数は、220(すなわち5タプル220へのポインタ)およびパケットへのポインタ(図示せず)を含む。さらなる独立変数または別の独立変数は、本発明の精神または範囲から逸脱せずに、供給され得ることが明らかである。このアーキテクチャは、手順関数の処理オプションを拡張し、図1のフィルタインタープリタ134によって上記の関数340〜348の使用を単純化し、フィルタインタープリタを小型に維持する。
Referring to the example of FIG. 5, after interpretation of 5-
図5には、5タプル234の下の省略記号(ellipse)は、5タプルのさらなる任意の数が続き、これらの省略記号は図3の規則142の下の省略記号に対応することを示す。したがって、図5において、5タプル表示は、図3に示された全ての規則に提供される。フィルタ文140、142および144と図5の5タプルとの間の対応は、以下のようである。142は224、226、230、232、234に対応する。144は2
40に対応する。
In FIG. 5, the ellipses under the 5-
40.
5タプルオフセット要素256、286および306の値9、20、22は、それぞれ、適切なフィールドが見出されるIPデータグラムへのオクテットデータオフセットである。9は、IPダイアグラムのプロトコルフィールドに対応する(オフセットされる)。同様に、20はIPソースポートに対応し、22はIPあて先ポートに対応する。5タプル値要素(ブロック258、278、288、298、308および318)が6(TCP)、20(UDP)等である。
The
図5では、ボックス348はまた、さらなる、任意の手順関数が続くことを示す。手順テーブル260のサイズまたは手順関数の数は限定されない。
In FIG. 5,
本発明が、詳細に、本発明の特定の実施形態を参考にして説明されてきた一方、様々な変化および変更は、本発明の精神および範囲から逸脱することなく、なされ得ることが当業者には明らかである。したがって、本発明が特許請求の範囲およびそれらの均等物の範囲内にある場合、本発明がこの発明の変更および改変を含むことが意図される。 While the invention has been described in detail with reference to specific embodiments thereof, those skilled in the art will recognize that various changes and modifications can be made without departing from the spirit and scope of the invention. Is clear. Thus, it is intended that the present invention include modifications and variations of this invention if they come within the scope of the following claims and their equivalents.
Claims (32)
該方法は、
(1)該パケットにおいて連続する変数の第1の数(200、250、270、280、290、300、310)のバイトによって定義されるパケットの部分であって、該パケットの第1のバイトから第2の数(206、256、276、286、296、306、316)のバイト分だけオフセットされた位置から始まるパケットの部分を第1の論理回路を用いて識別するステップと、
(2)フィルタ文書の第1の部分(208、258、278、288、298、308、318)における値と該パケットの該部分(200、206;250、256;270、276;280;286;290、296;300、306;310、316)との比較を第2の論理回路を用いて実行するステップと、
(3)該比較の結果が真である場合には、手順関数(124、340〜348)を第3の論理回路を用いて起動するステップと
を包含し、
該手順関数は、第1の手順、第2の手順および第3の手順のうちの1つを実行するように構成されており、該第1の手順は、許可パケット関数と少なくとも第1の別の関数とを含み、該第2の手順は、拒否パケット関数と少なくとも第2の別の関数とを含み、該第3の手順は、拒絶パケット関数を含み、該第1の別の関数がログ関数である場合に、該第1の手順は、少なくとも第3の別の関数を含み、該第2の別の関数が該ログ関数である場合に、該第2の手順は、少なくとも第4の別の関数を含む、方法。 A method of filtering packets at a network interface,
The method
(1) A portion of a packet defined by a first number of variables (200, 250, 270, 280, 290, 300, 310) that are consecutive in the packet, from the first byte of the packet Using a first logic circuit to identify the portion of the packet that begins at a location that is offset by a second number (206, 256, 276, 286, 296, 306, 316) bytes;
(2) the value in the first part (208, 258, 278, 288, 298, 308, 318) of the filter document and the part (200, 206; 250, 256; 270, 276; 280; 286) of the packet; 290, 296; 300, 306; 310, 316) using a second logic circuit;
(3) if the result of the comparison is true, starting the procedural function (124, 340-348) with a third logic circuit,
The procedural function is configured to perform one of a first procedure, a second procedure, and a third procedure, the first procedure comprising at least a first separate packet from the permitted packet function. The second procedure includes a reject packet function and at least a second another function, the third procedure includes a reject packet function, and the first another function logs If it is a function, the first procedure includes at least a third another function, and if the second another function is the log function, the second procedure is at least a fourth A method involving another function.
(4)前記比較が偽である場合には、該シーケンス(146)における後続するフィルタ文書(100、220〜240)を前記第1の論理回路を用いて処理するステップをさらに包含し、
前記連続する変数の第1の数のバイトは、該フィルタ文書の第1の部分における値と比較される第1のサイズを有するように前記パケットの部分を定義し、かつ、該後続するフィルタ文書の第1の部分における値と比較される第2のサイズを有するように該パケットの部分を定義し、該第2のサイズは、該第1のサイズとは異なるか、または同等である、請求項1に記載の方法。 The filter document (100, 220-240) is one of a plurality of filter documents (100, 220-240) arranged in a sequence (146), the method comprising:
(4) if the comparison is false, further comprising processing subsequent filter documents (100, 220-240) in the sequence (146) with the first logic circuit;
The first number of bytes of the continuous variable defines a portion of the packet to have a first size that is compared to a value in the first portion of the filter document, and the subsequent filter document Defining a portion of the packet to have a second size that is compared to a value in the first portion of the second portion, wherein the second size is different from or equal to the first size. Item 2. The method according to Item 1.
該システムは、
該パケットにおいて連続する変数の第1の数(200、250、270、280、290、300、310)のバイトによって定義されるパケットの部分であって、該パケットの第1のバイトから第2の数(206、256、276、286、296、306、316)のバイト分だけオフセットされた位置から始まるパケットの部分を識別するように構成されている第1の論理回路と、
該フィルタ文書の第1の部分(208、258、278、288、298、308、318)における値と該パケットの該部分(200、206;250、256;270、276;280;286;290、296;300、306;310、316)との比較を実行するように構成されている第2の論理回路と、
該比較の結果が真である場合には、手順関数(124、340〜348)を起動するように構成されている第3の論理回路と
を備え、
該手順関数は、第1の手順、第2の手順および第3の手順のうちの1つを実行するように構成されており、該第1の手順は、許可パケット関数と少なくとも第1の別の関数とを含み、該第2の手順は、拒否パケット関数と少なくとも第2の別の関数とを含み、該第3の手順は、拒絶パケット関数を含み、該第1の別の関数がログ関数である場合に、該第1の手順は、少なくとも第3の別の関数を含み、該第2の別の関数が該ログ関数である場合に、該第2の手順は、少なくとも第4の別の関数を含む、システム。 A system for filtering packets at a network interface,
The system
A portion of the packet defined by a first number (200, 250, 270, 280, 290, 300, 310) of consecutive variables in the packet, from the first byte of the packet to the second A first logic circuit configured to identify a portion of the packet starting from a position offset by a number (206, 256, 276, 286, 296, 306, 316) of bytes;
The value in the first part of the filter document (208, 258, 278, 288, 298, 308, 318) and the part of the packet (200, 206; 250, 256; 270, 276; 280; 286; 290, 296; 300, 306; 310, 316), a second logic circuit configured to perform a comparison with;
A third logic circuit configured to activate a procedural function (124, 340-348) if the result of the comparison is true;
The procedural function is configured to perform one of a first procedure, a second procedure, and a third procedure, the first procedure comprising at least a first separate packet from the permitted packet function. The second procedure includes a reject packet function and at least a second another function, the third procedure includes a reject packet function, and the first another function logs If it is a function, the first procedure includes at least a third another function, and if the second another function is the log function, the second procedure is at least a fourth A system that contains another function.
前記比較が偽である場合には、前記第1の論理回路は、該シーケンス(146)における後続するフィルタ文書(100、220〜240)を処理するようにさらに構成されており、
前記連続する変数の第1の数のバイトは、該フィルタ文書の第1の部分における値と比較される第1のサイズを有するように前記パケットの部分を定義し、かつ、該後続するフィルタ文書の第1の部分における値と比較される第2のサイズを有するように該パケットの部分を定義し、該第2のサイズは、該第1のサイズとは異なるか、または同等である、請求項14に記載のシステム。 The filter document (100, 220-240) is one of a plurality of filter documents (100, 220-240) arranged in the sequence (146);
If the comparison is false, the first logic circuit is further configured to process subsequent filter documents (100, 220-240) in the sequence (146);
The first number of bytes of the continuous variable defines a portion of the packet to have a first size that is compared to a value in the first portion of the filter document, and the subsequent filter document Defining a portion of the packet to have a second size that is compared to a value in the first portion of the second portion, wherein the second size is different from or equal to the first size. Item 15. The system according to Item 14.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29623901A | 2001-06-11 | 2001-06-11 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003504579A Division JP2004535714A (en) | 2001-06-11 | 2002-06-11 | Packet filtering system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007325281A true JP2007325281A (en) | 2007-12-13 |
JP4262284B2 JP4262284B2 (en) | 2009-05-13 |
Family
ID=33510217
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003504579A Withdrawn JP2004535714A (en) | 2001-06-11 | 2002-06-11 | Packet filtering system and method |
JP2007151035A Expired - Fee Related JP4262284B2 (en) | 2001-06-11 | 2007-06-06 | Packet filtering system and method |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003504579A Withdrawn JP2004535714A (en) | 2001-06-11 | 2002-06-11 | Packet filtering system and method |
Country Status (1)
Country | Link |
---|---|
JP (2) | JP2004535714A (en) |
-
2002
- 2002-06-11 JP JP2003504579A patent/JP2004535714A/en not_active Withdrawn
-
2007
- 2007-06-06 JP JP2007151035A patent/JP4262284B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP4262284B2 (en) | 2009-05-13 |
JP2004535714A (en) | 2004-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7219152B2 (en) | Packet filtering methods and systems | |
US6301669B2 (en) | System and method for very fast IP packet filtering | |
EP1832037B1 (en) | Template access control lists | |
US6266707B1 (en) | System and method for IP network address translation and IP filtering with dynamic address resolution | |
US6389419B1 (en) | Storing and retrieving connection information using bidirectional hashing of connection identifiers | |
US20070162968A1 (en) | Rule-based network address translation | |
US20050198382A1 (en) | Routing systems and methods for implementing routing policy with reduced configuration and new configuration capabilities | |
US9356844B2 (en) | Efficient application recognition in network traffic | |
US8543528B2 (en) | Exploitation of transition rule sharing based on short state tags to improve the storage efficiency | |
US20080101222A1 (en) | Lightweight, Time/Space Efficient Packet Filtering | |
US20070261110A1 (en) | Packet firewalls of particular use in packet switching devices | |
CN114726633B (en) | Traffic data processing method and device, storage medium and electronic equipment | |
US11245712B2 (en) | Method and apparatus for generating virtual malicious traffic template for terminal group including device infected with malicious code | |
US11818099B2 (en) | Efficient matching of feature-rich security policy with dynamic content using user group matching | |
US9043450B2 (en) | Generic offload architecture | |
JP4262284B2 (en) | Packet filtering system and method | |
US8806059B1 (en) | Rule tree for network device | |
JP2006508597A (en) | Method and computer system for triggering action based on digital communication data | |
CN112291212A (en) | Static rule management method and device, electronic equipment and storage medium | |
CN117579386B (en) | Network traffic safety control method, device and storage medium | |
CN109672665A (en) | A kind of access control method, device, system and computer readable storage medium | |
CN111224929A (en) | Software connection management system and method | |
US10965647B2 (en) | Efficient matching of feature-rich security policy with dynamic content | |
CN115499358B (en) | SRv6-TE message forwarding method and forwarding equipment | |
CN117896182B (en) | Linux network communication security management and control method, device and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071113 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080212 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080215 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080313 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080402 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080627 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080702 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080804 |
|
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: 20090109 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090206 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140220 Year of fee payment: 5 |
|
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 |