Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

TCP SYNフラッド攻撃(ティーシーピーシンフラッドこうげき)とは | 意味や読み方など丁寧でわかりやすい用語解説

TCP SYNフラッド攻撃(ティーシーピーシンフラッドこうげき)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

TCP SYNフラッド攻撃 (ティーシーピーシンフラッドこうげき)

英語表記

TCP SYN flood attack (ティーシーピーシンフラッドアタック)

用語解説

TCP SYNフラッド攻撃は、インターネットの基盤となる通信プロトコルの一つであるTCP(Transmission Control Protocol)の接続確立プロセスであるスリーウェイハンドシェイクの仕組みを悪用し、標的となるサーバーのサービスを停止させる、または利用不能にするサービス拒否(DoS: Denial of Service)攻撃の一種だ。この攻撃は、サーバーが新しい接続要求を処理するために必要なリソースを意図的に枯渇させることで、正規のユーザーからの接続を妨害する。

TCPは、インターネット上で信頼性のあるデータのやり取りを行うためのプロトコルであり、通信を開始する前に必ず接続を確立する。この接続確立のプロセスは「スリーウェイハンドシェイク」と呼ばれ、三つの段階から構成される。まず、クライアントはサーバーに対して接続開始の要求を示す「SYN(Synchronize)パケット」を送信する。SYNパケットを受け取ったサーバーは、クライアントに接続の受け入れと自身の接続開始要求を同時に示す「SYN/ACK(Synchronize/Acknowledge)パケット」を返す。この際、サーバーは新しい接続要求のために一定のリソースを確保し、その接続を「半開状態」として管理する。最後に、クライアントはサーバーからのSYN/ACKパケットを受け取ったことを確認する「ACK(Acknowledge)パケット」をサーバーに送信することで、接続が完全に確立され、データの送受信が可能となる。この一連の動作において、サーバーはSYNパケットを受け取った時点で、最終的なACKパケットが来ることを待つための準備として、メモリやCPU時間といったリソースを割り当てる必要がある。

TCP SYNフラッド攻撃では、このスリーウェイハンドシェイクの第二段階でサーバーがACKパケットを待つ状態を悪用する。攻撃者は、標的のサーバーに対して大量のSYNパケットを一方的に送信する。この際、攻撃者は送信元IPアドレスを偽装する(IPスプーフィング)ことが一般的だ。これにより、サーバーがSYN/ACKパケットを返しても、その偽装されたIPアドレスは実在しないか、あるいは攻撃者の制御下にない無関係なホストであるため、サーバーは最終的なACKパケットを受け取ることができない。結果として、サーバーは大量の半開状態の接続を抱え続けることになる。サーバーは、これらの半開状態の接続が完了することを待って一定時間リソースを保持し続けるが、その間にも攻撃者からは次々と新しいSYNパケットが送りつけられる。

サーバーには、未完了の接続を一時的に保持するための「半開接続キュー」と呼ばれるメモリ領域やデータ構造が存在する。TCP SYNフラッド攻撃によって大量の半開接続が発生すると、このキューがすぐに満杯になってしまう。キューが満杯になると、サーバーはそれ以上新しいSYNパケットを受け付けられなくなり、正規のユーザーからの接続要求であっても、新たな接続を確立できなくなる。この状態が続くと、正規のユーザーはサーバーにアクセスできなくなり、サービスが停止したかのように見える。また、サーバーはこれらの半開接続を維持するためにCPU時間やメモリなどのリソースを継続的に消費し続けるため、システムの処理能力が低下し、サーバー全体の応答性が著しく悪化する可能性もある。最終的には、サーバーが完全にフリーズしたり、クラッシュしたりすることもある。

この攻撃が比較的成功しやすいのは、TCPというプロトコルの特性上、サーバーがSYNパケットを受け取った時点で必ず何らかのリソースを消費する必要があるためだ。クライアント側はSYNパケットを送信するだけでよく、サーバーがACKパケットを待っている間は追加の通信を必要としない。これにより、攻撃者は少ないリソースでサーバーに大きな負荷をかけることができる。また、送信元IPアドレスの偽装により、攻撃者の特定や通信の遮断が困難になる点も、この攻撃を深刻なものにしている。

この種の攻撃に対する対策としては、半開接続キューの管理方法を改善したり、不正なSYNパケットを検出・破棄したりする手法が用いられる。例えば、SYN Cookieと呼ばれる技術は、サーバーが半開状態の接続のためにリソースを事前に確保するのではなく、SYN/ACKパケット内に接続情報を暗号化して含めることで、リソース消費を抑える。また、ファイアウォールや侵入検知システム(IDS)、侵入防御システム(IPS)などが、異常なSYNパケットの大量送信を検知し、ブロックする役割を果たすこともある。これらの対策は、サーバーが過剰な負荷に耐え、正規のサービス提供を継続できるようにするために重要だ。

関連コンテンツ