李振宇 丁 勇,3 袁 方 張 昆
1(桂林電子科技大學(xué)計(jì)算機(jī)與信息安全學(xué)院 廣西桂林 541004) 2(廣西密碼學(xué)與信息安全重點(diǎn)實(shí)驗(yàn)室(桂林電子科技大學(xué)) 廣西桂林 541004) 3(鵬城實(shí)驗(yàn)室新型網(wǎng)絡(luò)研究部 廣東深圳 518000) 4(外交部通信總臺(tái) 北京 100045) 5(國(guó)家信息中心 北京 100045)
隨著5G技術(shù)的發(fā)展以及工業(yè)4.0的推進(jìn),全球正在快速進(jìn)入工業(yè)互聯(lián)網(wǎng)時(shí)代.在工業(yè)互聯(lián)網(wǎng)中,大量的物聯(lián)網(wǎng)設(shè)備已作為工業(yè)互聯(lián)網(wǎng)的重要組成部分進(jìn)行布署.同時(shí),5G技術(shù)所帶來的低延遲等特性,促進(jìn)了工業(yè)互聯(lián)網(wǎng)的萬物互聯(lián)[1].然而,萬物互聯(lián)需要大量使用互聯(lián)網(wǎng)可直接訪問的IP地址(公網(wǎng)IP地址)以支持工業(yè)互聯(lián)網(wǎng)設(shè)備進(jìn)行通信.因此,在互聯(lián)網(wǎng)協(xié)議第4版(Internet Protocol version 4, IPv4)的網(wǎng)絡(luò)中,為有效實(shí)現(xiàn)網(wǎng)絡(luò)互聯(lián)互通,通常采用網(wǎng)絡(luò)地址轉(zhuǎn)換(network address translation, NAT)技術(shù)以解決互聯(lián)網(wǎng)IP數(shù)量不足的問題[2].然而,針對(duì)工業(yè)控制系統(tǒng)內(nèi)的設(shè)備,例如可編程邏輯控制(programm-able logic controller, PLC)等,其通常需要使用固定的端口進(jìn)行通信[3];而且,在工業(yè)4.0體系中,管理系統(tǒng)需要對(duì)傳感器的信息進(jìn)行高頻率采集,如果傳感器沒有獲得公網(wǎng)IP地址,將只能使用NAT技術(shù)進(jìn)行網(wǎng)絡(luò)通信.然而,NAT技術(shù)對(duì)使用固定端口的網(wǎng)絡(luò)連接進(jìn)行反向轉(zhuǎn)換存在困難,也無法有效發(fā)揮5G等新技術(shù)所帶來的優(yōu)良特性[4].因此,在IP網(wǎng)絡(luò)中,NAT技術(shù)難以滿足工業(yè)互聯(lián)網(wǎng)的需求.為此,針對(duì)工業(yè)互聯(lián)網(wǎng)的特殊需求,將工業(yè)互聯(lián)網(wǎng)與互聯(lián)網(wǎng)協(xié)議第6版(Internet Protocol version 6, IPv6)相結(jié)合則成為一個(gè)可行的選擇.
我國(guó)作為全球第一制造大國(guó),在“十四五”期間擬結(jié)合工業(yè)互聯(lián)網(wǎng)5G與IPv6網(wǎng)絡(luò)架構(gòu)的優(yōu)點(diǎn),在全國(guó)范圍內(nèi)全面推進(jìn)基于IPv6工業(yè)互聯(lián)網(wǎng)的部署[5].然而,在工業(yè)互聯(lián)網(wǎng)IPv6的實(shí)際部署中,由于IPv6可直接使用公網(wǎng)IP地址進(jìn)行通信,新的通信方式將導(dǎo)致傳統(tǒng)工業(yè)企業(yè)以IPv4規(guī)劃的網(wǎng)絡(luò)安全邊界被打破,從而造成大量設(shè)備暴露在公網(wǎng)中,給這些設(shè)備帶來在IPv4網(wǎng)絡(luò)中所沒有的安全挑戰(zhàn)[6].而這些設(shè)備可能包含關(guān)鍵基礎(chǔ)設(shè)施,它們作為國(guó)民經(jīng)濟(jì)生產(chǎn)中的重要組成部分,關(guān)系著國(guó)家的穩(wěn)定,這將吸引大量的高級(jí)持續(xù)性威脅(advanced persistent threat, APT)攻擊者對(duì)其進(jìn)行攻擊[7].在APT活動(dòng)中,APT攻擊者會(huì)嘗試獲取工業(yè)設(shè)備的控制權(quán)限,以實(shí)現(xiàn)在指定時(shí)間對(duì)工業(yè)互聯(lián)網(wǎng)設(shè)備進(jìn)行破壞[8].
為此,針對(duì)當(dāng)前面臨的挑戰(zhàn),已有大量的安全防護(hù)技術(shù)用于工業(yè)互聯(lián)網(wǎng),以保護(hù)工業(yè)互聯(lián)網(wǎng)設(shè)備的安全.其中,大約54%的移動(dòng)目標(biāo)防御技術(shù)是基于網(wǎng)絡(luò)層面進(jìn)行部署,然而這些技術(shù)主要針對(duì)IPv4架構(gòu)進(jìn)行討論,缺乏對(duì)IPv6所帶來的新特性以及新挑戰(zhàn)的考慮.此外,雖然目前有IPv6相關(guān)的工業(yè)互聯(lián)網(wǎng)安全防護(hù)技術(shù),但是它們與傳統(tǒng)的防火墻或者入侵檢測(cè)系統(tǒng)的防御方式類似,其防護(hù)效能低,難以有效對(duì)APT攻擊進(jìn)行防護(hù).同時(shí),已有的移動(dòng)目標(biāo)防御技術(shù)基于理論研究居多,難以在實(shí)際環(huán)境中部署[9].因此,如何構(gòu)建零信任的安全環(huán)境則成為未來工業(yè)互聯(lián)網(wǎng)所面臨的挑戰(zhàn).
為解決當(dāng)前工業(yè)互聯(lián)網(wǎng)面臨的安全問題,本文提出網(wǎng)絡(luò)層面的移動(dòng)目標(biāo)防御與訪問控制技術(shù)互相融合的防護(hù)方法,以保護(hù)基于IPv6的工業(yè)互聯(lián)網(wǎng)的設(shè)備安全.本文的主要貢獻(xiàn)包括3個(gè)方面:
1) 提出了基于軟件定義網(wǎng)絡(luò)(software defined network, SDN)技術(shù)的IPv6網(wǎng)絡(luò)移動(dòng)目標(biāo)防御與訪問控制方法,其通過對(duì)用戶側(cè)可自由配置的IPv6網(wǎng)絡(luò)地址進(jìn)行隨機(jī)的動(dòng)態(tài)變換,并使用動(dòng)態(tài)變換后的IP地址在互聯(lián)網(wǎng)中傳輸,隨后結(jié)合訪問控制方法,使網(wǎng)絡(luò)攻擊發(fā)起方無法得知當(dāng)前可訪問的設(shè)備的真實(shí)IP地址,進(jìn)而有效抵御外部網(wǎng)絡(luò)對(duì)保護(hù)網(wǎng)絡(luò)的掃描.
2) 本文提出的方法無須更改已有網(wǎng)絡(luò)拓?fù)?,即可兼容性地?duì)目標(biāo)網(wǎng)絡(luò)進(jìn)行保護(hù).通過SDN技術(shù),可對(duì)流經(jīng)SDN處理器的所有數(shù)據(jù)包進(jìn)行實(shí)時(shí)編輯,在互聯(lián)網(wǎng)中使用編輯后的隨機(jī)IPv6地址進(jìn)行傳輸;隨后在對(duì)端收到數(shù)據(jù)后,將編輯后的隨機(jī)IPv6地址還原為原始的IPv6地址.因此,基于SDN技術(shù)可實(shí)現(xiàn)無須更改已有的任何設(shè)備以及網(wǎng)絡(luò)拓?fù)?,僅需將SDN處理器串聯(lián)到需要保護(hù)的網(wǎng)絡(luò)的出口上,即可對(duì)目標(biāo)網(wǎng)絡(luò)進(jìn)行保護(hù).
3) 本文提出的方法具備網(wǎng)絡(luò)防火墻功能,可限制非法數(shù)據(jù)傳輸.訪問控制方法是常用的網(wǎng)絡(luò)管理方法,本文將其與移動(dòng)目標(biāo)防御相結(jié)合,對(duì)源和目的地址進(jìn)行校驗(yàn),可大幅度降低掃描、偽造數(shù)據(jù)包等攻擊的成功概率,以接近100%的有效防護(hù)概率保護(hù)被保護(hù)的網(wǎng)絡(luò).
網(wǎng)絡(luò)層面的移動(dòng)目標(biāo)防御在具體實(shí)踐中主要包含2種方法:1)在設(shè)備端進(jìn)行實(shí)現(xiàn);2)通過網(wǎng)絡(luò)設(shè)備進(jìn)行實(shí)現(xiàn)[10].其中,在設(shè)備端實(shí)現(xiàn)的網(wǎng)絡(luò)層面的移動(dòng)目標(biāo)防御的相關(guān)研究中,黃廷輝等人[11]提出一個(gè)新的物聯(lián)網(wǎng)安全協(xié)議名為L(zhǎng)6HOP,通過將其部署在物聯(lián)網(wǎng)節(jié)點(diǎn)中,直接實(shí)現(xiàn)網(wǎng)絡(luò)地址跳變.Sagisi等人[12]提出在設(shè)備端嵌入專用集成電路,以實(shí)現(xiàn)網(wǎng)絡(luò)地址變換.Bandi等人[13]提出在數(shù)據(jù)到達(dá)原有服務(wù)器之前,使用多個(gè)新的代理服務(wù)器用于校驗(yàn)數(shù)據(jù)的合法性.Moore等人[14]提出在操作系統(tǒng)層面,使用流控制傳輸協(xié)議(Stream Control Transmission Protocol, SCTP)替代用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol, UDP)等協(xié)議,以實(shí)現(xiàn)動(dòng)態(tài)IP地址變換,進(jìn)行數(shù)據(jù)傳輸.然而,在設(shè)備端實(shí)現(xiàn)的基于網(wǎng)絡(luò)的移動(dòng)目標(biāo)防御技術(shù),其雖然從數(shù)據(jù)源上進(jìn)行IP地址變換,能徹底地進(jìn)行網(wǎng)絡(luò)層面的防護(hù),但是其在定制化、模塊化的工業(yè)互聯(lián)網(wǎng)系統(tǒng)中難以進(jìn)行二次開發(fā),部署實(shí)施極其困難,不適宜在工業(yè)互聯(lián)網(wǎng)中大范圍使用.
同時(shí),在通過網(wǎng)絡(luò)設(shè)備實(shí)現(xiàn)的網(wǎng)絡(luò)層面的移動(dòng)目標(biāo)防御相關(guān)研究中,主流實(shí)現(xiàn)移動(dòng)目標(biāo)防御研究的方向又分為使用特殊協(xié)議進(jìn)行特殊處理的方法以及使用SDN的方法.在使用特殊協(xié)議進(jìn)行特殊處理的方法中,Park等人[15]提出一種名為Ghost-MTD的技術(shù),其使用預(yù)共享的一次性比特串來進(jìn)行認(rèn)證.其中,如果預(yù)共享一次性比特串通過認(rèn)證,則允許外部設(shè)備與被保護(hù)設(shè)備進(jìn)行數(shù)據(jù)交換;如果預(yù)共享一次性比特串認(rèn)證失敗,則重定向流量到誘餌模塊中.然而,Ghost-MTD雖然能夠提供較安全的通信環(huán)境,但是其需要更改已有設(shè)備,以實(shí)現(xiàn)對(duì)發(fā)送的數(shù)據(jù)包進(jìn)行特殊處理.因此,使用Ghost-MTD技術(shù)除了需要額外的開銷,還可能導(dǎo)致工業(yè)互聯(lián)網(wǎng)審計(jì)設(shè)備對(duì)網(wǎng)絡(luò)審計(jì)結(jié)果產(chǎn)生錯(cuò)誤.
因此,為解決使用特殊協(xié)議進(jìn)行特殊處理的方法以實(shí)現(xiàn)移動(dòng)目標(biāo)防御所帶來的負(fù)面問題,使用SDN技術(shù)以實(shí)現(xiàn)移動(dòng)目標(biāo)防御是一個(gè)可行的選擇[16].國(guó)內(nèi)外研究人員均進(jìn)行了大量的研究,許書彬等人[17]以及吳樺等人[18]均提出基于OpenFlow的軟件定義網(wǎng)絡(luò)方法,用于對(duì)IP進(jìn)行虛擬變換,以防御分布式拒絕服務(wù)(distributed denial of service, DDoS)、掃描等相關(guān)類型的攻擊.然而,文獻(xiàn)[16-18]均沒有考慮免升級(jí)部署的問題,需要客戶端進(jìn)行特殊的配置方可實(shí)現(xiàn)移動(dòng)目標(biāo)防御,難以在工業(yè)互聯(lián)網(wǎng)中進(jìn)行低成本的實(shí)施.此外,Narantuya等人[19]使用多個(gè)OpenFlow交換機(jī)作為SDN控制器,實(shí)現(xiàn)動(dòng)態(tài)改變IP地址,以保證整體網(wǎng)絡(luò)的安全性.然而,文獻(xiàn)[19]提出的方法需要大量修改網(wǎng)絡(luò)拓?fù)洌趯?shí)際使用中,由于普通用戶通常無權(quán)限對(duì)公共網(wǎng)絡(luò)的基礎(chǔ)網(wǎng)絡(luò)設(shè)施進(jìn)行管理,因此,該文獻(xiàn)所提出的方法難以在現(xiàn)有的互聯(lián)網(wǎng)中實(shí)施.此外,Hyder等人[20]提出了一種名為SMCDS的方法,其可通過多個(gè)具有相同功能的影子SDN控制器,并結(jié)合動(dòng)態(tài)IP地址和網(wǎng)絡(luò)端口以實(shí)現(xiàn)基于數(shù)據(jù)和控制平面的移動(dòng)目標(biāo)防御安全保護(hù)方法.然而,Hyder等人提出的方法由于受其核心的被動(dòng)防御方法限制,仍有很大提升空間.Sharma等人[21]以及Niu等人[22]均提出基于SDN技術(shù)的移動(dòng)目標(biāo)防御方法,他們的方法可透明地對(duì)設(shè)備進(jìn)行保護(hù),而且不需要對(duì)已有設(shè)備以及網(wǎng)絡(luò)拓?fù)溥M(jìn)行修改.然而Sharma等人[21]以及Niu等人[22]的方法均沒有支持訪問控制,因此,攻擊者進(jìn)行探測(cè)所需的成本大幅降低.
此外,通過將移動(dòng)目標(biāo)防御技術(shù)與訪問控制技術(shù)相融合,可使網(wǎng)絡(luò)安全防御效能更進(jìn)一步提升.例如,黃志蘭等人[23]、史久根等人[24]使用軟件定義網(wǎng)絡(luò)技術(shù)與訪問控制技術(shù)相結(jié)合的方法,均有效提升了其應(yīng)用場(chǎng)景的安全性,但是他們提出的方法并不支持動(dòng)態(tài)IP地址變換,從而對(duì)APT等高級(jí)別且隱蔽的網(wǎng)絡(luò)攻擊防御能力不足.
因此,本文針對(duì)工業(yè)互聯(lián)網(wǎng)安全的研究現(xiàn)狀,總結(jié)當(dāng)前涉及工業(yè)互聯(lián)網(wǎng)相關(guān)安全研究缺乏的問題,提出使用軟件定義網(wǎng)絡(luò)技術(shù)在IPv6網(wǎng)絡(luò)中實(shí)現(xiàn)移動(dòng)目標(biāo)防御與訪問控制,其對(duì)比與已有的研究成果,具有透明的、無須更改已有設(shè)備網(wǎng)絡(luò)配置的優(yōu)點(diǎn),具備在工業(yè)互聯(lián)網(wǎng)中簡(jiǎn)易部署并應(yīng)用的條件.本文與其他文獻(xiàn)的工作對(duì)比如表1所示:
Table 1 Related Work Comparison
本節(jié)主要描述了基于IPv6的工業(yè)互聯(lián)網(wǎng)架構(gòu)及其面臨的安全威脅.隨后,針對(duì)當(dāng)前基于IPv6的工業(yè)互聯(lián)網(wǎng)面臨的安全威脅,提出移動(dòng)目標(biāo)防御架構(gòu),以解決所面臨的安全威脅.本文所使用的符號(hào)定義如表2所示:
Table 2 Notation and Definition
本文假設(shè)基于IPv6的工業(yè)互聯(lián)網(wǎng)由n個(gè)IPv6路由器route組成,因此,基于IPv6的工業(yè)互聯(lián)網(wǎng)的IPv6路由器集合為
R={route1,route2,…,routen}.
本文假設(shè)每一個(gè)路由器route包含n個(gè)工業(yè)控制設(shè)備device,因此,工業(yè)互聯(lián)網(wǎng)每個(gè)網(wǎng)絡(luò)中包含工業(yè)控制設(shè)備的集合為
D={device1,device2,…,devicen}.
同時(shí),本文假設(shè)在基于IPv6的工業(yè)互聯(lián)網(wǎng)中,網(wǎng)絡(luò)攻擊者會(huì)對(duì)工業(yè)互聯(lián)網(wǎng)設(shè)備實(shí)施所有可以實(shí)施的網(wǎng)絡(luò)攻擊,從而對(duì)所有工業(yè)互聯(lián)網(wǎng)設(shè)備造成安全威脅.因此,基于IPv6的工業(yè)互聯(lián)網(wǎng)將面臨3個(gè)安全問題:1)工業(yè)互聯(lián)網(wǎng)設(shè)備如何防護(hù)掃描,以規(guī)避設(shè)備指紋被記錄.針對(duì)此問題,常規(guī)的安全做法是針對(duì)例如TCP異常握手等信息進(jìn)行屏蔽.2)如何防護(hù)DDoS.針對(duì)此問題,常規(guī)做法是把DDoS流量引入不可達(dá)IP地址中,但是DDoS流量引入不可達(dá)IP地址的方法通常會(huì)導(dǎo)致原始設(shè)備也變?yōu)椴豢蛇_(dá).3)如何攔截非法來源的數(shù)據(jù),以保護(hù)設(shè)備不被破壞.常規(guī)做法是使用防火墻等方法,以攔截非法來源數(shù)據(jù).此外,仍需要考慮工業(yè)互聯(lián)網(wǎng)設(shè)備的局限性,其主要局限性是難以進(jìn)行二次開發(fā).因此,對(duì)現(xiàn)有網(wǎng)絡(luò)及設(shè)備透明且無須升級(jí)的安全防護(hù)技術(shù)具備較高的實(shí)際應(yīng)用價(jià)值.
為解決2.1節(jié)中基于IPv6的工業(yè)互聯(lián)網(wǎng)所面臨的安全問題,本文提出使用移動(dòng)目標(biāo)防御方法以對(duì)工業(yè)互聯(lián)網(wǎng)的網(wǎng)絡(luò)進(jìn)行安全防護(hù),從而構(gòu)建工業(yè)系統(tǒng)環(huán)境中的可信網(wǎng)絡(luò),推動(dòng)零信任安全防護(hù)措施實(shí)施,其防護(hù)架構(gòu)如圖1所示:
Fig. 1 Industrial Internet architecture based on IPv6 and its protection architecture proposed in this paper圖1 基于IPv6的工業(yè)互聯(lián)網(wǎng)架構(gòu)及本文提出的防護(hù)架構(gòu)
首先,本文提出的方法需要在被保護(hù)的兩端網(wǎng)絡(luò)分別部署移動(dòng)目標(biāo)處理器,其用于對(duì)被保護(hù)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包進(jìn)行IP地址隨機(jī)變換及訪問控制.隨后,每個(gè)移動(dòng)目標(biāo)處理器均使用自身標(biāo)識(shí)符,從隨機(jī)地址生成與訪問控制服務(wù)器(以下簡(jiǎn)稱“核心控制器”)上獲取隨機(jī)IP地址組.特別地,在持續(xù)獲取隨機(jī)IP地址列表之前,本文假設(shè)移動(dòng)目標(biāo)處理器通過專用網(wǎng)絡(luò)與核心控制器進(jìn)行連接,而且其他互聯(lián)網(wǎng)設(shè)備無法直接訪問該專用網(wǎng)絡(luò)內(nèi)的設(shè)備.當(dāng)核心控制器接收到移動(dòng)目標(biāo)處理器標(biāo)識(shí)符后,結(jié)合訪問控制列表,隨機(jī)生成并返回與此移動(dòng)目標(biāo)處理器相關(guān)的隨機(jī)IP地址組.使用核心控制器下發(fā)的隨機(jī)IP地址組可減少移動(dòng)目標(biāo)處理器重復(fù)的訪問控制配對(duì)運(yùn)算,提升移動(dòng)目標(biāo)處理器的隨機(jī)地址替換和訪問控制效率.而且,通過核心控制器生成隨機(jī)IP地址組,可進(jìn)一步提高訪問控制的安全性,避免移動(dòng)目標(biāo)處理器獲取非必要的隨機(jī)IP地址從而導(dǎo)致潛在的安全風(fēng)險(xiǎn).接下來,當(dāng)工業(yè)互聯(lián)網(wǎng)設(shè)備發(fā)送數(shù)據(jù)包時(shí),移動(dòng)目標(biāo)處理器將原始的IP地址替換為隨機(jī)的IP地址;之后在到達(dá)另一側(cè)的移動(dòng)目標(biāo)處理器時(shí),通過移動(dòng)目標(biāo)處理器將接收到的數(shù)據(jù)包的隨機(jī)IP地址還原為原始IP地址.因此,本文提出的移動(dòng)目標(biāo)防御架構(gòu)需要解決2個(gè)問題:1)使用了隨機(jī)IP地址后,如何保證在互聯(lián)網(wǎng)上進(jìn)行兼容性傳輸;2)確保隨機(jī)IP地址在移動(dòng)目標(biāo)防御架構(gòu)中的各個(gè)系統(tǒng)能完全同步,并且具有高可用性.
為有效提升移動(dòng)目標(biāo)防御架構(gòu)的安全防護(hù)效能及確保移動(dòng)目標(biāo)防御架構(gòu)對(duì)現(xiàn)有網(wǎng)絡(luò)架構(gòu)的兼容性,需要使用多種機(jī)制以確保移動(dòng)目標(biāo)防御架構(gòu)穩(wěn)定運(yùn)行.
2.3.1 兼容IPv6互聯(lián)網(wǎng)傳輸?shù)碾S機(jī)地址生成機(jī)制
在IPv6的部署實(shí)踐中,根據(jù)RFC2373[25]及其后續(xù)更新的關(guān)于IPv6地址的相關(guān)標(biāo)準(zhǔn),用戶自定義接口長(zhǎng)度IL計(jì)算為
IL=128-SPL,
其中,SPL是子網(wǎng)絡(luò)前綴長(zhǎng)度,其默認(rèn)為64位.因此,IPv6的地址在互聯(lián)網(wǎng)服務(wù)提供商(Internet service provider, ISP)分配給用戶自定義的接口地址長(zhǎng)度通常為64位.64位的用戶自定義接口地址長(zhǎng)度可幫助EUI-64等自動(dòng)配置IP地址方法穩(wěn)定運(yùn)行[26],以實(shí)現(xiàn)全網(wǎng)無需網(wǎng)絡(luò)地址轉(zhuǎn)換的直接訪問.
因此,假定用戶自定義的IP地址addr有n個(gè),用戶自定義的所有IP地址集合為
A={addr1,addr2,…,addrn},
在用戶自定義接口地址范圍內(nèi),用戶可對(duì)這部分IP地址進(jìn)行自定義設(shè)置,其可用地址數(shù)Acount計(jì)算公式為
Acount=2IL-GWcount,
其中,GWcount為網(wǎng)關(guān)使用的地址數(shù).因此,對(duì)于標(biāo)準(zhǔn)互聯(lián)網(wǎng)接入,用戶通常至少擁有264-GWcount個(gè)可用的IP地址.隨機(jī)IP地址生成機(jī)制只要在可用IP地址范圍內(nèi)隨機(jī)生成IP地址,則隨機(jī)IP地址所傳輸?shù)乃袛?shù)據(jù)包均可通過互聯(lián)網(wǎng)進(jìn)行傳輸,隨機(jī)IP地址的結(jié)構(gòu)如圖2所示:
Fig. 2 Random IP address structure圖2 隨機(jī)IP地址結(jié)構(gòu)
2.3.2 支持兩端時(shí)差冗余的隨機(jī)地址機(jī)制
雖然每個(gè)移動(dòng)目標(biāo)處理器均從核心控制器中獲取隨機(jī)IP地址組列表,然而移動(dòng)目標(biāo)處理器在啟動(dòng)運(yùn)行以及向核心服務(wù)器獲取隨機(jī)IP地址組時(shí),均會(huì)開銷些許時(shí)間,從而產(chǎn)生一定的時(shí)間偏差.因此,移動(dòng)目標(biāo)處理器的標(biāo)準(zhǔn)時(shí)間片段很大概率會(huì)出現(xiàn)與核心控制器的當(dāng)前標(biāo)準(zhǔn)時(shí)間不一致的情況.為解決此問題,提出支持兩端時(shí)差冗余的隨機(jī)IP地址機(jī)制,其數(shù)據(jù)流示意圖如圖3所示.
支持兩端時(shí)差冗余的隨機(jī)IP地址機(jī)制需要滿足:
|TA-TB| 其中,TA為移動(dòng)目標(biāo)處理器A的標(biāo)準(zhǔn)時(shí)間,TB為移動(dòng)目標(biāo)處理器B的標(biāo)準(zhǔn)時(shí)間,Trange為時(shí)間片段所包含的時(shí)間范圍.當(dāng)Trange設(shè)置過大時(shí),會(huì)出現(xiàn)隨機(jī)IP地址組更新緩慢,從而導(dǎo)致移動(dòng)目標(biāo)防御安全性下降,增加被攻擊人員探測(cè)到所使用的臨時(shí)IP地址的風(fēng)險(xiǎn);當(dāng)Trange設(shè)置過小時(shí),不僅會(huì)導(dǎo)致移動(dòng)目標(biāo)處理器需要頻繁更新內(nèi)存中存儲(chǔ)的隨機(jī)IP地址組,而且可導(dǎo)致核心控制器計(jì)算更頻繁,更會(huì)導(dǎo)致移動(dòng)目標(biāo)處理器對(duì)基于隨機(jī)IP地址的網(wǎng)絡(luò)傳輸?shù)淖畹途W(wǎng)絡(luò)延遲要求提高.因此,為保證整個(gè)系統(tǒng)的穩(wěn)定運(yùn)行,設(shè)置恰當(dāng)?shù)腡range數(shù)值是非常重要的. Fig. 3 Data exchange flow of clock-skew-supported random IP address based on central control圖3 基于中心控制的時(shí)差冗余隨機(jī)IP地址數(shù)據(jù)交換流程圖 2.3.3 支持多線程的無鎖隨機(jī)IP地址選取機(jī)制 為保證移動(dòng)目標(biāo)處理器的多線程能快速穩(wěn)定地處理數(shù)據(jù),減少非必要的內(nèi)存訪問操作,提升整體移動(dòng)目標(biāo)防御與訪問控制的效率,本文提出支持多線程的無鎖隨機(jī)IP地址選取機(jī)制,其示意圖如圖4所示. 在支持多線程的無鎖隨機(jī)IP地址選取機(jī)制的設(shè)計(jì)中,由于隨機(jī)IP地址組列表占用的內(nèi)存空間較小,因此,本文采取空間換時(shí)間的思路進(jìn)行設(shè)計(jì).本文定義隨機(jī)IP地址組RAG={osIP,rsIP,odIP,rdIP},其中,osIP為原始源IP地址,rsIP為原始源IP地址對(duì)應(yīng)的隨機(jī)源IP地址,odIP為原始目的IP地址,rdIP為原始目的IP對(duì)應(yīng)的隨機(jī)目的IP地址.每個(gè)時(shí)間片段均包含其對(duì)應(yīng)的1組隨機(jī)的IP地址組列表RAGL={RAG1,RAG2,…,RAGn}.每次獲取隨機(jī)地址組列表時(shí),將獲取當(dāng)前標(biāo)準(zhǔn)時(shí)間片段對(duì)應(yīng)的RAGL以及前后各一個(gè)時(shí)間片段的RAGL.當(dāng)獲取新版本的隨機(jī)地址組列表完成后,隨機(jī)IP地址選取機(jī)制將上一個(gè)版本獲取的隨機(jī)IP地址組列表刪除,隨后標(biāo)記當(dāng)前獲取的版本的各個(gè)時(shí)間片段的RAGL為新一個(gè)版本的隨機(jī)地址組,并將版本號(hào)加1,以加快移動(dòng)目標(biāo)處理器的多線程處理速度. Fig. 4 Multi-thread-supported lock-free random IP address selection mechanism圖4 支持多線程的無鎖隨機(jī)IP地址選取機(jī)制 Fig. 5 Data flow diagram of moving target defense圖5 移動(dòng)目標(biāo)防御數(shù)據(jù)流程圖 本節(jié)首先介紹移動(dòng)目標(biāo)防御與訪問控制技術(shù)融合防護(hù)的應(yīng)用樣例,隨后詳細(xì)介紹移動(dòng)目標(biāo)防御與訪問控制技術(shù)融合的防護(hù)技術(shù)所使用的3種方法,分別為:定時(shí)更新隨機(jī)IP地址列表方法、地址變換方法以及訪問控制方法. 本文根據(jù)工業(yè)互聯(lián)網(wǎng)跨網(wǎng)絡(luò)訪問的基礎(chǔ)場(chǎng)景,提煉與移動(dòng)目標(biāo)防御架構(gòu)研究相關(guān)的部分,進(jìn)行更詳細(xì)的分析,以解決IP地址隨機(jī)性、網(wǎng)絡(luò)拓?fù)浼嫒菪缘膯栴},并致力于提升抵抗攻擊的效能.如圖5所示,在本文提出的防護(hù)架構(gòu)中,采取在基于IPv6的工業(yè)互聯(lián)網(wǎng)的路由器出口處,串聯(lián)移動(dòng)目標(biāo)防御處理器進(jìn)行安全防護(hù).首先,移動(dòng)目標(biāo)處理器會(huì)周期性地使用標(biāo)識(shí)符,通過專用網(wǎng)絡(luò)請(qǐng)求核心控制器,并從核心控制器上獲取與該網(wǎng)絡(luò)相關(guān)的隨機(jī)IP地址列表信息.隨后,當(dāng)發(fā)送端的移動(dòng)目標(biāo)處理器接收到數(shù)據(jù)包后,其立即對(duì)IP數(shù)據(jù)包進(jìn)行檢查,以獲取源IP地址和目的IP地址.接下來,發(fā)送端的移動(dòng)目標(biāo)處理器根據(jù)隨機(jī)IP地址列表,將原始的IP地址替換成隨機(jī)IP地址,并使用隨機(jī)源IP地址和隨機(jī)目的IP地址在互聯(lián)網(wǎng)中進(jìn)行傳輸;隨后,隨機(jī)化IP地址的IP數(shù)據(jù)包到達(dá)另外的對(duì)端網(wǎng)絡(luò)后,再次利用移動(dòng)目標(biāo)防御處理器,根據(jù)隨機(jī)IP地址列表以及訪問控制規(guī)則,對(duì)隨機(jī)IP地址進(jìn)行處理,以將隨機(jī)的IP地址還原為原始的IP地址.通過透明的IP地址替換方法,可確保無須對(duì)現(xiàn)有網(wǎng)絡(luò)拓?fù)湟约肮I(yè)互聯(lián)網(wǎng)設(shè)備進(jìn)行任何修改,即可實(shí)現(xiàn)高效能安全防護(hù). 定時(shí)更新方法可為移動(dòng)目標(biāo)處理器定時(shí)獲取核心控制器上最新的隨機(jī)IP地址列表,其包含2個(gè)算法:核心控制器更新隨機(jī)IP地址列表算法和獲取隨機(jī)IP地址列表算法. 核心控制器更新隨機(jī)IP地址列表算法如算法1所示.首先,核心控制器更新隨機(jī)IP地址列表算法需要輸入所有被保護(hù)設(shè)備的原始IP地址列表,以及使用核心控制器的數(shù)據(jù)庫(kù)上存儲(chǔ)的數(shù)據(jù),為異步快速處理提供支撐.另外,需要在隨機(jī)IP地址列表生成的實(shí)例化程序上放置一個(gè)靜態(tài)的變量,用以保存上次更新時(shí)間,避免頻繁操作數(shù)據(jù)庫(kù)而導(dǎo)致的額外系統(tǒng)資源開銷. 算法1.核心控制器更新隨機(jī)IP地址列表算法. 輸入:設(shè)備原始IP地址列表sIPL、數(shù)據(jù)庫(kù)S、上次更新時(shí)間Tupdate、當(dāng)前時(shí)間Tc、更新周期Trange; 輸出:數(shù)據(jù)庫(kù)動(dòng)作. ① if (Tc-Tupdate>Trange) then ②DeleteExpiredRandomIP(S,Tc-2); ③rIPL←BuildRandomIPList(sIPL,Tc+1); /*使用兼容IPv6互聯(lián)網(wǎng)傳輸?shù)碾S機(jī)地址生成機(jī)制與支持兩端時(shí)差冗余的隨機(jī)地址機(jī)制輔助生成隨機(jī)IP地址*/ ④rIPL←TryBuildRandIPList(sIPL,Tc); ⑤rIPL←TryBuildRandIPList(sIPL,Tc-1); ⑥SaveToDatabase(rIPL); ⑦ endif 在核心控制器更新隨機(jī)IP地址列表算法運(yùn)行時(shí),首先,其會(huì)檢測(cè)當(dāng)前時(shí)間與上次更新的時(shí)間是否大于更新周期.如果更新間隔大于更新周期,則進(jìn)入更新數(shù)據(jù)庫(kù)隨機(jī)IP地址列表的步驟;否則,不進(jìn)行任何操作(行①).隨后,如果算法進(jìn)入更新數(shù)據(jù)庫(kù)隨機(jī)IP地址列表的步驟,首先其會(huì)刪除所有已經(jīng)過期的隨機(jī)IP地址列表,以減小數(shù)據(jù)庫(kù)的存儲(chǔ)壓力和提升數(shù)據(jù)庫(kù)的數(shù)據(jù)查找效率(行②);接下來,算法使用設(shè)備原始IP地址列表,提取出IP地址對(duì)應(yīng)的子網(wǎng)前綴,并結(jié)合兼容IPv6互聯(lián)網(wǎng)傳輸?shù)碾S機(jī)IP地址生成機(jī)制,以生成后一個(gè)時(shí)間片段的隨機(jī)IP地址(行③);此外還會(huì)根據(jù)支持兩端時(shí)差冗余的隨機(jī)IP地址機(jī)制的要求,如果當(dāng)前時(shí)間片段和上一個(gè)時(shí)間片段的數(shù)據(jù)為空,則會(huì)嘗試生成該時(shí)間片段對(duì)應(yīng)的隨機(jī)IP地址列表,其順序?yàn)槭紫葒L試生成當(dāng)前時(shí)間片段的隨機(jī)IP地址列表(行④),隨后嘗試生成前一個(gè)時(shí)間片段的隨機(jī)IP地址列表(行⑤).當(dāng)所有有效時(shí)間片段的隨機(jī)IP地址列表生成完成后,算法將生成的隨機(jī)IP地址存儲(chǔ)到數(shù)據(jù)庫(kù),以備移動(dòng)目標(biāo)處理器獲取隨機(jī)IP地址列表算法使用(行⑥). 移動(dòng)目標(biāo)處理器獲取隨機(jī)IP地址列表算法在核心控制器更新隨機(jī)IP地址列表算法至少執(zhí)行一次后,方可獲取有效數(shù)據(jù),其算法細(xì)節(jié)如算法2所示.移動(dòng)目標(biāo)處理器向核心控制器請(qǐng)求數(shù)據(jù)時(shí),需要提供移動(dòng)目標(biāo)處理器標(biāo)識(shí)符給核心控制器,用于識(shí)別移動(dòng)目標(biāo)處理器具體負(fù)責(zé)保護(hù)的網(wǎng)絡(luò).在算法具體實(shí)施過程中,采用一串隨機(jī)數(shù)字作為移動(dòng)目標(biāo)處理器標(biāo)識(shí)符,由于其長(zhǎng)度較長(zhǎng),因此,還可作為認(rèn)證字符串使用. 算法2.獲取隨機(jī)IP地址列表算法. 輸入:移動(dòng)目標(biāo)處理器標(biāo)識(shí)符I、服務(wù)器隨機(jī)地址列表庫(kù)SrIPL; 輸出:與當(dāng)前移動(dòng)目標(biāo)處理器相關(guān)的隨機(jī)地址組RAGL. ①A←Auth(I); ② if (A=PASS) then ③SIP←GetSourceIP(I); ④ACLs←GetACL(SIP); ⑤RAGL←BuildRAGList(SrIPL,ACLs); ⑥ endif 移動(dòng)目標(biāo)處理器獲取隨機(jī)IP地址列表算法開始執(zhí)行時(shí),核心控制器首先需要對(duì)移動(dòng)目標(biāo)處理器的標(biāo)識(shí)符進(jìn)行認(rèn)證(行①).如果認(rèn)證通過(行②),則核心控制器根據(jù)該移動(dòng)目標(biāo)處理器的標(biāo)識(shí)符,計(jì)算出該移動(dòng)目標(biāo)處理器所管轄的原始IP地址(行③);隨后,根據(jù)管轄的原始IP地址列表,獲取對(duì)應(yīng)的ACL列表,以協(xié)助確定該移動(dòng)目標(biāo)處理器所管轄范圍內(nèi)的所有可訪問的IP地址(行④);接下來,使用核心控制器隨機(jī)IP地址列表庫(kù)結(jié)合ACL列表,返回所有與當(dāng)前移動(dòng)目標(biāo)處理器相關(guān)的隨機(jī)IP地址組,供地址變換以及訪問控制使用(行⑤). 地址變換方法是移動(dòng)目標(biāo)防御的核心算法,其細(xì)節(jié)如算法3所示.在使用地址變換算法時(shí),除提供需要處理的數(shù)據(jù)包之外,還需提供隨機(jī)IP地址組以幫助地址變換以更快的速度進(jìn)行處理.經(jīng)過地址變換算法處理后,其地址已變換的數(shù)據(jù)包可直接交給發(fā)送程序,直接從另一端的網(wǎng)絡(luò)端口進(jìn)行發(fā)送. 算法3.地址變換算法. 輸入:隨機(jī)IP地址組RAGL、需要處理的數(shù)據(jù)包pkt; 輸出:地址已變換的數(shù)據(jù)包epkt. ①PsIP,PdIP←ParsePacket(pkt); ② if (ACLCheck(RAGL,PsIP,PdIP)= PASS) then ③NsIP,NdIP←FindAddr(RAGL,PsIP,PdIP);/*使用支持多線程的無鎖隨機(jī)IP地址選取機(jī)制以支持地址快速替換*/ ④ if (pkt.PORT=InnerPort) then ⑤epkt←ToRandom(pkt,NsIP,NdIP); ⑥ else ⑦epkt←ToOrigin(pkt,NsIP,NdIP); ⑧ endif ⑨ else ⑩epkt←null; 地址變換算法開始運(yùn)行時(shí),首先算法提取出當(dāng)前需要處理數(shù)據(jù)包的源IP地址以及目的IP地址,這可幫助后續(xù)的步驟快速執(zhí)行(行①).隨后,使用核心控制器所返回的隨機(jī)IP地址列表組,根據(jù)訪問控制方法,對(duì)需要處理數(shù)據(jù)包的源IP地址以及目的IP地址進(jìn)行檢查,以確認(rèn)其是否在訪問控制允許的范圍內(nèi)(行②),如果需要處理的數(shù)據(jù)包在訪問控制運(yùn)行的范圍內(nèi),則繼續(xù)進(jìn)行IP地址變換;否則,當(dāng)需要處理的數(shù)據(jù)包不在訪問控制允許的范圍內(nèi)時(shí),則直接返回空結(jié)果,以標(biāo)記當(dāng)前處理的數(shù)據(jù)包被丟棄(行⑩).接下來,在數(shù)據(jù)包IP地址變換流程中(行③~⑧),為充分利用系統(tǒng)資源,提升多線程處理效能,在替換算法中,將替換為隨機(jī)IP地址和還原為原始IP地址的2個(gè)過程進(jìn)行統(tǒng)一.在替換步驟執(zhí)行開始時(shí),首先需要在隨機(jī)IP地址組中查找當(dāng)前數(shù)據(jù)包對(duì)應(yīng)的隨機(jī)IP地址,以備后續(xù)替換操作可以快速進(jìn)行處理.在此,由于先前訪問控制檢查已經(jīng)通過,因此,當(dāng)前數(shù)據(jù)包的原始IP地址一定是在隨機(jī)IP地址組內(nèi).同時(shí),根據(jù)支持多線程的無鎖隨機(jī)IP地址選取機(jī)制的要求,首先檢查當(dāng)前時(shí)間片段內(nèi)是否存在與當(dāng)前處理數(shù)據(jù)包的源IP地址以及目的IP地址相匹配的記錄.如果不存在匹配記錄,則需要對(duì)前后各一個(gè)時(shí)間片段進(jìn)行嘗試性匹配(行③).接下來,地址變換算法判斷當(dāng)前處理數(shù)據(jù)包的接收端口(行④),如果當(dāng)前處理數(shù)據(jù)包接收的端口為內(nèi)部端口,則將當(dāng)前處理數(shù)據(jù)包的源IP地址以及目的IP地址,替換為隨機(jī)IP地址列表中當(dāng)前時(shí)間片段對(duì)應(yīng)的隨機(jī)源IP地址以及隨機(jī)目的IP地址(行⑤);否則,則對(duì)當(dāng)前處理數(shù)據(jù)包的源IP地址以及目的IP地址,還原為原始的源IP地址以及原始的目的IP地址(行⑥~⑧).當(dāng)數(shù)據(jù)包處理完成后,則將地址已變換的數(shù)據(jù)包進(jìn)行輸出,以提供給發(fā)送程序進(jìn)行發(fā)送. 訪問控制算法用于對(duì)當(dāng)前處理的數(shù)據(jù)包進(jìn)行檢查,以限制設(shè)備訪問范圍,其算法細(xì)節(jié)如算法4所示.通過訪問控制算法的安全性加固,可進(jìn)一步提升安全效能.由于訪問控制方法需要數(shù)據(jù)包所包含的源IP地址和目的IP地址均匹配隨機(jī)IP地址組所記錄的數(shù)據(jù)后,數(shù)據(jù)包方可被放行,因此,可有效解決攻擊者對(duì)網(wǎng)絡(luò)掃描的問題. 算法4.訪問控制算法. 輸入:隨機(jī)IP地址組RAGL、需要處理的數(shù)據(jù)包pkt; 輸出:轉(zhuǎn)發(fā)標(biāo)記F. ①PsIP,PdIP←ParsePacket(pkt); ②result←Check(RAGL,PsIP,PdIP); /*結(jié)合支持兩端時(shí)差冗余的隨機(jī)地址機(jī)制進(jìn)行訪問控制列表檢測(cè)*/ ③ if (resultis not null) then ④F←PASS; ⑤ else ⑥F←DROP; ⑦ endif 訪問控制算法運(yùn)行時(shí),需要提供隨機(jī)IP地址組以及需要處理的數(shù)據(jù)包.算法首先通過數(shù)據(jù)包解析器,提取出數(shù)據(jù)包中的源IP地址以及目的IP地址(行①).隨后,將數(shù)據(jù)包中的源IP地址以及目的IP地址,在已獲得的隨機(jī)IP地址組中進(jìn)行查找,以檢測(cè)隨機(jī)IP地址組中是否包含數(shù)據(jù)包中的源IP地址以及與目的IP地址一致的IP地址對(duì)(行②).如果匹配結(jié)果不為空,則表明訪問控制方法需要放行當(dāng)前正在處理的數(shù)據(jù)包(行③),并返回檢測(cè)通過的標(biāo)記(行④);否則,如果匹配結(jié)果為空,則表明訪問控制方法需要攔截當(dāng)前正在處理的數(shù)據(jù)包,并返回丟棄該數(shù)據(jù)包的標(biāo)記(行⑤~⑦). 在本節(jié),首先介紹開展實(shí)驗(yàn)所使用的環(huán)境,并介紹開展實(shí)驗(yàn)相關(guān)的測(cè)試所使用的用例,此外還將介紹實(shí)驗(yàn)平臺(tái)相關(guān)的配置;隨后對(duì)本文提出的算法進(jìn)行性能測(cè)量;最后對(duì)所有實(shí)驗(yàn)進(jìn)行總結(jié). 在實(shí)驗(yàn)拓?fù)涞囊?guī)劃中,采用完全使用IPv6的網(wǎng)絡(luò)架構(gòu)對(duì)相關(guān)實(shí)驗(yàn)設(shè)備進(jìn)行部署,因此,整個(gè)實(shí)驗(yàn)均不使用IPv4的地址.在實(shí)驗(yàn)中,我們的目標(biāo)是對(duì)IPv6網(wǎng)絡(luò)的設(shè)備,實(shí)現(xiàn)移動(dòng)目標(biāo)防御與訪問控制融合的安全防護(hù),且保證測(cè)試設(shè)備A與測(cè)試設(shè)備B在不更改任何配置的情況下進(jìn)行通信,因此,本文所采用的實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)淙鐖D6所示: Fig. 6 Experimental topology圖6 實(shí)驗(yàn)拓?fù)?/p> 在實(shí)驗(yàn)中,移動(dòng)目標(biāo)處理器通過專用的管理網(wǎng)絡(luò),與核心控制器進(jìn)行通信,以周期性地獲取當(dāng)前時(shí)刻的隨機(jī)IP地址列表;IPv6路由器B則用于模擬互聯(lián)網(wǎng)以實(shí)現(xiàn)IPv6路由器A與IPv6路由器C之間的通信.此外,本文定義移動(dòng)目標(biāo)處理器靠近測(cè)試設(shè)備的一側(cè)為內(nèi)部端口,流經(jīng)內(nèi)部端口的數(shù)據(jù)包均從隨機(jī)IP地址還原為真實(shí)IP地址;移動(dòng)目標(biāo)處理器靠近IPv6路由器B的端口為外部端口,所有流出外部端口的數(shù)據(jù)包均需要從真實(shí)IP地址變換為隨機(jī)IP地址. 在實(shí)驗(yàn)中,使用了Linux系統(tǒng)中的ping(1)https://github.com/torvalds/linux/blob/master/net/ipv4/ping.c程序以及iPerf3(2)https://iperf.fr程序?qū)贒PDK(3)https://www.dpdk.org編程的移動(dòng)目標(biāo)處理器所實(shí)現(xiàn)的移動(dòng)目標(biāo)防御及訪問控制的有效性以及網(wǎng)絡(luò)性能進(jìn)行評(píng)估.Linux系統(tǒng)中的ping程序可通過發(fā)送ICMP數(shù)據(jù)包,測(cè)量2個(gè)設(shè)備之間通信的聯(lián)通性及傳輸數(shù)據(jù)包所開銷的時(shí)間.通過ping程序,可以確定移動(dòng)目標(biāo)處理器是否能滿足工業(yè)互聯(lián)網(wǎng)傳輸?shù)淖畹鸵?此外,iPerf3程序則是用于測(cè)試評(píng)估移動(dòng)目標(biāo)處理器所能處理的最大網(wǎng)絡(luò)帶寬. 使用VMWare ESXi 6.7.0完成本文相關(guān)的實(shí)驗(yàn).其中,所有設(shè)備的網(wǎng)絡(luò)適配器均使用VMXNET 3,VMXNET 3可在VMWare ESXi虛擬化平臺(tái)中支持大于1 Gb/s的性能測(cè)試.此外,宿主機(jī)的CPU使用支持超線程技術(shù)的6核Intel?Xeon?Gold 6128 CPU @ 3.40 GHz.本文實(shí)驗(yàn)平臺(tái)所有設(shè)備的詳細(xì)配置如表3所示. 在實(shí)驗(yàn)中,使用了2臺(tái)設(shè)備用于運(yùn)行ping程序以及iPerf3程序,它們分別為測(cè)試設(shè)備A與測(cè)試設(shè)備B;此外,還使用了測(cè)試設(shè)備C以測(cè)試本文提出的移動(dòng)目標(biāo)防御方法有效性.由于運(yùn)行的程序?qū)ο到y(tǒng)資源要求不高,因此,對(duì)每個(gè)運(yùn)行測(cè)試程序的設(shè)備,在實(shí)驗(yàn)中均對(duì)其分配2個(gè)虛擬CPU以及2 GB內(nèi)存.同時(shí),移動(dòng)目標(biāo)處理器以及核心控制器需要對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)處理.因此,對(duì)于本文提出的安全設(shè)備,在實(shí)驗(yàn)中均對(duì)其分配4個(gè)虛擬CPU以及16 GB內(nèi)存給每個(gè)設(shè)備使用.特別地,由于移動(dòng)目標(biāo)處理器使用了DPDK框架以實(shí)現(xiàn)本問題提出的方法,而且DPDK框架在運(yùn)行時(shí)需要開銷較多的系統(tǒng)資源,所以對(duì)移動(dòng)目標(biāo)處理器分配較多資源.最后,針對(duì)網(wǎng)絡(luò)聯(lián)通的需求,本文將開源的路由器系統(tǒng)OpenWRT部署在每個(gè)IPv6路由器上,用于數(shù)據(jù)轉(zhuǎn)發(fā).對(duì)每個(gè)IPv6路由器,均采用OpenWRT的默認(rèn)設(shè)置,分別為2個(gè)虛擬CPU以及2 GB內(nèi)存. Table 3 Experimental Platform 在有效測(cè)試過程中,使用測(cè)試設(shè)備A、測(cè)試設(shè)備B以及測(cè)試設(shè)備C互相通信,以測(cè)試本文提出的移動(dòng)目標(biāo)防御方法的有效性.隨后,為了提升閱讀體驗(yàn),本文分析捕捉到的數(shù)據(jù)包,并將其關(guān)鍵數(shù)據(jù)提取后用流程圖進(jìn)行展示. 在性能測(cè)量過程中,在測(cè)試設(shè)備A與測(cè)試設(shè)備B上,使用ping程序與iPerf3程序在它們之間互相發(fā)送測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,并使用滑動(dòng)窗口方差的方法取其中一段最為穩(wěn)定的實(shí)驗(yàn)數(shù)據(jù)進(jìn)行記錄. 有效性使用ping程序進(jìn)行測(cè)試,其用于驗(yàn)證網(wǎng)絡(luò)是否能聯(lián)通,進(jìn)而可驗(yàn)證本文提出的移動(dòng)目標(biāo)防御與訪問控制技術(shù)的有效性.有效性測(cè)試主要分為3個(gè)部分:外部網(wǎng)絡(luò)的設(shè)備訪問被保護(hù)網(wǎng)絡(luò)的設(shè)備的測(cè)試、被保護(hù)網(wǎng)絡(luò)的設(shè)備訪問外部網(wǎng)絡(luò)的設(shè)備的測(cè)試以及被保護(hù)網(wǎng)絡(luò)的設(shè)備互相訪問的測(cè)試.在本測(cè)試實(shí)驗(yàn)中,本文定義外部網(wǎng)絡(luò)為不需要進(jìn)行保護(hù)的網(wǎng)絡(luò);而內(nèi)部網(wǎng)絡(luò)則定義為需要保護(hù)的網(wǎng)絡(luò),例如本文假定要保護(hù)的網(wǎng)絡(luò)為工業(yè)互聯(lián)網(wǎng)設(shè)備所在的網(wǎng)絡(luò). 在外部網(wǎng)絡(luò)的設(shè)備訪問被保護(hù)網(wǎng)絡(luò)的設(shè)備的測(cè)試中,本文在測(cè)試設(shè)備C上,分別使用ping程序向測(cè)試設(shè)備A以及測(cè)試設(shè)備B發(fā)送ICMP數(shù)據(jù)包,其分析后的數(shù)據(jù)流圖如圖7所示.由于測(cè)試設(shè)備C的IP不在隨機(jī)IP地址組中,因此,移動(dòng)目標(biāo)處理器A以及移動(dòng)目標(biāo)處理器B均會(huì)將此發(fā)送的數(shù)據(jù)包丟棄. Fig. 7 Test of external device accessing protected device圖7 外部環(huán)境設(shè)備訪問被保護(hù)設(shè)備的測(cè)試 Fig. 8 Test of protected device accessing external device圖8 被保護(hù)設(shè)備訪問外部環(huán)境設(shè)備的測(cè)試 在被保護(hù)網(wǎng)絡(luò)的設(shè)備訪問外部網(wǎng)絡(luò)的設(shè)備的測(cè)試中,使用測(cè)試設(shè)備A嘗試訪問路由器,其分析后的數(shù)據(jù)流圖如圖8所示.由于移動(dòng)目標(biāo)處理A從核心控制器中獲得的隨機(jī)IP地址列表并不包含外部網(wǎng)絡(luò)的路由器的IP地址,因此,移動(dòng)目標(biāo)處理器A會(huì)將測(cè)試設(shè)備A所發(fā)送的數(shù)據(jù)包丟棄. 在被保護(hù)網(wǎng)絡(luò)的設(shè)備互相訪問的測(cè)試中,使用測(cè)試設(shè)備A的ping程序向測(cè)試設(shè)備B發(fā)送ICMP數(shù)據(jù)包,并獲取測(cè)試設(shè)備B響應(yīng)的ICMP數(shù)據(jù)包,其分析后的數(shù)據(jù)流圖如圖9所示.在數(shù)據(jù)包流經(jīng)移動(dòng)目標(biāo)處理器A時(shí),由于測(cè)試設(shè)備A與測(cè)試設(shè)備B的IP地址均在核心控制器所提供的隨機(jī)IP地址列表中,因此,移動(dòng)目標(biāo)處理器A將測(cè)試設(shè)備A發(fā)送出來的ICMP數(shù)據(jù)包替換為測(cè)試設(shè)備A和測(cè)試設(shè)備B所對(duì)應(yīng)的隨機(jī)IP地址,并將其發(fā)送到網(wǎng)絡(luò)中.隨后,經(jīng)過一系列網(wǎng)絡(luò)傳輸后,隨機(jī)地址化的數(shù)據(jù)包到達(dá)移動(dòng)目標(biāo)處理器B時(shí),移動(dòng)目標(biāo)處理器B檢查所接收到的數(shù)據(jù)包是否在核心控制器所提供的隨機(jī)IP地址列表中.由于當(dāng)前的數(shù)據(jù)包為移動(dòng)目標(biāo)處理器A替換后的隨機(jī)IP地址數(shù)據(jù)包,并且網(wǎng)絡(luò)傳輸所開銷的時(shí)間在本文所提出的支持兩端時(shí)差冗余的隨機(jī)地址機(jī)制的允許范圍內(nèi),因此,移動(dòng)目標(biāo)處理器B根據(jù)隨機(jī)IP地址列表,將隨機(jī)化的IP地址還原為測(cè)試設(shè)備A以及測(cè)試設(shè)備B的原始IP地址,并發(fā)送到測(cè)試設(shè)備B.隨后在測(cè)試設(shè)備B響應(yīng)ICMP數(shù)據(jù)包至測(cè)試設(shè)備A的過程中,移動(dòng)目標(biāo)處理器A以及移動(dòng)目標(biāo)處理器B均進(jìn)行與數(shù)據(jù)包由移動(dòng)目標(biāo)處理器A經(jīng)過移動(dòng)目標(biāo)處理器B相同的操作. Fig. 9 Test of mutual accessing of protected device圖9 被保護(hù)設(shè)備互相訪問的測(cè)試 通過外部網(wǎng)絡(luò)的設(shè)備訪問被保護(hù)網(wǎng)絡(luò)的設(shè)備測(cè)試、被保護(hù)網(wǎng)絡(luò)的設(shè)備訪問外部網(wǎng)絡(luò)的設(shè)備測(cè)試以及被保護(hù)網(wǎng)絡(luò)的設(shè)備互相訪問測(cè)試,共3個(gè)測(cè)試實(shí)驗(yàn),可以驗(yàn)證本文所提出的移動(dòng)目標(biāo)防御與訪問控制是有效的、符合預(yù)期的. 在性能測(cè)量的實(shí)驗(yàn)中,主要為測(cè)試本文所提出的移動(dòng)目標(biāo)處理器的處理性能,其包含了傳輸速率測(cè)量以及傳輸延遲測(cè)量共2個(gè)部分,可用于評(píng)估添加移動(dòng)目標(biāo)處理器后對(duì)原網(wǎng)絡(luò)產(chǎn)生的影響.性能測(cè)量實(shí)驗(yàn)分2個(gè)部分進(jìn)行,均使用圖6的實(shí)驗(yàn)拓?fù)溥M(jìn)行連接.在測(cè)試的過程中,還通過直接連接的方法,臨時(shí)去掉移動(dòng)目標(biāo)處理器,使得路由器A與路由器B直接連接、路由器B與路由器C直接連接,以通過對(duì)比的方式,有效評(píng)估本文提出的移動(dòng)目標(biāo)處理器對(duì)原有網(wǎng)絡(luò)產(chǎn)生的影響. 在網(wǎng)絡(luò)傳輸速度測(cè)試中,本文使用iPerf3進(jìn)行連續(xù)一段時(shí)間的速度測(cè)試,并使用滑動(dòng)窗口方差的方法取其中連續(xù)一段最為平滑的數(shù)據(jù)進(jìn)行對(duì)比,其測(cè)試結(jié)果如圖10所示: Fig. 10 Experiment of transmission speed measurement圖10 傳輸速度測(cè)量實(shí)驗(yàn) 如傳輸速度測(cè)量實(shí)驗(yàn)所示,直接傳輸?shù)钠骄俣燃s為4 723 Mb/s;使用本文提出的移動(dòng)目標(biāo)防御技術(shù)后,進(jìn)行數(shù)據(jù)包傳輸?shù)乃俣燃s為4 376 Mb/s.因此,使用本文提出的帶有訪問控制的移動(dòng)目標(biāo)防御技術(shù)對(duì)網(wǎng)絡(luò)進(jìn)行安全防護(hù)后,其數(shù)據(jù)傳輸速度仍可達(dá)到無防護(hù)網(wǎng)絡(luò)傳輸速度的92.6%,在可接受的范圍內(nèi). 在傳輸延遲測(cè)量實(shí)驗(yàn)中,本文使用ping程序進(jìn)行測(cè)試,此實(shí)驗(yàn)同樣也使用滑動(dòng)窗口方差的方法,取其中連續(xù)一段最為平滑的數(shù)據(jù)進(jìn)行對(duì)比,其測(cè)試結(jié)果如圖11所示: Fig. 11 Experiment of transmission latency measurement圖11 傳輸延遲測(cè)量實(shí)驗(yàn) 如圖11所示,直接傳輸?shù)钠骄W(wǎng)絡(luò)延遲為0.78 ms;使用本文提出的移動(dòng)目標(biāo)防御技術(shù)后,進(jìn)行傳輸?shù)钠骄W(wǎng)絡(luò)延遲為1.09 ms.因此,使用本文所提出的移動(dòng)目標(biāo)防御技術(shù)對(duì)網(wǎng)絡(luò)進(jìn)行安全防護(hù)后,會(huì)導(dǎo)致網(wǎng)絡(luò)延遲上升0.31 ms,但是相對(duì)于互聯(lián)網(wǎng)的巨大網(wǎng)絡(luò)延時(shí),其仍在可接受的范圍內(nèi).同時(shí),本文與Almusaher等人[16]的實(shí)驗(yàn)進(jìn)行對(duì)比,其對(duì)比結(jié)果如表4所示.本文提出的方法比Almusaher等人[16]所使用的方法節(jié)約了約9.2%的時(shí)間,滿足工業(yè)互聯(lián)網(wǎng)應(yīng)用需求. Table 4 Comparison of Transmission Latency 為確認(rèn)本文所提出的方法的安全性,本節(jié)從本文提出的方法的防御效能以及新增防御設(shè)備的安全性2個(gè)角度展開分析. 4.7.1 防御效能分析 由于本文所提出的移動(dòng)目標(biāo)防御方法的IPv6地址隨機(jī)變化快、容量大,因此,直接使用實(shí)驗(yàn)測(cè)量的方法則難以產(chǎn)生可見的實(shí)驗(yàn)數(shù)據(jù).因此,在本節(jié),對(duì)本文提出的方法進(jìn)行防御失效的概率分析. 防御失效概率是假定攻擊者通過外部網(wǎng)絡(luò)的設(shè)備,結(jié)合一定的網(wǎng)絡(luò)攻擊技術(shù),以網(wǎng)絡(luò)掃描的方式嘗試探測(cè)某一臺(tái)被保護(hù)網(wǎng)絡(luò)的設(shè)備的存活狀態(tài),同時(shí)由于訪問控制技術(shù)需要源IP地址和目的IP地址均正確,數(shù)據(jù)包方可通過移動(dòng)目標(biāo)處理器.因此,其防御失效概率(攻擊成功的概率)為 其中,Addrcount為被保護(hù)網(wǎng)絡(luò)可容納的IP地址數(shù),由于移動(dòng)目標(biāo)處理器需要源IP地址和目的IP地址均正確,其方可允許數(shù)據(jù)包通過.同時(shí),源IP地址和目的IP地址應(yīng)不相同,因此,地址空間可排列的數(shù)量為Addrcount×(Addrcount-1).此外,Attackcount為發(fā)送探測(cè)的次數(shù);N為被保護(hù)的主機(jī)數(shù),同時(shí)數(shù)據(jù)包中用于表示主機(jī)的源IP地址和目的IP地址應(yīng)不相同,因此,主機(jī)地址可排列的數(shù)量為N×(N-1).特別地,由于本文的方法會(huì)動(dòng)態(tài)改變有效的源IP地址和目的IP地址對(duì),因此,掃描過程中應(yīng)該進(jìn)行隨機(jī)掃描(有放回抽樣). 為有效分析本文所提方案的安全性,本文將提出的方法與現(xiàn)有文獻(xiàn)的方法進(jìn)行對(duì)比.當(dāng)主機(jī)數(shù)量與被保護(hù)網(wǎng)絡(luò)可容納的IP地址數(shù)相等時(shí),所有移動(dòng)目標(biāo)防御方法均會(huì)失效,因此,只有對(duì)比最低防御失敗率才具有意義,最低防御失敗率對(duì)比結(jié)果如表5所示: Table 5 Comparison of Minimal Attack Defense Failure Probability Base on Common IPv6 Network 在防御效能對(duì)比中,采用最極端情況——保護(hù)網(wǎng)絡(luò)中僅有2臺(tái)主機(jī)存活,以滿足通信最低的要求.同時(shí),以互聯(lián)網(wǎng)服務(wù)提供商通常提供到用戶端的IPv6網(wǎng)絡(luò)的子網(wǎng)前綴長(zhǎng)度64為例,在對(duì)比數(shù)據(jù)中,被保護(hù)的網(wǎng)絡(luò)中擁有的IPv6地址數(shù)為264;同時(shí),假定探測(cè)器探測(cè)次數(shù)為232(IPv4的所有地址容量),此數(shù)值為面向未來高速網(wǎng)絡(luò)而進(jìn)行的假設(shè),實(shí)際情況下需要45 min方可掃描完成[28],其遠(yuǎn)超過本文所提方法的隨機(jī)IP地址更新的最長(zhǎng)時(shí)間.根據(jù)對(duì)比結(jié)果,相比于其他文獻(xiàn)中所采用的僅實(shí)現(xiàn)移動(dòng)目標(biāo)防御而不采用訪問控制的方法,在本文的IPv6移動(dòng)目標(biāo)防御與訪問控制技術(shù)的融合應(yīng)用下,可大幅降低防御失敗率,以更高強(qiáng)度保證被保護(hù)網(wǎng)絡(luò)的安全. 4.7.2 引入設(shè)備的安全性分析 本文引入核心控制器與移動(dòng)目標(biāo)處理器以實(shí)現(xiàn)本文所提出的安全技術(shù).本文假設(shè)移動(dòng)目標(biāo)處理器通過專用網(wǎng)絡(luò)與核心控制器進(jìn)行連接,其他互聯(lián)網(wǎng)設(shè)備無法直接訪問該專用網(wǎng)絡(luò)的設(shè)備.因此,核心控制器以及移動(dòng)目標(biāo)處理器的通信安全均由專用網(wǎng)絡(luò)技術(shù)進(jìn)行保障.此外,由于移動(dòng)目標(biāo)處理器用于處理數(shù)據(jù)部分的端口沒有IP地址,也不會(huì)對(duì)IP數(shù)據(jù)包進(jìn)行深度解析,因此,網(wǎng)絡(luò)攻擊幾乎不可能攻擊一個(gè)看似不存在的設(shè)備.同時(shí),移動(dòng)目標(biāo)處理器也不會(huì)把被保護(hù)網(wǎng)絡(luò)(工控設(shè)備所在網(wǎng)絡(luò)區(qū)域)的數(shù)據(jù)與管理網(wǎng)絡(luò)的數(shù)據(jù)進(jìn)行交互.因此,從被保護(hù)網(wǎng)絡(luò)發(fā)起的任何攻擊均不會(huì)影響管理網(wǎng)絡(luò).同時(shí),管理網(wǎng)絡(luò)的設(shè)備之間也構(gòu)成一個(gè)安全閉環(huán),確保整個(gè)專用網(wǎng)絡(luò)都在一個(gè)封閉的網(wǎng)絡(luò)中,外部的攻擊均無法到達(dá)這個(gè)網(wǎng)絡(luò)區(qū)域,從而保障了核心控制器及各個(gè)移動(dòng)目標(biāo)處理器的安全,進(jìn)而間接確保網(wǎng)絡(luò)攻擊無法對(duì)被保護(hù)網(wǎng)絡(luò)實(shí)施攻擊. 通過有效性測(cè)試、性能測(cè)試、安全性分析,均表明本文提出的移動(dòng)目標(biāo)防御與訪問控制技術(shù)可以保護(hù)IPv6下的工業(yè)互聯(lián)網(wǎng),但由于本文所使用的SDN框架——DPDK對(duì)系統(tǒng)資源要求較高,因此,部署需要較多的硬件資源. 為解決萬物互聯(lián)時(shí)代工業(yè)互聯(lián)網(wǎng)所面臨的安全問題,本文提出基于IPv6的移動(dòng)目標(biāo)防御與訪問控制融合的防護(hù)技術(shù),應(yīng)用了多種機(jī)制保證IP地址的隨機(jī)性和移動(dòng)目標(biāo)處理器的性能.此外,在我們的方法中,使用移動(dòng)目標(biāo)處理器實(shí)現(xiàn)IP地址變化為隨機(jī)IP地址的功能,以實(shí)現(xiàn)安全防御.最后,本文通過一系列的實(shí)驗(yàn)證明本文提出的方法從性能、安全性方面均可滿足基于IPv6的工業(yè)互聯(lián)網(wǎng)安全防護(hù)的要求. 然而,由于使用通用的SDN處理框架DPDK,其性能要求較高,因此,下一步工作擬使用專用數(shù)據(jù)邏輯電路實(shí)現(xiàn)對(duì)數(shù)據(jù)包的IP地址與隨機(jī)IP地址進(jìn)行相互替換,以實(shí)現(xiàn)更廉價(jià)的移動(dòng)目標(biāo)防御和訪問控制方案. 致謝:感謝實(shí)驗(yàn)室的王玉玨老師對(duì)本文提出有價(jià)值的建議,也感謝實(shí)驗(yàn)室的劉德華和謝浩然對(duì)本文安全性分析的公式進(jìn)行正確性討論. 作者貢獻(xiàn)聲明:李振宇負(fù)責(zé)提出科學(xué)問題、閱讀文獻(xiàn)、算法設(shè)計(jì)、實(shí)驗(yàn)和初稿寫作;丁勇提供研究基金并審查論文;袁方負(fù)責(zé)對(duì)算法的有效性進(jìn)行分析;張昆負(fù)責(zé)對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析.3 移動(dòng)目標(biāo)防御與訪問控制融合的防護(hù)技術(shù)
3.1 應(yīng)用樣例
3.2 定時(shí)更新方法
3.3 地址變換方法
3.4 訪問控制算法
4 實(shí)驗(yàn)與評(píng)估
4.1 實(shí)驗(yàn)環(huán)境
4.2 測(cè)試用例
4.3 實(shí)驗(yàn)裝置
4.4 測(cè)量方法
4.5 有效性測(cè)試
4.6 性能測(cè)量
4.7 安全性分析
4.8 實(shí)驗(yàn)總結(jié)
5 總結(jié)與未來展望