从性能、效率、检测率、误报率等各方面看,使用协议分析的入侵检测系统比起使用简单模式匹配的入侵检测系统有着较大的优势。下面我们就以HTTP协议为例,结合KIDS(金诺网安入侵检测系统)中使用的HTTP分析器,对这两种方法进行比较说明。
GET/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dirHTTP/1.0
一个针对IIS的Unicode攻击的第一步一般是通过浏览器送出类似下面这样一个HTTP请求:
TCPdport:80;content:“%c1%1c”/i;alert:“IISUnicodeDirectoryTraversal”
TCPdport:80;content:“cmd.exe”/i;alert:“Attempttoexecutecmd”
使用模式匹配的入侵检测系统会使用类似于下面的规则进行检测:
第一条规则表示,如果检测到一个TCP包发向80端口,并且其中含有字符串“%c1%1c”,系统就发出报警“IISUnicodeTraversal”;第二条规则表示,如果检测到一个TCP包发向80端口,并且其中含有字符串“cmd.exe”(忽略大小写),系统就发出报警“Attempttoexecutecmd”。
抛开实现上的优化等问题,这样一个系统有着下面两个严重缺陷:
●误报 这个方法不考虑TCP连接是否已建立,也不考虑匹配字串会不会可能是合法数据的一部分。特别是后一情况尤为严重。拿换码序列“%c1%1c”来说,它完全可以是Cookie或GET/POST数据中的合法成员。
●漏报 这一检测方法要求匹配字串出现在同一数据包中,攻击者完全可以使用多个数据包来实施这一攻击。使用Telnet目标主机80,然后直接在命令行上输入上面的HTTP请求并加上两个回车,就可以发出攻击,而这样的攻击可能使用了多至64个数据包。攻击者也可以对“cmd.exe”进行换码处理——如使用“%63md.exe”,上面的第二条检测规则就完全没用了。
KIDS中的HTTP分析器恰恰是针对这两个缺陷设计的。它具有以下特点:
●使用插件方式运行时动态载入 如果不需要对HTTP进行监测,可以不加载HTTP分析器以节省网络传感器的内存开销。
●KIDS引擎的TCP流重组能力:可对分散在多个数据包中的HTTP请求进行分析处理。
●完整获取整个HTTP请求:可对请求超长(可能为缓冲区溢出攻击)进行判断,即使一个HTTP请求跨越了多个TCP包。
●完整分析HTTP0.9、HTTP1.0和HTTP1.1协议:可对一个HTTP连接中的多个HTTP请求分别进行分析处理。
●可对向代理服务器发出的HTTP请求进行分析处理。
●把HTTP请求分解为方法、主机、路径、查询字串等部分分别进行分析处理。对路径部分会进行解码处理,并对解码前后的路径分别进行检验。
HTTP分析器里的规则是以XML的方式分层进行组织。我们主要关心的HTTP方法是“GET”、“HEAD”和“POST”,所以我们在Method中对此进行了规定;这意味着,我们只对这三种类型之一的完整HTTP请求进行分析处理。HTTP及其代理的常用端口80、3128和8080在network部分用port标签进行了规定。rules部分中的host可规定禁止访问的网站(以域名形式)。path部分规定了如何对解码前的路径进行检验,而path_decoded部分规定了如何对解码后的路径进行检验。对于包含“%63md.exe”的路径,HTTP分析器解码后会先得到“cmd.exe”,然后很容易就能在规则中匹配到,并产生编号为1056的事件。HTTP分析器会把事件号和相关信息以统一的格式递交给响应模块做下一步处理。
综上所述,KIDS中的HTTP分析器以独立的检测器模块方式工作,对HTTP请求进行分析处理,能够更可靠、更有效地对通过HTTP协议发起的攻击进行检测。显然,以模块化的方式对高层协议进行分析处理,将是未来入侵检测的方向。
分享到:
相关推荐
此次编程实现简单的TCP协议分析器,TCP协议分析器是一种用于监督和跟踪网络活动的诊断工具,它从局域网中抓取IP数据包,并对它进行分析得到相应的头部信息,过滤TCP包进行分析,得到TCP包的相应信息。
网络协议仿真编辑器 对协议进行分析 对初学者有很大帮助,
VC++ 的协议分析器,基于winpcap,文档充足,能够有效抓取包,可以直接当作业上交
http协议分析器,用VC写的,用到了winpcap
HTTP协议分析器 vc++代码
协议分析器程序的源码,内含源程序和说明文档。
简易协议分析器
网络协议分析题库
计算机网络课程设计IP协议分析器,希望对大家有用
DNS 域名服务协议分析实验,主要是利用实验进行DNS域名服务协议的分析,获取数据结果,进行协议分析。
湘潭大学 网络协议TCP/IP实验七 HTTP 协议分析实验报告,仅供参考
这是我的毕业设计,通过Winpcap捕获网络原始数据包,根据网络协议分析数据包首部信息,并将解析结果显示到MFC界面上,使用了Winpcap强大的数据包过滤引擎,可以根据过滤规则准确的捕获特定的数据包。
安徽大学 网络协议分析 重点总结
网络协议分析,包括HTTP,TCP,UDP,IP,ICMP,等协议的分析
计算机网络课程设计作品---网络协议编辑器和网络协议分析器,使用python编程编写
安全协议分析器 c++ 基于ban逻辑的安全协议分析器
Ping命令的主要作用是通过发送数据包并接收应答信息来检测两台计算机之间的网络是否连通。 (3) ICMP属于网络层协议,主要用于在主机与路由器之间传递控制信息,主要的用途是差错报告。Ping命令使用的ICMP协议中的...
网络协议分析器,网络课程设计资料,MAC帧头、IP\TCP\ARP\UDP以及数据部分分析
广州大学 计算机网络实验3 使用网络协议分析器捕捉和分析协议数据包 2020版本,使用网络协议分析器捕捉和分析协议数据包 2020版本,使用网络协议分析器捕捉和分析协议数据包 2020版本