一种入侵防御系统的引擎检测数据更新方法及装置制造方法

文档序号:6621932阅读:189来源:国知局
一种入侵防御系统的引擎检测数据更新方法及装置制造方法
【专利摘要】本发明公开了一种入侵防御系统的引擎检测数据更新方法及装置,属于计算机网络通信安全领域,所述方法包括:对入侵防御系统更新后的规则库进行解析,在内存中生成新的引擎检测数据;将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据,使得检测引擎采用所述新的引擎检测数据。本发明先在内存中生成新的引擎检测数据,然后直接将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据,便可实现通过检测引擎的报文所采用的是新的引擎检测数据,从而实现了引擎检测数据更新的无缝切换,避免了入侵防御系统的引擎检测数据更新过程中需要暂停报文通过检测引擎,从而有效防止病毒攻击。
【专利说明】一种入侵防御系统的引擎检测数据更新方法及装置

【技术领域】
[0001]本发明属于计算机网络通信安全领域,尤其涉及一种入侵防御系统的引擎检测数据更新方法及装置。

【背景技术】
[0002]随着电脑的广泛应用和网络的不断普及,来自网络内部和外部的危险和犯罪也日益增多。如今,不仅病毒数量剧增,质量提高,而且通过网络快速传播,在短短的几小时内就能传遍全世界。有的病毒还会在传播过程中改变形态,使防毒软件失效。传统防火墙加入侵检测系统(Intrus1n Detect1n Systems,简称IDS)的技术已经无法应对一些新的网络威胁。在这种情况下,入侵防御系统(Intrus1n Prevent1n System,简称IPS)技术应运而生,IPS可以深度感知并主动检测流经该IPS的报文,对恶意报文进行丢弃以阻断攻击,对滥用报文进行限流以保护网络带宽资源。
[0003]入侵防御系统主要有两个部分组成:检测引擎和规则库,前者是报文深度检测的框架流程,后者被解析加载生成引擎检测数据,作为插件嵌入检测引擎中。入侵防御系统的攻击事件识别率取决于规则库的完备性,规则库根据新漏洞的出现需要不定期更新升级。目前的入侵防护系统在引擎检测数据更新时,需要在入侵防御系统的引擎检测数据更新过程中暂停报文通过检测引擎,等引擎检测数据更新完成后,再开启引擎检测功能,这将使设备在这段时间处于无防御状态,有可能在引擎检测数据更新期间放过攻击事件,造成入侵攻击。


【发明内容】

[0004]为解决入侵防御系统的引擎检测数据更新过程中需要暂停报文通过检测引擎有可能造成病毒攻击的问题,本发明提供了一种入侵防御系统的引擎检测数据更新方法,所述方法包括:
[0005]对入侵防御系统更新后的规则库进行解析,在内存中生成新的引擎检测数据;
[0006]将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据,使得检测弓I擎采用所述新的引擎检测数据。
[0007]其中,将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据后,还包括:
[0008]释放所述原弓I擎检测数据。
[0009]其中,将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据后,还包括:
[0010]先等待预设时间,再释放所述原引擎检测数据。
[0011]其中,在内存中生成新的引擎检测数据后,还包括:
[0012]通过第一指针指向所述新的引擎检测数据;
[0013]将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据具体包括:
[0014]将所述第一指针的值赋给所述全局指针。
[0015]其中,将所述第一指针的值赋给所述全局指针前,还包括:
[0016]将所述全局指针的值赋给第二指针;
[0017]释放所述原引擎检测数据具体包括:
[0018]释放所述第二指针所指向地址中的数据。
[0019]本发明还公开了一种入侵防御系统的引擎检测数据更新装置,所述装置包括:
[0020]解析生成模块,用于对入侵防御系统更新后的规则库进行解析,在内存中生成新的引擎检测数据;
[0021]指向修改模块,用于将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据,使得检测弓I擎采用所述新的引擎检测数据。
[0022]其中,所述指向修改模块,还用于释放所述原弓I擎检测数据。
[0023]其中,所述指向修改模块,还用于先等待预设时间,再释放所述原引擎检测数据。
[0024]其中,所述解析生成模块,还用于通过第一指针指向所述新的引擎检测数据;
[0025]所述指向修改模块包括:
[0026]指针赋值子模块,用于将所述第一指针的值赋给所述全局指针。
[0027]其中,所述解析生成模块,还用于将所述全局指针的值赋给第二指针;
[0028]所述指向修改模块包括:
[0029]地址释放子模块,用于释放所述第二指针所指向地址中的数据。
[0030]本发明先在内存中生成新的引擎检测数据,然后直接将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据,便可实现通过检测引擎的报文所采用的是新的引擎检测数据,从而实现了引擎检测数据更新的无缝切换,避免了入侵防御系统的引擎检测数据更新过程中需要暂停报文通过检测引擎,从而有效防止病毒攻击。

【专利附图】

【附图说明】
[0031]通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
[0032]图1是本发明一种实施方式的引擎检测数据更新方法的流程图;
[0033]图2是本发明一种实施例的全局指针切换之前指向示意图;
[0034]图3是本发明一种实施例的全局指针切换之后指向示意图;
[0035]图4是本发明一种实施方式的引擎检测数据更新装置的结构框图

【具体实施方式】
[0036]下面结合附图和实施例,对本发明的【具体实施方式】作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0037]图1是本发明一种实施方式的引擎检测数据更新方法的流程图;参照图1,所述方法包括以下步骤:
[0038]101:对入侵防御系统更新后的规则库进行解析,在内存中生成新的引擎检测数据;
[0039]本实施方式中,在执行步骤101时,检测引擎仍采用原引擎检测数据对报文进行检测。
[0040]102:将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据,使得检测弓I擎采用所述新的引擎检测数据。
[0041]为便于对入侵防御系统更新后的规则库进行解析,在本实施方式中,步骤101中,对入侵防御系统更新后的规则库进行解析之前,还包括:接收待更新规则文件,并通过所述待更新规则文件对入侵防御系统的规则库进行更新。
[0042]在检测引擎采用所述新的引擎检测数据后,原引擎检测数据仍然存在于内存中,占用了一定的内存空间,为提高内存使用率,优选地,步骤101中,将指向原引擎检测数据的全局指针修改为指向所述新的弓I擎检测数据后,还包括:
[0043]释放所述原弓I擎检测数据。
[0044]特别的,对于多核架构的设备,在释放所述原引擎检测数据之前需要睡眠一段时间,例如I秒钟,以便可以让全局指针修改为指向所述新的引擎检测数据之前,已经开始通过检测引擎的报文能够完全检测完成,从而避免访问空指针,造成报文漏检,优选地,步骤101中,将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据后,还包括:
[0045]先等待预设时间,再释放所述原弓I擎检测数据。
[0046]为便于实现全局指针修改为指向所述新的引擎检测数据,优选地,
[0047]步骤101中,在内存中生成新的引擎检测数据后,还包括:
[0048]通过第一指针指向所述新的引擎检测数据;
[0049]步骤102中,将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据具体包括:
[0050]将所述第一指针的值赋给所述全局指针。
[0051]为便于释放所述原引擎检测数据,优选地,步骤102中,将所述第一指针的值赋给所述全局指针前,还包括:
[0052]将所述全局指针的值赋给第二指针;
[0053]步骤102中,释放所述原引擎检测数据具体包括:
[0054]释放所述第二指针所指向地址中的数据。
[0055]通常的,规则库中的规则协议包括TCP、UDP、ICMP和IP协议等。相应的,上述全局指针也为对应不同的规则协议的多个全局指针。例如,TCP协议对应的全局指针为8_pstPrmTcpRTNX、UDP协议对应的全局指针为g_pstPrmUdpRTNX、ICMP协议对应的全局指针为g_pstPrmIcmpRTNX、IP协议对应的全局指针为g_pstPrmIpRTNX。本实施方式仅为举例说明,不对其进行限定。
[0056]下面以TCP协议为例来说明本发明,但不限定本发明的保护范围。设TCP协议对应的全局指针为g_pstPrmTcpRTNX,该全局指针g_pstPrmTcpRTNX指向TCP协议对应的原引擎检测数据。规则库中所有TCP协议的规则都被解析到全局指针g_pStPrmTCpRTNX指向的引擎检测数据中,所述引擎检测数据包含端口组,端口组包括由规则库解析得到包含特定端口信息的规则生成的规则树节点(Rule Tree Node,RTN)和选项树节点(Opt1n TreeNode, OTN)结构。该引擎检测数据占用的内存都是动态分配的。
[0057]如图2所示,检测引擎根据全局指针g_pStPrmTCpRTNX采用原引擎检测数据对报文进行检测。若此时入侵防御系统的规则库被更新,则对更新后的数据库进行解析,在内存中生成新的引擎检测数据,并由第一指针g_pstPrmTcpRTNXNew指向所述新的引擎检测数据。
[0058]新的引擎检测数据生成之后,通过以下步骤将全局指针g_p StPrmTcpRTNX修改为指向所述新的引擎检测数据,使得检测引擎采用所述新的引擎检测数据,其中g_pstPrmTcpRTNXOld为临时指针变量:
[0059]I)将所述全局指针 g_pstPrmTcpRTNX 的值赋给第二指针 g_pstPrmTcpRTNX01d,即:
[0060]g_pstPrmTcpRTNX01d = g_pstPrmTcpRTNX ;
[0061]2)将所述第一指针g_pstPrmTcpRTNXNew的值赋给所述全局指针g_pstPrmTcpRTNX,即:
[0062]g_pstPrmTcpRTNX = g_pstPrmTcpRTNXNew ;
[0063]将全局指针g_pstPrmTcpRTNX修改为指向所述新的引擎检测数据之后,指针指向如图3所示,报文经过入侵防御系统的检测引擎时,检测引擎所采用的引擎检测数据已经变为由g_pstPrmTcpRTNX指向的新的引擎检测数据。最后,释放由g_pstPrmTcpRTNX01d指向地址中的原引擎检测数据。
[0064]其它协议如UDP、ICMP及IP和TCP协议规则切换方式相同。
[0065]本发明还公开了一种入侵防御系统的引擎检测数据更新装置,参照图4,所述装置包括:
[0066]解析生成模块,用于对入侵防御系统更新后的规则库进行解析,在内存中生成新的引擎检测数据;
[0067]指向修改模块,用于将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据,使得检测弓I擎采用所述新的引擎检测数据。
[0068]优选地,所述指向修改模块,还用于释放所述原弓丨擎检测数据。
[0069]优选地,所述指向修改模块,还用于先等待预设时间,再释放所述原引擎检测数据。
[0070]优选地,所述解析生成模块,还用于通过第一指针指向所述新的引擎检测数据;[0071 ] 所述指向修改模块包括:
[0072]指针赋值子模块,用于将所述第一指针的值赋给所述全局指针。
[0073]优选地,所述解析生成模块,还用于将所述全局指针的值赋给第二指针;
[0074]所述指向修改模块包括:
[0075]地址释放子模块,用于释放所述第二指针所指向地址中的数据。
[0076]以上实施方式仅用于说明本发明,而并非对本发明的限制,有关【技术领域】的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
【权利要求】
1.一种入侵防御系统的引擎检测数据更新方法,其特征在于,所述方法包括: 对入侵防御系统更新后的规则库进行解析,在内存中生成新的引擎检测数据; 将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据,使得检测引擎采用所述新的引擎检测数据。
2.根据权利要求1所述方法,其特征在于,将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据后,还包括: 释放所述原引擎检测数据。
3.根据权利要求2所述方法,其特征在于,将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据后,还包括: 先等待预设时间,再释放所述原引擎检测数据。
4.根据权利要求2或3所述方法,其特征在于,在内存中生成新的引擎检测数据后,还包括: 通过第一指针指向所述新的引擎检测数据; 将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据具体包括: 将所述第一指针的值赋给所述全局指针。
5.根据权利要求4所述方法,其特征在于,将所述第一指针的值赋给所述全局指针前,还包括: 将所述全局指针的值赋给第二指针; 释放所述原引擎检测数据具体包括: 释放所述第二指针所指向地址中的数据。
6.一种入侵防御系统的引擎检测数据更新装置,其特征在于,所述装置包括: 解析生成模块,用于对入侵防御系统更新后的规则库进行解析,在内存中生成新的引擎检测数据; 指向修改模块,用于将指向原引擎检测数据的全局指针修改为指向所述新的引擎检测数据,使得检测弓I擎采用所述新的引擎检测数据。
7.根据权利要求6所述装置,其特征在于,所述指向修改模块,还用于释放所述原引擎检测数据。
8.根据权利要求7所述装置,其特征在于,所述指向修改模块,还用于先等待预设时间,再释放所述原引擎检测数据。
9.根据权利要求7或8所述装置,其特征在于,所述解析生成模块,还用于通过第一指针指向所述新的引擎检测数据; 所述指向修改模块包括: 指针赋值子模块,用于将所述第一指针的值赋给所述全局指针。
10.根据权利要求9所述装置,其特征在于,所述解析生成模块,还用于将所述全局指针的值赋给第二指针; 所述指向修改模块包括: 地址释放子模块,用于释放所述第二指针所指向地址中的数据。
【文档编号】G06F21/55GK104184725SQ201410369612
【公开日】2014年12月3日 申请日期:2014年7月25日 优先权日:2014年7月25日
【发明者】胡波 申请人:汉柏科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1