李振宇 丁 勇,3 袁 方 張 昆
1(桂林電子科技大學計算機與信息安全學院 廣西桂林 541004) 2(廣西密碼學與信息安全重點實驗室(桂林電子科技大學) 廣西桂林 541004) 3(鵬城實驗室新型網絡研究部 廣東深圳 518000) 4(外交部通信總臺 北京 100045) 5(國家信息中心 北京 100045)
隨著5G技術的發展以及工業4.0的推進,全球正在快速進入工業互聯網時代.在工業互聯網中,大量的物聯網設備已作為工業互聯網的重要組成部分進行布署.同時,5G技術所帶來的低延遲等特性,促進了工業互聯網的萬物互聯[1].然而,萬物互聯需要大量使用互聯網可直接訪問的IP地址(公網IP地址)以支持工業互聯網設備進行通信.因此,在互聯網協議第4版(Internet Protocol version 4, IPv4)的網絡中,為有效實現網絡互聯互通,通常采用網絡地址轉換(network address translation, NAT)技術以解決互聯網IP數量不足的問題[2].然而,針對工業控制系統內的設備,例如可編程邏輯控制(programm-able logic controller, PLC)等,其通常需要使用固定的端口進行通信[3];而且,在工業4.0體系中,管理系統需要對傳感器的信息進行高頻率采集,如果傳感器沒有獲得公網IP地址,將只能使用NAT技術進行網絡通信.然而,NAT技術對使用固定端口的網絡連接進行反向轉換存在困難,也無法有效發揮5G等新技術所帶來的優良特性[4].因此,在IP網絡中,NAT技術難以滿足工業互聯網的需求.為此,針對工業互聯網的特殊需求,將工業互聯網與互聯網協議第6版(Internet Protocol version 6, IPv6)相結合則成為一個可行的選擇.
我國作為全球第一制造大國,在“十四五”期間擬結合工業互聯網5G與IPv6網絡架構的優點,在全國范圍內全面推進基于IPv6工業互聯網的部署[5].然而,在工業互聯網IPv6的實際部署中,由于IPv6可直接使用公網IP地址進行通信,新的通信方式將導致傳統工業企業以IPv4規劃的網絡安全邊界被打破,從而造成大量設備暴露在公網中,給這些設備帶來在IPv4網絡中所沒有的安全挑戰[6].而這些設備可能包含關鍵基礎設施,它們作為國民經濟生產中的重要組成部分,關系著國家的穩定,這將吸引大量的高級持續性威脅(advanced persistent threat, APT)攻擊者對其進行攻擊[7].在APT活動中,APT攻擊者會嘗試獲取工業設備的控制權限,以實現在指定時間對工業互聯網設備進行破壞[8].
為此,針對當前面臨的挑戰,已有大量的安全防護技術用于工業互聯網,以保護工業互聯網設備的安全.其中,大約54%的移動目標防御技術是基于網絡層面進行部署,然而這些技術主要針對IPv4架構進行討論,缺乏對IPv6所帶來的新特性以及新挑戰的考慮.此外,雖然目前有IPv6相關的工業互聯網安全防護技術,但是它們與傳統的防火墻或者入侵檢測系統的防御方式類似,其防護效能低,難以有效對APT攻擊進行防護.同時,已有的移動目標防御技術基于理論研究居多,難以在實際環境中部署[9].因此,如何構建零信任的安全環境則成為未來工業互聯網所面臨的挑戰.
為解決當前工業互聯網面臨的安全問題,本文提出網絡層面的移動目標防御與訪問控制技術互相融合的防護方法,以保護基于IPv6的工業互聯網的設備安全.本文的主要貢獻包括3個方面:
1) 提出了基于軟件定義網絡(software defined network, SDN)技術的IPv6網絡移動目標防御與訪問控制方法,其通過對用戶側可自由配置的IPv6網絡地址進行隨機的動態變換,并使用動態變換后的IP地址在互聯網中傳輸,隨后結合訪問控制方法,使網絡攻擊發起方無法得知當前可訪問的設備的真實IP地址,進而有效抵御外部網絡對保護網絡的掃描.
2) 本文提出的方法無須更改已有網絡拓撲,即可兼容性地對目標網絡進行保護.通過SDN技術,可對流經SDN處理器的所有數據包進行實時編輯,在互聯網中使用編輯后的隨機IPv6地址進行傳輸;隨后在對端收到數據后,將編輯后的隨機IPv6地址還原為原始的IPv6地址.因此,基于SDN技術可實現無須更改已有的任何設備以及網絡拓撲,僅需將SDN處理器串聯到需要保護的網絡的出口上,即可對目標網絡進行保護.
3) 本文提出的方法具備網絡防火墻功能,可限制非法數據傳輸.訪問控制方法是常用的網絡管理方法,本文將其與移動目標防御相結合,對源和目的地址進行校驗,可大幅度降低掃描、偽造數據包等攻擊的成功概率,以接近100%的有效防護概率保護被保護的網絡.
網絡層面的移動目標防御在具體實踐中主要包含2種方法:1)在設備端進行實現;2)通過網絡設備進行實現[10].其中,在設備端實現的網絡層面的移動目標防御的相關研究中,黃廷輝等人[11]提出一個新的物聯網安全協議名為L6HOP,通過將其部署在物聯網節點中,直接實現網絡地址跳變.Sagisi等人[12]提出在設備端嵌入專用集成電路,以實現網絡地址變換.Bandi等人[13]提出在數據到達原有服務器之前,使用多個新的代理服務器用于校驗數據的合法性.Moore等人[14]提出在操作系統層面,使用流控制傳輸協議(Stream Control Transmission Protocol, SCTP)替代用戶數據報協議(User Datagram Protocol, UDP)等協議,以實現動態IP地址變換,進行數據傳輸.然而,在設備端實現的基于網絡的移動目標防御技術,其雖然從數據源上進行IP地址變換,能徹底地進行網絡層面的防護,但是其在定制化、模塊化的工業互聯網系統中難以進行二次開發,部署實施極其困難,不適宜在工業互聯網中大范圍使用.
同時,在通過網絡設備實現的網絡層面的移動目標防御相關研究中,主流實現移動目標防御研究的方向又分為使用特殊協議進行特殊處理的方法以及使用SDN的方法.在使用特殊協議進行特殊處理的方法中,Park等人[15]提出一種名為Ghost-MTD的技術,其使用預共享的一次性比特串來進行認證.其中,如果預共享一次性比特串通過認證,則允許外部設備與被保護設備進行數據交換;如果預共享一次性比特串認證失敗,則重定向流量到誘餌模塊中.然而,Ghost-MTD雖然能夠提供較安全的通信環境,但是其需要更改已有設備,以實現對發送的數據包進行特殊處理.因此,使用Ghost-MTD技術除了需要額外的開銷,還可能導致工業互聯網審計設備對網絡審計結果產生錯誤.
因此,為解決使用特殊協議進行特殊處理的方法以實現移動目標防御所帶來的負面問題,使用SDN技術以實現移動目標防御是一個可行的選擇[16].國內外研究人員均進行了大量的研究,許書彬等人[17]以及吳樺等人[18]均提出基于OpenFlow的軟件定義網絡方法,用于對IP進行虛擬變換,以防御分布式拒絕服務(distributed denial of service, DDoS)、掃描等相關類型的攻擊.然而,文獻[16-18]均沒有考慮免升級部署的問題,需要客戶端進行特殊的配置方可實現移動目標防御,難以在工業互聯網中進行低成本的實施.此外,Narantuya等人[19]使用多個OpenFlow交換機作為SDN控制器,實現動態改變IP地址,以保證整體網絡的安全性.然而,文獻[19]提出的方法需要大量修改網絡拓撲,在實際使用中,由于普通用戶通常無權限對公共網絡的基礎網絡設施進行管理,因此,該文獻所提出的方法難以在現有的互聯網中實施.此外,Hyder等人[20]提出了一種名為SMCDS的方法,其可通過多個具有相同功能的影子SDN控制器,并結合動態IP地址和網絡端口以實現基于數據和控制平面的移動目標防御安全保護方法.然而,Hyder等人提出的方法由于受其核心的被動防御方法限制,仍有很大提升空間.Sharma等人[21]以及Niu等人[22]均提出基于SDN技術的移動目標防御方法,他們的方法可透明地對設備進行保護,而且不需要對已有設備以及網絡拓撲進行修改.然而Sharma等人[21]以及Niu等人[22]的方法均沒有支持訪問控制,因此,攻擊者進行探測所需的成本大幅降低.
此外,通過將移動目標防御技術與訪問控制技術相融合,可使網絡安全防御效能更進一步提升.例如,黃志蘭等人[23]、史久根等人[24]使用軟件定義網絡技術與訪問控制技術相結合的方法,均有效提升了其應用場景的安全性,但是他們提出的方法并不支持動態IP地址變換,從而對APT等高級別且隱蔽的網絡攻擊防御能力不足.
因此,本文針對工業互聯網安全的研究現狀,總結當前涉及工業互聯網相關安全研究缺乏的問題,提出使用軟件定義網絡技術在IPv6網絡中實現移動目標防御與訪問控制,其對比與已有的研究成果,具有透明的、無須更改已有設備網絡配置的優點,具備在工業互聯網中簡易部署并應用的條件.本文與其他文獻的工作對比如表1所示:

Table 1 Related Work Comparison
本節主要描述了基于IPv6的工業互聯網架構及其面臨的安全威脅.隨后,針對當前基于IPv6的工業互聯網面臨的安全威脅,提出移動目標防御架構,以解決所面臨的安全威脅.本文所使用的符號定義如表2所示:

Table 2 Notation and Definition
本文假設基于IPv6的工業互聯網由n個IPv6路由器route組成,因此,基于IPv6的工業互聯網的IPv6路由器集合為
R={route1,route2,…,routen}.
本文假設每一個路由器route包含n個工業控制設備device,因此,工業互聯網每個網絡中包含工業控制設備的集合為
D={device1,device2,…,devicen}.
同時,本文假設在基于IPv6的工業互聯網中,網絡攻擊者會對工業互聯網設備實施所有可以實施的網絡攻擊,從而對所有工業互聯網設備造成安全威脅.因此,基于IPv6的工業互聯網將面臨3個安全問題:1)工業互聯網設備如何防護掃描,以規避設備指紋被記錄.針對此問題,常規的安全做法是針對例如TCP異常握手等信息進行屏蔽.2)如何防護DDoS.針對此問題,常規做法是把DDoS流量引入不可達IP地址中,但是DDoS流量引入不可達IP地址的方法通常會導致原始設備也變為不可達.3)如何攔截非法來源的數據,以保護設備不被破壞.常規做法是使用防火墻等方法,以攔截非法來源數據.此外,仍需要考慮工業互聯網設備的局限性,其主要局限性是難以進行二次開發.因此,對現有網絡及設備透明且無須升級的安全防護技術具備較高的實際應用價值.
為解決2.1節中基于IPv6的工業互聯網所面臨的安全問題,本文提出使用移動目標防御方法以對工業互聯網的網絡進行安全防護,從而構建工業系統環境中的可信網絡,推動零信任安全防護措施實施,其防護架構如圖1所示:

Fig. 1 Industrial Internet architecture based on IPv6 and its protection architecture proposed in this paper圖1 基于IPv6的工業互聯網架構及本文提出的防護架構
首先,本文提出的方法需要在被保護的兩端網絡分別部署移動目標處理器,其用于對被保護網絡傳輸的數據包進行IP地址隨機變換及訪問控制.隨后,每個移動目標處理器均使用自身標識符,從隨機地址生成與訪問控制服務器(以下簡稱“核心控制器”)上獲取隨機IP地址組.特別地,在持續獲取隨機IP地址列表之前,本文假設移動目標處理器通過專用網絡與核心控制器進行連接,而且其他互聯網設備無法直接訪問該專用網絡內的設備.當核心控制器接收到移動目標處理器標識符后,結合訪問控制列表,隨機生成并返回與此移動目標處理器相關的隨機IP地址組.使用核心控制器下發的隨機IP地址組可減少移動目標處理器重復的訪問控制配對運算,提升移動目標處理器的隨機地址替換和訪問控制效率.而且,通過核心控制器生成隨機IP地址組,可進一步提高訪問控制的安全性,避免移動目標處理器獲取非必要的隨機IP地址從而導致潛在的安全風險.接下來,當工業互聯網設備發送數據包時,移動目標處理器將原始的IP地址替換為隨機的IP地址;之后在到達另一側的移動目標處理器時,通過移動目標處理器將接收到的數據包的隨機IP地址還原為原始IP地址.因此,本文提出的移動目標防御架構需要解決2個問題:1)使用了隨機IP地址后,如何保證在互聯網上進行兼容性傳輸;2)確保隨機IP地址在移動目標防御架構中的各個系統能完全同步,并且具有高可用性.
為有效提升移動目標防御架構的安全防護效能及確保移動目標防御架構對現有網絡架構的兼容性,需要使用多種機制以確保移動目標防御架構穩定運行.
2.3.1 兼容IPv6互聯網傳輸的隨機地址生成機制
在IPv6的部署實踐中,根據RFC2373[25]及其后續更新的關于IPv6地址的相關標準,用戶自定義接口長度IL計算為
IL=128-SPL,
其中,SPL是子網絡前綴長度,其默認為64位.因此,IPv6的地址在互聯網服務提供商(Internet service provider, ISP)分配給用戶自定義的接口地址長度通常為64位.64位的用戶自定義接口地址長度可幫助EUI-64等自動配置IP地址方法穩定運行[26],以實現全網無需網絡地址轉換的直接訪問.
因此,假定用戶自定義的IP地址addr有n個,用戶自定義的所有IP地址集合為
A={addr1,addr2,…,addrn},
在用戶自定義接口地址范圍內,用戶可對這部分IP地址進行自定義設置,其可用地址數Acount計算公式為
Acount=2IL-GWcount,
其中,GWcount為網關使用的地址數.因此,對于標準互聯網接入,用戶通常至少擁有264-GWcount個可用的IP地址.隨機IP地址生成機制只要在可用IP地址范圍內隨機生成IP地址,則隨機IP地址所傳輸的所有數據包均可通過互聯網進行傳輸,隨機IP地址的結構如圖2所示:

Fig. 2 Random IP address structure圖2 隨機IP地址結構
2.3.2 支持兩端時差冗余的隨機地址機制
雖然每個移動目標處理器均從核心控制器中獲取隨機IP地址組列表,然而移動目標處理器在啟動運行以及向核心服務器獲取隨機IP地址組時,均會開銷些許時間,從而產生一定的時間偏差.因此,移動目標處理器的標準時間片段很大概率會出現與核心控制器的當前標準時間不一致的情況.為解決此問題,提出支持兩端時差冗余的隨機IP地址機制,其數據流示意圖如圖3所示.
支持兩端時差冗余的隨機IP地址機制需要滿足:
|TA-TB| 其中,TA為移動目標處理器A的標準時間,TB為移動目標處理器B的標準時間,Trange為時間片段所包含的時間范圍.當Trange設置過大時,會出現隨機IP地址組更新緩慢,從而導致移動目標防御安全性下降,增加被攻擊人員探測到所使用的臨時IP地址的風險;當Trange設置過小時,不僅會導致移動目標處理器需要頻繁更新內存中存儲的隨機IP地址組,而且可導致核心控制器計算更頻繁,更會導致移動目標處理器對基于隨機IP地址的網絡傳輸的最低網絡延遲要求提高.因此,為保證整個系統的穩定運行,設置恰當的Trange數值是非常重要的. Fig. 3 Data exchange flow of clock-skew-supported random IP address based on central control圖3 基于中心控制的時差冗余隨機IP地址數據交換流程圖 2.3.3 支持多線程的無鎖隨機IP地址選取機制 為保證移動目標處理器的多線程能快速穩定地處理數據,減少非必要的內存訪問操作,提升整體移動目標防御與訪問控制的效率,本文提出支持多線程的無鎖隨機IP地址選取機制,其示意圖如圖4所示. 在支持多線程的無鎖隨機IP地址選取機制的設計中,由于隨機IP地址組列表占用的內存空間較小,因此,本文采取空間換時間的思路進行設計.本文定義隨機IP地址組RAG={osIP,rsIP,odIP,rdIP},其中,osIP為原始源IP地址,rsIP為原始源IP地址對應的隨機源IP地址,odIP為原始目的IP地址,rdIP為原始目的IP對應的隨機目的IP地址.每個時間片段均包含其對應的1組隨機的IP地址組列表RAGL={RAG1,RAG2,…,RAGn}.每次獲取隨機地址組列表時,將獲取當前標準時間片段對應的RAGL以及前后各一個時間片段的RAGL.當獲取新版本的隨機地址組列表完成后,隨機IP地址選取機制將上一個版本獲取的隨機IP地址組列表刪除,隨后標記當前獲取的版本的各個時間片段的RAGL為新一個版本的隨機地址組,并將版本號加1,以加快移動目標處理器的多線程處理速度. Fig. 4 Multi-thread-supported lock-free random IP address selection mechanism圖4 支持多線程的無鎖隨機IP地址選取機制 Fig. 5 Data flow diagram of moving target defense圖5 移動目標防御數據流程圖 本節首先介紹移動目標防御與訪問控制技術融合防護的應用樣例,隨后詳細介紹移動目標防御與訪問控制技術融合的防護技術所使用的3種方法,分別為:定時更新隨機IP地址列表方法、地址變換方法以及訪問控制方法. 本文根據工業互聯網跨網絡訪問的基礎場景,提煉與移動目標防御架構研究相關的部分,進行更詳細的分析,以解決IP地址隨機性、網絡拓撲兼容性的問題,并致力于提升抵抗攻擊的效能.如圖5所示,在本文提出的防護架構中,采取在基于IPv6的工業互聯網的路由器出口處,串聯移動目標防御處理器進行安全防護.首先,移動目標處理器會周期性地使用標識符,通過專用網絡請求核心控制器,并從核心控制器上獲取與該網絡相關的隨機IP地址列表信息.隨后,當發送端的移動目標處理器接收到數據包后,其立即對IP數據包進行檢查,以獲取源IP地址和目的IP地址.接下來,發送端的移動目標處理器根據隨機IP地址列表,將原始的IP地址替換成隨機IP地址,并使用隨機源IP地址和隨機目的IP地址在互聯網中進行傳輸;隨后,隨機化IP地址的IP數據包到達另外的對端網絡后,再次利用移動目標防御處理器,根據隨機IP地址列表以及訪問控制規則,對隨機IP地址進行處理,以將隨機的IP地址還原為原始的IP地址.通過透明的IP地址替換方法,可確保無須對現有網絡拓撲以及工業互聯網設備進行任何修改,即可實現高效能安全防護. 定時更新方法可為移動目標處理器定時獲取核心控制器上最新的隨機IP地址列表,其包含2個算法:核心控制器更新隨機IP地址列表算法和獲取隨機IP地址列表算法. 核心控制器更新隨機IP地址列表算法如算法1所示.首先,核心控制器更新隨機IP地址列表算法需要輸入所有被保護設備的原始IP地址列表,以及使用核心控制器的數據庫上存儲的數據,為異步快速處理提供支撐.另外,需要在隨機IP地址列表生成的實例化程序上放置一個靜態的變量,用以保存上次更新時間,避免頻繁操作數據庫而導致的額外系統資源開銷. 算法1.核心控制器更新隨機IP地址列表算法. 輸入:設備原始IP地址列表sIPL、數據庫S、上次更新時間Tupdate、當前時間Tc、更新周期Trange; 輸出:數據庫動作. ① if (Tc-Tupdate>Trange) then ②DeleteExpiredRandomIP(S,Tc-2); ③rIPL←BuildRandomIPList(sIPL,Tc+1); /*使用兼容IPv6互聯網傳輸的隨機地址生成機制與支持兩端時差冗余的隨機地址機制輔助生成隨機IP地址*/ ④rIPL←TryBuildRandIPList(sIPL,Tc); ⑤rIPL←TryBuildRandIPList(sIPL,Tc-1); ⑥SaveToDatabase(rIPL); ⑦ endif 在核心控制器更新隨機IP地址列表算法運行時,首先,其會檢測當前時間與上次更新的時間是否大于更新周期.如果更新間隔大于更新周期,則進入更新數據庫隨機IP地址列表的步驟;否則,不進行任何操作(行①).隨后,如果算法進入更新數據庫隨機IP地址列表的步驟,首先其會刪除所有已經過期的隨機IP地址列表,以減小數據庫的存儲壓力和提升數據庫的數據查找效率(行②);接下來,算法使用設備原始IP地址列表,提取出IP地址對應的子網前綴,并結合兼容IPv6互聯網傳輸的隨機IP地址生成機制,以生成后一個時間片段的隨機IP地址(行③);此外還會根據支持兩端時差冗余的隨機IP地址機制的要求,如果當前時間片段和上一個時間片段的數據為空,則會嘗試生成該時間片段對應的隨機IP地址列表,其順序為首先嘗試生成當前時間片段的隨機IP地址列表(行④),隨后嘗試生成前一個時間片段的隨機IP地址列表(行⑤).當所有有效時間片段的隨機IP地址列表生成完成后,算法將生成的隨機IP地址存儲到數據庫,以備移動目標處理器獲取隨機IP地址列表算法使用(行⑥). 移動目標處理器獲取隨機IP地址列表算法在核心控制器更新隨機IP地址列表算法至少執行一次后,方可獲取有效數據,其算法細節如算法2所示.移動目標處理器向核心控制器請求數據時,需要提供移動目標處理器標識符給核心控制器,用于識別移動目標處理器具體負責保護的網絡.在算法具體實施過程中,采用一串隨機數字作為移動目標處理器標識符,由于其長度較長,因此,還可作為認證字符串使用. 算法2.獲取隨機IP地址列表算法. 輸入:移動目標處理器標識符I、服務器隨機地址列表庫SrIPL; 輸出:與當前移動目標處理器相關的隨機地址組RAGL. ①A←Auth(I); ② if (A=PASS) then ③SIP←GetSourceIP(I); ④ACLs←GetACL(SIP); ⑤RAGL←BuildRAGList(SrIPL,ACLs); ⑥ endif 移動目標處理器獲取隨機IP地址列表算法開始執行時,核心控制器首先需要對移動目標處理器的標識符進行認證(行①).如果認證通過(行②),則核心控制器根據該移動目標處理器的標識符,計算出該移動目標處理器所管轄的原始IP地址(行③);隨后,根據管轄的原始IP地址列表,獲取對應的ACL列表,以協助確定該移動目標處理器所管轄范圍內的所有可訪問的IP地址(行④);接下來,使用核心控制器隨機IP地址列表庫結合ACL列表,返回所有與當前移動目標處理器相關的隨機IP地址組,供地址變換以及訪問控制使用(行⑤). 地址變換方法是移動目標防御的核心算法,其細節如算法3所示.在使用地址變換算法時,除提供需要處理的數據包之外,還需提供隨機IP地址組以幫助地址變換以更快的速度進行處理.經過地址變換算法處理后,其地址已變換的數據包可直接交給發送程序,直接從另一端的網絡端口進行發送. 算法3.地址變換算法. 輸入:隨機IP地址組RAGL、需要處理的數據包pkt; 輸出:地址已變換的數據包epkt. ①PsIP,PdIP←ParsePacket(pkt); ② if (ACLCheck(RAGL,PsIP,PdIP)= PASS) then ③NsIP,NdIP←FindAddr(RAGL,PsIP,PdIP);/*使用支持多線程的無鎖隨機IP地址選取機制以支持地址快速替換*/ ④ if (pkt.PORT=InnerPort) then ⑤epkt←ToRandom(pkt,NsIP,NdIP); ⑥ else ⑦epkt←ToOrigin(pkt,NsIP,NdIP); ⑧ endif ⑨ else ⑩epkt←null; 地址變換算法開始運行時,首先算法提取出當前需要處理數據包的源IP地址以及目的IP地址,這可幫助后續的步驟快速執行(行①).隨后,使用核心控制器所返回的隨機IP地址列表組,根據訪問控制方法,對需要處理數據包的源IP地址以及目的IP地址進行檢查,以確認其是否在訪問控制允許的范圍內(行②),如果需要處理的數據包在訪問控制運行的范圍內,則繼續進行IP地址變換;否則,當需要處理的數據包不在訪問控制允許的范圍內時,則直接返回空結果,以標記當前處理的數據包被丟棄(行⑩).接下來,在數據包IP地址變換流程中(行③~⑧),為充分利用系統資源,提升多線程處理效能,在替換算法中,將替換為隨機IP地址和還原為原始IP地址的2個過程進行統一.在替換步驟執行開始時,首先需要在隨機IP地址組中查找當前數據包對應的隨機IP地址,以備后續替換操作可以快速進行處理.在此,由于先前訪問控制檢查已經通過,因此,當前數據包的原始IP地址一定是在隨機IP地址組內.同時,根據支持多線程的無鎖隨機IP地址選取機制的要求,首先檢查當前時間片段內是否存在與當前處理數據包的源IP地址以及目的IP地址相匹配的記錄.如果不存在匹配記錄,則需要對前后各一個時間片段進行嘗試性匹配(行③).接下來,地址變換算法判斷當前處理數據包的接收端口(行④),如果當前處理數據包接收的端口為內部端口,則將當前處理數據包的源IP地址以及目的IP地址,替換為隨機IP地址列表中當前時間片段對應的隨機源IP地址以及隨機目的IP地址(行⑤);否則,則對當前處理數據包的源IP地址以及目的IP地址,還原為原始的源IP地址以及原始的目的IP地址(行⑥~⑧).當數據包處理完成后,則將地址已變換的數據包進行輸出,以提供給發送程序進行發送. 訪問控制算法用于對當前處理的數據包進行檢查,以限制設備訪問范圍,其算法細節如算法4所示.通過訪問控制算法的安全性加固,可進一步提升安全效能.由于訪問控制方法需要數據包所包含的源IP地址和目的IP地址均匹配隨機IP地址組所記錄的數據后,數據包方可被放行,因此,可有效解決攻擊者對網絡掃描的問題. 算法4.訪問控制算法. 輸入:隨機IP地址組RAGL、需要處理的數據包pkt; 輸出:轉發標記F. ①PsIP,PdIP←ParsePacket(pkt); ②result←Check(RAGL,PsIP,PdIP); /*結合支持兩端時差冗余的隨機地址機制進行訪問控制列表檢測*/ ③ if (resultis not null) then ④F←PASS; ⑤ else ⑥F←DROP; ⑦ endif 訪問控制算法運行時,需要提供隨機IP地址組以及需要處理的數據包.算法首先通過數據包解析器,提取出數據包中的源IP地址以及目的IP地址(行①).隨后,將數據包中的源IP地址以及目的IP地址,在已獲得的隨機IP地址組中進行查找,以檢測隨機IP地址組中是否包含數據包中的源IP地址以及與目的IP地址一致的IP地址對(行②).如果匹配結果不為空,則表明訪問控制方法需要放行當前正在處理的數據包(行③),并返回檢測通過的標記(行④);否則,如果匹配結果為空,則表明訪問控制方法需要攔截當前正在處理的數據包,并返回丟棄該數據包的標記(行⑤~⑦). 在本節,首先介紹開展實驗所使用的環境,并介紹開展實驗相關的測試所使用的用例,此外還將介紹實驗平臺相關的配置;隨后對本文提出的算法進行性能測量;最后對所有實驗進行總結. 在實驗拓撲的規劃中,采用完全使用IPv6的網絡架構對相關實驗設備進行部署,因此,整個實驗均不使用IPv4的地址.在實驗中,我們的目標是對IPv6網絡的設備,實現移動目標防御與訪問控制融合的安全防護,且保證測試設備A與測試設備B在不更改任何配置的情況下進行通信,因此,本文所采用的實驗網絡拓撲如圖6所示: Fig. 6 Experimental topology圖6 實驗拓撲 在實驗中,移動目標處理器通過專用的管理網絡,與核心控制器進行通信,以周期性地獲取當前時刻的隨機IP地址列表;IPv6路由器B則用于模擬互聯網以實現IPv6路由器A與IPv6路由器C之間的通信.此外,本文定義移動目標處理器靠近測試設備的一側為內部端口,流經內部端口的數據包均從隨機IP地址還原為真實IP地址;移動目標處理器靠近IPv6路由器B的端口為外部端口,所有流出外部端口的數據包均需要從真實IP地址變換為隨機IP地址. 在實驗中,使用了Linux系統中的ping(1)https://github.com/torvalds/linux/blob/master/net/ipv4/ping.c程序以及iPerf3(2)https://iperf.fr程序對基于DPDK(3)https://www.dpdk.org編程的移動目標處理器所實現的移動目標防御及訪問控制的有效性以及網絡性能進行評估.Linux系統中的ping程序可通過發送ICMP數據包,測量2個設備之間通信的聯通性及傳輸數據包所開銷的時間.通過ping程序,可以確定移動目標處理器是否能滿足工業互聯網傳輸的最低要求.此外,iPerf3程序則是用于測試評估移動目標處理器所能處理的最大網絡帶寬. 使用VMWare ESXi 6.7.0完成本文相關的實驗.其中,所有設備的網絡適配器均使用VMXNET 3,VMXNET 3可在VMWare ESXi虛擬化平臺中支持大于1 Gb/s的性能測試.此外,宿主機的CPU使用支持超線程技術的6核Intel?Xeon?Gold 6128 CPU @ 3.40 GHz.本文實驗平臺所有設備的詳細配置如表3所示. 在實驗中,使用了2臺設備用于運行ping程序以及iPerf3程序,它們分別為測試設備A與測試設備B;此外,還使用了測試設備C以測試本文提出的移動目標防御方法有效性.由于運行的程序對系統資源要求不高,因此,對每個運行測試程序的設備,在實驗中均對其分配2個虛擬CPU以及2 GB內存.同時,移動目標處理器以及核心控制器需要對數據進行實時處理.因此,對于本文提出的安全設備,在實驗中均對其分配4個虛擬CPU以及16 GB內存給每個設備使用.特別地,由于移動目標處理器使用了DPDK框架以實現本問題提出的方法,而且DPDK框架在運行時需要開銷較多的系統資源,所以對移動目標處理器分配較多資源.最后,針對網絡聯通的需求,本文將開源的路由器系統OpenWRT部署在每個IPv6路由器上,用于數據轉發.對每個IPv6路由器,均采用OpenWRT的默認設置,分別為2個虛擬CPU以及2 GB內存. Table 3 Experimental Platform 在有效測試過程中,使用測試設備A、測試設備B以及測試設備C互相通信,以測試本文提出的移動目標防御方法的有效性.隨后,為了提升閱讀體驗,本文分析捕捉到的數據包,并將其關鍵數據提取后用流程圖進行展示. 在性能測量過程中,在測試設備A與測試設備B上,使用ping程序與iPerf3程序在它們之間互相發送測試數據進行測試,并使用滑動窗口方差的方法取其中一段最為穩定的實驗數據進行記錄. 有效性使用ping程序進行測試,其用于驗證網絡是否能聯通,進而可驗證本文提出的移動目標防御與訪問控制技術的有效性.有效性測試主要分為3個部分:外部網絡的設備訪問被保護網絡的設備的測試、被保護網絡的設備訪問外部網絡的設備的測試以及被保護網絡的設備互相訪問的測試.在本測試實驗中,本文定義外部網絡為不需要進行保護的網絡;而內部網絡則定義為需要保護的網絡,例如本文假定要保護的網絡為工業互聯網設備所在的網絡. 在外部網絡的設備訪問被保護網絡的設備的測試中,本文在測試設備C上,分別使用ping程序向測試設備A以及測試設備B發送ICMP數據包,其分析后的數據流圖如圖7所示.由于測試設備C的IP不在隨機IP地址組中,因此,移動目標處理器A以及移動目標處理器B均會將此發送的數據包丟棄. Fig. 7 Test of external device accessing protected device圖7 外部環境設備訪問被保護設備的測試 Fig. 8 Test of protected device accessing external device圖8 被保護設備訪問外部環境設備的測試 在被保護網絡的設備訪問外部網絡的設備的測試中,使用測試設備A嘗試訪問路由器,其分析后的數據流圖如圖8所示.由于移動目標處理A從核心控制器中獲得的隨機IP地址列表并不包含外部網絡的路由器的IP地址,因此,移動目標處理器A會將測試設備A所發送的數據包丟棄. 在被保護網絡的設備互相訪問的測試中,使用測試設備A的ping程序向測試設備B發送ICMP數據包,并獲取測試設備B響應的ICMP數據包,其分析后的數據流圖如圖9所示.在數據包流經移動目標處理器A時,由于測試設備A與測試設備B的IP地址均在核心控制器所提供的隨機IP地址列表中,因此,移動目標處理器A將測試設備A發送出來的ICMP數據包替換為測試設備A和測試設備B所對應的隨機IP地址,并將其發送到網絡中.隨后,經過一系列網絡傳輸后,隨機地址化的數據包到達移動目標處理器B時,移動目標處理器B檢查所接收到的數據包是否在核心控制器所提供的隨機IP地址列表中.由于當前的數據包為移動目標處理器A替換后的隨機IP地址數據包,并且網絡傳輸所開銷的時間在本文所提出的支持兩端時差冗余的隨機地址機制的允許范圍內,因此,移動目標處理器B根據隨機IP地址列表,將隨機化的IP地址還原為測試設備A以及測試設備B的原始IP地址,并發送到測試設備B.隨后在測試設備B響應ICMP數據包至測試設備A的過程中,移動目標處理器A以及移動目標處理器B均進行與數據包由移動目標處理器A經過移動目標處理器B相同的操作. Fig. 9 Test of mutual accessing of protected device圖9 被保護設備互相訪問的測試 通過外部網絡的設備訪問被保護網絡的設備測試、被保護網絡的設備訪問外部網絡的設備測試以及被保護網絡的設備互相訪問測試,共3個測試實驗,可以驗證本文所提出的移動目標防御與訪問控制是有效的、符合預期的. 在性能測量的實驗中,主要為測試本文所提出的移動目標處理器的處理性能,其包含了傳輸速率測量以及傳輸延遲測量共2個部分,可用于評估添加移動目標處理器后對原網絡產生的影響.性能測量實驗分2個部分進行,均使用圖6的實驗拓撲進行連接.在測試的過程中,還通過直接連接的方法,臨時去掉移動目標處理器,使得路由器A與路由器B直接連接、路由器B與路由器C直接連接,以通過對比的方式,有效評估本文提出的移動目標處理器對原有網絡產生的影響. 在網絡傳輸速度測試中,本文使用iPerf3進行連續一段時間的速度測試,并使用滑動窗口方差的方法取其中連續一段最為平滑的數據進行對比,其測試結果如圖10所示: Fig. 10 Experiment of transmission speed measurement圖10 傳輸速度測量實驗 如傳輸速度測量實驗所示,直接傳輸的平均速度約為4 723 Mb/s;使用本文提出的移動目標防御技術后,進行數據包傳輸的速度約為4 376 Mb/s.因此,使用本文提出的帶有訪問控制的移動目標防御技術對網絡進行安全防護后,其數據傳輸速度仍可達到無防護網絡傳輸速度的92.6%,在可接受的范圍內. 在傳輸延遲測量實驗中,本文使用ping程序進行測試,此實驗同樣也使用滑動窗口方差的方法,取其中連續一段最為平滑的數據進行對比,其測試結果如圖11所示: Fig. 11 Experiment of transmission latency measurement圖11 傳輸延遲測量實驗 如圖11所示,直接傳輸的平均網絡延遲為0.78 ms;使用本文提出的移動目標防御技術后,進行傳輸的平均網絡延遲為1.09 ms.因此,使用本文所提出的移動目標防御技術對網絡進行安全防護后,會導致網絡延遲上升0.31 ms,但是相對于互聯網的巨大網絡延時,其仍在可接受的范圍內.同時,本文與Almusaher等人[16]的實驗進行對比,其對比結果如表4所示.本文提出的方法比Almusaher等人[16]所使用的方法節約了約9.2%的時間,滿足工業互聯網應用需求. Table 4 Comparison of Transmission Latency 為確認本文所提出的方法的安全性,本節從本文提出的方法的防御效能以及新增防御設備的安全性2個角度展開分析. 4.7.1 防御效能分析 由于本文所提出的移動目標防御方法的IPv6地址隨機變化快、容量大,因此,直接使用實驗測量的方法則難以產生可見的實驗數據.因此,在本節,對本文提出的方法進行防御失效的概率分析. 防御失效概率是假定攻擊者通過外部網絡的設備,結合一定的網絡攻擊技術,以網絡掃描的方式嘗試探測某一臺被保護網絡的設備的存活狀態,同時由于訪問控制技術需要源IP地址和目的IP地址均正確,數據包方可通過移動目標處理器.因此,其防御失效概率(攻擊成功的概率)為 其中,Addrcount為被保護網絡可容納的IP地址數,由于移動目標處理器需要源IP地址和目的IP地址均正確,其方可允許數據包通過.同時,源IP地址和目的IP地址應不相同,因此,地址空間可排列的數量為Addrcount×(Addrcount-1).此外,Attackcount為發送探測的次數;N為被保護的主機數,同時數據包中用于表示主機的源IP地址和目的IP地址應不相同,因此,主機地址可排列的數量為N×(N-1).特別地,由于本文的方法會動態改變有效的源IP地址和目的IP地址對,因此,掃描過程中應該進行隨機掃描(有放回抽樣). 為有效分析本文所提方案的安全性,本文將提出的方法與現有文獻的方法進行對比.當主機數量與被保護網絡可容納的IP地址數相等時,所有移動目標防御方法均會失效,因此,只有對比最低防御失敗率才具有意義,最低防御失敗率對比結果如表5所示: Table 5 Comparison of Minimal Attack Defense Failure Probability Base on Common IPv6 Network 在防御效能對比中,采用最極端情況——保護網絡中僅有2臺主機存活,以滿足通信最低的要求.同時,以互聯網服務提供商通常提供到用戶端的IPv6網絡的子網前綴長度64為例,在對比數據中,被保護的網絡中擁有的IPv6地址數為264;同時,假定探測器探測次數為232(IPv4的所有地址容量),此數值為面向未來高速網絡而進行的假設,實際情況下需要45 min方可掃描完成[28],其遠超過本文所提方法的隨機IP地址更新的最長時間.根據對比結果,相比于其他文獻中所采用的僅實現移動目標防御而不采用訪問控制的方法,在本文的IPv6移動目標防御與訪問控制技術的融合應用下,可大幅降低防御失敗率,以更高強度保證被保護網絡的安全. 4.7.2 引入設備的安全性分析 本文引入核心控制器與移動目標處理器以實現本文所提出的安全技術.本文假設移動目標處理器通過專用網絡與核心控制器進行連接,其他互聯網設備無法直接訪問該專用網絡的設備.因此,核心控制器以及移動目標處理器的通信安全均由專用網絡技術進行保障.此外,由于移動目標處理器用于處理數據部分的端口沒有IP地址,也不會對IP數據包進行深度解析,因此,網絡攻擊幾乎不可能攻擊一個看似不存在的設備.同時,移動目標處理器也不會把被保護網絡(工控設備所在網絡區域)的數據與管理網絡的數據進行交互.因此,從被保護網絡發起的任何攻擊均不會影響管理網絡.同時,管理網絡的設備之間也構成一個安全閉環,確保整個專用網絡都在一個封閉的網絡中,外部的攻擊均無法到達這個網絡區域,從而保障了核心控制器及各個移動目標處理器的安全,進而間接確保網絡攻擊無法對被保護網絡實施攻擊. 通過有效性測試、性能測試、安全性分析,均表明本文提出的移動目標防御與訪問控制技術可以保護IPv6下的工業互聯網,但由于本文所使用的SDN框架——DPDK對系統資源要求較高,因此,部署需要較多的硬件資源. 為解決萬物互聯時代工業互聯網所面臨的安全問題,本文提出基于IPv6的移動目標防御與訪問控制融合的防護技術,應用了多種機制保證IP地址的隨機性和移動目標處理器的性能.此外,在我們的方法中,使用移動目標處理器實現IP地址變化為隨機IP地址的功能,以實現安全防御.最后,本文通過一系列的實驗證明本文提出的方法從性能、安全性方面均可滿足基于IPv6的工業互聯網安全防護的要求. 然而,由于使用通用的SDN處理框架DPDK,其性能要求較高,因此,下一步工作擬使用專用數據邏輯電路實現對數據包的IP地址與隨機IP地址進行相互替換,以實現更廉價的移動目標防御和訪問控制方案. 致謝:感謝實驗室的王玉玨老師對本文提出有價值的建議,也感謝實驗室的劉德華和謝浩然對本文安全性分析的公式進行正確性討論. 作者貢獻聲明:李振宇負責提出科學問題、閱讀文獻、算法設計、實驗和初稿寫作;丁勇提供研究基金并審查論文;袁方負責對算法的有效性進行分析;張昆負責對實驗結果進行分析.


3 移動目標防御與訪問控制融合的防護技術
3.1 應用樣例
3.2 定時更新方法
3.3 地址變換方法
3.4 訪問控制算法
4 實驗與評估
4.1 實驗環境

4.2 測試用例
4.3 實驗裝置

4.4 測量方法
4.5 有效性測試



4.6 性能測量



4.7 安全性分析

4.8 實驗總結
5 總結與未來展望