LinuCレベル3 セキュリティスペシャリスト インシデントの検知・防止 問20
インシデントの検知・防止/ネットワークセキュリティLinux サーバーにおける SYN フラッド攻撃への防御に関する説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「インシデントの検知・防止」に対応。実際の試験問題ではありません)
- Anftables で SYN パケットにレート制限を設定する場合、SYN パケットのフィルタには bridge ファミリーのテーブルを使用する必要がある
- Bカーネルパラメータ net.ipv4.tcp_syncookies を有効にすると、SYN キューがあふれても SYN-ACK に暗号的なクッキーを埋め込んで正規の接続を確立できる
- CSYN フラッド攻撃の影響を防ぐにはカーネルの TCP スタックそのものを無効化し、アプリケーション独自のプロトコルスタックに切り替える必要がある
- Dnet.ipv4.tcp_max_syn_backlog を 0 に設定すると SYN キューのサイズが無制限になり、大量の SYN パケットでも新規接続を拒否しなくなる
正解:B
解説
SYN フラッド攻撃は大量の SYN パケットを送り付けて SYN キューを消費させる攻撃です。カーネルパラメータ net.ipv4.tcp_syncookies を 1 に設定すると、SYN キューがあふれた際に SYN クッキーの仕組みが働きます。SYN-ACK の初期シーケンス番号に暗号的な情報を埋め込み、正規の ACK が返ってきたときにその値から接続情報を復元するため、キューにエントリを保持しなくても接続を確立できます。加えて、nftables のレート制限や net.ipv4.tcp_max_syn_backlog の増加も併用されます。
選択肢ごとの解説
- A誤り。SYN パケットのフィルタには inet や ip ファミリーのテーブルを使う。bridge ファミリーはブリッジデバイスを通過するイーサネットフレームを扱うもので、通常のホスト宛 TCP パケットのフィルタリングには使わない。
- B正しい。net.ipv4.tcp_syncookies を有効にすると、SYN キューがあふれた場合でも SYN-ACK に暗号的なクッキーを埋め込み、正規の ACK が返ったときに接続情報を復元して接続を確立できる。
- C誤り。SYN フラッド攻撃への対策は SYN クッキーやレート制限などカーネルの TCP スタックの機能やパケットフィルタリングで行うものであり、TCP を無効化して独自プロトコルに切り替える必要はない。
- D誤り。net.ipv4.tcp_max_syn_backlog を 0 にしても SYN キューが無制限になるわけではなく、カーネルが最小値を適用する。値を大きくすることで SYN キューの容量を増やし、攻撃への耐性を高めることができる。