IDPシグネチャベース攻撃
カスタム攻撃オブジェクトを設定するには、一意の名前を指定し、追加情報を指定すると、攻撃オブジェクトの検索と保守が容易になります。
攻撃オブジェクト定義の特定のプロパティーは、攻撃名、重大度レベル、サービスまたはアプリケーションのバインド、時間バインディング、プロトコルまたはポートのバインディングなど、すべてのタイプのアタックに共通です。一部のフィールドは攻撃タイプに固有であり、その特定の攻撃定義でのみ使用できます。
署名攻撃オブジェクトは、ステートフル攻撃署名 (攻撃の特定のセクション内に常に存在するパターン) を使用して、既知の攻撃を検出します。また、攻撃の実行に使用されたプロトコルやサービス、攻撃が発生するコンテキストも含まれます。次のプロパティはシグニチャ攻撃に固有であり、シグニチャ攻撃を構成するときに構成できます—攻撃コンテキスト、攻撃方向、攻撃パターン、およびプロトコル固有のパラメーター (TCP、UDP、ICMP、または IP ヘッダー フィールド)。
シグネチャベース攻撃を設定する場合、次の点に注意してください。
攻撃コンテキストと方向は、シグネチャ攻撃定義の必須フィールドです。
パターン否定は、パケット、回線、およびアプリケーションベースのコンテキストでのみサポートされ、ストリームおよび正規化されたストリームコンテキストではサポートされません。
プロトコル固有のパラメーターを設定する場合、フィールドを指定できるのは、IP、TCP、UDP、ICMP のいずれか 1 つのプロトコルのみです。
プロトコル バインディングを設定する場合、指定できるのは、IP、ICMP、TCP、UDP、RPC、またはアプリケーションの 1 つだけです。
IP—プロトコル番号は必須フィールドです。
TCPおよびUDP—単一ポート(
minimum-port)またはポート範囲(minimum-portおよびmaximum-port)のいずれかを指定できます。ポートを指定しない場合は、デフォルト値(0-65535)が使用されます。RPC:プログラム番号は必須フィールドです。
Hyperscan拡張パラメータを使用して、シグニチャベースの攻撃を設定できます。Hyperscan拡張パラメータに最適な値を設定することで、攻撃パターンマッチングプロセスを大幅に強化できます。
拡張パラメーターを構成するには、[edit security idp custom-attack attack-name attack-type signature] 階層レベルで optional-parameters オプションを含めます。optional-parametersオプションでは、以下のパラメーターを設定できます。
min-offsetmax-offsetmin-length
ハイパースキャンAPI
Hyperscanは、高性能と柔軟性を実現するために設計されたソフトウェア正規表現マッチングエンジンです。パターンのある署名が IDP ポリシーの一部として設定されている場合、そのパターンは正規表現として識別されます。ルーティングエンジンでは、Hyperscanはこの正規表現を入力として受け取り、それをコンパイルしてデータベースを形成し、パケット転送エンジンにプッシュします。パケットがパケット転送エンジンに入ると、パケット内のデータが検査され、データベースを使用して正規表現に一致するかどうかが判断されます。
IDP ポリシーが一連の署名で設定されている場合、決定論的有限オートマトン(DFA)グループが形成されます。DFA グループ内のすべてのシグネチャのパターンが HyperScan に渡され、パケット内のすべての攻撃を一度にチェックするために使用できる単一のデータベースが形成されます。攻撃ごとに個別のデータベースではなく、単一のデータベースが使用されるため、パターンマッチングプロセスは効率的です。
シグニチャーが拡張パラメーターで構成されている場合、Hyperscan API は構成されたパラメーターを考慮してデータベースを形成します。パターンマッチングプロセスは、この新しいデータベースを使用してパケット転送エンジンで発生します。これらのパラメーターを使用すると、実行時に不要な一致を処理するアプリケーションに依存するのではなく、パターンによって生成される一致のセットをコンパイル時に制限できます。
例:IDP シグネチャベース攻撃の設定
この例では、シグネチャベースの攻撃オブジェクトを作成する方法を示しています。
必要条件
開始する前に、ネットワークインターフェイスを設定します。
概要
この例では、sig1 というシグニチャ攻撃を作成し、それに次のプロパティを割り当てます。
推奨アクション(パケットのドロップ):一致するパケットが宛先に到達する前にドロップしますが、接続は閉じません。
タイムバインディング—範囲を
sourceに指定し、カウントを10に指定します。スコープがsourceの場合、同じソースからのすべての攻撃がカウントされ、攻撃の数が指定された数(10)に達すると、攻撃がログに記録されます。この例では、同じソースからの 10 回目の攻撃ごとにログに記録されます。攻撃コンテキスト(パケット)—パケット内の攻撃パターンを照合します。
攻撃方向(任意)—クライアントからサーバーへのトラフィックとサーバーからクライアントへのトラフィックの両方の方向からの攻撃を検出します。
[プロトコル(TCP)]:TTL 値 128 を指定します。
[シェルコード(Intel)]:Intel プラットフォームのシェルコードを検出するフラグを設定します。
プロトコルバインディング—TCPプロトコルとポート50〜100を指定します。
シグネチャベースの攻撃オブジェクトを設定した後、IDP ポリシー ルールの一致条件として攻撃を指定します。 例:IDP IPS RuleBase のルールの定義を参照してください。
構成
プロシージャ
CLIクイック構成
この例を迅速に設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit] 階層レベルのCLIにコピーアンドペーストして、設定モードから commit を入力します。
set security idp custom-attack sig1 severity major set security idp custom-attack sig1 recommended-action drop-packet set security idp custom-attack sig1 time-binding scope source count 10 set security idp custom-attack sig1 attack-type signature context packet set security idp custom-attack sig1 attack-type signature shellcode intel set security idp custom-attack sig1 attack-type signature protocol ip ttl value 128 match equal set security idp custom-attack sig1 attack-type signature protocol-binding tcp minimum-port 50 maximum-port 100 set security idp custom-attack sig1 attack-type signature direction any
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、CLIユーザー ガイドの 設定モードにおけるCLIエディターの使用を参照してください。
シグネチャベースの攻撃オブジェクトを作成するには:
攻撃の名前を指定します。
[edit] user@host# edit security idp custom-attack sig1
攻撃の共通プロパティを指定します。
[edit security idp custom-attack sig1] user@host# set severity major user@host# set recommended-action drop-packet user@host# set time-binding scope source count 10
攻撃の種類とコンテキストを指定します。
[edit security idp custom-attack sig1] user@host# set attack-type signature context packet
攻撃方向とシェルコードフラグを指定します。
[edit security idp custom-attack sig1] user@host# set attack-type signature shellcode intel
プロトコルとそのフィールドを設定します。
[edit security idp custom-attack sig1] user@host# set attack-type signature protocol ip ttl value 128 match equal
プロトコルバインディングとポートを指定します。
[edit security idp custom-attack sig1] user@host# set attack-type signature protocol-binding tcp minimum-port 50 maximum-port 100
方向を指定します。
[edit security idp custom-attack sig1] user@host# set attack-type signature direction any
業績
設定モードから、 show security idp コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit]
user@host# show security idp
custom-attack sig1 {
recommended-action drop-packet;
severity major;
time-binding {
count 10;
scope source;
}
attack-type {
signature {
protocol-binding {
tcp {
minimum-port 50 maximum-port 100;
}
}
context packet;
direction any;
shellcode intel;
protocol {
ip {
ttl {
match equal;
value 128;
}
}
}
}
}
}
デバイスの設定が完了したら、設定モードから commit を入力します。