SYNパケットは、TCPでクライアントがサーバーに接続を要求する際に送信されるパケットです。TCPヘッダの制御フラグでSYNフィールドを「1」にセットしており、これがコネクション確立の第一歩となります。サーバーがこのSYNパケットに対してSYN/ACKパケットで応答し、クライアントがさらにACKパケットを送信することで、「3ウェイハンドシェイク」と呼ばれる接続確立手順が完了します。
役割
- 接続要求:クライアントからサーバーへ、通信を開始したい旨を伝えるための接続要求パケットです。
- 接続の開始:TCP通信を開始するための、最初のパケットです。
3ウェイハンドシェイクのプロセス
- クライアントがSYNパケットを送信:クライアントはサーバーに対して接続を要求します。
- サーバーがSYN/ACKパケットで応答:サーバーはクライアントからの接続要求を受け入れ、SYNとACKの両方のフラグを立てたSYN/ACKパケットを返します。
- クライアントがACKパケットで応答:クライアントはサーバーからのSYN/ACKパケットを受け取り、最後にACKパケットをサーバーに送ることで、接続が確立されます。
SYNフラッド攻撃との関連
SYNパケットは、SYNフラッド攻撃と呼ばれるDoS攻撃にも悪用されます。
- 攻撃者は偽装した送信元IPアドレスを持つSYNパケットを大量に送りつけます。
- サーバーはこれに応じてSYN/ACKパケットを送信しますが、偽のIPアドレスからはACKパケットが返ってこないため、サーバーは接続待機状態が続き、リソースが枯渇してサービスが停止する可能性があります。
SYNパケットからわかること・・・「TCP接続を確立しようとしていること」「接続先のポートが稼働しているか」などを把握できます。SYNパケット自体はTCPヘッダのSYNフラグが立っており、TCPの三者手続の開始時に、クライアントからサーバーへ送られます。このパケットの応答を分析することで、ポートスキャンによる稼働状態の確認や、ネットワークの遅延原因の特定などが可能です。
コメント