Pages Menu
TwitterRssFacebook
Categories Menu

Posted by on 10月 31, 2005 in ハッキング | 0 comments

SYNフラッド攻撃(SYNFlood)とは?

SYNフラッドとは、DoS攻撃の一種で、大量のSYNパケットをサーバに送り込む攻撃です。

■DoS攻撃とは?

では、「SYNパケット」って何でしょう?

これを理解するには、まず「TCP」の通信の流れを見る必要があります。

Webで使うHTTPや、メールで使うSMTPは、「TCP」というプロトコル(通信手段)の一つです。

このTCPは、通信を開始するときに、「3ウェイハンドシェイク」という手法を用いて、通信を確立します。

例えば、クライアントがWebサーバに通信を行うとき、まず最初に「SYNパケット」をサーバに送ります。

これは、「通信を開始していいかどうかのお伺いだと思ってください。

(1)  [クライアント] —(SYNパケット)—> [Webサーバ]

SYNパケットを受け取ったWebサーバは、「いいですよ」という応答パケットである「ACKパケット」を送信します。また、同時に自分からも「SYNパケット」を送信します。

(2)  [Webサーバ] —(SYNパケット/ACKパケット)—> [クライアント]

そして最後にクライアントがWebサーバに「ACKパケット」を投げて、ようやく通信が開始されるという仕組みになっています。

(3)  [クライアント] —(ACKパケット)—> [Webサーバ]

で、例えば上記の(1)で、クライアントが送信元IPアドレスを詐称したとします。

そうすると、Webサーバは(2)で全然別の相手に、SYNパケットとACKパケットを送ってしまい、最後の(3)のACKパケットを永遠に受け取ることが出来ず、「応答待ち」の状況が続いてしまうことになります。

悪意のある攻撃者が、詐称したSYNパケットを大量に送ることで、この「応答待ち」の状態を作り出し、その結果、サーバ側のメモリが食い尽くされ、接続を受け付けられない状態に陥ってしまうわけです。

SYNフラッド攻撃は、TCPの基本的な仕組みを利用しているため、なかなか防御が難しいと言われています。

たとえば、同じIPアドレスから大量にSYNパケットが来た場合に、そのIPアドレスからの攻撃を防御するといった方法も考えられますが、大量のコンピューターから別々に送られて来た場合は、防ぐのは難しいと思います。