Snort拒绝服务漏洞

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

发现者:Sinbad

公布日期:2002年1月11日

漏洞类型:远程拒绝服务

受影响的版本:

Snort 1.8.3 build 88

测试的平台:

Linux

漏洞分析:

Snort是一个轻量级开放源代码的网络IDS,它包含了丰富的攻击特征库,能够实时检测到网络中的攻击企图和异常情况。

漏洞存在于源代码decode.c中对ICMP协议进行解码的函数DecodeICMP(),作者先从IP数据包中减去ICMP首部长度得出ICMP数据部分的长度:

p-dsize = (u_short)(len - ICMP_HEADER_LEN);

我们注意到,decode.h头文件中定义的ICMP首部长度是8个字节:

#define ICMP_HEADER_LEN 8

看看ICMP数据包的结构图,首部的8个字节包括了Type,Code,Checksum,ID和SEQ。

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

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -

| Type | Code | Checksum | |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 8字节

| ID | SEQ | |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -

| DATA |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

但是,在解析Echo Reply和Echo Request包时又从p-dsize中减去了id号和seq号的长度(4个字节),见下面的代码:

case ICMP_ECHOREPLY:

/* setup the pkt id ans seq numbers */

p-dsize -= sizeof(struct idseq); //这里

p-data += sizeof(struct idseq);

break;

case ICMP_ECHO:

/* setup the pkt id and seq numbers */

p-dsize -= sizeof(struct idseq); //这里

/* add the size of the

* echo ext to the data

* ptr and subtract it

* from the data size */

p-data += sizeof(struct idseq);

break;

没搞错吧,第一此减去8已经是DATA长度了,现在又减去4,这是啥长度?Come on,我给你一个DATA部分小于4的数据包:

# ping -c 1 -s 1 192.168.0.1

看你怎么计算:

# snort -dv host 192.168.0.3 and 192.168.0.1

-* Snort!

Version 1.8.3 (Build 88)

By Martin Roesch (roesch@sourcefire.com, www.snort.org)

192.168.0.3 - 192.168.0.1 ICMP TTL:64 TOS:0x0 ID:0 IpLen:20 DgmLen:29 DF

Type:8 Code:0 ID:9435 Seq:0 ECHO

Segmentation fault (core dumped)

呵,core dumped……

如何修补:

Snort的作者Marty发布了patch,很简单,就把ICMP_HEADER_LEN改成了4,这将包含在build 90版本中:

http://www.securityfocus.com/archive/1/249623

另一哥们chris把第二次减去4的代码给注释了,非拉着我一起发布安全公告:

http://footclan.realwarp.net/index.php?h=foot-20020111

我最初贴在bugtraq上的邮件:

http://www.securityfocus.com/archive/1/249340

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航