入侵检测虚拟引擎技术实现方法

文档序号:7966933阅读:415来源:国知局
专利名称:入侵检测虚拟引擎技术实现方法
技术领域
本发明涉及一种作为网络安全的重要产品之一的网络入侵检测系统(NIDSNetwork Intrusion Detection System)的关键技术——入侵检测虚拟引擎技术(Intrusion Detection Virtual Engine Technology)实现方法,属于计算机网络技术领域。
背景技术
NIDS安装在被保护的网段中,其监听网卡工作在混杂模式下,分析网段中所有的数据包,进行网络安全事件的实时检测和响应。目前在一个大的网络中,不同部门、物理位置或职能单位被保护的网络可能安全要求不同,或者是面临的安全风险不同,需要采用不同的检测策略和响应方式。通常,解决方案一般会采用多个NIDS引擎或者是支持多个监听端口的NIDS引擎。
采用多个NIDS引擎的缺点是产品成本比较高,由于需要安装在多个被保护网络的入口,安装和维护成本也比较高,不便于扩展,并且对于交换机需要做多个端口镜像,在一定程度下会影响网络的性能。同时对于跨接在不同交换机的相同VLAN(Virtual LAN,虚拟局域网)网络中的设备不好部署和监控。
采用支持多个监听端口的NIDS进行入侵检测,一方面不便于扩展被保护的网络,另外一方面对于跨接在不同交换机的相同VLAN网络中的设备也同样不好部署和监控。
为了做到在不增加设备,也不影响网络性能的情况下,针对用户特定部门、地理位置或职能单位的不同的安全需求,实现有针对性的检测和防护,开发了入侵检测虚拟引擎技术,可以在一台入侵检测系统的物理引擎上,虚拟出多个引擎,按照客户网络环境的特殊性,根据VLAN标签(所谓标签,就是在以太网帧中插入的特定标记,称为TAG)信息、IP地址信息或者MAC地址信息进行有规划的、量身定制的分类防护。在每一个虚拟引擎对象上可以执行不同的检测策略集、单独设置安全策略标准,因此可以做到不同的响应方式,从而实现面向对象的入侵检测。

发明内容
本发明的目的是设计一种入侵检测虚拟引擎技术实现方法,它提供一个在入侵检测物理引擎上虚拟多个入侵检测引擎,可以根据保护的对象的安全需求和面临的风险采用不同的入侵检测策略和响应方式。
本发明所述的入侵检测虚拟引擎技术,是在获得网络数据包的基础之上的,根据VLAN标签(TAG)信息、IP地址信息或者MAC地址信息判断属于哪个虚拟引擎,然后根据该虚拟引擎的策略进行检测和响应。
本发明所述的入侵检测虚拟引擎技术是面向对象的入侵检测,把每个虚拟引擎都作为一个对象,该对象包含一定的属性(虚拟引擎作用域,入侵检测策略)和一些方法(虚拟引擎ID识别,入侵检测和事件响应等)。根据定义的虚拟引擎对象,可以设置面向对象的入侵检测策略、并按照该对象定义的策略对检测到的攻击进行相应的响应,从而实现面向对象的入侵检测。该技术实现方法包括如下步骤(1)在入侵检测物理引擎上增加虚拟引擎,定义虚拟引擎作用域。
(2)定义虚拟引擎的入侵检测策略,并下发到相应的虚拟引擎。
(3)入侵检测引擎将收到的入侵检测策略应用到相应的虚拟引擎。
(4)入侵检测引擎对捕获到网络数据包进行虚拟引擎ID识别,找到归属后根据虚拟引擎的策略进行相应的处理和响应。
该入侵检测虚拟引擎技术的先进之处在于1.多种灵活的虚拟引擎作用域划分方式,可以根据VLAN标签信息、IP地址信息或者MAC地址信息进行有规划的、量身定制的分类防护。
2.采用高效的虚拟引擎ID识别算法,适应大流量的网络,而对网络的性能影响比较小。
3.实现面向对象的入侵检测,根据定义的虚拟引擎对象,可以设置面向对象的入侵检测策略,并按照该对象定义的策略对检测到的攻击进行相应的响应。
4.一定程度上降低误报率,如果把虚拟引擎和交换机的配置对应起来,就可以为用户期望的不同环境采用不同的检测策略,有效地提高了检测策略的针对性,减少误报现象。
5.可扩展性好,在不增加物理设备的情况下,可以根据用户的需求增加用于入侵检测的虚拟引擎。
6.便于安装、维护和管理,只需要对物理引擎进行安装和维护,同时可以根据需要停止或者启动虚拟引擎功能,有利于实现集中统一管理。
7.成本投入小,购买一台物理引擎,在增加被保护对象时而不需要增加新设备,减少了购买新设备的成本。


图1入侵检测虚拟引擎实现组成图。
图2入侵检测虚拟引擎技术流程图。
具体实施例方式
实施例1一种入侵检测虚拟引擎技术实现方法含有以下步骤;定义虚拟引擎虚拟引擎是通过虚拟引擎定制向导进行定制的。
定义虚拟引擎主要内容包括虚拟引擎的名称,虚拟引擎的划分类型和范围。
一般,虚拟引擎是根据被保护的对象来进行划分和定义的。虚拟引擎的划分类型包括按照VLAN标签信息进行划分,按照IP地址信息进行划分,按照MAC地址信息进行划分。
VLAN标签划分格式,VLAN标签也就是某个VLAN的标识号(VLAN ID),格式包含VLAN ID列举和VLAN ID范围。其中,VLAN ID列举采用“,”分开,例如1,2,4;VLAN ID范围采用“-”分开,例如6-12。另外,还可以采用两种格式相结合的方式表示VLAN地址信息范围,例如1,2,6,7-12。
IP地址划分格式,包含IP列举和IP范围。其中,IP列举采用“,”分开,例如192.168.1.1,192.168.1.6;IP范围采用“-”分开,例如192.168.1.1-192.168.1.6。另外,还可以采用两种格式相结合的方式表示IP地址信息范围,例如192.168.1.1,192.168.1.2,192.168.1.3-192.168.1.5。
MAC地址划分格式,支持MAC地址列举,由一个或多个MAC地址组成,MAC地址间以“,”分隔,例如000D60FD0588,000D60118CDB,ABCDEF012345。定义检测策略虚拟引擎的入侵检测策略与物理引擎的入侵检测策略基本相同,虚拟引擎的策略定义是根据被保护对象的安全需求和面临的风险进行定义的,定义的内容包括事件匹配规则,响应方式、过滤条件和合并方式等。其中,响应方式包括日志、报警、邮件、RST阻断、SNMP、防火墙联动等;过滤条件包括按源、目的IP地址或者MAC地址过滤等;合并方式包括按源、目的IP合并,按源IP合并,按目的IP合并等。
检测网络入侵NIDS引擎在协议解析过程中会提取出当前数据包的一些重要信息,比如MAC地址、IP地址等信息,如果是基于VLAN的数据,引擎还会提取出对应的VLAN标签信息。引擎根据这些信息来识别当前数据包是属于那一个虚拟引擎。
虚拟引擎ID(标识号,用于识别虚拟引擎的标记)识别主要是一个查表操作。根据当前虚拟引擎的划分类型采用相应的查找算法来获取当前数据包对应的虚拟引擎ID。
如果成功查找到虚拟引擎,则根据归属虚拟引擎的策略对数据包进行检测和响应,并上报特征事件,上报的特征事件中包含虚拟引擎的ID。
涉及到的算法在虚拟引擎的设计中,虚拟引擎ID识别部分对性能要求最高,直接影响着引擎的效率,所以需要为虚拟引擎ID识别部分设计专门的查找算法,以满足引擎千兆线速的需求。
虚拟引擎的划分支持按MAC地址信息、IP地址信息和VLAN标签信息进行划分。不同的划分类型对应不同的查找算法。
IP查找算法由于通过IP地址来划分虚拟引擎同时支持列举和范围定义,所以IP查找算法应对应于两种不同的定义方法来分别实现。
列举IP方式对应的查找算法对于这种方式采用的是哈希(hash)算法。具体做法是用IP地址来作为hash算法的key值,用虚拟引擎ID作为该key值对应的数据,由于key唯一标识一个IP地址,所以在进行hash查找时不需要调用验证函数来验证是否是当前的IP地址。
遇到的一个问题是在hash初始化的时候必须确定hash表所支持的最大项数。解决的方法是在此之前扫描虚拟引擎作用域文件得到一个准确的hash表长度值。
IP范围定义方式对应的查找算法由于虚拟引擎范围划分不能重复,所以可以将IP地址的范围从小到大依次排列填入一张线性表中,通过折半查找的方法来查找一个IP地址。
折半查找如果查找成功说明所查找的IP地址位于IP范围的边界上,如果折半查找失败,即下标high<low,那么就检查该IP地址是否位于high下标对应的IP地址范围中,如果在该范围中即命中,否则该IP不属于任何虚拟引擎的范围。
折半查找如果成功,就提取出对应的虚拟引擎ID,供后续操作使用。
MAC查找算法由于MAC地址分布的无规律性,所以在用MAC地址来划分虚拟引擎时不支持采用范围定义,只支持逐个列举的方式。
同IP地址查找算法一样,MAC地址的查找仍然采用hash算法。一个MAC地址长度为48位,引擎用一个64位的变量来对其进行存储并作为hash查找的key值。该key值能唯一标识一个MAC地址,所以在hash查找时不需要调用验证函数进行验证。
VLAN查找算法VLAN的查找是通过从数据包中提取出来的TAG标记来进行的。TAG采用12位空间来表示,其范围在0到4K-1之间。由于其空间有限,可以将所有的TAG通过其值映射到一个大小为4K的整型数组中去,该整型数组存放着TAG对应的虚拟引擎ID值,任何一个TAG经过一次索引就可以找到其对应的虚拟引擎ID值。
如图1所示,采用入侵检测虚拟引擎技术实现的虚拟引擎模块包含定义虚拟引擎的作用域的虚拟引擎定义单元;用于识别网络数据包的归属的虚拟引擎ID识别单元;根据虚拟引擎策略对数据包进行匹配和检测的虚拟引擎检测单元;对于虚拟引擎的事件进行上报的虚拟引擎事件上报单元。
实施例2一种入侵检测虚拟引擎技术实现方法场景应用举例;例如,企业中的总裁办公室、财务部门、销售部门、普通办公室等不同部门有着不同的安全需求,如果采用同一个入侵检测策略,必然会出现各种问题。如果策略设置得太过严格,势必会使安全敏感度要求不高的部门(比如普通办公室、后勤部门等)不断收到报警,一次次挑战他们的神经,久而久之还会产生“狼来了”的效果,让大家对IDS警报不以为然;反之,如果策略设置的太过简单,虽然非敏感部门不用再忍受频繁的“误报”,但无疑放松了对重要部门(如总裁办公室、财务部门、销售部门等)的数据的检测,把这些敏感度较高的部门置于巨大的危险之中。此外,对于不同部门的检测重点也有很大差别,对于财务部门来说,因为大量使用数据库软件系统,所以对于数据库的检测与防护尤为重要;而对于总裁办公室来说,因涉及到大量高度机密的信息,所以对于黑客的扫描以及可疑木马程序的运行,必需非常敏感;而对于销售部门来说,因为携带笔记本电脑外出办公的情况非常普遍,很容易染上电脑病毒,尤其需要检测和防范的是蠕虫病毒以其为载体,对局域网内部的其他设备发起的攻击。
虚拟引擎应用检测举例例如,某公司有一台WEB服务器(1.1.1.1)、一台邮件服务器(1.1.1.2)、两台数据库服务器(1.1.1.3,1.1.1.4),原有一台入侵检测物理引擎,但需要制定不同的策略分别对三种服务器进行检测和保护。
在原有物理引擎基础上定义三个虚拟引擎对象。第一个虚拟引擎名称为WebVEngine,作用域定义为1.1.1.1;第二个虚拟引擎名称为MailVEngine,作用域定义为1.1.1.2第三个虚拟引擎名称为DBVEngine,作用域定义为1.1.1.3,1.1.1.4。
对虚拟引擎WebVEngine定制有关HTTP服务和WEB服务器操作系统的检测策略并下发,对虚拟引擎MailVEngine定制有关SMTP和POP3的检测策略并下发,对虚拟引擎DBVEngine定制有关数据库检测的策略并下发。
如图2所示,首先,虚拟引擎ID识别单元根据虚拟引擎作用域文件读取虚拟引擎信息并保存在内存中的线性表中。然后,虚拟引擎ID识别单元根据从网络数据包中提取的IP地址信息进行虚拟引擎ID识别。如果虚拟引擎的ID为WebVEngine的ID,那么虚拟引擎检测单元将根据WebVEngine的策略进行事件匹配;如果虚拟引擎的ID为MailVEngine的ID,那么虚拟引擎检测单元将根据MailVEngine的策略进行事件匹配;如果虚拟引擎的ID为DBVEngine的ID,那么虚拟引擎检测单元将根据DBVEngine的策略进行事件匹配。如果事件匹配成功,虚拟引擎事件上报单元将向控制中心上报事件。
权利要求
1.一种入侵检测虚拟引擎技术实现方法,其特征在于把每个虚拟引擎都作为一个对象,该对象包含虚拟引擎作用域、入侵检测策略的属性和虚拟引擎ID识别、入侵检测和事件响应方法,根据定义的虚拟引擎对象,设置面向对象的入侵检测策略,并按照该对象定义的策略对检测到的攻击进行相应的响应,实现面向对象的入侵检测。
2.根据权利要求1所述的一种入侵检测虚拟引擎技术实现方法,其特征在于包括如下步骤(1)在入侵检测物理引擎上增加虚拟引擎,定义虚拟引擎作用域;(2)定义虚拟引擎的入侵检测策略,并下发到相应的虚拟引擎;(3)入侵检测引擎将收到的入侵检测策略应用到相应的虚拟引擎;(4)入侵检测引擎对捕获到网络数据包进行虚拟引擎ID(标识号)识别,找到归属后根据虚拟引擎的策略进行相应的处理和响应。
3.根据权利要求1所述的入侵检测虚拟引擎技术实现方法,其特征在于含有定义虚拟引擎的作用域的虚拟引擎定义单元;用于识别网络数据包的归属的虚拟引擎ID识别单元;根据虚拟引擎策略对数据包进行匹配和检测的虚拟引擎检测单元;对于虚拟引擎的事件进行上报的虚拟引擎事件上报单元。
4.根据权利要求1所述的入侵检测虚拟引擎技术实现方法,其特征在于采用多种方法定义虚拟引擎的作用域,具体包括(1)按VLAN标签信息(也就是VLAN ID)划分虚拟引擎,支持VLANID列举和VLAN ID范围,其中,VLAN ID列举采用“,”分开,VLAN ID范围采用“-”分开,还可以采用上述两种格式相结合的方式表示VLAN ID范围。(2)按IP地址划分虚拟引擎,支持IP地址列举和IP范围,IP列举采用“,”分开,IP范围采用“-”分开,还可以采用上述两种格式相结合的方式表示IP地址信息范围;(3)按MAC地址划分虚拟引擎,支持MAC地址列举格式,由一个或多个MAC地址组成,MAC地址间以“,”分隔。
5.根据权利要求1所述的入侵检测虚拟引擎技术实现方法,其特征在于虚拟引擎ID识别根据MAC、IP或者VLAN划分类型采用不同的高效算法;(1)IP查找算法对于IP列举采用哈希(hash)查找算法,具体做法是用IP地址来作为hash算法的key值,用虚拟引擎ID作为该key值对应的数据;对于IP范围采用线性折半查找算法,具体做法是将IP地址的范围从小到大依次排列填入一张线性表中,通过折半查找的方法来查找一个IP地址;(2)MAC查找算法对于MAC列表采用hash查找算法,具体做法是用一个64位类型的变量来对48位MAC地址进行存储并作为hash查找的key值;(3)VLAN查找算法对于VLAN列表和范围采用TAG标记(VLAN ID)数组查找算法,具体做法是将数据包中提取出来的12位VLAN ID通过其值映射到一个大小为4K的整型数组中去,该整型数组存放着VLAN ID对应的虚拟引擎ID值,任何一个VLAN ID经过一次索引就可以找到其对应的虚拟引擎ID值。
全文摘要
本发明涉及一种作为网络安全的重要产品之一的网络入侵检测系统(NIDSNetwork Intrusion Detection System)的关键技术——入侵检测虚拟引擎技术(Intrusion Detection Virtual Engine Technology)实现方法,特征是在一台入侵检测系统的物理引擎上,虚拟出多个引擎,按照客户网络环境的特殊性,根据VLAN标签(TAG)信息、IP地址信息或者MAC地址信息进行有规划的、量身定制的分类防护。在每一个虚拟引擎对象上可以执行不同的检测策略集、单独设置安全策略标准,因此可以做到不同的响应方式,从而实现面向对象的入侵检测。
文档编号H04L9/32GK1960293SQ200610113429
公开日2007年5月9日 申请日期2006年9月28日 优先权日2006年9月28日
发明者刘剑波, 王洋, 尚振威, 牟宪波, 焦玉峰 申请人:北京启明星辰信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1