Part 01

網(wǎng)絡拓撲簡述


(相關(guān)資料圖)

通過分光器將流量引流到流量檢測設備(即DPI設備,DPI 是一種基于數(shù)據(jù)包的深度檢測技術(shù)),針對不同的網(wǎng)絡層協(xié)議的應用層載荷進行深度檢測,通過對報文的有效載荷掃描檢測從而達到檢測攻擊流量和惡意文件提取的功能,部署圖如圖1所示。

圖1 DPI網(wǎng)絡拓撲圖?

Part 02

開源文件還原技術(shù)方案

Zeek(NIDS)是由Vern Paxson開發(fā)的一種被動的,開源的網(wǎng)絡流量分析器,用于收集網(wǎng)絡測量數(shù)據(jù),進行流量調(diào)查等等。Zeek包含一組日志文件,用于記錄網(wǎng)絡活動,如HTTP會話,包括URI,密鑰標頭,MIME類型,服務器響應,DNS請求,SSL證書,SMTP會話等。

Zeek 是一個功能強大的網(wǎng)絡分析框架,也提供了文件還原的功能,默認僅支持HTTP、FTP、SMTP 3種協(xié)議,可以根據(jù)Zeek腳本全局配置,配置還原文件的類型,Zeek配置文件還原腳本文件(file_extraction.zeek)

示例如下:

["application/postscript"] = "ps",["application/x-dosexec"] = "exe",

使用4元組(源ip、目的ip、源端口、目的端口)和協(xié)議類型區(qū)別會話,利用端口或者協(xié)議的特征識別具體協(xié)議。Zeek不是多線程的,所以一旦達到了單核的處理瓶頸會導致文件還原失敗,目前采用的方法是將負載分配到多個核心上,或者甚至多臺物理機器上進行處理。

Worker 是 Zeek 進程,它嗅探網(wǎng)絡流量并對重組的流量進行協(xié)議分析。Zeek分為事件引擎和策略腳本兩層:

事件引擎:當網(wǎng)絡上流量發(fā)生異常時,它執(zhí)行使用C ++分析實時或記錄的網(wǎng)絡流量包的事件。策略腳本:這些策略分析事件以創(chuàng)建操作策略,使用策略腳本處理事件,例如發(fā)送電子郵件,發(fā)出警報,執(zhí)行系統(tǒng)命令,甚至調(diào)用緊急號碼。

Part 03

高性能文件還原技術(shù)方案

3.1 文件還原架構(gòu)

文件還原架構(gòu)包括報文解析、流重組、應用層協(xié)議識別、應用層協(xié)議會話建立、文件還原等過程(如圖2)。首先根據(jù)五元組即源端口、目的端口、源IP、目的IP、協(xié)議類型建立四層會話,流重組對亂序報文進行處理。重組報文后進行應用層協(xié)議識別,比如:HTTP、STMP、POP3、IMAP、SMB、NFS等常見的傳輸文件協(xié)議。

圖2 文件還原架構(gòu)圖

根據(jù)五元組通過哈希算法生成會話ID, 依據(jù)會話ID把分發(fā)到不同的文件還原核,從而提高文件還原的性能。相比于傳統(tǒng)的多臺文件還原服務器,該方案節(jié)約了網(wǎng)絡分發(fā)傳輸時間,并重組解包功能,在相同的吞吐和硬件配置下性能提升3倍。

數(shù)據(jù)流分發(fā)圖,如圖3所示。

圖3 數(shù)據(jù)流分發(fā)圖

3.2 七層會話流程

通過識別七層的協(xié)議類型,識別文件目錄、文件名字、文件大小、文件ID、編碼格式等相關(guān)信息,記錄文件還原的開始狀態(tài)、還原狀態(tài)、結(jié)束狀態(tài)。當還原結(jié)束時,通過redis發(fā)送文件路徑、文件名字、文件ID到分析平臺。首先識別應用層協(xié)議,識別應用層協(xié)議的開始傳輸字段,更改會話狀態(tài),識別相關(guān)的文件名字、編碼格式、文件長度等,更新會話狀態(tài)。當會話結(jié)束時,進行保存文件操作,同時釋放會話。

七層會話流程圖見圖4 所示。支持50Gb/s 吞吐的文件還原,支持SMTP、AFP、POP3、HTTP、NFS、SMB、FTP等9種協(xié)議的應用層協(xié)議,實現(xiàn)全流量檢測惡意文件的高性能處理機制。使用單機多核技術(shù),降低服務器資源,CPU資源,網(wǎng)絡資源、內(nèi)存資源。

圖4 會話流程圖

3.3技術(shù)創(chuàng)新優(yōu)勢

相比于業(yè)界傳統(tǒng)開源方案,智慧家庭運營中心自研的高性能文件還原技術(shù)方案具備以下優(yōu)勢:

1. 方案使用Dpdk技術(shù),繞開內(nèi)核協(xié)議棧直接從應用層收發(fā)報文,性能得到極大提升;

2. 開源軟件Zeek文件還原采用單核架構(gòu)圖,該方案使用多核架構(gòu),從而提升文件還原的處理性能;

3. 開源軟件文件還原文件類型不支持配置,該方案文件還原后綴支持動態(tài)配置;

4. 具備AFP蘋果協(xié)議的支持;

5. Zeek是單線程處理框架,總體的文件還原系統(tǒng)處理能力約300Mb/s,該方案文件還原吞吐可以達到10Gb/s。

標簽: 傳輸文件