Вы находитесь на странице: 1из 6

ICTC 2014 1569998443

Mitigating Denial of Service (DoS) Attacks in OpenFlow Networks

Yustus Eko Oktian, SangGon Lee*, HoonJae Lee


Department of Ubiquitous IT
Dongseo University
Busan, Korea
yustus.oktian@gmail.com, nok60@dongseo.ac.kr, hjlee@dongseo.ac.kr

Abstract—Software Defined Networking (SDN) is a promising another user in the network can’t receive services from the
step towards the future network. But, it still has some issue network services (e.g. servers), making network peripheral
regarding the security. One of the security issues is the (e.g. switch, router) overloads, or at least decreasing the
augmented impact of Denial of Service (DoS) attacks. In this legitimate throughput of the network. It is not a new type of
paper, we create an application on the top of Beacon controller to attack in response to SDN implementation. It already exists in
mitigate the DoS attacks in the OpenFlow networks. The attacks the traditional network. There are several examples of DoS
include IP/MAC Spoofing and Bulky/Garbage Message. We attacks that attack famous network services like Twitter [5] and
launch the DoS attacks towards the network and analyze the Facebook [6]. For more recent examples, the DoS attack is
performance of the application. All of these attacks, Beacon, and
more sophisticated in the way of launching the attacks [7], [8].
OpenFlow are implemented in the network simulation
environment Mininet. At the end of this paper, we also discuss
The motivation behind these attacks can be varied. It can be
about another strategy and supplementary method to mitigate economical or political reasons. These examples remind us
the DoS attacks. how important the security of our networks is.
The implementation of OpenFlow [3] as a leading SDN
Keywords—DoS; Application; OpenFlow; Attacks; protocol can help mitigate DoS attacks. We can utilize the
advantages of separating control plane and data plane to
I. INTRODUCTION counter DoS issues that mentioned before. This separation
Today’s networks have become more complicated and enables us to create dynamic networks, which can react to
difficult to manage because of the complexity of designs and some of network events, including during the DoS attacks.
features. The Yankee Group [1] has already done some In this paper, we create a security application on the top of
measurements and research and they find out that 62% of the the Beacon [4] controller. We detect and react to the DoS
network downtime in multi-vendor networks is caused by attacks dynamically and calculate its performance. By doing
human-error, and 80% of IT budgets were mostly spent in this, we want to know whether this is a good way to mitigate
maintenance and operation. Beside of that, software and DoS attacks or not.
hardware that support layer 7 networking have grown into
sophisticated schemes, like the network virtualization and We elaborate this paper in this order, section two will
cloud computing, meanwhile the network environment that explain about related works. Section three will explain the
supports them remains the same, doesn’t evolve yet. design of our application structure. We explain about the DoS
attacks and mitigation process in section four. Then we explain
SDN is one answer of the revolutionary networking for our implementation in section five and evaluate in section six.
today’s complex networks. The concept of separating control Finally, we conclude our application and open discussion in
plane from the data plane makes the switch/router interface to section seven.
become dumb, leave all the networking flow and scheme to be
controlled by new instance called ‘controller’. With this
II. RELATED WORKS
concept in mind, it brings hope to create new networks that are
robust, resilience, and scalable, yet still simple in management There are some security related projects or analysis has
and can react in networks dynamic nature. Unfortunately, the been made since OpenFlow released. These also include about
new concept of SDN brings some weakness in security the prevention against the DoS attacks. In common, we can
perspective. They are lack of security involvement at the divide the mitigation process into two kinds: hardware or
design. [2] already mentioned that implementation of SDN still software solution. The example of hardware solution is [9]. It
has seven main treat vectors that can be used by attacker to creates an extension called data plane caches that have an
attack the network. One of the vector treats results in objective to mitigate the DoS attacks towards secure channel
augmented impact of DoS attacks which may enable the communication between controller and switches. [10] also
attacker to disrupt the network very easily. creates an extension in data plane to remove the malicious flow
from being sent to the controller. These two projects are
The purpose of (DoS) attacks are breaking down the implemented in hardware and need modification of the switch.
network by sending aggressive traffic to the network, making
*Corresponding Author

978-1-4799-6786-5/14/$31.00 ©2014 IEEE 325 ICTC 2014

1
Our application is implemented in software and there are rate transmission) that we can detect as an opening of the
examples of other software solution. FortNox [11] is a project attempt of DoS attacks. Detecting higher data rate DoS attack
that enhances the NOX controller to have a security is easier than lower rate attacks. High rate attacks usually use
enforcement kernel that govern the flow rules from the bulky packet generator that has an intention of binging down
dynamic applications, so it would not overlap each other and the nodes or make the network throughput slower. Meanwhile,
make sure that security related applications will get a high flow rate attacks use the useless, unintentionally, garbage
priority and not be circumvented by the adversarial packets to the network. The intention is to fill up the switch’s
applications. FRESCO [12] is a security application framework flow table and make the switch can’t provide flow entries for
that runs on top of FortNox environment. We can also the legitimate packets.
implement our DoS-mitigation application in FRESCO
framework to get the benefit of the framework. Sometimes, the DoS attacks also include combination of
other attacks such as IP or MAC Spoofing. By knowing the
[13] has a project about DoS attacks that takes advantage of potential target of the attacks and the method that usually taken
vulnerability that is found in Floodlight controller. This by the attacker, we design the application to have 6 features:
vulnerability enables the attackers to disable switch connection binding, location tracker, packets filtering, port and flow
from the controller by using DoS attacks towards secure statistic queries, and port status. Figure 1 depicts our design of
channel and modify the switch DPID parameter. [14] thesis application at Beacon controller. The name of the application is
project deploys a prototype that cooperatively detects and Dossy and it resides in the controller along with other
mitigates the DoS attacks that are focused on Crossfire attacks. application like learning switch, device manager, and topology
The action of the mitigation will be flow routing, rate limiting, applications. In our application, there will be three main
and ranking. These two projects are specific to vulnerability processes: packet in, switch statistics, and port status. The
and attack. Meanwhile, our application is more likely to application collects these three OpenFlow messages to provide
mitigate common DoS attacks without the need of some the mitigation towards the DoS. Each process will specifically
specific vulnerability. detect and react to the messages independently and
cooperatively provide solution based on six features stated
There is also solution about mitigating DDoS attacks using previously.
NOX controller [15]. This solution is based on flow-based
analysis and use Self Organizing Maps (SOM). Flow table is
queried and analyzed periodically to detect the DDoS attacks. A. Bindings
The difference between our application and this is we use both When the network has been set up and run, there will be a
flow-based analysis and packet-in analysis to provide better lot of nodes that connect and communicate into our networks.
detection, so we can also detect the Internet Protocol (IP) All of these nodes can be the source of the threats that happen
Spoofing attacks and MAC Spoofing attacks. We also provide in our network, so knowing the identity of each node is
the mitigation process towards the DoS attacks which is not important. This will lead into the leak of the identity of each
provided in [15]. packet that propagate into the network, from which node this
packet come through, what is the destination node, what is the
kind of transport service that is used, etc. This information is
essentials for security purposes.

TABLE I. BINDING TABLE

Name Type Usage


MACIP Hashtable MAC and IP Bindings
MACSwitch Hashtable MAC and Switch ID Bindings
MACPort Hashtable MAC and Port ID Bindings
MACList ConcurrentList List of currently connected MAC
Address
PortList HashTable List of active ports in switches
a.
Binding Table are components created and used in Beacon

We design our application to keep track of the nodes inside


the network. At network startup, the controller collects MAC,
Fig. 1. The design of DoS-mitigation application in Beacon controller.
IP information of all hosts and binds them together into
MACIP hashtable. The collection process is done by inspecting
source MAC/IP address from Packet In messages that sent to
III. DESIGN the controller. Then, the controller will compare with MACList
Mitigating the DoS attacks is not an easy matter. Usually and save them in the hashtable if they are considered to be new
connected device. The controller will replace information about
the attacks are hard to detect because they behave like a normal
packet that flow into our networks. But, it doesn’t mean that it old device with the new device if there is case when the old
is inevitable. There are still some events (e.g. sudden high data host leaves the network and a new host joins. With this, the list

326

2
of connected host will be updated. Table 1 shows list of tables switch in the networks periodically to monitor byte rate and
that is used to store network information. packet rate of ports in switches. If their value exceeds the
threshold and there is congestion in the network, the controller
B. Location Tracking will look up for switch’s flow table to find out if there is high
Knowing the location of hosts can ease the process of rate flow entry inside the table. The range of threshold must be
blocking the detected attacks. The application’s design enables set based on the characteristic of the network. So the value may
the controller to know who cause the attacks, where to find the be varied. This method can also be used as a step for load
attacker, and do the mitigation as near as possible to the balancing process.
attacker source. To provide this mechanism, the application
records and saves the position of each connected host in the E. Flow Statistic Queries
network In order to safely insert security flow into the switch, the
controller needs to know existing flow entries that reside at
each switch. This step is necessary to make sure that there will
not be overlapping or conflict flow rules in the switch. To do
this, the controller sends Flow Statistic Request message
periodically and the switch will reply with their state of flow
table. Then the controller looks up for malicious flow entries,
deletes them, and inserts counter flow entries to block the
attacks or applies Quality of Service (QoS) over it. This step is
complementary step when use port statistic queries, and
substitute of port statistic queries.

Fig. 2. Location Tracking: MAC, IP, Switch, Port Bindings F. Port Status
Upon connection starts up between controller and switch,
The information that is saved in the controller is MAC/IP the controller will query for port status of the switch to find out
binding, as well as, switch ID and physical port that each host which port is used and which link is up/down. The controller
connected to. An example of location tracking is depicted in will save the list of active ports for every switch in PortList
Figure 2. The controller collects information of switch DPID hashtable. This information is used to help the application to
and port ID during inspection of Packet In messages. For the detect MAC spoofing attack and build the location tracking
first time, this information collected at network startup. Then it service by assigning only active port into the MACPort
will be automatically updated if there is a change in the hashtable. After that, the controller keeps monitoring the port
network. This location tracking feature will help the controller status of the switch and detects if there is change of port states
to block the attack as close as possible to the attacker by (e.g. port is up/down, existing user disconnect from the
inserting flow rules near to the switch where the attacker network, new user connect to the network, switch
connected to. connect/disconnection). The value of those two hashtables will
be updated according to the changes.
C. Packets Filtering
In OpenFlow, packets that do not match any of the flow IV. ATTACKS
entries that reside in the switch will be sent to the controller for The DoS attacks have evolved and become more
further analysis using Packet In messages. Then, controller can sophisticated and hard to detect because they combine with
use this message to generate Flow Mod messages to the switch other attack like, MAC/IP spoofing. This section explains
so that the subsequent packets will not be sent to controller. We about the attacks used in this paper and the mechanism to block
design our application to do packets filtering process during such attacks.
Packet In message. Controller inspects over source MAC/IP to
detect MAC/IP Spoofing attack. This is done by comparing the A. MAC Spoofing
MAC and IP that are collected from Packet In with the MACIP
binding table that collected earlier in the network startup. The This attack has a focus on impersonating other host so that
controller generates Flow Mod based on the result of the the originality of the source is compromised. By using this
inspection. It will forward legitimate packets and drop attack on DoS attacks, the original source of the packets will be
malicious spoofed packets hard to locate. This will encourage the attacker to do the
attacks over and over again since the system can’t locate and
D. Port Statistic Queries block the attacks. The packets filtering and port status features
can be used to block this kind of attack.
To detect the DoS attacks, the controller must be able to
detect the events of DoS attacks. The events mean something Upon network starts up, the controller already learned and
that can be used to warn the controller that suspicious behavior saved all of the connected MAC addresses in the MACList
happen in the network. An example of this event is high table. When the controller receives Packet In with a new MAC
density port rate. A drastically sudden change of rate in one or address, means that it haven’t showed up on the network
more ports on the switch is considered as an entry point of DoS before, it uses MACSwitch and MACPort to check from which
attacks. The controller queries for the port statistics of each switch and port this message coming from. Then, it checks for

327

3
the port status of that port. If there is no port status changing garbage packets and fill up the switch’s flow table. An example
(i.e, link up/down) report for that port. Then the new MAC of this attack is sending UDP packets with random UDP
address is considered as a result of spoofing and the controller destination port from 0 to 50000. This will result in new 50000
will insert flow entries to drop these attacks. If there is port flow entries inserted into the switch.
status changing report, then this new MAC address is the result
of a new device connection, so the controller saves the new The controller can detect this attack by inspecting over flow
entries in the switches. The garbage message usually have
MAC in MACList and MACPort. Thus, process the packets
normally. characteristic of small byte of data. The priority of this attack is
to generate a high packet rate, not a high byte rate. It is the
opposite of bulky message attacks. The controller looks for
B. IP Spoofing flow entries that have small packet rate and byte rate value and
The design method to detect IP address changes may vary detects their variation. Thus, the controller sends the counter
and is adjustable to the network IP environment. In dynamic IP wildcarded flow entry to block the attacks.
environment (DHCP), hosts will request for IP to the DHCP
server. Then, the controller can save and lock this IP address in V. IMPLEMENTATION
the MACIP hashtable. The subsequent packets for this host will
be filtered and compared to the previous data stored in MACIP. Our security application is implemented on Beacon
If IP changes detected before request of new DHCP request, controller, a Java open source controller. We create a separate
then it will be considered as IP spoofing attack and controller application service which is called ‘bundle’ that implement the
will block this attack. design that already explained in Section 3. We also test the
application using common DoS attacks that already explained
The implementation of IP static environment in this in Section 4. We use Mininet [16] as network simulation,
application is designed to be more tolerable to IP changes due which is used to create an OpenFlow network environment,
to the flexibility of user in manually changing the IP address. including the Open vSwitch [17] as an OpenFlow virtual
The host can change the IP address during the active state, switch. The network traffic, which is used to simulate the DoS
without need to plug off the cable and reconnect, and doesn’t attacks, is created by utilizing the Python API that Mininet
generate port status changing. So the detection will be based on possesses. The attacker, which resides in host 1 on this
IP change rate. The application must check for IP changes rate example, will run some python script to create aggressive
during Packet In incoming message. Suppose there is 5 traffic to specific hosts inside the Mininet. The network
changes of IP for a host in 3 seconds. Then, it is considered to topology is depicted in Figure 3.
be spoofing attacks and the controller sends Flow Mod
message to block these attacks.

C. Bulky Message
Servers provide some services that most of the hosts used.
Because of this reason, they mostly become the first target of
DoS attacks in the networks. One of the DoS attacks that can
be done towards the servers is sending bulky message to the
servers. This attack overloads the server or at least, makes the
legitimate network throughput become lower. An example of
this attack is sending large file data to the servers.
The controller periodically query for switch statistics to Fig. 3. Network topology diagram created at Mininet
know about port and flow table information in the switch. The
controller checks for the byte rate of specific ports. If the byte
rate exceeds the threshold, it looks up the flow table and VI. EVALUATION
searches flow entries with high byte rate. Since there is no byte We run our Mininet, Beacon, and Dossy. We open host in
rate information on the match fields of the flow entry, the Mininet using xterm command, and start the python script to
controller calculates it by dividing the number of bytes that the simulate the DoS traffics. We can summarize the mitigation
flow entry received, with the duration of how long have the process done by the controller into two actions: quality of
flow entry resided in the switch. This seems like a coarse mean service and blocking state.
calculation, but this is enough in this case since that the flow
entry will have the idle timeout parameter of 5 seconds which A. Quality of Service
is a short time.
The quality of service is giving priority to one service over
other services in the network. We use the QoS to deal with
D. Garbage Message
Bulky Message. The detection of Bulky Message is based on
DoS attacks can also target the switches in the network. byte rate counter, so it is hard to make sure whether this high
Because OpenFlow switches rely on the controllers in byte rate packets contain actual network traffic data or just
forwarding packets, we can intentionally flood the switches camouflaged data contain DoS attacks. Therefore, instead of
with new flow entries. Attackers can send garbage packets to dropping the packets when high byte rate is detected, we
other nodes so that the controller will insert flow entries for the implement the QoS over the packets. This is done by

328

4
modifying the flow entry to have additional action that is called attacks, it sends Flow Mod messages to the switches to drop
Enqueue. This will tell the switch to enqueue detected flow the DoS attacks. The blocking state ends when the attacker
entries. stops the DoS attacks and the flow entry for dropping the
attack expires. This blocking state is implemented to protect IP
spoofing, MAC spoofing, and garbage message attacks.
Figure 5 depicts the behavior of garbage message attacks. It
shows the timeline of how many Packets In messages arrived at
the controller. At t=19, the garbage messages attack starts and
it will result in a lot of Packets In messages sent to the
controller. At t=30, the Open vSwitch can’t keep up with the
speed of the incoming packets and result in a buffer overflow
exception in Beacon controller [18]. This makes the switch
temporarily disconnect and reconnect to the controller, that’s
why the Packet In message at t=30 is zero.
Figure 6 depicts the behavior of the same garbage message,
Fig. 4. QoS during Bulky Message attacks.
but using Dossy implementation. When the garbage messages
start, the controller tries to detect this attack and send the Flow
Mod message to drop these attacks. Starting from t=20 the
switch will drop the subsequent packets and in t=22 all of the
subsequent packets will be dropped and the switch will not
send packets in messages for the garbage messages.

Fig. 5. Packet In flooding in the controller due to DoS attack

Fig. 7. Throughput measurements benchmark

Fig. 6. Blocking behavior during DoS attack


Fig. 8. Latency measurements benchmark
Figure 4 shows the example of QoS implementation during
the bulky message attacks. We set the mininet to have the
bandwidth around 1.25 MB, so we set the threshold for high C. Performance
byte rate around 1.2 MB/s. The bulky messages are The implementation of Dossy will increase the processing
implemented by using iperf command. When the controller time to process the packets and increase the workload of the
detects high data rate at the early seconds, it checks for the controller due to additional processing towards the packets and
flow table, searches for the flow entry that have high data rate switches. It can be measured by comparing Dossy to the
and applies the QoS to decrease the data rate to 128 KB/s. So normal controller processing. We measure the performance of
the subsequent flow, from t=7 and so on, will have reduced Learning Switch bundle (LS) and depicts the throughput and
data rate. This threshold value is adjustable, and must be set latency measurements at Figure 7 and 8. We also measure the
according to network characteristics. throughput and latency of Dossy (DOS) together with Learning
Switch to find out the difference. The measurements are done
B. Blocking State by using cbench [19].
When the controller can find and assure the DoS attacks. It Based on the benchmarking result, Dossy will reduce the
must block the attack so that the subsequent DoS packets do throughput of controller by 35% and increase the latency by
not disrupt the network. After the controller detects the DoS

329

5
21%. We also measure the Learning Switch bundle and Dossy network that is governed by the controller, or internal packets.
bundle without Packet In (PI) processing. Disable MAC/IP To detect the DoS attack that comes from external network,
filter processing, only leaves periodically switch statistic and implementation of method in [14] [15] can be used.
port status processing behind. This improved the result by
7.76% throughput reduction and 7.37% latency increment. This ACKNOWLEDGMENT
shows that to get the best result, the algorithm in Packet In
filtering must be simple and detection of DoS attacks must be This research was supported by Basic Science Research
done in switch statistic process, which is using port statistic Program through the National Research Foundation of Korea
messages and flow statistic messages. Although the (NRF) funded by the Ministry of Education, Science and
implementation of Dossy reduces the throughput of the Technology. (grant number: NRF 2014). And it also supported
controller, the throughput still represents good value because by the 2014 NSRI project.
Beacon has high performance [4]. This throughput depicted in
the figure is using one thread of Beacon. It can be increased by REFERENCES
implementing more threads and utilizing more CPU cores. [1] Z. Kerravala. Configuration management delivers business resiliency.
The Yankee Group, Nov. 2002.
VII. DISCUSSION [2] Kreutz, Diego, Fernando Ramos, and Paulo Verissimo. "Towards secure
and dependable software-defined networks." Proceedings of the second
We end our papers with discussion about mitigation DoS ACM SIGCOMM workshop on Hot topics in software defined
attacks. In this section, we will discuss about the solution of networking. ACM, 2013.
DoS attacks, what is the best practice to mitigate the attacks, [3] McKeown, Nick, et al. "OpenFlow: enabling innovation in campus
and see another solution that can be used with this application networks." ACM SIGCOMM Computer Communication Review 38.2
(2008): 69-74.
and SDN environment to fight together against DoS attacks.
[4] Erickson, David. "The beacon openflow controller." Proceedings of the
It is already well known that proactive strategy is the best second ACM SIGCOMM workshop on Hot topics in software defined
and possibly the first list of our to-do list to mitigate DoS networking. ACM, 2013.
attacks. By using the proactive strategy, we can block all the [5] Buskirk, Eliot Van. (2009, Ags 06). Denial-of-Service Attack Knocks
Twitter Offline (Updated) [Online]. Available: http://goo.gl/7Csnh8
access that we don’t use in our network (e.g. block all packets
that using unused TCP or UDP ports). At the network startup, [6] Buskirk, Eliot Van. (2009, Ags 06). Facebook Confirms Denial-of-
Service Attack (Updated) [Online]. Available: http://goo.gl/hKaI0V
the admin inserts the flow entries to the switches to block this
[7] Messmer, Allen. (2014, Jan 14). Massive denial-of-service attacks pick
unnecessary packet, so it will reduce the time needed for the up steam, new nefarious techniques [Online]. Available;
controller to detect the DoS attacks since it will be blocked by http://goo.gl/hBjy6v
the switches before sent to the controller. [8] Cid, Daniel. (2014, Mar 10). More Than 162,000 WordPress Sites Used
for Distributed Denial of Service Attack [Online]. Availbale:
The source of DoS attacks is also an important thing to be http://goo.gl/hvJ0uV
noted since they can be varied. It could be from malicious user [9] Wang, Haopei, Lei Xu, and Guofei Gu. "OF-GUARD: A DoS Attack
who intentionally wants to disrupt the network, a host who has Prevention Extension in Software-Defined Networks."
been compromised by attacker to do DoS attacks, and host [10] Shin, Seungwon, et al. "AVANT-GUARD: scalable and vigilant switch
infected by malware to do DoS attacks. So it is important to flow management in software-defined networks." Proceedings of the
secure the hosts on the network. The hosts should be installed 2013 ACM SIGSAC conference on Computer & communications
with the updated anti-virus or anti-malware system to minimize security. ACM, 2013.
the chance of the host to be compromised. [11] Porras, Philip, et al. "A security enforcement kernel for OpenFlow
networks." Proceedings of the first workshop on Hot topics in software
Besides of that, to make sure that we can mitigate the DoS defined networks. ACM, 2012.
better, we may set up the Intrusion Prevention System (IPS) in [12] Shin, Seungwon, et al. "FRESCO: Modular Composable Security
our network. This IPS can detect and filter the packet based on Services for Software-Defined Networks." NDSS. 2013.
its contents, to see whether the packets carry malicious data [13] Dover, Jeremy M. “A denial of service attack against the Open
(e.g. malware, worm, and virus) or not. IPS is also useful in Floodlight SDN controller”. Dover Networks LCC.
defending against external attacks. Suppose we have server [14] Gkounis, Dimitrios. “Cross-domain DoS link-flooding attack detection
and mitigation using SDN principles”. M.S. thesis. Institute of
farms in our network that can be accessed from outside, the Technology Zurich. 2014.
controller can act as a firewall to block unnecessary packets, [15] Braga, Rodrigo, Edjard Mota, and Alexandre Passito. "Lightweight
and IPS block packets which contain malicious data. DDoS flooding attack detection using NOX/OpenFlow." Local
Computer Networks (LCN), 2010 IEEE 35th Conference on. IEEE,
Securing against DoS attacks that coming from outside the 2010.
network is challenging. The IP Masquerade or Network [16] Mininet. Available: http://mininet.org/
Address translation (NAT) makes things more complicated. [17] Op en vSwitch. Available: http://openvswitch.org/
The translation process increases the difficulty to detect who is
[18] Buffer Overflow Exception. Available: http://goo.gl/atZGsO
the actual sender of the packets. The controller will only know
[19] Cbench. Available: http://sourceforge.net/projects/cbench
that the packets come from the outermost router of the
networks. The MAC/IP Spoofing that is implemented in Dossy
will only work if the packets come from the host on the

330

Вам также может понравиться