2、IDS漏报
和IDS误报相比,漏报其实更有危险性。要IDS干什么呀,还不是有入侵就产生告警。如果入侵者入侵成功而让IDS不告警,则IDS就是摆设了。phrack magamine的54-10文章:《Defeating Sniffers and Intrusion Detection Systems》对利用tcp连接的特点让IDS做漏报进行了详细的描述。并且给出了一些实现。这实际上给我们提供了一种思路。就是IDS想要防止欺骗,就要尽可能的模仿tcp/ip栈的实现。但是从效率和实现的复杂性考虑,IDS是不能做到完全模仿的,所以我们只有思考tcp/ip的实现什么难做,那IDS估计就没有实现。我们就可以通过这个告诉IDS这不是一个连接,但是对服务器来说,是一个连接,正常处理。这样攻击就可以逃脱IDS的监视了。
这种方法适合那些智能的IDS,好的IDS一般为了减少误报,会象现在一些高端的防火墙一样基于状态进行判断,而不是根据单个的报文。这样上面的stick实际上对这种IDS就不起作用了。对基于单个报文的IDS来说,反而不会受到phrack magamine的54-10文章所描述方法的影响。但是考虑一下这种简单的IDS只是字符串匹配,匹配上就报警。攻击者可以控制自己所发送的字符串,让能够报警的字符分在两个数据包中发送。因为tcp的连接是流格式的,所以数据在几个报文中发送对连接来说是没有影响的。但是IDS可是被欺骗过了。
今年四月,又出了一个让IDS漏报的程序ADMmutate,据说是可以动态改变shellcode,溢出程序经它一改,就可以摇身一变,本来IDS依靠提取公开的溢出程序的特征码来报警。特征码变了后IDS就报不出来了。但是程序还一样起作用,服务器一样被黑。这个程序的作者是k2(www.ktwo.ca)他的主页上有下载:
http://www.ktwo.ca/c/ADMmutate-0.7.3.tar.gz
这个程序只能对依靠检查字符串匹配告警的IDS起作用,如果IDS还依靠长度呀,可打印字符呀等等综合判断,则ADMmutate还是不能逃脱IDS的监控。这里有k2在在www.securityfocus.com的focus-IDS邮件列表中对目前IDS检测shellcode的手段的一些看法:
Just to straighten some things out. I have tested ISS RealSecure 5,fully updated, it can detect suspicious packets with respect to protocols that it understands (FTP/POP/IMAP) as overly long commands (eg. USER AAAA[1024]). However for many other protocols that this luxury is not present (HTTP/RPC/DNS), RealSecure can definitely NOT detect polymorphic shellcode. I have put it through some testing and have found that it most definitely is vulnerable to these techniques.
This feature of detecting suspicious packets is also implemented in Dragon off the shelf, and I believe on the road map for snort. However, for protocols where a simple length calculation cannot be used to determine the hostile intent of some data, detection is not currently possible
IDS的实现总是在漏报和误报中徘徊,漏报率降低了,误报率就会提高,同样误报率降低了,漏报率就会提高。产品一般会在两者中取一个折中,并且要能进行调整以适应不同的网络环境。
共4页: 上一页 [1] [2] 3 [4] 下一页
|