ネットワーク用語 > SYN Flood
SYN Flood †
SYN Flood = SYNchronize flag Flood
SYN flood攻撃 (スィン・フラッドこうげき) とは、インターネットにおけるDoS攻撃(サービス拒否攻撃)のひとつ。
インターネット上に公開されているウェブサーバなどの負荷を増大させ、対象となるサイトを一時的に利用不能に陥らせてしまう効果がある。
原理
一般に、インターネット上の TCP接続は次のような手順で行われる (3ウェイハンドシェイク):
- クライアントが、サーバに対して TCP SYN パケットを送信する。
- SYN パケットを受けとったサーバは、そのクライアントの接続を許可する SYN ACK パケットを送信する。同時にサーバは接続を準備するために、そのクライアントとのTCP接続用の情報を記憶する領域を割り当てる。
- SYN ACK パケットを受けとったクライアントは、接続開始をあらわす ACKパケットを送信し、サーバとの通信を開始する。
SYN flood 攻撃は、クライアント側がこの 3. の操作を意図的に行わないようにして、サーバを「中途半端な」状態にすることである。
SYN flood攻撃をおこなう (悪意ある) クライアントは、サーバに大量の SYN パケットを送ったあと、サーバから返された SYN ACK パケットを無視して、そのまま放置する。
サーバ側からすれば、クライアントから ACK パケットが届かないということは、ネットワークに障害が発生しているか、あるいは通信速度が非常に遅いかのどちらかである。
このような場合、TCP/IP ではサーバはクライアントからの ACK パケットを一定時間 (数十秒) のあいだ待たなければならないと決められている。
しかし、サーバは待っている間もクライアントの情報を保持しつづけなければならないので、SYN パケットをひとつ受けとるたびに使用するメモリ領域は増大する。
この現象がきわめて短時間のうちに大量に発生すると、サーバは TCP接続のために使えるメモリをすべて使いはたしてしまい、新たな TCP接続がひとつも準備できなくなってしまう。
このときサーバはいわゆるライブロック状態に陥っており、継続して動作はしているものの、他のクライアントから TCP接続要求を送っても反応しないため、完全にダウンしてしまったように見える。
オペレーティングシステムによっては、最悪の場合システムがクラッシュしてしまうこともある。
SYN Flood 攻撃。攻撃者は SYN パケットを大量に送り、サーバの返答を無視する。サーバは返答が来るか、あるいは一定時間が経過するまで記憶領域を保持しつづけなければならず、この間通常のユーザの接続は受けられない。