SYN flood

SYN Flood攻撃について



SYN flood攻撃は、インターネットにおけるDoS攻撃の一形態であり、主にWebサーバを標的としています。この攻撃により、対象サイトの負荷が増大し、一時的にサービスが利用できなくなります。具体的には、攻撃者はサーバに対し大量のTCP SYNパケットを送信し、サーバの応答を無視することで、リソースを消費させる仕組みです。

攻撃の原理



通常、TCP接続の過程は3つのステップで進行します。この過程は「3ウェイ・ハンドシェイク」と呼ばれます。以下がその手順です:

1. クライアントからの接続要求:まず、クライアントがサーバにSYNパケットを送信します。
2. サーバの応答サーバはSYN ACKパケットを返信し、接続を許可します。この際、サーバは接続のための情報を保持するメモリを割り当てます。
3. クライアントからの確認応答:最後に、クライアントがACKパケットを送信し、接続が確立されます。

しかし、SYN flood攻撃では、攻撃者がクライアントの役割を務め、大量のSYNパケットサーバに送るものの、ACKパケットを送信せずに放置します。これにより、サーバは「中途半端な」接続状態に陥ります。サーバはACKパケットが時間内に届かないことを理由に、接続に対する待機状態を維持しますが、その間もメモリを消費し続けるのです。

このようにして攻撃が繰り返されると、サーバのリソースは急速に枯渇してしまい、他のクライアントからの接続要求に応答できなくなります。この状態をライブロックと呼び、サーバは稼働しているものの、事実上はダウンしたかのように見えます。特に悪化した状況では、オペレーティングシステム自体がクラッシュする危険性もあります。

サーバへの影響



SYN flood攻撃によって、サーバはどれだけのメモリを消費するのでしょうか。例えば、サーバが1Gbpsのイーサネットに接続されている場合、受信するデータは最大約100メガバイト/秒です。各TCP SYNパケットは約60バイトの大きさであるため、1秒間に送信されるパケット数は最大で約200万個になります。

攻撃者は通常、その接続元アドレスを偽装するため、サーバは受信したSYNパケットに応じて16バイトの情報を消費します。この結果、1Gbpsの帯域を使用するSYN flood攻撃が行われた場合、サーバは1秒間に約30メガバイトのメモリを消費します。さらに、サーバは各SYNパケットを30秒以上保持する必要があるため、総消費メモリは約900メガバイトに達します。このような条件下では、サーバは新しい接続要求に対応することがほぼ不可能になります。

対策



SYN flood攻撃が広く知られるようになったのは、1996年に米国の大手プロバイダであるPanixのメールサーバがこの攻撃によりダウンした事件がきっかけです。当初は効果的な防御策が存在しないと考えられましたが、後にSYN cookiesやSYN cacheなどの技術が開発され、一定程度、正当なクライアントからの接続を維持できるようになりました。

また、最近ではプロバイダによるIngressフィルタリングが普及し、偽装されたパケットによる攻撃が軽減されています。これにより、攻撃の難易度は下がっていますが、依然として有効な対策が求められています。

具体的な被害事例



2007年2月、ニコニコ動画WebサーバやメッセージサーバがSYN flood攻撃の標的となり、サービスが一時停止する事態が発生しました。当初は30台程度による攻撃でしたが、最終的には3000台以上からの攻撃に増大し、サーバは機能しなくなりました。このように、SYN flood攻撃は数的な規模が重要で、短時間で大きな影響を及ぼすことが確認されています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。