廖小群?黃華東



摘? 要:分布式拒絕服務DDoS攻擊是當前網絡中主要的黑客攻擊方式,嚴重危害高職院校網絡安全,給學校帶來不少損失。SDN(軟件定義網絡)是一種將數據平面和控制平面分離的新的網絡體系結構,普遍應用于云計算環境中。SDN網絡的控制和決策完全集中在控制器上,這使其容易受到DDoS攻擊。文章先是分析SDN網絡架構的原理和特征,然后創建一個SDN仿真實驗環境來模擬網絡主機遭受泛洪式DDoS攻擊的情況,最后提出了有效的檢測和防御方法。
關鍵詞:高校;SDN;DDoS;網絡安全;泛洪攻擊
中圖分類號:TP391.9? ? ? ? ?文獻標識碼:A文章編號:2096-4706(2022)06-0097-04
Research on Passive Defense Measures of DDoS Flood Attack in SDN Network
LIAO Xiaoqun, HUANG Huadong
(Guangxi Vocational and Technical College of International Business, Nanning? 530007, China )
Abstract: Distributed denial of service DDoS attack is the main hacker attack mode in the current network, which seriously endangers the network security of higher vocational colleges and brings a lot of losses to the school. SDN (Software Defined Network) is a new network system architecture that separates data plane and control plane. It is widely used in cloud computing environment. The control and decision-making of SDN network are completely concentrated on the controller, which makes it vulnerable to DDoS attacks. This paper first analyzes the principle and characteristics of SDN network architecture, then creates an SDN simulation experiment environment to simulate the situation of network host suffering from flood DDoS attack, and finally puts forward effective detection and defense methods.
Keywords: colleges and universities; SDN; DDoS; network security; flood attack
0? 引? 言
軟件定義網絡(Software Defined Network, SDN)是由美國斯坦福大學Clean-Slate課題研究組提出的一種新型網絡創新架構,是網絡虛擬化的一種實現方式。其核心技術OpenFlow通過將網絡設備的控制面與數據面分離開來,從而實現了網絡流量的靈活控制,使網絡作為管道變得更加智能,為核心網絡及應用的創新提供了良好的平臺。SDN基于控制層和轉發層的分離架構提高了網絡的全局管理,大大提高了網絡控制的集中性和靈活性,但也隨之產生新的安全問題。控制層開放大量可編程接口給上層應用訪問,北向接口連接建立的控制層與應用層之間的信任關系更加脆弱,使得DDoS攻擊成為可能。
常見的DDoS攻擊防御方法包括主動防御和被動防御。主動防御的方法是,網絡技術人員在DDoS攻擊發生之前,通過監測網絡狀態采取調度措施對DDoS攻擊行為事先進行干擾。被動防御的方法是,網絡技術人員檢測到DDoS攻擊時,立刻采取手段對攻擊流量的數據進行流量清理和流量過濾。
1? SDN網絡架構
SDN是將網絡分為了三層,即控制層、轉發層和應用層,如圖1所示。控制層相當于傳統網絡中加了一層,用來實現代碼控制轉發層,同時留有北向接口面向外部應用。控制器是SDN中的應用程序,實際上是一種網絡操作系統,是網絡的中樞神經。控制器通過統一的指令來集中管理轉發路徑上的所有設備。SDN控制器包括OpenDaylight、Ryu、Floodlight等, 通過編寫代碼實現對轉發層的控制,如通過Python程序對Open VSwitch交換機的轉發規則進行定義。
轉發層相當于交換機,傳統網絡的交換機,在傳統的網絡中,當主機之間轉發數據時,交換機如何轉發會根據轉發表。轉發表是通過一種自發學習的方式來實現,即當主機1連接主機2時,初始狀態下,轉發表為空,此時交換機不知道如何轉發數據,就會進行泛洪發送,主機2收到消息后,轉發表就會寫入主機1到主機2的轉發路徑,以此類推就會構建一個完整的轉發表。而對于SDN的轉發層,主要功能相當于交換機,但是不同的是,初始轉發層會有一個默認流表(轉發表),優先級為0,表示當有數據轉發時,由于流表并不知道轉發方式,0代表交由控制器處理,控制器會進行泛洪,同時流表記錄路徑,最后下發流表到轉發層,之后的轉發根據流表進行。1DC8A686-F18D-4E7E-BA67-1E2ED0C3E8F2
應用層主要是完成用戶意圖的各種上層應用程序,通過連接控制器提供的北向接口進行流表編寫,實現對轉發層的控制。
2? OpenFlow協議
OpenFlow是一種新型的網絡協議,它是控制器和交換機之間的標準協議。OpenFlow協議先后經歷了1.0到1.4的升級過程。目前1.0和1.3版本的使用最為廣泛。OpenFlow1.3增加了數據包處理的動作類型,增加了對多控制器的支持、增加了多級流表、組表、度量等。每個流表是多個流表項的集合,每個流表項主要由匹配域、優先級、計數器、指令、Timeouts、Cookie、Flags組成。
OpenFlow協議中定義了流水線式的報文處理流程。數據包進入交換機后,必須從最小的流表(編號為0)開始按順序匹配。在流水線中,流表只能按編號從小到大向后傳遞,不能回頭。當數據包成功匹配到流表中的某一條流表項時,它將首先更新該流表項對應的統計信息(如成功匹配的數據包總數和字節總數等),然后是直接執行流表項中的動作(action),或者是轉到另外一個流表中(使用GOTO指令)進行匹配,此時跳轉的流表編號必須比原流表要大。當數據包在最后一個流表中時,將執行對應動作集中的所有動作,包括轉發到某個端口,修改數據包的某個字段、丟棄數據包等。當一條數據沒有在流水線中匹配成功,這就是一個table-miss,未匹配成功的數據包由流表中的table-miss流表項進行處置,可以是:丟棄、傳到另外一個流表或者通過packet-in消息傳給控制器。
3? 泛洪DDoS攻擊
DDoS是英文Distributed Denial of Service的縮寫,中文名叫分布式拒絕服務攻擊,俗稱洪水攻擊。是指多個攻擊者同時攻擊一個或多個目標,或者通過非法手段控制兩臺或兩臺以上的主機,并通過這些傀儡主機發送命令對特定目標一起實施“拒絕服務”攻擊,發送大量數據包,搶占網絡帶寬,消耗系統資源,使得被攻擊目標無法處理正常的數據包,甚至會中斷正常的服務。
Ping Flood泛洪攻擊的基本原理是向受害主機(服務器)發送大量ICMP數據包請求。攻擊者持續發送ping命令,并使用ICMP echo請求數據包來淹沒目標,使目標主機無法正常訪問流量。此時,從普通用戶的角度來看,主機運行將非常卡頓,甚至沒有響應,嚴重將導致系統癱瘓。
4? SDN環境模擬仿真實驗
4.1? 實驗相關軟件
由于設備和場地限制,在實際網絡中很難進行SDN相關的實驗,所以SDN的學習就特別需要一個仿真器。Mininet是一個能創建OVS交換機、網絡主機和控制器的網絡仿真器,借助它可以很容易地模擬實際環境中的網絡控制和結構。在Mininet里利用mn命令就可以快速創建一個SDN網絡,還可以根據實驗需要選擇不同的控制器(NOX\POX\ryu\Floodlight\ OpenDaylight等)。同時,Mininet系統兼容性強,可以在不同操作系統上運行。
Ryu控制器是一款完全由Python開發的開源控制器,支持各種版本的OpenFlow協議,用戶可以用Python語言在控制器上開發自己的應用。
開源軟件sFlow-trend能顯示實時的網絡流量趨勢圖,每秒鐘更新一次,軟件的“定義流”描述了如何根據不同的流量屬性(地址、端口、VLAN、協議、國家、DNS名稱等)來劃分流量。本次仿真實驗涉及到的軟件都已經提前安裝調試。
4.2? 實驗環境信息
本次實驗包括一臺物理機及兩臺虛擬機,詳細信息如表1所示。
4.3? 實驗操作步驟
(1)在虛擬機A上切換到Ryu的APP目錄下,通過輸入如命令:ryu-manager ofctl_rest.py simple_switch.py,啟動Ryu控制器。其中simple_switch.py模塊是一個簡單的OpenFlow交換機,ofctl_rest.py是為了打開控制器的北向接口供postman連接使用。
(2)在Mininet仿真器上構建網絡拓撲如圖2所示,并設置控制器為遠程控制器虛擬機A。輸入命令如下:
mn --topo=single,3 --controller=remote,ip=192.168.9.23,port=6633
(3)配置 sFlow-trend。 在虛擬機B上運行sFlow-trend:sudo docker run -p 6343:6343/udp -p 8008:8008 sflow/flow-trend。然后配置sFlow-trend,這樣才能收集到流量信息進行分析和呈現,輸入命令:sudo ovs-vsctl -- --id=@sflow create sflow agent=s1-eth0 target=\"127.0.0.1:6343\" sampling=10 polling=20 -- -- set bridge s1 sflow=@sflow,其中是s1-eth0是連接網絡主機h1的網卡接口。然后在物理機U1上的edge瀏覽器打開網址:192.168.9.18:8008/app/ flow-trend/html/ index.html,然后在Keys輸入:ipsource, ,在Value列輸入bps ,然后點擊右面的 Submit提交,將自動轉到圖形化流量監控頁面。此時看到流量的速度是正常的。
(4)在物理機U1上運行postman,利用get操作可以獲得已有的流表,所以訪問網址填寫:http://192.168.9.23:8080/stats/flow/1,功能選擇get方式,點擊send后,如果成功發送回返回200OK,并且在Body里面顯示出流表,得到dpid、priority、timeout、cookie、port等字段的值。1DC8A686-F18D-4E7E-BA67-1E2ED0C3E8F2
(5)模擬發起泛洪式 DDoS 攻擊。在mininet終端下,將h1(IP地址:10.0.0.1)作為攻擊者向h3(IP地址:10.0.0.3)進行ping flood攻擊,用來模擬DDoS泛洪式攻擊。在mininet終端下,輸入命令h1 ping -f h3,-f的意思就是泛洪攻擊。從圖3可以看出當,命令執行后,監測s1-eth0的傳輸流量劇增。
(6)在物理機U1上使用Postman下發流表抵抗DDoS攻擊。為了抑制攻擊流,我們通過下發流表以控制從交換機的端口1經過的流量,首先在postman中,訪問網址為192.168.9.23:8080/stats/flowentry/add,功能選擇post方式,在Body中選擇raw進行流表的編寫,代碼見圖4。
dpid代表交換機的編號,priority表示優先級,優先級數字越大表示越優先處理,在match寫入的in_port代表交換機輸入端口為1的端口,在本實驗中也就是交換機連接H1的端口,actions中為空,表示交換機對于H1的流量不作任何處理。在抑制ICMP的流量同時,為了確保http服務的正常運行,加上dl_type字段和nw_proto字段,其中,dl_type字段代表IP協議,其中2048代表IPv4協議,nw_proto代表IP協議上搭載的協議類型,其中1代表ICMP協議。編寫完成后,點擊send進行流表下發,如果發送成功會返回200OK。通過postman進行流表下發之后,再次進行測試,從圖5發現H1對H3的ping泛洪攻擊失效,而H1對H3的正常的http訪問沒有受到影響。
5? 結? 論
本文在SDN 網絡仿真實驗環境中,結合使用Ryu控制器、Postman和sFlow-trend流量監控等軟件,展示了拓撲創建、DDoS泛洪攻擊、流量監測、流表下發等過程。利用sFlow-trend軟件對網絡流量情況進行了實時的檢測和圖像顯示,最后通過下發流表到交換機的方式來抵御DDoS攻擊,效果明顯,對真實網絡安全防御具有一定的參考意義。
參考文獻:
[1] “科普中國”科學百科.軟件定義網絡 [EB/OL].[2022-01-10].https://baike.baidu.com/item/軟件定義網絡/9117977.
[2] 錢振勇.基于mininet平臺模擬SDN架構對DDoS的研究 [J].電腦與電信,2021(7):60-63.
[3] 陳飛.SDN中的DDoS攻擊防御方法研究 [J].信息與電腦(理論版),2018(12):216-217.
[4] 陳鐳,楊章靜,黃璞.軟件定義網絡環境下DoS攻防實驗設計 [J].實驗技術與管理,2021,38(2):53-57.
[5] 龔冉.基于SDN的負載均衡和DDOS攻擊檢測技術的研究 [D].合肥:安徽大學,2016.
[6] 萬凡. SDN環境下的DDoS攻擊檢測技術與防護機制研究 [D].成都:西南交通大學,2018.
作者簡介:廖小群(1983—),男,漢族,廣西全州人,講師,網絡工程師,碩士,研究方向:高職教育信息化、計算機網絡安全技術;黃華東(1978—),男,壯族,廣西巴馬人,工程師,本科,研究方向:計算機網絡技術及信息安全。
收稿日期:2022-02-20
基金項目:2021年度廣西高校中青年教師科研基礎能力提升項目(2021KY1251)1DC8A686-F18D-4E7E-BA67-1E2ED0C3E8F2