摘 要:在SDN架構(gòu)下,網(wǎng)絡(luò)控制器的拒絕服務(wù)攻擊會搶占控制器的資源,引起網(wǎng)絡(luò)癱瘓。本文分析了SDN控制器的拒絕服務(wù)攻擊的特點,介紹了目前比較主流的檢測和防護(hù)SDN控制器DoS攻擊的方法,并以O(shè)penDaylight控制器為例,提出了一種對控制器DoS攻擊進(jìn)行檢測和防護(hù)的模型,最后利用ODL提供的API對提出的模型進(jìn)行了編程實現(xiàn)。
關(guān)鍵詞:SDN網(wǎng)絡(luò);拒絕服務(wù)攻擊;OpenDaylight
中圖分類號:TP393.08 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2018)12-0184-02
Detecting and Defeating Denial-of-Service Attacks on SDN Controller
LIU Zhigang
(Modern Education Technonoly and Information Center,Nanchang Hangkong University,Nanchang 330063,China)
Abstract:Denial-of-Service(DoS)attacks will run out of the resources of SDN controller,and results in breakdown of the network. This article analysis characters of DoS attacks on SDN Controller,meanwhile some detection and prevention methods are also introduced. In this paper,a model of Detecting and Defeating Denial-of-Service attacks on OpenDaylight controller is proposed. Using the API of ODL,we realize this model by programming.
Keywords:SDN network;Denial-of-Service attacks ;OpenDaylight
0 引 言
SDN起源于2006年斯坦福大學(xué)的Clean Slate研究課題。2009年,Mckeown教授正式提出了SDN概念[1]。目前SDN已經(jīng)逐步取代傳統(tǒng)網(wǎng)絡(luò),成為下一代互聯(lián)網(wǎng)的基石。
SDN控制器和交換機(jī)之間的南向接口具有一定的脆弱性[2]。除了TLS/SSL協(xié)議在安全通信方面的脆弱性[3]外,攻擊者還會利用SDN中的一些交換機(jī)向控制器發(fā)起DoS攻擊,產(chǎn)生大量虛假請求,致使控制器無法提供正常的數(shù)據(jù)流匹配和流表下發(fā)操作。
1 控制器DoS攻擊行為檢測方法
1.1 突發(fā)流量的異常行為檢測
首先統(tǒng)計正常流量樣本數(shù)據(jù)流中IP包的平均數(shù)量、數(shù)據(jù)流平均字節(jié)數(shù)、信息流平均持續(xù)時間、配對信息流的百分比、單信息流的增長率以及不同端口的增長率等6個方面的特征,建立正常的流特征模型,并和實際流量進(jìn)行匹配。偏離度超過閾值的數(shù)據(jù)流可視為攻擊流量。本方法在DoS攻擊檢測的流量特征提取方面具有消耗低、檢測率較高的特點[4];
1.2 基于有限連接狀態(tài)機(jī)遷移機(jī)制的攻擊檢測
設(shè)置連接遷移模塊,對SYN Flood等基于TCP協(xié)議狀態(tài)的DoS攻擊加以阻斷,但這種檢測方法無法檢測非TCP協(xié)議的攻擊行為。Wang等人基于數(shù)據(jù)包遷移和數(shù)據(jù)面緩存機(jī)制,設(shè)計了一種輕量級DoS攻擊防御模型OF-Guard,并提出了一種新型DoS攻擊防御架構(gòu)[5];
1.3 利用DoS攻擊行為模型的誤用檢測
該方法對OpenFlow系統(tǒng)進(jìn)行建模,并列舉系統(tǒng)潛在的安全威脅(如DoS攻擊),然后根據(jù)模型匹配數(shù)據(jù)流,將匹配度較高的流視為攻擊行為并加以阻斷。
2 基于OpenDaylight的攻擊檢測系統(tǒng)設(shè)計
以O(shè)penDaylight為例,本文設(shè)計開發(fā)了相關(guān)的應(yīng)用以防御DoS攻擊。本系統(tǒng)主要架構(gòu)如圖1所示。
系統(tǒng)需要兩個模塊:
(1)監(jiān)測模塊。用來計算當(dāng)前packet-in消息的速率來查看是否超過警戒值,當(dāng)超過警戒值以后則由處理模塊來進(jìn)行處理;
(2)處理模塊。接收packet-in消息,解析IP地址以及MAC地址等信息,并統(tǒng)計packet-in消息速率。當(dāng)速率超過閾值,則將相應(yīng)的威脅信息記錄到DataStore中,并通過SalFlowService接口向交換機(jī)下發(fā)流表,讓交換機(jī)丟棄相應(yīng)的數(shù)據(jù)流。
3 系統(tǒng)方案實現(xiàn)
3.1 監(jiān)控模塊的實現(xiàn)
監(jiān)測模塊記錄和計算某一個時間段內(nèi)packet-in消息的數(shù)量和速率,與預(yù)設(shè)的閾值進(jìn)行比較,并確定是否發(fā)出Notification消息。核心的邏輯代碼如下:
counter = counter + 1;
if ((counter % samplesLwm) == 0) {
calendar = Calendar.getInstance();
newTime = calendar.getTimeInMillis();//獲取當(dāng)前時間
timeDiff = newTime - oldTime;//計算時間差
oldTime = newTime;//將oldTime時間更新
avgPacketInRate = (samplesLwm / timeDiff) * 1000;//收包的平均速率
counter = 0;
LOG.info(\"Average PacketIn Rate is \" + avg-PacketInRate);
}
3.2 處理模塊的實現(xiàn)
創(chuàng)建HandlerModule類,實現(xiàn)DefenderpluginListener接口,并實現(xiàn)onLowWaterMarkBreached方法,根據(jù)Noti-fication發(fā)送過來的相關(guān)信息下發(fā)丟棄行為的流表。具體代碼如下:
List nodes = getAllNodes(dataBroker);
String dstMAC = notification.getDstMac();
if(!dstMAC.equals(\"FF:FF:FF:FF:FF:FF\")) {
Flow flow = createProgibitFlow(notification);
for (Node node : nodes) {
NodeKey nodeKey = node.getKey();
InstanceIdentifier nodeId = InstanceIdentifier.builder(Nodes.class).child(Node.class,nodeKey).build();
addProhibitFlow(nodeId,flow);
}
}
最后構(gòu)建并下發(fā)流表給交換機(jī)。
3.3 效果測試
在mininet控制界面中輸入h1 ping -f h2命令產(chǎn)生大量的請求數(shù)據(jù),此時可在karaf終端觀察到大量攻擊日志,說明已經(jīng)檢測到packet-in flooding攻擊,然后在mininet中輸入dpctl dump-flows查看流表,可見在交換機(jī)上已經(jīng)存在了actions=drop的流表項,此時h1和h2之間的通信已被切斷,防止了packet-in flooding攻擊。
4 結(jié) 論
本方法利用OpenDaylight的API接口實現(xiàn)了DoS攻擊的檢測和防護(hù),擴(kuò)展了OpenDaylight控制器的安全功能,但是抵御DoS攻擊還是需要綜合運用多種方法,從多個維度保障SDN系統(tǒng)安全。
參考文獻(xiàn):
[1] McKeown N.Software-Defined metworking.In:Proc.of the INFOCOM Key Note,http://infocom2009.ieee-infocom.org/technicalProgram.htm,2009.
[2] 王蒙蒙,劉建偉,陳杰,等.軟件定義網(wǎng)絡(luò):安全模型、機(jī)制及研究進(jìn)展 [J].軟件學(xué)報,2016,27(4):969-992.
[3] Manik Lal Das,Navkar Samdaria. On the security of SSL/TLS-enabled applications [J].Applied Computing and Informatics,2014,10(1-2):68-81.
[4] Hong S,Xu L,Wang H,Gu G. Poisoning network visibility in software-defined networks:New attacks and countermeasures. In:Proc. of the 2015 Annual Network and Distributed System Security Symp.(NDSS 2015). San Diego:Internet Society,2015:1-15.
[5] Wang H,Xu L Gu G. OF-GUARD:A DoS attack prevention extension in software-defined networks. In:Proc. of the Poster Session of the Open Networking Summit 2014. Santa Clara:USENIX,2014:1-2.
作者簡介:劉治綱(1978.05-),男,漢族,江西南昌人,講師,研究生。研究方向:下一代互聯(lián)網(wǎng)。