针锋相对:主要的反NIDS技术应用介绍

2006-05-22 21:37:04  作者:  来源:安全焦点  文字大小:】【】【

 

 # %u编码,是用来代表Unicode/wide特征字符,但微软IIS web服务器支持这种非标准的web请求编码方式由于%u编码不是标准的编码,IDS系统不能解码%u,所以可以绕过IDS的检测。

  例如:使用下列的编码方式就可以绕过一些NIDS对".ida"的攻击的检测。

  GET /abc.id%u0061 HTTP/1.0

  不过,snort1.8可以检测到这种编码后的攻击,但有一些公司的IDS没注意到这个问题。

  解决办法就是在规则匹配前对URL内容的%u编码进行解码后匹配。

  #unicode编码,主要针对IIS,将URL中的一些特定的字符或字符串(主要是针对一些IDS匹配的规则内容)用unicode编码表示,

  例如:使用下列的编码方式就可以绕过一些NIDS对".ida"的攻击的检测。

  GET /abc.id%c1%01 HTTP/1.0

  snort1.8目前好象不能检测到这种编码后的攻击。采用通配符如"*string*"匹配的很多IDS应该都存在此类问题。

  解决办法就是在规则匹配前对URL内容的unicode编码进行解码后匹配。

  * 斜线问题:包括"/"和"\"。

  # "/" 问题:如果在HTTP的提交的请求中把'/' 转换成 '//',如"/cgi-bin/test.cgi"转换成"//cgi-bin//test.cgi",虽然两个字符串不匹配,但对许多web服务器的解释是一样的。如果把双斜线换成三斜线或更多效果也是一样的。目前有些IDS无法检测到这种类型的请求。

  # "\"问题:Microsoft用'\'来分隔目录,Unix用'/'来分隔,而HTTP RFC规定用'/', Microsoft的web服务器如IIS 会主动把'/' 转换成 '\'。例如发送"/cgi-bin\test.cgi"之类的命令,IIS可以正确识别,但这样IDS就不会匹配"/cgi- bin/test.cgi"了,此法可以逃避一些IDS。

  * 命令问题:许多IDS系统检测时缺


相关文章