A DDoS Attack Explained: TCP ACK

We’re continuing along with our explanations of types of DDoS attacks today, with emphasis on the TCP ACK flood. Much like we discussed on Tuesday, this form of attack is a part of making a TCP connection. When a client establishes a TCP connection to a server, the connection goes through a three step process.

1. SYN packet. During this stage, a client (such as a desktop computer, laptop, or smartphone) initiates an outgoing connection to a server (such as a web or gaming server).
2. SYN-ACK packet. The server responds with an acknowledgement of the initial request, signaling it is ready to finish initiating the connection.
3. ACK packet. The client sends a final acknowledgment, signifying that both the client and server are ready to send and receive data.
This process is known as a “three-way handshake”.

An ACK flood, as the name describes, involves sending a whole bunch of TCP packets with the ACK bit enabled on it. This kind of DDoS attack has its advantages and disadvantages when compared to the more common SYN flood.

First, let’s take a look at what an ACK flood looks like. This is a spoofed ACK flood against server IP address 10.100.101.102 on port 80.

20:02:48.983378 IP (tos 0x0, ttl 63, id 32488, offset 0, flags [none], proto TCP (6), length 40) 222.83.14.144.1040 > 10.100.101.102.80: Flags [.], cksum 0xb469 (correct), seq 751014783, ack 2048786021, win 512, length 0 0x0000: 4500 0028 7ee8 0000 3f06 40a3 4814 160e E..(~...?.@.H... 0x0010: 4814 160f 0410 0050 2cc3 937f 7a1d fe65 H......P,...z..e 0x0020: 5010 0200 b469 0000 0000 0000 0000 P....i........ 20:02:49.983439 IP (tos 0x0, ttl 63, id 43793, offset 0, flags [none], proto TCP (6), length 40) 114.80.136.184.1041 > 10.100.101.102.80: Flags [.], cksum 0x1c45 (correct), seq 135907827, ack 760402314, win 512, length 0 0x0000: 4500 0028 ab11 0000 3f06 147a 4814 160e E..(....?..zH... 0x0010: 4814 160f 0411 0050 0819 c9f3 2d52 d18a H......P....-R.. 0x0020: 5010 0200 1c45 0000 0000 0000 0000 P....E........ 20:02:50.983479 IP (tos 0x0, ttl 63, id 44213, offset 0, flags [none], proto TCP (6), length 40) 223.4.31.169.1042 > 10.100.101.102.80: Flags [.], cksum 0x3320 (correct), seq 227681609, ack 1655186570, win 512, length 0 0x0000: 4500 0028 acb5 0000 3f06 12d6 4814 160e E..(....?...H... 0x0010: 4814 160f 0412 0050 0d92 2549 62a8 248a H......P..%Ib.$. 0x0020: 5010 0200 3320 0000 0000 0000 0000 P...3......... 20:02:51.983525 IP (tos 0x0, ttl 63, id 52759, offset 0, flags [none], proto TCP (6), length 40) 202.116.160.1043 > 10.100.101.102.80: Flags [.], cksum 0x5f9f (correct), seq 379954490, ack 794534482, win 512, length 0 0x0000: 4500 0028 ce17 0000 3f06 f173 4814 160e E..(....?..sH... 0x0010: 4814 160f 0413 0050 16a5 a53a 2f5b a252 H......P...:/[.R 0x0020: 5010 0200 5f9f 0000 0000 0000 0000 P..._......... 20:02:52.983569 IP (tos 0x0, ttl 63, id 23290, offset 0, flags [none], proto TCP (6), length 40) 200.27.175.70.1044 > 10.100.101.102.80: Flags [.], cksum 0x8634 (correct), seq 242507686, ack 1779207888, win 512, length 0 0x0000: 4500 0028 5afa 0000 3f06 6491 4814 160e E..(Z...?.d.H... 0x0010: 4814 160f 0414 0050 0e74 5fa6 6a0c 8ed0 H......P.t_.j... 0x0020: 5010 0200 8634 0000 0000 0000 0000 P....4........ 20:02:53.983607 IP (tos 0x0, ttl 63, id 42657, offset 0, flags [none], proto TCP (6), length 40) 219.137.229.214.1045 > 10.100.101.102.80: Flags [.], cksum 0x03ae (correct), seq 984467710, ack 563135552, win 512, length 0 0x0000: 4500 0028 a6a1 0000 3f06 18ea 4814 160e E..(....?...H... 0x0010: 4814 160f 0415 0050 3aad c8fe 2190 c440 H......P:...!..@ 0x0020: 5010 0200 03ae 0000 0000 0000 0000 P.............

The [.] flag indicates that it is an ACK packet.

Where The ACK Flood Flows

When a server encounters any TCP packet, it will only accept the packet if there is an already established TCP connection between the source and destination.
There are two common scenarios where an ACK flood takes place:

1. The less common scenario: The attacker sends an initial SYN packet using a bunch of different spoofed IP addresses, calculates the sequence number, and then sends a bunch of properly constructed ACK packets from those same spoofed IP addresses. This keeps all of the connections in an open state, causing the server to run out of resources with seemingly legitimate connections that don’t close. This kind of attack is very difficult to pull off.
2. The more common scenario: The attacker just sends a whole bunch of TCP packets with the ACK bit enabled and the source IP spoofed. This kind of attack is very easy to execute.

Scenario 1’s advantage vs a SYN flood is that it actually opens a connection to the server, and can keep the connection open indefinitely. This is extremely effective when it comes to taking up server resources. A SYN flood on the other hand just opens up a half connection, which times out. It is also much simpler for a DDoS protection device or service to mitigate a SYN flood. The disadvantage is that it’s extremely difficult to execute this kind of attack.

In Scenario 2, the application receiving the packets will simply drop them because there are no active TCP connections between the source and the destination IP addresses. It doesn’t actually open any connections. The reason it’s effective is that the flood forces the server to drop the packets. This causes resource exhaustion as it has to process each packet. The server has to do the same kind of thing with a SYN flood, except it also opens a connection with the server, which is much more effective. The only advantage an ACK flood has is that DDoS protection devices and services are more tuned to handle SYN floods as they are significantly more common. An ACK flood is a clever way to potentially trick DDoS protection services into actually allowing the packets through the filter, which can end up overwhelming the server.

What is a DDoS ATTACK

DDoS is an abbreviation for distributed denial of service. Ddos is done by transmitting packets of information in a rapid manner to the extent that the machine under target can no longer bear it or respond to legal requests anymore. This is a common form of attack which is used by hackers with the intent of causing a loss of income or to cause intimidation.
A simple way to explain this is to imagine a scenario where 10 fat men are pushing their way through a small entrance at the same time. This will only prevent other persons from finding their way through to either enter or leave. It is pretty much the same with internet connections; the DDoS makes it impossible for any signal to pass through and the motive at the end of the day is to hinder your connection to the World Wide Web.
For some, DDoS is considered legal while to some others it is not. The Computer Fraud and Abuse act is the only law against DDoS that can be considered in court. It can easily be argued in court and only a few persons have been indicted in such cases.
There were only a few ways to carry out a DDoS attack in the past, either you own a botnet or you gain illegal entry to a server and upload shells which basically are webpages used to send packets of information without the knowledge of the webservers. Nowadays, shells have been substituted by purchased servers from data centers that ignore the activities of these servers. That is also what you will be using whenever you make use of an IP booter or an IP stresser.
There is absolutely no difference between an ip stresser, a DDoSer, a botnet and a booter. Whenever a person calls an ip stresser a booter, they are just concealing their shady deals.

Stop DDoS Attacks Against your Website!

This is the reality and the impacts Distributed Denial of Service (DDoS) attacks have on your websites and their associated server resources. A DoS/DDoS can happen within seconds / minutes and the impacts can be devastating. The impacts will range from less severe issues like down time, to getting banned by your host for Terms of Service (ToS) violations. This doesn’t account for the economic impacts to your business (i.e., downtime = no purchases, no availability).

Understanding a [Distributed] Denial of Service (DoS / DDoS) Attack

Denial of Service (DoS) attacks and Distributed Denial of Service (DDoS) attacks are the same thing, only thing differentiating the two is scale. When you hear someone mention a DoS attack, you can expect the attack to be marginal (Qualifier: obviously marginal is very subjective and many would disagree that any DoS is marginal). In most instances, when you hear someone say DDoS, you can think the opposite (i.e., think grand!).

Whether a DoS or DDoS attack, the attacker is making use of one or more computers. DoS attacks are on the lower end of that spectrum while DDoS attacks are on the higher end of it, very large DDoS attacks can span 100’s if not 1,000’s of systems. The proliferation of DoS/DDoS attacks are directly attributed to the proliferation of DDoS-For-Hire service market, also known as Booter Services.

An attacker that is leveraging a Denial of Service (DoS) attack method has one goal in mind, to disrupt your websites performance. They disrupt your website performance by making it slow to respond to legitimate requests or disabling the website entirely, making it impossible for legitimate users to access your website. This type of disruption, depending on your configuration, can be devastating to your business.

There are three main DDoS / DoS attack types:

Each of these attacks types are designed to consume your web server resources, in one way or another and each have the same outcome – your web server / website slow to a halt or crash.

1. Volume Based DoS Attacks

As the name implies, this type of attacks depends on volume. The attacker employs a basic tactic, more resources wins this game. If they can overload your resources, they win. For most everyday website owners, this is an easy win. Most website owners are leveraging everyday Shared hosts and those with VPS environments are often configured in the smallest tiers and configurations.

2. Protocol Based DoS Attacks

The internet is all based on protocols, it’s how things get from point A to point B. This type of attack can include things likes Ping of Death, SYN Flood, Packet modifications and number of other variations.

 

3. Application Layer Attacks

The basis for this attack is often targeting applications like Web Servers (i.e., Windows IIS, Apache, etc…), but more and more we’re seeing this type of attack evolve to application platforms like WordPress, Joomla and other similar applications.

Website Firewall Protects Against DDoS / DoS Attacks

There are a number of DoS / DDoS attacks that we, Sucuri, deal with on a daily basis. These are the ones that the Sucuri Website Firewall will protect your website against:

1. HTTP Flood Attack

This type of Layer 7 application attack happens when an attacker makes use of standard GET / POST requests in effort to overload your web servers response ability. This attack is also known as a volumetric attack, it doesn’t require malformed packets, spoofing or any variation of reflection techniques. This attack can occur over HTTP or HTTPS and is much easier to implement, making them the much preferred attack method, cheaper too, for a lot of booter services targeting websites. They can generate thousands of requests a second.

2. Simple Service Discovery Protocol (SSDP) DoS Attack

The Simple Service Discovery Protocol (SSDP) is often used for Plug & Play (UPnP) devices, and it was only in 2014 that we started to see DoS attacks leverage this protocol. It’s a relatively new attack vector for DoS attacks. It often targets traditional SSDP ports, (1900) and destination port 7 (echo). It’s a form of a UDP attack, which unlike SSDP is more common. The latest reports show that SSDP attacks have the ability to increase the amplification of the attack by 30 times which might explain why it’s being employed.

3. User Datagram Protocol (UDP) DoS Attack

The User Datagram Protocol (UDP) DoS attack will flood various ports on your web server, randomly, with packets – also known as Layer 3 / 4 attacks. This forces the web server to respond, in turn chewing through your web server resources forcing it to come to a halt or die completely. UDP is a connection-less protocol, meaning it doesn’t validate source IP addresses. It’s because of this that UDP attacks are often associated with Distributed Reflective Denial of Service (DRDoS) attacks.

4. Domain Name Server (DNS) Amplification DoS Attack

DNS Amplification DoS attacks are very popular today, they occur at Layers 3 / 4. They make use of publicly accessible DNS servers around the world to overwhelm your web server with DNS response traffic. Your web server is overwhelmed by the influx of responses in turn making it difficult to function as it’s resources are depleted, making it impossible to respond to legitimate DNS traffic.

Continue reading