Sensors 21 05473 v2
Sensors 21 05473 v2
Article
Generator of Slow Denial-of-Service Cyber Attacks †
Marek Sikora * , Radek Fujdiak , Karel Kuchar , Eva Holasova and Jiri Misurec
Abstract: In today’s world, the volume of cyber attacks grows every year. These attacks can cause
many people or companies high financial losses or loss of private data. One of the most common
types of attack on the Internet is a DoS (denial-of-service) attack, which, despite its simplicity,
can cause catastrophic consequences. A slow DoS attack attempts to make the Internet service
unavailable to users. Due to the small data flows, these attacks are very similar to legitimate
users with a slow Internet connection. Accurate detection of these attacks is one of the biggest
challenges in cybersecurity. In this paper, we implemented our proposal of eleven major and most
dangerous slow DoS attacks and introduced an advanced attack generator for testing vulnerabilities
of protocols, servers, and services. The main motivation for this research was the absence of a
similarly comprehensive generator for testing slow DoS vulnerabilities in network systems. We
built an experimental environment for testing our generator, and then we performed a security
analysis of the five most used web servers. Based on the discovered vulnerabilities, we also discuss
preventive and detection techniques to mitigate the attacks. In future research, our generator can be
used for testing slow DoS security vulnerabilities and increasing the level of cyber security of various
network systems.
Citation: Sikora, M.; Fujdiak, R.;
Kuchar, K.; Holasova, E.; Misurec, J. Keywords: network security; slow DoS attacks; vulnerability testing; prevention; detection
Generator of Slow Denial-of-Service
Cyber Attacks. Sensors 2021, 21, 5473.
https://doi.org/10.3390/s21165473
1. Introduction
Academic Editor: Lei Shu
Nowadays, with the ever-growing number of Internet users and the expanding range
of Internet services, the demands on the security of users’ data, services, and privacy are
Received: 29 June 2021
Accepted: 5 August 2021
also growing. One type of cyber attack is the DoS (denial-of-service) attack. The main goal
Published: 13 August 2021
of this attack is to make the target Internet service unavailable to other users, or, at least, to
degrade the quality and speed of the service. Most often, DoS attacks are targeted on web
Publisher’s Note: MDPI stays neutral
servers to prevent users from accessing web content. The primary targets of DoS attacks
with regard to jurisdictional claims in
include web, mail, database, file, and domain system servers, and remote access services.
published maps and institutional affil- Attacks can also block traffic on the target internal networks [1].
iations. DoS attacks have gradually evolved from primitive flood attacks to the current so-
phisticated attacks targeting application protocols of the TCP/IP (Transmission Control
Protocol/Internet Protocol) model, especially the HTTP (Hypertext Transfer Protocol) [2].
These attacks communicate validly on lower-layer protocols. This makes it challenging
Copyright: © 2021 by the authors.
for many detection mechanisms to distinguish them from legitimate traffic. One of these
Licensee MDPI, Basel, Switzerland.
attacks are slow DoS attacks. Their main characteristic is a very slow data flow. Due to
This article is an open access article
unhandled system vulnerabilities or abnormal service usage, these attacks can overload
distributed under the terms and the target server and cause a denial of service to other users with just a few packets. Due
conditions of the Creative Commons to low data flows and usually valid use of all protocols, these attacks are very similar to
Attribution (CC BY) license (https:// legitimate users with a very slow Internet connection.
creativecommons.org/licenses/by/ Slow DoS attacks can also be generated as DDoS (distributed DoS) attacks. In this
4.0/). case, the attacker uses an army of hijacked computers and devices to conduct an attack on
the target system at one time. Such an army of computers is called a botnet, and hijacked
computers are called bots. To create a botnet, an attacker typically uses self-propagating
malicious code, which scans open ports and the security flaws of computers on the Internet.
If an attacker finds a computer with a security flaw, he can upload his malicious code and
gain control over this computer. This computer is then part of the botnet and waits for the
attacker’s order to generate an attack. The botnet will increase the volume of the attack
and reduce the possibility of attacker identification because the attack is spread among
a large number of computers. Accurate detection of slow DoS attacks is one of the most
challenging goals in this research area [1].
The paper is divided as follows. Section 1.1 reports related papers on the topic of
slow DoS attacks. Section 1.2 describes the main contribution of this paper and the pro-
posed generator. Section 2 describes the key characteristics of slow DoS attacks. Section 3
describes the proposal of the attack generator. Section 4 describes the attack prevention
capabilities of web servers and the deployment of attacks in the experimental environment
against several types of the most frequently used web servers—Apache, Nginx, lighttpd,
and Microsoft IIS (Internet Information Services). The used attack models and their settings
are also described here. At the end of this section is a table with the results of the success
of attacks against individual web servers. In Section 5, we summarize the facts about
prevention and possible methods of attack mitigation. We further discuss and suggest
several methods of attack detection based on the observed attacks’ behavior. The last
section, Section 6, summarizes the main findings and results of this paper.
Protocol) and SMTP (Simple Mail Transfer Protocol) servers. However, the proposed
attack model was not able to perform a continuous DoS attack; therefore, the authors
discussed the possible future development of this attack, which could provide a technique
for managing the continuous DoS effect. In [10], another novel application-independent
attack called Slow Next was presented. The work in [11] introduced a threshold-based
detection technique for this attack. However, this method is effective for Slowloris and
Slow Read attacks but shows a high rate of false positives for Slow Next. In [12], the authors
created and tested a method of detecting Slowloris, Slowreq, Slow Next, and Slow Read
attacks based on the analysis of data on the TCP/IP transport layer. This technique
monitors the progress of incoming packets at certain intervals. The advantage is a faster
detection due to the absence of application data analysis and long-term communication
monitoring. This method proved to be effective for the above-mentioned attacks except
for Slow Next, which could not be clearly distinguished from legitimate traffic. In the
case of the utilization of SDN (software-defined networks), ref. [13] proposed a machine
learning framework for the detection of slow DoS attacks, and [14] deployed detection and
mitigation methods against distributed Slowloris and Slow POST attacks using an SDN
controller application. The study in [15] proposed a deep learning model for detecting
DoS attacks in various network environments. However, all three papers did not mention
the used generator for experimental testing, and thus it is hard for a reader to test his
network infrastructure.
One of the biggest current challenges in the field of slow DoS attacks is the attack called
SlowDrop, which was introduced in 2019 in [16]. This resource describes the attack model
and tests. However, the tests are performed in an ideal environment under conditions that
do not correspond to use in a real network. The source further discussed the possibilities
of detection but did not provide any specific functional design for detection and mitigation.
This attack can harm various protocols and server systems. Although this attack should be
considered as a serious problem, at the time of writing this paper, there are still no other
papers bringing new insights into the analysis, detection, and mitigation techniques of the
SlowDrop attack.
In addition to these attacks, there is also another group of slow DoS attacks, focusing
on the HTTP/2 protocol, which was adopted by the IETF (Internet Engineering Task Force)
in May 2015 [17]. Research presented in [18–21] showed the importance of developing
additional HTTP/2 security due to the discovered and tested security vulnerabilities of this
protocol. This research was followed by [22,23]. The authors presented a detailed security
analysis of HTTP/2 and a group of novel HTTP/2 slow DoS attack models including
experimental testing against web servers. The method of detection using the chi-square test
and machine learning using four different techniques was also mentioned in these papers.
In [24], a novel DoS attack called H2DoS was proposed. This attack exploits the
flow control mechanism of HTTP/2. The authors also suggested preventive changes in
the web server configuration. The study in [25] from 2019 presented a next-generation
application DDoS called Multiplexed Asymmetric DDoS Attack, which causes the victim’s
processor to overload by exploiting HTTP/2 multiplexing. HTTP/2 can also be exploited
for a man-in-the-middle attack via DNS cache poisoning and a spoofed TLS (Transport
Layer Security) certificate, as published in [26].
In today’s world, slow DoS attacks can infect a huge number of IoT (Internet of Things)
devices. These devices have very limited computing resources and security levels. Thanks
to this, they can be relatively easy to control and misused for an attack. Although these
devices cannot generate large data traffic, they have more than enough resources to generate
a slow DoS attack. The topic of IoT device security is thus another challenge in the field of
cyber security [1]. The work in [27] described the vulnerabilities in the IoT environment
using the MQTT (Message Queuing Telemetry Transport) protocol.
Many of these papers did not specify the generator used. However, a separate detailed
analysis of the available DoS attack generators was provided in [28]. The authors compared
and categorized a large number of available tools. Slow DoS generators were also described
Sensors 2021, 21, 5473 4 of 27
in an already mentioned survey [4]. All sources indicate that there is currently no tool
available for Slowcomm, Slow Next, SlowDrop, and HTTP/2 attacks. During our research,
we also did not find any generator for these attacks. The only slow DoS attacks addressed
in this paper for which we found an available generator are Slowloris, Slow POST, and Slow
Read. These attacks are contained in the slowhttptest tool, published by Sergey Shekyan
in [29]. The Slowloris attack, as the most mentioned attack in the slow DoS category, is also
available in various stress testing systems [30], the Pyloris tool [28], and the original Perl
Slowloris script [2].
1.2. Contribution
This paper is a review of [31] which brings a new perspective on well-known protocol
vulnerabilities and possible exploitation by adjusting the parameters of Slowloris, Slow
POST, and Slow Read attacks. We implemented an attack generator, which, in comparison
with other generators, brought the possibility to better adapt attacks according to the
server’s security and increase the volume of the attack thanks to the simulation of the
distributed form. In this paper, we expanded our previous work with more recent attacks.
Our goal was to focus on the current most dangerous attacks and to create effective attack
models to verify the vulnerability of network systems. We present an updated and more
comprehensive attack generator, which contains a total of 11 slow DoS attacks—Slowloris,
Slow POST, Slow Read, SlowDrop, Slow Next, Slowcomm, and a group of attacks focusing
on the HTTP/2 protocol—Slow Read, Slow POST, Slow Preface, Slow Headers, and Slow
Settings. The primary motivation for the creation of this generator was to provide a
comprehensive tool for our future research, as there are no tools available to perform newer
types of slow DoS attacks [28]. We especially considered the implementation of SlowDrop,
Slow Next, and Slowcomm attacks into a usable generator to be the main contribution of
our work. Our attack models can also be distributed and allow detailed parameter settings
to obtain maximum similarity to the slow data flows of legitimate users. As a result, attacks
have a higher chance of being undetected and causing maximum damage. This is the main
innovation of our generator compared to other tools. By using these models, we also tested
some of the most commonly used web servers. The obtained results contain novel data
regarding the resistance of web servers to these attacks, specifically SlowDrop, Slow Next,
and Slowcomm attacks. These results can be extremely valuable for developers and security
experts to improve the security level of web servers and the detection and prevention
techniques such as firewalls, intrusion detection systems (IDSs), and IPSs. Unambiguous
detection of these attacks is one of the biggest challenges in the field of cyber attacks [1].
In addition, this generator can be used as a tool for further research into identifying and
mitigating the impacts of these or other zero-day attacks.
Table 1 compares the selected papers from the selected slow DoS attacks’ point of
view. It is clear from the table that the slow DoS attack area is increasing, and to be able
to handle cyber attacks, proper security techniques and principles are needed. Further,
current generators often do not allow more detailed modification of the attack’s parameters.
The research was carried out in the following steps:
• Analysis of the current state of slow DoS attacks;
• Analysis and proposal of key attack properties;
• Implementation of slow DoS attack generator;
• Experimental testing of Internet services vulnerabilities;
• Evaluation of servers’ security level;
• Prevention and detection techniques discussion and proposal.
Sensors 2021, 21, 5473 5 of 27
server configuration. After the timer is exceeded, the server closes the TCP connection.
However, before this time expires, the attacker sends another part of the request. This
keep-alive packet usually contains only a few random characters. This packet resets the
timer, and then the attacker is silenced again. Then, the whole process is repeated [34].
In this way, an attacker attempts to establish as many TCP connections as possible and
exhaust all free server resources that might otherwise serve other legitimate users.
2.1.4. SlowDrop
The SlowDrop attack is one of the newest threats in the field of slow DoS attacks.
This attack develops the characteristics of its predecessors, making it more destructive and
less detectable. An attacker first requests the download of some content but randomly
drops parts of the response from the server, simulating the dropping of packets due to poor
connectivity. The server is forced to resend the dropped packets until the client’s request
is finished. The attack is thus characterized by a continuous data transfer between the
attacker and the victim, meaning the volume of communication over time does not contain
any significant peaks [16]. Due to this feature, it is practically impossible to distinguish
this attack from legitimate users based on traffic analysis. In practice, commonly used IPSs
and firewalls may disconnect the legitimate user by mistake in defense, which is another
possible welcome eventuality for the attacker. In addition to waste server TCP connections,
SlowDrop can exhaust the victim’s network and hardware resources when requesting large
amounts of data [16].
2.1.5. Slowcomm
The Slowcomm attack is an application-independent attack. Using an appropriately
selected invalid data content, this attack can harm various Internet services such as HTTP,
FTP, or SMTP servers [9]. The principle of the attack is essentially identical to Slowloris.
The attacker sends an incomplete request and the server waits for the rest of the data.
During this time, the attacker attempts to generate as many such requests as possible,
which leads to the occupation of all available server resources, and the server is unable
to accept further requests from legitimate users. After a delay, the attacker then sends
an additional piece of data, keeping the connections open. Compared to the original
Sensors 2021, 21, 5473 7 of 27
After receiving this frame, the server expects confirmation of the negotiated connection
parameters in the SETTINGS frame, as well as the valid request itself. However, the
attacker never sends this request at all. This forces the server to wait until the server
closes the connection itself [22]. This timeout is sufficient to cause the denial of service for
legitimate users.
Table 2. Summary of selected slow DoS attacks and their main pattern.
Attacks
Attack Main Pattern of the Attack
Targeting
Slowloris Missing terminating character \r\n\r\n
Slow POST
High value of Content-Length parameter
(R.U.D.Y.)
Slow SETTINGS
HTTP/2
The first part includes Slowloris, Slow POST, and Slow Read. Our generator allows
us to set the attack’s parameters more precisely than in competing tools and also launch
an attack in a distributed form. We believe that by more precisely adapting the attack to
the server configuration, it is possible to achieve a successful attack even with applied
preventive protection. Many detailed attack parameters can be specified in the generator.
General input parameters include the output network interface, destination IP address,
destination website URL, starting port, port increment step, total number of connections,
time between individual parts of data, delay between individual clients, and setting the
number and IP addresses of bots in case of a distributed attack. Other input parameters
depend on the selected type of attack. For example, it is possible to specify the initial HTTP
request’s content, the size of the randomly generated data, the size of the TCP window,
and the path to the requested file.
Sensors 2021, 21, 5473 10 of 27
A distributed attack simulation is currently only available for the following three
attacks: Slowloris, Slow POST, and Slow Read. In this scenario, the virtual bots will be
simulated on the local subnet to which the generator is connected. The subnet should have
enough address space. In our experimental environment, we used a subnet with a netmask
255.0.0.0, which provides an address space for approximately 16 million computers. Virtual
bots are simulated using the Address Resolution Protocol (ARP) data spoofing. In the first
step, the generator receives from the user a range of IP addresses on which to simulate the
bots. Then, the generator sends an Internet Control Message Protocol (ICMP) Echo request
to these addresses. This will cause other devices on the subnet to query the MAC addresses
for these IP addresses using ARP. Subsequently, the generator sends out modified ARP
messages, in which it spoofs its own MAC address. This will ensure that traffic routing on
bot IP addresses is actually directed to the generator. Using this technique, it is possible
to imitate a situation where an attack is coming to the web server from many different
Internet addresses. However, the limitation is that the bot subnet must not be hidden
behind Network Address Translation (NAT) in the test environment.
The next part of the generator includes HTTP/2 attacks—Slow POST, Slow Read, Slow
Headers, Slow Preface, and Slow Settings attacks. It accepts the following input parameters:
victim’s IP address and port, attack type, and the number of connections. The attack model
also contains a component to verify the availability of the target server.
The application-independent Slowcomm and Slow Next attacks are implemented in
the next generator part. The input parameters are the IP address and port of the victim,
the type of attack, and the number of connections, and, optionally, the content of data sent
by the attacker, two types of timeouts (to make the attack more effective depending on the
server configuration), and the number of processor threads. The ability to set any port and
data payload allows the use of attacks to exploit various protocols.
The last part of the generator is focused on the SlowDrop attack. Depending on the
needs of the scenario, the attack can be modified with input parameters: the number
of threads generating requests, the time interval between threads to spread the attack,
the interval for sending a new request, and the incoming packet drop ratio. Optionally, it
is possible to modify the content of the HTTP request due to the higher server load. It is
recommended to modify the user-agent for hiding the Python client, cache-control for non-
caching, and accept-encoding to increase fragmentation, and to set connection: keep-alive to
prolong the TCP connection (if the server supports persistent connections). The first step to
launch a SlowDrop attack is an HTTP GET request for a larger amount of data. Subsequent
answers need to be dropped with some degree of randomness. The native Linux iptables
firewall was chosen for this purpose. The iptables program contains the ipt_random
and ipt_statistic modules used primarily for the load balancing function. However, this
function can be used to determine the percentage of forwarded or dropped packets, which
is very suitable for SlowDrop attacks. On the contrary, the authors of the attack in [16] for
implementation chose the NFQUEUE tool and cited [37] dealing with iptables acceleration
using NFQUEUE with GPU parallelization. According to this paper, the decision speed in
parallel processes of the network rules is up to 43 times higher than on a regular computer
with iptables. We used the python-nfqueue library to implement this solution for our
generator. However, the resulting solution was not as efficient and fast as using iptables
directly in the Linux kernel. The NFQUEUE queue was overflowing, and more packets
were inadvertently dropped than required. Our generator does not assume parallelization
on the GPU; therefore, we decided to use iptables for this purpose. The main advantage is
that iptables drop packets at lower layers and are not forwarded to the NFQUEUE queue
through the application layer. Therefore, the application daemon is no longer burdened
by these packets. This feature thus better captures the slow DoS attacks, attempting to
minimize the load on the attacker’s machine.
Sensors 2021, 21, 5473 11 of 27
Tools Comparison
To evaluate the proposed generator in terms of the variability of individual parameters,
we selected one of the most used tools for Slowloris, Slow READ, and Slow POST attacks.
We compared the proposed generator with the slowhttptest [38], Slowloris [39], PyLoris [40],
and R.U.D.Y. [41] tools.
Table 3 compares the proposed generator and the slowhttptest, Slowloris, and PyLoris
tools from the editable parameters’ point of view. The table is divided into two main parts:
the first part is comparing attack-specific parameters, and the second part concerns general
parameters. If the tool allows editing of a parameter, the 3symbol is used (also the preset
values are shown); in the other case, the 7 symbol is used. Due to a fully editable Slowloris
header, it is possible to generate specific values. All preset Slowloris header parameters are
shown in Listing 1. Table 4 compares the proposed generator with the slowhttptest tool
that is able to generate the Slow READ attack.
Table 3. Comparison of the proposed generator from the Slowloris attack point of view.
Bots Simulation
Keep Alive Data
Content-Length
Starting Port
Server URL
User-Agent
Target IP
Port Step
Tool
Method
Proposed 3 ARP
3 3 42 3 3 GET 7 3 3 3 500 3 10 ms 32s 3 5000 31 3 3
generator X-a: b
slowhttptest 7 3 4096 7 7 3 GET 3 50 3 7 3 50 3 10 s 7 7 7 3 7
Slowloris 7 7 7 7 7 7 3 7 3 1000 35s 7 3 80 7 3 7
PyLoris 7 7 7 7 7 7 3 7 3 3 7 3 7 3 7
Table 4. Comparison of the proposed generator from the Slow READ attack point of view.
Bots Simulation
Slow Read URL
Repeat Request
Window Size
Starting Port
Server URL
Tool
Port Step
Target IP
ARP
Proposed
3 10 B 3 /index.html 7 3 3 3 3 500 3 10 ms 32s 3 5000 31 3 3
generator
slowhttptest 35B 7 31s 3 3 7 3 50 3 10 s 7 7 7 3 7
Table 5 compares the proposed generator and the slowhttptest and R.U.D.Y. tools.
These tools also enable the generation of the Slow POST attack. The advantage of the
R.U.D.Y. tool is the implementation of Tor usage. Unlike other tools, our tool allows setting
the starting port and the step that is used when the port is changed. As in the Slowloris
attack, the proposed tool enables a fully editable Slow POST header. The preset Slow POST
header is shown in Listing 2.
The comparison showed that the proposed generator is the only one capable of the
bot simulation. Using this parameter, it is possible to multiply the impact of the generated
Sensors 2021, 21, 5473 12 of 27
attack. Moreover, the proposed generator provides a fully editable header used in the
attack, and a port step function. This function periodically changes a port within the attack.
Table 5. Comparison of the proposed generator from the Slow POST attack point of view.
Bots Simulation
Payload Size
Starting Port
Server URL
Target IP
Tool
Port step
Method
ARP
Tor
Proposed
3 3 1 GB 3 POST 7 3 3 3 500 3 10 ms 32s 3 5000 31 3 3
generator
slowhttptest 7 7 3 POST 7 3 7 3 50 3 10 s 7 7 7 3 7
R.U.D.Y. 7 3 1 Mb 3 POST 3 3 7 3 500 35s 7 7 7 3 7
Listing 2. Default parameters of slow POST header used by the proposed generator.
POST / t e x t f o r m . php HTTP/ 1 . 1
Host :
User −Agent : M o z i l l a / 4 . 0 ( compatible ; MSIE 7 . 0 ; Windows NT 5 . 1 ;
T r i d e n t / 4 . 0 ; . NET CLR 1 . 1 . 4 3 2 2 ; . NET NET CLR 2 . 0 . 5 0 3 1 3 ;
. NET CLR 3 . 0 . 4 5 0 6 . 2 1 5 2 ; . NET CLR 3 . 5 . 3 0 7 2 9 ; MSOffice 1 2 )
Internet
Router
In total, vulnerabilities were tested on five web servers—2x Apache2, Nginx, lighttpd,
and Microsoft IIS. We chose these web servers because they are among the most used on
the Internet. We primarily used the latest server versions at the time of the test. When
choosing Apache versions, we also considered usage statistics in [42] to make our results
relevant to as many users as possible.
Except for the lighttpd server, these servers already have DoS protection pre-installed.
Therefore, servers should be protected from various threats. In the case of slow DoS attack
resistance, the tolerance level of slow connections set by web server developers is crucial.
A significant percentage of web server administrators do not pay enough attention to
additional server configurations, prevention, and deployment of additional protection
systems [1]. Therefore, in these test scenarios, the web servers were left in the default
configurations, and their ability to resist the selected slow DoS attacks without significant
configuration changes was monitored. This is to reflect the common situation where server
administrators often do not pay extra attention to configuration modifications and leave the
server in an out-of-the-box configuration. Only pre-installed attack protection is enabled
on the servers. Details are described in the following subsections.
The tests were performed as follows. A legitimate client periodically sent a request
to the server to view a web page every second. Each request was initiated by a TCP
handshake within a new connection. In this way, the client verified the availability of the
server and whether a DoS condition occurred. Once an attacker launched an attack on a
server, the client monitored server response failures and delays.
The courses of the test scenarios are shown in graphs, where the X-axis represents the
time. Most tests are displayed at a scale of 30 seconds to make the server behavior and
connection changes clearly observable. There were no further major changes in the longer
time intervals. In some scenarios, the server responds to the attack with a longer delay. This
is based on the configured server timeouts. Therefore, some graphs display events at longer
intervals. The main effort is to make the changes and behavior of the server in the graphs
clearly visible. The left Y-axis represents the number of TCP connections, and the right
Y-axis represents the web server availability by the percentage of legitimate user processed
requests. The green curve represents established TCP connections, the orange curve
represents pending TCP connections, the red curve represents closed TCP connections, and
the blue curve represents the success rate of legitimate user requests.
Sensors 2021, 21, 5473 14 of 27
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 0
</IfModule >
4.1.1. Slowloris
The Slowloris attack was set as follows: generating 500 TCP connections, interval 2 sec-
onds between parts of the HTTP request, interval 10 milliseconds between individual TCP
connections. This setting should create enough traffic to congest the server. The data sent by
the implemented attack model are shown in Listing 4. The first packet contained the request
type, HTTP protocol version, and the parameters Host, User-Agent, and Content-Length.
The keep-alive packets contained the string X-a: b.
Listing 4. HTTP content of Slowloris attack model.
GET /?89018286261135 HTTP/ 1 . 1
Host : 1 0 . 0 . 0 . 2
User −Agent : M o z i l l a / 4 . 0 . . .
Content −Length : 42
X−a : b
X−a : b
...
Sensors 2021, 21, 5473 15 of 27
Immediately after connecting approximately 460 TCP connections, all server resources
were exhausted, and other TCP connections remained pending. Therefore, a DoS state
had occurred. A closing of several TCP connections had occurred around the 12th second
of the test, but the attacker reconnected all the impacted connections. Around the 22nd
second, the intervention of the DoS prevention module is visible. The server canceled the
initial TCP connections, which were open too long. At this point, the server was available
again, but within seconds, the generator re-established the lost connection and exhausted
all server resources again. The course of this attack is shown in Figure 3. In the case of a
distributed attack, the results were identical.
500 100%
Number of TCP connections [-]
300 60%
200 40%
100 20%
0 0%
0 5 10 15 20 25 30
Time [s]
name= z z z z z z z z z z z z v v v v v v v v v e e e e e e e j j j j j j j j c c c . . .
The results were similar to the Slowloris attack. After reaching the maximum service
capacity of the server, the attacker’s connections remained open, as the attacker sent the
data at a sufficient frequency. The DoS state was reached again. As the Slowloris attack,
the server began terminating the initial connections. These connections were re-established
by the attacker. The course of this attack is shown in Figure 4. The course of the distributed
attack was very similar, but the server attempted to close the connections continuously
after the 20th second of the test.
Sensors 2021, 21, 5473 16 of 27
500 100%
300 60%
200 40%
100 20%
0 0%
0 5 10 15 20 25 30
Time [s]
600 100%
Number of TCP connections [-]
0 0%
0 5 10 15 20 25 30
Time [s]
4.1.4. Slowcomm
The Slowcomm attack had almost identical results to the Slowloris attack, which was
expected due to the same principle of attack. Our Slowloris generator has a built-in function
for restoring closed connections, meaning it is practically not different from a Slowcomm
attack. The course of this attack is shown in Figure 6. The difference is that Slowloris
focuses only on the web service, while the Slowcomm attack generator was developed to
attack various application protocols. We intend to investigate the impact of this attack on
other services in future work.
Sensors 2021, 21, 5473 17 of 27
500 100%
300 60%
200 40%
100 20%
0 0%
0 5 10 15 20 25 30
Time [s]
800 100%
Number of TCP connections [-]
4.1.6. SlowDrop
The SlowDrop attack scenario was based on previous test scenarios and attempted
to open a 500 TCP connection and request an image download of approximately 500 kB
representing a usual web image. The drop ratio was set at 60%. This packet drop ratio
proved to be optimal, as the transmission of the entire image was extended to several tens
of seconds. This time is sufficient to reach the DoS condition and also not to terminate the
transfer by the server. The course of this attack is shown in Figure 8. The Apache server
could only handle approximately 380 connections. Then, the server exhausted all available
resources and did not respond to new connection requests from the legitimate user. This
condition lasted continuously until the end of the attack.
Sensors 2021, 21, 5473 18 of 27
400 100%
600 100%
Number of TCP connections [-]
0 0%
0 20 40 60 80 100 120
Time [s]
4.2. Nginx
Another tested server was Nginx 1.14.0. This server already has a pre-installed
module for slowing down DoS attacks, but other modules that help distribute the load only
appear in the paid version of the server. In the free version used in this test, the security
module contains parameters similar to the Apache server, e.g., client_header_timeout
and client_body_timeout, in order to terminate the slow HTTP data streams. The default
value for both parameters is 5 seconds. Another crucial parameter is limit_req_zone,
which limits the number of HTTP requests per client. The default value is set to 30 requests
per minute or one request per 2 seconds. The last important parameter is limit_conn_zone,
which limits the number of TCP connections from one IP address. This protection should
protect the web server from slow DoS attacks coming from one station. However, this
protection should be ineffective for distributed attacks.
were established, and then all the server resources were exhausted. As it can be seen in
Figure 10, the server attempted to terminate some connections. However, the generator
restored these connections. The DoS state lasted throughout the attack. Distributed attacks
had very similar results.
2500 100%
Number of TCP connections [-]
1500 60%
1000 40%
500 20%
0 0%
0 5 10 15 20 25 30
Time [s]
4.2.2. Slowcomm
Nginx was much more resilient than Apache due to its architecture. Based on the
results of the previous attack, this scenario was set to establish 2500 connections and
then send data every 2 seconds. However, when approximately 800 connections were
established, the server’s security mechanisms began terminating the connections, and the
attack was mitigated. Paradoxically, this led to a server overload and communication
interruption with the legitimate user. The course of the attack is shown in Figure 11.
2000 100%
Successful HTTP requests [%]
Number of TCP connections [-]
80%
1500
60%
1000
40%
500
20%
0 0%
0 5 10 15 20 25 30
Time [s]
4.2.3. SlowDrop
The SlowDrop attack failed to cause a service failure on the Nginx server. The gen-
erator was able to produce and maintain approximately 1400 TCP connections, but the
server was able to process all of the attacker’s connections. The legitimate client was served
without a noticeable delay. The course of the attack is shown in Figure 12.
Sensors 2021, 21, 5473 20 of 27
1600 100%
4.3. Lighttpd
The next tested web server was lighttpd 1.4.55. This lightweight web server does not
contain any advanced settings and elements for protection against slow DoS attacks.
4.3.1. Slowloris
The lighttpd server is optimized to handle a large number of requests at once. The
Slowloris attack scenario used the same attack generator settings as the Apache server
attack scenario, but the total number of TCP connections was increased to 2000. This value
was chosen based on several previous attempts to be able to cause a DoS condition. In
this test scenario, lighttpd could handle approximately 1500 connections during an attack.
Once the server reached this maximum, a DoS effect occurred and lasted throughout the
test. The distributed Slowloris scenario had the same results. The course of the attack is
shown in Figure 13.
1600 100%
Number of TCP connections [-]
1400
80%
1200
1000 60%
800
600 40%
400
20%
200
0 0%
0 5 10 15 20 25 30
Time [s]
2500 100%
Number of TCP connections [-]
1500 60%
1000 40%
500 20%
0 0%
0 10 20 30 40
Time [s]
1600 100%
Successful HTTP requests [%]
Number of TCP connections [-]
1400
80%
1200
1000 60%
800
600 40%
400
20%
200
0 0%
0 10 20 30 40
Time [s]
700 100%
4.3.5. SlowDrop
The SlowDrop scenario had the same settings as the Apache attack scenario. The at-
tacker opened 500 connections and requested an image of 500 kB, and a drop rate of
60%. The server handled approximately 400 concurrent connections. Other connections,
including the legitimate user, were denied. The course of the attack is shown in Figure 17.
500 100%
400 80%
300 60%
200 40%
100 20%
0 0%
0 5 10 15 20 25 30
Time [s]
4.4.1. SlowDrop
After several attempts, our virtual machine with an attack generator managed to
produce a maximum of 1400 connections, which was not enough to cause the DoS effect.
Sensors 2021, 21, 5473 23 of 27
IIS was able to handle all connections. Possible optimization of the SlowDrop attack could
produce better results. The course of the attack is visualized in Figure 18.
1600 100%
Attack Apache 2.4.17 Apache 2.4.29 Nginx 1.14.0 Lighttpd 1.4.55 MS IIS 10.0
Slowloris 3 3 7 3 7
Slow POST 3 3 7 3 7
Slow Read 3 3 3 3 7
SlowDrop 3 3 7 3 7
Slowcomm 3 3 3 3 7
Slow Next 3 3 7 3 7
Slow POST (HTTP/2) 3 7 7 - -
Slow Read (HTTP/2) 3 7 7 - -
Slow Settings (HTTP/2) 3 7 7 - -
Slow Headers (HTTP/2) 3 7 7 - -
Slow Preface (HTTP/2) 3 3 7 - -
Sensors 2021, 21, 5473 24 of 27
There is currently no reliable detection technique for the SlowDrop attack. The attack
mimics the behavior of a legitimate user too accurately. Theoretically, it could be possible
to use neural networks to detect attacks as an anomaly. An attacker is characterized by
data retransmission. Setting an acceptable retransmission rate based on the amount of data
could help to prevent this attack.
Attacks on the HTTP/2 protocol can be detected by the occurrence of signatures
described in Section 2.2. Some of these attacks involve sending non-standard HTTP/2
frame parameters, meaning the detection should be accurate. For attacks that simulate
a legitimate slow user, such as Slow Read, the detection mechanism should specify a
tolerance of the data rate and the number of connections for accurate attack detection,
similar to Slow Read for HTTP/1.1.
6. Conclusions
The test scenarios proved the functionality of the created slow DoS attack generator,
in which the DoS state was successfully invoked on most web servers. However, Mi-
crosoft IIS proved to be the most resistant to these attacks. It was able to overcome all
attacks and maintain the quality of service for users in all tested scenarios. Nginx 1.14.0
showed resistance to most attacks. Thanks to its architecture, it passed all attacks without
denial of service, except for the Slow Read and Slowcomm attacks. A surprising result,
however, is the vulnerability of the Apache 2.4.29 web server, which is still vulnerable
to Slowloris, Slow POST, Slow Read, Slowcomm, and Slow Next, although these attacks
have long been known and described in detail. There is some noticeable progress in the
configuration of the web server and its modules, but the tolerance to slow traffic is still,
by default, high enough to perform a DoS attack. However, despite the possible stricter
server settings, the created attack generators can adapt attacks and invoke the DoS state.
The worst results were achieved by lighttpd 1.4.55 and Apache 2.4.17. Due to the lack of
insufficient security against slow DoS, these servers were vulnerable to all tested attacks.
In the case of attacks on the HTTP/2 protocol, our generator confirms that the vulnera-
bility of the Apache2 server has already been fixed in version 2.4.29, except the Slow Preface
attack. This attack was successful on the Apache server in both tested versions. Other
HTTP/2 attacks were successful only against the older version 2.4.17. We will verify the
vulnerabilities of Microsoft IIS and lighttpd in future research once support for this protocol
is fully implemented.
In conclusion, this paper confirms the importance of the security development and
configuration adjustment of web servers to mitigate the mentioned attacks. We also strongly
recommend the usage of additional protection, e.g., an intrusion prevention system. The
contribution of our work is the creation of a universal generator of slow DoS attacks, which
can be easily extended to new types of attacks. We have included the latest types of attacks
in the generator, for which no tool is yet available. This generator allows testing web
server vulnerabilities and the effectiveness of attack detection/mitigation implementations.
Experimental testing of the generator showed the weaknesses of the current most used
web servers. In this paper, we also described our proposal of attack prevention and
detection mechanisms.
Our future goal is to complete the development of the generator, fix all bugs, and
then publish it. In future work, we will also focus on testing the vulnerabilities of newer
web server versions including the HTTP/2 implementation of lighttpd and the encrypted
variant in Microsoft IIS. Thanks to the easy addition of other services to the experimental
environment, we intend to test the vulnerabilities of other application services against
these attacks. Our future work will also focus on the design, implementation, and testing
of accurate detection and mitigation mechanisms.
Author Contributions: Conceptualization, M.S.; data curation, M.S., K.K. and E.H.; formal analysis,
M.S. and E.H.; funding acquisition, R.F. and J.M.; investigation, M.S., K.K. and E.H.; methodology,
M.S.; project administration, R.F. and J.M.; resources, M.S.; software, M.S.; supervision, M.S. and R.F.;
validation, M.S.; visualization, M.S., K.K. and E.H.; writing—original draft, M.S.; writing—review
Sensors 2021, 21, 5473 26 of 27
and editing, M.S., R.F., K.K. and E.H. All authors have read and agreed to the published version of
the manuscript.
Funding: This research was funded by the Technology Agency of the Czech Republic, grant num-
ber FW01010474.
Institutional Review Board Statement: Not applicable.
Informed Consent Statement: Not applicable.
Data Availability Statement: The data presented in this study are available on request from the
corresponding author. The license does not allow us to fully publish the source code.
Conflicts of Interest: The authors declare no conflict of interest.
References
1. Mahjabin, T.; Xiao, Y.; Sun, G.; Jiang, W. A survey of distributed denial-of-service attack, prevention, and mitigation techniques.
Int. J. Distrib. Sens. Netw. 2017, 13, 1550147717741463. [CrossRef]
2. Cambiaso, E.; Papaleo, G.; Aiello, M. Taxonomy of Slow DoS Attacks to Web Applications. In Recent Trends in Computer Networks
and Distributed Systems Security; Springer: Berlin/Heidelberg, Germany, 2012; pp. 195–204._20. [CrossRef]
3. Cambiaso, E.; Papaleo, G.; Chiola, G.; Aiello, M. Slow DoS attacks. Int. J. Trust Manag. Comput. Commun. 2013, 1, 300–319.
[CrossRef]
4. Tripathi, N.; Hubballi, N. Application Layer Denial-of-Service Attacks and Defense Mechanisms: A Survey. ACM Comput. Surv.
2021, 54, 1–33. [CrossRef]
5. Shekyan, S. Are You Ready for Slow Reading? Qualis 2012. Available online: https://blog.qualys.com/vulnerabilities-threat-
research/2012/01/05/slow-read (accessed on 12 August 2021).
6. Cline, K.R.; Kustarz, C.; Hand, C.R.; Huston, L.B. Method and Protection System for Mitigating Slow HTTP Attacks Using Rate
and Time Monitoring. U.S. Patent 8,856,913, 7 October 2014.
7. Shekyan, S. How to Protect Against Slow HTTP Attacks? Qualys. 2011. Available online: https://blog.qualys.com/vulnerabilities-
threat-research/2011/11/02/how-to-protect-against-slow-http-attacks (accessed on 12 August 2021).
8. Sikora, M.; Gerlich, T.; Malina, L. On Detection and Mitigation of Slow Rate Denial of Service Attacks. In Proceedings of the
2019 11th International Congress on Ultra Modern Telecommunications and Control Systems and Workshops (ICUMT), Dublin,
Ireland, 28–30 October 2019; pp. 1–5. [CrossRef]
9. Cambiaso, E.; Papaleo, G.; Aiello, M. Slowcomm: Design, development and performance evaluation of a new slow DoS attack. J.
Inf. Secur. Appl. 2017, 35, 23–31. [CrossRef]
10. Cambiaso, E.; Papaleo, G.; Aiello, M.; Chiola, G. Designing and Modeling the Slow Next DoS Attack. In International Joint
Conference; Springer: Cham, Switzerland, 2015; doi:10.1007/978-3-319-19713-5_22. [CrossRef]
11. Cambiaso, E.; Aiello, M.; Mongelli, M.; Vaccari, I. Detection and Classification of Slow DoS Attacks Targeting Network Servers.
In Proceedings of the 15th International Conference on Availability, Reliability and Security (ARES’20); Association for Computing
Machinery: New York, NY, USA, 2020; doi:10.1145/3407023.3409198. [CrossRef]
12. Aiello, M.; Cambiaso, E.; Mongelli, M.; Papaleo, G. An On-Line Intrusion Detection Approach to Identify Low-Rate DoS Attacks.
In Proceedings of the 2014 International Carnahan Conference on Security Technology (ICCST), Rome, Italy, 13–16 October 2014;
Volume 2014; pp. 1–6. [CrossRef]
13. Phan, T.V.; Gias, T.M.R.; Islam, S.T.; Huong, T.T.; Thanh, N.H.; Bauschert, T. Q-MIND: Defeating Stealthy DoS Attacks in SDN
with a Machine-Learning Based Defense Framework. In Proceedings of the 2019 IEEE Global Communications Conference
(GLOBECOM), Waikoloa, HI, USA, 9–13 December 2019; pp. 1–6. [CrossRef]
14. Hong, K.; Kim, Y.; Choi, H.; Park, J. SDN-Assisted Slow HTTP DDoS Attack Defense Method. IEEE Commun. Lett. 2017,
22, 688–691. [CrossRef]
15. Punitha, V.; Mala, C.; Rajagopalan, N. A novel deep learning model for detection of denial of service attacks in HTTP traffic over
internet. Int. J. Ad Hoc Ubiquitous Comput. 2020, 33, 240–256. [CrossRef]
16. Cambiaso, E.; Chiola, G.; Aiello, M. Introducing the SlowDrop Attack. Comput. Netw. 2019,150, 234–249. [CrossRef]
17. Belshe, M.; Peon, R.; Thomson, M. Hypertext Transfer Protocol Version 2 (HTTP/2). RFC Ed. 2015, 7540, 1–96. [CrossRef]
18. Adi, E.; Baig, Z.; Lam, C.; Hingston, P. Low-Rate Denial-of-Service Attacks against HTTP/2 Services. In Proceedings of the 2015
5th International Conference on IT Convergence and Security (ICITCS), Kuala Lumpur, Malaysia, 24–27 August 2015; pp. 1–5.
[CrossRef]
19. Adi, E.; Baig, Z.; Hingston, P.; Lam, C. Distributed denial-of-service attacks against HTTP/2 services. Clust. Comput. 2016, 19,
79–86. [CrossRef]
20. HTTP/2: In-depth Analysis of the Top Four Flaws of the Next Generation Web Protocol. IMPERVA: Hacker Intelligent Initiative.
2016. Available online: https://www.imperva.com/docs/Imperva_HII_HTTP2.pdf (accessed on 12 August 2021).
21. Winkel, S. Network Forensics and HTTP/2. SANS Institute: InfoSec Reading Room. 2015. Available online: https://www.sans.
org/white-papers/36647/ (accessed on 12 August 2021).
Sensors 2021, 21, 5473 27 of 27
22. Tripathi, N.; Hubballi, N. Slow Rate Denial of Service Attacks Against HTTP/2 and Detection. Comput. Secur. 2017, 72, 255–272.
[CrossRef]
23. Adi, E.; Baig, Z.; Hingston, P. Stealthy Denial of Service (DoS) Attack Modelling and Detection for HTTP/2 Services. J. Netw.
Comput. Appl. 2017, 91, 1–13. [CrossRef]
24. Ling, X.; Wu, C.; Ji, S.; Han, M., H2 DoS: An Application-Layer DoS Attack Towards HTTP/2 Protocol. In Security and Privacy in
Communication Networks; Springer International Publishing: Cham, Switzerland, 2018; pp. 550–570._28. [CrossRef]
25. Praseed, A.; Thilagam, P. Multiplexed Asymmetric Attacks: Next-Generation DDoS on HTTP/2 Servers. IEEE Trans. Inf. Forensics
Secur. 2019, 15, 1790–1800. [CrossRef]
26. Patni, P.; Iyer, K.; Sarode, R.; Mali, A.; Nimkar, A. Man-in-the-middle attack in HTTP/2. In Proceedings of the 2017 International
Conference on Intelligent Computing and Control (I2C2), Coimbatore, India, 23–24 June 2017; pp. 1–6. [CrossRef]
27. Vaccari, I.; Aiello, M.; Cambiaso, E. SlowITe, a Novel Denial of Service Attack Affecting MQTT. Sensors 2020, 20, 2932. [CrossRef]
[PubMed]
28. Behal, S.; Saluja, K. Characterization and Comparison of DDoS Attack Tools and Traffic Generators—A Review. Int. J. Netw.
Secur. 2017, 19, 383–393. [CrossRef]
29. Shekyan, S. Slowhttptest. 2016. Available online: https://github.com/shekyan/slowhttptest (accessed on 12 August 2020).
30. Cika, P.; Clupek, V. Stress Tester and Network Emulator in Apache JMeter. In Proceedings of the 2019 Photonics & Electromag-
netics Research Symposium–Spring (PIERS-Spring), Rome, Italy, 17–20 June 2019; pp. 3722–3726. [CrossRef]
31. Sikora, M.; Krivulcik, A.; Fujdiak, R.; Blazek, P. Design of Advanced Slow Denial of Service Attack Generator. In Proceedings of
the 2020 12th International Congress on Ultra Modern Telecommunications and Control Systems and Workshops (ICUMT), Brno,
Czech Republic, 5–7 October 2020; pp. 99–104. [CrossRef]
32. Schuba, C.L.; Krsul, I.V.; Kuhn, M.G.; Spafford, E.H.; Sundaram, A.; Zamboni, D. Analysis of a denial of service attack on TCP.
In Proceedings of the 1997 IEEE Symposium on Security and Privacy (Cat. No.97CB36097), Oakland, CA, USA, 4–7 May 1997;
pp. 208–223.
33. Suroto, S. A Review of Defense Against Slow HTTP Attack. JOIV Int. J. Inform. Vis. 2017, 1, 127–134. [CrossRef]
34. Dantas, Y.G.; Nigam, V.; Fonseca, I.E. A Selective Defense for Application Layer DDoS Attacks. In Proceedings of the 2014 IEEE
Joint Intelligence and Security Informatics Conference, The Hague, The Netherlands, 24–26 September 2014; pp. 75–82.
35. Park, J.; Iwai, K.; Tanaka, H.; Kurokawa, T. Analysis of Slow Read DoS attack. In Proceedings of the 2014 International
Symposium on Information Theory and Its Applications, Victoria, BC, Canada, 26–29 October 2014; pp. 60–64.
36. Pollard, B. HTTP/2 in Action; Manning: Shelter Island, NY, USA, 2019.
37. Karimi, K.; Ahmadi, A.; Ahmadi, M.; Bahrambeigy, B. Acceleration of IPTABLES Linux Packet Filtering Using GPGPU. In
Proceedings of the 2013 Symposium on Computer Science and Software Engineering (CSSE), Tehra, Iran, 25 December 2013;
doi:10.13140/2.1.3047.7763. [CrossRef]
38. Shekyan, S. SlowHTTPTest Package Description. Available online: https://tools.kali.org/stress-testing/slowhttptest (accessed
on 20 July 2021).
39. Geniar, M. Slowloris. 2015. Available online: https://github.com/mattiasgeniar/slowloris (accessed on 22 July 2021).
40. Gilbert, C. PyLoris. 2009. Available online: https://motoma.io/pyloris/ (accessed on 22 July 2021).
41. Chaddha, S. Rudyjs. 2018. Available online: https://github.com/sahilchaddha/rudyjs (accessed on 22 July 2021).
42. Usage Statistics of Apache Version 2.4. W3Techs. Available online: https://w3techs.com/technologies/details/ws-apache/2.4
(accessed on 31 March 2021).
43. Kneschke, J. Lighttpd 1.4.56. 2020. Available online: https://www.lighttpd.net/2020/11/29/1.4.56/ (accessed on 30 March
2021).
44. Faria, V.S.; Gonçalves, J.A.; Silva, C.A.M.; Vieira, G.B.; Mascarenhas, D.M. SDToW: A Slowloris Detecting Tool for WMNs.
Information 2020, 11, 544. [CrossRef]
45. Amin Azad, B.; Starov, O.; Laperdrix, P.; Nikiforakis, N. Web Runner 2049: Evaluating Third-Party Anti-bot Services. In Detection
of Intrusions and Malware, and Vulnerability Assessment; Maurice, C., Bilge, L., Stringhini, G., Neves, N., Eds.; Springer International
Publishing: Cham, Switzerland, 2020; pp. 135–159._7. [CrossRef]