基于数据流的启发式文件传输识别系统设计

2011-07-25 06:48唐彰国钟明全李焕洲
计算机工程与设计 2011年9期
关键词:数据流报文端口

唐彰国, 钟明全, 李焕洲, 张 健

(四川师范大学网络与通信技术研究所,四川成都610066)

0 引 言

近年来出现了一些新型互联网信息窃取类恶意通信软件,集成了代理技术、加密隧道技术、P2P技术、匿名通信技术等各种方法,可以突破现有安全设备,将文件等涉密数据送到目标主机,从而逃避监管。因此,对如何检测并防止电子文件通过网络泄露开展研究并提出相应的监控措施具有重要的现实意义。文件是涉密信息的载体,已成为网络犯罪证据的可能载体,而任何文件的网络泄露,只有依赖于网络数据流才能成功实现,因此,本文从文件网络泄露检测的需求出发,通过深入分析数据流特点,引入文件数据流属性的概念,重点讨论通过数据流分析进行文件网络泄露检测的系统方案和关键技术。

1 文件网络泄漏的方式和相应监控技术现状

1.1 文件网络泄漏方式分类

从网络监管的角度看[1],文件网络泄漏从行为方式上可分为两种,一是文件被动泄漏,即文件被非法访问者通过网络获取;另一种是文件主动泄漏,即文件被合法用户通过网络转移到期望范围之外。例如:网络主机受恶意控制导致文件泄露,如主机被植入木马、被远程控制软件控制等;合法用户通过普通网络服务有意或者无意将涉密文件传送到外部网络造成文件泄漏,如HTTP、FTP、SMTP、POP3等常规网络应用;合法用户通过加密、代理等特殊网络服务有意将涉密文件传送到外部网络造成文件泄漏,如HTTPS、SMTP/SSL、POP3/SSL、P2P等网络应用等。从文件网络泄露的工具分主要有IM、邮件、木马、控制软件、间谍软件等。从涉密文件的形态上分有特定格式文档、文件被对应应用软件加密、文件被第三方加密等属性。

1.2 国内外现有文件网络泄露检测技术的比较

根据以上分析和比对,应当采取多种角度和方法集成为一个立体式的监控体系[5],核心思想是以出入网络关口的数据流为分析对象,采用自适应深度协议分析技术,以那些能承载文件传输的协议为检测目标,提取其必要的内容和行为等属性信息,对非加密类协议进行文件还原取证,对加密类协议进行流量映射,提示是否有文件传输行为发生,从而达到对文件网络传输的全协议、全方位的识别。

2 基于网络数据流的启发式文件传输识别系统

2.1 系统架构及流程

系统工作在网络关口,在链路层进行数据采集,通过对网络数据流进行包解码,IP分片重组,TCP会话还原及应用层协议分析等操作,检测是否存在文件传输行为并进行相应的还原取证。整体架构如图1所示,主要由协议识别模块、文件传输行为识别模块、当前传输文件属性信息提取模块、文件传输状态提取模块、文件内容还原模块、文件威胁检测模块以及文件特征指纹库构成。为兼顾效率和准确性,在检测机制上采用启发式方式分为6个层次,预处理层将协议分为加密和非加密两大类,对加密通信采用流量映射来发现文件传输行为,对非加密类通信从格式到内容逐层深入分析,对于多文件传输过程中无法准确区分各分片所属文件造成的重组还原难题,系统借助文件特征指纹库在数据流中剥离出所谓的“文件流”,以此为分析对象成功实现了在多文件传输过程中各文件精确定位和准确重组,能在高强度背景噪声的干扰下进行快速检测。

2.2 部分关键技术

2.2.1 文件数据流分析

网络数据流具有连接属性、应答属性、控制属性、会话属性等多重属性[6]。传统的协议分析技术工作在应用层[7],因而无法应对木马等软件采用自定义协议进行文件传输的泄露行为。为了更全面的检测文件通过网络传播这种行为,本文以与请求、控制与会话数据流相关的内容特征信息为分析对象,将分析的数据流对象界定为文件数据流,并定义为一段由有限个数据包组成的具有双向性、关联性和结构性的出入OSI链路层至应用层的文件数据包序列。为此,本文采用如图2所示的自适应深度协议分析技术对捕获的报文进行逐层协议解释:若为IP分片报文,则进行IP分片的重组;若为UDP报文,则对报文内容按设定的特征字进行审计;若为TCP连接报文,则按协议类型对相应的协议链表进行处理;若为TCP的数据报文,则对报文内容进行文件还原,从而达到对文件数据流的全面解析。

图1 系统方案设计

图2 自适应深度协议分析的逻辑层次

自适应深度协议分析模型中文件数据流分组与组装原理如图3所示,物理层一般要限制每次发送数据包的最大长度,IP层对接收到的IP数据报文进行选路并获得其MTU,根据这个MTU和数据报的长度,决定是否对数据报进行分片[8]。在接收端通过查看分组IP首部的片偏移位DF和MF,判断这个分组在传输到本机前是否经分片,若是,IP按照片偏移位置和16位标识,将分组重装成一个完整的IP数据报。IP数据报被提交到TCP层后,TCP协议根据其TCP首部的序号域[9],将接收的分组数据重新排序,并顺序插入到接收报文队列中,直到队列中的所有IP包能组成一份完整的报文,被提交到应用层[10]。为了完成上述分片重组过程本文采用了图3中的分片链表来处理,将每个分片按分片偏移位置依次插入到分片链表中,从而将分片重组成一个IP数据报,再对IP数据报进行重组以还原成文件。以TCP报文组装为例给出关键数据结构如下[11]:

表1 现有文件传输检测技术的识别能力对比

struct tcp_connect{

__int32 S_addr;//源 IP 地址

__int32 D_daddr;//目的IP地址

unsigned short S_sport;//源端口

unsigned short D_dport;//目的端口

struct tcp_reassembly_data*protocol_data;//重组报文链表指针;

char filename[300];//报文重组还原的文件名(本地IP一目的IP_月一日一时一分一秒)

struct tcp_connection*next;//链表的后向指针

struct tcp_connection*prev;//链表的前向指针unsigned short protocol;//连接的协议类型,包括传输层和应用层协议

unsigned long data_recvlen;//记录当前连接已经接收的重组数据的大小

struct tcp_connection*relationship;//relationship用于控制与传输分离的协议报文重组中,如FTP。数据连接的relative需要指向它的命令连接,控制连接的relative指向它的数据连接。这样做是因为数据连接传送的文件其文件名由相应控制连接的filename变量保存。

}

图3 文件数据流分组与组装模型

为了将组装后的 TCP数据流还原成文件,还需要利用TCP首部中的序列号来计算TCP重组数据文件写指针,关键步骤如下:

(1)TCP会话标识中记录有初始的序列号,其中第三次握手的数据包中的序列号为本地主机的初始序列号,确认号为远程服务器的初始序列号。

(2)对接收到包含有效数据的TCP数据包,用当前TCP首部中的序列号减去初始序列号得到TCP重组数据文件的写指针。

(3)对接收到包含FIN标志的数据包,关闭重组数据文件,包括请求数据文件和响应数据文件。

2.2.2 文件特征指纹识别

目前国内外针对文件特征指纹识别的研究较少,相关的工具如QuiekviewPlus,ConversionPlus等也主要用于计算机取证领域,这些工具主要是利用文件的后缀名或根据文件的特征码判断文件的类型[12]。归纳起来目前常用的文件类型识别技术主要有基于后缀名、基于二进制内容和基于文件特征码3种。其中,基于后缀名的识别需要以事前得到一个文件为前提,这与本文需要在网络数据流中判定是否有文件传输行为发生的需求不匹配;另外,基于二进制内容的识别以文件的二进制内容中的每个字节值出现的频率作为文件的特征,该特征作为一种统计值要求在数据流组装完后进行,时间滞后且性能开销过大。

为了以较高的效率对数据流中是否有文件传输进行快速判定,本文扩展了文件特征指纹的外延并将其界定为用于标识文件特异性的信息,包括格式特征、文件头特征、文件尾特征、文件结构特征以及加密特征等。根据同种文件类型具有相似或相同特征指纹的原理,构建一个己知文件类型的特征指纹库,在网络数据流中搜索特定字符串,通过与指纹库的比对匹配来达到识别某数据流是否在传输文件、文件是否传完等目的。

涉密文件主要是一些承载涉密信息的文档,其中涉及加密的文件类型有office系列、WPS系列、PDF、Zip、Rar压缩系列等。从存储结构上包括结构化文本、自由文本和半结构化文本,不同类型文本的特征值差异很大,甚至同类型文本不同版本的特征值也不同[6]。所谓文件的特征码是指文件内容中固定出现的十六进制数字串,比如office2003及之前版本的文件格式特征码为 D0 CF 11 E0 A1 B11A E1;而 office2007与office2010系列的格式特征码变为504B0304 140006 000800 00 00 21。文件结构特征值将存储结构可作为一种指纹信息,例如PDF是一种复合文档,文件头直接描述了文件的组织方式和存储格式,例如PDF文件header、body、cross-reference、trail这4部分组成,其中head存有PDF的版本信息,如%PDF?1.5。

为了保证指纹的稳定性和可区分性,对格式公开的文档直接找相应软件定义的标志,对于格式未公开的文档须进行二进制差异比对的方法进行实验。下面以 RAR文件为例说明文件指纹特征值的获取方法。

图4中深色部分为RAR文件头6字节的特征值,图5是7字节的文件尾的结束标志。对于RAR文件的加密识别,图6给出了加密的RAR压缩文件的十六进制模式,RAR文件头的0ah字节处为保存文件加密信息的字节位,当这个字节的第7位置1时,表示这个RAR文件加密。当双击RAR文件时,直接跳出输入密码的窗口,看不到压缩的文件。图6中的0ah字节处的值是0x80,它二进制是10000000,二进制的第7位为1,说明这是一个加密的RAR文件。

图4 系RAR文件头特征值

图5 系RAR文件尾特征值

图6 RAR加密特征(一)

RAR的另一种加密方式是当双击RAR文件时,可以看到压缩的文件,但每个文件都加了密码,打不开。这种加密方式的十六进制模式如图7所示。在文件头的第16h字节处记录了文件是否加密的信息,当这个字节的第2位置1时,表示RAR文件加密。图7中可以看到压缩的文件是一个“txt”文件,名字是“需求分析”,16h字节处的值是0x74,对应二进制是1110100,二进制的第2位为1,说明这是一个加密的RAR文件。

图7 RAR加密特征(二)

具体实现时,对文件的加密判断不需要借助RAR等特定插件,而是可以直接从网络数据包的载荷段中直接进行定位判断。若数据包数据被编码,则先解码,再根据文件的加密位进行加密判断。另外,根据文件类型不同检测点有差异,如Office2003根据文件结构的加密位进行加密判断;WPS、Office高版本根据文件结构固定偏移的识别判断加密与否;RAR压缩文件和ZIP压缩文件根据文件格式的加密方式进行加密判断。检测流程如图8所示。

图8 文档格式识别及加密检测流程

2.2.3 文件传输的流量映射

传统的流量统计是基于IP的,该方法过于粗糙,可能会淹没小流量的文件传输行为。即使采用加密代理的通信软件在进行文件传输时也必然会引起某一会话端口在进出方向上的流量不对称,因此,本文提出基于会话端口的精确流量统计,理论分析和实验数据均表明该方法统计处的两个传输方向上的流量差值与该会话承载的文件大小在数值上高度正相关[14]。因此,可以用端口流量的非对称性作为存在文件传输行为的一个辅助特征,并基于此进行文件传输状态的估计[15]。为了降低误报率,需要准确区分不同类型网络应用的流量产生机制和流量宏观特征,表2基于此给出了比较结果。

根据表2的比对,可以找出用来标识流量异常的行为属性,即连接频率和端口流量不对称。为此,可做出如下定义

式中:CI——连入连接数,CO——连出连接数,(T1-T2)——观测时间窗口,与 作为流量不对称的阈值区间,基于表2的分析,可以比较某个会话连接数量和相对值,当这个比值在一定范围内时,就认为这个连接是周期连接。

表2 常用的网络通信软件的流量特征比较

同理,对于文件的网络传输行为,可以比较某个会话端口上的入流量和出流量

式中:fI——某会话端口的入流量,fO——某会话端口的出流量,fI与fO的绝对值都大于某个最小量,其比值设定一个观测阈值 。需要注意的是,fIO的目的不仅仅是作为某端口是否存在文件传输行为的预警信号,更需要通过这种流量的不对称性反应出文件实际的传输状态,如已传输了多少字节等信息,为此,在算法处理上,要做到:

(1)数据流组装:进行会话还原,按会话进行端口流量的统计,应对端口复用和跳端口通信行为。

(2)区分端口的类型,过滤掉连接端口,应对连接端口和传输端口分离的情况。

(3)包类型过滤:为了尽可能的排除协议噪声,需要对会话流里双向传输的所有数据包的包大小进行过滤,过滤掉协商、应答、重传、包头等网络附加信息,对于过滤后的包也只统计载荷段的大小。

3 测试及结果分析

搭建网络通信环境,在网络出口部署网络抓包软件,抓包并将数据包导入到本文系统。为了模拟真实通信环境,在实验室运行木马并进行文件的传输,以校园网通信流为背景噪声,通过导入校园网络中心实验当天的抓包数据,系统准确识别出隐藏在网络数据流中的文件传输行为,限于篇幅这里仅给出两种典型检测结果如图9、图10所示。

图9 木马使用标准应用层协议传输文件事件关联报警

图10 木马在传输层使用自定义协议传输文件事件关联报警

图9反映出系统在网络数据流中成功关联出了木马为了传输文件在连接、控制与通信阶段表现出的行为过程:主机192.168.1.29被Byshell木马所控制,向多个IP发起了周期连接,成功后通过自带的邮件客户端用1572端口发送了带附件的邮件,引起该主机1572端口出量相对入量出现了约1.2MB的流量差,该差值与实际的邮件附件大小基本吻合,该附件为敏感的WORD文档,且被Office2003版软件加了密。图10说明虽然采用CS模式的灰鸽子木马在传输层直接用Socket实现TCP传输,并未采用标准的应用层协议传输文件,系统同样从端口流量给出了可能存在文件传输行为的告警信息,并且由于TCP报文中存在RAR文件特征指纹系统对相应的TCP流尝试组装,由恢复出的相应文件数据流最终还原成RAR文件,该测试结果与实际情况一致。以上测试表明,对网络文件传输行为的发现系统提供了两个模式,即还原模式和流量模式,对明文传输的应用层协议进行文件还原,而对文件加密或使用非标准协议传输行为则进行端口流量映射和文件传输状态估计,两种模式的集成共同完成了对文件数据流的准确检测、识别和审计。

4 结束语

文章采用启发式的多特征检测思想,引入文件数据流的概念实现对网络文件传输的深度分析和准确检测。未来的工作:①针对不同的检测需求,研究统一化、规范化、形式化的文件数据流特征描述方法。②采用更可靠的文件标识来实现更细粒度的文件网络传输监控方法,包括文件中的图像、视频、音频等涉密信息的自动化提取技术也是下一步的一个重点研究方向。

[1]蔡俊朝,蔡皖东,胡润东.一种网络信息监管系统的设计与实现[J].微电子学与计算机,2010,27(10):140-144.

[2]宋秀丽,邓红耀.计算机证据在网络传输中的安全保护策略[J].计算机工程与设计,2010,31(16):3608-3611.

[3]ZHOU Zheng.Efficient approach for searching data package of encrypted proxy[J].Computer Engineering,2007,33(21):142-146.

[4]孙思维,胡磊.WEP数据加密协议的两种改进攻击[J].通信学报,2010,31(9):102-108.

[5]卓莹,龚春叶,龚正虎.网络传输态势感知的研究与实现[J].通信学报,2010,31(9):54-63.

[6]林臻彪.基于数据流分析的防文件网络泄露关键技术研究[D].郑州:解放军信息工程大学,2009.

[7]谢柏林,余顺争.基于应用层协议分析的应用层实时主动防御系统[J].计算机学报,2011,34(3):452-462.

[8]赵启升,李存华.一种高效的TCP会话数据流重组算法及应用[J].微电子学与计算机,2010,27(7):129-132.

[9]李世银,王秀娟,钱建生,等.TCP端到端等效噪声模型及拥塞控制方法研究[J].电子科技大学学报,2009,387(4):489-500.

[10]张家勇.基于链路层数据的中文信息智能过滤系统研究[D].阜新:辽宁工程技术大学,2006.

[11]熊伟.基于报文内容的网络审计技术研究[D].重庆:重庆大学,2008.

[12]HU Min,YANG Ji-yun,JIANG Wei.Data recovery algorithm based on file feature on Windows platform[J].Journal of Computer Applications,2011,31(2):527-529.

[13]TANG Zhang-guo,ZHONG Ming-quan,LI Huan-zhou.File formatvulnerabilityexploiting technique basedon fuzzing[J].Computer Engineering,2010,36(16):151-153.

[14]柳斌,李之棠,李佳.一种基于流特征的P2P流量实时识别方法[J].厦门大学学报(自然科学版),2007,46(2):132-135.

[15]张宾,杨家海,吴建平.Internet流量模型分析与评述[J].软件学报,2011,22(1):115-131.

猜你喜欢
数据流报文端口
基于J1939 协议多包报文的时序研究及应用
一种有源二端口网络参数计算方法
一种端口故障的解决方案
汽车维修数据流基础(上)
CTCS-2级报文数据管理需求分析和实现
汽车维修数据流基础(下)
多按键情况下,单片机端口不足的解决方法
浅析反驳类报文要点
ATS与列车通信报文分析
基于数据流的结构化功能安全分析方法