◆田 楠 蒲 江
(中國(guó)人民解放軍91977部隊(duì) 北京 100841)
拒絕服務(wù)攻擊(DoS,Denial of Service)是當(dāng)前網(wǎng)絡(luò)攻擊中影響最大、危害最深的攻擊方式之一。根據(jù)2017年電子犯罪調(diào)查顯示,在所有網(wǎng)絡(luò)攻擊手段中,DoS攻擊占到了一半左右。美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(National Institute of Standards and Technology,NIST)專門對(duì)DoS攻擊給出了明確定義:DoS是一種通過(guò)耗盡CPU、內(nèi)存、帶寬、磁盤空間等系統(tǒng)資源,來(lái)阻止或削弱對(duì)網(wǎng)絡(luò)、系統(tǒng)、應(yīng)用程序等授權(quán)操作的行為[1]。
傳統(tǒng)的“封堵查殺”等網(wǎng)絡(luò)安全防護(hù)技術(shù)手段,在應(yīng)對(duì)DoS攻擊時(shí)存在明顯的不足。例如防火墻、入侵檢測(cè)技術(shù)等,其主要工作原理是通過(guò)監(jiān)測(cè)分析具有異常特征行為的數(shù)據(jù)流量,并過(guò)濾掉異常流量對(duì)主機(jī)的訪問(wèn)實(shí)現(xiàn)防護(hù)。但是隨著DoS攻擊的升級(jí),這些防護(hù)手段在面對(duì)DDoS攻擊時(shí)存在明顯的不足,DDoS攻擊規(guī)模理論上沒(méi)有上限,用有限的計(jì)算資源來(lái)監(jiān)測(cè)分析無(wú)限的攻擊流量,這本身就形成了一種拒絕服務(wù)攻擊。
為了更好地應(yīng)對(duì)DoS攻擊,研究人員也提出了一些抵御DoS攻擊的方法,如蜜罐技術(shù)、隱藏減緩技術(shù)、SYN Cookie技術(shù)等,這些技術(shù)的基本思想都是通過(guò)隱藏目標(biāo)主機(jī)的地址,使攻擊者無(wú)法找到攻擊目標(biāo),從而實(shí)現(xiàn)防護(hù)。正是在這一思路的啟發(fā)下,提出產(chǎn)生了端信息跳變技術(shù)。
端信息跳變技術(shù)是指在通信時(shí),通信雙方按照預(yù)先約定的協(xié)議,偽隨機(jī)地改變通信地址、端口、加密算法參數(shù)等信息,從而使攻擊者無(wú)法獲得目標(biāo)主機(jī)的信息,無(wú)法實(shí)施攻擊,從而實(shí)現(xiàn)網(wǎng)絡(luò)防護(hù)。
端信息跳變可以是單方的端信息跳變,也可以是通信主機(jī)雙方對(duì)等的端信息跳變。由于雙方的跳變系統(tǒng)實(shí)現(xiàn)很復(fù)雜,目前的研究和原型系統(tǒng)大都集中于服務(wù)器單方面的端信息跳變。
近年來(lái),基于端信息跳變的防御技術(shù)逐漸引起了研究人員的關(guān)注,在網(wǎng)絡(luò)安全防護(hù)方面也開(kāi)展了相關(guān)應(yīng)用。美國(guó)軍方在2003年開(kāi)展的 APOD[2][3]項(xiàng)目中研發(fā)了一種基于虛假端口地址跳變的抗端口掃描和抗 DoS攻擊的網(wǎng)絡(luò)防護(hù)方法。該方法中采用了端口和地址跳變的混合跳變防御策略,在數(shù)據(jù)傳輸通信中使用虛假地址和端口對(duì)真實(shí)地址和端口進(jìn)行隱藏。在國(guó)內(nèi),南開(kāi)大學(xué)林楷、賈春福等人[4][5][6]提出了基于端信息跳變的主動(dòng)網(wǎng)絡(luò)防護(hù)系統(tǒng)模型,該模型通過(guò)偽隨機(jī)地改變端地址信息,破壞攻擊者干擾,實(shí)現(xiàn)網(wǎng)絡(luò)防護(hù)。Lee H C J[7]團(tuán)隊(duì)將網(wǎng)絡(luò)通信時(shí)間劃分為等間隔的離散時(shí)隙,以時(shí)隙作為生成因子,由時(shí)隙和生成函數(shù)來(lái)生成網(wǎng)絡(luò)通信的端口,從而使攻擊者無(wú)法鎖定攻擊的目標(biāo)端口。Mills D L[8]等人則利用端口跳變實(shí)現(xiàn)通信端口的隱蔽,探討了端口跳變?cè)趯?shí)現(xiàn)過(guò)程中需要解決的密鑰管理、端口同步等問(wèn)題。
本節(jié)以服務(wù)端一方的端信息跳變?yōu)槔?jiǎn)要介紹基于端信息跳變防御系統(tǒng)模型以及工作模式,其示意圖如圖1所示。

圖1 端信息跳變防御模型
端信息防御系統(tǒng)包括四個(gè)模塊:服務(wù)模塊、控制模塊、同步模塊和客戶端模塊。
(1)服務(wù)模塊是由多個(gè)具有相同硬件性能與軟件系統(tǒng)的服務(wù)器,采用服務(wù)器集群的方式組織起來(lái)協(xié)同工作。服務(wù)模塊是各種網(wǎng)絡(luò)服務(wù)的提供者,如Web服務(wù),F(xiàn)TP服務(wù)等,客戶端通過(guò)遠(yuǎn)程訪問(wèn)服務(wù)器獲取網(wǎng)絡(luò)服務(wù)。服務(wù)模塊中的每臺(tái)服務(wù)器具有不同的 IP地址,其上運(yùn)行相同的服務(wù)實(shí)例,用戶的訪問(wèn)請(qǐng)求可以在不同的服務(wù)器間跳轉(zhuǎn),從而隱藏服務(wù)器的真實(shí)端信息。當(dāng)客戶端請(qǐng)求的服務(wù)具有時(shí)間延續(xù)性時(shí),服務(wù)模塊需要通過(guò)服務(wù)遷移技術(shù),實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)在不同服務(wù)器上的熱遷移,保證服務(wù)的延續(xù)性。
(2)控制模塊負(fù)責(zé)控制服務(wù)在不同服務(wù)器之間跳轉(zhuǎn)。根據(jù)預(yù)定的時(shí)隙設(shè)置,控制模塊將下一跳服務(wù)器的地址等各類端口信息發(fā)送給同步模塊,同步模塊協(xié)同控制模塊將服務(wù)遷移到下一跳服務(wù)器。
(3)同步模塊是整個(gè)跳變系統(tǒng)的中樞,其中包含同步策略和控制機(jī)制,同步策略明確通信雙方以何種方式實(shí)現(xiàn)端信息的偽隨機(jī)變換,控制機(jī)制則根據(jù)同步策略制定的辦法,實(shí)現(xiàn)通信對(duì)端的端信息跳變。
(4)客戶端模塊中部署有與控制模塊相同的同步策略與控制機(jī)制,通過(guò)與同步模塊協(xié)同,實(shí)現(xiàn)端信息的同步。
在端信息跳變系統(tǒng)中,端端之間的同步策略和服務(wù)端的服務(wù)遷移技術(shù)是難點(diǎn),同時(shí)也是系統(tǒng)的關(guān)鍵核心技術(shù)。
常見(jiàn)的同步策略有嚴(yán)格時(shí)間同步和ACK應(yīng)答同步。
(1)嚴(yán)格時(shí)間同步實(shí)現(xiàn)簡(jiǎn)單。服務(wù)端將開(kāi)啟服務(wù)的時(shí)間段,以等長(zhǎng)的時(shí)間片段切片,指明每個(gè)時(shí)間段內(nèi)提供服務(wù)的節(jié)點(diǎn)端信息,并形成時(shí)間表發(fā)布給客戶端。客戶端請(qǐng)求服務(wù)時(shí),根據(jù)系統(tǒng)時(shí)間及時(shí)間表規(guī)定的端信息,訪問(wèn)指定服務(wù)端。
(2)ACK報(bào)文應(yīng)答同步
ACK應(yīng)答同步是在客戶端和提供服務(wù)的同步模塊上同時(shí)維護(hù)一個(gè) ACK報(bào)文計(jì)數(shù)器,計(jì)數(shù)器記錄的是已成功發(fā)送完成的ACK報(bào)文數(shù)量,將ACK報(bào)文數(shù)量作為生成因子來(lái)決定此時(shí)應(yīng)該提供服務(wù)的端節(jié)點(diǎn)。ACK應(yīng)答同步的缺點(diǎn)是將報(bào)文計(jì)數(shù)放在通信協(xié)議中,容易被攻擊者截獲。
為了克服嚴(yán)格時(shí)間同步和ACK報(bào)文應(yīng)答同步的缺陷,本文提出一種基于時(shí)間戳的同步策略。其工作模式如圖2所示。

圖2 基于時(shí)間戳的同步流程
基于時(shí)間戳的同步策略將時(shí)間戳作為同步因子,在同步模塊和客戶端模塊存儲(chǔ)有相同的同步策略算法:
1)同步模塊讀取系統(tǒng)時(shí)間戳,以時(shí)間戳為生成因子,通過(guò)同步策略算法計(jì)算獲得新服務(wù)器的標(biāo)識(shí)信息,并將服務(wù)器標(biāo)識(shí)發(fā)送至控制模塊;
2)控制模塊收到服務(wù)器標(biāo)識(shí)信息和啟動(dòng)指令后,關(guān)閉舊服務(wù)器,啟動(dòng)新服務(wù)器,完成服務(wù)切換,并將結(jié)果反饋給同步模塊;
3)同步模塊收到新服務(wù)啟動(dòng)成功指令后,更新時(shí)間戳;
4)客戶端模塊向同步模塊發(fā)送訪問(wèn)請(qǐng)求;
5)同步模塊向客戶端模塊返回時(shí)間戳;
6)客戶端模塊通過(guò)同步策略算法和新的時(shí)間戳,計(jì)算出當(dāng)前服務(wù)的端信息并請(qǐng)求服務(wù)。
基于時(shí)間戳同步的策略思路源于嚴(yán)格時(shí)間同步,相比于嚴(yán)格時(shí)間同步,能有效應(yīng)對(duì)網(wǎng)絡(luò)環(huán)境下的時(shí)間延遲問(wèn)題。
服務(wù)切換技術(shù)是端信息跳變系統(tǒng)的另一大關(guān)鍵難點(diǎn),目前主要的技術(shù)手段是通過(guò)在客戶端和服務(wù)器之間部署跳變代理實(shí)現(xiàn)服務(wù)的切換。服務(wù)端服務(wù)器的 IP地址為內(nèi)部地址,外部客戶端無(wú)法直接訪問(wèn)服務(wù)器,客戶端對(duì)服務(wù)器的訪問(wèn)都通過(guò)跳轉(zhuǎn)代理實(shí)現(xiàn),每個(gè)跳轉(zhuǎn)代理具有獨(dú)立的外部 IP地址,具有接收和發(fā)送數(shù)據(jù)包的功能。客戶端發(fā)送訪問(wèn)請(qǐng)求時(shí),首先通過(guò)同步模塊得到服務(wù)端信息,與對(duì)應(yīng)的跳轉(zhuǎn)代理進(jìn)行通信。跳轉(zhuǎn)代理介于客戶端和服務(wù)器之間完成數(shù)據(jù)轉(zhuǎn)發(fā)。
端信息跳變系統(tǒng)通過(guò)協(xié)商通信雙方的同步策略,隱藏通信雙方的端信息,是一種動(dòng)態(tài)網(wǎng)絡(luò)防御技術(shù),與傳統(tǒng)的“老三樣”防護(hù)技術(shù)相比具有較強(qiáng)的抗攻擊性和抗截獲性。目前,該技術(shù)的研究成果尚處于理論研究和原型系統(tǒng)驗(yàn)證階段。但其理論研究與實(shí)驗(yàn)結(jié)果表明,該技術(shù)在防御難度大的 DoS攻擊時(shí)具有較好的主動(dòng)防護(hù)性能。未來(lái)針對(duì)同步策略、跳變策略等重難點(diǎn)技術(shù)可進(jìn)一步展開(kāi)有效的理論和實(shí)踐研究,從而能夠?qū)Ψ雷o(hù) DoS攻擊產(chǎn)生積極效果。