OpenFlow: A Security Analysis

3y ago
25 Views
2 Downloads
1.10 MB
6 Pages
Last View : 10d ago
Last Download : 3m ago
Upload by : Mia Martinelli
Transcription

OpenFlow: A Security AnalysisRowan KlötiVasileios KotronisPaul SmithETH ZurichZurich, SwitzerlandEmail: rkloeti@ee.ethz.chETH ZurichZurich, SwitzerlandEmail: vkotroni@tik.ee.ethz.chAIT Austrian Institute of Technology2444 Seibersdorf, AustriaEmail: paul.smith@ait.ac.atAbstract—Software Defined Networking (SDN) has been proposed as a drastic shift in the networking paradigm, by decoupling network control from the data plane and makingthe switching infrastructure truly programmable. The key enabler of SDN, OpenFlow, has seen widespread deployment onproduction networks and its adoption is constantly increasing.Although openness and programmability are primary featuresof OpenFlow, security is of core importance for real-worlddeployment. In this work, we perform a security analysis ofOpenFlow using STRIDE and attack tree modeling methods, andwe evaluate our approach on an emulated network testbed. Theevaluation assumes an attacker model with access to the networkdata plane. Finally, we propose appropriate counter-measuresthat can potentially mitigate the security issues associated withOpenFlow networks. Our analysis and evaluation approach arenot exhaustive, but are intended to be adaptable and extensibleto new versions and deployment contexts of OpenFlow.I.I NTRODUCTIONSoftware Defined Networking (SDN) is the key outcomeof extensive research efforts over the last decade towards thetransformation of the Internet to a more open, programmable,reliable, secure and manageable infrastructure. The main concepts of SDN are: i) the separation of the network controlplane from the data plane and, ii) a logically centralized controller [1], communicating with the data plane over open andstandardized interfaces and protocols. The control applicationsrunning on top of element (ii) see a network-wide view basedon the abstraction of the distributed network state.OpenFlow [2] is a standardized [3] protocol which implements the aforementioned notion of SDN. It is used forthe interaction between a network switch, constituting thedata plane, and a controller, constituting the control plane.The switch performs packet forwarding using one or moreflow tables. These tables contain sets of rules matching toflows traversing the switch (i.e., matching to packet headerpatterns), corresponding actions (e.g., forwarding or headerrewriting), and counters used for measurements. The flow rulesare installed on the switch by the controller. The controllercan choose to install them proactively on its own accord, orreactively in response to a notification by the switch regardinga packet failing to match existing rules.Despite having started as a largely academic endeavour,OpenFlow has been increasingly deployed in production systems over the past two years. For instance, Google has deployed OpenFlow within its datacenter backbone network tomaximize utilization on links carrying huge elastic loads [4].Major vendors such as Cisco, Juniper and HP are offering978-1-4799-1270-4/13/ 31.00 c 2013 IEEEOpenFlow support in their products [5], and they are usingOpenFlow capabilities to differentiate within the growing SDNmarket [6]. It seems very likely that the adoption of OpenFlowwill continue at an increasing rate in the coming years, asservice providers and cloud hosts hope to accelerate servicedeployment, enable easier cloud management and build novelapplications on top of their networks [7].Given the potential of SDN in general (and OpenFlow inparticular) to revolutionize the way in which networks aremanaged, looking into the security implications of OpenFlowbased setups while the technology is still young constitutesa very important and challenging task. Although there areresearch publications on the deployment of security applications over OpenFlow [8], [9], none of these address the coreissue of the security of the protocol itself. To the best of ourknowledge, there is no official security analysis of OpenFlowavailable to the public. For the sake of completeness, we notethe work in progress described with Internet Drafts [10], whichcomplement our current work. In this paper, we make thefollowing contributions:a) Security Analysis: We perform a high-level, extensible and adaptable security analysis of OpenFlow (protocoland network setups), using the STRIDE [11] vulnerabilitymodeling technique. By combining STRIDE with attack treeapproaches [12], we provide a fitting methodology for analyzing OpenFlow from a security perspective, uncoveringpotential vulnerabilities and describing exploits.b) Evaluation: We experimentally demonstrate prominent vulnerabilities which are yielded by our security analysis.Further, we implement test-suites in order to exhibit the impactof the exploitation of these vulnerabilities on a widely usedOpenFlow virtual switch [13] and controller [14], using anOpenFlow network emulator [15].c) Recommendations: Based on our security analysisand evaluation of OpenFlow, we propose techniques that couldprevent or mitigate the identified security issues, depending onthe deployment and operation context.The rest of the paper is structured as follows: Section IIprovides an overview of our security analysis of OpenFlow,along with the methodology used and vulnerabilities found.Section III describes the evaluation environment and presentsthe results of our test-suite for different attacks. In Section IVwe recommend prevention and mitigation techniques stemmingfrom our analysis and evaluation. Section V gives an overviewof the related work. Finally, we conclude.

II.O PEN F LOW SECURITY ANALYSISWe have carried out a structured security analysis of theOpenFlow protocol. Here, we provide an overview of themethodology applied to conduct this analysis. For more detailswe refer the reader to our work in [16], where the fullmethodology and results are presented.flows are defined, e.g., Read flow table and Packet sample.A trust boundary exists between the data path and the OpenFlow components, as indicated by the dashed-line. Interactionsacross such boundaries should be carefully considered, as theyare likely sources of attacks. Finally, the Flow table data storeis shown, which contains flow rules for matching L2 – 4headers, actions to be invoked on flows, and counters.A. MethodologyTo implement the security analysis of OpenFlow, we combine two modeling techniques: Microsoft’s STRIDE methodology [11] and attack trees [17]. In an initial phase, theSTRIDE methodology is used to construct a model of anOpenFlow system and enumerate its potential vulnerabilities;subsequently, attack trees are employed to explore how theidentified vulnerabilities could be exploited by an attacker.Using STRIDE, a Data Flow Diagram (DFD) of a targetsystem can be developed. This DFD shows the system’scomponents, including processes, data stores, (conditional)data flows and trust boundaries. With a DFD in place an analystthen examines the potential vulnerabilities of each component using the STRIDE mnemonic: Spoofing, Tampering,Repudiation, Information Disclosure, Denial of Service, andElevation of Privilege. For instance, one might consider thepossibility of a Denial of Service (DoS) to an OpenFlowcontroller process, and evaluate its impact on the overallsystem. The result of this analysis is a set of system componentand vulnerability pairs.We use attack trees to explore how an identified vulnerability could be exploited. The root of an attack tree is an attacker’sultimate objective – in our case, an OpenFlow component andvulnerability pair, derived by STRIDE. Sub-nodes in a treerepresent intermediate attack objectives; leaf nodes representbasic actions and events. Branches in a tree can have logicalOR or AND semantics, whereby any sub-node or all sub-nodesmust be satisfied to achieve a goal, respectively. The analysisbegins at the root node; child nodes are created recursively bydecomposing the parent objective.We made the following assumptions about the attacker’scapabilities: they are unable to gain access to the secure control channel that provides connectivity between an OpenFlowswitch and its controller, and they cannot directly compromisethe system on which the controller or the switch runs. Wemade these assumptions for two reasons: (i) we assume thata network operator has taken reasonable precautions to securethe controller and associated communication channel (e.g., viaTLS), and (ii) we wanted to focus on threats that emerge fromthe data plane as a consequence of using OpenFlow.B. Modeling and Analyzing OpenFlow via STRIDEFig. 1 presents a simplified version of a DFD of an OpenFlow switch (for space reasons, we show only a simplifiedDFD). A number of processes are shown in Fig. 1 that performforwarding tasks (i.e., Data path, implemented on the hardwareof the switch) and OpenFlow-related activities: the OpenFlowModule, which runs as a software on the switch’s CPUand performs tasks such as managing the Flow table basedon interactions with the controller, and the Secure Channelprocess that handles switch–controller communication. DataTransmit packetOpenFlowModuleSet state/actionGet state/eventSecureChannelPacket sampleData pathUpdate counterRead ModifyRead flow tableFlow tableDenial of serviceInformation disclosureTamperingFig. 1. Simplified DFD for an OpenFlow switch, showing relevant vulnerabilitiesWith a DFD in place, one can analyze each componentusing the STRIDE mnemonic. We observe that InformationDisclosure, Denial of Service and Tampering vulnerabilitiesand attacks are possible. An attack with severe consequences isa Denial of Service against the flow table, whereby an attackeraims to overload the table with flow rules, illustrated in Fig. 1.We show how an attacker can achieve this in Sec. III-B1. Wefurther note the possible detrimental effects of such attacks onthe controller as well as the secure channel – in the case of theformer, the attack may also affect further switches managed bythe same controller. If the attacker has sufficient knowledge ofthe internal implementation, they may be able to effect a hashcollision attack on the flow table or analogous data structures inthe controller. With respect to Information Disclosure, we notethat by observing differences in controller response times, anattacker may be able to derive information about network state,such as active flow rules. Sec. III-B2 gives an example of suchan attack. Furthermore, with respect to Tampering we mentionthe possibility of cache poisoning attacks against the flow tableand/or controller state. More complex attacks that combine theaforementioned primitives (e.g., using knowledge acquired bya preemptive Information Disclosure attack in order to mountan effective DoS) can also be formulated.C. Attack Tree AnalysisWe have developed attack trees for several vulnerabilitiesthat were identified using the STRIDE methodology. An example attack (sub-)tree is shown in Fig. 2, which shows howan attacker might implement an Information Disclosure attackagainst an OpenFlow controller. In this scenario, an attackeris attempting to learn the nature of the controller’s behavior,e.g., whether and which aggregated rules are in use for certainflows, by measuring the time it takes for selected packets toreach an end-point and return. The intuition for this attackis that packets which do not correspond to already installedflow rules require forwarding to the controller, thus inducingan additional forwarding and processing delay.Fig. 2 shows the steps necessary to realize this attack –an attacker must elicit a response from an end-point, eitherby gaining access to multiple clients (e.g., by compromisinga machine) or forcing a client to reproduce a response. Eitherof these options is possible, as indicated by the logical OR

performance parameters, while the control path links also haveidentical and distinctive (from the data path links) performancecharacteristics. This setup requires that the controller supportslayer-3 forwarding properly.Informationdisclosure againstcontrollerDisclose installedflows using a timingattackSelect packetcontentsObtain accessto multipleclientsSend packets &measure timeFig. 2. Simplified attack (sub-)tree showing an Information Disclosure attackagainst an OpenFlow controllerh2h2c0c0Fig. 3.branch in the attack tree. Subsequently, an attacker selects thepacket contents associated with the information they wish todisclose, sends the packet and measures the round-trip time. Amore detailed description of this attack is given in Sec. III-B2,wherein we describe an experimental implementation of it.III.s1s1h1h1Force anotherclient toproduceresponseSchematic diagram of virtual network setup used in Sec. III-B1h1-1h1-1h1-2h1-2h2-1h2-1s1s1s2s2h2-2h2-2E MPIRICAL EVALUATIONA. Setup and Emulation EnvironmentIn this section, we provide an overview of the emulationenvironment, the traffic generation tools and the network setupthat we used in order to evaluate the Denial of Service andInformation Disclosure vulnerabilities and consequent attacks.Further evaluation details and scripts implementing our testsuite are provided in [16].1) Emulation Environment: We used the Mininet framework to create virtual networks based on Open vSwitch [13].Mininet utilizes network namespaces, a feature of the Linuxkernel, to implement lightweight network virtualization. Individual clients are modeled as nodes (which can be hosts,switches or controllers) and possess interfaces, representingNICs. Virtual links between interfaces are modeled as links,which may be subject to performance constraints, such asbandwidth, delay, buffer size and simulated packet loss. See[18] for more information on the Mininet implementation.2) Traffic Generation: To implement the attacker, thepacket generation and analysis framework scapy is used. Itis a Python-based framework allowing the creation of packetswith arbitrary data in the header fields. The utilitity netcat isused to emulate a TCP client and server.3) Network Setup: The main setup consists of two identicalclient systems, a user-space OpenFlow switch and a POXbased controller [14]. This setup is depicted in Fig. 3. Eachnode has a unique virtual network connection to the switch.The attacker controls one or more client systems. The attackerdoes not have any control over or access to the switchor the controller. External observations (e.g., packet dumpsbetween the switch and the controller) are not permitted for theattacker, but may be used to evaluate the impact of the attacks.Some forms of attack require a more sophisticated networkenvironment depicted in Fig. 4, which shows two virtualswitches linked together. Each of the switches is connectedto three further virtual hosts. A single controller controls bothswitches. As above, all of the data path links have identicalh1-3h1-3Fig. 4.c0c0h2-3h2-3Schematic diagram of virtual network setup used in Sec. III-B2B. Results1) Denial of Service: The objective of this attack is togenerate a large number of packets that will be sent to the controller and result in it installing a new flow rule for each packet,eventually overflowing the flow table. We utilize the POXmodule forwarding.l2 learning which implements a layer-2learning switch, exemplifying a purely reactive strategy. As thecontroller only installs rules matching header fields exactly, itis only necessary to permute some value in a packet header tocause the installation of a new flow rule. For this purpose, thesource and destination port fields of UDP packets are used. Theforwarding.l2 learning module has been modified to acceptuser-provided soft timeout values, which determine when aflow rule expires, so that their effect on the attack may beobserved. The effect of the attack is measured by packet lossand instances of the All tables full error being produced by theswitch. These correlate perfectly, so only the former is shownhere. Fig. 5 shows a steady increase in the number of lostpackets with an increasing timeout value. This increase canbe explained as follows: larger timeouts mean more persistentflow rules within the table and larger probability of tableoverflows and denied rule installations. There is also a longplateau between approximately 37 s and 67 s, probably anartifact of the Open vSwitch implementation [13].Fig. 6 illustrates that lower performance on the control linktends to aggravate the effect of the aforementioned DoS attack,with the plateau of packet loss being reached earlier (with31 s timeout). The packet loss also exceeds this plateau forlower timeout values (about 64 s). There is significantly higherincidence of packet loss being observed for smaller timeoutvalues than in the previous case. This is counterintuitive: weexpected that with the same timeouts, a slower control linkwould result in less flow rules being installed per time unit,thus reducing the incidence of table overflows.

20600001850000Two flows (new initial),distinct14Frequency40000Packets lostSingle flow (initial)16300001210200008641000020010 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85Soft timeout [s]Fig. 5. Test with data link at 100 Mbps, 10 ms delay, control link at 100Mbps, 1 ms delay5060708090100 110 120 130 140 150Measured response time [ms]170180190200Fig. 7. Histogram of control using forwarding.l3 learning controller withsymmetric timing at 10 ms600002018Single flow (initial)5000016Two flows (new initial),aggregated14Frequency40000Packets lost160300001210820000641000020010 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85Soft timeout [s]5060708090100 110 120 130 140 150Measured response time [ms]160170180190200Fig. 6. Test with data link at 100 Mbps, 10 ms delay, control link at 10Mbps, 10 ms delayFig. 8. Histogram of data using forwarding.l3 aggregator simple controllerwith symmetric timing at 10 ms2) Information Disclosure: The objective of the attack is toexploit the use of flow aggregation in order to discover someaspect of network state that would otherwise not be visible toan attacker. This information could be used by an attacker todetermine the presence and nature of services on a network.Such knowledge might also be used in a later stage of anattack. The network setup used here is described in Fig. 4. Ifa server is connected to the second switch (s2), and severalclients to the first switch (s1), then the aggregation occurringin s1 in response to several connections from the clients to theserver could allow another client connected to s1 to deduce thatsuch a connection exists. This is performed by timing the TCPsetup; if a second connection attempt is substantially fasterthan the first, then a new flow rule was installed in responseto the connection attempt. Conversely, if there is no significantdifference, the attacker may conclude that a flow rule alreadyexisted. For this attack to be performed, it is necessary thatdynamic aggregation of flow rules is in use. This is achievedwith the POX module forwarding.l3 aggregator simple. Thismodule sets the following header values to wildcards: link andnetwork layer source addresses, transport layer source port andthe physical switch port. The forwarding behaviour does notneed to depend on source values, so the aggregation of thesefields is reasonable to minimize the number of flow rules.the latter case, aggregation may occur, if the controller allowsthis. In the control, this is not allowed. The distributions hereare equal within a reasonable tolerance, as expected.We measure the distribution of setup times in order todetermine the certainty with which we may conclude whetheran existing flow rule is present. We also perform the operationwith a non-aggregating controller, acting as the control. Thisallows us to observe how significant the differences in timingare. Fig. 7 shows a histogram of the control data. The two datasets exhibit the case before a parallel connection is createdfrom another client to the server, and the case afterwards. InFig. 8 shows a histogram of measure

sible and adaptable security analysis of OpenFlow (protocol and network setups), using the STRIDE [11] vulnerability modeling technique. By combining STRIDE with attack tree approaches [12], we provide a fitting methodology for an-alyzing OpenFlow from a security perspective, uncovering potential vulnerabilities and describing exploits.

Related Documents:

OpenFlow Switch Specification OpenFlow Switch Specification,Version 0.8.1 (Draft) The standards document that describes the protocol that is used between an OpenFlow Switch and the OpenFlow Controller. Cover the components and the basic functions of the switch, and the OpenFlow protocol to manage an

2 OpenFlow Evolution OpenFlow protocol have evolved during ONF's standardization process, from version 1.0 where there are only 12 fixed match fields and a single flow table to the . services for applications such as IP telephony and video streaming. To implement QoS in OpenFlow switches[13], OpenFlow 1.0 provides an optional "enqueue .

lated environment to this end, such as the Network Simu-lator 3 (ns-3) [6]. It is a discrete-event simulator, targeted primarily for research and educational use, and distributed as free software. ns-3 simulations can model OpenFlow switches via the existing OpenFlow module [7], which re-lies on an external OpenFlow switch library linked to the

Linux OpenStack Platform Management GUI Network Application Orchestration & ServicesServices OpenStack Neutron NTN Coordinator OpenDay Light API's (REST) OVSDB NETCONF LISP BCP PCEP SNMP OpenFlow OpenFlow Enabled Devices Additional Virtual & . specifying action

Data Plane Broker OSM DPB WIM Connector Fabric Adapter Openflow Switch B Openflow Switch C Openflow Switch A Configure Service_Id Creation: Connection Points, Bandwidth Deletion: S

The Beacon OpenFlow Controller David Erickson Stanford University Stanford, CA, USA daviderickson@cs.stanford.edu ABSTRACT Beacon is a Java-based open source OpenFlow controller created in 2010. It has been widely used for teaching, research, and as the basis

n switch pa intain separ 2@stanford.edu) OpenFlow c specification g). This spec time‐slots, w interfaces an s OpenFlow his documen independent ircuit switch. for packet ification cov avelengths a d conversel protocol cha t should be v ly. We recomm switches o ers the

JS/Typescript API JS Transforms [More] WebGL support Extras What’s next? 8 Completely rewritten since 0.11 Powerful and performant Based on tornado and web sockets Integrated with bokeh command (bokeh serve) keep the “model objects” in python and in the browser in sync respond to UI and tool events generated in a browser with computations or .