网络安全事件可视化系统.pdf

上传人:r7 文档编号:1109027 上传时间:2018-03-31 格式:PDF 页数:23 大小:2.45MB
返回 下载 相关 举报
摘要
申请专利号:

CN201010109333.X

申请日:

2010.02.11

公开号:

CN101820357A

公开日:

2010.09.01

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 12/24申请日:20100211|||公开

IPC分类号:

H04L12/24

主分类号:

H04L12/24

申请人:

哈尔滨工业大学

发明人:

何慧; 张宏莉; 杨志; 吴华; 王星; 王耀

地址:

150001 黑龙江省哈尔滨市南岗区西大直街92号

优先权:

专利代理机构:

哈尔滨市松花江专利商标事务所 23109

代理人:

张宏威

PDF下载: PDF下载
内容摘要

网络安全事件可视化系统,涉及到网络安全事件可视化技术领域。本发明解决了现有网络安全事件可视化技术不适用于大规模网络系统的问题。本发明中采用数据获取模块主动测量获得网络的物理连接状况来获得拓扑数据、异常数据和whois定位库信息,并形成网络拓扑图;采用拓扑数据的分簇模块将拓扑数据进行分簇处理,并为每个为簇的中心分配唯一的标识;采用异常数据的坐标映射模块将异常数据的坐标映射到网络拓扑图上,并标示异常事件对应的点;采用网络拓扑图的优化模块将标示有异常事件的网络拓扑图进行划分、优化,使各个簇之间均匀;采用受力布局控制模块将网络拓扑图根据受力平衡的原则进行摆放、布局;采用可视化模块将布局后的拓扑图进行可视化。

权利要求书

1.  网络安全事件可视化系统,其特征在于,它由数据获取模块(1)、拓扑数据的分簇模块(2)、受力布局控制模块(5)、网络拓扑图的优化模块(4)、可视化模块(6)及异常数据的坐标映射模块(3)组成,其中:
数据获取模块(1),用于主动测量获得真实网络的物理连接状况,从而获得网络底层路由器拓扑连接关系数据、同时,获取异常数据和whois定位库信息,形成网络拓扑图;
拓扑数据的分簇模块(2),用于将获得的拓扑数据进行分簇处理,并将每个为簇的中心分配唯一的标识;
异常数据的坐标映射模块(3),用于将获得的异常数据的坐标映射到拓扑数据的分簇模块(2)进行分簇之后的网络拓扑图上,并将异常事件对应的点进行标示,获得标示有异常事件的网络拓扑图;
网络拓扑图的优化模块(4),用于将标示有异常事件的网络拓扑图进行划分获得优化后的拓扑图,使各个簇之间能够均匀;
受力布局控制模块(5),用于将经过网络拓扑图的优化模块(4)处理获得的网络拓扑图根据受力平衡的原则进行摆放,获得布局后的拓扑图;
可视化模块(6)可视化模块(6),用于将布局后的拓扑图进行可视化。

2.
  根据权利要求1所述的网络安全事件可视化系统,其特征在于可视化模块(6)可视化模块(6)由平面可视化子模块、网络逻辑拓扑图可视化子模块、网络安全事件宏观分布图可视化子模块和控制点分布图可视化子模块组成,其中:
平面可视化子模块:用于采用大规模无向图的平面可视化算法将受力布局控制模块(5)处理后的网络拓扑图进行平面可视化,并获得矢量文件;
网络逻辑拓扑图可视化子模块:用于采用大规模无向图的矢量化显示技术,把平面可视化子模块获得的矢量文件以矢量图的形式显示出来,并实现漫游、无极放缩;
网络安全事件宏观分布图可视化子模块,用于以平面可视化的拓扑信息为依托,从本地数据库中读取安全事件,显示在背景图上;
控制点分布图可视化子模块,用于以平面可视化的拓扑信息为依托,从本地数据库中读取控制信息,并根据控制信息将拓扑信息显示在背景图上。

3.
  根据权利要求1所述的网络安全事件可视化系统,其特征在于所述的数据获取模块(1)采用虚拟层技术,具体结构在每个事件处理模块中定义,采用事件标志符作为数组索引。

4.
  根据权利要求1所述的网络安全事件可视化系统,其特征在于所述数据获取模块(1)对拓扑信息的处理过程为:
首先,通过图形化模块将拓扑文件中的数据转化成图形信息,并形成核心路由器文件、非核心路由器文件;
然后,采用网络模拟模块调用图形化模块形成的网络拓扑图形;并调用分析控制模块中待控制的路由节点集合,
采用分析控制模块从数据库中读取待控制的路由节点集合,并实现络信息分析。

5.
  根据权利要求1所述的网络安全事件可视化系统,其特征在于所述数据获取模块(1)获取异常数据的方法为:在定时从数据库中读取消息记录,当发现异常事件时,将所述异常事件的信息传给虚拟层,由所述虚拟层调用异常事件的预处理函数收集消息,当消息收集完后,由虚拟层调用相应的异常事件处理函数对异常事件进行处理,并将处理结果写入数据库。

6.
  根据权利要求1所述的网络安全事件可视化系统,其特征在于所述拓扑数据的分簇模块(2)用于将获得的拓扑数据进行分簇处理,并将每个为簇的中心分配唯一的标识的方法的具体过程为:
从拓扑数据的点集中选出度数大于或等于25的点作为一个簇的中心点,获得多个簇的中心点,然后把其它点分别加入到各个中心点所在的簇中,具体过程为:
从点集中选出度数大于25的点作为一个簇的中心点,共获得j个簇的中心点;
对于点集中未被选择作为簇的中心点的其它点i,寻找与其距离最小的簇的中心点j,并将所述点i加到所述中心点j所在簇中;
设置保留簇的个数和保留簇号,将其它没有被设置为保留簇的簇合并到被设置为保留簇的簇中,具体合并方法是:对于一个没有被设置为保留簇的簇n,找出与其有边相连、且相连边最多的保留簇m,把簇n中的所有点加到簇m中。

7.
  根据权利要求1所述的网络安全事件可视化系统,其特征在于所述异常数据的坐标映射模块(3)将异常事件对应的点进行标示的过程为:
从数据库中获取异常数据,并按照异常数据中的时间逐一对每一个异常数据相关的点进行标示,所述标示过程为:将异常数据中包含的每一个簇设置一种显示颜色,将异常数据中包含的控制路由的坐标设置成红色。

8.
  根据权利要求1所述的网络安全事件可视化系统,其特征在于所述受力布局控制模块(5)用于将经过网络拓扑图的优化模块(4)处理网络拓扑图根据受力平衡的原则进行摆放,获得新的拓扑图的过程为:首先根据每个子图的质量,按照质量从大到小的顺序将所有子图布置在布局空间中,先布局质量大的子图,后布局质量小的子图,当布局第i个子图时,计算前i-1个子图对第i个子图的作用力,采用遍历算法,遍历矩阵的每一个位置,找到第i个子图受力最小的位置,固定第i个子图,然后布局第i+1个子图。

9.
  根据权利要求1所述的网络安全事件可视化系统,其特征在于所述平面可视化子模块用于采用大规模无向图的平面可视化算法将受力布局控制模块(5)处理后的网络拓扑图进行平面可视化,并获得矢量文件的过程为:
割断网络拓扑图中的每一个子图与其它子图之间的联系,一个孤立子图就是一个无向连通图,将它作为一个规模小于N的网络拓扑图;然后逐一将每一个子图显示成平面图,然后再绘制所有子图之间的连接线,最后,将每一个子图中所有点的坐标及点与点之间的连接线、各个子图之间的连接线信息形成网络拓扑图的矢量文件。

10.
  根据权利要求9所述的网络安全事件可视化系统,其特征在于所述平面可视化子模块中对每一个子图的平面可视化过程为:
点的布局:
以子图内度数最大的点为起始点按广度优先遍历子图,生成树状结构;
然后,从树根开始分配坐标,子节点按顺时针的方向依次排列在以其父结点为圆心的圆周或半圆上;
当所述子节点排满一周后,加大半径,将剩余的子节点再排一圈,直到排布完所有的子节点为止,确定每一个节点的坐标,下面将确定坐标的每一个节电称为顶点。
上述子节点的排布原则是:使度数小的子节点接近圆心,度数大的子节点远离圆心;
边的布局:
判断相互有连接的两个顶点之间的连接直线上是否有其它点,如果没有,则采用直接连线两个顶点;如果有,则在采用弧线连接两个顶点,然后继续判断所述弧线上是否有其它点,如果有,则改变所述弧线的半径重新绘制弧线,然后继续判断所述弧线上是否有其它点,直到所绘制的弧线上没有其它点为止。

说明书

网络安全事件可视化系统
技术领域
本发明涉及到网络安全事件可视化技术领域
背景技术
随着Internet规模和内容的不断扩大和深入,它在人们的生活和工作中发挥的作用也越来越大,但是也不得不看到,由于Internet是一个开放的系统,其潜在的安全问题已经对计算机网络应用产生严重影响。现有的入侵检测系统只是简单地以记录的形式向管理员提交报警信息,管理员很难从枯燥的记录中得出网络当前异常的分布情况。尤其是针对当前的大规模网络分布式攻击,从宏观上掌握安全事件的空间分布状况,对于网络管理者制定有效应急响应策略将提供有力的宏观依据。
为此,提出一种基于主动测量和异常检测技术的防御系统,该系统利用主动测量得到网络的物理连接状况,根据该信息对异常检测探点提交的报警信息进行二次分析,最后以图的形式将异常分布直观地展现在管理员的面前。
在上述系统中,为了显示整张拓扑图,必须把它分割后的子图有效的组织起来,子图之间有的联系少、有的联系相对紧密,只有合理的组织并摆放它们,才能更好的显示整张拓扑图。而网络数据的分析与网络数据的可视化是密不可分的,安全事件的可视化是大规模网络安全宏观预警的重要组成部分。
发明内容
本发明为了解决现有网络安全事件可视化技术不适用于大规模网络系统的问题,提供了一种适用于大规模网络结构的网络安全事件可视化系统。
网络安全事件可视化系统由数据获取模块、拓扑数据的分簇模块、受力布局控制模块、网络拓扑图的优化模块、可视化模块及异常数据的坐标映射模块组成,其中:
数据获取模块,用于主动测量获得真实网络的物理连接状况,从而获得网络底层路由器拓扑连接关系数据、同时,获取异常数据和whois定位库信息,形成网络拓扑图;
拓扑数据的分簇模块,用于将获得的拓扑数据进行分簇处理,并将每个为簇的中心分配唯一的标识;
异常数据的坐标映射模块,用于将获得的异常数据的坐标映射到拓扑数据的分簇模块进行分簇之后的网络拓扑图上,并将异常事件对应的点进行标示,获得标示有异常事件的网络拓扑图;
网络拓扑图的优化模块,用于将标示有异常事件的网络拓扑图进行划分获得优化后的拓扑图,使各个簇之间能够比较均匀;
受力布局控制模块,用于将经过网络拓扑图的优化模块4处理获得的网络拓扑图根据受力平衡的原则进行摆放,获得布局后的拓扑图;
可视化模块,用于将布局后的拓扑图进行可视化。
所述可视化模块由平面可视化子模块、网络逻辑拓扑图可视化子模块、网络安全事件宏观分布图可视化子模块和控制点分布图可视化子模块组成,其中:
平面可视化子模块:用于采用大规模无向图的平面可视化算法将受力布局控制模块处理后的网络拓扑图进行平面可视化,并获得矢量文件;
网络逻辑拓扑图可视化子模块:用于采用大规模无向图的矢量化显示技术,把平面可视化子模块获得的矢量文件以矢量图的形式显示出来,并实现漫游、无极放缩;
网络安全事件宏观分布图可视化子模块,用于以平面可视化的拓扑信息为依托,从本地数据库中读取安全事件,显示在背景图上;
控制点分布图可视化子模块,用于以平面可视化的拓扑信息为依托,从本地数据库中读取控制信息,并根据控制信息将拓扑信息显示在背景图上。
本发明根据大规模网络拓扑的结构特点,提出了对大规模网络安全事件的宏观分布特征和局部细节进行空间可视化的处理办法,最后有效应用于教育网网络安全数据的宏观显示,实验证明为网络管理员提供了直观的显示效果并为其了解网络安全事件整体态势和从全局角度制定行之有效的控制策略提供了有力依据。
附图说明
图1系统各部分模块图。图2是蠕虫事件虚拟层的工作原理示意图。图3是拓扑图数据结构示意图。图4异常数据获取结构示意图。图5是异常数据处理流程图。图6至图8是现有拓扑图中的两个点之间的连线可能存在的三种状态,其中,图6是两个点之间采用直线连接,其连接线上有点的状况,图7是两个点之间采用弧线连接,其连接线上有点的状况,图8是两点间采用弧线连接,连接线上没有点的状况。图9至图11是现有真实网络拓扑图中点和点之间存在的三种连接状态,其中图9是直线型连接,图10是环型连接,图11是星型连接。图12是五个子图采用随机的方式摆放方式进行摆放获得的布局效果图,图13是根据各个子图之间的关联度进行摆放获得的布局效果图;图14一个3X3矩阵的布局图。图15是采用本发明的网络安全事件可视化系统获得的划分并布局完成的网络拓扑图,图16是图15所示的网络拓扑图中的局部放大图,该图表示出异常事件的分布情况,图中的带有颜色的点表示有异常事件发生的位置,图17与图16所示区域相同,该图表示控制路由的分布情况,图中有颜色的区域表示异常数据中所包含的控制路由的位置。
具体实施方式
本实施方式所述的网络安全事件可视化系统包括数据获取模块1、拓扑数据的分簇模块2、受力布局控制模块5、网络拓扑图的优化模块4、可视化模块6及异常数据的坐标映射模块3,其中:
数据获取模块1,用于主动测量获得真实网络的物理连接状况,从而获得网络底层路由器拓扑连接关系数据、同时,获取异常数据和whois定位库信息,形成网络拓扑图;
拓扑数据的分簇模块2,用于将获得的拓扑数据进行分簇处理,并将每个为簇的中心分配唯一的标识;
异常数据的坐标映射模块3,用于将获得的异常数据的坐标映射到拓扑数据的分簇模块2进行分簇之后的网络拓扑图上,并将异常事件对应的点进行标示,获得标示有异常事件的网络拓扑图;
网络拓扑图的优化模块4,用于将标示有异常事件的网络拓扑图进行划分获得优化后的拓扑图,使各个簇之间能够比较均匀;
受力布局控制模块5,用于将经过网络拓扑图的优化模块4处理获得的网络拓扑图根据受力平衡的原则进行摆放,获得布局后的拓扑图;
可视化模块6,用于将布局后的拓扑图进行可视化。
本实施方式中的可视化模块6,可以采用2009年11月24日提交的、专利申请号为:200910310286.2的发明专利申请“基于矢量图和位图的大规模网络拓扑平面可视化方法”中的平面可视化技术。
本实施方式中所述可视化模块6还可以采用下述技术方案实现:
所述可视化模块6包括平面可视化子模块(Plane Visualizing Sub-module)、网络逻辑拓扑图可视化子模块(Topology visualizing Sub-module)、网络安全事件宏观分布图可视化子模块(Distribution visualizing Sub-module)和控制点分布图可视化子模块,其中:
平面可视化子模块:用于采用大规模无向图的平面可视化算法将受力布局控制模块5处理后的网络拓扑图进行平面可视化,并获得矢量文件;
网络逻辑拓扑图可视化子模块:用于采用大规模无向图的矢量化显示技术,把平面可视化子模块获得的矢量文件以矢量图的形式显示出来,并实现漫游、无极放缩;
网络安全事件宏观分布图可视化子模块,用于以平面可视化的拓扑信息为依托,从本地数据库中读取安全事件,显示在背景图上;
控制点分布图可视化子模块,用于以平面可视化的拓扑信息为依托,从本地数据库中读取控制信息,并根据控制信息将拓扑信息显示在背景图上。
本实施方式中所述的数据获取模块1,采用虚拟层技术,具体结构在每个事件处理模块中定义,采用事件标志符作为数组索引。
由于虚拟层唯一需要知道的就是事件的标志符,所述事件标志符可以作为数组索引。采用事件标志符作为数组索引,能够实现方便、快捷的查找到事件对应的处理函数。
本实施方式中采用虚拟层技术,会产生空间浪费,因为不一定所有的分析机器都处理所有事件,但考虑到事件的种类并不多,出于效率的考虑这点损失是值得的。
所述数据获取模块1中,对拓扑信息的处理过程为:
首先,通过图形化模块将拓扑文件中的数据转化成图形信息,并形成核心路由器文件、非核心路由器文件;
然后,采用网络模拟模块(Netsim)调用图形化模块形成的网络拓扑图形;并调用分析控制模块中待控制的路由节点集合,
采用分析控制模块(Analyze_contr)从数据库中读取待控制的路由节点集合,并实现络信息分析。
本实施方式中的拓扑图数据结构参见图3所示,所述拓扑图数据的内容包括:数据大小(size)、标号列表(nodelis)、Ip列表(Iplist)、图形信息(Graph)、主机列表(Hostlist)。
从数据库中读取信息,作为外部接口,表结构如下

  列描述  列名  类型  备注  序号  ID  Autoincrement  KEY  事件类型  TYPE  NUMBER(10)  NOT NULL  路由器标识  ROUTER_ID  NUMBER(10)  NOT NULL  蠕虫端口  PORT  NUMBER(10)  NOT NULL  感染主机IP  IP  NUMBER(10)  NOT NULL  流量(包数)  PKTNUM  NUMBER(10)  NOT NULL  流量(字节数)  BYTENUM  NUMBER(10)  NOT NULL  报警时间  ALERT_TIME  DATA  NOT NULL

所述数据获取模块1获取异常数据的方法为:
在定时从数据库中读取消息记录,当发现异常事件时,将所述异常事件的信息传给虚拟层,由所述虚拟层调用异常事件的预处理函数收集消息,当消息收集完后,由虚拟层调用相应的异常事件处理函数对异常事件进行处理,并将处理结果写入数据库。
所述由虚拟层调用相应的异常事件处理函数对异常事件进行处理,是指找出异常路由器,对异常路由器进行聚类,计算危害程度,找出控制路由器,计算控制策略等。
以异常事件是蠕虫事件为例说明上述数据模块获取异常数据的方法:
程序注册事件后,定时从数据库中读取消息记录,若有蠕虫事件在该段时间内发生,则将发现某一消息(包括蠕虫端口、感染主机ip和信息流量)传给虚拟层,由虚拟层调用蠕虫事件的预处理函数收集消息,当消息收集完后,由虚拟层调用蠕虫处理函数对该消息进行处理,所述处理包括找出异常路由器、对异常路由器进行聚类、计算危害程度、找出控制路由器和计算控制策略等,并将处理结果写入数据库。
异常数据获取原理图参见图4。
上述异常数据处理的方法可以采用下述流程实现,参见图5:
Y1、读取当前时间赋值给Stratime,然后等待60s,将当前时间赋值给endtime;
Y2、判断是否有蠕虫事件的报警时间在startime和endtime之间,如果有,则执行步骤Y3;否则返回执行步骤Y1;
Y3、读取并记录蠕虫事件相关信息,所述信息包括事件类型、路由器标示、蠕虫端口、感染主机IP和信息流量(数据包数);
Y4、判断信息是否读取完毕,如果读取完毕,则执行步骤Y6;否则,执行步骤Y4;
Y5、对已读取的数据进行预处理,将异常主机IP添加到哈希表中;返回执行步骤Y3;
Y6、进行蠕虫事件处理,然后返回执行步骤Y1,等待下一次异常事件报警。
其中,步骤Y6所述的蠕虫事件处理过程为:
Y61、根据异常主机IP哈希表建立路由哈希表;
Y62、根据建立的路由哈息表建立路由间跳数表;
Y63、计算获得路由簇分布;
Y64、计算获得的路由簇的损害程度;
Y65、计算控制策略;
Y66、将计算的控制策略结果存储数据库;
Y67、清理计算过程中的临时变量。
本实施方式中的拓扑数据的分簇模块2用于将获得的拓扑数据进行分簇处理,并将每个为簇的中心分配唯一的标识的方法的具体过程为:
从拓扑数据的点集中选出度数大于或等于25的点作为一个簇的中心点,获得多个簇的中心点,然后把其它点分别加入到各个中心点所在的簇中,具体过程为:
从点集中选出度数大于25的点作为一个簇的中心点,共获得j个簇的中心点;
对于点集中未被选择作为簇的中心点的其它点i,寻找与其距离最小的簇的中心点j,并将所述点i加到所述中心点j所在簇中;
设置保留簇的个数和保留簇号,将其它没有被设置为保留簇的簇合并到被设置为保留簇的簇中,具体合并方法是:对于一个没有被设置为保留簇的簇n,找出与其有边相连、且相连边最多的保留簇m,把簇n中的所有点加到簇m中;
然后,再把分散的小簇合并成比较大的簇,减少簇的个数。
所述异常数据的坐标映射模块3将异常事件对应的点进行标示的过程为:
从数据库中获取异常数据,并按照异常数据中的时间逐一对每一个异常数据相关的点进行标示,所述标示过程为:将异常数据中包含的每一个簇设置一种显示颜色,将异常数据中包含的控制路由的坐标设置成红色。
所述异常数据的坐标映射模块3根据网络异常事件发生的时间顺序,动态将异常数据的坐标映射到网络拓扑图上,进而实现动态显示网络异常事件。由于在选中的网络拓扑图上的异常点是以簇的形式显示,因此将异常数据中包含的同一簇设置为相同的颜色,不同簇的颜色设置为不同颜色,以便于显示区分,同时,还将异常数据相关的每个簇的控制路由器设置成红色,进而在拓扑图在显示过程中,能够一目了然得看到异常数据的相关位置及状态。
本实施方式中,是根据网络异常事件发生的时间顺序对异常数据的坐标进行映射的,因此异常事件的显示也是根据异常事件的发生时间逐一显式的,这样能够真实地刻画出某一异常事件的扩散过程。
本实施方中的显示模块分事件、分时间段对网络异常事件数据进行显示,包括静态和动态两种形式,具体分为:单点增长视图和多点随机视图。
每一个异常事件的IP地址在图中都被映射成一个点,每一个点都是与地图中的某一城市坐标一一对应的;
当同一城市中有多个异常事件的IP地址时,可以采用单点增长视图的方式显示,即通过单纯地增大地图中点的半径来表示某一城市中异常IP数量的增加;还可以采用多点随机视图的方式显示,即根据该点所在的城市坐标每次重新随机生成一个坐标,判断新生成的坐标是否在该城市所辖区域内以及该坐标上是否已经有点,当该坐标在城市所辖区域内且坐标上无点时,在该坐标上画点,否则继续随机生成新坐标,直至所生成的新坐标满足上述条件为止。
上述显示技术中,单点增长视图显示方式是通过圆的区域大小来表示某城市的受危害程度,而多点随机视图显示方式则是通过点的密集程度来表示其受危害程度。
网络异常事件的动态显示方式是严格按照事件发生的时间顺序进行显示的,从而能够真实地刻画出某一事件的扩散过程。显示异常检测结果,在选中的网络拓扑图上显示异常点和异常区域,异常点以簇的形式显示,同一簇的异常点显示相同的颜色,不同簇的颜色不同。同时,还在图中显示了每个异常点的控制路由器,用红色显示。异常信息是存放在数据库中,蠕虫事件检测函数从数据库中读出异常信息,即把每一个数据库表的信息读到相应的数据结构中,然后显示到客户区。
本实施方式中所述的受力布局控制模块5,用于将经过网络拓扑图的优化模块4处理网络拓扑图根据受力平衡的原则进行摆放,获得新的拓扑图的过程为:首先根据每个子图的质量,按照质量从大到小的顺序将所有子图布置在布局空间中,先布局质量大的子图,后布局质量小的子图,当布局第i个子图时,计算前i-1个子图对第i个子图的作用力,采用遍历算法,遍历矩阵的每一个位置,找到第i个子图受力最小的位置,固定第i个子图,然后布局第i+1个子图。
所述根据受力平衡的原则可以采用现有的基于斥力-张力模型的网络拓扑图布局算法,参见2004年2月《计算机工程》杂志第3期,程远、严伟和李晓明发表的“基于斥力-张力模型的网络拓扑图布局算法”文章中所述。
由于d∝|F|/m;公式中d表示子图之间的距离,m表示子图的质量,F表示子图的受力,根据上述公式可知:子图的质量越大,位移移动越少。同时,子图的度数越大,对整个拓扑图的布局影响就越大,因此,按照子图质量的大小,先布局质量大的子图,后布局质量小的子图,布局之后的子图的位置就不再改变,即把它固定在那里,在布局下一个子图时,只考虑已经固定好的子图对它的作用力即可。这里采用遍历算法,遍历矩阵的每一个位置,找到受力最小的位置,这就是它的最接近平衡的位置,也是所要求的位置。
上述对子图进行布局的方法所要达到的效果为:子图分布距离均匀,尽可能少的边交叉,联系相对紧密的子图(即子图间的边较多)尽可能的分布在一处。
实现上述方法的过程可以在用下过程:
用一个矩阵来表示布局空间,行为x轴,列为y轴,坐标(x,y)表示所在位置在矩阵的第i行和第j列;
对于任意两个子图Ga、Gb,定义它们的关联度κ(a,b)κ(a,b)=∑e(u,v) u∈Ga∧v∈Gb,公式中,e(u,v)表示分割边,是指点u和点v之间的连接边的数量。
当κ(a,b)=0,子图Ga、Gb的关联程度最弱,它们之间没有边相连接。
当κ(a,b)>κ(c,b),则Ga与Gb关联程度高于Gc与Gb的关联程度。
由于子图间κ值不同,这就决定了子图不能随机的摆放,它们相互位置与它们的κ值相联系,将κ值大的子图放在一起有利于减少边交叉。如图12、图13所示,图中有5个子图,图12是将所述5个子图随机摆放的结果,图13是根据各个子图之间的关联度进行摆放的,即把联系紧密的子图放在一起,这样可以减少边的交叉,同时,也能够清楚地展示各子图之间的连接关系。
布局算法希望达到以下效果:子图分布距离均匀,尽可能少的边交叉,即κ值相对高的子图尽可能的分布在一处。
给定一个连通的无向图G(V,E),它由m个子图{Gm,Gm-1L L G1}和子图间的边组成。定义一个m*m的矩阵Lm*m,用它表示图G的布局空间。例如下图给出了一个由3个子图组成的图的布局矩阵。令i,j∈{0L L m-1},L[i,j]等于k(k>1)表示子图Gk占据该区域,L[i,j]等于0表示该区域没有被任何子图占用。X[i]表示的是第i行区域的起始横坐标,Y[j]表示的是第j列区域的起始纵坐标,L[i,j]区域横坐标范围为(X[i]=X[i]+Gi*length),纵坐标范围为(Y[i]=Y[i]+Gi*width)。
子图的布局也就转化为在矩阵中布局,参见图14所示的是3*3的布局,从图中可以看出,3个子图呈三角形摆放,并且子图号标明了每个子图在整张图上的位置。
拟物算法是找到与原始数学问题等价的物理世界,并观察这个世界中物质运动的生动形象,从中受到启发以求解数学问题。
可以把布局矩阵看作一个盒子,每一个待布局的子图是盒子中的一个具有质量小球,连接子图的边看作是皮筋,κ值不同,则弹性系数不同,它有自然长度(即不受外力时的长度),如果被拉长,则表现出张力,任意两个小球之间有斥力。通过引入这样一个物理系统,子图在矩阵中的布局过程就转化为小球在盒子中按力学规律运动,最终达到平衡过程,平衡时小球所在盒中的位置就是子图要在布局矩阵中的摆放的位置。
对于任意的拓扑图来说,把每一个子图看作一个质点,它有自己的质量;把每一条边看作一条橡皮筋,它有自然长度(即不受外力时的长度),如果被拉长,则表现出张力;任意两个顶点之间互相有斥力的作用。这样的一个物理系统,定义了张力和斥力的公式后,给图中每一个质点(顶点)一个随机的位置,就可以让其按照物理规律自行运行;在每一步中,计算各个顶点受到的合力,并让该顶点沿合力方向位移一定的距离,直至最终达到平衡。根据物理意义,算法的结果满足有边相连的子图由于拉力的作用而会分布在一起,距离相近的子图分布均匀,边的交叉尽可能少(斥力作用)。
物理公式的选取:
1)张力公式:
|Tension(vi,vj,ek)|=0,(Length(ei)=Distance(vi,vj))k×(Distance(li,vj)-Length(ei)),(Length(ei)<Distance(vi,vj))]]>
上述公式表试点vi和点vj之间的张力的大小,k越大,Length越小,布局越紧密。其中变量k表示子图的度数,ei表示节点i的边、ek表示节点k的边、k、Length(ei)表示节点i的便的长度、Distance(vi,vj)表示表示vi和点vj之间的距离、Tension(vi,vj,ek)表示节点vi和点vj之间的连接边为ek的情况下,所产生引力。
2)斥力公式:
|Repulsion(vi,vj)|=f,(Distance(vi,vj)=0)g×Mass(vi)×Mass(vj)Distance(vi,vj)2,(Distance(vi,vj)&NotEqual;0)]]>
上述公式表试点vi和点vj之间的斥力的大小,公式中的f表示当Distance(vi,vj)为0时,vi和点vj之间的力、Mass(vi)表示点vi的质量、Mass(vj)表示点vj的质量。
可以考虑质量和子图的度数成正比,对比于网络拓扑中常见的星型结构,中心点的度数越大,其质量越大,斥力越大,其周围顶点就有更多的空间分布。
由于在矩阵中布局不可能像物理世界那样精确,我们采用一种贪心算法,采用有序布局。来避免真实物理世界的精确计算,同时又能获得较好的效果。
所述受力布局控制模块5实现上述功能的过程可以采用下述程序实现,该段程序的输入信息为将经过网络拓扑图的优化模块4处理有的网络拓扑图信息,即划分后的子图信息,及子图之间邻接矩阵,
for V中的每一个子图vi
          在画布内随机为vi分配坐标(xi,yi);
          Force(vi)=0;
      end for
     while有尚未布局的子图
从尚未布局的子图集合中选出一个的质量最大的子图vi;
      for与vi相邻的每一条边(vi,vj)
        if vj已布局
          Force(vi)+=Tension(vi,vj);//计算拉力
        end if
      end for
for V中的每一个顶点vj
        if vj已布局
          Force(vi)+=Repulsion(vi,vj);//计算斥力
        end if
      end for
      ForceMin=Force(vi);
     //遍历找出受力最小的位置
      for布局中的每一位置(xj,yj)
        if该位置未被占用
计算该位置的合力Force(vi);
if Force(vi)<ForceMin;
ForceMin=Force(vi);
           xi=xj;//记录受力最小位置
           yi=yj;
           end if
       end if
     end for
end while
经过上述程序处理,获得的输出结果就是拓扑图每一个子图的位置坐标信息(xi,yi),然后根据获得的每一个子图的位置坐标信息放置每一个子图,获得布局后的整张拓扑图。
上述布局的方法,为了显示整张拓扑图,首先把整张拓扑图分割后的子图有效的组织起来,并使子图之间有的联系尽量少,并且有的联系相对紧密。然后采用合理的布局来摆放它们,更好的显示整张拓扑图。
所述平面可视化子模块用于采用大规模无向图的平面可视化算法将受力布局控制模块5处理后的网络拓扑图进行平面可视化,并获得矢量文件的过程为:
割断网络拓扑图中的每一个子图与其它子图之间的联系,一个孤立子图就是一个无向连通图,它可以看作一个规模小于N的网络拓扑图;然后逐一将每一个子图显示成平面图,然后再绘制所有子图之间的连接线,最后,将每一个子图中所有点的坐标及点与点之间的连接线、各个子图之间的连接线信息形成网络拓扑图的矢量文件。
所述平面可视化子模块中对每一个子图的平面可视化过程为:
点的布局:
以子图内度数最大的点为起始点按广度优先遍历子图,生成树状结构;
然后,从树根开始分配坐标,子节点按顺时针的方向依次排列在以其父结点为圆心的圆周或半圆上;
当所述子节点排满一周后,加大半径,将剩余的子节点再排一圈,直到排布完所有的子节点为止,确定每一个节点的坐标,下面将确定坐标的每一个节电称为顶点。
上述子节点的排布原则是:使度数小的子节点接近圆心,度数大的子节点远离圆心;
上述点的布局过程中,将度数大的子节点远离圆心布置,这样使度数大的子节点有更多的空间分配它的子节点。
本实施方式所述的平面可视化子模块中,考虑真实网络拓扑中的三种结构:线型、环型、星型,如图9至图11所示,以上三种结构中,线型和环型都可以看作是星型的特殊情况,同时,星型结构是网络拓扑中最常见的结构,而且这种结构具有良好的扩展性,例如可以以圆周上的一点为中心,再扩展一个星型结构。基于以上考虑,本实施方式中点的布局采用星型结构来分布子图内的点。
边的布局:
判断相互有连接的两个顶点之间的连接直线上是否有其它点,如果没有,则采用直接连线两个顶点;如果有,则在采用弧线连接两个顶点,然后继续判断所述弧线上是否有其它点,如果有,则改变所述弧线的半径重新绘制弧线,然后继续判断所述弧线上是否有其它点,直到所绘制的弧线上没有其它点为止。
上述边的布局过程中,在绘制每一条连接线时,都要判断所述连接线上是否节点,当有节点时,重新绘制连接线,直到所绘制的连接线上没有点为止,进而保证所绘制的拓扑图中没有点线重叠的情况,完全避免了由于点线重叠的情况影响视觉效果的问题。同时容易引起误解,例如,参见图所示,点a和b之间的直接连线经过点c,会被误以为a与c相连,c与b相连,导致逻辑错误。
上述边的布局过程可以采用下述程序实现:
#define NUM 12
vi=FindMaxDegree(G);    //找到度数最大的点vi
     BFS(vi);                //从vi为根先广遍历,建立树结构
     AllocCenterPt(vi);        //先为vi分配坐标
     if(degree(vi)<NUM)
        AllocLessNum(vi,R);    //如果vi度数小于NUM,只分配一圈
     end if
    else
       begin
         Sort(vi);                //把与vi相邻的点按度数排序
         for j←1 to degree(vi)       //为与vi相邻的点分配坐标
           vj·x=vi·x+R*cos(angle*π/180)
           vj·y=vi·y-R*sin(angle*π/180)
           if(j%12==0)         //排满一圈,改变圆半径,排下一圈
             R=R+step;
         end for
       end
       for k←1 to BranchNum(vi)    //为其他层分配坐标
          AllocOtherBranch(k);
       end for
       for every e(vi,vj)∈E    //边的布局
         if(!conflict(vi,vj))
          drawLine(vi,vj);    //两点间连线上无其他点,直接画直线
         else                     //否则画弧
           repeat
             Radius=Radius+iStep;//改变弧的半径
     until(conflict(vi,vj))    //直到弧不经过除端点外的其他点
     DrawArc(vi,vj,R);    //画弧
end for
图6至图8展示了用该技术连接a、b两点的过程,首先判断点a和b之间的直线连接线上是否有点,从图6可知,所述直线连接线上有点c,;然后修改连接线变成弧线,参见图7,所述弧线上有点d;再次重新绘制连接线,增加弧线的半径重新绘制弧线,参见图8,此时所绘制的连接线上没有任何点,点a和点b之间的连接线绘制完毕。
平面可视化子模块中对每一个子图的平面可视化完成之后,获得每个子图中的所有点的坐标及各点之间的连接线,然后绘制相邻子图之间的连接线,绘制过程与子图内的边的布局的过程相同。
本实施方式所述的平面可视化子模块首先是对于任意一个子图Gi=(Vi,Ei)的平面可视化,将所述子图中的点和边布局在平面上,使图具有平面特性,最终能够以平面图的方式显示出来,在平面显示的过程中能够保证以下几个特性:
点的互斥性:对于任意两点,为其分配的坐标不同。否则,将导致若干点在平面上被覆盖。
点的邻接性:若两个点相邻,则它们尽量分布在一起,这样能更好的体现点的相邻关系。
边的准平面性:一条边不经过除顶点外的其他任何顶点,这样能够更好的体现点的连接关系,避免误解。

网络安全事件可视化系统.pdf_第1页
第1页 / 共23页
网络安全事件可视化系统.pdf_第2页
第2页 / 共23页
网络安全事件可视化系统.pdf_第3页
第3页 / 共23页
点击查看更多>>
资源描述

《网络安全事件可视化系统.pdf》由会员分享,可在线阅读,更多相关《网络安全事件可视化系统.pdf(23页珍藏版)》请在专利查询网上搜索。

网络安全事件可视化系统,涉及到网络安全事件可视化技术领域。本发明解决了现有网络安全事件可视化技术不适用于大规模网络系统的问题。本发明中采用数据获取模块主动测量获得网络的物理连接状况来获得拓扑数据、异常数据和whois定位库信息,并形成网络拓扑图;采用拓扑数据的分簇模块将拓扑数据进行分簇处理,并为每个为簇的中心分配唯一的标识;采用异常数据的坐标映射模块将异常数据的坐标映射到网络拓扑图上,并标示异常事。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1