SYN Cookieとは何ですか?
SYN Cookieは、サーバー管理者がSYNフラッディングと呼ばれる方法により、サーバーに対するサービス拒否(DoS)攻撃を防ぐことができる方法です。 このタイプの攻撃では、クライアントとホスト間の接続が確立されるプロセス(3ウェイハンドシェイクと呼ばれる)を利用して、ホストに過剰な数のクライアント要求を発生させ、システムをフリーズまたはクラッシュさせます。 ただし、このような攻撃は、SYN Cookieを使用するなどの方法により、それらを回避するために、ほとんど時代遅れになっています。 これらのCookieは、ホストまたはクライアントにセキュリティ上の脅威やリスクを与えず、接続の問題や問題を引き起こしません。
SYN Cookieが機能する方法は、多くのサーバーとユーザー、またはホストとクライアントシステムが互いに接続する基本的な方法に基づいています。 このプロセスはスリーウェイハンドシェイクと呼ばれ、クライアントシステムがホストシステムへの接続要求を送信すると開始されます。 要求は同期メッセージまたはSYNと呼ばれ、ホストシステムによって受信されます。 このホストシステムは、確認応答、つまりSYN-ACKメッセージをクライアントに送信することにより、SYNが受信されたことを確認します。
クライアントシステムがこのSYN-ACKメッセージを受信すると、クライアントからホストに最終ACKメッセージが返送されます。 ホストシステムがこの最後のACKを受信すると、クライアントはシステムにアクセスでき、他のクライアントから追加のSYN要求を受信できます。 ほとんどのホストサーバーには、SYN要求のキューがかなり小さく、通常は一度に8つしかありません。
SYNフラッディングとして知られるDoS攻撃の形式は、これを使用してホストシステムを圧倒します。 これは、応答としてホストによってSYN-ACKが送信されるSYNメッセージを送信することによって行われますが、最終的なACKメッセージはクライアントによって送信されず、キュー内の位置を開いたままにします。 SYNフラッド攻撃中にこれが適切に行われると、キュー全体がこれらの未応答の要求で占有され、正当なクライアントからの新しい要求を受け入れることができなくなります。
SYN Cookieは、ホストが実際よりも大きなキューを持っているかのようにホストを動作させることにより、このタイプの攻撃を回避するのに役立ちます。 SYNフラッド攻撃の場合、ホストはSYN Cookieを使用してSYN-ACKをクライアントに送信できますが、そのクライアントのSYNエントリは削除されます。 これにより、基本的にホストはSYNを受信しなかったように機能できます。
ただし、SYN Cookieを含むこのSYN-ACKがクライアントによって受信されると、ホストに返送される対応するACKには元のSYN-ACKに関するデータが含まれます。 ホストは、このACKと含まれるSYN Cookieを使用して、元のSYN-ACKとその元の要求に適切なエントリを再構築できます。 これが完了すると、クライアントはホストに接続できるようになりますが、SYNフラッド攻撃で占有される可能性のあるキューはプロセス全体で効果的に回避されました。