王 英,彭欽鵬,譚 歆,張平安
(1. 重慶郵電大學 計算機科學與技術學院,重慶 400065;2. 移動通信技術重慶市重點實驗室, 重慶 400065)
戰(zhàn)術移動自組網(wǎng)是一種無中心自組織多跳共享的無線網(wǎng)絡,具有無需搭建網(wǎng)絡基礎設備、網(wǎng)絡的拓撲結(jié)構(gòu)動態(tài)變化、部署區(qū)域位于作戰(zhàn)前沿等特點。戰(zhàn)術移動自組網(wǎng)以MIL-STD-188-220系列協(xié)議(簡稱220協(xié)議,根據(jù)頒布時間先后順序分為220A,220B,220C和220D)為代表,該協(xié)議作為綱領性文件規(guī)范了戰(zhàn)術移動自組網(wǎng)的通訊體系標準[1]。
目前國內(nèi)外對戰(zhàn)術移動自組網(wǎng)的脆弱性未做深入研究,現(xiàn)有的研究主要體現(xiàn)在220協(xié)議較底層的性能優(yōu)化上,并未對該協(xié)議各層漏洞進行全面而系統(tǒng)的分析。文獻[2]對220C協(xié)議中3種可行的路由初始化算法進行比較,分析并改進了路由初始化算法。文獻[3]介紹了220協(xié)議鏈路層的網(wǎng)絡訪問延遲(network access delay, NAD)機制的運算準則,通過仿真對比分析出隨機網(wǎng)絡訪問延遲(random-NAD, R-NAD)與優(yōu)先網(wǎng)絡訪問延遲(priority-NAD, P-NAD)的性能差異。文獻[4]基于220協(xié)議提出了一種多跳廣播的確定性自適應優(yōu)先級網(wǎng)絡訪問延遲(deterministic adaptable priority-NAD, DAP-NAD)算法,用于解決多跳廣播網(wǎng)絡中延遲過高的問題。對戰(zhàn)術移動自組網(wǎng)脆弱性進行分析與仿真具有重要的應用價值,一方面防御方可針對網(wǎng)絡協(xié)議的漏洞完善該協(xié)議的防護機制,增強戰(zhàn)術移動自組網(wǎng)的通信安全;另一方面管控方可識別協(xié)議的脆弱點并進行精準攻擊,有效降低戰(zhàn)術移動自組網(wǎng)的攻擊成本。
針對上述問題,本文在戰(zhàn)術移動自組網(wǎng)各層協(xié)議的脆弱性上進行系統(tǒng)分析并提出具體的攻擊方案。首先從戰(zhàn)術移動自組網(wǎng)的介質(zhì)訪問控制(mediaccess centrol,MAC)層、內(nèi)聯(lián)網(wǎng)層與傳輸層的協(xié)議特征出發(fā),分析MAC層信道競爭接入、路由拓撲更新和傳輸控制協(xié)議(transmission control protccol,TCP)3次握手的機制下存在的安全隱患,在NS3網(wǎng)絡仿真平臺中建立不同層級的攻擊模型,最后對比攻擊前各種網(wǎng)絡性能指標衡量攻擊效果。仿真結(jié)果表明,本文所提出的攻擊技術方案都能有效降低戰(zhàn)術移動自組網(wǎng)的網(wǎng)絡性能。
戰(zhàn)術移動自組網(wǎng)呈現(xiàn)3層結(jié)構(gòu)如圖1。大量的3級戰(zhàn)術電臺通過互聯(lián)網(wǎng)控制器INC(internet controller)實現(xiàn)排級網(wǎng)絡內(nèi)互聯(lián)互通,2級戰(zhàn)術電臺負責管理組網(wǎng)間的通訊,某些2級戰(zhàn)術電臺和3級戰(zhàn)術電臺通過戰(zhàn)術網(wǎng)關實現(xiàn)與1級戰(zhàn)術電臺的信息交互。
圖1 戰(zhàn)術移動自組網(wǎng)結(jié)構(gòu)Fig.1 Architecture of tactical Ad Hoc mobile network
1級戰(zhàn)術電臺作為軍師級的指揮中心和控制中心是整個戰(zhàn)術移動自組網(wǎng)體系結(jié)構(gòu)中最重要的目標;2級戰(zhàn)術電臺普遍使用在戰(zhàn)斗車輛之間的數(shù)據(jù)通信, 是戰(zhàn)術移動自組網(wǎng)中的骨干網(wǎng)絡;3級戰(zhàn)術電臺為作戰(zhàn)部隊提供可靠的保密數(shù)據(jù)通信和語音通信,并可裝備于師和獨立設備,直至坦克、戰(zhàn)車、直升機等[5]。
戰(zhàn)術移動自組網(wǎng)在IP層以下使用MIL-STD-188-220D協(xié)議,物理層的加密技術由MIL-STD-188-110A協(xié)議實現(xiàn),應用層的加密技術由MIL-STD-2045-47001協(xié)議實現(xiàn)。本文重點從MAC層、內(nèi)聯(lián)網(wǎng)層和傳輸層上對戰(zhàn)術移動自組網(wǎng)進行脆弱性分析,并針對協(xié)議缺陷提出可行的攻擊方案。
戰(zhàn)術移動自組網(wǎng)MAC層采用時分復用技術,同時220D協(xié)議規(guī)定MAC層使用嚴密細致的網(wǎng)絡時間模型。該網(wǎng)絡時間模型中所有戰(zhàn)術通訊電臺都具備4個網(wǎng)絡接入控制功能:網(wǎng)絡繁忙檢測(network busy sensing, NBC)、響應保持延遲(response hold delay, RHD)、超時期限(timeout period, TP)和網(wǎng)絡訪問延遲,以確保多個電臺在網(wǎng)絡中以公平的方式競爭信道資源。
若不考慮電臺與數(shù)據(jù)幀的優(yōu)先級,每一次網(wǎng)絡接入都可以使用與上次延遲接入不同的退避時間,其計算公式為
TR=F×tNBDT
(1)
(1)式中:tNBDT為網(wǎng)絡忙檢測時間(220D協(xié)議中規(guī)定為一個時隙長度);F為NAD的時隙數(shù)(即網(wǎng)絡檢測時間的個數(shù)),其計算值為
(2)
(2)式中,NS為子網(wǎng)中的電臺數(shù)。根據(jù)網(wǎng)絡時間模型,戰(zhàn)術移動自組網(wǎng)MAC網(wǎng)絡訪問控制的流程如圖2。
圖2 220D協(xié)議MAC層網(wǎng)絡訪問控制流程Fig.2 220D protocol MAC layer network access control flow
如果戰(zhàn)術通訊電臺有數(shù)據(jù)待發(fā)送,先監(jiān)聽信道的閑忙情況,如果信道繁忙,則電臺將一直監(jiān)聽信道直到空閑為止。若NAD時隙到來,且緩沖器內(nèi)無數(shù)據(jù)待發(fā)送時,則發(fā)送數(shù)據(jù),并根據(jù)數(shù)據(jù)幀是否需要確認設置不同的TP定時器。如果接收電臺需要對發(fā)送電臺的數(shù)據(jù)幀確認,且發(fā)送電臺在TP時間內(nèi)沒有收到相應的確認幀,則認定發(fā)送失敗;反之認定發(fā)送成功。接收電臺完成對數(shù)據(jù)的接收后,同時需設置TP定時器阻止其他電臺發(fā)送數(shù)據(jù)幀。如果接收的幀需要確認,則接收電臺在RHD時間后發(fā)送確認幀,最后所有電臺等待TP時間結(jié)束后重新計算新的NAD時隙。
管控方的偽電臺在每次網(wǎng)絡接入時,可將NAD時隙數(shù)F修改為一個較小的固定值,同時以較快的頻率向網(wǎng)絡中注入大量攻擊數(shù)據(jù)包,不公平地占用信道資源,大幅提高偽電臺接入信道成功的概率,從而達到長時間持續(xù)搶占通信信道的目的,最終影響其他正常電臺接入信道,甚至導致MAC層傳輸機制癱瘓。
戰(zhàn)術移動自組網(wǎng)的內(nèi)聯(lián)網(wǎng)層采用源定向?qū)ぶ返姆绞絺鞑シ纸M數(shù)據(jù),其路由算法是基于距離矢量的源電臺路由選擇算法。內(nèi)聯(lián)網(wǎng)中的每個電臺維護著一張本電臺到其他電臺的距離矢量路由表,該表中記錄了從源電臺到目的電臺的最短距離,并通過戰(zhàn)術移動自組網(wǎng)上層業(yè)務流的事件觸發(fā)拓撲更新以維護路由表。
圖3展示了內(nèi)聯(lián)網(wǎng)層路由拓撲更新的過程,當電臺收到上層數(shù)據(jù)包時先判斷該數(shù)據(jù)包是否為上層業(yè)務數(shù)據(jù),如果來自上層則當前電臺為源電臺,需解析出目的地址并查詢路由緩存中是否存在到達目的電臺的源定向路由,若存在還需檢查當前緩存中是否有相同的路徑,如果存在則先發(fā)送緩存中的數(shù)據(jù),如果緩存中不存在該條路徑則將源定向路由路徑封裝至內(nèi)聯(lián)網(wǎng)層頭部隨后遞交至下層。而如果該數(shù)據(jù)包是來自下層的路由信息包時,需解析源定向路由中的當前電臺是否為目的電臺,若當前電臺時中繼電臺則尋找下一跳地址進行路由轉(zhuǎn)發(fā),若當前電臺為目的電臺時直接遞交至上層即可,若都不是表示當前為錯誤信息,需丟棄該包。
圖3 內(nèi)聯(lián)網(wǎng)層路由拓撲更新流程圖Fig.3 Intranet routing topology update flow chart of 220D protocol
針對220D協(xié)議內(nèi)聯(lián)網(wǎng)層路由機制的安全缺陷,管控方可實施基于內(nèi)聯(lián)網(wǎng)層的黑洞攻擊。有研究表明,黑洞攻擊是移動自組網(wǎng)中最受威脅的路由攻擊之一[6]。傳統(tǒng)的黑洞攻擊屬于主動式攻擊,偽電臺通過偽造一條到達目的電臺最短且最新的路由響應報文獲取源電臺的信任,在截取到正常業(yè)務流后將其任意丟棄。由于220D協(xié)議內(nèi)聯(lián)網(wǎng)層的源定向路由機制不是通過主動發(fā)起路由請求來獲取到達目的電臺的路由,而是通過相鄰電臺之間更新拓撲的方式確認電臺之間的通連關系,故傳統(tǒng)的黑洞攻擊方案不能對戰(zhàn)術移動自組網(wǎng)實施有效攻擊。下面在對內(nèi)聯(lián)網(wǎng)層黑洞攻擊進行仿真建模時,根據(jù)220D的源定向路由特性設計具體的攻擊方案。
戰(zhàn)術移動自組網(wǎng)傳輸層使用基于C/S架構(gòu)的TCP/UDP協(xié)議,傳輸層作為上層協(xié)議負責總體的數(shù)據(jù)傳輸和數(shù)據(jù)控制,同時為內(nèi)聯(lián)網(wǎng)層提供可靠的目的站點信息。圖4展示了戰(zhàn)術移動自組網(wǎng)傳輸層處理數(shù)據(jù)的流程,傳輸層在收到應用進程傳遞下來的原始通信數(shù)據(jù)后,可根據(jù)實際需求選擇面向連接且可靠傳輸?shù)腡CP協(xié)議或無連接的UDP協(xié)議。UDP協(xié)議不提供可靠傳輸且可靠性由應用層保證,直接將原始數(shù)據(jù)封裝成UDP報文傳輸;而TCP協(xié)議一般要經(jīng)歷傳輸連接建立,數(shù)據(jù)傳送和連接釋放3個階段實現(xiàn)一次完整的服務過程。
圖4 戰(zhàn)術移動自組網(wǎng)傳輸層數(shù)據(jù)處理流程圖Fig.4 Data processing flow chart for transport layer of tactical mobile Ad Hoc network
戰(zhàn)術移動自組網(wǎng)傳輸層的TCP半連接隊列機制在一定程度上為該協(xié)議造成弊端,半連接隊列機制為TCP-SYN攻擊(也稱半連接隊列攻擊)提供了可能[7]。偽電臺可在短時間內(nèi)向某正常電臺發(fā)送大量同步序列編號(synchronize sequence numbers,SYN)請求,造成SYN泛洪。這些SYN請求數(shù)量大于半連接隊列大小,偽電臺收到對這些SYN請求的回復后將全部丟棄,使得正常電臺永遠無法收到最后一次ACK確認,因而在短期內(nèi)無法清空半連接隊列[8]。如果此時攻擊者連續(xù)不間斷地發(fā)送具有一定危害性的數(shù)據(jù),將造成十分嚴重的后果。
在下文TCP-SYN攻擊的仿真實驗中,NS3仿真器的TCP源代碼模塊并未實現(xiàn)TCP半連接隊列功能,導致它不會限制當前SYN連接數(shù)量。目的電臺在收到源電臺的SYN請求報文后沒有開辟額外資源來存放SYN連接請求信息,而是立即向客戶端響應一個SYN+ACK報文,這樣任何一條TCP業(yè)務流通過三次握手階段均可建立完整的數(shù)據(jù)傳輸。因此,僅使用NS3集成的TCP代碼模塊無法達到攻擊效果,需結(jié)合攻擊原理對部分代碼進行擴充與改良。
基于戰(zhàn)術移動自組網(wǎng)MAC層、內(nèi)聯(lián)網(wǎng)層和傳輸層協(xié)議的脆弱性分析,本文在NS3網(wǎng)絡模擬器下搭建戰(zhàn)術電臺通訊環(huán)境,并對各層攻擊場景建模。3類戰(zhàn)術電臺在MAC層使用220D協(xié)議的時間網(wǎng)絡模型公平地競爭信道資源,在內(nèi)聯(lián)網(wǎng)層使用220D協(xié)議的源定向路由機制進行路由尋址,在傳輸層使用TCP/UDP協(xié)議進行數(shù)據(jù)通信。最后通過選取重要的網(wǎng)絡性能分析指標衡量攻擊效果,如網(wǎng)絡的吞吐量與丟包率。對比攻擊前這些指標的變化,仿真結(jié)果表明,對戰(zhàn)術移動自組網(wǎng)各層的攻擊是有效的。
本文仿真實驗采用的硬件配置是一臺Intel(R)Core(TM)i5-8400處理器,16 GB DDR4內(nèi)存,1TB硬盤的PC機。軟件配置是Ubuntu 16.04操作系統(tǒng),在Eclipse編譯環(huán)境中使用NS3模擬器(3.26版本)對具體網(wǎng)絡環(huán)境進行搭建。
NS3是一個開源的離散事件網(wǎng)絡模擬器,其主要運行平臺為GUN/Linux,NS3結(jié)合了NS2,YANS等項目支持,并使用全新的基于Python的編譯系統(tǒng),支持更多的網(wǎng)絡協(xié)議且易于用戶擴展[9]。模擬器主要由源代碼、腳本和數(shù)據(jù)追蹤模塊組成,其中NS3源代碼和腳本文件由C++語言編寫,并可選用Python語言擴展腳本文件。
3.2.1 MAC層搶占信道式攻擊建模
基于220D協(xié)議MAC層的隨機網(wǎng)絡接入延遲NAD的公平競爭資源原理,戰(zhàn)術管控方可在作戰(zhàn)環(huán)境中隨機布置偽電臺,這些偽電臺和正常通信的電臺共享一個信道資源。偽電臺通過修改NAD時隙數(shù)F值的同時以不同的攻擊頻率向當前信道中發(fā)送攻擊數(shù)據(jù)包來實現(xiàn)搶占信道式攻擊。
本文提出一種220D協(xié)議MAC層搶占信道式攻擊算法,當電臺接入戰(zhàn)術無線共享信道時首先判斷是否為偽電臺,偽電臺修改NAD時隙數(shù)F值至一個固定較小值并設置攻擊頻率,向網(wǎng)絡中注入一定數(shù)量的攻擊數(shù)據(jù)包,以增強對信道的搶占程度。正常電臺不斷檢測出信道為繁忙狀態(tài),同時在產(chǎn)生的隨機爭用窗口后設置定時器,定時器清零后才可傳輸數(shù)據(jù)。當偽電臺的F值足夠小,攻擊頻率足夠大時,正常電臺基本檢測不到信道為空閑狀態(tài),導致合法數(shù)據(jù)無法經(jīng)過220D協(xié)議MAC層分配到有效帶寬,最終衰減通信性能。本文220D協(xié)議MAC層搶占信道式攻擊的算法如下。
220D協(xié)議MAC層搶占信道式攻擊的算法
輸入:全網(wǎng)初始化n個電臺。
輸出:網(wǎng)絡的平均吞吐量與丟包率。
1: fori=1 tondo
2: if 當前電臺i為偽電臺 then
3: 修改F值及攻擊頻率
4: end if
5: while 當前信道繁忙 do
6: 電臺監(jiān)聽信道
7: end while
8: 經(jīng)過一個NAD時隙后產(chǎn)生隨機的爭用窗口TR
9: while 數(shù)據(jù)傳輸未結(jié)束 do
10: while 計時器T≠0 do
11:T=T-1
12: end while
13: if當前電臺i為偽電臺 then
14: 偽電臺非法搶占信道資源
15: 其他電臺監(jiān)聽信道
16: while 無法分配信道資源 do
17: 電臺等待并監(jiān)聽信道
18: end while
19: else
20: 正常電臺占用信道資源
21: 正常電臺傳輸數(shù)據(jù)
22: end if
23: end while
24: end for
25: 計算當前網(wǎng)絡的平均吞吐量和丟包率
仿真中為了突出偽電臺的攻擊行為與特征,以衡量攻擊效果,本文的仿真模型限定了電臺擺放、規(guī)模、性能參數(shù)。所有電臺都處于相對穩(wěn)定的環(huán)境中,即在未發(fā)生信道擁塞的情況下,合法電臺在進行數(shù)據(jù)通信過程中都不會主動丟包;偽電臺數(shù)量遠小于正常電臺數(shù)量,這也符合實際戰(zhàn)場環(huán)境;其次,戰(zhàn)術移動自組網(wǎng)物理層的加密、解密技術由MIL-STD-188-110A協(xié)議實現(xiàn),仿真中為了體現(xiàn)偽電臺在220D協(xié)議時間網(wǎng)絡模型上發(fā)起攻擊,故假設偽電臺發(fā)送的攻擊數(shù)據(jù)包已透過對方網(wǎng)絡的物理層解密到達MAC層;最后仿真場景的區(qū)域遠大于單個電臺的通信范圍。
在MAC搶占信道式攻擊中,偽電臺攻擊范圍有限,一個偽電臺無法攻擊某個簇下的全部合法電臺。其次,不同簇內(nèi)的合法電臺在進行正常數(shù)據(jù)通信時的狀態(tài)和性能基本一致,故仿真中只選取了其中某一個簇作為分析對象。表1為MAC搶占信道式攻擊的仿真參數(shù)配置,圖5為簇內(nèi)電臺的隨機位置擺放圖,其中,0~24號為合法電臺;25~30號為偽電臺。每次仿真中25個合法電臺的位置都是隨機生成的,6個偽電臺的位置也隨機分布在同一簇中。
表1 仿真參數(shù)配置1
圖5 MAC層搶占信道式攻擊中簇內(nèi)電臺隨機位置擺放圖Fig.5 Random position distribution diagram of intra-clusterunder MAC layer occupying channel attack
根據(jù)(2)式可計算出簇內(nèi)25個合法電臺通信時的NAD時隙數(shù)最大約為19,故偽電臺F值的配置為1~19。由于每次仿真中合法電臺和偽電臺的位置分布都是隨機的,而偽電臺的攻擊范圍也是有限的,偽電臺在不同攻擊參數(shù)下進行攻擊時,需多次改變所有電臺的擺放位置。
3.2.2 內(nèi)聯(lián)網(wǎng)層攻擊建模
傳統(tǒng)的黑洞攻擊主要針對采用反應式路由協(xié)議[10]的移動自組網(wǎng),如DSR協(xié)議、AODV協(xié)議及ABR協(xié)議等。主要實現(xiàn)方法是在源電臺發(fā)起路由請求時偽造一條通過攻擊電臺且到達目的電臺的最短跳數(shù)路由響應報文,最終截取源電臺的合法數(shù)據(jù)流進行丟棄。但這種方法不適用于220D協(xié)議內(nèi)聯(lián)網(wǎng)采用拓撲更新的源定向路由機制,本文針對戰(zhàn)術移動自組網(wǎng)提出適用于內(nèi)聯(lián)網(wǎng)層的黑洞攻擊方案。
本文提出一種220D協(xié)議內(nèi)聯(lián)網(wǎng)層黑洞攻擊算法,令偽電臺均勻分布在戰(zhàn)術網(wǎng)絡環(huán)境中,并對攻擊范圍內(nèi)的合法電臺進行監(jiān)聽,尋找待攻擊的源電臺。一旦源電臺被上層事件觸發(fā)進行拓撲更新,偽電臺則接收源電臺的拓撲更新包,并從中解析出目的電臺的IP地址。若源電臺的路由緩存中存在到達目的電臺的路由,此時偽電臺會主動觸發(fā)拓撲更新迫使源電臺改變其路由表,該拓撲更新請求包中包含源電臺到所有電臺的最短路徑。當偽電臺提取出目的電臺IP后,偽電臺查詢自身的路由表中是否存在到達目的電臺的有效路由,若存在有效路由,偽電臺則將自身IP地址添加到路由中,最終截取從源電臺發(fā)送的合法數(shù)據(jù)包進行選擇性丟棄;反之偽電臺則丟棄源電臺的拓撲更新包,重新等待拓撲更新直至尋找到目的電臺的有效路由。本文220D協(xié)議內(nèi)聯(lián)網(wǎng)層黑洞攻擊的算法如下。
220D協(xié)議內(nèi)聯(lián)網(wǎng)層黑洞攻擊的算法
輸入:初始化n個偽電臺。
輸出:網(wǎng)絡的平均吞吐量與丟包率。
1: while 上層事件未觸發(fā)拓撲更新 do
2: 偽電臺監(jiān)聽源電臺
3:end while
4: while 源電臺未更新路由表 do
5: 偽電臺主動觸發(fā)拓撲更新
6: end while
7: 偽電臺捕獲源電臺的拓撲更新包
8: 解析目的電臺IP地址
9: 偽電臺查詢路由表
10: if 路由表中不存在到達目的電臺的路由 then
11: 等待拓撲更新
12: else
13: 偽電臺修改到達目的電臺路由路徑
14: 電臺轉(zhuǎn)發(fā)路由信息包
15: 源電臺選擇經(jīng)偽電臺修改后的最短路徑
16: 源電臺建立完整的路由
17: 偽電臺選擇性丟棄合法數(shù)據(jù)包
18: end if
19: 計算當前網(wǎng)絡的平均吞吐量和丟包率
仿真中為了體現(xiàn)偽電臺的攻擊特性,合法電臺和偽電臺的規(guī)模與擺放屬性參照本文220D協(xié)議MAC層搶占信道式攻擊的仿真模型如圖6,仿真參數(shù)配置見表1。仿真中同樣選取某個簇內(nèi)的3級戰(zhàn)術電臺作為研究對象,簇內(nèi)25個合法電臺和6個偽電臺的位置隨機分布在680 m×680 m的戰(zhàn)術仿真區(qū)域內(nèi)。簇內(nèi)25個合法電臺共配置了10條CBR業(yè)務流,均使用220D協(xié)議源定向路由機制。6個偽電臺在實施內(nèi)聯(lián)網(wǎng)層黑洞攻擊時的選擇性丟包率為0%~100%,當合法業(yè)務流經(jīng)過偽電臺時戰(zhàn)術管控方可根據(jù)不同的攻擊策略以一定的丟包率將數(shù)據(jù)包進行選擇性丟棄。
圖6 內(nèi)聯(lián)網(wǎng)層搶黑洞攻擊簇內(nèi)電臺隨機位置擺放圖Fig.6 Random position distribution diagram of intra-clusterunderIntranet layer blackhole attack
圖6中編號為0~24號為合法電臺,編號為25~30號為偽電臺。在此仿真場景下,10條CBR業(yè)務流的源電臺、目的電臺以及源定向路由路徑的仿真結(jié)果如表2??梢钥吹?,10條CBR業(yè)務流的平均路由跳數(shù)為4跳,多數(shù)路徑均包含了偽電臺,部分路徑?jīng)]有涵蓋偽電臺,這些路徑的源電臺和目的電臺都能在一跳范圍內(nèi)通信。由于220D協(xié)議內(nèi)聯(lián)網(wǎng)層源定向路由機制基于最短路徑優(yōu)先原則,這些業(yè)務流不會受偽電臺影響。
表2 內(nèi)聯(lián)網(wǎng)層黑洞攻擊仿真結(jié)果中實際業(yè)務流流向Tab.2 Simulation result of actual traffic flow underIntranet blackhole attack
3.2.3 TCP-SYN攻擊建模
在戰(zhàn)術移動自組網(wǎng)TCP-SYN泛洪攻擊的仿真中,NS3模擬器封裝的部分源代碼在源電臺發(fā)起SYN請求時未提供半連接隊列接口,導致仿真中的服務器電臺不能限制TCP連接請求數(shù)目。本文在此基礎上擴展了SYN連接請求功能,仿真中使用C++ STL模板庫提供的set數(shù)據(jù)結(jié)構(gòu)建立了一個TCP半連接隊列,set數(shù)據(jù)結(jié)構(gòu)作為一種關聯(lián)式容器存儲同一類型的數(shù)據(jù),其內(nèi)部采用高效的平衡檢索二叉樹可對大量數(shù)據(jù)實現(xiàn)快速插入、刪除與查找等操作。
本文提出一種基于NS3擴展的TCP-SYN泛洪攻擊算法,所有電臺在發(fā)起TCP連接請求后,將自身的套接字信息存放至本文構(gòu)建的半連接隊列中,半連接隊列的容量根據(jù)實際電臺處理信息的能力配置,本文默認設置為128。同時攻擊電臺以一定的攻擊頻率創(chuàng)建大量SYN攻擊流,每條SYN攻擊流的序號且不重復。當攻擊頻率較大時,SYN攻擊流會迅速占滿半連接隊列的空閑資源,此時目的電臺將拒絕接收新的SYN請求包,TCP連接無法建立成功,否則處理正常的3次握手進程。本文基于NS3擴展的TCP-SYN泛洪攻擊的算法如下。
基于NS3擴展的TCP-SYN泛洪攻擊的算法
輸入:全網(wǎng)初始化n個電臺。
輸出:合法電臺建立TCP連接平均成功概率。
1: 構(gòu)建半連接隊列std::set
2: MaxSizesun_queue=128
3: 源電臺將IP與port綁定至當前socket
4: 實例化Ipv4EndPoint類對象存儲電臺信息
5: if 當前源電臺為偽電臺 then
6: 偽電臺實例化不同的Ipv4EndPoint對象
7: 偽電臺創(chuàng)建SYN攻擊流
8: else
9: 正常源電臺構(gòu)造SYN請求包
10: end if
11: TCP狀態(tài)位設置為SYN_SENT
12: 目的電臺接收SYN請求包
13: if Ipv4EndPoint.size()>Maxsizesyn_queuethen
14: 目的電臺拒絕接收SYN請求包
15: else
16: 目的電臺提取源電臺的Ipv4EndPoint對象,入隊syn_queue
17: 目的電臺響應當前SYN請求包
18: TCP狀態(tài)位設置為SYN_RCVD
19: 源電臺接收SYN響應包
20: while SYN響應包中Ipv4EndPoint非法 do
21: 源電臺丟棄當前SYN響應包
22: if SYN響應計時器超時 then
23: 目的電臺重傳SYN響應包
24: end if
25: end while
26: 源電臺向目的電臺發(fā)送ACK確認包
27: syn_queue出隊當前Ipv4EndPoint對象
28: TCP狀態(tài)位設置為ESTABLISHED
29: TCP連接建立成功
30: end if
31: 計算合法電臺建立TCP連接平均成功概率
圖7為TCP-SYN泛洪攻擊仿真電臺擺放圖,仿真參數(shù)配置如表3。仿真中同樣選取某個簇內(nèi)的三級戰(zhàn)術電臺作為研究對象,簇內(nèi)9個合法電臺和3個偽電臺的位置固定分布在200 m×200 m的戰(zhàn)術仿真區(qū)域內(nèi)。編號為0~8的合法源電臺向編號為4的目的電臺在0~5 s的仿真時間內(nèi)隨機發(fā)起TCP連接,同時編號為9~11的偽電臺分布在目的電臺周圍,每個偽電臺對編號為4的目的電臺均發(fā)起50條SYN攻擊流,從而在短時間內(nèi)迅速占滿半連接隊列。TCP協(xié)議規(guī)定,超時重傳定時器(retransmission time out timer,RTO timer)如果因為等待SYN請求報文的ACK而超時,若實現(xiàn)上使用的RTO值小于3 s,這個RTO定時器必須被重新初始化為3 s。RTO值隨著SYN包的ACK重傳失敗次數(shù)層二進制指數(shù)遞增,直到超過最大重傳次數(shù)后關閉本次TCP連接,并釋放套接字資源。偽電臺通過泛洪瞬間占滿半連接隊列后,由于攻擊流的SYN請求包在5次重傳時間(仿真中約為93 s)內(nèi)無法清除,因而編號為4號目的電臺無法將響應合法源電臺的TCP服務請求,最終實現(xiàn)攻擊效果。
圖7 TCP-SYN泛洪攻擊仿真中電臺擺放圖Fig.7 Radio position diagram of TCP-SYN flooding attack
表3 仿真參數(shù)配置2Tab.3 Simulator parameter configuration No.2
圖8和圖9展示了在戰(zhàn)術移動自組網(wǎng)MAC層實施搶占信道式攻擊的仿真結(jié)果。仿真中偽電臺通過改變攻擊頻率來增強對信道資源的搶占能力,同時分別在4種不同的NAD時隙數(shù)F值為19,9,4和1下觀測攻擊效果,最終選取合法電臺的平均UDP吞吐量和平均丟包率指標作為網(wǎng)絡性能評估依據(jù)。
圖8 MAC層搶占信道式攻擊中合法電臺吞吐量變化圖Fig.8 Changes of throughput of normal devices under MAC layer occupying channel attack
圖9 MAC層搶占信道式攻擊中合法電臺丟包率變化圖Fig.9 Changes of packet loss rate of normal devices under MAC layer occupying channel attack
通過仿真結(jié)果可知,當偽電臺沒有發(fā)起攻擊時,整個網(wǎng)絡中合法電臺的平均UDP吞吐量約為6.1 kbit/s,平均丟包率約為0%。緩慢增大偽電臺攻擊頻率至1packets/s附近時,合法電臺的UDP吞吐量并未明顯下降,此時偽電臺不同的F值對網(wǎng)絡中吞吐量和丟包率影響甚小,這是由于偽電臺攻擊頻率不夠大時,戰(zhàn)術無線信道并未產(chǎn)生擁塞,信道利用率不高,即使偽電臺以一個較小且固定的NAD時隙數(shù)F值攻擊戰(zhàn)術無線信道在短時間內(nèi)對合法電臺的隨機網(wǎng)絡接入延遲機制造成很大影響。
繼續(xù)增大偽電臺的攻擊頻率,偽電臺向網(wǎng)絡中注入大量攻擊包,此時合法電臺的平均UDP吞吐量明顯下降,平均丟包率明顯上升,而偽電臺不同的F值下網(wǎng)絡性能出現(xiàn)明顯差異。在同一攻擊頻率下,偽電臺的F值越小,合法電臺的平均UDP吞吐量越小,丟包情況越嚴重。這種情況下,戰(zhàn)術無線信道通訊容量已達飽和,信道資源大量被偽電臺搶占,信道產(chǎn)生嚴重擁塞,而NAD時隙數(shù)F值決定了偽電臺在接入信道時退避時間的長短。F值越小,偽電臺退避時間越短,競爭越激烈。圖9中,偽電臺攻擊頻率達到30 packets/s時,F(xiàn)值為19的平均丟包率趨近62%,F(xiàn)值為9的平均丟包率趨近73%,F(xiàn)值為4的平均丟包率趨近85%,而F值為1的平均丟包率甚至趨近96%,合法電臺基本不能接入戰(zhàn)術移動自組網(wǎng)MAC層。
MAC搶占信道式攻擊中偽電臺的數(shù)量與合法電臺的平均丟包率之間的關系如圖10,仿真場景中最多布置了6個偽電臺,不同偽電臺隨機布置在簇內(nèi),并固定它們的F值為1,通過改變攻擊頻率和偽電臺的數(shù)量得出仿真結(jié)果。當簇內(nèi)放置1個偽電臺時,此時偽電臺的攻擊范圍有限,只會影響簇內(nèi)部分合法電臺,且當一個偽電臺在攻擊頻率較小時信道競爭并不激烈,在攻擊頻率為8 packet/s以下時簇內(nèi)合法電臺并未產(chǎn)生丟包,隨后緩慢增大攻擊頻率,簇內(nèi)合法電臺開始產(chǎn)生丟包,丟包率最大趨近13%。當增大偽電臺數(shù)量后,偽電臺的攻擊范圍隨之變大,簇內(nèi)合法電臺開始丟包所需的攻擊頻率越小,丟包率趨近的值也越大。
圖10 MAC層搶占信道式攻擊中偽電臺數(shù)量與丟包率變化Fig.10 Changes between number of attacker and packets of loss under MAC layer occupying channel attack
圖11和圖12呈現(xiàn)了戰(zhàn)術移動自組網(wǎng)內(nèi)聯(lián)網(wǎng)層黑洞攻擊的仿真結(jié)果。此類仿真場景中,簇內(nèi)合法電臺和偽電臺的位置都是隨機擺放的,并選取正常電臺UDP業(yè)務流的平均吞吐量和平均丟包率指標作為衡量攻擊效果的主要依據(jù)。
圖11 內(nèi)聯(lián)網(wǎng)層黑洞攻擊中合法電臺吞吐量的變化Fig.11 Changes of throughput of normal devices under Intranet blackhole attack
圖12 內(nèi)聯(lián)網(wǎng)層黑洞攻擊中合法電臺丟包率的變化Fig.12 Changes of packet loss rate of normal devicesunder MAC layer occupying channel attack
當偽電臺數(shù)量為0時,正常電臺的平均吞吐量約為1.52 kbit/s,未產(chǎn)生丟包。偽電臺數(shù)量為3時,正常電臺的平均吞吐量隨著偽電臺丟包的增加而平緩減小。設置偽電臺丟包率為100%時,正常電臺的平均吞吐量下降到約0.61 kbit/s,相比于沒有實施黑洞攻擊的網(wǎng)絡性能衰減了一半。凡是經(jīng)過偽電臺的正常數(shù)據(jù)包都被全部丟棄,吞吐量并未衰減至零,這是由于3個偽電臺的攻擊范圍有限,并不能影響到網(wǎng)絡中所有正常的數(shù)據(jù)傳輸。在6個偽電臺全部丟棄正常數(shù)據(jù)包時,網(wǎng)絡中的丟包率上升到80%左右,攻擊效果明顯比只有3個偽電臺好。因而在實施戰(zhàn)術移動自組網(wǎng)的黑洞攻擊時,偽電臺數(shù)量越多且丟包率越大時,對整個網(wǎng)絡的性能影響越大。
TCP-SYN泛洪攻擊仿真結(jié)果如圖13,在TCP-SYN泛洪攻擊仿真中,改變偽電臺的攻擊頻率使得偽電臺占滿TCP半連接隊列的時間不同,一旦TCP半連接隊列占滿,正常電臺新的TCP連接請求將被拒絕。仿真的正常TCP業(yè)務流在0~5 s隨機發(fā)起TCP連接,針對每種攻擊頻率,仿真都隨機選取了若干個不同TCP連接時間,通過測量偽電臺在不同攻擊頻率下正常TCP業(yè)務流的平均連接建立成功的概率來衡量泛洪效果。
圖13 TCP-SYN泛洪攻擊仿真結(jié)果Fig.13 Simulation result for TCP-SYN flooding attack
偽電臺攻擊頻率為20 packets/s時,由于TCP半連接隊列大小為128,隊滿時間最少需要6.4 s,而此時正常TCP業(yè)務流發(fā)起連接請求的時間小于TCP半連接隊列的隊滿時間,因此,正常TCP連接請求可被目的電臺響應。繼續(xù)增大偽電臺的攻擊頻率,TCP半連接隊列的隊滿時間也相應變短,正常TCP連接建立成功的概率急劇下降。當攻擊頻率達到250 packets/s時,此時TCP半連接隊列的隊滿時間為0.5 s左右,正常TCP連接成功概率趨近于零,攻擊效果最好。
本文對戰(zhàn)術移動自組網(wǎng)220D協(xié)議的脆弱性分層討論并提出了具體的攻擊方案。針對傳統(tǒng)的黑洞攻擊不適用于220D協(xié)議的源定向路由機制,利用偽電臺主動觸發(fā)拓撲更新與修改路由的方式新開發(fā)出一種內(nèi)聯(lián)網(wǎng)層黑洞攻擊方法;為在戰(zhàn)術移動自組網(wǎng)傳輸層實現(xiàn)TCP-SYN泛洪攻擊,本文對NS3底層源代碼進行拓展,重構(gòu)半連接隊列機制達到攻擊效果。仿真結(jié)果表明,對比于攻擊前指標的變化,對各層實施的攻擊技術都使網(wǎng)絡性能產(chǎn)生了明顯衰減。下一步研究的重點是對戰(zhàn)術移動自組網(wǎng)各層協(xié)議漏洞提出相應的防護策略,增強戰(zhàn)術移動自組網(wǎng)的通信安全。