Fragroute原理详细分析
1.简介
2002年3月左右,http://www.monkey.org/~dugsong/发布了一个工具fragroute,在入侵检测
领域引起了相当大的震动。有关fragroute的讨论成了3-4月http://online.securityfocus.
com/和snort邮件列表的一个热点。
fragroute能够截取、修改和重写向外发送的报文,实现大部分在了Secure Networks Inser
tion, Evasion, and Denial of Service: Eluding Network Intrusion Detection中叙述的
IDS欺骗技术,包括IP、TCP层的数据包碎片以及数据包数据重叠等。
2.fragroute和fragrouter
其实,早在1999年5月,Dug Song就发布了一个类似的工具--fragrouter。这个工具是网络入
侵检测系统(NIDS)性能测试套件--nidsbench一个部分,顾名思义,fragrouter是一个具有路
由器功能的应用程序,它能够对攻击者发送的攻击流量进行分片处理之后,向攻击目标转发
。其原理如下所示:
攻击流量 分片之后的攻击流量
+-------+ +------------+ +--------+
| hax0r |------->| fragrouter |- - - - - - - - - - ->| victim |
+-------+ +------------+ | +--------+
V
+------+------+
| network IDS |
+-------------+
如果入侵检测系统不能进行IP和TCP分片重组或者重组功能不太完善,将不能发现针对victi
m攻击。从实现的技术来看,fragroute和fragrouter差不多。和fragroute不同的是,它只处
理本地主机发送到远程主机的数据流量,不支持数据包的转发,因此不会在本地主机打开IP
转发功能。
3.网络层和传输控制层IDS欺骗技术
在介绍fragroute之前,首先要介绍一些fragroute实现的技术,这些技术主要是在网络层和
传输控制层。除此之外,还有一些应用应用层的技术,不过,这儿不多做赘述。更多信息,
可以参考Insertion,Evasion and Denial of Service: Eluding Network Intrusion Detec
tion、IDS Evasion Techniques and Tactics、IDS Evasion with Unicode、 A Look At W
hisker's Anti-IDS Tactics和Polymorphic Shellcodes vs. Application IDSs等文档。
3.1.网络层技术
首先讨论网络层(IP)的IDS欺骗技术。互联网协议(Internet Protocol)提供一种无连接和不
可靠的分组投递服务(RFC791)。它会尽最大努力投递IP分组,但是不能保证分组能够正确地
投递到目的地。为了能够更好地理解本文讨论的IDS欺骗技术,我们先看一下IP分组的结构:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification &nbs