さかもとのブログ

つらつらと

SYNflood対策

Web サーバに向かったsyn パケットに対し、それが Web サーバに到着する前に DDoS 対策装置が代理で応答します。その際に cookie 情報を含んだ syn/ack を応答し、さらに送信元からの syn/ack へ応答である ack の到着を待ち、その状態を判断して、最初に到着した syn パケットが、実際に通信を行おうとしているパケットなのか、もとより返事をするつもりのない攻撃のパケットであるのかを判別します。この結果、syn cookie を含んだ代理応答に正常に返事を返してきた通信のみを実際の Web サーバに通過させることで、正常な通信を成立させながら、syn flood 攻撃が Web サーバに到達することを防ぐことができます。

DDoSの実体と対策

SYNクッキーの場合、クライアントからSYNを受けた段階ではTCPソケットをオープンしない。その後のACKの中に含まれる確認応答番号を計算し、正しいセッションであることを確認してからセッションの情報をメモリに展開する(製品によってはその後のアプリケーションデータが来てからメモリ展開するものもある)ため、ディレイドバインディングやTCPプロキシアーキテクチャの欠点である、アタック処理時のメモリ容量による同時接続数の制限が緩和される。

DoS対策防御製品の仕組みと特徴

もしサーバが本来メモリ上に記憶するべき情報を返りの SYN ACK パケットの中のシーケンス番号の中に埋めこむことができれば、サーバ側は SYN を受けとった直後に記憶領域を消費する必要はなくなり、ACK パケットが来てからはじめて TCP 接続用の領域を割り当てればよくなる。大量の SYN flood を行うほとんどの攻撃元ホストは IP アドレスを偽装しているため、このシーケンス番号を受けとることはできず、したがってサーバに正しい ACK パケットを送ることができない。その結果、サーバは正当なホストからの接続要求のみに対応 (メモリ割り当て) することができる。このアイデアを進めたものが SYN cookies

wiki

SYN flood 攻撃とその対策