蒋 励, 张家录(湘南学院 信息化办, 湖南 郴州 423000)
基于网络安全事件的预警系统设计
蒋 励, 张家录
(湘南学院 信息化办, 湖南 郴州 423000)
采用面向对象设计方法和模块化设计思想设计网络安全预警系统. 在对网络安全预警系统所采用的设计模式进行分析的基础上,将预警系统分成报警事件输入接口、报警事件管理、预警、知识库管理、网络拓扑显示与部署等五个模块,对每个模块的功能和设计进行分析,并对预警系统的界面设计进行了说明. 同时给出了预警系统技术实现方法.
网络安全; 设计模式; 攻击预警; 数据库
网络安全预警系统研究开展较早,主要应用于一些重要的经济、政治、军事系统的非法入侵监控与防治. 如,美国国家安全局所设的国家计算机安全与预警中心,隶属于国防信息系统局,是美国政府负责网络攻防技术开发、网络信息战的战略情报预警的专门机构. 实际上,英、美等国从1997年以来就着手网络安全预警技术的研究[1~3]. 美国已经于1998年开始网络信息基础设施安全预警系统研究与建设计划. 1999年9月,美国战略司令部提出了新一代入侵检测系统原型“厨窗计划”,该系统的建设目标是能为美国国防部提供信息战的早期预警[1].
为维护国家信息安全,开展抵御信息攻击和信息攻击追踪与反击研究,建立完善的网络安全预警系统是保证国家网络体系自身的正常运作的有效途径. 因为只有拥有足够安全的网络,才能尽可能地减少网络攻击所造成的危害,保障国家信息系统适应信息技术发展要求.
张志吉[4]设计了一个基于入侵检测系统的预警系统,该系统主要包括抓包模块、分析包模块和攻击规则库,可以直接从网络中获取数据包进行分析,并与攻击规则库进行匹配而发出预警,但缺乏与目前较成熟系统和技术的相互配合.
本文采用面向对象设计方法和模块化设计思想设计网络安全预警系统. 首先,对网络安全预警系统所采用的设计模式进行分析. 其次,将预警系统分成报警事件输入接口、报警事件管理、预警、知识库管理、网络拓扑显示与部署等五个模块,并对每个模块的功能和设计进行分析. 最后,给出预警系统的界面设计说明.
基于网络安全事件的预警系统的体系结构包括报警事件输入接口、报警事件管理、组合攻击知识库管理、组合攻击知识库、组合攻击预警、网络拓扑结构、网络拓扑显示与部署等,如图1所示.
图1 基于网络安全事件的预警系统架构图
系统外部的事件,从报警事件输入接口输入,进行规范; 报警事件管理模块对这些输入进来的事件进行管理,并将这些基于攻击行为的报警事件,转换为基于攻击意图的报警事件; 组合攻击预警模块,则将这些基于攻击意图的报警事件,与组合攻击知识库中的组合攻击模型进行匹配,并根据组合攻击知识库中组合攻击模型的权重分配情况,计算所预测的可能组合攻击的可信度,并在可视化系统中显示. 组合攻击知识库管理模块,则是对组合攻击知识库进行管理. 实现添加、删除组合攻击模型等多种功能; 网络拓扑显示与部署模块,在可视化系统中显示网络环境的各种安全设备的部署情况,并支持可视化编辑.
2.1 设计模式分析
为了使面向对象设计方法更加灵活、方便,提高预警系统设计效率,我们采用模块化设计思想,以便在以往工作基础上解决新问题. 现有的设计模式可以帮助设计者设计出有利于复用的系统,更快更好地完成系统设计.
设计模式包含模式名称(Pattern Name)、问题(Problem)、解决方案(Solution)、效果(Consequences) 等四个基本要素[5,6]. 下面对要用到的几个基本的设计模式进行简要的分析.
2.1.1 组合(Composite)模式
用树形结构表示网络安全事件的“整体—部分”层次结构,用户对简单对象和组合对象的使用具有一致性. 组合模式包含抽象构件角色(Component)、树叶构件角色(Leaf)、树枝构件角色(Composite)等构件.
组合模式的关键是一个抽象类(Component)接口设计. 用户通过该接口与组合对象进行交互. 如果是叶节点,就直接处理; 若是Composite本身,则发送给其它部件.
在基于网络安全事件的预警系统的网络拓扑中,一个网络里面包含有多种节点,比如子网、路由器、交换机以及各种服务器. 而在子网中,又可以包含子网、路由器、交换机等. 这样,整个网络拓扑图就可以用“整体—部分”的层次结构来表示,因此,可以采用组合模式的设计方法来进行设计.
2.1.2 策略(Strategy)模式
策略模式通过定义算法族将各种算法独立封装,其优点是: 使用算法的客户完全可以不需要了解具体算法的设计方法,只需要直接调用,就可以互相替换.
将算法硬编进使用它们的类中是不可取的,因为当应用程序需要调用这种算法时,会使应用系统程序异常庞大和难以维护,占用系统资源,影响系统运行效果. 此外,不同情况需要不同的算法,如果将算法都硬编进类中,会导致程序变得臃肿,既难懂又难以维护.
2.1.3 观察者(Observer)模式
由于定义了对象之间的一对一和一对多依赖关系,所以当一个对象改变状态时,所对应的依赖者都会收到通知并自动更新.
观察者(Observer)和目标(Subject)是此模式的关键对象. 在这种模式下,每个目标都可以有多个依赖它的观察者. 如果改变目标状态,则会通知所有观察者,并使每个观察者查询的状态与目标同步.
在界面设计中,鼠标的点击操作,往往会改变选择状态,而对所选择的状态感兴趣的监听者就需要接收更新的信息,并触发相应的更新操作,因此可以采用观察者模式来设计界面中鼠标操作对应的信息传递与动作触发.
图2 AlertInfo类的类图显示
表1 组成AlertInfo类的一些主要的聚合类
2.1.4 单件(Singleton)模式
单件模式是确保提供一个全局访问点来访问一个类中仅有的一个实例的方法. 它和全局变量一样方便,却不需要像全局变量那样从程序一开始就创建好对象,而只需要在要用到它的时候再开始创建.
在与数据库的连接中,我们往往只需要一个数据库连接池的对象实例就可以实现与数据库相连,因此,在数据库的连接实现中,我们采用单件模式来设计数据连接类.
2.2 报警事件输入接口
报警事件输入接口,定义了一个接口,规范从系统外部输入进来的事件,是基于网络安全事件的预警系统与外部进行消息传递的接口. 报警事件接口规范的事件规范类AlertInfo的类图如图2所示.
AlertInfo类由多个类聚合. 这些聚合类的描述信息见表1.
2.3 报警事件管理模块
报警事件管理模块,具有多种功能,包括查看、刷新、排序、分析、转换报警事件等. 其中最主要的功能是将基于攻击行为的报警事件转换为基于攻击意图的报警事件. 多种攻击行为或者攻击手段产生的攻击事件,都可以转换为同一类的基于攻击意图的事件. 进行事件转换后,事件的种类就大幅度减少,有利于提高在组合攻击知识库中进行事件匹配和可信度计算的效率.
AlertType类为基于攻击意图的事件类型,属性包括唯一性标识ID,名称name和描述信息info等. AlertType与AlertInfo的关系如图3所示.
图3 AlertType与AlertInfo的类图
2.4 组合攻击知识库管理模块
组合攻击知识库管理模块是基于网络安全事件的预警系统的核心模块,实现对组合攻击知识库的管理功能. 具体包括查看、添加、修改、删除组合攻击模型的功能. 组合攻击知识库中,存储对组合攻击所建立的模型. 采用基于攻击意图的攻击树模型,从而使知识库不会因为过于庞大而造成实现难度大、匹配效率低等问题. 组合攻击的模型里,包含该组合攻击详细的信息. 主要包括前提条件、攻击源的特征、攻击可能产生的结果和损失、建议的响应措施和积极防御措施以及最为重要的攻击序列.
图4 组合攻击模型的类ComplexAttackType的类图
组成ComplexAttackType的主要聚合类以及其具体的描述信息见表2.
表2 组成ComplexA ttackType的主要聚合类
2.5 组合攻击预警模块
组合攻击预警模块,封装了组合攻击的预警算法,包括事件匹配和可信度计算两个部分. 它根据从报警事件管理模块输入进来的报警事件,并与组合攻击知识库中的组合攻击模型进行事件匹配,预测可能的组合攻击并计算相应的可信度. 采用策略模式来封装组合攻击预警的算法族,每个算法类都实现了具体的算法,且互相替换,这样,使用算法的客户就可以与算法独立,其具体的设计如图5所示.
IEventMatch(事件匹配)的接口说明见表3. IConfidenceCompute(事件匹配可信度)的接口说明见表4.
图5 策略模式设计预警算法族的类图
表3 接口IEventMatch的说明
表4 接口IConfidenceCompute的说明
2.6 网络拓扑显示与部署模块
该部分需要存储子网信息、路由器信息、交换机信息、主机信息以及网络中各节点之间的链接信息. 而子网可以包含子网、路由器、交换机和主机. 为使客户端能够统一的操作整体和部分,简化客户端的编码工作,采用组合(Composite)模式,以便用一致的方式处理组合对象和个别对象. 设计类图如图6所示.
图6 网络拓扑节点类图
基于MVC模式的GEF技术框架使模型、视图与控制器相互独立. GEF采用命令(Command)设计模式,将用户的每一个操作都封装成命令,支持Undo/Redo等功能.
3.1 总体设计
基于网络安全事件的预警系统的界面总体设计如图7所示. 其中主图为网络拓扑显示及部署视图,其他视图环绕在其周围,具有良好的人机交互性.
图7 基于网络安全事件的预警系统的界面总体设计
3.2 导航视图
用树形结构,显示网络拓扑中,各网络节点的层次结构.
3.3 属性视图
属性视图,可响应鼠标的点击操作,能显示在导航视图中或者主图中所选择对象的详细信息,并支持可视化编辑.
3.4 网络拓扑显示及部署视图
网络拓扑视图,是网络拓扑显示与部署模块的界面的具体实现. 网络中的网络节点用特殊的图标来表示,若发生报警事件,则加上特殊标记. 支持可视化部署,包括添加、删除、修改网络节点和连接等功能.
属性视图、报警事件视图以及组合攻击预警视图,都监听鼠标在主图上的操作. 当鼠标在主图上选择某个节点后,属性视图显示该节点的详细信息,报警事件视图显示发生在该节点上的报警事件,组合攻击预警视图显示对应的可能的组合攻击(可以排序,按可信度和危害性等)及更详细的信息.
3.5 报警事件视图
以列表的形式显示每一个报警事件的各个属性,并提供对事件进行排序的功能,以及响应鼠标的点击操作所带来的更新等. 在选中报警事件视图中的某项后,组合攻击预警视图则响应鼠标操作,显示该报警事件对应的可能组合攻击及其他信息等. 缺省状态下,显示发生在该网络内的所有的报警事件.
3.6 组合攻击预警视图
以树表的形式显示所预测的每一种组合攻击的详细信息以及响应的后果和应采取的积极防御措施,并响应鼠标的点击操作所带来的更新. 缺省状态下,显示预测发生在该网络内所有的组合攻击.
4.1 系统开发环境
基于网络安全事件的预警系统开发的平台见表5.
表5 系统 开发平台
4.2 系统实现
首先,按照界面的需求分析和设计,并采用Eclipse RCP和GEF技术框架来实现基于网络安全事件的预警系统的界面,实现的主页面如图8所示. 主页面中,包括导航视图、属性视图、网络拓扑显示与部署视图、报警事件视图、组合攻击预警视图.
图8 基于网络安全事件的预警系统的主界面
导航视图采用JFace中的树形查看器TreeViewer来显示网络中的各个节点,如图9示; 属性视图采用RCP自带的属性视图,如图10所示.
图9 导航视图
图10 属性视图
报警事件视图采用JFace表格查看器TableViewer显示事件的各个属性,并支持可视化编辑,如图11所示. 网络拓扑显示与部署采用GEF技术框架,提供的主要功能包括: (1)查看节点以及链接的属性; (2)提供命令和上下文菜单操作; (3)连接节点; (4) 图形缩放功能; (5)支持undo/redo功能. 如图12所示.
图11 报警事件视图
图12 网络拓扑显示及部署视图
组合攻击预警视图采用树表查看器(TableTree)显示组合攻击的层次性及详细的信息,如图13所示.
图13 组合攻击预警结果
基于网络安全事件的预警系统集报警事件输入、报警事件管理、组合攻击预警、组合攻击知识库管理、网络拓扑显示与部署等模块功能和组合攻击知识库与网络拓扑结构两个知识库于一体. 在网络安全事件预警系统的设计中,采用策略模式,封装了基于组合攻击知识库的事件匹配和可信度计算算法; 采用单件模式,设计并实现了数据库的JDBC连接; 采用组合模式,设计了网络拓扑结构显示与部署模块; 采用观察者模式,设计了界面中各视图的信息传递,使系统具有好的可维护性和可扩展性. 给出了预警系统技术实现方法,有效解决了网络安全管理问题,综合提升了网络信息安全预警防护能力.
[1]胡华平,张 怡,陈海涛. 面向大规模网络的入侵检测与预警系统研究[J[. 国防科技大学学报,2003(1): 21~25
[2]胡华平,何利民,肖枫涛. 网络安全预警模型的研究[J[. 计算机研究与发展,2006: 354~359
[3]鲍旭华,戴英侠,冯萍慧. 基于入侵意图的复合攻击检测和预测算法[J[. 软件学报,2005(12): 2132~2138
[4]张志吉,唐 毅. 网络入侵预警系统[J[. 上海大学学报,1999(3): 121~127
[5]Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides. 设计模式—可复用面向对象软件的基础[M[. 李英军,马骁星,蔡 敏,等,译. 北京: 机械工业出版社,2000
[6]Eric Freeman,Elisabeth Freeman,Kathy Sierra,Bert Bates. 设计模式(中文版)[M[. 北京: 中国电力出版社,2007
Design of Early Warning System Based on Network Security Event
JIANG Li,ZHANG Jia-lu
(Information Construction and Management Office,Xiangnan University,Chenzhou 423000,China)
The Network security early warning system was designed with object oriented design method and modular design. On the basis of the analysis of the design pattern used in the network security early warning system,the warning system was divided into five modules: input interface of alarm events,alarm event management,early warning,knowledge base management,network topology display and deployment. The function and design of each module were analyzed,and the interface design of the early warning system was given.
network security,design pattern,attack warning,database
TP393.08
A
1672-5298(2016)02-0030-08
2016-04-08
蒋 励(1988- ),男,湖南安乡人,硕士,湘南学院信息化办教师. 主要研究方向: 计算机科学