CSS は SYN アタック検知のため、SYN パケットを受信すると同時に タイマーを動作させます。 もし一定時間以内にこの タイマーが停止しなかった場合、この SYN パケットを 攻撃パケットと判断します。
L3 / L4ルールの場合、3ウェイハンドシェークが終わると タイマが停止いたしますが、L5ルールの場合、リクエスト(HTTP GET / POST)パケットを受信するまで タイマーは停止いたしません。 そのため、L5ルールを使用し、かつ クライアントからの リクエストパケットが遅い場合に、CSS が SYN アタックとして判断してしまい通信ができないという事象が発生します。 この事象を回避するには、設定を L3 / L4 ルールへ変更するか、クライアントからのリクエストパケットに遅延が発生しないよう対処いただく必要があります。
# L2又は L3 / 4コンテントルール Client ----- CSS ----- Server -----> SYN(タイマー動作開始) <----- SYN/ACK -----> ACK (タイマー停止)
# L5コンテントルール Client --------- CSS -------- Server -----> SYN(タイマー動作開始) <----- SYN/ACK ------> ACK
------> PUSH(HTTP GET/POST)(タイマー停止)
SYN アタックと検知するまでの時間は製品によって異なっており、CSS11000シリーズの場合16秒、CSS11500シリーズの場合10秒となっております。もしこの時間までにタイマーが停止しなかった場合、CSS はこの SYN パケットを攻撃パケットと判断し、L3 / L4 ルールの場合、サーバへ RST を送信します。 (L5ルールの場合、サーバとのやりとりはまだ行っていないため、特に何もしません。)
また、SYN アタックカウンタは次のように動作いたします。 (下記では、例として CSS11500シリーズのタイマー値10秒を用いております。)
もし、10秒以内に5個の SYN パケットを受信し、クライアントからの ACK がなかった場合 (L5ルールにおいては HTTP リクエストがなかった場合)、CSS11500は10秒経過した後、5SYN アタックと カウントいたします。その後再び、10秒間隔で5個の SYN パケットを受信した場合は、同様に5SYN アタックと カウントいたします。
もし、10秒以内に15個の SYN パケットを受信した場合、最初の7パケットまでは普通のパケットと同様に扱われますが、8パケット目を受信すると同時に CSS は SYN アタックと判断し、必要に応じて RST を送信いたします。そして、それ以降の パケットも SYN 攻撃パケットと判断いたします。そのため、この場合は8SYN アタックとして カウントされます。その後再び、10秒間隔で15個の SYN パケットを受信した場合は、同様に8SYN アタックとカウントいたします。
|