APP下载

基于图和并行计算的云计算攻击图

2019-01-28仇晓锐

中国民航大学学报 2018年6期
关键词:有向图可扩展性网络系统

仇晓锐

(中国民航大学信息网络中心,天津 300300)

自2006年云计算提出以来,经过十多年的发展,承载在云计算上的IT负载已由原来的2%增加到现在的27%。亚马逊、谷歌、微软、Rackspace等云服务的企业用户数均已达到数十万量级。同时,中国近几年在云计算产业上的发展始终保持着30%以上的增长率。阿里云、腾讯云、华为云等企业所提供的应用正在从互联网行业转向传统行业[1]。

对于包含有限主机和漏洞的小型网络系统,安全评估可以由有经验的安全专家手动执行。但当主机和漏洞数量增加时,安全工作评估的复杂性会急剧增加,而云计算因其本身的复杂性和可扩展性,该问题表现更为突出。为了实现自动化的安全评估,需要选择合理的攻击表示模型、框架和工具。其中,比较著名的攻击表示模型有基于图和基于树两种类型。基于图的攻击表示模型能够根据攻击路径生成一张完整图,但当漏洞数量及其可达性增多时,这些模型会出现严重的可扩展性问题。与Sheyner等[2]提出的生成工具相比,攻击图生成工具MulVAL[3-4]具有更高的可扩展性,但在逻辑攻击图的表示阶段或攻击场景生成中,MulVAL同样可能会遇到指数爆炸问题。而Mjihil等[5]和Kaynar等[6]通过使用分布式系统来解决攻击图生成过程中遇到的状态空间爆炸的问题。

针对云计算平台安全评估中所遇到的问题,提出一种基于图的安全框架,通过使用SDN的特性[6-8]、图分解[9-10]及并行计算等方法来提高该安全框架的可扩展性。对于大型且稀疏网络系统的安全框架,首先利用图论的知识把网络抽象成一个有向图,然后使用强连通分量分解的图论技术对其网络拓扑进行分解,将该有向图转化为更小的子图,即强连通分量(SCC)。在此基础上,对每个分量执行并行的安全性分析,最后对分析结果进行匹配并最终生成攻击图。

与传统基于模型的安全分析系统相比,提出的解决思路对可扩展云平台的可视化和评估有明显的改进,主要优点如下:①使用图划分解决了云中的安全性分析可扩展性问题;②其分布式特性能够有效减少各阶段(再处理、构建、评估、对策选择和应用)的安全性分析时间;③能够适应在使用SDN的云架构中发生的任意结构变换。

1 安全框架的设计与实现

1.1 安全评估模型与流程

安全评估的主要任务是评估网络系统的弱点及可能受到的攻击。但如果无法获得关于网络拓扑和软件级别漏洞的详细信息,就无法获得准确地评估结果。通过使用网络拓扑结构描述虚拟机间的2、3、4层之间的组合连接,并使用机器配置表示在每个虚拟机上应用的安全策略集及其承载的服务和应用程序列表。仅根据OSI模型中2、3层之间的连接信息来评估网络系统的安全性是远远不够的。由源地址、目的地址和一个端口号确定的第4层连接可提供更多关于在两个通信主机之间的开放端口、当前允许/阻塞的协议或服务的附加信息。因此构建在前文提及的安全框架通常需要补充两类信息:①可达性信息,即网络拓扑;②漏洞信息,即对所有虚拟机和目标网络主机的完整分析结果。

为了获取更加精确的评估结果,提出的框架使用SDN控制器对网络系统实行集中管理和呈现。这些信息以流量规则的形式存储在网络控制器中,而这些规则是通过网络的开放流量开关来发送和保存的。流量规则可达到高粒度的级别,并可针对特定的端口进行适当的调整。同时开放流量协议还可提供一些额外的如流量的源地址和目的地址、流量规则优先级及有效时间等信息,其中流量规则是构建网络拓扑结构的关键元素。

可达性图是一种有向图,构建可达性图需要获取关于每个主机的网络连接、应用程序、运行服务及允许流量的方向等精确信息。该框架使用机器配置信息和安全策略来更加精确地构建可达性图,同时还能够获取到当前在每个虚拟机上安装部署的应用程序,然后将这些知识应用在可达性图的构建、入侵防护或对策应用上,从而有效避免因信息缺乏导致无法确定服务部署位置等问题。图1列出了框架中最重要的组件。

图1 安全评估模型Fig.1 Security assessment model

安全评估是一系列连续步骤,每步都需要输入一些特定信息并产生一个结果,而该结果将被用作下一个阶段的输入信息。图2为实施安全性评估时操作的执行流程图。

1.2 强连接分量的分解

在网络系统中,虚拟机和他们之间的连接信息可用一个有向图 G=(V,E)来表示。其中:V(或 V(G))是一组顶点,用来表示虚拟机;E(或E(G))是一组有向边,用来表示虚拟机之间的连接。在不破坏强连接顶点之间连接的前提下,将主有向图分解成一组子图。在图论中,一个有向图的SCC是包含相互可达的顶点的子图C。从安全的角度来看,如果每两个相邻的分量之间的连接都是单向的,那么相邻的两个攻击图之间的影响和可达性也是单向的。在完成分解之后,分解得到的分量在所有安全评估阶段中将会执行并行处理。而攻击图的匹配过程将依赖于连接两个相邻SCC的边数和在有向边上存在的可达漏洞。

文献[9]中提出的算法来源于Kasaraju-Sharir算法,该算法通过执行两个深度优先搜索来获取数据。其中第一个深度优先搜索的目标是获得顶点的拓扑顺序,而第二个深度优先搜索则是针对其转置图进行的,从而发现有向图中的SCC。该算法能够对有向图执行检测并返回SCC,其中有向图中的每个顶点能够正确地在其中一个SCC中出现,其时间复杂度为O(|V|+|E|)。由于需要将一个表示定点间的邻接关系列表作为输入参数,其空间复杂度为O(|V|+|E|)。获取SCC的算法描述如下:

图2 安全评估流程图Fig.2 Security assessment flow chart

图3为租户虚拟网络系统的可达性图,而图4则为使用上述算法所获得的所有SCC,其中每个椭圆内所包含的就是一个SCC。

图3 租户虚拟网络系统Fig.3 Tenant virtual network system

图4 租户虚拟网络的强连通分量Fig.4 Strongly connected component of tenant virtual network

1.3 攻击图匹配

为了保证在执行分解后不会丢失任何信息,该框架会生成如下两种类型的攻击图:

1)为每个SCC生成一个名为Sub_AG的攻击图,Sub_AG中只表示SCC内存在的漏洞间的内部交互;

2)定义一个名为Match_AG的攻击图用来表示连接邻接SCC的外部边。

每个SCC生成的Sub_AG,可以用来完成安全评估的可视化、本地攻击路径生成和对策选择等目标。但为了构建关于整个网络系统的攻击图,需要将Sub_AG和Match_AG作为合并算法的输入信息来生成攻击图。第一步找到邻接的两个SCC,如果两个SCC邻接,则其中一个SCC中至少存在一个主机与另一个SCC中的主机相连。根据上文提到的算法可知,连接两个SCC的所有边都有相同的方向。第二步访问所有的邻接SCC,并使用从Match_AG获取的相应信息来匹配这些强联通分量的Sub_AG。此外根据Match_AG中的漏洞信息,能够对Sub_AG中有向边上的漏洞列表进行扩展。

由于每个主机只能属于一个SCC,所以计算成本是由主机的数量和边的数量决定的。因此,时间复杂度与邻接表中的边数正相关。即该算法的第一步和第二步的时间复杂度均为O(|V|+|E|)。

2 性能评估

2.1 实验环境

实验环境采用一台HP DL380 Gen9机架服务器,其关键配置为英特尔Xeon(至强)E5-2650 v3@2.30 GHz(X2)、128 GB DDR4 2 133 MHz 和 3 TB 7 200 SAS。前期已建立图3所示的网络系统并使用OpenVSwitch、OpenDayLight控制器和OpenFlow协议自动管理网络配置。为了安全实现与SDN控制器的交互,使用的是RESTful Northbound应用程序,该应用程序从控制器获取活动流量规则用来构建可达性图,并向控制器发送新的流量规则(如阻塞IP地址)作为对策应用程序。

在实验中,设计考虑了4种不同类型的虚拟机。

1)客户机 在该类虚拟机上托管一些客户机应用程序,如 Microsoft Office 2016、Microsoft Visio 2013、MyEclipse 10、Wireshark等,用于浏览、编程和其他服务。同时在这些虚拟机上还安装了Safari、SSH Tectia客户端服务器连接器和GNU C库的脆弱版本。

2)文件服务器 在该类虚拟机上承载了Wing FTP Server、Microsoft FTP和其他版本的FTP服务器。

3)Web服务器 在该类虚拟机上安装了Microsoft IIS、Tomcat、Apache HTTP服务器和其他相关服务的脆弱版本。

4)数据库服务器 在该类主机上安装了Oracle、MySQL、SQL Server 2016等数据库服务器。

构建攻击表示模型,首先需要使用如Nessus的漏洞扫描器来收集网络系统中虚拟机存在的漏洞,如表1所示。在扫描结果中可获取到每个主机上存在的漏洞列表和一些关于漏洞的附加信息。在执行完分解和漏洞扫描之后,通过分配给系统的8个虚拟内核,使用GNU Parallel[11]来对Sub_AGs和Match_AG执行并行操作。

表1 部分漏洞列表Tab.1 Partial vulnerability list

2.2 实验结果

通过两种互补实验,分别测量执行分解前后及在主机数量和漏洞数量增加时对攻击图生成和可视化性能的影响,进而验证了分解和并行处理在攻击图生成和分析中具有一定的有效性。

在对实验网络系统进行全面扫描后,获得Nessus漏洞扫描器报告。在实验中,通过测量在整个网络中使用MulVAL构建和可视化一个攻击图所需的时间,然后与执行分解操作之后生成和可视化攻击图所需的时间进行比较。两次实验均采用图3所示的网络架构。一旦网络结构发生变化将会影响主机数量的变化,从而影响SCC的数量。所以此评估过程中需要使用前面所提到的匹配技术来将连接相邻SCC的外部边缘考虑在内。评估结果如图5和图6所示,分解和并行处理改善了在攻击图生成和可视化的执行时间。网络越稀疏和平衡,安全性评估耗时就越少。

图5 主机数量对评估耗时的影响Fig.5 Impact of host number on evaluation time consumption

图6 漏洞数量对评估耗时的影响Fig.6 Impact of vulnerability number on evaluation time consumption

图6 显示分解后将减少漏洞对攻击图生成和可视化的影响。在这种情况下,保持相同数量的主机和SCC,只改变漏洞的数量,当在不同的SCC中不同的主机上注入漏洞时,时间差异开始明显增加。

3 结语

通过综合利用基于SDN的技术、分解和并行计算的方法来改进基于图形的安全性评估的可扩展性。与MulVAL当前所使用的攻击图生成和可视化技术相比,提出的框架能够大大改进攻击图的生成和可视化时间。实验结果表明,提出的安全框架对于云计算的安全性评价是非常有效的。而网络拓扑发生更新时,需要对更新进一步区分,当更新发生在SCC内部时,只需要更新SCC的安全状态而不需要更新整个系统,当更新发生在SCC之间时如何能够高效地更新系统的安全状态是下一步的研究方向。

猜你喜欢

有向图可扩展性网络系统
广义棱柱中的超欧拉有向图
极大限制弧连通有向图的度条件
有向图的Roman k-控制
浅析石油化工工厂网络系统的一体化设计与实现
辽宁省高速公路收费集中监控网络系统建设探讨
基于DEMATEL-ISM的军事通信网络系统结构分析
恩智浦推出全新i.MX 8X 处理器,为工业应用带来更高的安全性、可靠性和可扩展性
基于微软技术的高可扩展性中小企业系统解决方案研究
设计模式的战术标图系统数据组织与管理设计*
一种基于MapReduce的频繁项集挖掘算法