存儲(chǔ)從主機(jī)1 91.1 92.1 93.1 94端口2566傳送到主機(jī)1 5.1 6.1 7.1 8端口11 80的會(huì)話內(nèi)容。 .
把數(shù)據(jù)流存為會(huì)話文件有許多好處:恢復(fù)到真實(shí)的數(shù)據(jù)流,可以作為原始數(shù)據(jù)保留,用于違規(guī)審計(jì)及事后取證等;在需要會(huì)話重現(xiàn)的時(shí)候,再進(jìn)行讀取分析;從文件名可以很直觀得到通信雙方的標(biāo)識(shí)(主機(jī)地址)及采用的協(xié)議(端口號(hào));非常便于運(yùn)用多線程技術(shù)進(jìn)行分析。
3.3 多線程協(xié)議還原技術(shù)
在應(yīng)用程序的開發(fā)過程中,使用多線程技術(shù)有很多優(yōu)點(diǎn),多個(gè)任務(wù)并發(fā)執(zhí)行,可以改善這個(gè)系統(tǒng)的性能。
(1)線程的系統(tǒng)開銷比較小。
(2)同一進(jìn)程下的線程之間共享數(shù)據(jù)空間。
(3)在多處理器計(jì)算機(jī)上實(shí)現(xiàn)多線程時(shí),線程可以并行工作,提高程序執(zhí)行效率。例如,使用多線程技術(shù)的網(wǎng)絡(luò)螞蟻(Netants)是目前最常用的下載工具之一,使用多線程技術(shù)的grep比單線程的grep要快上幾倍。
在應(yīng)用層的網(wǎng)絡(luò)協(xié)議中,不同的協(xié)議通常綁定特定的端口號(hào)。根據(jù)端口號(hào),可以得到對(duì)應(yīng)的應(yīng)用層協(xié)議,依據(jù)協(xié)議的RFC文檔,就可以對(duì)多個(gè)會(huì)話文件并發(fā)處理,進(jìn)行協(xié)議還原。系統(tǒng)中采用負(fù)載均衡算法。每個(gè)協(xié)議還原引擎都有一個(gè)BUSY/IDLE狀態(tài)位,初始狀態(tài)為IDLE,由還原程序主模塊進(jìn)行任務(wù)分發(fā),把會(huì)話文件池中的文件分給IDI。E線程,并將該線程狀態(tài)置為BUSY。當(dāng)該線程完成還原任務(wù)后,將狀態(tài)置為ID[。E。這樣,多個(gè)線程可以同時(shí)進(jìn)行協(xié)議還原,生成協(xié)議文件。這種算法簡(jiǎn)單而且有效。利用這種算法,結(jié)合多線程技術(shù),實(shí)現(xiàn)了}ITTP,FTP,''I''EI.,NE2'',SMTP,POP3等協(xié)議的分析還原。
4 結(jié) 語(yǔ)
當(dāng)前,基于網(wǎng)絡(luò)內(nèi)容的協(xié)議分析還原主要的技術(shù)難點(diǎn)在于高效截包的技術(shù)上,必須保證零丟包率,或者極低的丟包率,否則會(huì)話就無(wú)法完整重建,協(xié)議還原便無(wú)法實(shí)現(xiàn)。在百兆的局域網(wǎng)內(nèi),采用Libpcap及BPF過濾技術(shù),高效的模擬的''I''CP/IP重組技術(shù),實(shí)現(xiàn)了零丟包率,系統(tǒng)取得了預(yù)期的效果。但在1 Gb的高速網(wǎng)絡(luò),必須尋找新的方法,如數(shù)據(jù)包零拷貝技術(shù)或其它辦法。在Linux下實(shí)現(xiàn)截包,網(wǎng)卡中斷調(diào)度消耗比較多的CPU周期,對(duì)內(nèi)核進(jìn)行補(bǔ)丁(RTIRQ),提高調(diào)度性能也是一種方法。本文提出的截包技術(shù)、會(huì)話重建技術(shù)及分析還原技術(shù),對(duì)基于網(wǎng)絡(luò)的IDS也具有一定的參考價(jià)值。





