TCP Connection Flood Attack
A TCP Connection Flood Attack is a type of Distributed Denial-of-Service (DDoS) attack that aims to overwhelm a target system by exploiting the TCP protocol’s connection-handling mechanisms. By inundating a server with a massive number of connection requests, the attacker consumes server resources, rendering the system unresponsive to legitimate traffic.
How It Works
The attack leverages the TCP three-way handshake process, which involves the following steps:
-
SYN: The client sends a synchronization (SYN) packet to the server to initiate a connection.
-
SYN-ACK: The server responds with a synchronization-acknowledgment (SYN-ACK) packet.
-
ACK: The client sends an acknowledgment (ACK) packet back to the server, completing the handshake.
There are two main flavours for this attack:
- Half-open connection in which the attacker sends a flood of SYN packets but deliberately does not complete the handshake by sending the final ACK. This leaves the server with numerous half-open connections, consuming its resources and preventing it from accepting new, legitimate connections.
- Full connection in which the attacker completes the final ACK in the three way handshake, but does not maintain the connection on the attacker side.
Impact
-
Resource Exhaustion: The server allocates memory and processing power to manage each half-open connection, leading to resource depletion.
-
Service Disruption: Legitimate users experience delays or inability to connect to the server.
-
Infrastructure Overload: Network devices like firewalls and load balancers may also become overwhelmed, amplifying the attack’s effect.
Mitigation Strategies
-
SYN Cookies: A technique where the server does not allocate resources until the handshake is completed, mitigating the impact of half-open connections.
-
Rate Limiting: Restricting the number of incoming SYN requests from a single IP address to prevent flooding.
-
Load Balancers: Distributing incoming traffic across multiple servers to manage load effectively.
-
Timeout Reduction: Decreasing the time the server waits for the final ACK in the handshake, freeing up resources more quickly.
by Sergei Penchuk, CISSP