计算机网络安全可视化研究平台设计与实现
2017-02-16肖万武向宁
肖万武+向宁
摘 要: 基于当前现状设计并实现计算机网络安全可视化研究平台。在对现有可视化工具包分析研究的基础上,结合计算机网络安全可视化研究的特点,提出计算机网络安全可视化研究平台的总体目标:实现安全数据整合、可视化方法整合、分析操作整合。根据插件化、集成化、可扩展性、开放性、平台无关性和易操作性等方面的具体要求,对该研究平台进行设计并实现了原型系统。该平台可作为计算机网络安全可视化研究的工具,同时也可用于教学实验、可视化方法测试、协作交流等工作。
关键词: 计算机网络安全; 信息可视化; 网络包; 网络流;数据方块图; 研究平台
中图分类号: TN915.08?34; TM417 文献标识码: A 文章编号: 1004?373X(2017)01?0070?04
Abstract: The computer network security visualization research platform was designed and implemented aiming at the current situation. On the basis of analyzing the available visualization toolkit, the overall goal of the computer network security visualization research platform is proposed in combination with the characteristics of the computer network security visualization research, so as to implement the security data integration, visualization methods integration, analysis and operation integration. The research platform was designed according to the specifications of plug?ins, integration, scalability, openness, platform independence and easy operation. A prototype system was implemented. The platform can be regarded as the tool of the computer network security visualization research, and used in the teaching experiment, visualization method testing, and collaboration communication.
Keywords: computer network security; information visualization; network packet; network flow; data block diagram; research platform
隨着计算机网络技术的不断发展,网络已成为现代生活的重要组成部分。目前,随着网络规模的不断扩大,网络安全问题也日益严重,安全研究正面临新的挑战[1]。计算机网络安全可视化研究是信息可视化和计算机网络安全研究结合的产物,是一个全新的研究课题。通过对该课题深入研究,可以帮助研究人员从全新的视角理解安全现象,进而揭示安全机理、发现安全规律,最终达到解决安全问题的目的[2]。
1 平台设计
1.1 总体目标
计算机网络安全可视化研究平台是要建立一个可用于计算机网络安全可视化研究的统一支撑环境,方便研究人员基于不同的分析任务、使用多种可视化手段进行相关安全问题的可视化研究。该研究平台达到的总体目标是实现三个层次的整合,即对数据的整合、对可视化方法的整合、对分析操作的整合[3]。
数据整合是数据层面的整合,目的是提供对各种安全数据的支持,使各种数据都可以方便的在平台中使用;可视化方法整合是方法层面的整合,目的是将众多的可视化技术方法集成到平台之中,为各种数据提供丰富的可视化表现形式,同时增强各种可视化方法之间的联系,使各种方法可以相互协调、综合运用;分析操作整合是应用层面的整合,目的是在数据整合和可视化方法整合的基础上为使用者提供一个统一的操作环境,屏蔽由于数据异构性和可视化方法多样性带来的操作复杂性问题,使研究人员可以在该平台上使用相对统一的操作过程完成各种安全可视化分析研究工作[4]。
1.2 设计要求
根据以上总体目标,对计算机网络安全可视化研究平台的设计提出以下要求:
(1) 插件化。该平台的基础结构应该是一个插件的容器,各种功能的实现由具体功能插件完成。
(2) 集成化。该平台是一个具备综合能力的计算机安全可视化研究环境,需要对多种数据类型、多种可视化方法提供支持。
(3) 可扩展性。考虑到未来发展的需要,该平台应该具备良好的可扩展性。
(4) 开放性。该平台不是一个封闭的系统,需要与其他系统进行交互。
(5) 平台无关性。为了满足不同研究人员对操作系统使用的习惯,实现跨平台运行能力,该平台采用Java语言开发。
(6) 易操作性。该平台需要为研究人员提供风格统一的操作方式,屏蔽由于数据异构性和可视化方法多样性带来的操作复杂性问题。
1.3 总体结构
根据总体目标和设计要求,计算机网络安全可视化研究平台包括数据处理模块、信息可视化模块、交互模块和平台管理控制模块四个模块[4]。其中,数据处理模块主要负责完成数据的映射,将各种安全数据转换为最终用于可视化表达的形式;信息可视化模块完成数据的可视化映射,将数据处理模块输出的数据根据不同可视化方法转换为相应的视图;交互模块提供各种人机交互手段,帮助平台使用者对可视化视图进行交互式探索工作;平台管理控制模块是平台的基础框架,负责协调、控制其他功能模块共同完成平台使用者的各种分析研究任务,同时为其他功能模块的运行提供所需环境[5]。
1.4 用户对象
计算机网络安全可视化研究平台的使用主要针对两类用户:可视化算法的研究人员与基于可视化的安全分析人员。
可视化算法的研究人员通过创建新算法插件,将可视化方法集成到平台中,利用平台提供的数据处理功能,大大简化数据的处理过程,使研究重点更容易集中于可视化算法本身。同时,利用平台提供的多种可视化表达形式,方便研究人员对新老方法进行对比研究[6]。
基于可视化的安全分析人员通过该平台进行安全数据的处理、可视化图形的生成以及交互式的可视化分析等工作。根据分析任务的不同,分析人员可以选用多种可视化表达形式,从不同侧面全方位地展示数据的内在信息,再通过综合运用各种分析手段快速发现数据背后隐藏的安全问题。
2 平台实现
2.1 基础平台介绍
通过基础平台为其他各功能模块的运行提供所需的支撑环境,同时负责协调、控制其他功能模块共同完成平台使用者的各种分析研究任务。基础平台对应总体结构中的平台管理控制模块。经过调研对比,选择KNIME(The Konstanz Information Miner,康斯坦茨信息挖掘器)作为计算机网络安全可视化研究平台原型系统的基础平台[7]。KNIME的主要特点如下:
(1) 使用工作流(Workflow)技术,可视化地展示了数据处理、分析、挖掘的全过程,并可以对各个处理步骤进行交互式操作设置。
(2) 使用节点(Node)处理单元,封装各种处理功能,降低彼此间的耦合性,方便使用者进行功能扩展。
(3) 提供种类繁多的節点库,根据具体的挖掘任务需要,选择不同功能节点,将输入输出端口相互连接组成各种数据挖掘工作流。
对KNIME的数据结构、节点和工作流进行简要介绍,用于指导原型系统其他各功能模块的开发。
2.1.1 数据结构
在KNIME中使用DataTable类封装节点之间流动的数据。DataTable包含数据的元信息和数据本身,其中每行数据都是DataRow对象,可以通过对DataRow实例的迭代,访问数据表中的数据。每个DataRow中都包含一个惟一的标识和一定数量的DataCell对象,该对象中保存着实际数据。
DataTable,DataRow和DataCell等主要类的相互依赖关系如图1所示。
2.1.2 节点
节点是KNIME中最主要的处理单元,它通常会被组装到一个工作流中。Node类封装了节点的所有功能,用户可以通过扩展NodeModel,NodeDialog和NodeView三个抽象类来开发自己的功能节点。NodeModel类主要承担计算任务;NodeDialog类用来实现节点的配置对话框,用户根据需要调整节点的相关参数,从而影响节点的执行;NodeView类可以被重写多次以实现在同一数据模型上显示不同视图。如果自定义的功能节点无需配置对话框和视图窗体,可以不实现NodeDialog和NodeView类。节点的这种设计遵循了MVC设计模式[8]。另外,为了实现数据或模型在节点中的传输,每个节点都具有输入输出端口。节点及主要类的依赖关系如图2所示。
2.1.3 工作流
在KNIME中,工作流就是由节点相互连接构成的有向图。在两个节点间允许插入新节点和有向边,而且工作流可以保存节点的状态,需要时能够进行返回。这种图形化的表达方式使用户可以按需定制所需的处理流程,并可以从宏观上了解整个处理步骤。
通过上述介绍,KNIME系统作为基础平台基本满足计算机网络安全可视化研究平台管理控制功能的设计需要。但是,就计算机网络安全可视化研究这种具体应用而言,缺少对安全数据的支持,缺少专用的安全可视化方法,所以无法支撑安全可视化方面的研究,还需要有针对性的开发相应功能以满足平台的总体设计需求。
2.2 数据处理模块实现
在计算机网络安全可视化研究平台的原型系统中,数据处理模块主要提供对安全数据的支持能力,目前,已支持网络数据包数据(PCAP格式文件)和NetFlow网络流数据(CSV格式文件)两种安全数据类型。通过不同的功能节点可以完成数据的解析、格式的变换、内部数据的生成及转换等操作。此处以MatrixConverter节点实现为例,说明数据转换构件中功能节点的实现方法,其他数据解析构件、数据映射构件中功能节点的实现可以参考此例进行。
MatrixConverter节点主要负责对内部数据进行转换,具体功能是将NetFlow网络流数据中以“源地址,目的地址,连接权值(某种连接属性值)”形式存在的内部数据转换为以邻接矩阵形式存在的内部数据,为后续可视化节点的使用提供适合的数据表达形式。在execute()方法中首先从节点的输入端获取数据;其次对该数据进行处理得到对应的邻接矩阵形式数据;最后将邻接矩阵形式的数据送至节点的输出端。
节点功能开发完成后,还需修改插件的入口文件plugin.xml,平台将根据这个文件的设置加载插件。通过设置,MatrixConverter节点将会出现在节点库的SecViz类别文件夹下,并可以提供相应的处理功能。
2.3 信息可视化模块实现
在计算机网络安全可视化研究平台的原型系统中,信息可视化模块主要提供各种安全可视化方法。目前,已集成了网络数据包数据方块水平布局图、堆叠布局图和网络流数据的邻接矩阵图等三种专用安全可视化方法。
MatrixViz功能节点的实现主要涉及三类:MatrixVizNodeModel类,MatrixVizNodeView类和MatrixVizViewPanel类。MatrixVizNodeModel类继承了NodeModel抽象类,主要用于获得待可视化的内部数据;MatrixVizNodeView类继承了NodeView抽象类,用于管理控制可视化视图,它是完成可视化方法集成的关键类;MatrixVizViewPanel类继承了Swing的JPanel类,用于创建显示面板进行可视化绘制。首先定义MatrixVizViewPanel类型的成员变量m_viewPanel,用于绘制可视化视图;其次在构造函数中对MatrixVizViewPanel类进行实例化;最后显示绘图面板。MatrixVizNodeView类将数据对象和绘图对象关联在一起,共同完成特定的可视化功能。
2.4 交互模块实现
交互功能的实现,可以利用AWT/Swing自身机制捕获鼠标、键盘等事件,并通过相应的事件处理器完成对特定事件的响应及处理。首先,通过addXxxListener()方法将某类事件监听器或适配器注册给指定的组件,当该组件发生特定事件时,被注册到该组件的事件监听器或适配器中对应的事件处理器将被触发,从而完成对该事件的响应及处理。使用addMouseListener()方法给绘图面板m_viewPanel注册鼠标事件的适配器,用于监听鼠标事件。同时,重写mouseReleased()和mousePressed()方法,实现对鼠标键松开、按下事件的处理。
3 平台应用实验
3.1 展示性任务实验
该实验的目的是通过计算机网络安全可视化研究平台生成待分析数据的可视化视图。实验使用的数据是一个CSV格式的NetFlow网络流数据文件(文件名为DisplayTest_NetFlow.csv),并使用邻接矩阵图作为最终的可视化表达形式。通常,进行这种展示性任务一般包括三个步骤:
第一步,构建任务工作流;
第二步,对各功能节点进行必要配置(某些节点无需配置);
第三步,依次执行工作流中的各节点,得到最终的可视化结果。
在第一步中构建的任务工作流,使用了四个功能节点:CSV文件读取节点(CSVReader)、列过滤器节点(ColumnFilter)、矩阵转换器节点(MatrixConverter)和矩阵图可视化节点(MatrixViz)。CSVReader节点负责数据文件的读取;ColumnFilter节点和MatrixConverter节点负责内部数据格式的转换;MatrixViz节点负責视图的绘制与显示。
第二步是对各功能节点进行必要配置,此任务中需要在CSVReader节点中指定DisplayTest_NetFlow.csv文件的路径,同时通过Column Filter节点选择后续处理所需的数据列,MatrixConverter和MatrixViz节点无需配置。最后,依次运行各节点,执行相应的节点功能,得到NetFlow网络流数据的邻接矩阵图,如图3所示。
3.2 探索性任务实验
该实验的目的是通过计算机网络安全可视化研究平台分析安全数据、发现数据中存在的异常现象。实验使用了两类安全数据:一类是PCAP格式的网络包数据(文件名为ExploreTest.pcap);另一类是由网络包数据处理得到的CSV格式的NetFlow网络流数据(文件名为ExploreTest_NetFlow.csv)。与展示性任务不同,探索性任务通常需要综合使用多种可视化手段和分析方法,经过不断地迭代探索过程才能得到最终的结论。
在对安全数据进行探索性分析时,一般的思路是“从整体到细节”,即先从数据的整体特征上分析有无异常现象,然后再进一步分析数据的细节特征。根据这一思路,最终完成该探索性任务的工作。
(1) 网络流数据处理子工作流。包括两个处理分支:邻接矩阵图绘制和平行坐标图绘制,用于从不同侧面展示数据特征。同展示性任务的工作流相比,该工作流多了行过滤器节点(Row Filter)和平行坐标图可视化节点(Parallel Coordinates)。Row Filter节点负责对数据行进行过滤;Parallel Coordinates节点负责绘制平行坐标可视化图形,该功能节点是基础平台提供的一种经典可视化方法。
(2) 网络数据包处理子工作流。使用了两个功能节点:PCAP文件读取节点(PCAP Reader)和数据方块图可视化节点(PacketViz)。其中,PCAP Reader节点负责读取PCAP格式的网络数据包;PacketViz节点负责绘制网络数据包的数据方块图。
在进行探索性分析时,首先对网络流数据进行分析,获取对网络中数据传输关系的全面理解。接下来,利用平行坐标图对135.2.1.2节点进行有针对性的可视化分析。最后,为了进一步挖掘扫描攻击的细节信息,选用网络流数据对应的网络数据包,该数据中记录了网络通信中最原始的信息。
通过以上使用不同的安全数据,采用各种可视化手段进行综合分析,得出如下结论:网络中主机135.2.1.2正在对网络进行扫描攻击,且攻击类型为TCPSYN端口扫描攻击。
通过应用实验,讨论计算机网络安全可视化研究平台在可视化展示和可视化探索中的应用。该安全可视化研究平台综合使用各种可视化方法(如邻接矩阵图、平行坐标图、数据方块图等),针对多种安全数据(如网络包数据、网络流数据等)进行集中统一的处理,基本达到平台的总体目标,能够为安全可视化研究提供整合的支持环境。另外,使用工作流方式进行安全可视化分析,方便建立标准规范的分析步骤,为安全可视化分析研究提供指导和帮助。
4 结 论
本文在对现有可视化工具包(或整合系统)分析研究的基础上,结合计算机网络安全可视化研究的特点,提出计算机网络安全可视化研究平台的总体目标:实现安全可视化研究三个层次的整合,即数据整合、可视化方法整合、分析操作整合。根据插件化、集成化、可扩展性、开放性、平台无关性和易操作性等方面的具体要求,对该研究平台进行设计,并实现原型系统。针对可视化展示和可视化探索两种不同的任务类型,对该研究平台的原型系统进行应用实验。
参考文献
[1] 靖培栋.信息可视化—情报学研究的新领域[J].情报科学,2003,21(7):685?687.
[2] 郭陟,万海,顾明.可视化安全审计模型与系统框架研究[C]//全国网络与信息安全技术研讨会2004论文集.北京:中国通信学会,2004:433?437.
[3] 周宁.信息可视化技术在端口扫描检测中的应用研究[D].天津:天津大学,2007.
[4] 李忠武,陈丽清.计算机网络安全评价中神经网络的应用研究[J].现代电子技术,2014,37(10):80?82.
[5] 任磊,王威信,周明骏,等.一种模型驱动的交互式信息可视化开发方法[J].软件学报,2008,19(8):1947?1964.
[6] SHIRAVI A, SHIRAVI H, TAVALLAEE M, et al. Toward developing a systematic approach to generate benchmark datasets for intrusion detection [J]. Computers & security, 2012, 31(3): 357?374.
[7] 叶云,徐锡山,贾焰,等.基于攻击图的风险邻接矩阵研究[J].通信学报,2011,32(5):112?120.
[8] 占俊.基于自适应BP神经网络的计算机网络安全评价[J].现代电子技术,2015,38(23):85?88.