關鍵詞:軟件定義網絡;低速率拒絕服務攻擊;攻擊溯源;攻擊防御
中圖分類號:TP393 ? ? 文獻標識碼:A文章編號:2096-4706(2021)21-0142-04
Abstract: The software-defined network (SDN) environment will also suffer from the low-rate denial-of-service (LDoS) attack of the traditional network. If the defense strategy can not be taken immediately after the network is attacked, it will bring a great threat to the network. Therefore, according to the global network topology managed by the controller, an attack link traceability mechanism based on Packet_in message is proposed, and the controller sends the stream table to block the attack port to achieve the purpose of attack defense. The experimental results show that this method can effectively defend against LDoS attacks.
Keywords: SDN; LDoS attack; attack traceability; attack defense
0 ?引 ?言
低速率拒絕服務攻擊發(fā)送低速周期脈沖流量[1],占用網絡可用資源危害同樣不容小覷。檢測出LDoS(Low-rate Denial-of-Service)攻擊應該立即采取防御策略,防止網絡危害進一步擴大,因此研究LDoS攻擊的防御意義重大。相關研究領域人員主要關注網絡攻擊檢測,對防御的研究相對較少。不同于其他方法,LDoS攻擊防御方法根據SDN(Software Defined Network)環(huán)境的特性,有針對性地提出Packet_in消息的路徑溯源機制,實現攻擊防御的效果。
1 ?全局網絡拓撲發(fā)現機制
在SDN網絡中,官方沒有給出確切的鏈路發(fā)現機制標準,多數控制器使用初代NOX控制器拓撲發(fā)現機制。由此,鏈路層發(fā)現協議(link layer discovery protocol, LLDP)成為所有廠商網絡設備的標準協議,由LLDP協議[2]控制器可以實時監(jiān)控全局網絡拓撲,網絡設備不僅可以告知控制器自身的位置信息,而且還可以發(fā)現相鄰網絡設備的位置信息,便于構建全局拓撲圖。
本文以ONOS控制器為例,在控制器所管轄的范圍內,控制器向區(qū)域內所有交換機下發(fā)帶有LLDP數據幀的匹配流表項[3],此條流規(guī)則優(yōu)先級最高,當交換機匹配到LLDP數據幀時將其封裝到Packet_in消息并發(fā)送到控制器。如圖1所示,控制器通過洪泛的方式向連接的交換機下發(fā)Packet_out消息流表,此消息流表封裝了LLDP數據幀;交換機S1接收到Packet_out后,向相鄰交換機S2、S3轉發(fā)封裝LLDP數據幀的Packet_out消息;交換機S2、S3接收到數據幀后,依據自身匹配流表項規(guī)則,同樣將LLDP數據幀封裝到Packet_in消息并提交給控制器。由這樣的鏈路發(fā)現機制,控制器可以發(fā)現鏈路(S1,S2)、(S1,S3)的存在。ONOS控制器默認在同一時刻以3 s為周期向所有交換機下發(fā)packet_out消息,以維護全局網絡拓撲圖。
2.1 ?Packet_in消息解析MAC地址
在發(fā)生LDoS攻擊網絡中,控制器可以收集所有流量信息,查找Info為Type: OFPT_PACKET_IN的流量,如圖2所示,OpenFlow1.3協議[4]封裝了data數據(包括網絡的2~4層),數據鏈路層包含MAC地址,提取其中的源MAC地址和目的MAC地址。Packet_in消息中MAC地址表示為:P_Maci=(P_SrcMaci,P_DstMaci),其中(i=1,2,3,…)表示Packet_in數據包不同的MAC地址序號。
控制器與OpenFlow交換機通過安全通道進行通信,彼此發(fā)送Hello消息建立連接,雙方選擇Hello消息最低版本協議作為通信協議。雙方建立連接后,控制器需要獲取交換機的特性信息,包括交換機的ID、緩沖區(qū)數、端口等信息??刂破魍ㄟ^向交換機發(fā)送Features Request消息查詢交換機特性,消息僅包含OpenFlow Header。交換機收到消息會返回Features Reply消息,以此來獲取交換機信息。
交換機每收到一條數據流后,會查找自身流表,查找與數據流包頭相匹配的流表項;如果可以匹配流表中的流規(guī)則,交換機會根據流表中的action流表處理數據流;如果匹配不到流規(guī)則,交換機會將數據包封裝到Packet_in消息交給控制器處理。
LDoS攻擊通過偽造源IP地址數據包,周期性發(fā)送低速率虛假數據包,OpenFlow交換機對初次進來的數據流查找流表項時,并沒有與之匹配的流規(guī)則,此時會觸發(fā)Packet_in事件。之后在交換機中會新建一條流表項,此流表項將對下次符合匹配規(guī)則的數據流進行相同的流處理。
如圖3所示,在仿真環(huán)境下,通過在交換機S1中設置如圖3所示的命令進行流表收集。以10秒為周期收集流表信息,循環(huán)50次保存在collect1.txt文本中。
3.1 ?溯源流表項
在檢測到有攻擊存在時,控制器立即收集Packet_in消息,提取Packet_in消息信息,以建立溯源流表項。溯源流表項包含Packet_in消息解析出來的關鍵信息P_Maci以及入端口in_port[5],溯源流表項的優(yōu)先級最高為65535,行為動作是向控制器發(fā)送Packet_in消息。與溯源流表項中P_Maci相匹配的攻擊流量會被優(yōu)先選擇出來,OpenFlow交換機通過溯源流表項與攻擊流的匹配結果觸發(fā)Packet_in消息,由此控制器可以得到數據包的轉發(fā)路徑。
3.2 ?溯源過程圖
以圖5為例闡述LDoS攻擊溯源過程,同時它也是實驗拓撲圖。主機h1和h4分別向h9和h8發(fā)起攻擊,攻擊鏈路分別為:h1—S1—S4—S5—S6—h9和h4—S2—S4—S5—h8。假設由控制器提取的P_Maci分別為P_Mac1(dl_src=00.00.00.00.00.01,dl_dst=00.00.00.00.00.09)、P_Mac2(dl_src=00.00.00.00.00.04,dl_dst=00.00.00.00.00.08)??刂破鞲鶕馕龅腜acket_in消息構建溯源流表項(僅列關鍵匹配項),如表1所示。
以入端口向上溯源的終節(jié)點為起點依次排列溯源節(jié)點,得到溯源節(jié)點圖,控制器中保存的攻擊路徑為:h1—S1—S4—S5—S6—h9和h4—S2—S4—S5—h8。
3.3 ?溯源算法
具體的溯源算法為:
輸入:控制器解析Packet_in消息得P_Mac={P_Mac1 ,P_Mac2,…,P_Macn};溯源起始交換機號:S_ID0。
過程:
構建溯源流表項TraceFlow
TraceFlow={priority:65535;match:P_Mac,action: controller}
將S_ID0加入溯源節(jié)點圖TP中
S_ID=S_ID0
加入溯源流表項TraceFlow到關鍵路徑交換機S_ID中
TraceUp()
if(TraceFlow匹配到交換機流表項)
提取交換機流表項中in_port信息
控制器根據全局網絡拓撲以及in_port信息得知上一跳交換機ID
控制器將上一跳交換機ID加入TP中
控制器刪除TraceFlow
if(上一跳為交換機)
控制器下發(fā)溯源流表項TraceFlow
else if(上一跳為主機)
入端口向上溯源結束
end if
else
正常流量轉發(fā)
end if
TraceBack()
if(TraceFlow匹配到交換機流表項)
提取匹配流表項action中output信息
控制器根據全局網絡拓撲以及output信息得知下一跳交換機ID
if(下一跳為交換機)
控制器下發(fā)溯源流表項TraceFlow
else if(下一跳為主機)
出端口向下溯源結束
end if
else
正常流量轉發(fā)
end if
輸出:溯源節(jié)點圖TP
4 ?LDoS攻擊防御方法
由上述溯源節(jié)點圖,追溯到向上溯源的攻擊主機,可以得到與之相連的交換機S_ID。通過控制器的全局網絡拓撲得出交換機S_ID所連接的所有in_port端口號port。
通過溯源的結果得到攻擊主機以及與之相連的交換機端口號port??刂破魍ㄟ^下發(fā)流表的方式進行端口封禁,下發(fā)流表項如表2所示。端口封禁可避免LDoS攻擊流再次進入網絡造成威脅,進而從源頭上徹底阻斷攻擊[6],同時也可避免攻擊不斷產生的Packet_in消息對控制器造成的壓力。
在操作系統Ubantu下,使用Mininet和ONOS控制器實現仿真環(huán)境。實驗拓撲圖如圖5所示,主機h1和h4分別向h9和h8發(fā)起攻擊,主機h2、h5和h9發(fā)送背景流量模擬真實網絡環(huán)境。通過使用wireshark抓包軟件,抓取攻擊和防御過程中的流量變化,分析實驗結果。如圖6所示,攻擊30 s產生,結束時間為90 s,第60 s開始實施防御措施。所有數據包數開始下降(上線),Packet_in數據包數也開始下降(下線)。實驗結果表明,本文方法可以實現LDoS攻擊的防御。
6 ?結 ?論
本文通過控制器提取Packet_in消息和交換機中攻擊流表特征,并利用控制器全局網絡拓撲構建溯源節(jié)點圖,下發(fā)流表進行端口封禁,實現LDoS攻擊的防御。但是防御措施實施后總數據包并沒有立即回到初始狀態(tài)。這是因為控制器以廣播的形式對攻擊流量產生尋址消息,下一步計劃防御后進行數據清洗工作。
參考文獻:
[1] 顏通,白志華,高鎮(zhèn),等.SDN環(huán)境下的LDoS攻擊檢測與防御技術 [J].計算機科學與探索,2020,14(4):566-577.
[2] 謝升旭,魏偉,邢長友,等.面向SDN拓撲發(fā)現的LDoS攻擊防御技術研究 [J].計算機工程與應用,2020,56(10):88-93.
[3] 鄭正,徐明偉,李琦,等.SDN網絡拓撲污染攻擊防御機制研究 [J].計算機研究與發(fā)展,2018,55(1):207-215.
[4] 劉向舉,劉鵬程,路小寶,等.基于SD-IoT的DDoS攻擊防御方法 [J].計算機工程與設計,2021,42(11):3001-3008.
[5] 趙茹東.軟件定義網絡中DDoS攻擊檢測和防御技術研究 [D].南京:南京理工大學,2018.
[6] 鐘金,竇萬峰,朱恩霞.基于源的DDoS攻擊的檢測與防御技術 [J].計算機應用與軟件,2005(10):26-27.
作者簡介:路小寶(1995—),男,漢族,安徽蚌埠人,碩士研究生在讀,研究方向:物聯網、軟件定義網絡。