抗IP分片逃避技术的设计与实现*

2015-07-10 01:11刘宝超张博锋
计算机工程与科学 2015年2期
关键词:内网分片IP地址

刘宝超,张 怡,张博锋

(国防科学技术大学计算机学院,湖南 长沙 410073)

1 引言

随着信息时代的发展,入侵检测系统面临的形势也是越来越严峻。目前入侵检测系统主要是并行部署在网络上,被动地监视着网络上的流量,通过协议分析器定义的规则检测出可疑活动。针对目前攻击形势的多样化,文献[1]首次通过实例说明了攻击者可以利用NIDS(Network Intrusion Detection System)和目标端主机对特定形式报文的处理策略不同,从而产生不一致行为;另外,还可以通过对NIDS实施DOS攻击,使NIDS不能正常工作,达到逃避入侵检测的目的。最初是由于NIDS缺乏IP分片的重组功能,不能够还原出原始的报文,使得NIDS不能进行正常的过滤和检测。现在的大部分NIDS都具备重组IP分片的功能,但是攻击者通过精心设置TTL构造的报文[2],使得报文在NIDS和终端主机之间被丢弃,之后又重传了内容不同的报文(如图1所示),这样NIDS无法判断对于同一个序列号(SEQ),终端主机到底会接收哪个数据包,除非NIDS能够将所有的情况都列出,才能检测出“root”这种情况。为了能够正确地分析一条流[3],NIDS必须首先判断这条流上的数据包在NIDS上解析是否和终端主机解析一致,为了解决这个问题,NIDS要能够完整地而准确地模仿内网中所有终端主机所采用的策略[4]。此种方法使用了Mapper的网络节点收集部件,Mapper探测内网的拓扑结构和网络节点信息,存储在Host Profile Table的数据库中供NIDS使用,然而随着网络节点的增多,数据库的维护和更新变得困难。

针对上述问题,本文提出了流量预处理引擎TPE(Traffic Preprocess Engine),将流过TPE的可疑流量进行预处理后重新转发,进而达到保证NIDS和终端主机对同一流量的理解和处理的一致性。

Figure 1 Evade NIDS’s detection by changing TTL value图1 利用更改TTL值逃避NIDS检测

2 IP分片逃避技术

2.1 Insertion和Evasion相关研究

物理层一般要限制每次发送的数据帧的最大长度。任何时候IP层接收到一份要发送的数据包时,它要判断向本地哪个接口发送数据,并查询该接口获取MTU(Maximum Transmission Unit),IP把MTU与数据包长度进行比较,如果大于MTU则需要进行分片,其中分片可以发生在原始发送端主机上,也可以发生在中间路由器上,最后在终端主机系统中根据IP报文头部信息进行重组[5]。

IP分片逃避的产生是由于NIDS无法了解内网的网络拓扑结构以及终端主机的操作系统,无法确定终端主机是否收到了流经NIDS的数据包,也不知道达到终端主机的报文是如何被处理的,因此对于通过精心构造的数据包,在NIDS和终端主机之间解析的结果产生了不一致,这就为攻击者构造特定的IP分片、逃避NIDS的检测提供了条件。攻击者一般会构造Insertion和Evasion攻击[1]。

Insertion:一个数据包能够被NIDS接收但是被终端主机拒绝,如图2所示。攻击者通过精心构造一组分片报文,其中“X”分片不会被终端主机接收而会被NIDS捕获,NIDS看到的是“ATXTACK”,终端主机系统看到的是“ATTACK”,这样就可以顺利地逃避NIDS的检测。

Figure 2 Insertion attack图2 Insertion攻击

Evasion:一个数据包能够被终端主机接收但是被NIDS拒绝(如图3所示)。在攻击者的报文分片中的“A”分片能被终端主机接收而被NIDS拒绝,NIDS看到的是“ATTCK”,终端主机系统看到的是“ATTACK”,此种方法也可以逃避NIDS的检测。

Figure 3 Evasion attack图3 Evasion攻击

文献[6]给出了Insertion攻击和Evasion攻击成功的原因:

(1) NIDS缺乏对特定协议全面的分析。比如,攻击者可以利用有些NIDS不能进行IP分片重组逃避检测,然而终端主机系统需要对分片报文重组,因此攻击流量能在终端主机奏效。

(2)NIDS不了解终端主机系统以何种策略处理收到的数据。比如IP分片重叠,不同的系统对重叠区域采用的策略是不同的(如图4所示),这就产生了不一致行为[7]。

Figure 4 Different strategies on fragmentation overlap of different operating systems图4 不同系统对分片重叠的处理策略

(3)NIDS无法了解所监视网络的拓扑结构,无法判断它所监视的数据是否能够到达终端主机。在网络环境下,由于IP分片报文是彼此选择自己的路径进行传送的,不能根据一组报文经过NIDS的先后顺序来确定他们到达终端主机的顺序。另外,由表1可知,即使NIDS对经过的IP分片进行重组,它也无法得知这些分片报文在终端主机还原后的面貌。

Table 1 Illustration of differentstrategy on fragmentation overlap

一般情况下,IP分片负载部分不会重叠,即使是出现了IP分片重叠,此重叠区域的数据也是一致的。因此,TPE对流经的IP分片报文按照预定义策略进行重组,然后TPE将预处理之后的报文发送出去,这样能够保证经过处理后的报文在NIDS和终端主机的解析结果是一致的。原因如下:

①根据NIDS的重组策略还原出了散布在IP分片中的攻击特征;

②TPE的重组策略破坏了散布在IP分片中的攻击特征。从上述两个结果可以看出,不论出现哪种情况,结果都是有利的,经过TPE处理之后的流量,在终端主机和NIDS重组之后将会看到一样的解析结果。

2.2 NIDS和终端产生不一致行为分析

网络中的设备之间是通过网络协议的规则和约束进行通信的,网络的拓扑结构和网络行为是可以通过相应的网络协议表示的[8]。终端主机系统在收到报文之后,按照相应的网络协议规范对报文中的数据格式和各字段含义进行解析,根据解析的内容系统采取相应的行为。

对于特定的字段,如果系统无法识别它的含义,那么攻击者就有可能会置该字段特殊的值,造成不同系统对该字段作不同的解析,所以NIDS在不了解内网的网络结构的情况下,无法判断报文在终端是如何处理的,这就导致了不一致行为的发生。

根据表1中描述的不同系统对IP分片重叠部分的不同处理策略,以及Insertion和Evasion攻击的原理,文献[9]提出了TCP Scrubber,主要是针对TCP分段报文重组的不一致性,文献[6]借鉴了Scrubber的技术,通过分析网络协议的不同实现,对可疑报文进行正常化处理,从而消除了NIDS和终端主机对同一组报文的不同解释。

3 TPE的设计与实现

3.1 TPE的部署位置

如图5所示,TPE是以串接的方式接入到网络链路中,使流经TPE的报文经过处理之后,在NIDS和终端主机的解释是一样的。我们是假设终端主机所属的内网是可信的,目前只考虑由TPE处理由外网流径到内网的数据。

Figure 5 TPE deployment of the network location图5 TPE部署的网络位置

3.2 TPE对IP重叠分片的处理

下面对图6做出详细的说明:

Figure 6 Sketch map of IP overlap fragmentation reassemble图6 IP重叠分片的重组示意图

(1)提取NIDS捕获的分片报文的四元组(源IP地址,目的IP地址,协议号,IP标识)。

(2)由四元组计算index的过程:

①H1=((SIP& 0xFF000000)≫8)|Total_len;

②H2=((DIP& 0xFF000000)≫8)|Checksum;

③H3=H1∧H2;

④SL24=SIP& 0x00FFFFFF;

⑤DL24=DIP& 0x00FFFFFF;

⑥H4=SL24∧DL24;

⑦index=H3∧H4。

对上述字符作出如下说明:

SIP:源IP地址;

Total_len:16 bit的总长度;

H1:源IP地址的高8位和16 bit的总长度组成的一个24位数据;

DIP:目的IP地址;

Checksum:IP头部的16 bit校验和;

H2:目的IP地址的高8位和16 bit协议号组成的一个24位数据;

H3:H1与H2异或的结果;

SL24:源IP地址的低24位;

DL24:目的IP地址的低24位;

index:H3和H4异或的结果。

(3)根据index查找相应IP分片队列,如果没找到,则新建一个分片队列;否则,在已有的分片队列中查找插入的位置,即找到Prev和Next指向的分片。下面是定位Prev和Next的伪代码:

Prev=NULL;

for(Next=queue_head;Next!=NULL;Next=Next→next)

{

if(Next→offset≥Packet→offset)

break;

Prev=Next;

}

(4)通过比较Packet→head与Prev→tail的结果可以看出Packet与Prev是否发生重叠。len=(Prev→tail)-(Packet→head),如果len>0,说明发生了重叠,则需要将分片Packet从头部开始减去len的长度。接下来查看Packet和Next之后的分片是否发生了重叠,通过遍历Next到分片队列的最后一个,如果Packet与某个分片完全重叠,则将该分片从队列中释放掉(如分片i+1);如果Packet只是与某个分片重叠了一部分(如分片i+2),则需要将该分片从头部开始减去重叠的部分。将Packet插入到Prev→tail之后、Next→head之前,这就对重叠的IP分片进行了预处理。

4 测试与评估

4.1 实验设置

本实验使用以下工具:

(1)fragroute[10]。fragroute是一种能够截取、修改和重写报文,并将其发送出去的工具。它是通过使用一个简单的配置规则来实现对发出的报文实施延迟、重复、丢弃、构造分片、重叠、分段等操作。本文使用的是fragroute-1.2。

(2)VMware[11]。VMware是一款虚拟化平台,本实验需要三个VMware,VMware(a)用fragroute构造IP重叠分片报文攻击另外两台VMware(b)、VMware(c),其中VMware(b)配备NIDS和TPE;VMware(c)配备了NIDS。Linux使用的系统版本是2.6.35.6。

(3)snort[12]。snort是一款入侵检测系统,就是本实验的NIDS。本实验使用的是snort-2.9.4.5。

4.2 TPE功能测试

VMware(a)使用fragroute构造三个IP分片报文(如图7所示),依次发送到VMware(b),这三个分片分别携带24字节(8字节UDP首部+16字节的‘a’)、16字节‘b’以及8字节的‘d’,作为payload,这个分片的偏移量分别为0、16和16。TPE处理之后的重叠IP分片如图8所示。

Figure 7 Overlap IP fragmentation1 before TPE handling图7 TPE处理之前的重叠IP分片1

Figure 8 Overlap IP fragmentation1 after TPE handling图8 TPE处理之后的重叠IP分片1

Figure 9 Overlap IP fragmentation2 before TPE handling图9 TPE处理之前的重叠IP分片2

Figure 10 Overlap IP fragmentation2 after TPE handling图10 TPE处理之后的重叠IP分片2

现在将上述三个分片的偏移量分别改为0,16和24(如图9所示)。TPE处理之后的重叠IP分片如图10所示。

两次通过fragroute构造的IP分片报文,第一次偏移量分别为0、16和16,第二次偏移量分别为0、16和24,构造不同的IP分片重叠,上述实验表明,TPE能够根据预定的规则对不同重叠的IP分片报文进行重组,实现了TPE功能的完整性。

4.3 TPE性能测试

如图11所示的实验结果表明,增加了TPE处理之后,NIDS可以检测到所有的IP分片并将其重组,能够抗击90%以上IP分片逃避,并且网络延迟在所能接受的范围之内,对整个网络不会造成太大的影响。从实验数据中还可以发现,当发送的数据包速率太大时,NIDS就会出现部分丢包,丢包率在1%左右,这个缺陷跟NIDS的处理能力是有关系,可以通过采用专用的多核多线程网络处理器的并行化[13]处理措施加以改进。

Figure 11 TPE performance test图11 TPE性能测试

5 结束语

本文主要讨论了利用IP分片和TCP重传机制技术逃避NIDS的检测,以及对国内外关于逃避入侵检测系统攻击的相关研究。将逃避NIDS检测的攻击形式总结为Insertion和Evasion两种形式,说明了Insertion和Evasion两种形式能够成功逃避NIDS是利用入侵检测系统对内网中的拓扑结构不了解,最终在NIDS和终端主机之间产生不一致行为造成的,同时指出采用TPE技术可以有效地抵御IP分片攻击。

下一步工作要考虑如果攻击者利用DOS攻击,耗尽TPE的所有资源以至于不能正常工作,攻击者还是可以顺利地逃避检测;另外,TPE是串接在链路中,因此会存在一定的延迟,因此下一步将研究如何提高TPE自身的安全防护和尽可能地减小TPE对网络延迟的影响。

[1] Ptacek T H, Newsham T N. Insertion, evasion, and denial of service:Eluding network intrusion detection, secure networks[R].Information Assurance Technology Analysis Center, Secure Networks Inc, 1998.

[2] Cheng Ting-huan,Lin Ying-dar.Evasion techinques:Sneaking through your intrusion dectection/prevention system[J]. Communication Surveys & Tutorials,2012,14(4):1011-1020.

[3] Wang Ming-zhen, Zhao Guo-hong, Tang Yong. Technology research of efficient flow management based on multi-core network processor[J].Journal of Chinese Computer System, 2012,33(12):2591-2594.(in Chinese)

[4] Fraleigh C,Moon S,Lyles B,et al.Packet-level traffic measurements from the sprint IP backbone[J]. IEEE Network, 2003, 17(6):6-16.

[5] Shankar U, Paxson V. Active mapping:Resisting NIDS evasion without altering traffic[C]∥Proc of IEEE Symposium on Security & Privacy, 2003:44-61.

[6] Stevens W R. TCP/IP illustrated volume 1:The protocols[M]. Fan Jian-hua, Xu Guang-hui, Zhang Tao, et al. translation.Beijing:China Machine Press,2000.

[7] Handley M,Paxson V.Network intrusion detection:Evasion, traffic normalization, and end-to-end protocol semantics[C]∥Proc of the 10th USENIX Security Symposium, 2001.

[8] Watson D, Smart M, Malan G R. Protocol scrubbing:Network security through transparent flow modification[J]. IEEE/ACM Transactions on Networking, 2004,12(2):261-273.

[9] Vutukuru M, Balakrishnan H, Paxson V. Efficient and robust TCP stream normalization[C]∥IEEE Computer Society, 2008:96-110.

[10] Zhang Jian-yu, Zhou Yuan, Zou Wei. PaSeM:Parallel and conflict-free network traffic session management[J].Chinese Journal of Computers, 2010,33(7):1195-1212.(in Chinese)

[11] www.monkey.org/~dugsong/fragroute.

[12] http://www.vmware. com.

[13] Vigna G. A topological characterization of TCP/IP security[C]∥Proc of the 12th International FME Symposium, 2003:914-940.

[14] http://www.snort.org/snort-downloads.

附中文参考文献:

[3] 王明贞,赵国鸿,唐勇.基于多核网络处理器的高效流管理技术研究[D].小型微型计算机系统,2012,33(12):2591-2594.

[6] Stevens W R. TCP/IP详解:卷1协议[M].范建华,胥光辉,张涛,等译.北京:机械工业出版社,2000.

[10] 张建宇,周渊,邹维.PaSeM:并行无冲突的网络流量会话管理[J].计算机学报, 2010, 33(7):1195-1212.

猜你喜欢
内网分片IP地址
上下分片與詞的時空佈局
分片光滑边值问题的再生核方法
CDN存量MP4视频播放优化方法
铁路远动系统几种组网方式IP地址的申请和设置
基于模糊二分查找的帧分片算法设计与实现
IP地址切换器(IPCFG)
基于SNMP的IP地址管理系统开发与应用
企业内网中的数据隔离与交换技术探索
公安网络中IP地址智能管理的研究与思考
地下车库柱网布置设计思路