SYN フラッド
SYN フラッド とは何ですか?
SYN フラッドTCP の 3 ウェイハンドシェイクを完了させずに大量の SYN パケットを送り付け、標的の接続状態リソースを枯渇させる TCP ベースの DoS 攻撃。
SYN フラッドでは、攻撃者が大量の TCP 接続を開始しつつ、決して完結させません。偽装された、あるいは応答のない SYN のひとつひとつが、サーバーにバックログキューへのハーフオープン接続の確保を強い、SYN/ACK を返信させ、決して届かない最後の ACK を待たせ続けます。バックログが埋まると、サーバーは新規の正当な接続を拒否するようになります。SYN フラッドは単一ホストから発生することもありますが、より一般的にはボットネットから行われ、送信元 IP を偽装してフィルタリングを困難にします。
flowchart TD A[攻撃者] -->|"1. SYN(送信元 IP を偽装)"| S[標的サーバー] S -->|"2. 偽装 IP 宛に SYN/ACK"| V["存在しない/応答しないホスト"] S -.->|"3. ハーフオープンのエントリを確保"| Q[(バックログキュー)] V -.->|"最後の ACK は届かない"| S A -->|"高頻度で繰り返す"| S Q -->|"キューが満杯"| R[新規の正当なクライアントが拒否される]
この攻撃は 1996 年に Phrack 誌に掲載されたエクスプロイトコードによって初めて広く知られるようになりました。同年 9 月には、フラッドによりニューヨークの ISP である Panix のメールサーバーが数日にわたり停止し、これが CERT アドバイザリ CA-1996-21 の発行につながりました。決定版とされる文献は RFC 4987(2007 年)「TCP SYN Flooding Attacks and Common Mitigations」で、各種対策とそのトレードオフを概観しています。ホスト側で最も効果的な防御は、Daniel J. Bernstein が考案した SYN cookies です。サーバーは状態を保持する代わりに、接続パラメータを SYN/ACK の初期シーケンス番号に符号化し、クライアントの ACK からそれを再構築します。これにより、ハンドシェイクが完了するまでバックログのエントリは消費されません。その他の緩和策には、SYN キューの拡大や動的な調整、ファイアウォールやロードバランサーでの接続レート制限、ネットワーク端での無状態フィルタリング、上流での DDoS スクラビングなどがあります。
● 例
- 01
ボットネットが Web サーバーへ毎秒数百万件の偽装 SYN パケットを送り、TCP バックログを埋め尽くす。
- 02
小規模な攻撃者が旧式アプライアンスに SYN cookies がないことを悪用し、接続テーブルを崩壊させる。
● よくある質問
SYN フラッド とは何ですか?
TCP の 3 ウェイハンドシェイクを完了させずに大量の SYN パケットを送り付け、標的の接続状態リソースを枯渇させる TCP ベースの DoS 攻撃。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。
SYN フラッド とはどういう意味ですか?
TCP の 3 ウェイハンドシェイクを完了させずに大量の SYN パケットを送り付け、標的の接続状態リソースを枯渇させる TCP ベースの DoS 攻撃。
SYN フラッド からどのように防御しますか?
SYN フラッド に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。