現(xiàn)網(wǎng)傳輸文件的高性能還原技術(shù)方案
Part 01
● 網(wǎng)絡(luò)拓?fù)浜喪?/strong> ●
通過分光器將流量引流到流量檢測設(shè)備(即DPI設(shè)備,DPI 是一種基于數(shù)據(jù)包的深度檢測技術(shù)),針對不同的網(wǎng)絡(luò)層協(xié)議的應(yīng)用層載荷進(jìn)行深度檢測,通過對報文的有效載荷掃描檢測從而達(dá)到檢測攻擊流量和惡意文件提取的功能,部署圖如圖1所示。
圖1 DPI網(wǎng)絡(luò)拓?fù)鋱D?
Part 02
● 開源文件還原技術(shù)方案 ●
Zeek(NIDS)是由Vern Paxson開發(fā)的一種被動的,開源的網(wǎng)絡(luò)流量分析器,用于收集網(wǎng)絡(luò)測量數(shù)據(jù),進(jìn)行流量調(diào)查等等。Zeek包含一組日志文件,用于記錄網(wǎng)絡(luò)活動,如HTTP會話,包括URI,密鑰標(biāo)頭,MIME類型,服務(wù)器響應(yīng),DNS請求,SSL證書,SMTP會話等。
Zeek 是一個功能強(qiáng)大的網(wǎng)絡(luò)分析框架,也提供了文件還原的功能,默認(rèn)僅支持HTTP、FTP、SMTP 3種協(xié)議,可以根據(jù)Zeek腳本全局配置,配置還原文件的類型,Zeek配置文件還原腳本文件(file_extraction.zeek)
示例如下:
使用4元組(源ip、目的ip、源端口、目的端口)和協(xié)議類型區(qū)別會話,利用端口或者協(xié)議的特征識別具體協(xié)議。Zeek不是多線程的,所以一旦達(dá)到了單核的處理瓶頸會導(dǎo)致文件還原失敗,目前采用的方法是將負(fù)載分配到多個核心上,或者甚至多臺物理機(jī)器上進(jìn)行處理。
Worker 是 Zeek 進(jìn)程,它嗅探網(wǎng)絡(luò)流量并對重組的流量進(jìn)行協(xié)議分析。Zeek分為事件引擎和策略腳本兩層:
- 事件引擎:當(dāng)網(wǎng)絡(luò)上流量發(fā)生異常時,它執(zhí)行使用C ++分析實(shí)時或記錄的網(wǎng)絡(luò)流量包的事件。
- 策略腳本:這些策略分析事件以創(chuàng)建操作策略,使用策略腳本處理事件,例如發(fā)送電子郵件,發(fā)出警報,執(zhí)行系統(tǒng)命令,甚至調(diào)用緊急號碼。
Part 03
● 高性能文件還原技術(shù)方案 ●
3.1 文件還原架構(gòu)
文件還原架構(gòu)包括報文解析、流重組、應(yīng)用層協(xié)議識別、應(yīng)用層協(xié)議會話建立、文件還原等過程(如圖2)。首先根據(jù)五元組即源端口、目的端口、源IP、目的IP、協(xié)議類型建立四層會話,流重組對亂序報文進(jìn)行處理。重組報文后進(jìn)行應(yīng)用層協(xié)議識別,比如:HTTP、STMP、POP3、IMAP、SMB、NFS等常見的傳輸文件協(xié)議。
圖2 文件還原架構(gòu)圖
根據(jù)五元組通過哈希算法生成會話ID, 依據(jù)會話ID把分發(fā)到不同的文件還原核,從而提高文件還原的性能。相比于傳統(tǒng)的多臺文件還原服務(wù)器,該方案節(jié)約了網(wǎng)絡(luò)分發(fā)傳輸時間,并重組解包功能,在相同的吞吐和硬件配置下性能提升3倍。
數(shù)據(jù)流分發(fā)圖,如圖3所示。
圖3 數(shù)據(jù)流分發(fā)圖
3.2 七層會話流程
通過識別七層的協(xié)議類型,識別文件目錄、文件名字、文件大小、文件ID、編碼格式等相關(guān)信息,記錄文件還原的開始狀態(tài)、還原狀態(tài)、結(jié)束狀態(tài)。當(dāng)還原結(jié)束時,通過redis發(fā)送文件路徑、文件名字、文件ID到分析平臺。首先識別應(yīng)用層協(xié)議,識別應(yīng)用層協(xié)議的開始傳輸字段,更改會話狀態(tài),識別相關(guān)的文件名字、編碼格式、文件長度等,更新會話狀態(tài)。當(dāng)會話結(jié)束時,進(jìn)行保存文件操作,同時釋放會話。
七層會話流程圖見圖4 所示。支持50Gb/s 吞吐的文件還原,支持SMTP、AFP、POP3、HTTP、NFS、SMB、FTP等9種協(xié)議的應(yīng)用層協(xié)議,實(shí)現(xiàn)全流量檢測惡意文件的高性能處理機(jī)制。使用單機(jī)多核技術(shù),降低服務(wù)器資源,CPU資源,網(wǎng)絡(luò)資源、內(nèi)存資源。
圖4 會話流程圖
3.3 技術(shù)創(chuàng)新優(yōu)勢
相比于業(yè)界傳統(tǒng)開源方案,智慧家庭運(yùn)營中心自研的高性能文件還原技術(shù)方案具備以下優(yōu)勢:
1. 方案使用Dpdk技術(shù),繞開內(nèi)核協(xié)議棧直接從應(yīng)用層收發(fā)報文,性能得到極大提升;
2. 開源軟件Zeek文件還原采用單核架構(gòu)圖,該方案使用多核架構(gòu),從而提升文件還原的處理性能;
3. 開源軟件文件還原文件類型不支持配置,該方案文件還原后綴支持動態(tài)配置;
4. 具備AFP蘋果協(xié)議的支持;
5. Zeek是單線程處理框架,總體的文件還原系統(tǒng)處理能力約300Mb/s,該方案文件還原吞吐可以達(dá)到10Gb/s。