荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: hellsolaris (qq), 信区: Security
标  题: IDS欺骗之Fragroute(上)(5)
发信站: 荔园晨风BBS站 (Sat Nov  1 13:05:10 2003), 站内信件

IDS欺骗之Fragroute(上)(5)
作者:nixe0n    文章来源:www.cnsafe.net  2002年07月18日



3.2.网络层问题

  TCP用于在不可靠的网络上为两台主机之间提供有序可靠的数据投递服务。实现其可
靠性传输的基础是序列号和应答号。TCP包头结构如下:


0 15 31
| | |
|--------------------+------------------------|
| source port | destination port |
|---------------------------------------------|
| sequence number |
|---------------------------------------------|
| acknowledge number |
|-------------+------+------------------------|
| data | | code | window |
|offset| | | |
|--------------------+------------------------|
| checksum | urgent pointer |
|--------------------+------------------------|
| option | padding |
|--------------------+------------------------|
/ /
data
/ /
|---------------------------------------------|



图3-2.TCP报文结构

  每个TCP报文由两个部分组成:包头和数据。TCP包头包括如下域:

16字节的源端口和目的端口。

32字节的序列号和应答号。

4位数据偏移,标识包头的打消,单位是4个字节。

6位编码位,确定报文的类型和目的。从左到右依次是:URGENT、ACK、PSH、RST、SYN和
FIN。

2字节的窗口段。标识发送该报文的TCP实体在相反的阐述方向上能够棘手的字节数。

2字节的校验和用于最基本的差错控制。

选项域用于处理其它情况。例如:定义通信过程中的最大报文长度,保护序列号的时间
戳以及用于告诉网络通讯的窗口放大因子等。

填充域用于使包头的大小是4个字节的倍数。

3.2.1.插入垃圾数据

  在前面我们讨论了使用IP协议向IDS插入垃圾数据。由于TCP协议的处理更为复杂,
因此有很多情况可以使系统丢弃收到的TCP报文。如果IDS和受监视的系统使用不同的处
理方式,就可能被攻击者利用,在IDS中插入垃圾数据,干扰IDS的检测。

TCP包头的畸形域

  某些IDS产品虽然支持TCP会话重组,但是如果它们在没有检查就重组TCP会话,就可
能被攻击者利用在检测数据中插入垃圾信息。

  一个容易被忽视的是TCP包头的编码段(code),这六位标志TCP报文的类型和内容。
这些编码位可以进行组合,而某些组合是无效的,例如:把所有的编码位都打开,这些
类型的报文应该被丢弃。而且某些系统不接收没有ACK位的TCP报文。

  另一个经常被忽视的TCP包头域是校验和域。所有的系统都会丢弃校验和错误的TCP
报文,但是某些入侵检测系统却并不检查这个域,从而能够被攻击者利用。

TCP选项

  IDS应该能够处理TCP选项,但是和IP选项不同,TCP选项要复杂的多,而且经常会出
现新的TCP选项。另外一个很难处理TCP选项的原因是某些TCP选项只在某些连接状态下出
现。对于包含坏TCP选项的TCP报文,某些系统会拒绝,而另一些系统会忽略坏TCP选项。
网络入侵检测系统很难判断被监视系统的处理方式,给攻击者以可乘之机。

  RFC1323提出了两个TCP选项(窗口放大和时间戳选项),用于提高高速环境TCP传输的
效率和可靠性。和以前的规定不同,这两个新的选项可能出现在非SYN报文段中。有的TC
P实现会拒绝包括选项的非SYN报文段,而有些系统会忽略这样的选项继续处理。这为IDS
造成了很大的困难,如果IDS不能采取和受监视系统相同的处理方式,就会被攻击者插入
垃圾数据。

  RFC1323定义的另一个概念是PAW(protection against wrapped sequence numbers
,序列号回卷保护)。如果使用窗口放大(window scale)选项,每个TCP连接的窗口最大
可以是65535*2^14,而TCP连接的序列号是32位的,所以很快就会发生序列号回卷。为了
阻止某个序列号为n的报文段,在序列号回卷到n时重新出现,RFC1323提出了PAWS,使用
时间戳避免这种情况的出现。如果一个报文段的时间戳早于某个时间值,就会被丢弃。
攻击者会手工制作低时间戳的报文段干扰入侵检测系统的检测,这类TCP报文段一般会兼
容PAWS系统丢弃。如果IDS不知道被监视系统是否支持PAWS,就会被攻击者插入垃圾数据




--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.44.223]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店