IDPセンサーの設定
IDPセンサー設定では、管理者はセキュリティデバイスのIDPパフォーマンスを最適化するための設定を構成できます。メモリとセッションの使用量を制限する方法、リソース超過時のトラフィックドロップを制御する方法、高いCPU使用率を管理するためのIDPインテリジェントバイパスを設定する方法について説明します。また、フェイルオーバー時の処理条件についてもカバーします。
IDPシグネチャデータベースを使用してアプリケーションシグネチャを作成することはできません。ただし、センサー設定を構成して、アプリケーション識別(AppID)のセッションとメモリ使用量を制限できます。
IDPセンサー設定の概要
センサー構成オプションは、次の目的で使用します。
IDPセッション容量とメモリの制限に近づくと、実行条件をログに記録します。
制限を超えた場合、IDPとアプリケーション識別によってドロップされたトラフィックを分析します。
1つのTCPまたはUDPセッションのアプリケーション識別用のパケットを保存するために使用できるメモリバイトの最大量を設定できます。また、アプリケーション識別のためのグローバルメモリ使用量の制限を設定することもできます。システムがセッションに指定されたメモリ制限に達すると、セッションのAppIDが無効になります。ただし、IDPは引き続きパターンに一致します。一致したアプリケーションは、次のセッションで使用できるようにキャッシュに保存されます。これにより、大規模なクライアントからサーバーへのパケットを意図的に送信して、AppIDをバイパスしようとする攻撃者からシステムを保護します。
IDPシグネチャデータベースを使用してアプリケーションシグネチャを作成することはできませんが、以下のセンサー設定を構成して、アプリケーション識別を実行するセッションの数を制限し、アプリケーション識別用のメモリ使用量を制限できます。
max-tcp-session-packet-memory—IDP AppIDサービスのメモリとセッション制限を設定するには、 set security idp sensor-configuration application-identification max-tcp-session-packet-memory 5000 コマンドを実行します。
memory-limit-percent—IDP割り当てに使用できるシステムで利用可能なデータプレーンのメモリ制限率を設定するには、 set security idp sensor-configuration global memory-limit-percent コマンドを実行します。サポートされているパーセント値は10から90です。
drop-if-no-policy-loaded—起動時に、IDPポリシーがまだ読み込まれていない場合、IDPはデフォルトでIDPによってトラフィックを無視します。
drop-if-no-policy-loadedオプションは、IDPポリシーが読み込まれる前にすべてのセッションがドロップされるように、この動作を変更します。以下の
show security idp counters flowコマンド出力のカウンターは、drop-if-no-policy-loadedオプションによってドロップされたトラフィックを分析します。Sessions dropped due to no policy 0
drop-on-failover—デフォルトでは、IDPはシャーシクラスター導入のフェイルオーバーセッションを無視します。
drop-on-failoverオプションは、この動作を変更し、セカンダリノードへのフェイルオーバーが発生した場合に、プライマリノードで検査中のセッションを自動的にドロップします。show security idp counters flowコマンド出力の以下のカウンターは、drop-on-failoverオプションによってドロップされたフェイルオーバートラフィックを分析します。Fail-over sessions dropped 0
drop-on-limit—デフォルトでは、IDPセッション制限またはリソース制限を超えても、セッションはドロップされません。この場合、デバイスのセッション容量またはリソースが枯渇した場合にのみ、IDPおよびその他のセッションが破棄されます。
drop-on-limitオプションはこの動作を変更し、リソース制限を超えた場合にセッションをドロップします。show security idp counters flowコマンド出力の以下のカウンターは、drop-on-limitオプションによってドロップされたIDPトラフィックを分析します。SM Sessions encountered memory failures 0 SM Packets on sessions with memory failures 0 SM Sessions dropped 0 Both directions flows ignored 0 IDP Stream Sessions dropped due to memory failure 0 IDP Stream Sessions ignored due to memory failure 0 IDP Stream Sessions closed due to memory failure 0 Number of times Sessions exceed high mark 0 Number of times Sessions drop below low mark 0 Memory of Sessions exceeds high mark 0 Memory of Sessions drops below low mark 0
show security idp counters application-identificationコマンド出力の以下のカウンターは、drop-on-limitオプションによってドロップされたAppIDトラフィックを分析します。AI-session dropped due to malloc failure before session create 0 AI-Sessions dropped due to malloc failure after create 0 AI-Packets received on sessions marked for drop due to malloc failure 0
以下のオプションを使用して、現在の実行条件に関する情報ログメッセージをトリガーします。設定すると、
drop-on-limitオプションが設定されているかどうかに関係なく、ログメッセージがトリガーされます。max-sessions-offset-
max-sessions-offsetオプションは、セッション最大IDP制限のオフセットを設定します。IDPセッションの数が最大セッション制限を超えると、IDPセッションがドロップされる可能性のある条件が存在することを知らせる警告が記録されます。IDPセッションの数が、IDPセッションの最大制限からオフセット値を差し引いた値を下回ると、状態が正常に戻ったことを示すメッセージが記録されます。Jul 19 04:38:13 4.0.0.254 RT_IDP: IDP_SESSION_LOG_EVENT: IDP: at 1374233893, FPC 4 PIC 1 IDP total sessions pass through high mark 100000. IDP may drop new sessions. Total sessions dropped 0. Jul 19 04:38:21 4.0.0.254 RT_IDP: IDP_SESSION_LOG_EVENT: IDP: at 1374233901, FPC 4 PIC 1 IDP total sessions drop below low mark 99000. IDP working in normal mode. Total sessions dropped 24373.
min-objcache-limit-lt-
min-objcache-limit-ltオプションは、使用可能なキャッシュメモリのしきい値を下げます。しきい値は、使用可能な IDP キャッシュメモリの割合として表されます。使用可能なキャッシュメモリが下限しきい値を下回ると、メモリ割り当ての失敗によりIDPセッションがドロップされる可能性がある条件が存在することを示すメッセージがログに記録されます。例えば、次のメッセージは、IDPキャッシュメモリが下限しきい値を下回り、多数のセッションがドロップされたことを示しています。Jul 19 04:07:33 4.0.0.254 RT_IDP: IDP_SESSION_LOG_EVENT: IDP: at 1374232053, FPC 4 PIC 1 IDP total available objcache(used 4253368304, limit 7247757312) drops below low mark 3986266515. IDP may drop new sessions. Total sessions dropped 1002593.
min-objcache-limit-ut—
min-objcache-limit-utオプションは、使用可能なキャッシュメモリの上限しきい値を設定します。しきい値は、使用可能な IDP キャッシュメモリの割合として表されます。使用可能な IDP キャッシュメモリが上限しきい値レベルに戻ると、使用可能なキャッシュメモリが正常に戻ったことを示すメッセージが記録されます。例えば、次のメッセージは、使用可能なIDPキャッシュメモリが上限しきい値を超えて増加し、正常に動作していることを示しています。Jul 19 04:13:47 4.0.0.254 RT_IDP: IDP_SESSION_LOG_EVENT: IDP: at 1374232428, FPC 4 PIC 1 IDP total available objcache(used 2782950560, limit 7247757312) increases above high mark 4348654380. IDP working in normal mode. Total sessions dropped 13424632.
このメッセージは、使用可能なメモリが下限しきい値を下回り、その後上限しきい値を超えた場合にのみトリガーされます。下限しきい値を超えるメモリの変動は、メッセージをトリガーしません。
IDPインテリジェントバイパスのデフォルト設定では、IDPはCPU使用率に関係なく、新規および既存のセッションの検査を試みます。これにより、CPU 使用率が高いイベントの際に、パケットのドロップ、遅延、システム全体の不安定化が発生する可能性があります。予測不可能な IDP パケット処理動作を克服するには、IDP インテリジェント バイパス機能を有効にします。この機能により、システムCPU使用率が高レベルに達すると、IDPをバイパスするか、パケットをドロップする柔軟性が得られます。これは、「オープンの失敗」(パケットの許可)または「クローズの失敗」(パケットのドロップ)とも呼ばれます。デフォルトでは、IDPインテリジェントバイパス機能は有効になっていません。以下のオプションを使用して、IDPインテリジェントバイパス機能を設定します。
idp-bypass-cpu-usage-overload—デフォルトでは、IDPは利用可能なCPUの100%を消費し、誤ってすべてのセッションのパケットをドロップし始める可能性があります。システムCPU使用率が高いしきい値に達した場合のIDPパケット処理動作を処理するには、IDPインテリジェントバイパス機能を有効にすることができます。インテリジェントIDPバイパス機能を有効にするには、
set security idp sensor-configuration flow idp-bypass-cpu-overloadコマンドを発行します。デフォルトでは、IDPインテリジェントバイパス機能は有効になっていません。idp-bypass-cpu-threshold—CPU使用率が定義されたしきい値に達すると、IDPは新しいセッションの検査を停止します。CPU使用率のデフォルトのしきい値は85%です。CPU使用率がしきい値に達すると、CPU使用率が下限しきい値を下回るまで、IDPは新しいセッションをバイパスし続けます。または、
drop-on-limitを設定すると、CPU使用率が下限しきい値を下回るまで、IDP新しいセッションをドロップします。しきい値を設定するには、set security idp sensor-configuration flow idp-bypass-cpu-thresholdコマンドを発行します。0〜99の範囲でしきい値を設定できます。このしきい値はパーセンテージで表されます。idp-bypass-cpu-tolerance—許容値を設定するには、
set security idp sensor-configuration flow idp-bypass-cpu-toleranceコマンドを発行します。許容値は 1 から 99 の範囲で設定できます。デフォルトの許容値は5です。この許容値はパーセンテージで表されます。
CPUの上限および下限しきい値は、以下の式を使用して計算できます。
CPU上限しきい値 = CPUしきい値 + CPU許容値
CPU下限しきい値 = CPUしきい値 - CPU許容値
時のIDPパケット処理動作を理解する
システムCPU使用率がしきい値を超えると、IDPは新しいセッションの検査を停止しますが、既存のセッションの検査は続行します。この状態で、 drop-on-limit が設定されている場合、IDP新しいセッションのドロップを開始します。新しいセッションがドロップされたことを示すログメッセージがトリガーされます。例えば、次のメッセージは、IDP CPU使用率がしきい値を超えており、IDPが新しいセッションをドロップする可能性があることを示しています。
FPC 0 PIC 1 IDP CPU usage 86 crossed threshold value 85. IDP may drop new sessions. Total sessions dropped 2
システムCPU使用率が上限しきい値を超えると、IDPは既存セッションと新規セッションのパケットの検査を停止します。この状態では、パケットは IDP 検査を通過できません。 drop-on-limit が設定されている場合、IDPすべてのセッションをドロップします。ログメッセージがトリガーされ、すべてのセッションがドロップされたことを示します。例えば、次のメッセージは、IDP CPU使用率が上限しきい値を超えたことを示し、IDPが既存セッションと新しいセッションのパケットの検査を停止します。
FPC 0 PIC 1 IDP CPU usage 92 crossed upper threshold value 90. IDP may drop packets of existing sessions as well as new sessions. Total sessions dropped 21
システムCPU使用率が下限しきい値を下回ると、IDPは新しいセッションの検査を開始し、通常モードに戻ります。IDPは、既存の破棄されたセッションを検査しません。ログメッセージがトリガーされ、IDPが新しいセッションの検査を開始し、通常モードに戻ったことを示します。例えば、次のメッセージは、IDP CPU使用率が下限しきい値を下回り、IDPが通常モードに戻ることを示します。
FPC 0 PIC 1 IDP CPU usage 75 dropped below lower threshold value 80. IDP working in normal mode. Total sessions dropped 25
IDP保護モード
IDP保護モードは、デバイス内のトラフィックを効率的に検査するために検査パラメーターを調整します。IDP保護モードを有効にするには、[edit security idp sensor-configuration]階層レベルでsecurity-configuration protection-mode modeコマンドを発行します。
user@host#set security-configuration protection-mode mode
IDP保護モードには4つあります。
すべての IDP 保護モードは、CTS(クライアントからサーバー)トラフィックを検査します。
モード |
説明 |
|---|---|
境界フル |
すべてのSTC(Server To Client)トラフィックを検査します。 最適化なしでTCPエラーを処理します。 これはデフォルトモードです。 |
境界 |
すべてのSTCトラフィックを検査します。 TCPエラーを最適化して処理します。TCPパケットの場合、SYNがウィンドウで受信され、TCPエラーフラグが設定されている場合は、TCPエラーを処理し、適切なアクションを実行します。現在のパケットをドロップし、セッション全体の検査を無視します。 |
データセンターフル |
すべてのSTCトラフィック検査を無効にします。 最適化なしでTCPエラーを処理します。 Datacenter-Fullは、セキュリティデバイスが、応答トラフィックが分析対象とみなされないサーバーの保護のみを担当している場合に使用できます。Datacenter-Fullは、セキュリティデバイスがクライアントの保護を担当している場合には使用しないでください。 |
データセンター |
すべてのSTCトラフィック検査を無効にします。 TCPエラーを最適化して処理します。TCPパケットの場合、SYNがウィンドウで受信され、TCPエラーフラグが設定されている場合は、TCPエラーを処理し、適切なアクションを実行します。現在のパケットをドロップし、セッション全体の検査を無視します。 データセンターの構成は、バランスの取れた保護とパフォーマンスを提供するために最適化されています。 |
関連項目
例:IDPセンサー設定オプションでロギングとトラフィック分析を改善
この例では、IDPセンサーの設定オプションを設定することで、ロギングとトラフィック分析を改善する方法を示しています。さらに、これらのオプションを使用して、IDPセッション容量とメモリ制限に近づいたときの実行条件を記録し、これらの制限を超えた場合にIDPとアプリケーション識別によってドロップされたトラフィックを分析できます。
要件
始める前に:
ネットワークインターフェイスを設定します。
シグネチャデータベースをダウンロードします。 IDPシグネチャデータベースの手動更新を参照してください。アプリケーションシグネチャは、ジュニパーネットワークスが提供するセキュリティパッケージの一部として利用できます。事前定義されたアプリケーションシグネチャをセキュリティパッケージの更新とともにダウンロードします。
概要
IDPセンサーはネットワークを監視し、IDPルールベースで定義された特定のルールに基づいて、疑わしいネットワークトラフィックや異常なネットワークトラフィックを検出します。プロトコルまたはアプリケーションに基づいて、攻撃オブジェクトをトラフィックに適用します。アプリケーションシグネチャにより、センサーは非標準ポートで実行されている既知および未知のアプリケーションを識別し、正しい攻撃オブジェクトを適用できます。
IDPのデフォルトの動作では、次の場合にセッションを無視します。
IDPポリシーがデバイスで設定されていません
リソースの制限(メモリまたはアクティブセッション)に達しました
シャーシクラスターの場合、フェイルオーバーセッションの場合
トラフィックの可用性がセキュリティよりも重要と考えられる場合は、上記のIDPのデフォルトの動作を引き続き使用することをお勧めします。ただし、可用性よりもセキュリティが重要と考えられる場合は、この例で提供されている設定でデフォルトの動作を変更することをお勧めします。
設定
手順
CLIクイックコンフィグレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit] 階層レベルでCLIにコピーアンドペーストして、設定モードから commit を入力します。
set security idp sensor-configuration application-identification max-tcp-session-packet-memory 5000 set security idp sensor-configuration flow drop-if-no-policy-loaded set security idp sensor-configuration flow drop-on-failover set security idp sensor-configuration flow drop-on-limit set security idp sensor-configuration flow max-sessions-offset 5 set security idp sensor-configuration flow min-objcache-limit-lt 21 set security idp sensor-configuration flow min-objcache-limit-ut 56
ステップバイステップの手順
次の例では、設定階層のさまざまなレベルに移動する必要があります。その方法の詳細については、『CLIユーザーガイド』の「構成モードでのCLIエディターの使用」を参照してください。
IDPセンサー設定オプションを設定するには:
アプリケーション識別用のメモリ制限を指定します。
[edit security idp sensor-configuration] user@host# set application-identification max-tcp-session-packet-memory 5000
IDPポリシーが読み込まれる前にトラフィックがドロップされることを指定します。
[edit security idp sensor-configuration flow] user@host# set drop-if-no-policy-loaded
シャーシクラスター展開のフェイルオーバーセッションをドロップすることを指定します。
[edit security idp sensor-configuration flow] user@host# set drop-on-failover
リソース制限を超えた場合にセッションをドロップすることを指定します。
[edit security idp sensor-configuration flow] user@host# set drop-on-limit
delete drop-on-limitコマンドを実行して、リソース制限を超えた場合にセッションをドロップしないようにします。IDPセッションの最大制限のオフセット値を設定します。
[edit ssecurity idp sensor-configuration flow] user@host# set max-sessions-offset 5
使用可能なキャッシュメモリのしきい値を低く設定します。
[edit security idp sensor-configuration flow] user@host# set min-objcache-limit-lt 21
使用可能なキャッシュメモリの上限しきい値を設定します。
[edit security idp sensor-configuration flow] user@host# set min-objcache-limit-ut 56
結果
設定モードから、 show security idp コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit]
user@host# show security idp
sensor-configuration {
application-identification {
max-tcp-session-packet-memory 5000;
}
flow {
drop-on-limit;
drop-on-failover;
drop-if-no-policy-loaded;
max-sessions-offset 5;
min-objcache-limit-lt 21;
min-objcache-limit-ut 56;
}
}
デバイスの設定が完了したら、設定モードから commit を入力します。
検証
IDPセンサー構成設定の確認
目的
IDPセンサーの構成設定を確認します。
アクション
動作モードから、 show security idp sensor-configuration コマンドを入力します。
user@host> show security idp sensor-configuration
application-identification {
max-tcp-session-packet-memory 5000;
}
flow {
drop-on-limit;
drop-on-failover;
drop-if-no-policy-loaded;
max-sessions-offset 5;
min-objcache-limit-lt 21;
min-objcache-limit-ut 56;
}
}
意味
show security idp sensor-configurationコマンドは、特定の値で設定されたすべてのセンサー設定オプションを表示します。
IDPカウンターの検証
目的
IDPカウンターを確認します。
アクション
動作モードから、 show security idp counters flow コマンドを入力します。
出力例
IDP counters: IDP counter type Value Fast-path packets 0 Slow-path packets 0 Session construction failed 0 Session limit reached 0 Session inspection depth reached 0 Memory limit reached 0 Not a new session 0 Invalid index at ageout 0 Packet logging 0 Policy cache hits 0 Policy cache misses 0 Policy cache entries 0 Maximum flow hash collisions 0 Flow hash collisions 0 Gates added 0 Gate matches 0 Sessions deleted 0 Sessions aged-out 0 Sessions in-use while aged-out 0 TCP flows marked dead on RST/FIN 0 Policy init failed 0 Number of times Sessions exceed high mark 0 Number of times Sessions drop below low mark 0 Memory of Sessions exceeds high mark 0 Memory of Sessions drops below low mark 0 SM Sessions encountered memory failures 0 SM Packets on sessions with memory failures 0 IDP session gate creation requests 0 IDP session gate creation acknowledgements 0 IDP session gate hits 0 IDP session gate timeouts 0 Number of times Sessions crossed the CPU threshold value that is set 0 Number of times Sessions crossed the CPU upper threshold 0 Sessions constructed 0 SM Sessions ignored 0 SM Sessions dropped 0 SM Sessions interested 0 SM Sessions not interested 749 SM Sessions interest error 0 Sessions destructed 0 SM Session Create 0 SM Packet Process 0 SM ftp data session ignored by idp 0 SM Session close 0 SM Client-to-server packets 0 SM Server-to-client packets 0 SM Client-to-server L7 bytes 0 SM Server-to-client L7 bytes 0 Client-to-server flows ignored 0 Server-to-client flows ignored 0 Both directions flows ignored 0 Fail-over sessions dropped 0 Sessions dropped due to no policy 0 IDP Stream Sessions dropped due to memory failure 0 IDP Stream Sessions ignored due to memory failure 0 IDP Stream Sessions closed due to memory failure 0 IDP Stream Sessions accepted 0 IDP Stream Sessions constructed 0 IDP Stream Sessions destructed 0 IDP Stream Move Data 0 IDP Stream Sessions ignored on JSF SSL Event 0 IDP Stream Sessions not processed for no matching rules 0 IDP Stream stbuf dropped 0 IDP Stream stbuf reinjected 0 Busy pkts from stream plugin 0 Busy pkts from pkt plugin 0 bad kpp 0 Lsys policy id lookup failed sessions 0 Busy packets 0 Busy packet Errors 0 Dropped queued packets (async mode) 0 Dropped queued packets failed(async mode) 0 Reinjected packets (async mode) 0 Reinjected packets failed(async mode) 0 AI saved processed packet 0 AI-session dropped due to malloc failure before session create 0 AI-Sessions dropped due to malloc failure after create 0 AI-Packets received on sessions marked for drop due to malloc failure 0 busy packet count incremented 0 busy packet count decremented 0 session destructed in pme 0 session destruct set in pme 0 kq op hold 0 kq op drop 0 kq op route 0 kq op continue 0 kq op error 0 kq op stop 0 PME wait not set 0 PME wait set 0 PME KQ run not called 0
意味
show security idp counters flowコマンドは、ドロップされたフェイルオーバートラフィック、ドロップされたIDPトラフィック、およびドロップされたアプリケーション識別トラフィックの分析に使用されるすべてのカウンターを表示します。
変更履歴テーブル
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。