关于一个国外的基于异常的入侵检测…

来源:互联网 发布:网络论坛系统cms 编辑:程序博客网 时间:2024/05/16 04:48
       前段时间一直在学习入侵检测方面的知识,主要方向是把机器学习入侵检测结合起来,虽然学术研究已经差不多有十年了,但是真正实用的系统却没有多少,经过别人介绍和自己去查找就基本确定了SuStorID这个系统。目前看来这系统还不错,也存在很多缺点。下面就一一道来。
      入侵检测目前基本分为两大类,一类是基于规则的入侵检测,还有一类是基于异常的入侵检测。基于规则目前技术已经相当成熟,出现了很多成熟的商用的产品,像Modsecurity这种IDS已经被广泛地使用,这种基于规则的入侵检测系统的原理和杀毒软件相似,首先,提取攻击特征,然后将特征加入到特征库,最后当有新的攻击到来的时候就去特征库进行匹配,匹配成功则为攻击,否则判定为正常请求。这种基于规则的入侵检测系统同样和杀毒软件一样存在一定的滞后性,就是只有在该攻击被人发现提取特征之后才可以针对相对应的攻击;这种基于规则的IDS也有一定的优势,就是误报率低,只要说某条请求是攻击就基本可以确定。
      由于基于规则具有一定滞后性,加上近几年机器学习迎来了它的第二春。基于异常的IDS应运而生,基于这方面的研究十多年前就已经开始,但是在工业界普遍落后学术界的真理影响下,目前成熟的被广泛应用的基于异常的IDS还没有,本文所讲的SuStorID这个系统也只是一个原型系统,也没有使用在实际的生产和实践中。由于其是开源的,所以通过研究它可以学习到很多相关方面的知识。
      废话有点多,下面进入正题吧!SuStorID系统是一个基于机器学习的入侵检测系统,它是有意大利卡利亚里大学的一个团队开发的,SuStorID项目主页是:http://comsec.diee.unica.it/sustorid/  。它采用python作为后台处理语言,使用Django框架作为系统的前端。由于SuStorID系统并不能进入服务器内部,而Modsecurity这样的防火墙却能够做这些事情,所以他们将Modsecurity这个网络防火墙进行定制,在Modsecurity的一些关键钩子函数里面加入了部分代码,当有新的请求到来的时候,该请求会转发到SuStorID这边,同时SuStorID系统检测的结果也返回给Modsecurity,由Modsecurity来执行想对应的动作。由此可知,SuStorID系统只负责检测相关的任务,Modsecurity则负责转发请求、接受结果和执行返回动作。Modsecurity不是我们的重点,它也是个开源的系统,感兴趣的可以去它的主页:http://www.modsecurity.org/ 。下面我们来分析SuStorID内部的机制。
      Modsecurity以HTTP请求的方式请求SuStorID下面的/post_api/ 界面,post_api函数则负责将该条请求写入数据库并分拆请求,调用对应的分析函数进行分析,为分析得到的异常设置对应的异常处理模版,返回处理结果 这四个部分。最关键的是第二部份,因为涉及不同的机器学习算法,所以调用了不同的分析函数,正如论文中所说,该系统基本采用了三种算法:统计、分布和隐马尔可夫模型。前面两种很简单,只是简单地计数或者得到一个类似于正太分布的函数,虽然简单但是对于一些检测,这写简单的模型就够用了,隐马尔可夫模型则是较复杂的机器学习算法,系统中调用的是别人写的算法,并不是自己实现的。根据对HTTP请求的分拆项的特点选择不同的机器学习算法,其具体映射关系在这里就不多讲了。至于系统的学习过程在learn函数里面实现,也是根据不同的分拆项选择不同机器学习算法的学习函数,学习后建立模型,设定阀值用于检测。
      SuStorID系统是一个不错的系统,漏报率和误报率都很低。但是由于其过多的写数据库操作,拖慢了整个系统的处理速度,如果投入实际使用还需要对其进行优化。简介就先这样吧。
原创粉丝点击