美章网 资料文库 CBF技术的入侵检测系统设计范文

CBF技术的入侵检测系统设计范文

本站小编为你精心准备了CBF技术的入侵检测系统设计参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

CBF技术的入侵检测系统设计

《计算机工程与设计杂志》2014年第七期

1cbf原理

1.1基本的bloomfilter原理BF(bloomfilter)是一种空间效率高的随机数据结构,1970年由HowardBloom提出的。其基本思想是先定义长度为m位的存储空间M。然后定义k个相互独立哈希函数,对于一个具有n个元素的集合X={x1,x2,...xn),对其中的每个元素xi,分别使用k个哈希函数得到值为[0,m-1]的哈希值,根据哈希值的大小,将M中相应位置1。如果一个位已经置1,则不再处理。如图1所示。图中的m=12,n=2,k=3。查询时,待查询元素ri也用k个哈希函数进行运算,如果得到的k个值在M中的相应位置有一个为0则不是集合中的数据;如果全为1表示在一定的误差情况下[9]为集合中的数据。图1中,r1不是集合中的数据,而r2在误差允许范围内属于这个集合。与传统的模式匹配方法相比,基本的BF最大优点是其高效的匹配速度,且与集合的大小无关,而且具有较小的存储空间要求。但是它也具有两个显著的缺点。首先,本的BF不能适应集合中元素减少的情况,在m一定的情况下,不断增加集合元素会导致错误率增加,所以它仅适合静态的集合;其次,无论如何改进,它总会以一定的概率将本来不匹配的元素误判为匹配,尽管可以做得误判率很小,但是不能消除误判的产生。因此,BF是通过牺牲一定的准确性来换取内存空间的节省和匹配效率的提高[10]的方法。在需要精确匹配的场合,还需要借助其他精确匹配算法进行辅助。

1.2改进的CBF原理基本的BF不能减少集合元素,也不能过多的增加集合的元素,仅仅适应静态集合的情况。根据入侵检测系统的要求,特别是其适应性的需要,需要动态增加或者减少集合中元素的集合。因此,需要重点关注BF的各种改进算法。为了适应集合中的元素动态变化,一种称之为计数布隆过滤器(countingbloomfilter)的技术被提出。它将基本BF的每一位扩展为一个计数器,在插入一个元素时,将k个哈希函数计算结果对应的计数器加1;在删除元素时,将对应的计数器减1。通过扩展集合的空间,改进了BF的性能。CBF的例子如图2所示。CBF提供了集合元素的增删能力,对于需要自适应的入侵检测系统来说,为可以动态增加和减少规则集合的数量提供了便利。

2模式匹配引擎设计

本系统所设计的入侵检测系统智能中,可能需要大量的规则或者关键词进行匹配。一般的,入侵检测模式匹配有两个方面的匹配要求:一是行为匹配,主要是对网络报文的IP地址和端口等参数进行匹配;其次是内容匹配,匹配网络报文内容中的关键词或者字符串。在一个分布式系统中,这些要匹配的规则可能随着时间和地点的不同而随时发生变化。为此,我们以CBF技术为基础,经过一定改进适应系统需要。

2.1采用多组CBF组合根据入侵检测的需要,本系统采用多组CBF集合作为模式匹配引擎。主要分为两类,其中一类用于行为匹配,其哈希函数的参数包括4个参数,即源IP和源端口、目的IP和目的端口;另一类用于内容匹配,即专门进行字符串匹配,其哈希函数的参数为字符串。设计多组CBF的目的在于利用不同模式匹配的特点和不同的应用目标,可以更好的设计哈希函数,提高系统的性能。当然,在某些场合,如果只需要行为检测或者内容检测,则可省略多余的CBF集合。

2.2CBF的自动更新对于适应性入侵检测系统而言,根据网络情况变化,更新入侵检测的规则是经常需要的。虽然我们在设计CBF方案的时候,充分考虑了各种因素,且可以动态增删集合中的元素,但是还是有很多极限情况会在系统工作时碰到。根据实际经验,CBF集合在长时间工作过程中,或者误判率会增加,或者占用空间过多浪费,这时需要对CBF重构调整。根据有关研究计算,在CBF集合中,如大于0(有数据)的位置和等于0的位置一样的时候,系统具有最佳效率。当有0的位置太多,表示系统的M空间太大,浪费空间;如果有0的位置太少,将导致系统更严重的误判率,表示M空间不足。因此,本系统根据有关研究结果,规定在CBF中0的个数小于α(默认45%)时或者大于β(默认85%)时,根据集合中的元素重构CBF集合空间。让系统保持最好的工作状态。

2.3可以动态更新的参数对本系统中的CBF引擎来说,其多个参数需要可以改进,以适应不同时期、不同地点的模式匹配策略需要。下面对可能更新的参数及其处理办法进行具体分析。(1)哈希函数及其数量k。为了提高运算速度和散列效果,降低误判率,有时候需要改进哈希算法,因此这两个参数可能偶尔需要更新。这样的更新需要重新建立CBF空间。(2)更改集合n的大小。在少量增删情况下,可以动态增删,当达到前述自动更新要求时,才自动更新CBF空间。在本系统中α、β可以设置更改。(3)一般情况下,CBF总是有一定的误判率,因此需要保存所有的集合元素,先使用CBF实现快速匹配,然后利用传统的算法精确匹配。如前所述,过滤器中CBF集合0的个数增加或者减少到一定程度时,需要重新构造过滤器。重新构造过滤器的过程可以采用本地的匹配规则集合来实现。但是在某些场合不需要精确匹配,容许有匹配误差时,本地可不需要保持精确的匹配规则集合。这时候各个节点仅仅需要从服务器下载最新的整个CBF的M空间的数据,就可以更新匹配规则集合。M空间的数据量远小于精确的匹配规则数据量,可以有效减少网络传输的数据量。

3系统的设计与实现

3.1系统的总体结构本系统的目标是构建一个分布式入侵检测系统,其主要思想是在节点端实现一个智能,所有智能由制管理器进行集中管理。智能主要功能包括分析数据流特征、入侵检测和入侵过滤等,根据所布置的节点类型不同,各智能的功能也不一样。考虑到CBF技术的特点,利用其在流量分类、入侵检测匹配和报文识别过滤等方面具有处理速度快、占用存储小的优势,本系统将其作为智能的主要算法。系统总体结构如图3所示。系统主要由两部分构成,即智能程序和控制管理器。其中智能部署在需要进行入侵检测的部位,比如服务器主机、网关及其他容易检测或者受到攻击的地方,它通过分析流量、入侵检测和报文过滤等手段,实现要求的入侵检测策略。控制管理器是一个集中管理的服务器程序,它实时接收来自各个智能的信息,判断各部署点的入侵情况,并通过人的管理干预来改进不同智能的配置参数,适应网络入侵检测的动态变化。系统的所有信息保存在数据库中,由控制管理器对数据库进行读写操作。下面分别对两部分的设计与实现进行说明。

3.2基于CBF的智能的实现智能工作在需要进行入侵检测的节点处,利用CBF技术进行入侵检测所需要的各项工作。通过网络及时与控制管理器保持网络通信,达到动态报告和及时管理的需要。智能的原理结构如图4所示。在图4中,智能通过报文捕获模块获取报文。然后分别进行流量监测、入侵检测或者报文过滤等功能操作,这些操作根据智能的类型,采用不同的CBF引擎,实现快速匹配。智能通过网络通信模块和控制管理器通信,利用配置管理模块调节各种CBF引擎参数,以适用不同入侵检测节点的需要。为了便于自动升级改进,智能中各个功能模块采用插件设计。在CBF引擎模块中,哈希函数、元素集合及集合空间等都可以根据实际情况的需要而变化。其中,哈希函数采用动态库形式,便于动态更新;而元素集合的少量变化采用CBF动态增减性来实现。如前所述,CBF集合空间变化分为两种情况。一种是各个功能模块(流量监测、入侵检测或者报文过滤)利用保持的元素集合和给出的M空间大小重新构建;另一种是直接使用网络通信模块从控制管理器得到构造好的集合空间。CBF只能进行粗略的判断和匹配,总有误判率存在。对于需要精确匹配的情况,本系统先利用CBF进行初步匹配,然后在相应模块内实现精确匹配计算,如报文过滤模块。这样也可以大大节省匹配运算时间。根据一般经验估计,入侵检测中99%以上是正常报文,采用CBF引擎可进行快速的初步匹配处理。

3.3控制管理器的设计与实现控制管理器采用B/S架构,便于管理用户随时在任何主机上对整个系统进行管理和控制。整个程序分为前后台两部分,后台负责与各智能进行通信,收集各智能的流量监测、匹配量及CBF参数变化等信息,保存在数据库中。前台实现用户管理界面,接收用户控制要求,然后通过后台通信程序送给各个智能执行。图5是控制管理器的结构示意图。根据整个系统功能要求,主要分为7个功能模块。其中控制中心是系统核心控制部件,负责整个管理控制器的调度和管理;升级管理模块结合用户要求及智能的状况,提供CBF引擎的合理参数配置及的处理功能模块升级;管理模块收集信息,呈现给用户,让用户知道各个的工作状况,并进行远程控制;安全管理负责对各个用户、连接进行验证管理;信息分析模块主要对各个智能回送的入侵检测信息进行分析处理,并给用户及时通知;网络通信模块负责与各个智能的通信过程,实现通信协议处理。一个控制管理器往往只能管理数量有限的智能。在一个大型的分布式入侵检测系统中,需要多个控制管理器构造成一个可扩展的分布式管理系统,有关分布式管理系统的内容不是本文关注重点,在此不再阐述。

3.4系统测试与分析本系统采用VS2008作为开发环境,利用C/C++语言实现智能,用C#开发了控制管理器。测试运行环境是在WindowsXP,内存2G,磁盘320G的普通PC机上运行。测试系统利用了开源的snort上的一些组件。为了对比和精确匹配的需要,在智能上还实现了传统的并行哈希(PH)匹配算法。为了便于进行对比,系统在一样的环境下,分别使用了3种匹配方法,即单CBF匹配、单PH匹配、CBF和PH结合的匹配。分别比较内存使用量、CPU占用率和误判率等指标。测试结果见表1。从表1很容易看出,单CBF匹配法占用内存最少,CPU占用率最低,但是存在一定误判率。而PH匹配法则占用了较多的内存和较多的CPU使用率,由于是精确匹配,没有误判。将二者结合后,由CBF进行初级判断,然后由PH进行精确匹配,占用内存最大,但是CPU使用率比纯PH小很多,最重要的是,消除了误判率。因此,在本系统中,需要精确匹配的场合采用混合匹配,允许误差的情况下,采用单CBF匹配,更加有效地利用了CBF的优点。

4结束语

本文分析了布隆过滤器的特点,结合入侵检测系统的需要,实现了采用CBF技术的分布式入侵检测系统。系统充分利用了CBF技术的特点,构造的CBF模式匹配引擎可以动态修改CBF集合的参数,组成多组CBF集合以适应不同检测节点、不同时间的不同攻击类型的需要。配合良好的模块化和动态库设计,让系统能够自动升级和远程配置,以具备更好的适应性。同时,还能根据入侵检测的需要配合传统的准确匹配算法,消除误判率。与一般的入侵检测系统相比,本系统可以灵活配置和动态改进,适合不同入侵检测目标的需要。最重要的是,实现了快速匹配,满足网络速度越来越高的入侵检测功能的需要。

作者:易发胜龚海刚汪海鹰单位:成都学院模式识别与智能信息处理四川省高校重点实验室成都学院信息科学与技术学院电子科技大学计算机学院