0017DNS未登録さん
2006/12/10(日) 21:16:51ID:???SYN floodだろ。SYNだけを一方的に送りつけてサーバの応答性能を落とす攻撃。
TCPの仕様の問題により、どこかからSYNを受け取るとSYN+ACKを返却して次のACKを待つ
(いわゆるハーフオープン状態)という処理をしなければならないので、一定量のメモリ
を確保する必要が生じる。攻撃側はそれを逆手にとってSYNだけを大量に送りつける
ことによってサーバのメモリを大量に消費するよう仕向けることができる
というわけだ。
これを解決するにはSYN cookieを使うのがもっとも手っ取り早い。
古いTCP実装ではクライアント側のシーケンス番号はクライアント側が自由に決める
ことができたが、SYN cookieではサーバがクライアントのシーケンス番号を決める。
その時のシーケンス番号としてクライアントのアドレスとかポート番号とかを元に
したハッシュ値(MD5とかSHA1などと呼ばれるもの)を入れておくことで、サーバが
SYN+ACKを返すタイミングでは状態を保存せずに済む(メモリを消費しなくて済む)
ことになるわけだ。
ただそもそもSYN cookieは厳密な意味ではTCPの実装違反でもあるので、一般的には
SYN floodによる攻撃を受けていると判断してから動き出すのが望ましい。