ファイアウォール設定 > フラッド防御

ファイアウォール設定 > フラッド防御」ページでは、セキュリティ装置を通過する TCP トラフィックの統計情報を表示し、TCP トラフィックの設定を管理することができます。

トピック:

TCP 設定

「TCP 設定」セクションでは、以下の項目を設定できます。

厳密な TCP 要件 (RFC 793 および RFC 1122) を強制する - 選択すると、いくつかの TCP タイムアウト ルールの厳密な要件を確実にします。この設定は TCP セキュリティを最大化しますが、これにより Windows Vista ユーザに対するウィンドウ スケーリング機能に問題が発生することがあります。
TCP ハンドシェーク強制を有効にする - すべての TCP 接続に対して、TCP 3 ウェイハンドシェークの成功が必要になります。
TCP チェックサム強制を有効にする - 計算された TCP チェックサムが無効だった場合、パケットが破棄されます。
TCP ハンドシェークのタイムアウトを有効にする - TCP 3 ウェイ ハンドシェークによる接続が完了するまでのタイムアウト時間 (秒)。この時間内に TCP 3 ウェイ ハンドシェークが完了しない場合、ハンドシェークは破棄されます。
既定の TCP 接続無動作時タイムアウト - TCP トラフィックのアクセス ルールで割り当てられる既定の時間。TCP セッションのアクティブな時間がこの設定値を超えると、ファイアウォールにより TCP 接続がクリアされます。既定値は 15 分です。 最小値は 1 分、最大値は 999 分です。補足:接続時タイムアウトを過度に大きく設定すると、古くなったリソースの再利用が遅くなり、極端な場合は接続キャッシュを使い果たす可能性もあります。
セグメント最大存続期間 (秒) - TCP パケットが失効するまでの秒数を指定します。TCP 接続を正しく閉じるための適切な FIN/ACK 交換が問題なく実行されるように、アクティブにクローズされた TCP 接続が TIME_WAIT 状態にとどまる時間 (セグメント最大存続期間の 2 倍、つまり2MSL) を決定する際にも、この設定値が使用されます。

SYNフラッド防御モード

SYN/RST/FIN フラッド防御は、ファイアウォールの背後にあるホストを DoS (サービス拒否) 攻撃や分散 DoS 攻撃から保護するために役立ちます。このような攻撃は、以下のいずれかの攻撃メカニズムを作成することでホストの使用可能リソースを使い果たすことを試みます。

以下のセクションがいくつかの SYNフラッド防御モードを詳述します。

ステートレス Cookie を使用した SYN フラッド防御

SonicOS から導入された SYN フラッド防御の手法では、ステートレス SYN Cookie を使用します。 これにより、SYN フラッドの検出の信頼性が向上するとともに、ファイアウォールにおける全体的なリソース利用が改善されました。ステートレス SYN Cookie を使用することで、半オープン接続の状態を維持する必要がなくなります。そして、SEQr をランダムに設定する代わりに、暗号化計算で算出します。

階層別の SYN フラッド防御手法

SonicOS では、信頼される (内部) ネットワークと信頼されない (外部) ネットワークという 2 つの異なる環境から実行される SYNフラッドに対して、複数の保護手段を用意しています。一般的に、信頼されないWAN ネットワークからの攻撃は、ファイアウォールにより保護された 1 つ以上のサーバで発生します。信頼されるLAN ネットワークからの攻撃は、1 つ以上の信頼されるネットワークの内部におけるウイルス感染が原因で発生し、1 つ以上のローカル ホストまたはリモート ホストに対して攻撃が実行されます。

どちらの攻撃シナリオに対してもファイアウォールで防御できるように、SonicOS 2 つの異なる階層に対応する 2 つの SYNフラッド防御メカニズムを備えています。どちらのメカニズムでも、SYNフラッドの統計情報を収集して表示し、重要な SYNフラッドイベントについてはログ メッセージを生成します。

SYN プロキシ (レイヤ 3) - このメカニズムでは、WAN クライアントの接続要求を保護対象サーバに転送する前に SYN プロキシ実装を使用して WAN クライアントを検証することで、信頼されるネットワーク内のサーバを WAN ベース SYNフラッド攻撃から保護します。SYN プロキシは WANインターフェースに対してのみ有効にできます。
SYN ブラックリスト (レイヤ2) - このメカニズムでは、特定の機器による SYNフラッド攻撃の生成や、SYNフラッド攻撃の転送を阻止します。SYN ブラックリストは、任意のインターフェースに対して有効にできます。

SYN ウォッチリストについて

どちらの SYNフラッド防御メカニズムも、内部的な手法は 1 つのイーサネット アドレス リストに基づいています。 これは初回 SYN パケットをファイアウォールに送信する最もアクティブな機器のイーサネット アドレスのリストです。このリストは、SYN ウォッチリストと呼ばれます。このリストにはイーサネット アドレスが含まれるため、SYN パケットを転送する機器のアドレスに基づいてすべての SYN トラフィックを追跡でき、送信元または送信先 IP アドレスを考慮する必要がありません。

ウォッチリストの各エントリには、ヒット カウントと呼ばれる値が含まれます。ある機器から初回 SYNパケットが受信されるたびに、その機器に対応するヒット カウントの値が 1 ずつ加算されます。TCP3ウェイ ハンドシェークが完了すると、ヒット カウントは 1 ずつ減算されます。特定の機器のヒット カウントは、その機器でヒット カウントがリセットされて以降に処理が保留されている半オープン接続の数に等しくなります。機器でヒット カウントがリセットされる頻度は、既定で 1 秒に 1 回です。

ログ メッセージの表示または状態の変更が必要であるかどうかを判断するときには、ログ、SYN プロキシ、SYN ブラックリストのすべてのしきい値がヒット カウント値と比較されます。SYNフラッド攻撃が発生すると、なりすまし接続が試行されるため、攻撃パケットを転送している機器からの保留中半オープン接続の数が急増します。攻撃しきい値を適切に設定していれば、通常のトラフィック フローではほとんど攻撃警告は発生せず、なおかつ攻撃によって深刻なネットワーク性能低下が生じる前に、攻撃を検出して防御することができます。

TCP ハンドシェークについて

一般的な TCP ハンドシェーク (簡略) は、開始側が 32 ビット シーケンス (SEQi) 番号を持つTCP SYN パケットを送信することで開始されます。その後、応答側が受信されたシーケンスを承認する SYN/ACK パケットを送信します。 SEQi+1 に等しい ACK と、ランダムな 32 ビット シーケンス番号 (SEQr) が送信されます。また、応答側は開始側からの ACK を待ち受ける状態を維持します。開始側からの ACK パケットには、次のシーケンス (SEQi+1) と、応答側から受信したシーケンスの承認 (SEQr+1 に等しい ACK を送信) が含まれます。この交換の例を以下に示します。

1
2
3

応答側ではすべての半オープン TCP 接続の状態を維持する必要があるため、SYN が受信される速度が応答側で処理またはクリアできる速度を超えると、メモリが枯渇する可能性があります。半オープン TCP 接続では 3 ウェイ ハンドシェークが完了せず、接続が確立された状態に移行しません。ファイアウォールが開始側と応答側の間にある場合は、ファイアウォールが実質的な応答側となり、保護される実際の応答側 (プライベート ホスト) への TCP 接続のブローカ (プロキシ) として動作します。