齊玉東,李程瑜,王曉虹,范趙鵬
(1海軍航空大學(xué), 山東 煙臺 264001; 2.解放軍第107醫(yī)院, 山東 煙臺 264001)
分布式拒絕服務(wù)攻擊[1](Distributed Denial of Service Attack)作為一種影響范圍較廣、威脅較大的網(wǎng)絡(luò)攻擊行為,對網(wǎng)絡(luò)的可用性帶來極大的危害??紤]到DDoS攻擊影響范圍廣,危害性大,有必要采取措施對DDoS攻擊進(jìn)行防護(hù)[2]。為了有效評估DDoS防御措施以防御DDoS攻擊,國內(nèi)外眾多科研人員和機(jī)構(gòu)開展了大量的研究。文獻(xiàn)[3]提出一種應(yīng)對DDoS攻擊防范機(jī)制的評估分類標(biāo)準(zhǔn),指出在評估防御機(jī)制中應(yīng)用的一些標(biāo)準(zhǔn)參數(shù),但缺乏具體實(shí)驗(yàn)比較。文獻(xiàn)[4]提出DDoS防御機(jī)制評估框架,但該方法需要一個(gè)嚴(yán)格假設(shè)才能清楚區(qū)分攻擊包和合法包,在實(shí)際的網(wǎng)絡(luò)攻防對抗中難以做到。文獻(xiàn)[5]基于OPNET對賽博網(wǎng)絡(luò)防御進(jìn)行建模仿真,搭建典型的DDoS網(wǎng)絡(luò)攻防場景,通過仿真結(jié)果測試采取的網(wǎng)絡(luò)防御措施可以達(dá)到的效果,但缺乏對防御措施效果的綜合評估。文獻(xiàn)[6]提出一種基于不完全信息靜態(tài)博弈的DDoS防御措施評估方法,對兩種防御措施進(jìn)行定量評估,但該評估方法只針對一個(gè)評估指標(biāo)對防御措施進(jìn)行評估,比較片面。當(dāng)前DDoS防御措施評估存在的問題主要為:缺乏標(biāo)準(zhǔn)評估數(shù)據(jù)、缺乏綜合多個(gè)指標(biāo)的評估方法等,本文就這兩個(gè)問題提出解決方法。
傳統(tǒng)的TOPSIS[7]法通過計(jì)算與正負(fù)理想解的歐式距離來體現(xiàn)評估方案與正負(fù)理想解的相對貼近度,但在多個(gè)評估方案中,與正理想解更近的方案或許與負(fù)理想解也更近,因而得到的評估結(jié)果不能真正的反應(yīng)待評估方案之間的優(yōu)劣性,這就是使用歐式距離的缺陷。假設(shè)有4個(gè)待評估方案,每個(gè)方案有兩個(gè)評估指標(biāo)x和y,如圖1所示,點(diǎn)A(xa,ya),B(xb,yb),C(xc,yc),D(xd,yd)分別為4個(gè)待評估方案的樣本點(diǎn),E(x+,y+),F(xiàn)(x-,y-)分別為正負(fù)理想解點(diǎn)。其中,AB之間的連線和CD之間的連線都與EF之間的連線垂直。
圖1 評估點(diǎn)坐標(biāo)
為了彌補(bǔ)傳統(tǒng)TOPSIS法中采用歐式距離存在的缺陷,本文采用垂面距離代替歐式距離,通過正交投影法計(jì)算垂面距離對評估方案進(jìn)行優(yōu)劣排序。如圖1所示,以直線EF為法線,分別作過直線AB和直線CD的平面o和p,直線AB和直線CD月法線在各自平面的交點(diǎn)為M和N。評估方案A和B到正理想解的垂面距離為dME,到負(fù)理想解的垂面距離為dNF,因此,可以看出A和B到正負(fù)理想解的貼近度相同,所以評估方案A和B排序相同,具有同等優(yōu)劣性,同理可得評估方案C和D也具有相同的優(yōu)劣性。因此,采用垂面距離代替歐式距離,解決了傳統(tǒng)TOPSIS法可能會導(dǎo)致待評估方案優(yōu)劣排序模糊不清的缺陷。
1) 構(gòu)建標(biāo)準(zhǔn)評估矩陣。采用向比重法對指標(biāo)數(shù)據(jù)進(jìn)行歸一化處理以消除量綱尺度不同所帶來的影響,公式為
其中xij為第i個(gè)評估方案的第j個(gè)評估指標(biāo)值,由此得到標(biāo)準(zhǔn)評估矩陣Y。
Y=[yij]m×n
2) 確定指標(biāo)權(quán)重。本文采用變異系數(shù)法[8]確定指標(biāo)權(quán)重,將評估指標(biāo)數(shù)據(jù)的變異程度作為權(quán)重確定依據(jù)。當(dāng)指標(biāo)數(shù)據(jù)變化范圍較大時(shí),說明該指標(biāo)對防御措施優(yōu)劣排序影響較大,相應(yīng)其權(quán)重也較大,反之則較小,因此變異系數(shù)法賦權(quán)具有客觀性和動態(tài)性,其主要步驟為
計(jì)算第j個(gè)指標(biāo)的平均值:
計(jì)算第j個(gè)指標(biāo)的均方差:
計(jì)算第j個(gè)指標(biāo)的變異系數(shù):
計(jì)算第j個(gè)指標(biāo)的權(quán)重:
3) 評估矩陣加權(quán)處理。確定完評估指標(biāo)權(quán)重后對評估矩陣Y進(jìn)行加權(quán)處理,得到加權(quán)評估矩陣Z。
Z=[zij]m×n=[yij]m×n·diag(wj)n×n
其中wj表示第j個(gè)指標(biāo)的權(quán)重值,所有指標(biāo)權(quán)重值總和為1。
4) 確定正、負(fù)理想解。正理想解是假設(shè)的最優(yōu)樣本,每項(xiàng)指標(biāo)都取加權(quán)評估矩陣中最優(yōu)值;相反,負(fù)理想解是假設(shè)的最差樣本,每項(xiàng)指標(biāo)都取加權(quán)評估矩陣中最差值,求解公式如下:
其中J1為效益型指標(biāo),J2為成本性指標(biāo)。
5) 計(jì)算垂面距離并排序。為簡便計(jì)算,將正理想解平移到坐標(biāo)原點(diǎn),得到平移后的評估矩陣R:
R=[rij]m×n
評估方案i到正理想解的垂面距離的計(jì)算公式為
di=|(u-v)·(u-Ri)|=|v·Ri|
其中,u、v為平移之后的正負(fù)理想型,u為零向量,Ri為平移后評估矩陣R的第i行向量。
計(jì)算評估方案與正理想型的垂面距離di后,根據(jù)di大小進(jìn)行排序,di值越小,表明該方案越接近正理想解,方案越優(yōu),反之越差。
OMNET++[9]作為一款面向?qū)ο蟮木W(wǎng)絡(luò)離散事件模擬器,提供了一種基于模塊(組件)化的仿真體系結(jié)構(gòu),定義好的模塊可以重復(fù)利用,并以各種方式進(jìn)行組合,構(gòu)成所需要的仿真網(wǎng)絡(luò)模型。
一個(gè)完整地OMNET++模型包括:
1) NED語言拓?fù)涿枋?.ned文件)。仿真網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)通過NED語言使用參數(shù)、模塊、門等進(jìn)行描述。
2) 簡單模塊源文件(.h或.cc文件)。簡單模塊作為仿真網(wǎng)絡(luò)模型中最基本的活動單元,是由C++編程實(shí)現(xiàn),簡單模塊可以通過端口進(jìn)行連接,構(gòu)成復(fù)合模塊,復(fù)合模塊也可通過定義接口模塊調(diào)用不同的簡單模塊。
3) 仿真配置文件(omnetpp.ini)。仿真配置文件中包括仿真模型參數(shù)值以及控制仿真運(yùn)行參數(shù)值。
本文主要基于OMNET++中的INET框架,對DDoS攻防進(jìn)行建模,并構(gòu)建DDoS攻防仿真網(wǎng)絡(luò)模型。
在INET框架[10]中,主機(jī)模塊通過ITCPApp接口模塊來調(diào)用TCPSessionApp簡單模塊發(fā)送建立TCP連接請求并完成TCP協(xié)議中3次握手的操作[58]。本文在研究過程中在TCPSessionApp簡單模塊的基礎(chǔ)上對其源文件進(jìn)行改進(jìn),并進(jìn)行重新編譯,開發(fā)出TCPSynFlood簡單模塊。主機(jī)模塊通過ITCPApp接口模塊調(diào)用TCPSynFlood簡單模塊時(shí),只向服務(wù)器發(fā)送SYN包而不對服務(wù)器發(fā)來的SYN+ACK包給予回應(yīng)。將調(diào)用TCPSynFlood簡單模塊的主機(jī)定義為SYN Flood攻擊主機(jī)模塊,將調(diào)用TCPSessionApp簡單模塊的主機(jī)定義為正常主機(jī)模塊。
攻擊模塊TCPSynFlood所對應(yīng)的TCPSynFlood.h/TCPSynFlood.cc是實(shí)現(xiàn)該攻擊模塊的C++源文件。TCPSynFlood攻擊模塊主要實(shí)現(xiàn)以下功能:
1) 初始化階段:調(diào)用void TCPSynFloodApp::initialize()函數(shù)對模塊進(jìn)行初始化,創(chuàng)建多個(gè)socket對象,并將socket對象存入socketVector中。
2) 攻擊開始階段:調(diào)用void TCPSynFloodApp::connect()函數(shù)發(fā)送TCP連接請求,此時(shí)TCP層會自動發(fā)送SYN包請求建立連接。
3) 攻擊持續(xù)階段:攻擊模塊在接收到服務(wù)器端發(fā)送到的SYN+ACK包后不予回應(yīng),而是不斷循環(huán)調(diào)用void TCPSynFloodApp::connect()函數(shù)發(fā)送TCP連接請求,直到socketVector中的socket對象都發(fā)生連接請求。
對DDoS攻擊進(jìn)行防御的手段主要包括對攻擊源頭的治理和對攻擊的流量緩解兩方面。對攻擊源頭進(jìn)行治理可以采取切斷攻擊源頭的措施,從理論上來說是對抗DDoS攻擊最有效的方法;對服務(wù)端進(jìn)行系統(tǒng)優(yōu)化可以對攻擊流量進(jìn)行緩解,比如增大TCP連接隊(duì)列長度。
在INET框架中,主機(jī)模塊通過ITCPApp接口模塊來調(diào)用TCPSinkApp簡單模塊接收TCP連接請求并完成TCP協(xié)議中3次握手的操作,將調(diào)用TCPSinkApp簡單模塊的主機(jī)定義為服務(wù)端主機(jī)模塊。本文分別對阻斷攻擊源頭和增大服務(wù)端TCP連接隊(duì)列長度兩種防御措施在服務(wù)器模塊中進(jìn)行建模。
服務(wù)器模塊在調(diào)用TCPSinkApp簡單模塊接收TCP連接請求之前需要調(diào)用TCP模塊對發(fā)來的SYN包進(jìn)行監(jiān)聽過濾,TCP模塊又通過調(diào)用TCPConnection::processSegmentInListen()函數(shù)完成這一過程,該函數(shù)在TCPConnectionRcvSegment.cc源文件中進(jìn)行定義,本文對其進(jìn)行改進(jìn)來完成兩種防御措施的建模。
1) 攻擊源黑名單
定義String型變量Client,用來存儲黑名單IP地址,并在接收到SYN包時(shí)首先對SYN包源地址進(jìn)行判斷,若該SYN源地址與黑名單IP地址列表中某地址相匹配,則丟棄該SYN包,同時(shí)不會對該源地址發(fā)送SYN+ACK包。
定義bool型變量isblacklist,用來控制攻擊源黑名單功能是否啟用,變量值為true攻擊源黑名單功能啟用,變量值為false。
2) 增加服務(wù)器TCP連接隊(duì)列長度
增加服務(wù)器TCP連接隊(duì)列長度連接隊(duì)列長度通過修改TCP連接隊(duì)列最大長度backlog常量實(shí)現(xiàn),在接收到SYN包前首先通過getTcpAppConnMapLen()函數(shù)獲取當(dāng)前TCP連接隊(duì)列長度,并與backlog值進(jìn)行比較,如果小于backlog值,則接收SYN包,如果大于backlog值,則丟棄該SYN包。
本文建立的DDoS攻防仿真網(wǎng)絡(luò)整個(gè)網(wǎng)絡(luò)拓?fù)淙鐖D2所示,包括80臺攻擊主機(jī)client_ddos,5部路由器router,1臺正常主機(jī)client和1臺服務(wù)器server。仿真網(wǎng)絡(luò)運(yùn)行時(shí),正常主機(jī)會向服務(wù)器發(fā)送SYN包請求建立TCP連接并嘗試完成3次握手操作,當(dāng)TCP連接成功建立后不進(jìn)行數(shù)據(jù)傳輸,而是直接銷毀該連接;攻擊主機(jī)向服務(wù)器發(fā)送SYN包且對服務(wù)器發(fā)來的SYN+ACK包不予回應(yīng),這樣就會占用服務(wù)器TCP連接隊(duì)列,影響正常主機(jī)與服務(wù)器之間TCP 3次握手操作。每臺主機(jī)等時(shí)間間隔發(fā)送20個(gè)SYN包請求與服務(wù)器建立TCP連接,當(dāng)所有主機(jī)的SYN包處理完畢之后,仿真網(wǎng)絡(luò)結(jié)束運(yùn)行。
設(shè)置正常主機(jī)和攻擊主機(jī)向服務(wù)器發(fā)送SYN包的時(shí)間間隔為100 s,設(shè)置服務(wù)器TCP連接隊(duì)列長度參數(shù)backlog為600。調(diào)整攻擊源黑名單個(gè)數(shù)和修改服務(wù)器TCP連接隊(duì)列長度以實(shí)現(xiàn)不同防御措施的部署。
圖2 DDoS攻防仿真網(wǎng)絡(luò)拓?fù)?/p>
為評估不同防御措施的優(yōu)劣,本文基于DDoS攻防仿真網(wǎng)絡(luò)從正常主機(jī)的角度出發(fā)定義了兩個(gè)防御措施評估指標(biāo)。
定義1 正常主機(jī)TCP連接成功率
正常主機(jī)TCP連接成功率是指一次仿真實(shí)驗(yàn)中正??蛻舳酥鳈C(jī)與服務(wù)器端成功建立TCP連接數(shù)與請求的TCP連接數(shù)的比值,公式為
定義2 正常主機(jī)TCP連接平均等待時(shí)間
正常主機(jī)TCP連接平均等待時(shí)間是指在一次仿真實(shí)驗(yàn)中正??蛻舳酥鳈C(jī)與服務(wù)器端成功建立TCP請求時(shí)刻與請求建立TCP連接時(shí)刻的平均時(shí)間差,公式為
保持服務(wù)器TCP連接隊(duì)列長度不變,分別將10臺、20臺、30臺攻擊主機(jī)加入黑名單攔截地址列表進(jìn)行仿真,然后保持80臺攻擊主機(jī)不變,將TCP連接隊(duì)列長度分別增加到700、800進(jìn)行仿真,分別采集兩個(gè)評估指標(biāo)數(shù)據(jù),得到仿真實(shí)驗(yàn)數(shù)據(jù)如圖3所示。
對仿真數(shù)據(jù)進(jìn)行歸一化處理得到標(biāo)準(zhǔn)評估矩陣Y:
對歸一化后的數(shù)據(jù)采用變異系數(shù)法求得權(quán)重為w=(0.67,0.33),對評估矩陣Y進(jìn)行加權(quán)處理得到帶權(quán)評估矩陣Z:
正常主機(jī)TCP連接成功率P是收益型指標(biāo);正常主機(jī)TCP連接平均等待時(shí)間T是成本型指標(biāo),因此:
正理想型Z+={0.422 3, 0.118 3}
負(fù)理想型Z-={0.129 9, 0.187 8}
圖3 仿真實(shí)驗(yàn)數(shù)據(jù)
將正理想解平移到坐標(biāo)原點(diǎn),得到平移后的評估矩陣R:
計(jì)算每個(gè)防御措施到正理想型的垂面距離,進(jìn)而進(jìn)行排序,得措施優(yōu)劣排名,如表1所示。
表1 垂面距離di及排名
由表1可知,在5種防御措施中,要優(yōu)先考慮將服務(wù)器TCP連接隊(duì)列長度增加到800防御措施。
在攻擊源黑名單防御措施中,阻斷30臺攻擊主機(jī)防御措施最優(yōu);在增大服務(wù)器TCP連接隊(duì)列長度防御措施中,將隊(duì)列長度增大到800防御措施最優(yōu)。但只比較評估指標(biāo)仿真數(shù)據(jù),這兩個(gè)局部最優(yōu)的防御措施相比各有優(yōu)劣,前者正常主機(jī)TCP連接平均等待時(shí)間指標(biāo)更優(yōu),后者正常主機(jī)TCP連接成功率指標(biāo)更優(yōu),但最終評估結(jié)果是將隊(duì)列長度增大到800防御措施最優(yōu),其主要原因是兩個(gè)評估指標(biāo)的權(quán)重不同,本文采用變異系數(shù)法客觀賦權(quán),指標(biāo)數(shù)據(jù)變化較大的指標(biāo)權(quán)重會較大,正常主機(jī)TCP連接成功率指標(biāo)數(shù)據(jù)變化較明顯,因此其權(quán)重較大,在最終評估結(jié)果中該指標(biāo)占決定作用,所以將隊(duì)列長度增大到800防御措施是最優(yōu)的,在選擇防御措施時(shí)要優(yōu)先考慮。
采用文獻(xiàn)[12]中TOPSIS法計(jì)算防御措施與正理想解的相對貼近度,得到的排序結(jié)果如表2所示。
表2 相對貼近度Ti及排名
將本文改進(jìn)的TOPSIS法與文獻(xiàn)[12]中TOPSIS法的評估結(jié)果按照下式進(jìn)行量綱一化比較,比較結(jié)果如表3所示。
表3 改進(jìn)TOPSIS方法與傳統(tǒng)的TOPSIS方法比較
由表3可知,文獻(xiàn)[12-13]TOPSIS法與本文改進(jìn)的TOPSIS法得到的防御措施優(yōu)劣排序一致,證明改進(jìn)后的TOPSIS法具有可行性,而且本文改進(jìn)后的TOPSIS法與文獻(xiàn)[11]中TOPSIS法相比得到的最優(yōu)防御措施和次優(yōu)防御措施之間的評估數(shù)值相差更大,表明本文方法能更明顯的區(qū)分防御措施之間的優(yōu)劣程度,突顯出最佳防御措施的優(yōu)越性。
1) 針對DDoS攻防評估缺乏標(biāo)準(zhǔn)數(shù)據(jù)集和綜合多指標(biāo)評估方法的問題,本文通過OMNET++仿真軟件對DDoS攻防網(wǎng)絡(luò)進(jìn)行了仿真,采集了原始仿真數(shù)據(jù),保證了評估指標(biāo)數(shù)據(jù)來源的可靠性。
2) 改進(jìn)了傳統(tǒng)的TOPSIS法對防御措施進(jìn)行多指標(biāo)評估,得出防御措施優(yōu)劣排名以指導(dǎo)防御措施的選取,而且改進(jìn)后的TOPSIS法與傳統(tǒng)TOPSIS法相比,會更明顯的區(qū)分防御措施之間的優(yōu)劣程度。
3) 下一步研究工作主要是構(gòu)建多角度多指標(biāo)的防御措施評估指標(biāo)體系,使評估更加全面具體,結(jié)果更加有說服力;同時(shí)從攻防角度出發(fā),引入防御成本概念,針對不同攻擊強(qiáng)度評估出最經(jīng)濟(jì)最有效的防御措施。