SYNフラッドはTCP/IPのハンドシェイクにある脆弱性を悪用し、Webサービスを破壊しようとします。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
SYNフラッド(ハーフオープン攻撃)は、サービス拒否(DDoS)攻撃の一種で、利用可能なすべてのサーバーリソースを消費することにより、正当なトラフィックがサーバーを利用できないようにすることを目的としています。攻撃者は、最初の接続要求(SYN)パケットを繰り返し送信することにより、標的となるサーバーマシンで利用可能なすべてのポートを圧倒し、標的となるデバイスが正当なトラフィックに応答するのを非常に遅くする、またはまったく応答しなくなるようにすることができます。
SYNフラッド攻撃は、TCP接続のハンドシェイクプロセスを悪用することで機能します。通常の状態では、TCP接続は、接続を確立するために3つの異なるプロセスを用います。
サービス拒否状態を作り出すために、攻撃者は、最初のSYNパケットを受信した後、サーバーが1つまたは複数のSYN/ACKパケットを返信し、ハンドシェイクの最後のステップを待つという事実を利用します。仕組みは次のとおりです。
ネットワーキングでは、サーバーが接続を開いたままにしているが、接続の反対側のマシンが開いていない場合、接続は半分開いたハーフオープン状態と見なされます。このタイプのDDoS攻撃では、標的となるサーバーが接続を開いたままにし、ポートが再び使用可能になる前に各接続がタイムアウトするのを待ちます。そのため、こうした攻撃は「ハーフオープン攻撃」と見なすことができます。
SYNフラッド攻撃を使用することにより、悪意のある行為者は、ほかのDDoS攻撃よりも大幅に少ないトラフィックで、標的デバイスまたはサービスにおいてサービス拒否状態を作り出すことを試みることがあります。標的を取り巻くネットワークインフラストラクチャを飽和させることを目的とする帯域幅消費型攻撃とは異なり、SYN攻撃は、標的のオペレーティングシステムで利用可能なバックログよりも大きければよいだけです。攻撃者が、バックログのサイズと各接続がタイムアウトするまでの時間を特定できる場合、攻撃者は、システムを無効にするために必要となる正確なパラメーターを標的とすることができるため、サービス拒否状態を作り出すのに必要な最低限のレベルまで総トラフィックを減らすことができます。
SYNフラッドの脆弱性は長い間知られており、多くの軽減策が利用されています。以下のようないくつかのアプローチがあります。
標的デバイスの各オペレーティングシステムには、一定数のハーフオープン接続が許可されます。大量のSYNパケットに対する応答の1つは、オペレーティングシステムが許可するハーフオープン接続の最大数を増やすことです。最大バックログを正常に増やすために、システムは追加のメモリリソースを予約して、すべての新しいリクエストを処理する必要があります。増加したバックログキューサイズを処理できる十分なメモリがシステムにない場合、システムのパフォーマンスは悪影響を受けますが、それでもサービス拒否よりもましかもしれません。
別の軽減戦略には、バックログがいっぱいになると、最も古いハーフオープン接続を上書きする方法があります。この戦略では、バックログが悪意のあるSYNパケットで満たされるよりも短い時間で正当な接続が完全に確立される必要があります。この防御方法は、攻撃量が増加した場合、またはバックログサイズが小さすぎて実用的でない場合には有効ではありません。
この戦略には、サーバーによるCookieの作成が含まれます。バックログがいっぱいになったときに接続をドロップするリスクを回避するため、サーバーは各接続要求にSYN-ACKパケットで応答しますが、そこでバックログからSYN要求をドロップし、メモリから要求を削除し、ポートを開いたままにして新しい接続を確立する準備をします。接続が正当な要求であり、最終的なACKパケットがクライアントマシンからサーバーに返送された場合、サーバーはSYNバックログキューエントリを(いくつかの制限付きで)再構築します。この軽減努力によりTCP接続に関する情報を一部失いますが、攻撃の結果として正当なユーザーにサービス拒否が発生するよりはましです。
Cloudflareは、標的とされたサーバーとSYNフラッドの間に立つことにより、この種の攻撃をある程度軽減します。最初のSYNリクエストが行われると、Cloudflareはクラウド内のハンドシェイクプロセスを処理し、TCPハンドシェイクが完了するまで標的とされるサーバーとの接続を保留します。この方法では、偽のSYNパケットとの接続を標的とされるサーバー外で確立するリソースコストの負担を、CloudflareのAnycastネットワークに移します。CloudflareのDDoS攻撃対策の仕組みの詳細をご確認ください。
利用開始
DDoS攻撃について
DDoS攻撃
DDoS攻撃ツール
DDoS用語集