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