魏松杰,孫鑫,趙茹東,吳超
?
SDN中IP欺騙數(shù)據(jù)分組網(wǎng)絡(luò)溯源方法研究
魏松杰,孫鑫,趙茹東,吳超
(南京理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇 南京 210094)
IP數(shù)據(jù)分組溯源方法是指從目的地址出發(fā),逐跳找到源主機(jī)。該方法在軟件定義網(wǎng)絡(luò)(SDN, software defined network)框架下,通過控制器向網(wǎng)絡(luò)中相關(guān)SDN交換機(jī)添加探測流表項(xiàng),并根據(jù)目標(biāo)數(shù)據(jù)分組觸發(fā)的有效溯源Packet-in消息,找到目標(biāo)數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑及源主機(jī)。所提方案可以為調(diào)試網(wǎng)絡(luò)故障提供方便,使網(wǎng)絡(luò)管理員可以得到任意一個(gè)數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑,應(yīng)對IP地址欺騙等網(wǎng)絡(luò)安全問題。實(shí)驗(yàn)證明,該溯源方法能夠及時(shí)、準(zhǔn)確地找到目標(biāo)數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑,不影響網(wǎng)絡(luò)中其他數(shù)據(jù)流轉(zhuǎn)發(fā),且無明顯的系統(tǒng)開銷。
SDN;IP地址欺騙;IP溯源;探測流表項(xiàng)
近年來,網(wǎng)絡(luò)安全日益重要。分布式拒絕服務(wù)(DDoS, distributed denial of service)攻擊是攻擊方利用多臺主機(jī)構(gòu)成攻擊平面對受害者實(shí)施攻擊。攻擊者通過發(fā)送大量數(shù)據(jù)分組,使受害者忙于處理大量的攻擊數(shù)據(jù)分組,被迫減速甚至崩潰和關(guān)閉,從而使受害者拒絕向合法用戶和計(jì)算機(jī)提供服務(wù)[1]。同時(shí),DDoS還可對網(wǎng)絡(luò)設(shè)備(包括路由器、交換機(jī)等)和網(wǎng)絡(luò)鏈路發(fā)起攻擊,攻擊者利用巨大的網(wǎng)絡(luò)流量,造成路由器與交換機(jī)等網(wǎng)絡(luò)設(shè)備過載,導(dǎo)致網(wǎng)絡(luò)功能或正常服務(wù)癱瘓,網(wǎng)絡(luò)性能大幅度下降。
網(wǎng)絡(luò)攻擊等網(wǎng)絡(luò)惡意行為常使用IP地址欺騙。惡意主機(jī)使用偽造的IP地址不斷給攻擊目標(biāo)發(fā)送大量數(shù)據(jù)分組,超出目標(biāo)主機(jī)正常處理的能力范圍,使受害者無法直接找到攻擊者,達(dá)到隱藏惡意主機(jī)在網(wǎng)絡(luò)中真實(shí)位置的目的[2]。此外,惡意主機(jī)使用IP 地址欺騙繞過正常的數(shù)據(jù)分組請求者認(rèn)證過程,取得目標(biāo)系統(tǒng)信任,從而非法獲得機(jī)密信息或訪問受限制的網(wǎng)絡(luò)服務(wù)。因此,如何及時(shí)檢測具有偽造IP地址的數(shù)據(jù)分組,對網(wǎng)絡(luò)安全有著重要意義。
SDN[3]是一種轉(zhuǎn)發(fā)控制分離的新型網(wǎng)絡(luò)架構(gòu),SDN的提出為解決網(wǎng)絡(luò)攻擊提供了新的思路。SDN架構(gòu)實(shí)現(xiàn)對網(wǎng)絡(luò)集中控制,把轉(zhuǎn)發(fā)規(guī)則的制定集中到控制器中。數(shù)據(jù)的轉(zhuǎn)發(fā)由控制器下發(fā)的流表項(xiàng)統(tǒng)一指導(dǎo),由交換機(jī)等網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備實(shí)現(xiàn)轉(zhuǎn)發(fā)過程,這極大地幫助網(wǎng)絡(luò)提供商通過控制器以集中方式動(dòng)態(tài)改變網(wǎng)絡(luò)配置,而無需獨(dú)立訪問和重新配置分散在整個(gè)網(wǎng)絡(luò)中的各個(gè)設(shè)備[4]。SDN 架構(gòu)有利于網(wǎng)絡(luò)功能的革新發(fā)展,其可編程與全局特性能夠支持現(xiàn)有模塊解決多種傳統(tǒng)網(wǎng)絡(luò)的現(xiàn)存問題[5]。
本文所提方案結(jié)合了SDN網(wǎng)絡(luò)的優(yōu)點(diǎn),提出基于SDN的IP欺騙數(shù)據(jù)分組網(wǎng)絡(luò)溯源方法。本方案完全依賴于SDN交換機(jī)的正常數(shù)據(jù)處理功能,不影響網(wǎng)絡(luò)中其他正常數(shù)據(jù)流的轉(zhuǎn)發(fā),對交換機(jī)無需額外的軟硬件修改,且本方案可以根據(jù)欺騙數(shù)據(jù)分組的實(shí)際轉(zhuǎn)發(fā)情況,動(dòng)態(tài)查找欺騙數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑,準(zhǔn)確率高,系統(tǒng)開銷小。
IP地址欺騙通過偽造IP協(xié)議數(shù)據(jù)分組組頭中的源地址,使網(wǎng)絡(luò)中數(shù)據(jù)分組轉(zhuǎn)發(fā)節(jié)點(diǎn)和接收節(jié)點(diǎn)所看到的數(shù)據(jù)分組源IP地址并不是數(shù)據(jù)分組的實(shí)際發(fā)送者在網(wǎng)絡(luò)中的真實(shí)IP地址。偽造數(shù)據(jù)分組的源IP地址,既能保證數(shù)據(jù)分組被網(wǎng)絡(luò)正常路由轉(zhuǎn)發(fā)到目標(biāo)地址節(jié)點(diǎn),又能使數(shù)據(jù)分組接收者難以定位真實(shí)來源。通過網(wǎng)絡(luò)中不同節(jié)點(diǎn)間的協(xié)作,快速回溯欺騙數(shù)據(jù)分組的路由路徑至真實(shí)發(fā)送主機(jī)或入口交換機(jī),對提高網(wǎng)絡(luò)安全水平、防范網(wǎng)絡(luò)攻擊威脅、調(diào)查取證網(wǎng)絡(luò)安全事件等應(yīng)用具有重要的技術(shù)意義。
IP溯源的目的是找到發(fā)送目標(biāo)數(shù)據(jù)分組的真實(shí)源主機(jī)及目標(biāo)數(shù)據(jù)分組實(shí)際轉(zhuǎn)發(fā)路徑。IP溯源常用的方法有鏈路測試法、數(shù)據(jù)分組標(biāo)記法、日志記錄法等。
表1 各個(gè)溯源技術(shù)評估
Patel等[6]使用鏈路測試法進(jìn)行IP溯源,該方法首先由網(wǎng)絡(luò)管理員構(gòu)造一個(gè)覆蓋網(wǎng),當(dāng)受害者受到攻擊時(shí),向受害者上游路由器注入洪流,加重攻擊鏈路負(fù)載。在溯源時(shí),根據(jù)受害者接收速率變化判斷攻擊路徑,鏈路測試法需要人工完成很多工作,只能追溯單個(gè)攻擊流。文獻(xiàn)[7-8]使用數(shù)據(jù)分組標(biāo)記法追蹤目標(biāo)數(shù)據(jù)分組。數(shù)據(jù)分組標(biāo)記法對分組頭空閑字段重定義,利用數(shù)據(jù)分組組頭的一些字段,寫入數(shù)據(jù)分組經(jīng)過的路徑信息,當(dāng)帶標(biāo)記的數(shù)據(jù)分組到達(dá)受害主機(jī)且被確定為欺騙數(shù)據(jù)分組后,就可根據(jù)該數(shù)據(jù)分組中記錄的路徑信息找到源主機(jī)。Foroushani等[9]使用日志記錄法進(jìn)行IP溯源。日志記錄法是由路由器將經(jīng)過的數(shù)據(jù)分組信息記錄下來,以備溯源時(shí)使用,但這種方法要求系統(tǒng)具有較大的存儲空間。
SDN網(wǎng)絡(luò)具有邏輯中心化和控制管理可編程策略,這為解決IP欺騙數(shù)據(jù)分組的溯源問題提供了新的技術(shù)支持和實(shí)施平臺。Francois 和Festor[10]在SDN架構(gòu)下提出通過查看流表項(xiàng)的方法找到源主機(jī),但是由于流表項(xiàng)的匹配精度不確定,找到的主機(jī)往往是一個(gè)集合,無法準(zhǔn)確地定位源主機(jī)。夏彬[11]提出了使用Renyi熵的方法判斷一個(gè)交換機(jī)是否轉(zhuǎn)發(fā)過欺騙數(shù)據(jù)分組,Cui等[12]提出通過查詢交換機(jī)中一些統(tǒng)計(jì)數(shù)據(jù)判斷一個(gè)交換機(jī)是否在欺騙數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑上。這兩種溯源方法都受設(shè)置的閾值和實(shí)際網(wǎng)絡(luò)中數(shù)據(jù)分組發(fā)送情況的影響較大。Agarwal等[13]提出通過給交換機(jī)標(biāo)號并添加流表項(xiàng)的方法從源主機(jī)追蹤數(shù)據(jù)分組的發(fā)送路徑。Tammana[14]和Narayan[15]通過添加流表項(xiàng),修改數(shù)據(jù)分組組頭某些字段,使該字段記錄路徑信息,這種方法需要額外添加的流表項(xiàng)數(shù)目較多,且受數(shù)據(jù)分組組頭字段長度的限制。各個(gè)溯源技術(shù)的詳細(xì)性能評估,如表1所示。
本文在SDN框架下提出一種通過控制器向網(wǎng)絡(luò)中相關(guān)的交換機(jī)中添加探測流表項(xiàng)的方法,在網(wǎng)絡(luò)中追蹤欺騙數(shù)據(jù)分組的流入端口,找到發(fā)送IP欺騙數(shù)據(jù)分組的源主機(jī)。添加的探測流表項(xiàng)具有最高優(yōu)先級,與溯源的欺騙數(shù)據(jù)分組特征進(jìn)行精確匹配,對應(yīng)的操作為發(fā)送Packet-in消息給控制器。當(dāng)目標(biāo)欺騙數(shù)據(jù)分組經(jīng)過添加了探測流表項(xiàng)的交換機(jī)時(shí),會觸發(fā)相應(yīng)的Packet-in消息,控制器根據(jù)該消息并利用全局網(wǎng)絡(luò)拓?fù)湫畔⒌玫缴弦惶畔ⅰ?/p>
本節(jié)定義或明確一些名詞和概念,用以在后續(xù)章節(jié)中描述提出的溯源方案。
定義1 欺騙數(shù)據(jù)分組的特征集(簡稱特征集):特征集由溯源請求者提出。以O(shè)penFlow[16]v1.0為例,特征集是流表項(xiàng)分組頭域元素的集合的子集。
定義2 探測流表項(xiàng):探測流表項(xiàng)的匹配域是特征集以及入端口(入端口是必備項(xiàng)),在流表中具有最高匹配優(yōu)先級,探測流表項(xiàng)的動(dòng)作是發(fā)送Packet-in消息給控制器。
定義3 溯源路徑樹:控制器中有一個(gè)樹型結(jié)構(gòu),用以記錄溯源數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑。每當(dāng)查找到一個(gè)交換機(jī)(主機(jī))時(shí),都將該交換機(jī)的DPID(主機(jī)的IP)加入到溯源路徑樹中。由樹的根節(jié)點(diǎn)到子節(jié)點(diǎn)得到溯源路徑。
定義4 有效溯源Packet-in消息:溯源開始后,觸發(fā)該消息的數(shù)據(jù)分組符合溯源請求者提出的特征,控制器之前已向發(fā)送該消息的交換機(jī)添加過探測流表項(xiàng),且發(fā)送該消息的交換機(jī)in_port端口連接的交換機(jī)或主機(jī)未被溯源過。
定義5 無效溯源Packet-in消息:溯源開始后,觸發(fā)該消息的數(shù)據(jù)分組符合溯源請求者提出的特征,但控制器之前未向發(fā)送該消息的交換機(jī)添加過探測流表項(xiàng),或發(fā)送該消息的交換機(jī)in_port端口連接的交換機(jī)或主機(jī)已被溯源過。
本文通過添加探測流表項(xiàng)的方法找到欺騙數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑及源主機(jī)。圖1是本溯源算法的具體流程圖。溯源過程如下。
1) 溯源請求者給出特征集和溯源起點(diǎn)交換機(jī)的DPID,控制器將溯源起點(diǎn)交換機(jī)DPID作為根節(jié)點(diǎn)加入溯源路徑樹中。溯源起點(diǎn)交換機(jī)為當(dāng)前交換機(jī)。
圖1 溯源流程
2) 控制器向當(dāng)前交換機(jī)中添加條探測流表項(xiàng)(為當(dāng)前交換機(jī)的端口數(shù)目-1。除了數(shù)據(jù)分組經(jīng)過的下一跳端口外,其余每個(gè)端口都對應(yīng)一條探測流表項(xiàng)),監(jiān)聽有效溯源Packet-in消息。
3) 若控制器接收到有效溯源 Packet-in消息,控制器根據(jù)全局網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息及 in_port 值得知數(shù)據(jù)分組經(jīng)過的上一跳節(jié)點(diǎn)信息,將上一跳節(jié)點(diǎn)信息加入溯源路徑樹中。若上一跳節(jié)點(diǎn)是交換機(jī),則將上一跳交換機(jī)記為當(dāng)前交換機(jī)??刂破鲗⒃摂?shù)據(jù)分組Packet-out至下一跳節(jié)點(diǎn)。
4) 控制器刪除發(fā)送有效溯源Packet-in消息的交換機(jī)中對應(yīng)的探測流表項(xiàng)。
5) 重復(fù)2)~4),當(dāng)查找到的交換機(jī)in_port端口連接的是主機(jī)時(shí),一條路徑的溯源結(jié)束。
6) 控制器長時(shí)間沒有收到有效溯源Packet-in消息,計(jì)時(shí)器超時(shí),溯源結(jié)束。
本節(jié)以圖2中所示SDN網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為例,對本文提出的通過添加探測流表項(xiàng)溯源IP數(shù)據(jù)分組的方法進(jìn)行示范說明。
在拓?fù)渚W(wǎng)絡(luò)中,主機(jī)1使用虛假的IP地址向主機(jī)4發(fā)送數(shù)據(jù)分組,在查找該數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑時(shí),溯源請求者4需告知控制器溯源起點(diǎn)交換機(jī)的DPID(交換機(jī)4的DPID)及數(shù)據(jù)分組的特征集,從主機(jī)4開始溯源。溯源請求者給出的特征集是:源IP地址、目的IP地址、數(shù)據(jù)分組的類型以及目的端口號。
圖2 算法實(shí)現(xiàn)過程示例
控制器構(gòu)造的探測流表項(xiàng)如下。
1) 匹配域:數(shù)據(jù)分組入端口及與特征集對應(yīng)的2~4層網(wǎng)絡(luò)控制信息。
2) 優(yōu)先級:65 535(最高優(yōu)先級)。
3) 動(dòng)作:將數(shù)據(jù)分組封裝為Packet-in消息并轉(zhuǎn)發(fā)給控制器。
在溯源過程中,將欺騙分組經(jīng)過的交換機(jī)標(biāo)記為目標(biāo)節(jié)點(diǎn),將目標(biāo)節(jié)點(diǎn)加入到溯源路徑樹上,遍歷溯源路徑樹得到目標(biāo)節(jié)點(diǎn)匹配到的欺騙數(shù)據(jù)分組數(shù)量,由此得到欺騙分組來自溯源目標(biāo)的概率。
控制器向交換機(jī)4添加3條探測流表項(xiàng)(如圖2中①所示,添加的3條探測流表項(xiàng)分別對應(yīng)于4的端口1、端口2和端口3),當(dāng)欺騙數(shù)據(jù)分組經(jīng)過4時(shí),會觸發(fā)有效溯源Packet-in消息(如圖2中②所示)??刂破鞲鶕?jù)全局網(wǎng)絡(luò)拓?fù)湫畔⒓霸揚(yáng)acket-in消息中in_port值得知4的上一跳記為′。圖2中4是起點(diǎn)交換機(jī),欺騙分組經(jīng)過的概率為1,′為交換機(jī)3和2,欺騙分組經(jīng)過的概率與溯源路徑樹上匹配到的欺騙數(shù)據(jù)分組的數(shù)目有關(guān),沒有欺騙數(shù)據(jù)分組經(jīng)過交換機(jī)5,則5的概率為0。然后控制器將對應(yīng)端口的探測流表項(xiàng)的動(dòng)作修改為轉(zhuǎn)發(fā)給下一跳(如圖2中③所示),并將觸發(fā)該消息的數(shù)據(jù)分組Packet-out至4的端口4(如圖2中④所示)。接下來,控制器向′添加探測流表項(xiàng),當(dāng)欺騙數(shù)據(jù)分組經(jīng)過′時(shí)會觸發(fā)有效溯源Packet-in消息,控制器得知的上一跳是,同樣根據(jù)溯源路徑樹中對應(yīng)節(jié)點(diǎn)經(jīng)過的欺騙數(shù)據(jù)分組數(shù)目得到路由器概率。控制器將對應(yīng)端口的探測流表項(xiàng)的動(dòng)作修改為轉(zhuǎn)發(fā)到下一跳并將觸發(fā)該消息的數(shù)據(jù)分組Packet-out至相應(yīng)端口。接下來控制器會向添加探測流表項(xiàng),當(dāng)欺騙數(shù)據(jù)分組經(jīng)過時(shí)會觸發(fā)有效溯源Packet-in消息,控制器根據(jù)全局網(wǎng)絡(luò)拓?fù)湫畔⒓霸揚(yáng)acket-in消息中in_port值得知的上一跳是主機(jī)1,一條路徑的溯源結(jié)束。
本文提出的IP溯源方法中,轉(zhuǎn)發(fā)和溯源均使用了控制器獲取全局網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的功能??刂破骼猛?fù)浒l(fā)現(xiàn)協(xié)議獲取全局網(wǎng)絡(luò)拓?fù)湫畔?,將全局網(wǎng)絡(luò)拓?fù)湫畔⒈4嬖谝粋€(gè)圖結(jié)構(gòu)中,并利用路徑計(jì)算方法計(jì)算數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑。當(dāng)數(shù)據(jù)分組觸發(fā)Packet-in消息時(shí),若正常轉(zhuǎn)發(fā)該數(shù)據(jù)分組,控制器會利用全局網(wǎng)絡(luò)拓?fù)湫畔⒂?jì)算該數(shù)據(jù)分組經(jīng)過的路徑,并向該路徑上所有交換機(jī)下發(fā)轉(zhuǎn)發(fā)該數(shù)據(jù)分組的流表項(xiàng)。
流表項(xiàng)指導(dǎo)數(shù)據(jù)分組轉(zhuǎn)發(fā)。傳統(tǒng)網(wǎng)絡(luò)中路由表項(xiàng)是路由器運(yùn)行路由協(xié)議自動(dòng)構(gòu)建的,而SDN交換機(jī)中的流表項(xiàng)由控制器下發(fā),且SDN交換機(jī)中的流表項(xiàng)可更精確地匹配,進(jìn)行更復(fù)雜的數(shù)據(jù)分組處理動(dòng)作。如圖3所示,流表項(xiàng)由匹配域、優(yōu)先級、計(jì)數(shù)器、指令集、超時(shí)計(jì)時(shí)器、緩存等字段構(gòu)成。
匹配域優(yōu)先級計(jì)數(shù)器指令集超時(shí)計(jì)時(shí)器Cookie
本文主要使用了流表項(xiàng)的匹配域、優(yōu)先級和指令集3個(gè)字段。匹配域包括1到4層的網(wǎng)絡(luò)信息,與符合條件的數(shù)據(jù)分組匹配。優(yōu)先級值的范圍是[0, 65 535],數(shù)據(jù)分組優(yōu)先與優(yōu)先級高的流表項(xiàng)匹配。指令集中包含一組指令,當(dāng)匹配到該流表項(xiàng)時(shí),按一定順序執(zhí)行這些指令。本文只使用一級流表結(jié)構(gòu),即所有流表項(xiàng)均位于流表0中。用于處理正常數(shù)據(jù)分組轉(zhuǎn)發(fā)的流表項(xiàng)(不包括table-miss流表項(xiàng))中,匹配域?yàn)橐蕴W(wǎng)協(xié)議類型和目的IP地址,優(yōu)先級為1,指令集動(dòng)作是轉(zhuǎn)發(fā)到交換機(jī)某一端口。
本文中,控制器對探測流表項(xiàng)的下發(fā)和修改都是通過OpenFlow協(xié)議中Flow-mod消息實(shí)現(xiàn)的。通過Flow-mod消息,控制器能夠指定下發(fā)給網(wǎng)絡(luò)交換機(jī)的流表項(xiàng)的匹配域、優(yōu)先級、生存時(shí)間等,也可以修改某一個(gè)交換機(jī)中特定的流表項(xiàng)。
本文溯源得到的數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑會構(gòu)成一個(gè)樹型結(jié)構(gòu)(若溯源只得到一條路徑,則溯源產(chǎn)生的路徑構(gòu)成一條直線)。為了能夠處理多條路徑的情況,控制器中保存了用于記錄多條路徑的樹型數(shù)據(jù)結(jié)構(gòu),當(dāng)前得到的節(jié)點(diǎn)是溯源路徑樹中節(jié)點(diǎn)的子節(jié)點(diǎn)。
在多徑處理中,對有效溯源Packet-in消息的判斷,保證了溯源得到的節(jié)點(diǎn)父子關(guān)系的準(zhǔn)確性。
在溯源過程中,控制器向交換機(jī)添加探測流表項(xiàng)條數(shù)為其端口數(shù)目-1,對應(yīng)于交換機(jī)不同的端口。在同一個(gè)交換機(jī)中,數(shù)據(jù)分組觸發(fā)的每一個(gè)有效溯源Packet-in消息對應(yīng)一個(gè)溯源路徑樹的分支。若有多個(gè)主機(jī)發(fā)送目標(biāo)數(shù)據(jù)分組,數(shù)據(jù)分組會在路徑匯合的交換機(jī)中與多個(gè)探測流表項(xiàng)匹配,從而觸發(fā)多個(gè)有效溯源Packet-in消息。
根據(jù)溯源路徑樹上每個(gè)節(jié)點(diǎn)的有效溯源Packet-in消息與上一跳的節(jié)點(diǎn)信息,可以統(tǒng)計(jì)出到達(dá)當(dāng)前節(jié)點(diǎn)的欺騙分組中屬于上一節(jié)點(diǎn)的概率?;谶@個(gè)統(tǒng)計(jì)數(shù)據(jù),本文使用貝葉斯網(wǎng)絡(luò)模型計(jì)算溯源起點(diǎn)的欺騙分組來自每個(gè)溯源目標(biāo)的概率,即貝葉斯網(wǎng)絡(luò)中目標(biāo)節(jié)點(diǎn)的先驗(yàn)概率。控制器將對應(yīng)端口的探測流表項(xiàng)的動(dòng)作修改為轉(zhuǎn)發(fā)給下一跳,在回溯到溯源終點(diǎn)后,遍歷溯源路徑樹得到相應(yīng)節(jié)點(diǎn)匹配到的欺騙數(shù)據(jù)分組數(shù)量。
圖4 貝葉斯網(wǎng)絡(luò)模型
貝葉斯網(wǎng)絡(luò)是一個(gè)有向無環(huán)圖,它的節(jié)點(diǎn)表示隨機(jī)變量,兩個(gè)節(jié)點(diǎn)間的箭頭包含一個(gè)條件概率值,該值表示節(jié)點(diǎn)的依賴關(guān)系。通過溯源路徑樹可以直接構(gòu)造貝葉斯網(wǎng)絡(luò)拓?fù)鋱D,當(dāng)前節(jié)點(diǎn)來自上一節(jié)點(diǎn)的有效溯源Packet-in消息概率為條件概率值。
如圖4所示,1是溯源起點(diǎn),2是溯源目標(biāo),1、2、3、4、5、6是交換機(jī),根據(jù)貝葉斯聯(lián)合概率分配函數(shù)
可以得到
圖5所示為實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)?。?shí)驗(yàn)中主機(jī)1、3、5、7的IP地址分別為10.0.0.1、10.0.1.3、10.0.2.5、10.0.3.7,交換機(jī)1~8的DPID分別為1~8。在實(shí)驗(yàn)過程中,1、3、5都向7發(fā)送數(shù)據(jù)分組,其中,主機(jī)1冒用主機(jī)3的IP地址向7發(fā)送數(shù)據(jù)分組,數(shù)據(jù)分組轉(zhuǎn)發(fā)路徑為1—1—2—3—4—7—7,同時(shí),主機(jī)3、5也向h7發(fā)送數(shù)據(jù)分組,數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑分別為:3—5—4—7—7,5—6—8—7—7,如圖5所示。
圖5 實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)?/p>
各主機(jī)發(fā)送數(shù)據(jù)分組的字段情況如表2所示,本文進(jìn)行了兩組實(shí)驗(yàn),如表3所示,兩組實(shí)驗(yàn)中溯源請求者7分別給出了兩組不同的特征集,表中“—”表示沒有給出該項(xiàng)內(nèi)容,需要控制器找到符合該特征集的數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑。
表2 各主機(jī)發(fā)送數(shù)據(jù)分組情況
表3 兩組實(shí)驗(yàn)中的特征集
圖6和圖7分別是使用表3第一組特征集和第二組特征集進(jìn)行實(shí)驗(yàn)得出的結(jié)果。在實(shí)驗(yàn)中,各主機(jī)發(fā)送分組的分組間間隔均為1 s。由于第一組的特征集無法區(qū)分開1和3發(fā)出的數(shù)據(jù)分組,因此控制器找到兩條路徑。第二組可以區(qū)分開欺騙數(shù)據(jù)分組和其他類數(shù)據(jù)分組,因此可以精確找到欺騙數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑。由此可知,溯源請求者給出的特征集匹配精度越高,本方案越能精確地找到被溯源數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑。
圖6 第一組實(shí)驗(yàn)溯源結(jié)果
圖7 第二組實(shí)驗(yàn)溯源結(jié)果
圖8為實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)浔硎酒垓_分組的分布,該網(wǎng)絡(luò)拓?fù)淇梢詫?shí)現(xiàn)任意兩臺交換機(jī)的多條路徑連接,方便貝葉斯網(wǎng)絡(luò)模型下目標(biāo)節(jié)點(diǎn)先驗(yàn)概率的計(jì)算。
在網(wǎng)絡(luò)拓?fù)渲校?到8的DPID分別為1~8,為了考慮復(fù)雜情況下的分組發(fā)送情況,實(shí)驗(yàn)中增加背景流量,使用D-ITG作為背景流量發(fā)起工具。D-ITG可以發(fā)送不同協(xié)議、不同大小、不同速率的數(shù)據(jù)分組。實(shí)驗(yàn)過程如下。
1) 主機(jī)1到11中任兩臺主機(jī)相互進(jìn)行分組發(fā)送,其中主機(jī)1使用虛假的IP地址發(fā)送數(shù)據(jù)分組,1、2、5的發(fā)送分組速率分別是30 packet/s、5 packet/s、3 packet/s,其余主機(jī)發(fā)送分組速率為5 packet/s,各主機(jī)所發(fā)送的分組大小不同。
圖8 實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)?/p>
2) 在網(wǎng)絡(luò)中選取主機(jī)作為溯源起點(diǎn),本次選取7進(jìn)行實(shí)驗(yàn),欺騙主機(jī)1向7發(fā)送欺騙數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑有3條,分別是1—1—2—5—4—7—7、1—1—2—3—4—7—7、1—1—6—8—7—7,同時(shí),主機(jī)2到6向主機(jī)7正常發(fā)送分組。
3) 對于網(wǎng)絡(luò)多變的特性,欺騙數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑可能有多條,每條路徑上的路由器轉(zhuǎn)發(fā)的欺騙分組數(shù)量也不同。在交換機(jī)的組表項(xiàng)內(nèi)設(shè)置select類型,在組表項(xiàng)中設(shè)置多個(gè)行動(dòng)桶,每個(gè)行動(dòng)桶中指定面向物理端口的Output行動(dòng),數(shù)據(jù)分組通過行動(dòng)桶處理,在各行動(dòng)桶中設(shè)置不同權(quán)重作為各桶的使用頻率。在交換機(jī)1中,端口1~2與端口1~6的行動(dòng)桶權(quán)重比為7:3, 在交換機(jī)2中,端口1~2與端口1~6的行動(dòng)桶權(quán)重比為4:1。
控制器中的溯源路徑樹記錄數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑,通過溯源路徑樹構(gòu)造貝葉斯網(wǎng)絡(luò)拓?fù)鋱D,使用貝葉斯網(wǎng)絡(luò)模型計(jì)算溯源起點(diǎn)的欺騙分組中來自每個(gè)溯源目標(biāo)的概率,實(shí)驗(yàn)結(jié)果如圖9所示。
在江蘇省南通全市范圍內(nèi)選擇耕翻秸稈還田、耕翻無秸稈還田、淺旋秸稈還田、淺旋無秸稈還田、免耕秸稈還田共5種耕作方式的小麥田塊,每種耕作方式至少5塊田,每塊田的面積不低于 1 333 m2。
為了在復(fù)雜情況下進(jìn)行溯源準(zhǔn)確性的研究,本實(shí)驗(yàn)拓?fù)渚哂腥我鈨蓚€(gè)主機(jī)之間存在多條可達(dá)路徑的特點(diǎn)。實(shí)驗(yàn)中多臺主機(jī)向溯源起點(diǎn)發(fā)送數(shù)據(jù)分組,控制器向交換機(jī)下發(fā)探測流表項(xiàng),并把目標(biāo)節(jié)點(diǎn)加入到溯源路徑樹上。
控制器根據(jù)特征集從溯源起點(diǎn)逐跳找到對應(yīng)的目標(biāo)主機(jī)。對于有欺騙分組經(jīng)過的交換機(jī),控制器計(jì)算不同路徑發(fā)送過來的欺騙分組的數(shù)量,統(tǒng)計(jì)出不同路徑上欺騙分組的概率。根據(jù)實(shí)驗(yàn)結(jié)果,從溯源起始點(diǎn)7開始,標(biāo)記到達(dá)當(dāng)前節(jié)點(diǎn)的欺騙分組中屬于上一節(jié)點(diǎn)的概率,實(shí)驗(yàn)結(jié)果與理論值接近。
圖9 實(shí)驗(yàn)結(jié)果
為了更直接地運(yùn)用貝葉斯理論,整理圖9實(shí)驗(yàn)結(jié)果如表4所示。
表4 實(shí)驗(yàn)結(jié)果
結(jié)合表4與貝葉斯聯(lián)合概率分配函數(shù),在3條溯源路徑的終端,1的概率為78.6%,2的概率為13.3%,5的概率為8.1%,則1是欺騙主機(jī)的可能性為78.6%,相應(yīng)地,本次實(shí)驗(yàn)的溯源準(zhǔn)確性為78.6%。當(dāng)目標(biāo)欺騙數(shù)據(jù)分組經(jīng)過添加了探測流表項(xiàng)的交換機(jī)時(shí),會觸發(fā)相應(yīng)的Packet-in消息,控制器根據(jù)該消息并利用全局網(wǎng)絡(luò)拓?fù)湫畔⒌玫缴弦惶畔?,?dāng)欺騙數(shù)據(jù)分組的特征集符合該網(wǎng)絡(luò)的主機(jī)發(fā)送分組內(nèi)容時(shí),本文的IP欺騙數(shù)據(jù)分組網(wǎng)絡(luò)溯源方法認(rèn)為該主機(jī)有一定的可能性是IP欺騙者,且可能性與該主機(jī)的發(fā)送分組情況有關(guān)。為了能更好地反映發(fā)送分組速率與溯源準(zhǔn)確性的關(guān)系,只改變1發(fā)送分組的速率,通過實(shí)驗(yàn)得到各個(gè)溯源目標(biāo)的概率,獲得溯源準(zhǔn)確性,如表5所示。
表5 速率與溯源準(zhǔn)確性
可以得到,使用虛假IP地址的主機(jī)1發(fā)送分組速率增大時(shí),溯源準(zhǔn)確性對應(yīng)增加。本文所提的IP溯源方法適用于在網(wǎng)絡(luò)攻擊中找到發(fā)送目標(biāo)數(shù)據(jù)分組的真實(shí)源主機(jī)及目標(biāo)數(shù)據(jù)分組實(shí)際轉(zhuǎn)發(fā)路徑。
通過以上實(shí)驗(yàn)可以看出,本文的IP欺騙數(shù)據(jù)分組網(wǎng)絡(luò)溯源能夠快速找到欺騙數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑,定位欺騙數(shù)據(jù)分組的真實(shí)源地址,并在貝葉斯網(wǎng)絡(luò)模型下計(jì)算目標(biāo)節(jié)點(diǎn)的概率。本文的溯源方法能夠在網(wǎng)絡(luò)繁忙、流量復(fù)雜的情況下快速地進(jìn)行溯源并計(jì)算目標(biāo)節(jié)點(diǎn)的概率,提供可靠的網(wǎng)絡(luò)溯源結(jié)果。
為了測試網(wǎng)絡(luò)攻擊對溯源的影響,本文使用TFN2K工具。DDoS攻擊工具TFN2K可以發(fā)起UDP flood攻擊、TCP/SYN flood攻擊、ICMP/PING flood攻擊、ICMP/SMURF flood攻擊。實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)淙鐖D8所示,主機(jī)2、3、5作為攻擊者向7發(fā)起UDP/TCP/ICMP混合flood DDoS攻擊。1假冒4的IP地址向主機(jī)7發(fā)送欺騙分組,欺騙分組轉(zhuǎn)發(fā)路徑為1—1—2—3—4—7—7,發(fā)送分組間隔為10 ms,7作為溯源請求者進(jìn)行溯源,溯源特征集為:7的IP地址,1虛假IP地址(即4的IP地址),數(shù)據(jù)分組類型以及目的端口號。
實(shí)驗(yàn)在3種不同情況下進(jìn)行測試,分別是網(wǎng)絡(luò)沒有攻擊時(shí)、網(wǎng)絡(luò)有攻擊、網(wǎng)絡(luò)有攻擊且攻擊者3冒用4的IP地址向7發(fā)起攻擊,其中,第三種情況下攻擊路徑被溯源,攻擊對溯源路徑造成干擾。實(shí)驗(yàn)溯源結(jié)果如圖10所示。
由實(shí)驗(yàn)結(jié)果可以得到,未被攻擊時(shí)溯源時(shí)間最短,溯源效率最高;當(dāng)網(wǎng)絡(luò)有攻擊時(shí),攻擊影響交換機(jī),溯源效率受到一定影響,溯源時(shí)間增加;當(dāng)攻擊者冒用4的IP 地址向7發(fā)送分組時(shí),可根據(jù)溯源特征集溯源到攻擊路徑。結(jié)果表明,網(wǎng)絡(luò)有攻擊時(shí)溯源仍能進(jìn)行,但是溯源時(shí)間增加。
圖10 網(wǎng)絡(luò)攻擊對溯源影響
本節(jié)實(shí)驗(yàn)分別測試了控制器處理有效溯源Packet-in消息和無效溯源Packet-in消息所用時(shí)間。獲得控制器處理有效溯源Packet-in消息用時(shí)的方法是在溯源算法PacketInHandler函數(shù)處理有效溯源Packet-in消息的代碼段中,分別獲得進(jìn)入該代碼段的時(shí)間和離開該代碼段的時(shí)間,即可得到控制器處理該有效溯源Packet-in消息所用時(shí)間。本實(shí)驗(yàn)用獲得的50次控制器處理有效溯源Packet-in消息所用時(shí)間的平均值作為控制器處理有效溯源Packet-in消息所用時(shí)間。獲取控制器處理無效溯源Packet-in消息所用時(shí)間的方法與之類似。
實(shí)驗(yàn)得到控制器處理有效溯源Packet-in消息所用時(shí)間為1.61 ms,控制器處理無效溯源Packet-in消息所用時(shí)間為0.64 ms。控制器處理處理有效溯源Packet-in消息和無效溯源Packet-in消息所用時(shí)間都較小,即在溯源過程中,給控制器增加的額外系統(tǒng)開銷較小。
圖11和圖12都是在特征集能區(qū)分開被溯源數(shù)據(jù)分組和其他類數(shù)據(jù)分組時(shí)進(jìn)行實(shí)驗(yàn)得出的結(jié)果。
如圖11所示,相比于跳數(shù)較多的情況,跳數(shù)在前兩跳時(shí),分組間間隔1 ms時(shí)的時(shí)延接近于分組間間隔5 ms的時(shí)延。原因主要是分組間間隔較小,從欺騙數(shù)據(jù)分組觸發(fā)Packet-in消息到控制器修改探測流表項(xiàng)這段時(shí)間,欺騙數(shù)據(jù)分組會觸發(fā)較多Packet-in消息,這些消息都是無效溯源Packet-in消息,控制器耗費(fèi)部分時(shí)間用于處理這些無效消息。跳數(shù)較少時(shí),分組間間隔為1 ms時(shí)額外增大的時(shí)延占主要部分,因此小于3跳時(shí)發(fā)送分組間隔為1 ms的時(shí)延接近于發(fā)送分組間隔為5 ms的時(shí)延;而高于3跳,兩者時(shí)延與跳數(shù)呈線性相關(guān),不再接近。
圖11 時(shí)延測試
圖12 溯源過程中產(chǎn)生的Packet-in消息數(shù)量測試
圖12是在欺騙數(shù)據(jù)分組從源主機(jī)到目的主機(jī)中間分別經(jīng)過了5跳、15跳、25跳交換機(jī)的網(wǎng)絡(luò)拓?fù)渲袑?shí)驗(yàn)得出的結(jié)果。從圖12可以看出,分組速率較小時(shí),欺騙數(shù)據(jù)分組觸發(fā)的Packet-in消息逐漸接近于欺騙數(shù)據(jù)分組經(jīng)過的交換機(jī)數(shù)目。
為了評估本文溯源算法對控制器的CPU使用率的影響,分別在不使用溯源算法、使用溯源算法以及使用CherryPick溯源算法3種情況下測試控制器的CPU使用情況。實(shí)驗(yàn)開始后通過加快發(fā)送分組速率,增加網(wǎng)絡(luò)流量,觀察控制器CPU使用率的增長情況,如圖13所示。
從圖13中可以看出,在發(fā)送分組速率增加的情況下,不使用溯源算法控制器的CPU使用率基本維持不變;使用本文溯源算法溯源時(shí),控制器的CPU使用率有所增加,但增加速度十分緩慢;相比之下使用CherryPick溯源算法CPU使用率大幅增加,需要消耗較多CPU資源。
圖13 溯源過程控制器CPU使用率
本文介紹了傳統(tǒng)網(wǎng)絡(luò)和SDN網(wǎng)絡(luò)中常用的IP數(shù)據(jù)分組溯源方法,提出了SDN中通過控制器向網(wǎng)絡(luò)中相關(guān)的交換機(jī)添加探測流表項(xiàng)的IP數(shù)據(jù)分組溯源方法,以找到發(fā)送IP欺騙數(shù)據(jù)分組的真實(shí)主機(jī)或入口交換機(jī)。實(shí)驗(yàn)結(jié)果證明,該方法能準(zhǔn)確地找到源主機(jī)及數(shù)據(jù)分組轉(zhuǎn)發(fā)路徑,系統(tǒng)開銷小,不依賴于特定設(shè)備或網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),且不影響網(wǎng)絡(luò)中其他正常數(shù)據(jù)流的轉(zhuǎn)發(fā)。本文所提算法中特征值通過人工對數(shù)據(jù)分組的分析提取而獲得,還沒有實(shí)現(xiàn)對特征值的自動(dòng)獲取,下一步需研究自動(dòng)化提取數(shù)據(jù)分組的特征集,而且,發(fā)送分組速率太大時(shí),會觸發(fā)較多Packet-in消息,需要進(jìn)一步研究限制Packet-in消息速率的方案。
[1] METI N, NARAYAN D G, BALIGAR V P. Detection of distributed denial of service attacks using machine learning algorithms in software defined networks[C]//International Conference on Advances in Computing, Communications and Informatics (ICACCI). 2017: 1366-1371.
[2] 閻冬. IP網(wǎng)絡(luò)溯源方法及協(xié)作模式相關(guān)技術(shù)研究[D]. 北京:北京郵電大學(xué),2012.
YAN D. Research on IP traceback techniques and collaboration pat terns[D]. Beijing: Beijing University of Posts and Telecommunications, 2012.
[3] FEAMSTER N, REXFORD J, ZEGURA E. The road to SDN: an intellectual history of programmable networks[J]. Acm Sigcomm Computer Communication Review, 2014, 44(2):87-98.
[4] SIEBER C, OBERMAIR A, KELLERER W. Online learning and adaptation of network hypervisor performance models[C]//IFIP/IEEE Symposium on Integrated Network and Service Management (IM). 2017: 1204-1212.
[5] 王濤, 陳鴻昶, 程國振. 軟件定義網(wǎng)絡(luò)及安全防御技術(shù)研究[J]. 通信學(xué)報(bào), 2017, 38(11):133-160.
WANG T, CHEN H C, CHENG G Z. Research on software-defined network and the security defense technology[J]. Journal on Communications, 2017, 38(11):133-160.
[6] PATEL B, MENARIA S. Survey of traceback methods[J]. Journal of Engineering Computers & Applied Sciences, 2015, 4(1):22-26.
[7] 黃瓊, 熊文柱, 陽小龍, 等. 分層次的無狀態(tài)單分組IP溯源技術(shù)[J]. 通信學(xué)報(bào), 2011, 32(3):150-157.
HUANG Q, XIONG W Z, YANG X L, et al. Hierarchical stateless sin-gle-packet IP traceback technique[J]. Journal on Communications, 2011, 32(3):150-157.
[8] YAN D, WANG Y, SU S, et al. A precise and practical IP traceback technique based on packet marking and logging[J]. Journal of In-formation Science & Engineering, 2012, 28(3):453-470.
[9] FOROUSHANI V A, ZINCIR-HEYWOOD A N. Deterministic and authenticated flow marking for IP traceback[J]. 2013 IEEE 27th International Conference on Advanced Information Networking and Applications (AINA), 2013, 30(1): 397-404.
[10] FRANCOIS J, FESTOR O. Anomaly traceback using software defined networking[C]// IEEE International Workshop on Information Forensics and Security. IEEE, 2014.
[11] 夏彬. 基于軟件定義網(wǎng)絡(luò)的WLAN中DDoS攻擊檢測和防護(hù)[D]. 上海: 上海交通大學(xué), 2015.
XIA B. Research on the detection and defence of DDoS attack in SDN-based WLAN[D]. Shanghai: Shanghai Jiaotong University, 2015.
[12] CUI Y, YAN L, LI S, et al. SD-Anti-DDoS: Fast and efficient DDoS defense in software-defined networks[J]. Journal of Network and Computer Applications, 2016, 68: 65-79.
[13] AGARWAL K, ROZNER E, DIXON C, et al. SDN traceroute: tracing SDN forwarding without changing network behavior[C]// The Workshop on Hot Topics in Software Defined NETWORKING. 2014: 145-150.
[14] TAMMANA P, AGARWAL R, LEE M. CherryPick: tracing packet trajectory in software-defined datacenter networks[C]// ACM SIGCOMM Symposium on Software Defined NETWORKING Research. 2015:1-7.
[15] NARAYANA S, REXFORD J, WALKER D. Compiling path queries in soft-ware-defined networks[C]// The Workshop on Hot Topics in Software Defined NETWORKING.. 2014:181-186.
[16] NICK M K,ANDERSON T, BALAKRISHNAN H, et al. OpenFlow: enabling innovation in campus networks[J]. Acm Sigcomm Computer Communication Review, 2008, 38(2):69-74.
Tracing IP-spoofed packets in software defined network
WEI Songjie, SUN Xin, ZHAO Rudong, WU Chao
School of Computer Science and Engineering, Nanjing University of Science and Technology, Nanjing 210094, China
IP packets back tracing is to find the source host hop by hop from the destination. The method found the forwarding path of target packets and source host by adding probe entry into flow tables on SDN switches and analyzing the effective back tracing Packet-in messages sent by related switches. The proposed scheme can provide convenience for debugging network problems , so that the network administrator can obtain the forwarding paths of any data packets. Furthermore, it can help to solve the problem of IP spoofing. Experimental results prove that the traceability method can find the forwarding paths of target packets in a timely and accurate manner without affecting other traffic or significant system overhead.
SDN, IP address spoofing, IP trace back, flow table probe entry
TP393
A
10.11959/j.issn.1000?436x.2018243
魏松杰(1977?),男,江蘇南京人,博士,南京理工大學(xué)副教授、碩士生導(dǎo)師,主要研究方向?yàn)樾畔踩o線網(wǎng)絡(luò)與移動(dòng)計(jì)算、物聯(lián)網(wǎng)區(qū)塊鏈等。
孫鑫(1993?),女,河南周口人,南京理工大學(xué)碩士生,主要研究方向?yàn)檐浖x網(wǎng)絡(luò)、異常檢測等。
趙茹東(1992?),男,山東棗莊人,南京理工大學(xué)碩士生,主要研究方向?yàn)檐浖x網(wǎng)絡(luò)、網(wǎng)絡(luò)流量分析等。
吳超(1994?),男,江蘇揚(yáng)州人,南京理工大學(xué)碩士生,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)、流量混淆等。
2018?03?29;
2018?08?28
國家自然科學(xué)基金資助項(xiàng)目(No.61472189);賽爾網(wǎng)絡(luò)下一代互聯(lián)網(wǎng)技術(shù)創(chuàng)新項(xiàng)目(No.NGII20160105, No.NGII20170119)
The National Natural Science Foundation of China (No.61472189), CERNET Innovation Project (No.NGII20160105, No.NGII20170119)