Part 01
● 网络拓扑简述 ●
通过分光器将流量引流到流量检测设备(即DPI设备,DPI 是一种基于数据包的深度检测技术),针对不同的网络层协议的应用层载荷进行深度检测,通过对报文的有效载荷扫描检测从而达到检测攻击流量和恶意文件提取的功能,部署图如图1所示。
图1 DPI网络拓扑图
Part 02
● 开源文件还原技术方案 ●
Zeek(NIDS)是由Vern Paxson开发的一种被动的,开源的网络流量分析器,用于收集网络测量数据,进行流量调查等等。Zeek包含一组日志文件,用于记录网络活动,如HTTP会话,包括URI,密钥标头,MIME类型,服务器响应,DNS请求,SSL证书,SMTP会话等。
Zeek 是一个功能强大的网络分析框架,也提供了文件还原的功能,默认仅支持HTTP、FTP、SMTP 3种协议,可以根据Zeek脚本全局配置,配置还原文件的类型,Zeek配置文件还原脚本文件(file_extraction.zeek)
示例如下:
["application/postscript"] = "ps",
["application/x-dosexec"] = "exe",
使用4元组(源ip、目的ip、源端口、目的端口)和协议类型区别会话,利用端口或者协议的特征识别具体协议。Zeek不是多线程的,所以一旦达到了单核的处理瓶颈会导致文件还原失败,目前采用的方法是将负载分配到多个核心上,或者甚至多台物理机器上进行处理。
Worker 是 Zeek 进程,它嗅探网络流量并对重组的流量进行协议分析。Zeek分为事件引擎和策略脚本两层:
- 事件引擎:当网络上流量发生异常时,它执行使用C 分析实时或记录的网络流量包的事件。
- 策略脚本:这些策略分析事件以创建操作策略,使用策略脚本处理事件,例如发送电子邮件,发出警报,执行系统命令,甚至调用紧急号码。
Part 03
● 高性能文件还原技术方案 ●
3.1 文件还原架构
文件还原架构包括报文解析、流重组、应用层协议识别、应用层协议会话建立、文件还原等过程(如图2)。首先根据五元组即源端口、目的端口、源IP、目的IP、协议类型建立四层会话,流重组对乱序报文进行处理。重组报文后进行应用层协议识别,比如:HTTP、STMP、POP3、IMAP、SMB、NFS等常见的传输文件协议。
图2 文件还原架构图
根据五元组通过哈希算法生成会话ID, 依据会话ID把分发到不同的文件还原核,从而提高文件还原的性能。相比于传统的多台文件还原服务器,该方案节约了网络分发传输时间,并重组解包功能,在相同的吞吐和硬件配置下性能提升3倍。
数据流分发图,如图3所示。
图3 数据流分发图
3.2 七层会话流程
通过识别七层的协议类型,识别文件目录、文件名字、文件大小、文件ID、编码格式等相关信息,记录文件还原的开始状态、还原状态、结束状态。当还原结束时,通过redis发送文件路径、文件名字、文件ID到分析平台。首先识别应用层协议,识别应用层协议的开始传输字段,更改会话状态,识别相关的文件名字、编码格式、文件长度等,更新会话状态。当会话结束时,进行保存文件操作,同时释放会话。
七层会话流程图见图4 所示。支持50Gb/s 吞吐的文件还原,支持SMTP、AFP、POP3、HTTP、NFS、SMB、FTP等9种协议的应用层协议,实现全流量检测恶意文件的高性能处理机制。使用单机多核技术,降低服务器资源,CPU资源,网络资源、内存资源。
图4 会话流程图
3.3 技术创新优势
相比于业界传统开源方案,智慧家庭运营中心自研的高性能文件还原技术方案具备以下优势:
1. 方案使用Dpdk技术,绕开内核协议栈直接从应用层收发报文,性能得到极大提升;
2. 开源软件Zeek文件还原采用单核架构图,该方案使用多核架构,从而提升文件还原的处理性能;
3. 开源软件文件还原文件类型不支持配置,该方案文件还原后缀支持动态配置;
4. 具备AFP苹果协议的支持;
5. Zeek是单线程处理框架,总体的文件还原系统处理能力约300Mb/s,该方案文件还原吞吐可以达到10Gb/s。