ステートフルファイアウォールの設定の定義

Workload Security ステートフルファイアウォール設定メカニズムは、トラフィック履歴、TCPおよびIPヘッダ値の正確さ、およびTCP接続状態の遷移のコンテキストで各パケットを分析します。UDPやICMPなどのステートレスプロトコルの場合、履歴トラフィック分析に基づいた擬似ステートフルメカニズムが実装されます。パケットは、ステートフルメカニズムによって次のように処理されます。

  1. 静的ファイアウォールルール条件によってパケットの通過が許可された場合、パケットはステートフルルーチンに渡されます。
  2. パケットを調べて、既存の接続に属しているかどうかが判断されます。
  3. TCPヘッダの正当性 (シーケンス番号、フラグの組み合わせなど) が調査されます。

新しいステートフル設定を作成するには、次の手順に従います。

  1. ステートフルな設定を追加します。
  2. ステートフル設定情報を入力する
  3. パケットインスペクションオプションを選択する

ステートフル設定の後は、次の操作について説明します。

ステートフル設定を追加する

[ポリシー]→[共通オブジェクト]→[その他]→[ファイアウォールステートフル設定] でステートフル設定を定義する方法には次の3つがあります。

  • 新しい設定を作成します。クリックすると新規作成>新規ファイアウォールステートフル設定
  • XMLファイルから設定をインポートします。 新規/ファイルからのインポートをクリックします。
  • 既存の設定をコピーして変更します。[ファイアウォールステートフル設定] リストの設定を右クリックして、[複製] をクリックします。新しい設定を編集するには、その設定を選択し、[プロパティ] をクリックします。

ステートフル設定情報を入力する

設定の [名前][説明] を入力します。

パケットインスペクションオプションを選択する

IP、TCP、UDP、およびICMPパケット検査、エンド・エンドのアクティブFTP、またはパッシブFTPのオプションを定義できます。

IPパケットインスペクション

[一般]タブで、を選択します。フラグメント化されたパケットをすべて拒否するフラグメント化されたパケットをドロップします。破棄されたパケットはフラグメント化分析をバイパスして、「IP fragmented packet」というログエントリが生成されます。全長がIPヘッダの長さよりも短いパケットはログに記録されずに破棄されます。

攻撃者は、ファイアウォールルールをバイパスするために、フラグメント化されたパケットを作成して送信する場合があります。

初期設定では、ファイアウォールエンジンは、フラグメント化されたパケットに対して一連のチェックを実行します。これは初期設定の動作で、変更することはできません。次のような特徴を持つパケットは、破棄されます。
  • フラグメントのフラグ/オフセットが無効: IPヘッダ内のDFフラグまたはMFフラグのいずれかが1に設定されている、またはヘッダ内に含まれるDFフラグが1に設定されており、オフセット値が0以外に設定されているとき、パケットは破棄されます。
  • 最初のフラグメントが最小サイズ未満: MFフラグが1に設定されていて、オフセット値が0、合計の長さが (最大組み合わせヘッダ長である) 120バイトよりも短い場合、パケットは破棄されます。
  • IPフラグメントが範囲を超えている: 合計パケット長と組み合わされたオフセットフラグの値が最大データグラム長である65,535バイトを超えた場合、パケットは破棄されます。
  • IPフラグメントのオフセットが小さすぎる: 60バイトよりも小さい値を持つ0以外のオフセットフラグがある場合、パケットは破棄されます。

TCPパケットインスペクション

[TCP] タブで有効化するオプションを次の中から選択します。

  • CWR、ECEフラグを含むTCPパケットを拒否します。 ネットワーク輻輳が発生したときに設定されます。

    RFC 3168では、ECN (Explicit Congestion Notification) に使用する予約済みフィールドの6ビットのうち2ビットを、次のように定義しています。
    • ビット8から15: CWR-ECE-URG-ACK-PSH-RST-SYN-FIN
    • TCPヘッダフラグのビット名参照:
      • ビット8: CWR (Congestion Window Reduced) [RFC3168]
      • ビット9: ECE (ECN-Echo) [RFC3168]

    パケットの自動転送 (特にDoS攻撃によって生成されたものなど) によって、これらのフラグが設定されたパケットが作成されることがよくあります。

  • TCPステートフルインスペクションを有効にする: TCPレベルでのステートフルインスペクションを有効にします。ステートフルTCPインスペクションを有効にすると、次のオプションが利用可能です。

    • TCPステートフルログを有効にする: TCPステートフルインスペクションイベントがログに記録されます。
    • 単一コンピュータからの受信接続数の上限: 単一コンピュータからの接続数を制限すると、DoS攻撃の影響を低減できます。
    • 単一コンピュータへの送信接続数の上限: 単一コンピュータへの送信接続数を制限すると、Nimdaなどのワームの影響を大幅に低減できます。
    • 単一コンピュータからのハーフオープン接続数の上限: この制限を設定すると、SYNフラッドなどのDoS攻撃から保護できます。ほとんどのサーバでは、ハーフオープン接続を終了するためにタイムアウトが設定されています。この値を設定することにより、ハーフオープン接続が重大な問題にならないようにします。SYN-SENT (リモート) エントリが指定された制限に達した場合、その特定のコンピュータからの後続のTCPパケットは破棄されます。

      単一コンピュータからのオープン接続を許可する数を決定する際に、使用している種類のプロトコルで妥当と考えられる単一コンピュータからのハーフオープン接続数と、輻輳を引き起こすことなくシステムが維持できる単一コンピュータからのハーフオープン接続数との間の数を選択します。

    • すでに確認されたパケット数が次を超過したときにACKストーム防御を有効にする: このオプションを設定して、ACKストーム攻撃が発生した場合のイベントを記録します。

      • ACKストームが検出されたときに接続を中断する: このオプションを設定して、攻撃が検出された場合に接続を切断するようにします。ACKストーム保護オプションはDeep Security Agent 8.0以前でのみ使用可能です。

FTPオプション

[FTPオプション] タブで次のオプションを有効化できます。

以下のFTPオプションはDeep Security Agent 8.0以前で使用可能です。

  • アクティブFTP
    • 受信を許可する: このコンピュータがサーバとして動作しているときにアクティブFTPを許可します。
    • 送信を許可する: このコンピュータがクライアントとして動作しているときにアクティブFTPを許可します。
  • パッシブFTP
    • 受信を許可する: このコンピュータがサーバとして動作しているときにパッシブFTPを許可します。
    • 送信を許可する: このコンピュータがクライアントとして動作しているときにパッシブFTPを許可します。

UDPパケットインスペクション

[UDP] タブで次のオプションを有効化できます。

  • UDPステートフルインスペクションを有効にする: UDPトラフィックのステートフルインスペクションを有効にする場合はオンにします。

    UDPステートフル機能は、未承諾の受信UDPパケットを破棄します。送信UDPパケットごとに、ルールがそのUDP「ステートフル」テーブルをアップデートし、要求に対して60秒以内にUDP応答が発生した場合のみ、UDP応答を許可します。特定の受信UDPトラフィックを許可する場合は、強制的に許可ルールを作成する必要があります。たとえば、DNSサーバを実行している場合、送信先のポート53に受信UDPパケットを許可するには、強制的に許可ルールを作成する必要があります。

    UDPトラフィックのステートフルインスペクションがない場合、攻撃者はDNSサーバになりすまして、未承諾のUDP「応答」を送信元のポート53からファイアウォールの内側にあるコンピュータに送信する可能性があります。

    • UDPステートフルログを有効にする: このオプションを選択すると、UDPステートフルインスペクションイベントのログを記録できるようになります。

ICMPパケットインスペクション

[ICMP] タブで次のオプションを有効にできます。

ICMPステートフルインスペクションは、Deep Security Agent 8.0以前で使用できます。

  • ICMPステートフルインスペクションを有効にする: ICMPトラフィックのステートフルインスペクションを有効にする場合はオンにします。

    ICMP (擬似) ステートフル機能は、未承諾の受信ICMPパケットを破棄します。送信ICMPパケットごとに、ルールがそのICMP「ステートフル」テーブルを作成またはアップデートし、要求に対して60秒以内にICMP応答が発生した場合のみ、ICMP応答を許可します(サポートするICMPペアの種類は、タイプ0と8、13と14、15と16、17と18です)。

    たとえば、ステートフルICMPインスペクションを有効にすると、エコー要求が送信された場合にICMPエコー応答を許可できます。要求されていないエコー応答は、Smurf増幅攻撃、マスターとデーモン間のトライブフラッドネットワーク通信、Loki2バックドアなど、さまざまな種類の攻撃の予兆である可能性があります。

    • ICMPステートフルログを有効にする: このオプションを選択すると、ICMPステートフルインスペクションイベントのログを記録できるようになります。

ステートフル設定をエクスポートする

[エクスポート] をクリックし、リストから該当するエクスポート処理を選択すると、すべてのステートフル設定を.csvまたは.xmlファイルにエクスポートできます。ステートフル設定を選択し、[エクスポート] をクリックして、リストから該当するエクスポート処理を選択すると、特定のステートフル設定をエクスポートすることもできます。

ステートフル設定を削除する

ステートフル設定を削除するには、[ファイアウォールステートフル設定] リスト内の設定を右クリックして、[削除] をクリックした後、[OK] をクリックします。

1台以上のコンピュータに割り当てられたステートフル設定、またはポリシーの一部であるステートフル設定は削除できません。

ステートフル設定が割り当てられたポリシーとコンピュータを表示する

ステートフルインスペクション設定に割り当てられたポリシーとコンピュータは、[割り当て対象] タブに表示できます。リスト内のポリシーまたはコンピュータをクリックすると、そのプロパティが表示されます。