【しんふらっどこうげき】
SYNフラッド攻撃 とは?
最終更新:
💡 未完了の接続要求で、受け付けを圧迫する
TCPの接続開始を大量に発生させ、未完了接続の状態などを圧迫するDoS攻撃。送信元偽装の条件、SYN Cookieの役割と限界、正規の混雑との違いを解説します。
📌 このページのポイント
SYNフラッドは、どの処理を困らせる?
TCPの接続は通常SYN、SYN-ACK、ACKのやり取りで始まるよ。SYNを大量に受けて完了しない接続の状態がたまると、正規の新しい接続を受け付けにくくなるんだ。
送信元IPは必ず偽装される?
偽装が使われる場合はあるけれど、必須ではないよ。接続を完了させない大量の要求が問題になる。送信元が実在するかだけで、正規の利用と攻撃を完全に分けられるわけではないんだ。
SYN Cookieなら、メモリがゼロで済む?
未完了接続ごとの状態を保持する代わりに、検証できる情報をSYN-ACKのシーケンス番号へ符号化する方法だよ。有効なACKが来たときに接続状態を作る。ただしサーバー全体のメモリや計算が不要になるわけではない。
最近のOSなら、自動的に完全防御?
防御のために接続待ちを大きくすればよい?
増やすだけで解決するとは限らないよ。回線の帯域やCPUも圧迫され得るし、正規のアクセス増加で混雑している場合もある。機器やOSの対策、必要に応じた上流での防御を組み合わせ、正規の接続に影響がないか確認するんだ。
もっと詳しく知りたい人へ
SYN Cookieは通信内容の暗号化?
違います。未完了接続の状態を保持せず、応答に対するACKを検証するための情報を符号化する仕組みです。TLSのようにアプリケーションの通信内容を秘密にする機能ではありません。
SYN floodの警告があれば、攻撃と断定できる?
正規の接続数が多くて接続待ちがあふれる場合もあります。Linuxの公式資料も、正規の高負荷への対処をSYN Cookieだけに任せないよう説明しています。接続率や資源の状態、運用上の変化などと合わせて原因を調べます。
まとめ:ざっくりこれだけ覚えればOK!
「SYNフラッド」って出てきたら「TCPの接続開始を大量に起こして未完了接続の状態などを圧迫する攻撃」と思えばだいたいOK!
📖 おまけ:英語の意味
「SYN flood attack」 = SYNによる洪水攻撃
💬 SYNはTCPでシーケンス番号を同期する制御フラグ、floodは大量に送りつけることです。最初の接続要求で使うSYNを、サービス妨害に悪用します。