DSS プロトコルについての情報
DSS ファイルのコンポーネント ツリーからプロトコル ノードを選択すると、プロトコルの次のプロパティを定義できるようになります。
•
Basic
–
Protocol Name ― 「プロトコル名および ID の設定」を参照してください。
–
Protocol Description
–
Protocol ID ― 「プロトコル名および ID の設定」を参照してください。
•
Protocol Category
–
Buddy Protocol ― 「バディ プロトコル」を参照してください。
–
Protocol Families ― 1 つ以上のプロトコル ファミリにプロトコルを割り当てます。
–
P2P
–
SIP
–
VOIP
–
Worm
プロトコル ファミリにプロトコルを関連付けると、ファミリに関するレポートに新しいプロトコルが組み込まれます。
次の図は、プロトコル プロパティのデフォルト値を示しています。
図12-2
プロトコルにはシグニチャが含まれます。
•
「プロトコル名および ID の設定」
•
「バディ プロトコル」
プロトコル名および ID の設定
DSS には次の 2 種類のプロトコルを含めることができます。
•
SCA BB にとって新しいプロトコル ― DSS でプロトコルを定義します。
•
SCA BB ですでにサポートされているプロトコル ― プロトコルの識別の拡張または修正を DSS で行います。
名前および ID の選択方法は、この 2 つで次のように異なります。
•
SCA BB にとって新しいプロトコルの場合、SCA BB がすでにサポートしているプロトコル名に名前を一致させることはできません。サポートされているプロトコルの名前のリストを表示するには、Service Configuration Editor で Protocol Settings ダイアログボックスを開きます( プロトコルの表示方法を参照)。5000 ~ 9998 の範囲で一意の ID をプロトコルに割り当ててください。
•
既存プロトコルの場合、DSS のプロトコル名および ID は、サービス コンフィギュレーションのプロトコル名および ID と一致している必要があります。Service Configuration Editor の Protocol Settings ダイアログボックスで名前および ID を特定してください( プロトコルの表示方法を参照)。
バディ プロトコル
DSS で追加する新しいプロトコルの設定を簡単にするため、DSS では新しいプロトコルのバディ プロトコルを指定できます。アプリケーションは、サービス コンフィギュレーションに DSS をインポートするとき、バディ プロトコルを参照するサービス要素を検出すると、バディ プロトコルを使用する一連のサービス要素を自動的に複製し、バディ プロトコルのすべての参照を新しいプロトコルの参照で置き換えます。新しいプロトコルとサービスの関係は、バディ プロトコルとサービスの関係と一致します。
DSS シグニチャについての情報
プロトコルには、必要な数のシグニチャを含めることができます。
プロトコルには、次の 4 種類のシグニチャを追加できます。
•
ストリング照合型シグニチャ
•
ペイロード長シグニチャ
•
HTTP ユーザ エージェント シグニチャ
•
HTTP x ヘッダー シグニチャ
4 つそれぞれのシグニチャ タイプは、フローの先頭ペイロード パケットでさまざまな条件を検証します。
次のサブセクションでは、このシグニチャ タイプと条件について説明します。
ストリング照合型シグニチャおよびペイロード長シグニチャには、詳細検査句を含めることができます。先頭のペイロード パケット条件が満たされるシグニチャは、詳細検査句の条件も満たされる場合、フローを受け入れます。
DSS ストリング照合型シグニチャ
DSS ファイルのコンポーネント ツリーからストリング照合型シグニチャを選択すると、シグニチャの次のプロパティを定義できるようになります。
•
Signature Name ― 一意の名前
•
Signature Description
•
Signature ID ― 0xC010000 ~ 0xC0100FF(10 進数の 201392128 ~ 201392383)の範囲の値
•
First Payload Packet Conditions
–
Fixed Size Byte String ― (表示のみ)次の 4 つのフィールドによって形成される文字列が表示されます。
–
[0] ― 文字列の第 1 バイトの ASCII コードを入力します。すべての値が受け入れ可能であることを示すには、「*」を入力します。
–
[1] ― 文字列の第 2 バイトの ASCII コードを入力します。すべての値が受け入れ可能であることを示すには、「*」を入力します。
–
[2] ― 文字列の第 3 バイトの ASCII コードを入力します。すべての値が受け入れ可能であることを示すには、「*」を入力します。
–
[3] ― 文字列の第 4 バイトの ASCII コードを入力します。すべての値が受け入れ可能であることを示すには、「*」を入力します。
–
String Position ― パケットにおける固定サイズ バイト文字列の位置。位置は、パケットの先頭バイトからかぞえた、文字列の先頭バイトの位置です。文字列をパケットの先頭と照合するには、この値をゼロにする必要があります。値は、4 で割り切れる整数にしてください。
–
Packet Direction ― ペイロードを含むフローの先頭パケットの開始側。このフィールドには、
–
From Server
–
From Client
–
Don't Care(両側)
–
Port Range ― (表示のみ)次の 2 つのフィールドから形成されるポート範囲。デフォルト値は、0 ~ 65535 の全ポート範囲です。
–
From Port ― ポート範囲の下限(この値を含む)
–
To Port ― ポート範囲の上限(この値を含む)
–
Check before PL ― 値 true と false を切り替えます。
このフィールドは、SCA BB の組み込み Protocol Library(PL; プロトコル ライブラリ)分類の前にシグニチャをテストするか、そのあとでシグニチャをテストするかを示します。組み込み分類の実行前にシグニチャをテストすると、フローがこのシグニチャと一致した場合、PL 分類はスキップされます。このフィールドを「false」に設定すると、PL 分類でサポート対象プロトコル シグニチャを識別できない場合に限り、このシグニチャはテストされます。
–
非対称ルーティング分類モード ― シグニチャを非対称ルーティング分類モードの状態に従ってテストするかどうかを示します。次の 3 つの値のいずれかになります。
–
Don't Care ― このシグニチャを非対称ルーティング分類モードが有効か無効かどうかテストすることを示します。
–
Disabled
–
Enabled
–
Flow Type ― (表示のみ)このフィールドには条件を適用するフロー タイプが示されます(複数のタイプに条件を適用可能)。非対称ルーティング分類モードが有効でないと無視されます。
フロー タイプは次の 4 つのフィールドで指定されます。
–
Bidirectional ― 値 true と false を切り替えます。
–
Unidirectional Client Side ― 値 true と false を切り替えます。クライアント側からのパケットのみ検出された TCP フローに適用されます。
–
Unidirectional Server Side ― 値 true と false を切り替えます。サーバ側からのパケットのみ検出された TCP フローに適用されます。
–
Unknown(UDP) ― 値 true と false を切り替えます。一方向からのパケットのみ検出された UDP フローに適用されます。
シグニチャが先頭ペイロード パケットのみに従ってプロトコルを識別する場合に限り、Check before PL を true に設定してください。シグニチャが詳細検査条件も使用して後のパケットを調べて、シグニチャがフローと一致しない場合、PL 分類は適切に実行されません。
次の図は、ストリング照合型シグニチャのプロパティのデフォルト値を示しています。
図12-3
ストリング照合型シグニチャの先頭ペイロード パケット条件と一致するフローは、シグニチャの詳細検査条件と比較されます(DSS 詳細検査条件を参照)。
DSS ペイロード長シグニチャ
DSS ファイルのコンポーネント ツリーからペイロード長シグニチャを選択すると、シグニチャの次のプロパティを定義できるようになります。
•
Signature Name ― 一意の名前
•
Signature Description
•
Signature ID ― 0xC010000 ~ 0xC0100FF(10 進数の 201392128 ~ 201392383)の範囲の値
•
First Payload Packet Conditions
–
Packet Direction ― ペイロードを含むフローの先頭パケットの開始側。このフィールドには、
–
From Server
–
From Client
–
Don't Care(両側)
–
Payload Length ― ペイロード パケットのバイト数。
–
Port Range ― (表示のみ)次の 2 つのフィールドから形成されるポート範囲。デフォルト値は、0 ~ 65535 の全ポート範囲です。
–
From Port ― ポート範囲の下限(この値を含む)
–
To Port ― ポート範囲の上限(この値を含む)
–
Check before PL ― 値 true と false を切り替えます。
このフィールドは、SCA BB の組み込み Protocol Library(PL; プロトコル ライブラリ)分類の前にシグニチャをテストするか、そのあとでシグニチャをテストするかを示します。組み込み分類の実行前にシグニチャをテストすると、フローがこのシグニチャと一致した場合、PL 分類はスキップされます。このフィールドを「false」に設定すると、PL 分類でサポート対象プロトコル シグニチャを識別できない場合に限り、このシグニチャはテストされます。
–
非対称ルーティング分類モード ― シグニチャを非対称ルーティング分類モードの状態に従ってテストするかどうかを示します。次の 3 つの値のいずれかになります。
–
Don't Care ― このシグニチャを非対称ルーティング分類モードが有効か無効かどうかテストすることを示します。
–
Disabled
–
Enabled
–
Flow Type ― (表示のみ)このフィールドには条件を適用するフロー タイプが示されます(複数のタイプに条件を適用可能)。非対称ルーティング分類モードが有効でないと無視されます。
フロー タイプは次の 4 つのフィールドで指定されます。
–
Bidirectional ― 値 true と false を切り替えます。
–
Unidirectional Client Side ― 値 true と false を切り替えます。クライアント側からのパケットのみ検出された TCP フローに適用されます。
–
Unidirectional Server Side ― 値 true と false を切り替えます。サーバ側からのパケットのみ検出された TCP フローに適用されます。
–
Unknown(UDP) ― 値 true と false を切り替えます。一方向からのパケットのみ検出された UDP フローに適用されます。
シグニチャが先頭ペイロード パケットのみに従ってプロトコルを識別する場合に限り、Check before PL を true に設定してください。シグニチャが詳細検査条件も使用してあとのパケットを調べて、シグニチャがフローと一致しない場合、PL 分類は適切に実行されません。
次の図は、ペイロード長シグニチャのプロパティのデフォルト値を示しています。
図12-4
ペイロード長シグニチャの先頭ペイロード パケット条件と一致するフローは、シグニチャの詳細検査条件と比較されます(DSS 詳細検査条件を参照)。
DSS HTTP ユーザ エージェント シグニチャ
DSS ファイルのコンポーネント ツリーから HTTP ユーザ エージェント シグニチャを選択すると、シグニチャの次のプロパティを定義できるようになります。
•
Signature Name ― 一意の名前
•
Signature Description
•
Signature ID ― 0xC010000 ~ 0xC0100FF(10 進数の 201392128 ~ 201392383)の範囲の値
•
Conditions
–
User Agent ― HTTP ヘッダーのユーザ エージェント フィールドの値
次の図は、HTTP ユーザ エージェント シグニチャのプロパティのデフォルト値を示しています。
図12-5
DSS HTTP x ヘッダー シグニチャ
DSS ファイルのコンポーネント ツリーから HTTP x ヘッダー シグニチャを選択すると、シグニチャの次のプロパティを定義できるようになります。
•
Signature Name ― 一意の名前
•
Signature Description
•
Signature ID ― 0xC010000 ~ 0xC0100FF(10 進数の 201392128 ~ 201392383)の範囲の値
•
Conditions
–
x-Header Field Name ― HTTP ヘッダーの x ヘッダーにあるフィールドの名前
次の図は、DSS ファイル プロパティのデフォルト値を示しています。
図12-6
DSS 詳細検査条件
詳細検査条件は、ストリング照合型シグニチャまたはペイロード長シグニチャの先頭ペイロード パケット条件選別を通過したフローに対してチェックする、一連の条件です。
DSS ファイルのコンポーネント ツリーから詳細検査条件ノードを選択すると、詳細検査条件の次のプロパティを定義できるようになります。
•
Packet Direction ― ペイロードを含むフローの先頭パケットの開始側。このフィールドには、From Server、From Client、Don't Care(両側)の 3 つのうちいずれかの値になります。
•
Packet Number ― フローのパケット番号。ペイロード パケットの番号はゼロから始まり、パケットは両方向でカウントされます。
•
Payload Length ― バイト単位のパケットの長さ。あらゆる値が受け入れ可能であることを示すには、ゼロを入力します。
•
Printable Characters ― 検査パケットに印刷可能文字のみが含まれるかどうかをテストします。このフィールドには、Printable Characters Only、At Least One Non-Printable、Don't Care の 3 つのうちいずれかの値を含めることができます。
•
Substring Search ― 検索文字列をパケットの特定の位置と照合します。この条件が関係ない場合は、Search String フィールドを空にします。
–
Position Offset ― パケットの検索文字列の検索を開始する位置。オフセットは、Start Search From フィールドに指定した位置を基準とした位置です。
–
Start Search From ― 次の 2 つのうちいずれかの値を含めることができます。
–
Packet beginning
–
Last match
–
Last match は、前回の検索で一致した文字列が終わる場所から検索文字列の検索が始まることを表します。最終一致は、前回のサブストリング検索から、または最終文字列ベース先頭ペイロード パケット条件からになります。
–
Searchable Range ― 検索文字列のこのバイト数で検索が実行されます。
–
Search Packets ― 次の 2 つのうちいずれかの値を含めることができます。
–
This packet only
–
Multiple packets
–
Multiple Packets は、Searchable Range フィールドに指定したバイト数より合計バイト数が小さい場合、複数のパケットにわたって検索が行われることを示します。
–
Search String ― 次の 3 つのうちいずれかのフィールドに検索文字列を入力します(その他 2 つのフィールドは自動的に更新されます)。
–
ASCII Codes ― 検索文字列の文字の ASCII コードを入力します。各コードはカンマで区切ります。
–
Byte String ― 実際の検索文字列を入力します。
–
Hex Values ― 検索文字列の文字の ASCII コードの 16 進値を入力します。各コードはカンマで区切ります。
•
Transport Protocol ― このフィールドは、次の 3 つのうちいずれかの値になります。
–
TCP
–
UDP
–
Don't Care(TCP または UDP)
次の図は、詳細検査条件プロパティのデフォルト値を示しています。
図12-7
詳細検査条件の構造は、文字列照合型シグニチャおよびペイロード長シグニチャと同じです。