网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 论文模板 > 计算机论文 > 正文

入侵检测系统规则分析及其创建研究

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 发布时间: 09/12/17

【摘 要】文章通过实例分析IDS规则提出应该如何完善规则以便降低IDS误报率的方法,最后阐述IDS规则的创建方法。

  【关键词】IDS规则 规则分析 规则创建 误报率

  1 IDS规则实例的分析

  当网站允许恶意代码被插入到一个动态创建的网页中时,跨站脚本攻击就发生了。我们来看一个IDS规则:alert tcp any any -> any any (content:"<SCRIPT>";msg:"WEB-MISC cross site scripting attempt";)

  规则选项content包含了“<SCRIPT>”字符串,正好可以匹配跨站脚本攻击的特征,跨站脚本攻击会触发这个规则。可是许多其他的正常流量也会触发这个规则,IDS根据该规则发出报警从而产生误报。为了避免这种情况的发生就需要修改这个规则使其仅仅在Web流量中触发:

  alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS(content:"<SCRIPT>"; msg:"WEB-MISC cross site scripting attempt";)

  现在,仅在来自Web服务器的相关HTTP会话中检测到〈SCRIPT〉内容时才会触发该规则。当流量开始于一个外部的IP地址($EXTERNAL_NET),并被发送给Web服务器上HTTP服务端口时,该规则才被触发。当正确地标识公司所有的Web服务器和所运行的端口后,跨站脚本规则仅当含有脚本标记的数据流被发送到Web服务器上时才触发。但是,载入这个规则后会发现无论何时有包含JavaScript的请求时都会产生大量的误报。因此需要更进一步地提炼这个规则,找到跨站脚本攻击数据流的唯一特征。

  alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS(msg:"WEB-MISC cross site scripting attempt"; flow:to_server,established;content:"<SCRIPT>";)

  这个校正后的规则使用了flow选项,使用IDS的TCP重建特征来鉴别流量的方向。通过应用特定的flow选项,to_server和established,规则仅仅对从客户端向服务器端发起的会话有效。一个跨站脚本攻击只会发生在这个方向传输的流量上,而反方向上的流量可能是一个包含JavaScript标记的正常的HTTP会话。

  现在规则已经可以识别跨站脚本攻击了,且产生误报的可能性大大减少。接着需要利用大小写敏感性确保攻击者不能躲避该规则。content选项是区分大小写的,然而HTML不是,因此攻击者可以通过将脚本标记修改为<ScRiPt>或<script>避开这个规则,为了弥补这一点,应用nocase选项来指定不区分大小写。

  alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS(msg:"WEB-MISC cross site scripting attempt";flow:to_server,established;content:"<SCRIPT>";nocase;)

  2 IDS规则的编写方法

  2.1利用网络知识创造新规则

  首先需要编写规则头。Web服务器请求响应是一个HTTP数据流,因此规则头的协议部分应使用TCP。要想监控指定的任何外部地址,源地址部分可以使用$EXTERNAL_NET变量。因为我们想让该规则应用于Web服务器请求响应,所以源端口部分应使用$HTTP_PORTS变量来标识与HTTP连接相关的端口列表。如果想监控整个内部网络,目标地址部分应使用$HOME_NET变量。HTTP请求可以使用任何随机选取的高端端口,因此可以将目的端口部分设为any。最后我们希望该规则匹配数据流后报警,那么规则行为部分应设为alert,这样就形成了下面的规则头:alert tcp $EXTERNAL_NET $HTTP_PORTS->$HOME_NET any,接下来指定规则选项。2.2利用流量分析创建新规则

  下面通过创建一个监控OpenSSL Slapper蠕虫的规则的例子进行说明。

  将嗅探器放在一个防火墙后面,防火墙仅仅开放Slapper使用的那个端口。Slapper是利用了OpenSSL中的一个安全漏洞,因此在防火墙中打开端口443/tcp后开始监控服务器,如果一段时间后,服务器发出一个像“no job control in this shell”这样的响应,就说明服务器遭到Slapper攻击了。记录下遭到攻击的时间,然后使用grep对这段时间tcpdump日志记录的数据进行分析。从这个信息中找出一个特征内容赋给规则选项content表达式,并使该特征与IDS规则库中其他规则content表达式内容不同,即是唯一的。这里可以使用content:”export.TERM=xterm; exec bash –i”来创建该特征。

  接着开始写规则头。规则实现的功能应该可以对来自任何外部源、任何端口输入的,目的为Web服务器的HTTPS端口(443),且满足攻击特征的TCP流量进行报警,所以规则头可写为:

  alert tcp $EXTERNAL_NET any->$HOME_SERVERS 443,

  加上报警消息和版本号后,规则选项为:

  (msg:”Slapper attack”;flow:to_server,established;content:”export.TERM=xterm; exec bash –i”;nocase;priority:1;rev:1)

  联接规则头和规则选项,完成规则如下:

  Alert tcp $EXTERNAL_NET any->$HOME_SERVERS 443(msg:”Slapper attack”; flow:to_server,established;content:”export.TERM=xterm; exec bash –i”; nocase; priority:1; rev:1)
  
  至此就完成了监控Slapper蠕虫的规则。显然,利用流量分析的方法创建新规则,其工作重点在于识别含有确切攻击的正确数据包,并从中找出区别于其他攻击的唯一特征。

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 |原创论文 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师