专利名称:安全扫描信息总线及其实现方法
技术领域:
本发明涉及一种安全扫描信息总线,也涉及该安全扫描信息总线的实现方法和利用该安全扫描信息总线实现安全分析引擎内及引擎间数据协作的方法,属于信息安全技术领域。
背景技术:
为了解决网络信息安全的问题,人们陆续研发出防火墙、入侵监测、漏洞扫描、认证及审计等多项安全技术措施。这些安全技术措施能在一定程度上保证信息网络的安全。但是,信息安全领域的技术发展一日千里,没有任何一种单独的技术措施能够完全解决信息安全领域的所有问题。
为此,人们往往会同时采取多种技术措施来应对复杂、动态、多维的网络安全威胁。但是,不同安全技术措施之间存在防护盲区,无法有机管理和协同,同时还极大增大了管理成本和管理负担,并会给网络系统引入了新的安全隐患。因此,仅仅通过几种信息安全产品的各自为战或简单堆砌早已不适应信息安全的客观要求。
针对上述的不足,人们提出了网络安全综合管理平台的技术理念,即在一个统一的管理平台上实现对不同安全产品和设备的统一管理和部署,在一个整体的控制和调度框架下有机协同不同产品进行共同防护,这样将会在极大降低安全管理成本的同时大大提高安全防护机制的强度。近年来,已有一些著名的安全厂商推出各具特色的网络安全管理平台产品,如赛门铁克(Symantec)的集中开放式安全管理系统(SESA)、IBM的Tivoli等、启明星辰的网络安全资源管理平台等。
但是,由于不同的安全产品系统结构和管理接口没有统一的标准,现有的网络安全管理平台所做的管理配置只能是浅层次的,平台所管理的不同产品之间是松散耦合的关系,不同产品之间的协同也只停留在对几种产品的日志信息进行统计分析的层面上,没有更深入有效的有机协同机制。
要实现对不同安全产品的深层次管理和有效协同,必须从系统架构和产品引擎的层次对不同安全产品和系统进行耦合、协同和管理,我们称这类在产品架构和系统引擎级进行深度耦合的管理平台为紧耦合结构安全管理平台。为实现上述的紧耦合结构安全管理平台,仍然存在一系列技术问题需要解决。
发明内容
本发明的首要目的在于提供一种安全扫描信息总线,该总线可以为实现紧耦合结构的安全管理平台奠定技术基础。
本发明的另外一个目的是提供上述安全扫描信息总线的实现方法。
本发明还有一个目的在于提供利用上述安全扫描信息总线实现引擎间内及引擎间协作的方法。
为实现上述的发明目的,本发明采用下述的技术方案一种安全扫描信息总线,用于广谱安全扫描分析系统之中,其特征在于所述安全扫描信息总线包括引擎内操作数据存储区和引擎间协同数据存储区,每个所述数据存储区各自具有多数个逻辑信息格;所述引擎内操作数据存储区的存储空间采用动态分配机制,所述引擎间协同数据存储区的存储空间采用静态分配机制。
所述引擎内操作数据存储区将所述逻辑信息格动态分配给原子扫描构件。
所述引擎间协同数据存储区按照协同规则为需要进行协同的各引擎静态分配所述逻辑信息格,所述逻辑信息格存储在协同完成扫描分析任务时需要交互的协作数据。
一种实现上述安全扫描信息总线的方法,其特征在于首先将调度引擎所使用的内存划分为两部分,其中一部分为引擎内操作数据存储区,另一部分为引擎间协同数据存储区;调度引擎对所述引擎内操作数据存储区实行动态管理,对所述引擎间协同数据存储区按照协同规则固定分配存储空间。
所述引擎内操作数据存储区的空间分配及数据协作包括如下步骤1)调度引擎激活需要的原子扫描构件,然后顺序激活对应的数据获取微构件,获取需要的扫描数据;2)根据扫描数据的结构类型,决定需要的空间大小,判断所述引擎内操作数据存储区中的剩余空间大小,若有足够空闲空间,转3);若空间不足,则向系统申请扩展所述引擎内操作数据存储区的空间,再执行2);3)将适量的逻辑信息格分配给需要存储的扫描数据,并将该部分逻辑信息格标记为已占用,更新所述引擎内操作数据存储区的空闲空间大小,同时更新存储当前扫描数据地址的变量;4)向调度引擎发出数据就绪信号;5)调度引擎根据当前数据地址变量的值从信息总线获取需要的扫描数据,执行扫描操作;6)调度引擎释放刚刚完成的操作所申请的空间,转入1)循环。
所述引擎间协同数据存储区的空间分配包括如下步骤子引擎在启动时根据协同规则中描述的不同子系统之间的协同关系和协作时需要的交互数据项,在其内存资源中为能够与该引擎发生协作关系的子系统引擎顺序分配相应的存储空间;所述存储空间在所述引擎运行期间不再进行调整。
一种利用上述安全扫描信息总线实现引擎间协作的方法,其特征在于包括如下步骤协同请求方首先获取一个协同节点,如果协同节点为空则退出,如果不为空则进一步考虑其是否符合协同条件,如果符合则设定协同数据,并发送协同信号到所述引擎间协同数据存储区;协同应答方通过所述引擎间协同数据存储区监听协同信号,一旦获得协同信号则从中获取协同数据,并执行协同动作。
所述协同条件和所述协同数据项规定在所述协同规则中,所述协同数据在执行扫描的上下文场景中获得。
所述协同请求方和所述协同应答方分别处于网络中不同的主机上,所述引擎间协同数据存储区在所述协同请求方和所述协同应答方的运行空间中各自有一个实例,所述各实例的结构和存储的数据完全相同。
本发明所述的安全扫描信息总线作为系统内部和子引擎之间信息调度、交换和协作的逻辑中枢,在保持系统的体系结构清晰的同时,可以高效、准确地支持系统中各种复杂的基于信息交换和传递的协作,支持单个分析引擎内部或者不同引擎协作完成相应的扫描功能。
下面结合附图和具体实施方式
对本发明作进一步的说明。
图1为本发明所述的安全扫描信息总线的逻辑结构图。
图2为使用本安全扫描信息总线的安全扫描分析系统的技术逻辑架构图。
图3为引擎内操作数据存储区的物理实现架构图。
图4为利用本安全扫描信息总线实现引擎间协作的方法流程图。
具体实施例方式
本发明是为实现紧耦合结构的安全管理平台而研发出的新技术。该安全管理平台是一种可扩展的广谱安全扫描分析系统。该系统具有调度引擎、扫描规则库、协同规则库和分析知识库,调度引擎中不包含扫描规则、协同规则和分析知识的内容。调度引擎中包括调度器、协同规则解析引擎、扫描规则解析引擎、分析知识解析引擎以及对象信息获取代理,由调度器进行统一调度;协同规则解析引擎连接协同规则库,扫描规则解析引擎连接扫描规则库,所述分析知识解析引擎连接分析知识库;调度引擎通过对象信息获取代理获取分析对象的信息,并将结果放入结果库中。通过对各类安全产品的深度耦合、协同和管理,在能够完成对不同产品深层次配置管理的基础上,引入有效的协同机制,能够通过协同不同安全产品来共同完成单项技术无法完成的安全防护功能。
在上述紧耦合结构的安全管理平台中,由于采用了知识、规则和分析对象逻辑分离的多层次的逻辑体系结构,进而将多种安全系统的共性处理知识与具体的业务功能相分离,支持复杂安全系统的可扩展性和一体化综合管理,在平台内部运行过程中存在着非常复杂和极其频繁的信息传递和协作,例如在实际中,调度引擎是通过调用原子扫描构件进行工作的。它在执行扫描分析过程中需要与分析知识库、对象信息代理以及实例化的原子扫描构件之间进行复杂的信息协作,同时为了支持不同安全功能子系统的协同工作,平台内部的各子引擎之间也需要有机的信息交换,为了提供一种能够支持所有这些协作的统一有效的信息传递机制,避免由于协作关系的复杂导致系统逻辑结构的混乱,我们设计实现了安全扫描信息总线机制。
上述的安全扫描信息总线是一种格式化信息存储线性逻辑结构,记为L,用于动态的储存系统运行过程中需要在不同部分系统间传递和交换的数据信息,以有效的支持各种基于扫描相关信息的协作与交换。参照图1所示,该安全扫描信息总线按照所存储信息的逻辑功能不同从总体上划分为2个区,分别为引擎内操作数据存储区Ain和引擎间协同数据存储区Ainter,每个区都由一系列逻辑信息格(grid)组成,即L=Ain∪Ainter={gridi|i>0,i∈N},其中信息格gridi是信息总线中最小的逻辑存储分配单元。
根据逻辑功能的需要,两个区内的信息格采用不同的策略进行管理。
1.引擎内操作数据存储区AinAin中的存储单元主要存储原子扫描构件实例化执行过程中需要的分析知识和对象信息数据。所谓原子扫描构件是对一类数据信息结构执行单项扫描分析操作并给出单元级分析结果的扫描功能单元。它是一个静态的功能组件。当一个原子扫描构件被调度引擎激活并与一个分析知识点的信息绑定,以完成一个原子扫描任务时,我们称之为一个原子扫描构件实例。由于系统运行过程中调度引擎需要根据不同的分析场景动态激活不同的原子扫描构件实例并进行序列化,微构件在总线上对存储单元的需求也是动态变化的,因此对Ain中信息格的管理采用动态分配策略。一个原子扫描构件被激活时首先在信息总线上申请空间,为一个原子扫描构件分配的逻辑空间称为一个泊位(berth),根据不同原子扫描构件处理的数据信息的类别不同为其提供的泊位可能由不同数量的信息格组成。原子扫描构件完成其分析操作后,为其提供的泊位空间动态释放。
上述动态分配策略体现为如下的空间分配流程1)调度引擎激活需要的原子扫描构件,然后顺序激活对应的数据获取微构件,获取需要的扫描数据;2)根据扫描数据的结构类型,决定需要的空间大小,判断Ain中的剩余空间大小,若有足够空闲空间,转3);若空间不足,则向系统申请扩展Ain的空间,再执行2);3)将适量的信息格分配给需要存储的扫描数据,并将该部分信息格标记为已占用,更新Ain的空闲空间大小,同时更新存储当前扫描数据地址的变量;4)向调度引擎发出数据就绪信号;5)调度引擎根据当前数据地址变量的值从信息总线获取需要的扫描数据,执行扫描操作;6)调度引擎释放刚刚完成的操作所申请的空间,转入1)循环。
2.引擎间协同数据存储区Ainter
我们根据发生协同的不同引擎类型组合将Ainter中信息格分为不同的段(segment),每个段根据协同消息结构的不同由不同数量的信息格组成。
Ainter中的存储单元用于存储在不同安全子系统引擎间执行协同功能时需要的协同通信数据,由于能够完成的协同服务以及协同消息的格式都是在协同服务请求引擎和服务提供引擎之间约定好的,也即这类信息的存储需求是固定的,因此对Ainter中信息格的管理采用静态分配策略。
静态分配策略的工作原理如下系统管理员在系统的协同规则中描述了不同安全子系统之间的协同关系和协作时需要的交互的数据项,每个子系统的子引擎在启动并实例化时会根据协同规则中描述的协同语义,在引擎实例的内存资源中为能够与该引擎发生协作关系的子系统引擎顺序分配相应的段,用以存储它们在协同完成扫描分析任务时需要交互的协作数据。由于段空间的分配是引擎在实例化时根据协同规则描述的协作需求进行计算并分配的,是必然满足协作需求的,引擎实例化过程中进行段分配以后在该引擎实例运行期间不再进行调整,因此是属于静态分配的策略。
下面,对本安全扫描信息总线的实现机制进行说明。
1.引擎内信息协作在广谱安全扫描分析系统中,调度引擎执行一次扫描与分析操作过程中系统组件及与扫描信息总线间的协作情况如图2所示。调度引擎通过信息获取微构件与对象获取代理进行连接,该对象获取代理具有网络报文适配器、系统信息适配器和其他的信息适配器。另一方面,分析知识库连接分析知识解析引擎,该分析知识解析引擎连接知识树。知识树也通过另一个信息获取微构件与调度引擎相连接。扫描规则解析引擎从扫描规则库中获取扫描规则,并将之分配给构件池中的多个原子扫描构件,该多个原子扫描构件与调度引擎直接相连。调度引擎通过多个扫描构件连接扫描信息总线,上述的两个信息获取微构件也与扫描信息总线相连接。上述扫描信息总线是一种格式化信息存储线性逻辑结构,用于动态储存系统运行过程中需要在不同部分系统间传递和交换的数据信息,以有效支持各种基于扫描相关信息的协作与交换。
图3所示为上述信息协作过程所对应的物理实现结构图。其中用于保存协作数据的信息总线定义为void*数组
void* InfoBus[MAXLENGTH]信息获取微构件定义为void*函数指针(*GetObjValueFp)();(*GetCmpValueFp)();知识树定义为如下的结构AnalyseNode{KeyWordIdList //知识关键字列表KeyWordValPtr[] //知识关键字的值Right*Down*}在执行一次扫描分析的过程中,调度引擎需要根据不同的分析场景动态激活不同的原子扫描构件实例并进行序列化,然后顺序激活对应的数据获取微构件,获取需要的扫描数据,并根据扫描数据的结构类型动态在总线上申请空间。
系统按照上述的动态分配策略对扫描信息总线的Ain区空间进行管理和维护。
2.引擎间协同协同规则中描述了不同子系统之间协同的语义,协同规则解析引擎用于处理系统的协同动作,当系统初始化时,根据系统的具体类型,初始化协同规则列表,初始化该列表的同时进行扫描信息总线Ainter区的空间分配工作。因此该链表是不同引擎之间通过信息总线进行数据交互和协作的关键数据结构,在该链表中包含与当前引擎进行协作的子引擎的编号,以及和该引擎的协作根据静态分配策略在总线的Ainter区分配的数据存储位置。当对一个分析对象进行处理完成以后,遍历协同规则链表,执行要发生的协同操作。
协同参数是协同应答系统的执行参数,以漏洞扫描和会话审计为应答系统作为例子,协同参数结构设计如下typedef struct_CooperateParam{char vulscanclientpath[100];//漏洞扫描客户器端的执行路径
char vulscanserver_add[100];//漏洞扫描服务器端的地址char vulscanserver_port[100];//漏洞扫描服务器端的端口号char sessionauditpath[100];//会话审计客户端的执行路径char sessionauditserver_add[100];//会话审计服务器端的地址char sessionauditserver_port[100];//会话审计服务器端的端口号}CooperateParam;用于记录协同规则的全局列表指针CooperateNode*g CooperateList;用于保存协同数据的数据总线Ainter区char CooperateData[MAXPARA][MAXPIPELEN];协同参数的指针链表CooperateParam g_CooperateParam;在上述关键数据结构的支持下,不同引擎在执行扫描过程中通过扫描信息总线进行引擎间协作的执行机制设计原理如图4所示。
协同请求方这一方首先获取一个协同节点,如果协同节点为空则退出,如果不为空则进一步考虑其是否符合协同条件,如果符合则设定协同数据,并发送协同信号到安全扫描信息总线Ainter区。协同应答方通过Ainter区监听协同信号,一旦获得协同信号则从中获取协同数据,并执行协同动作,实现不同引擎之间的协同。
在上述过程中,协同条件是在协同规则中描述的,协同数据项也是在协同规则中描述的,但具体的协同数据在执行扫描的上下文场景中获得。
另外,协同请求方和协同应答方可以分别处于网络中不同的主机上。实际中,Ainter区在协同请求方(请求引擎)和协同应答方(应答引擎)的运行空间中各自有一个实例,但其结构和其中存储的数据是完全相同的,因此可以在图4中可以以单一的逻辑概念表示。
上面虽然通过实施例描绘了本发明,但本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,所附的权利要求将包括这些变形和变化。
权利要求
1.一种安全扫描信息总线,用于广谱安全扫描分析系统之中,其特征在于所述安全扫描信息总线包括引擎内操作数据存储区和引擎间协同数据存储区,每个所述数据存储区各自具有多数个逻辑信息格;所述引擎内操作数据存储区的存储空间采用动态分配机制,所述引擎间协同数据存储区的存储空间采用静态分配机制。
2.如权利要求1所述的安全扫描信息总线,其特征在于所述引擎内操作数据存储区将所述逻辑信息格动态分配给原子扫描构件。
3.如权利要求1所述的安全扫描信息总线,其特征在于所述引擎间协同数据存储区按照协同规则为需要进行协同的各引擎静态分配所述逻辑信息格,所述逻辑信息格存储在协同完成扫描分析任务时需要交互的协作数据。
4.一种实现如权利要求1所述的安全扫描信息总线的方法,其特征在于首先将调度引擎所使用的内存划分为两部分,其中一部分为引擎内操作数据存储区,另一部分为引擎间协同数据存储区;调度引擎对所述引擎内操作数据存储区实行动态管理,对所述引擎间协同数据存储区按照协同规则固定分配存储空间。
5.如权利要求4所述的实现安全扫描信息总线的方法,其特征在于所述引擎内操作数据存储区的空间分配及数据协作包括如下步骤1)调度引擎激活需要的原子扫描构件,然后顺序激活对应的数据获取微构件,获取需要的扫描数据;2)根据扫描数据的结构类型,决定需要的空间大小,判断所述引擎内操作数据存储区中的剩余空间大小,若有足够空闲空间,转3);若空间不足,则向系统申请扩展所述引擎内操作数据存储区的空间,再执行2);3)将适量的逻辑信息格分配给需要存储的扫描数据,并将该部分逻辑信息格标记为已占用,更新所述引擎内操作数据存储区的空闲空间大小,同时更新存储当前扫描数据地址的变量;4)向调度引擎发出数据就绪信号;5)调度引擎根据当前数据地址变量的值从信息总线获取需要的扫描数据,执行扫描操作;6)调度引擎释放刚刚完成的操作所申请的空间,转入1)循环。
6.如权利要求4所述的实现安全扫描信息总线的方法,其特征在于所述引擎间协同数据存储区的空间分配包括如下步骤子引擎在启动时根据协同规则中描述的不同子系统之间的协同关系和协作时需要的交互数据项,在其内存资源中为能够与该引擎发生协作关系的子系统引擎顺序分配相应的存储空间;所述存储空间在所述引擎运行期间不再进行调整。
7.一种利用如权利要求1所述的安全扫描信息总线实现引擎间协作的方法,其特征在于包括如下步骤协同请求方首先获取一个协同节点,如果协同节点为空则退出,如果不为空则进一步考虑其是否符合协同条件,如果符合则设定协同数据,并发送协同信号到所述引擎间协同数据存储区;协同应答方通过所述引擎间协同数据存储区监听协同信号,一旦获得协同信号则从中获取协同数据,并执行协同动作。
8.如权利要求7所述的利用安全扫描信息总线实现引擎间协作的方法,其特征在于所述协同条件和所述协同数据项规定在所述协同规则中,所述协同数据在执行扫描的上下文场景中获得。
9.如权利要求7所述的利用安全扫描信息总线实现引擎间协作的方法,其特征在于所述协同请求方和所述协同应答方分别处于网络中不同的主机上,所述引擎间协同数据存储区在所述协同请求方和所述协同应答方的运行空间中各自有一个实例,所述各实例的结构和存储的数据完全相同。
全文摘要
本发明公开了一种安全扫描信息总线,也公开了该安全扫描信息总线的实现方法和利用该安全扫描信息总线实现引擎间协作的方法。该安全扫描信息总线用于广谱安全扫描分析系统之中,包括引擎内操作数据存储区和引擎间协同数据存储区,每个数据存储区各自具有多数个逻辑信息格;引擎内操作数据存储区的存储空间采用动态分配机制,引擎间协同数据存储区的存储空间采用静态分配机制。本安全扫描信息总线作为系统内部或者子引擎之间信息调度、交换和协作的逻辑中枢,可以高效、准确地支持系统中各种复杂的基于信息交换和传递的协作,支持单个分析引擎内部或者不同引擎协作完成的相应的扫描功能。
文档编号H04L12/24GK1694414SQ20041010295
公开日2005年11月9日 申请日期2004年12月30日 优先权日2004年10月29日
发明者怀进鹏, 刘利军, 张文燚, 刘旭东, 刘庆云, 杨超峰, 马玲 申请人:北京航空航天大学