趙康兵
摘要:生成高質(zhì)量攻擊流量與背景流量是進(jìn)行入侵檢測(cè)系統(tǒng)測(cè)試與評(píng)估的核心問(wèn)題,其中如何兼顧背景流量與真實(shí)網(wǎng)絡(luò)環(huán)境的一致性與靈活性一直是個(gè)難點(diǎn),此外入侵檢測(cè)系統(tǒng)性能的飛速提升又對(duì)測(cè)試所需背景流量生成的效率提出了較高的要求。這里以NXTECH硬件平臺(tái)為基礎(chǔ),設(shè)計(jì)了一個(gè)軟硬件結(jié)合基于重放技術(shù)的背景流量生成方案,能夠高速產(chǎn)生多種應(yīng)用層協(xié)議流量,允許突發(fā),并使用C#進(jìn)行了實(shí)現(xiàn)。
關(guān)鍵詞: 背景流量生成;速率控制;突發(fā)流量;入侵檢測(cè)系統(tǒng)
中圖分類(lèi)號(hào):TP393.0 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)07-0046-02
Abstract:The generation of effective background traffic and malicious traffic is the main question of evaluating IDS, and there is a hard trade-off between effectiveness and flexibility. Moreover, efficient method to generate background traffic is needed due to high-performance IDS. Based on NXTECH hardware platform, a new background traffic generation system is designed and implemented by C#, which combines software and hardware to replay packets, supports lots of application layer protocol and traffic burst.
Key words:background traffic generation; rate control; burst of traffic; IDS
1 引言
互聯(lián)網(wǎng)已經(jīng)滲透進(jìn)人們?nèi)粘I畹姆椒矫婷?。為了保證網(wǎng)絡(luò)服務(wù)的穩(wěn)定性和網(wǎng)絡(luò)數(shù)據(jù)的保密性,入侵檢測(cè)系統(tǒng)以及防火墻、反病毒軟件等安全解決方案被廣泛使用,它們的性能和效果對(duì)網(wǎng)絡(luò)安全有著至關(guān)重要的影響。
對(duì)入侵檢測(cè)系統(tǒng)測(cè)試和評(píng)估方案的研究已經(jīng)有了很長(zhǎng)的歷史。1997年P(guān)uketza等人介紹了他們基于軟件工程測(cè)試思想設(shè)計(jì)的測(cè)試平臺(tái)[1-2]并制訂了評(píng)估指標(biāo)。他們通過(guò)腳本模擬用戶行為來(lái)生成攻擊流量和背景流量,開(kāi)創(chuàng)了先河。1998和1999年MIT林肯實(shí)驗(yàn)室在美國(guó)國(guó)防部和美國(guó)空軍支持下進(jìn)行了影響最大的一次測(cè)試[3-4],測(cè)試對(duì)象包含了當(dāng)時(shí)流行的開(kāi)源和商業(yè)入侵檢測(cè)系統(tǒng)。他們使用軟件模擬一個(gè)空軍基地的網(wǎng)絡(luò)拓?fù)洌捎?xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù),這些數(shù)據(jù)被整理成DARPA1999和DARPA2000數(shù)據(jù)集被廣泛使用,成為相關(guān)領(lǐng)域研究的測(cè)試基準(zhǔn)。后續(xù)的研究[5-8]也可簡(jiǎn)單分為采用有限自動(dòng)機(jī)建模、使用測(cè)試組件和流量重放三種方式生成背景流量,但如何生成與真實(shí)環(huán)境更為接近的背景流量并保證靈活性與高效性的問(wèn)題并沒(méi)有得到解決。
本文以具有高速流量發(fā)送能力的NXTECH硬件平臺(tái)為基礎(chǔ),基于REPLAY技術(shù)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)背景流量生成系統(tǒng),提供了對(duì)多種應(yīng)用層協(xié)議的支持,并且支持流量控制和較高的效率。
2 方案設(shè)計(jì)
2.1 硬件平臺(tái)介紹
本項(xiàng)目以NXTECH硬件平臺(tái)為基礎(chǔ),它由一臺(tái)普通PC機(jī)和與其通過(guò)高速接口相連的硬件板卡組成。板卡提供了兩個(gè)RJ45接口,具有數(shù)據(jù)包發(fā)送、捕獲和其他網(wǎng)絡(luò)測(cè)速功能,發(fā)送速率最高可達(dá)10Gbps。在PC機(jī)上加載板卡驅(qū)動(dòng)NXTECH.dll后可調(diào)用對(duì)應(yīng)接口實(shí)現(xiàn)相關(guān)功能。實(shí)現(xiàn)流量發(fā)送功能的流程為:1)打開(kāi)設(shè)備;2)鎖定使用端口;3)設(shè)置工作模式;4)設(shè)置網(wǎng)絡(luò)模式;5)發(fā)送自定義數(shù)據(jù)包。表1是板卡驅(qū)動(dòng)提供的關(guān)鍵接口說(shuō)明:
2.2 功能需求分析
本項(xiàng)目的主要目標(biāo)是,模擬真實(shí)網(wǎng)絡(luò)環(huán)境生成背景流量,允許通過(guò)參數(shù)控制發(fā)送速率、是否存在突發(fā)等選項(xiàng)。對(duì)網(wǎng)絡(luò)背景流量的模擬可分為高低兩種層次,低層次只包含以太網(wǎng)、IP、TCP等數(shù)據(jù)包,高層次生成的流量中還包含應(yīng)用層協(xié)議內(nèi)容。由于入侵檢測(cè)系統(tǒng)工作時(shí)會(huì)丟棄無(wú)意義的數(shù)據(jù)包,為了與真實(shí)網(wǎng)絡(luò)環(huán)境保持一致,本方案也需要能夠生成各種應(yīng)用層協(xié)議流。
2.3 總體結(jié)構(gòu)設(shè)計(jì)
本項(xiàng)目模塊結(jié)構(gòu)如圖1所示,簡(jiǎn)單分為五部分。用戶代理與用戶交互,接收所需協(xié)議種類(lèi)、網(wǎng)絡(luò)信息、發(fā)送速率、是否允許突發(fā)等參數(shù),調(diào)用其他模塊執(zhí)行具體功能。數(shù)據(jù)中心維護(hù)了一個(gè)數(shù)據(jù)庫(kù)和一系列流量樣本文件。預(yù)處理模塊從數(shù)據(jù)中心模塊讀取需要發(fā)送的流量樣本,利用PacketDotNet進(jìn)行解析和處理后填充到一個(gè)待發(fā)送隊(duì)列中。流量發(fā)送模塊對(duì)硬件板卡較為底層的API接口進(jìn)行了封裝以簡(jiǎn)化使用。速率控制模塊根據(jù)流量控制算法調(diào)用發(fā)送模塊完成流量發(fā)送。
3 關(guān)鍵技術(shù)實(shí)現(xiàn)
為了充分利用硬件資源,實(shí)現(xiàn)較高的發(fā)送速率,考慮對(duì)生成和發(fā)送過(guò)程進(jìn)行并行處理,以充分利用硬件性能;為了實(shí)現(xiàn)允許突發(fā)和不允許突發(fā)兩種速率限制情況,根據(jù)需求在兩種流量控制算法之間進(jìn)行切換。
3.1 流量生成與發(fā)送的并行處理
核心思路是在利用.net平臺(tái)中的BlockingCollection>中“緩存”已經(jīng)處理完成待發(fā)送的數(shù)據(jù)包。數(shù)據(jù)包的生成和發(fā)送在不同的線程中處理。由于.net中BlockingCollection允許多個(gè)線程同時(shí)進(jìn)行讀寫(xiě),可以在多個(gè)線程預(yù)處理數(shù)據(jù)包的同時(shí)進(jìn)行流量發(fā)送,以此最大限度的提高流量的生成及發(fā)送速度。算法的原理如下:
1) 任意時(shí)候,接收到停止信號(hào)立即停止發(fā)送和生成過(guò)程,并清理已緩存的數(shù)據(jù)包
2) 流量生成模塊嘗試將已處理完成的數(shù)據(jù)寫(xiě)入緩存隊(duì)列,成功則繼續(xù)寫(xiě)入,失?。ň彺鏀?shù)據(jù)已滿)則進(jìn)入阻塞狀態(tài)
3) 流量發(fā)送模塊嘗試從緩存隊(duì)列中取出數(shù)據(jù)調(diào)用板卡API進(jìn)行發(fā)送,成功則繼續(xù)讀取數(shù)據(jù),失?。ň彺鏀?shù)據(jù)已空)則進(jìn)入阻塞狀態(tài)
4) 緩存數(shù)據(jù)增加將激活發(fā)送模塊,緩存數(shù)據(jù)減少激活生成模塊。
3.2 流量控制的實(shí)現(xiàn)
板卡硬件發(fā)送能力高達(dá)10Gps,因此在通常情況下,可通過(guò)控制向板卡發(fā)送數(shù)據(jù)的速率調(diào)節(jié)實(shí)際流量發(fā)送速度。常用的速率控制算法有令牌桶算法和漏桶算法,主要區(qū)別在于前者支持突發(fā),允許短時(shí)間內(nèi)發(fā)送流量超過(guò)最大限制,而后者可保證任意時(shí)刻流量不超出最大速率限制。以令牌桶算法為例,其實(shí)現(xiàn)思路為,每次發(fā)送流量之前檢查令牌桶是否有足夠token,如果有則消耗token并執(zhí)行發(fā)送過(guò)程;如果無(wú)則根據(jù)距離上次添加token時(shí)間計(jì)算出相應(yīng)數(shù)量補(bǔ)充到令牌桶中,間隔時(shí)間過(guò)短則等待若干毫秒。
4 結(jié)論
本文分析了入侵檢測(cè)系統(tǒng)測(cè)試平臺(tái)對(duì)背景流量生成的需求,以NXTECH硬件平臺(tái)為基礎(chǔ)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)背景流量生成系統(tǒng),具有可擴(kuò)展性強(qiáng)、效率高、使用簡(jiǎn)便等優(yōu)點(diǎn),也可用于網(wǎng)絡(luò)測(cè)試等其他需要背景流量生成的場(chǎng)合。在未來(lái),可對(duì)本方案進(jìn)行進(jìn)一步研究和改進(jìn),如通過(guò)profiling進(jìn)一步優(yōu)化性能、添加ARP自動(dòng)發(fā)現(xiàn)等功能。
參考文獻(xiàn):
[1] Puketza N J, Zhang K, Chung M, et al. A methodology for testing intrusion detection systems[J]. IEEE Transactions on Software Engineering, 1996, 22(10): 719-729.
[2] Puketza N, Chung M, Olsson R A, et al. A software platform for testing intrusion detection systems[J]. Ieee software, 1997, 14(5): 43-51.
[3] Lippmann R, Haines J W, Fried D J, et al. The 1999 DARPA off-line intrusion detection evaluation[J]. Computer networks, 2000, 34(4): 579-595.
[4] Lippmann R, Haines J W, Fried D J, et al. Analysis and results of the 1999 DARPA off-line intrusion detection evaluation[C]//International Workshop on Recent Advances in Intrusion Detection. Springer, Berlin, Heidelberg, 2000: 162-182.
[5] 胡亮, 趙闊, 孔令治, 等. 基于日志的網(wǎng)絡(luò)背景流量模擬仿真[J]. 小型微型計(jì)算機(jī)系統(tǒng), 2006, 27(2): 197-201.
[6] 許超, 錢(qián)俊, 史美林. 用于入侵檢測(cè)數(shù)據(jù)集評(píng)測(cè)的 SMTP 流量模擬[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2006, 27(12): 2124-2126.
[7] 劉華陽(yáng). 網(wǎng)絡(luò)系統(tǒng)仿真中的流量模型研究[J]. 軍民兩用技術(shù)與產(chǎn)品, 2006(2): 42-43.
[8] 鄒天際. 網(wǎng)絡(luò)模擬中背景流量模型的研究[D]. 哈爾濱工業(yè)大學(xué),2010.