王 偉
(安徽水利水電職業技術學院電子系,安徽 合肥 231603)
基于NS2網絡仿真防御DDoS攻擊研究
王 偉
(安徽水利水電職業技術學院電子系,安徽 合肥 231603)
對NS2在網絡安全研究中的應用進行了分析,并基于NS2仿真平臺進行了防御DDoS攻擊的試驗。結果表明,使用NS2網絡仿真工具可以實現網絡安全攻防試驗的場景設置和效果模擬,能夠為網絡安全防御技術方案的設計提供模擬效果驗證。
NS2;網絡仿真;DDoS;網絡安全
隨著計算機網絡的快速發展與應用,網絡安全性日益重要。國家計算機網絡應急技術處理協調中心(CNCERT/CC)發布的2011年互聯網網絡安全態勢綜述顯示,DDoS攻擊呈現頻率高、規模大和轉嫁攻擊的特點,應對此類威脅是網絡安全領域的重要研究內容。為了抵御DDoS攻擊,需要對網絡系統安全配置、攻防技術和安全防御效果等方面進行試驗。但是,在真實網絡環境下進行上述試驗可能會導致目標網絡被攻擊和網絡節點癱瘓等。使用NS2網絡仿真工具可以實現網絡安全攻防試驗的場景設置和效果模擬,能夠為網絡安全防御技術方案的設計提供模擬效果驗證。為此,筆者基于NS2網絡仿真對防御DDoS攻擊的問題進行了研究。
1.1NS2簡介
NS2(Network Simulator version 2)是由UC Berkeley開發的開源、免費的軟件仿真平臺,可以用于實現對各種不同IP網絡的仿真。NS2的架構遵循OSI/RM,使用C++和OTcl作為開發語言,網絡仿真使用TCL語言進行定義,編寫OTcl腳本來定義網絡拓撲結構、配置網絡信息流量的產生和接收以及收集統計數據。NS2主要工作在Unix(Linux)和Windows系統中。
NS2能夠仿真多種網絡業務類型,實現對LAN、Intranet、無線網絡以及混合拓撲的多種網絡的仿真。仿真的層次主要集中在數據鏈路層、網絡層和傳輸層,集成了多種網絡協議和路由算法等,支持多種路由排隊管理機制和組播業務。
1.2NS2網絡仿真基本過程
使用NS2進行網絡仿真的基本過程如下[1]:①添加NS2組件。將新的協議或解決問題的方案用C++實現,以組件的形式整合到NS2平臺中去。②編寫OTcl腳本,由此實現模擬仿真場景的設定、運動場景和數據業務的產生、仿真流程的控制等。③運行OTcl腳本,生成.nam和.trace文件。④分析.trace文件,得到相關數據結果;⑤運行.nam文件,并利用gnuplot繪圖。⑥調整網絡拓撲結構和業務量模型等參數,重新進行模擬直至得到滿意結果。
DDoS攻擊是指黑客通過對其控制的大量代理端主機同時發出相同的攻擊指令,從而實現對相關目標的攻擊[2]。根據上述特點,可以通過對數據包內容相同程度高的檢測來發現DDoS攻擊,并通過丟棄該類數據包來達到防御DDoS攻擊的目標[3]。為了驗證上述防御策略是否可行,使用NS2仿真一個具有DDoS攻擊的網絡環境,設置黑客主機與正常網絡主機之間不同的連接參數,進行對抗DDoS攻擊的模擬試驗,并在試驗過程中屏蔽黑客通信,最后檢驗分析該防御的效果。
2.1試驗方案

圖1 仿真網絡結構
仿真網絡結構[4]如圖1所示。E1和E2是邊界路由器,S1和S2是2個網絡上的主機,其中S1表示發動DDoS攻擊的網絡黑客,S2表示正常的網絡主機,Host表示被攻擊的目標主機。
當S1發起DDoS攻擊時,S1會向其代理端發送攻擊指令,這些攻擊指令是相同的,因此在S1到E1之間建立CBR聯機,用相同長度的封包模擬黑客發出的攻擊數據包;S2模擬正常網絡主機,在S2到E1之間建立起相同速率、封包大小隨機的NBR聯機,在NS2中沒有這類聯機,需要向NS2中添加該聯機NBR模塊。對于邊界路由器E1和E2,采用WRED隊列管理機制和TSW2CM數據包標記策略。通過設置E1到E2等鏈路的不同帶寬和S1、S2到E1的不同連接時間,對S1產生的CBR封包進行標注并進行丟棄,從而仿真實現防御DDoS攻擊的目標。
2.2試驗過程
1)添加NBR聯機 首先編寫NBR模塊的代碼,用以產生相同速率、大小隨機的NBR封包,然后將此模塊添加到NS2中。
2)編寫Otcl腳本,在NS2中執行 該步驟的相關代碼如下:
#產生一個仿真的對象
set ns [new Simulator]
#打開一個trace文件,用來記錄封包傳遞的過程
set nd [open tsw2cm.tr w]
$ns trace-all $nd
#設置TSWTCM的參數,在本試驗中使用的是TSW2CM
#設置第一個分組的CIR為1500000 bps
#設置第二個分組的CIR為 500000 bps
set cir0 1500000
set cir1 1000000
…………
#設置NBR和CBR數據傳送開始和結束的時間
$ns at 0.0 “$nbr start”
$ns at 0.0 “$cbr start”
$ns at $testTime “$nbr stop”
$ns at $testTime “$cbr stop”
$ns at [expr $testTime + 1.0] “finish”
…………
3)吞吐量分析 通過分析CBR封包吞吐量來仿真DDoS攻擊數據包被檢測及丟棄的情況,測量CBR封包吞吐量的awk程序如下:
#measure-cbr.awk
#測量CBR封包平均吞吐量的awk程序(s2到Host)
BEGIN {
init=0;

……
4)進行吞吐量繪圖 進入繪圖模式:$startxwin.bat;執行gnuplot進行繪圖:
$gnuplot
gnuplot>
gnuplot>set yrange[0:3000]
gnuplot>plot “nbr” with linespoints 1,“cbr” with linespoints 2

圖2 吞吐量圖
吞吐量繪圖結果如圖2所示。從圖2可以看出,執行TSW2CM.tcl后,正常網絡主機產生的網絡通信數據包——NBR封包傳輸速率為10Mbps,小于程序中給定的CIR值,該封包不受影響。黑客的DDoS攻擊數據包——CBR封包傳輸速率為10Mbps,其CIR值為5Mbps,邊界路由器E1到E2的帶寬為10Mbps,因而在執行10s左右后,當E1到E2的隊列長度超過臨界值時CBR封包被丟棄。可見,通過對網絡通信中高相同度的數據包的檢測,能夠發現這類數據包并進行截獲。當網絡黑客發動DDoS攻擊時,由于攻擊指令數據包具有高相同度的特點,通過對網絡通信中高相同度的數據包進行檢測,能夠發現并截獲該類數據包,從而達到防御DDoS攻擊的目的。
隨著Internet的廣泛應用和網絡技術的快速發展,網絡安全威脅的危害日益嚴重,網絡安全研究愈發重要。作為通用的網絡測試和仿真平臺,NS2在網絡安全研究中具有應用靈活、能夠仿真網絡形態和事件多樣性的特點,因而在網絡安全研究中的應用將會更加廣泛。
[1]劉昌鑫,彭嵩松,吳蘭英.基于NS2網絡仿真的實現[J].井岡山學院學報(綜合版),2007,28(6):26-28.
[2]韓竹,范磊,李建華.基于源端檢測的DDoS防御機制[J].計算機工程,2007,33(19):150-151,157.
[3]李金良,王文國,何裕友.一種基于歷史信任數據的DDoS防御模型[J].計算機技術與發展,2007,17(7):160-162,199.
[4]柯志亨,程榮祥,謝錫望,等.計算機網絡實驗——以NS2仿真工具實作[M].臺北:學貫行銷股份有限公司,2005.
10.3969/j.issn.1673-1409(N).2012.07.039
TP393.08
A
1673-1409(2012)07-N114-03
2012-04-12
王偉(1974-),男,1997年大學畢業,碩士,講師,現主要從事網絡安全、網絡工程方面的教學與研究工作。
[編輯] 李啟棟