专利名称:一种安全事件源集成系统及其实现方法
技术领域:
本发明涉及网络安全领域,特别涉及一种安全事件源集成系统及其实现方法。
背景技术:
目前,随着由入侵检测系统、防火墙、防病毒软件等各类安全设备所组成的具有整 体安全解决方案的中、大型乃至特大型网络环境的构建,各种异构的安全事件源正在不断 地涌现,业务需求也随之不断提高。因此,各类异构安全事件源的集成已经成为了安全事件 管理领域无法回避的问题。异构安全事件源集成系统的目标就是处理和集成各类安全事件 源发来的安全事件数据。 尽管目前的数据源集成技术在其他领域的应用已经取得了许多进展,例如地理信
息的多源融合、多传感器数据融合等,有效地整合了领域内的各类业务数据并解决了"信息
孤岛"的问题,但是在安全事件源集成领域的应用却显得不尽人意。纵观目前已有的安全事
件源集成系统,常常是为了应对某些特定的业务需求而开发的,因此往往架构混乱甚至根
本没有架构的概念。这种随意性很大的集成方式往往存在着如下问题 ①可扩展性不高,内部耦合度普遍较高,各模块之间联系过于紧密。从而导致了系
统缺乏灵活性,无法很好地适应未来的安全事件源变动所带来的业务需求变化。 ②系统可复用性较差,诸如添加新的安全事件源或抛弃旧的安全事件源等的安全
事件源微小变化往往导致不得不对已有系统做出较大的改动,甚至是重新开发全新的系统。 ③可维护性普遍较低,缺乏一种有效的全局维护管理机制,使得集成系统的维护 仍然停留在十分初级的阶段。 ④系统的智能化水平普遍较低,操作的自动化水平不高,往往还需要有大量的人 工参与,影响了系统效率的发挥。 现有的安全事件源集成系统之所以存在以上诸多不足之处,其根本的原因在于不 是一种结构合理、层次分明、易于管理并且具有高度可扩展性的软件架构。因此,迫切需要 一种可配置、可扩展、可插拔和自适应的全新异构安全事件源集成系统,从而在根本上解决
目前现有系统中存在的上述不足。
发明内容
本发明要解决的技术问题是提供一种安全事件源集成系统及其实现方法,使得该
系统能够具有可配置、可扩展、可插拔及自适应等良好特性。
根据本发明的一个方面,提供了一种安全事件源集成系统,包括 代理图表模型,其包括代理,所述代理至少包括源代理、转换代理和递交代理,其
中所述源代理用于将来自安全事件源的数据存储在安全事件变量中,所述转换代理用于接
收所述安全事件变量并进行转换处理,所述递交代理用于接收所述转换处理后的安全事件
变量并传递到指定的集成库,所述代理通过接口相连;
4
代理图表配置库,用于存储配置信息; 代理图表管理器,用于根据所述配置信息生成并初始化所述代理图表模型的所述 代理,并且启动源代理。 上述集成系统中,所述转换处理包括剔除存储所述来自安全事件源的数据的安 全事件变量中不需要的内容,计算存储所述来自安全事件源的数据的安全事件变量中的数 值变量,拆分或合并存储所述来自安全事件源的数据的安全事件变量中的字符串变量,和/ 或将一个存储所述来自安全事件源的数据的安全事件变量拆分或重组为一个或多个粒度 更细的二级变量。 上述集成系统中,所述来自安全事件源的数据是由所述源代理主动抽取或被动接 收的。 上述集成系统中,所述源代理、所述转换代理和所述递交代理中的任意一个可以 被划分为多个层次的代理。 上述集成系统中,所述配置信息采用树状结构的组织方式。 上述集成系统中,所述树状结构的根节点为代理图表模型的标识;所述树状结构 的一级代理子节点为所述代理图表模型的组成信息;所述树状结构的二级属性子节点为所 述代理图表模型所包括的所述代理的属性信息。
上述集成系统中,所述接口是针。 根据本发明的另一方面,还提供了一种安全事件源集成系统的实现方法,包括 1)确定代理图表模型的代理及其功能需求和业务逻辑,实现所述代理,所述代理
至少包括源代理、转换代理和递交代理,其中所述源代理用于将来自安全事件源的数据存
储在安全事件变量中,所述转换代理用于接收所述安全事件变量并进行转换处理,所述递
交代理用于接收所述转换处理后的安全事件变量并传递到指定的集成库,所述代理通过接
口相连; 2)根据所述代理确定配置信息; 3)解析所述配置信息,根据所述配置信息生成并初始化所述代理,并且启动所述 代理中的源代理,由此构建代理图表管理器。
上述方法中,所述步骤2)进一步包括 21)根据所述代理图表模型确定所述配置信息的根节点; 22)根据所述代理图表模型的组成信息确定所述配置信息的一级代理子节点;
23)根据所述代理的属性信息确定所述配置信息的二级属性子节点。
上述方法中,所述步骤3)中所述根据所述配置信息生成并初始化所述代理的操 作进一步包括 31)根据所述配置信息中的所述代理图表模型的组成信息生成所述代理; 32)根据所述配置信息中的所述代理的输入/输出针的描述信息生成所述代理的
针; 33)根据所述配置信息中的所述代理的所属针的连接描述信息进行针与针之间的 连接; 34)根据所述配置信息中的所述代理的运行参数属性信息初始化所述代理。
本发明的显著效果在于本发明所提供的安全事件源集成系统具有结构灵活并且易于管理的特点,其能够真正具备可配置、可扩展、可插拔和自适应等优良特性。
图1是根据本发明的一个具体实施例的安全事件源集成系统的示意图;
图2是根据本发明的一个具体实施例的代理图表模型示意图; 图3是根据本发明的一个具体实施例的安全事件源集成系统的代理图表管理器 构建流程图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对根据本发 明一个实施例的基于代理的异构安全事件源集成系统进一步详细说明。应当理解,此处所 描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。 图1示出了基于代理的异构安全事件源集成系统的示意图,该系统由以下3个部 分组成代理图表(Agent Graph)模型、代理图表管理器和代理图表配置库。代理图表管理 器根据代理图表配置库中存储的配置信息实现对代理图表模型的配置管理和运行控制,从 而实现异构安全事件源集成。在面对安全事件源的种种业务变化时,通过对代理图表配置 库中存储的配置信息的适应性地修改,代理图表管理器能够方便灵活地对现有系统结构做 出调整迅速将新开发的代理模块添加到集成系统中,即刻将过时的代理模块从系统中移 除,从而使得该集成系统能够真正具备可配置、可扩展、可插拔和自适应等优良特性。
基于代理的异构安全事件源集成系统以运行代理图表模型为基础,而代理图表模 型又是由不同类型的代理所组成的。代理是代理图表模型中的最小组成单元,不同的代理 根据其自身的类型与设计目的的不同,具体地完成相应的底层工作。代理遵照高内聚和低 耦合的思想可以被实现为软件、硬件、固件或其任意组合的形式。特别地,当其为软件形式 时,其可以为软件模块形式或独立的代理程序形式。 如图1中的代理图表模型所示,代理图表模型可以从上至下分为三层或更多层,
其中至少包括三个基本层,分别是源代理(Source Agent)层、转换代理(Transform Agent)
层和递交代理(Rending Agent)层。相对于代理图表模型的这三个基本层,代理也可以相
应分为三种类型,即源代理、转换代理和递交代理,下面将分别详细描述。 其中,源代理用于从安全事件源中主动抽取或被动接收安全事件源中的安全事件
数据并对其进行初始化处理,其中,该安全事件源可以是各种数据来源,例如txt文本、各
种数据库表、excel表格、日志信息或实时数据等。源代理的数据初始化处理是读取并解析
来自不同安全事件源的异构数据,并将其存储在自定义的安全事件变量中。每条安全事件
对应于一个安全事件变量,其格式可以根据应用的不同而自行定义,可以为例如结构体变
量等能够存储安全事件的数据结构类型,其中的各项分量,例如结构体变量中的各项元素,
分别对应于其描述的安全事件的各项属性。 转换代理用于接收相关的上游源代理传递来的安全事件变量并根据系统需求作 相应的中间转换处理,然后传递给对应的下游递交代理。具体地说,转换处理可以包括剔除 源代理传过来的安全事件变量中不需要的内容,对该安全事件变量中数值变量的计算、字 符串变量的拆分或合并,将一个安全事件变量拆分或重组为一个或多个粒度更细的二级结构体变量或其他类型变量等各种处理。将安全事件变量拆分或重组为粒度更细的二级结 构体变量或其他类型变量是为了让安全事件的格式更进一步接近集成数据库中的数据格 式。根据本发明的实施例,一个二级结构体变量常对应于集成数据库中某张数据表的一条 数据。中间转换时所依照的二级结构体的格式根据应用的不同而自行定义。
递交代理用于接收对应的上游转换代理传递来的转换处理后的安全事件变量 (结构体或其他类型变量),并使用不同集成库所提供的具体编程接口将转换处理后的安 全事件变量中的数据信息传递到指定的集成库中。该集成库可以面向数据库,也可以是 excel表格、txt文本格式等所有可能的存储类型。 本领域普通技术人员可以理解,上述的三个基本层次可以根据实际业务的需要划 分为更多的子层次。 图2示出的代理图表模型实例是一个最典型的三层代理图表模型。其中示出了源 代理层中的源代理的两个例子,分别是XML源代理和UDP源代理。XML源代理的任务是监视 本地文件目录,读取并解析远程安全事件源以XML文件形式上传的批量数据,然后删除解 析完的文件并将解析结果转换为安全事件结构体的形式并传递给下游转换代理。UDP源代 理的任务是监听指定的UDP端口,接收远程安全事件源端以UDP报文形式发送来的安全事 件数据,并在读取了UDP报文中的数据后转换为安全事件结构体的形式并传递给下游转换 代理,可以使用Socket编程接口来具体实现。图2中也示出了转换代理的例子,它接收XML 源代理和UDP源代理传递来的安全事件结构体,通过转换操作而将安全事件结构体拆分成 更小的二级结构体并传递给下游递交代理。图2中还示出了递交代理的例子是数据库递交 代理,它接收上游转换代理传来的二级结构体数据,并将这些数据通过特定数据库的编程 接口写入到指定的数据库中。 从上面的描述可知,系统中的代理图表模型通过代理来传递安全事件数据。某个 上游代理(Upriver Agent)往下传递安全事件数据到一个下游代理(Downriver Agent),其 中上游代理表示要传递数据的代理,下游代理表示安全事件要到达的某个下层代理。为了 使代理图表模型能够正常工作,代理必须以正确的顺序相连。根据本发明的一个实施例,对 代理处理的每一个数据流,它可以至少实现到一个接口上。根据本发明的一个具体实施例, 针(Pin)是由某个具体的代理生成的一个对象接口,可以分为输入针(Input Pin)和输出 针(Output Pin)两大类。作为代理上的单向数据流的连接点,针用于提供与其它的针相连 并输入输出数据的接口。不同层次的代理之间通过输入针或输出针相互连接来传递各种中 间数据。 系统中的代理图表配置库(Agent Gr即h Configuration R印ository)用于保存 配置信息,其中该配置信息可以采用XML可扩展标记语言的形式来组织。该配置信息包括 代理图表模型的标识、代理图表模型所包括的代理的组成信息、以及代理图表模型所包括 的代理的属性信息。优选地,配置信息采用树状结构的组织方式以清楚表达各个信息之间 的关系,具体地,根节点为具体的代理图表模型的标识,根节点下属各一级代理子节点为代 理图表模型组成信息,其标识组成代理图表模型的具体代理名称和类型信息,而各一级代 理子节点下属的二级属性子节点为所属代理的各类属性(Property)信息,常见的属性有 代理运行参数属性、所属输入/输出针的描述信息、所属针的连接描述信息。通过这种配置 信息方式,可以灵活地实现整体架构中各代理的可配置、可扩展与可插拔。本领域普通技术人员可以理解,代理图表配置库也可以采用其他方式实现上述优点,只要其存储了配置信 息即可。下面示出了代理图表配置库中一个典型配置信息的结构示例。 -〈AgentGraph〉
-〈Agent type =〃 Source Agent〃 name = 〃 UDPSourceAgent〃 〉 〈Property name =〃 Monitor_Port〃 〉8888〈/Property〉 〈Pin Type =〃 OutputPin〃 Destination =〃 TransformAgent 〃 /〉 〈/Agent〉
-〈Agent type =〃 Source Agent〃 name = 〃 XmlSourceAgent〃 〉 〈Property name =〃 Directory_Name〃 〉/mnt/sftpDir〈/Property〉
〈Pin Type =
〈/Agent〉
-〈Agent type = 〈Pin Type = 〈Pin Type = 〈Pin Type = 〈Pin Type =
〈/Agent〉
-〈Agent type = 〃 〈Property name 〈Property name 〈Property name
0utputPin〃 Destination
TransformAgent'
Transform Agent 〃 name =〃 TransformAgent 〃 〉 InputPin〃 Source = 〃 UDPSourceAgent〃 /〉 I叩utPin〃 Source = 〃 XmlSourceAgent 〃 /〉 0utputPin〃 Destination = 〃 0racleAgent〃 /〉 0utputPin〃 Destination =〃 MySQLAgent〃 /〉
Rendering Agent 〃 name =〃 0radeAgent〃 〉 7 DataBase_Service_Name 〃 〉orcl〈/Property〉 7 DataBaseJJser〃 〉scott〈/Property〉 7 DataBase—Passwd〃 〉tiger〈/Property〉
InputPin〃 Source
TransformAgent'
〈Pin Type = 〈/Agent〉
-〈Agent type =〃 Rendering Agent 〃 name =〃 MySQLAgent 〃 〉 〈Property name =〃 DataBase_IP_Address 〃 〉10.0. 15. 10〈/Property〉
DataBaseJJser 〃 〉root〈/Property〉 DataBase_Passwd〃 〉passwd〈/Property〉 DataBase_Name 〃 〉events3〈/Property〉
〈Property name 〈Property name 〈Property name
InputPin〃 Source
TransformAgent'
〈Pin Type = 〈/Agent〉 〈/AgentGraph〉
系统中的代理图表管理器是整个安全事件源集成系统控制和管理的中枢。系统上 电之后,启动代理图表管理器。代理图表管理器首先根据配置信息中的代理图表模型的标 识来读取相应的代理图表模型的组成信息。然后,代理图表管理器依据该代理图表模型组 成信息生成代理图表模型中各个代理,并根据代理的类型信息、属性等信息初始化各个代 理,依据属性中的所属输入/输出针信息和所属针连接描述信息生成所属针并通过将这些 针连接到其它代理以控制数据流的走向。最后,代理图表管理器还负责启动所有的源代理 以完成系统的启动。 要使用本发明所提供的系统架构和实现方法来构造一个具有可配置、可扩展、可
8插拔和自适应等优良特性的异构安全事件源集成系统,可以根据图1所示的系统架构顶层 结构图,将系统的具体实施分为如下三个主要步骤
步骤10)构建代理图表(Agent Graph)模型; 步骤20)构建代理图表配置库(Agent Graph Configuration R印ository);
步骤30)构建代理图表管理器(Agent Graph Manager);
现分别详述以上各主要步骤的具体细节 图2所示的是系统的代理图表(Agent Graph)模型结构图,参照图2可以将步骤 10进一步地划分为如下步骤101)和步骤102)两个子步骤 步骤101):搭建代理图表模型,即按照图2中结构图的三个层次架构将每项具体 功能需求和业务逻辑分解和映射为三个层次上不同的代理,进而确定组成代理图表模型的 所有代理成员及其各自特定的功能需求与业务逻辑。 步骤102):实现代理图表模型中各组成代理,即在步骤101的基础上,按照每个代 理已经确定的特定功能需求和业务逻辑分别实现这些代理。不同代理的实现取决于具体的 业务场景,以图2中的UDP源代理为例该代理要完成的功能是监听某个端口上从远程传来 的UDP形式的安全事件数据报,在本系统中是通过使用Socket编程接口来具体实现此功能 的。 一个具体的代理可以实现为一个代理模块然后将多个这样的模块组成一个程序部署在 一台代理服务器上,也可以实现为一个代理程序并部署在独立的代理服务器上最后由多台 这样的代理服务器组成一个分布式代理系统。 参照上述配置信息的结构示例可以将步骤20中的配置信息构造工作进一步细化 为以下步骤 步骤201):首先,根据代理图表模型确定配置信息的根节点。 步骤202):根据组成代理图表模型的代理的名称和类型信息确定配置信息的一 级代理子节点,即将步骤101中根据业务需求和逻辑所确定的每个代理映射为根节点的一 个一级代理子节点。如上述配置信息的结构示例所示,一个典型的一级代理子节点可以表 不为〈Agent type =,, SourceAgent,,name = ,,UDPSourceAgent,, 〉......〈/Agent〉的形式。
此步骤实质上是将代理图表模型的内部组成信息映射到代理图表配置库中的过程。 步骤203):根据所述代理的属性信息确定所述配置信息的二级属性子节点,该步 骤进一步包括以下两个步骤 2031):确定组成代理图表模型的各个代理的针属性,即确定所属一级代理子节点 的所有针类型信息和针的源或目的信息。如上述配置信息的结构示例所示,一个典型二级 针属性子节点可以表示为〈Pin Type = "InputPin" Source = "UDPSourceAgent"/>的形 式。此步骤实质上是将代理图表模型的内部连接信息映射到代理图表配置库中的过程。
2032):确定组成代理图表模型的各个代理的运行参数属性,即确定二级属性 子节点中的运行参数属性,包括参数的名称和参数的具体值。如上述配置信息的结构 示例所示, 一个典型二级参数属性子节点可以表示为〈Property name = "Database— Name" >events3〈/Property>的形式。 附图3所示的是系统的代理图表管理器(Agent Gr即h Manager)工作流程图,步 骤30中代理图表管理器的构造可以参照该流程图中来实现 步骤301):首先获取并解析在步骤20中创建的"代理图表配置库"中的配置信息。
9例如将XML形式的配置信息读取并解析为DOM的形式存放在内存中。 步骤302):根据配置信息,循环处理代理图表模型中所包含的每一个组成代理, 也即对每个组成代理都要经过步骤303 步骤306的处理。当处理完所有的组成代理后, 跳到步骤307继续。 步骤303):根据配置信息中代理图表模型的组成信息,生成当前需要处理的某个 组成代理。 步骤304):根据配置信息中当前代理所属输入/输出针的描述信息,生成当前代 理所属的针接口。 步骤305):根据配置信息中当前代理所属针的连接描述信息,将这些针与相关代 理的针相连接。 步骤306):根据配置信息中当前代理的各项运行参数信息,初始化当前代理。例 如对于源代理XML Source Agent,要根据其运行参数"Directory—Name"的值来初始化对所 指定目录的监视。 步骤307):在处理完所有组成代理后,启动代理图表模型中的所有源代理,由此 构建了代理图表管理器,从而所述系统可以开始接受或抽取各个安全数据源的数据并进行 安全事件源的集成了。 由于现实中源和目的存储方式可能有很多种,通过代理图表这种层次分明的方式 将所有的可能性包含在一个统一的架构中,每增加一个新的源或目的,只需要开发相应的 接口并增加相应的配置信息即可。从以上实施方案可以看出,本发明提出了一种灵活的可 配置的多源安全事件的集成框架,有效地解决了当前安全事件源集成系统的不足。依据本 发明所构建的异构安全事件源集成系统结构灵活、层次分明并且易于管理,具有可配置、可 扩展、可插拔和自适应的优良特性。 应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情 况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范 围不受所给出的任何特定示范教导的限制。
权利要求
一种安全事件源集成系统,包括代理图表模型,其包括代理,所述代理至少包括源代理、转换代理和递交代理,其中所述源代理用于将来自安全事件源的数据存储在安全事件变量中,所述转换代理用于接收所述安全事件变量并进行转换处理,所述递交代理用于接收所述转换处理后的安全事件变量并传递到指定的集成库,所述代理通过接口相连;代理图表配置库,用于存储配置信息;代理图表管理器,用于根据所述配置信息生成并初始化所述代理图表模型的所述代理,并且启动源代理。
2. 根据权利要求l所述的集成系统,其特征在于,所述转换处理包括剔除存储所述来 自安全事件源的数据的安全事件变量中不需要的内容,计算存储所述来自安全事件源的数 据的安全事件变量中的数值变量,拆分或合并存储所述来自安全事件源的数据的安全事件 变量中的字符串变量,和/或将一个存储所述来自安全事件源的数据的安全事件变量拆分 或重组为一个或多个粒度更细的二级变量。
3. 根据权利要求1或2所述的集成系统,其特征在于,所述来自安全事件源的数据是由 所述源代理主动抽取或被动接收的。
4. 根据权利要求1或2所述的集成系统,其特征在于,所述源代理、所述转换代理和所 述递交代理中的任意一个可以被划分为多个层次的代理。
5. 根据权利要求1所述的集成系统,其特征在于,所述配置信息采用树状结构的组织 方式。
6. 根据权利要求5所述的集成系统,其特征在于,所述树状结构的根节点为代理图表 模型的标识;所述树状结构的一级代理子节点为所述代理图表模型的组成信息;所述树状 结构的二级属性子节点为所述代理图表模型所包括的所述代理的属性信息。
7. 根据权利要求6所述的集成系统,其特征在于,所述代理图表模型的组成信息标识 所述代理图表模型所包括的代理的名称和类型信息。
8. 根据权利要求1或2所述的集成系统,其特征在于,所述接口是针。
9. 一种安全事件源集成系统的实现方法,包括1) 确定代理图表模型的代理及其功能需求和业务逻辑,实现所述代理,所述代理至少 包括源代理、转换代理和递交代理,其中所述源代理用于将来自安全事件源的数据存储在 安全事件变量中,所述转换代理用于接收所述安全事件变量并进行转换处理,所述递交代 理用于接收所述转换处理后的安全事件变量并传递到指定的集成库,所述代理通过接口相 连;2) 根据所述代理确定配置信息;3) 解析所述配置信息,根据所述配置信息生成并初始化所述代理,并且启动所述代理 中的源代理,由此构建代理图表管理器。
10. 根据权利要求9所述的方法,其特征在于,所述步骤2)进一步包括21) 根据所述代理图表模型确定所述配置信息的根节点;22) 根据所述代理图表模型的组成信息确定所述配置信息的一级代理子节点;23) 根据所述代理的属性信息确定所述配置信息的二级属性子节点。
11. 根据权利要求9或10所述的方法,其特征在于,所述步骤3)中所述根据所述配置信息生成并初始化所述代理的操作进一步包括31) 根据所述配置信息中的所述代理图表模型的组成信息生成所述代理;32) 根据所述配置信息中的所述代理的输入/输出针的描述信息生成所述代理的针;33) 根据所述配置信息中的所述代理的所属针的连接描述信息进行针与针之间的连接;34) 根据所述配置信息中的所述代理的运行参数属性信息初始化所述代理。
全文摘要
本发明提供一种安全事件源集成系统及其实现方法,该系统包括代理图表模型,其包括代理,所述代理至少包括源代理、转换代理和递交代理,其中所述源代理用于将来自安全事件源的数据存储在安全事件变量中,所述转换代理用于接收所述安全事件变量并进行转换处理,所述递交代理用于接收所述转换处理后的安全事件变量并传递到指定的集成库,所述代理通过接口相连;代理图表配置库,用于存储配置信息;代理图表管理器,用于根据所述配置信息生成并初始化所述代理图表模型的所述代理,并且启动源代理。该系统能够具有可配置、可扩展、可插拔及自适应等良好特性。
文档编号H04L29/06GK101719914SQ20091023732
公开日2010年6月2日 申请日期2009年11月10日 优先权日2009年11月10日
发明者云晓春, 殷丽华, 邓明远 申请人:中国科学院计算技术研究所