网络安全 频道

NetEye IPS的多层应用规则架构

这几年的安全日益严峻,这说明了安全解决方案并没有把注意力放到解决内容层面,最常见的就是防火墙,实际上主要原则就是对控制列表进行决策,现在企业的系统中为了保证正常运行正常的应用都是开放的,像80端口等等都是开放的,如果攻击者直接利用这个断口进行攻击,防火墙是没有用的。另外大家喊的很热的就是IDS,虽然也是工作在网络层,但引入了一些攻击的识别技术,不需要管理员自己设定。但IDS也有一些问题,攻击者可以有意的让用户多看到一些包,这些包在被攻击的主机上可能是看不到的,IDS如果对这些错误并没有充分的理解,实际上他看到的东西跟对方主机看到的东西是不一样的。另外IDS发现攻击并且试图阻断攻击的时候往往攻击在这时候已经成功了。另外IDS是利用攻击签名来判断的,我是2002年到IDS攻击领域的,我们对比了几十种攻击的类型,实际上IDS复杂度用文法的语言来描述实际上是很高维的文法,有很多攻击本质的特征是无法做到的,实际上采取的是一种偷工减料的方式理解安全的,我觉得这才是IDS这几年一直被大家所不啻真正的原因。现在也有很多自动化的工具,即使使用的是自动化的工具再把发过来的包进行转换之后IDS实际也是很难识别的。

  为了解决这样一系列的问题,我们制造了NetEye IPS,并且在它的内部实现了一个多层应用规则架构,我们不敢说百分之百就把安全问题全部解决掉,但试图在这个方向作出一个直面攻击本质的尝试。刚才虽然说防火墙有很多问题,但是防火墙并不是完全无用的,我们推荐的部署方式实际上还是防火墙跟IPS联合的方式,可能会取得比较好的效果。防火墙对未开放的服务会做到很好的控制,并不占用过多的资源。协议应用直接针对应用的部分,只有合法的才会通过IDS。

  下面讲一下技术一点方面的东西,NetEye IPS的多层应用规则架构实现的思路。首先看到的还是网络数据包,协议分析是基于东软的流过滤的协议分析,关于这件事情在这里就不细谈了。协议只是针对于以协议命令为单位的,最终形成的结果就是一个协议事件,这个工作从IDS的角度说做了一个检测,实际上这还停留在分析的层面上。攻击检测显然不是只停留在这个层面就可以做到的。为了做到语法分析我们就引入了NEL(攻击规则的描述语言),NEL有很多特点,在这张图中我要介绍的特点主要是层次化的结构,NEL定义了这样一种新的范畴,实际这就是人工智能推理的引擎,使用NEL就可以定义多层的,为什么把协议异常检测放在最前面呢,检测规则实际上是根据各个层面RRC检测的,总是在有限的时间内对RRC进行分析,以致知道什么是正常的、什么是违规的,即使你不知道攻击的各种底细,但只是违反了RRC通过协议异常都可以把它检测出来,这就实现了检测异常的高性价比。第二层我们引用了漏洞检测规则,第三个签名规则只是具体某个漏洞被报告出来产生一个脚本,这个脚本中有一些特定的特征,针对这些特征进行检测。实际上签名规则的一个特点就是,检测的特征只是生产这个脚本作者的名字,跟攻击发生没有直接应有的关系,只是一个偶然的连接。像抢银行的大部分都是戴着墨镜,但你不能说他戴着墨镜进入银行就是要抢银行。而漏洞规则不是这样,漏洞被公开之后,这里有个安全攻防小组,对漏洞进行了本质的分析,它就知道一个攻击人员要使用这种漏洞必须满足的特征是什么,把这个东西抽象化了,而且用强有力的描述语言把它描述出来。

  第四个层面是用户自定义的规则,这是由管理员来制订的。主要是想充分挖掘一下用户应用系统中的环境信息,环境信息有的时候对攻击的检测是有很大帮助的。通过环境信息实际上员可以定义出主动防御的解决方案,会大大提高攻击检测的准确性。不管是协议异常漏洞检测规则、签名检测规则还是用户自定义规则,四个层面都有自己的规则,这个规则都是事先制订好的,这也是安全界经常遇到的问题,我们发现很多情况下你都无法在有限的条件下定义什么叫正常什么叫攻击,这种情况我们也经过了多年的探索、参考了国外先进的技术提出了一种启发式的检测规则,既不需要厂家也不需要管理员,使用的实际上是一个历史的信息判断刚才的流量是不是攻击,我们发现这种规则对很多攻击有非常好的检测效果。

  下面举几个例子来简单介绍一下这五个层次的检测规则。协议异常检测规则,比如根据RFC 2821,在一个正常的SMTP连接过程中,只有在客户端至少发送过一个“RCPT TO”请求命令之后,客户端发送“DATA”请求命令才是合法的。据此,NetEye IPS可以通过记录SMTP连接中客户端是否发送过“RCPT TO”请求命令的状态,阻挡住所有不符合SMPT协议标准交互过程的“DATA”请求命令,同时也将所有利用直接发送“DATA”请求命令进行的攻击阻拦下来。NetEye IPS还可以通过检查协议状态转换过程中的命令携带参数的异常来有效检测和抵御网络攻击,并可以设置详细的过滤开关。比如,对HTTP协议就可以通过开关控制对待定的协议元素做到过滤,比如请求行、首部、实体等。攻击者会想给你发一个DATA看看会怎么样呢,或者发一些垃圾邮件,就会跳过防火墙黑名单的检测。实际上NetEye IPS真正做到了基于协议、应用的状态间,可以把这些事件、应用记载下来,有的时候我们是使用简单的变量记载这些,有的时候是通过描述多个时间的发生,把这些保留在站中。NEL可以详细检查协议中各种各样的参数,对协议进行各种各样的过滤。

  协议异常检测规则,我们在开发实践中发现,超过1024的长度是非常常见的,当攻击者试图在URL中填充一个超长的shellcode或者NOP指令时,将会被这条协议异常检测规则发现并阻断。那么这条NEL规则规定了URL的最大长度为1024。

  基于漏洞检测规则是如何做到缓冲区溢出检测的,对HTTP协议来说,URL请求应该为可阅读的文本,我们发现这样一个规律,对于有这种特性的文本恰好被x86机器指令代码识别出具有shellcode特征的代码,则该请求很有可能包含缓冲区溢出代码,这样即使NetEye IPS无法判断攻击者针对什么漏洞进行的攻击,也可以发现、并阻止该攻击。我们可以做一个更高的判断,把这段代码拿出来看看里面到底是什么。为什么管这种检测方式叫“漏洞检测”呢,实际上这个函数并不是基于x86做的,以后还会对应其它的平台,实际上检测的是其中的一段指令,并不是试图看指令里面完整的语义,我们就是检测它是不是一段x86代码,这样我觉得有点小题大作,这样做的结果会使效率大大的降低,实际上我们没有必要看每一段URL是做某件事的。通过这样的权衡这个函数实际上是以技能比较高的来执行,同时也可以检测出其中是否带有其它代码,所以我们管它叫漏洞检测规则,事实证明这个规则效果非常好。

0
相关文章