SYNとは何ですか?
TCP では、SYN は接続を開始するためにクライアントからサーバーに送信されるパケットを指します。 TCP 接続を確立するには、次の手順に従います。
3 回のパケット交換を伴うこの接続プロセスは、3 ウェイ ハンドシェイクと呼ばれます。 これにより、サーバーは応答パケットがクライアントに到達したことを確認できます。 ただし、クライアントが送信元 IP アドレスを偽装すると、サーバーが SYN/ACK パケットに対する応答を受信しないため、問題が発生します。 このような場合、サーバーはタイムアウトするまで半開きの状態を維持し、不必要にリソースを消費します。 悪意のある攻撃者は、DoS/DDoS 攻撃の一種である SYN フラッド攻撃でこの脆弱性を悪用します。
F5 の BIG-IP プラットフォームは完全なプロキシとして機能し、SYN パケットをサーバーに転送する前に検査することで SYN フラッドを防止します。 さらに、BIG-IP には、大量の SYN パケットから自身を保護するための SYN Cookies と呼ばれる機能が含まれています。 この方法では、MD5 で生成された番号 (「Cookie」と呼ばれる) が SYN/ACK パケットの TCP シーケンス番号に埋め込まれます。 後続の ACK パケットが受信されると、Cookie はその内容から再計算されます。 これにより、SYN/ACK パケットの送信時に接続の詳細を保存する必要がなくなり、SYN フラッド攻撃中でもメモリ不足を防ぐことができます。