基于虚拟节点管理的云安全漏洞扫描系统
2017-01-05廖金菊冯光辉
廖金菊,冯光辉
(郑州工业应用技术学院 信息工程学院,河南 郑州 451150)
综 述 doi:10.3969/j.issn.1673-5692.2016.05.006
基于虚拟节点管理的云安全漏洞扫描系统
廖金菊,冯光辉
(郑州工业应用技术学院 信息工程学院,河南 郑州 451150)
安全漏洞问题是众多的云安全问题中非常重要的一部分。目前针对网络安全漏洞扫描的软件或者系统不能够很好的适用于云计算网络,而为了满足在云环境下的分布式漏洞扫描需求,需要实现对多扫描节点的全面管理,所以给出了一种基于分布式虚拟节点管理的云安全漏洞扫描系统研究方案,通过分析扫描节点的生命周期和基于此生命周期的扫描节点工作流,着重设计了虚拟扫描节点在其生命周期各阶段的管理策略,并接受管理平台的即时监控。该方案能够根据不同的任务调度策略合理分配扫描任务以及快速检测异常扫描节点,从而实现任务合理迁移和扫描节点的回收。
云安全;漏洞扫描;虚拟节点管理;分布式
0 引 言
当前,随着计算机网络和通讯技术的快速发展以及网络应用的日益丰富,利用开放的网络环境进行全球通信已成为时代发展的必然趋势。然而,网络在提供高效和便利的同时,也带来了诸多安全隐患。据调查显示,黑客攻击系统的方式正在朝多样化方面发展,病毒和木马等黑客工具的差异区分逐渐在减少,利用系统漏洞进行攻击的手段层出不穷[1-2]。其中,漏洞扫描技术就是防范漏洞攻击手段的重要网络安全技术,漏洞扫描技术可以根据已知的漏洞信息,通过端口探测等扫描手段对网络中指定的计算机系统进行安全脆弱性检测,以便使网络管理员能够及时发现系统中可以被利用的漏洞,通过对漏洞的风险等级进行评估,从而提前制定防范措施。相对于防火墙这种安全防御措施来说,漏洞扫描可以算作是一种主动的防御,能够有效地做到防范于未然。因此,加强漏洞扫描技术的研究对于网络安全具有十分重要的意义。近年来,网络技术的进一步发展和分布式计算、网格计算等技术的涌现,云计算这一概念应运而生。云计算是一种面向互联网海量数据,按需提供共享软硬件资源的计算方式,是信息技术时代的又一次飞跃,云计算技术自产生以来逐渐成为网络技术发展的热点和趋势。云时代的IT架构改变了IT资源的存在形式和组织形式,但是由于数据的聚积,安全问题的影响也必然经历量变到质变的过程。云计算技术的按需自服务、资源池化、快速弹性可扩展、广泛的网络接入、可测量性和多租户架构等特点直接影响到了云计算的安全以及相关的安全保护策略。当然,在众多的云安全问题中,安全漏洞问题是十分重要的一部分,云计算的上述几个特点可能会使其暴露出更多的安全漏洞。
目前,针对网络安全的传统漏洞扫描软件或系统并不能很好地适用于云计算网络中,这是因为传统的漏洞扫描主要是基于主机或网络的漏洞扫描:如果在云环境下采用基于主机的漏洞扫描,需要在每台虚拟机上安全漏洞扫描软件,将会造成资源浪费,而且当同时扫描虚拟机时将使物理主机的资源占用率瞬时增加,将会降低虚拟机性能;如果在云环境下采用基于网络的漏洞扫描,当需要扫描的目标主机过于多时,将会造成服务器端的性能瓶颈。近年来,国内外研究人员对于云环境下的漏洞扫描也取得了一定的成果。Mika[3]在其学位论文中对于云安全漏洞扫描问题做了系统全面的梳理研究。Wei等人[4]针对网络在漏洞扫描时TCP连接多、开销大、外部网络不能扫描内部目标主机漏洞等问题,给出了一种基于云平台的虚拟机镜像安全管理方案。Wang等人[5]给出了一种结合TURN扩展协议和Socks5协议的CoundProxy代理扫描方案,以减少服务器端因漏洞扫描所带来的通信负载。文献[6]针对IaaS平台多目标虚拟机的漏洞扫描问题,给出了一种基于多代理的分布式漏洞扫描方案,有效降低了多目标虚拟机的漏洞扫描耗时。文中所给的基于分布式虚拟节点管理的云安全漏洞扫描系统(cloud security vulnerability scanning system based on Distributed Virtual Nodes Management, DVNM)能够很好地适用于云计算网络环境下。为了满足在云环境下的分布式漏洞扫描需求,所给方案通过实现对多扫描节点的全面管理,同时完成扫描节点的虚拟化部署方案,从而能够按照漏洞扫描任务的需要,动态调度分配扫描节点,可以实现任务的高效率执行,对于云安全漏洞扫描技术的发展具有一定的理论研究意义和实际应用价值。
1 云安全漏洞扫描系统架构
目前,一般的漏洞扫描系统大多都只是一个可执行漏洞扫描功能的整体,有些虽然也有一定的模块划分,但其模块的耦合度较高,提供的功能也相对单一,这类扫描系统一般一次只能扫描一个漏洞,但不支持针对大规模目标、多种安全漏洞的扫描[7]。而有些能够满足大数据量访问需求的漏洞扫描产品(比如OpenVAS等),其管理平台和扫描节点是一对一的关系,当大数据量任务请求到达时,会使扫描节点不堪重负,将严重降低系统性能和执行时间,而且占用的系统资源过多。为适应大规模扫描任务和多种安全漏洞扫描的请求,本文所依托的分布式云安全漏扫系统充分利用云计算环境的虚拟资源,可以支持多个漏洞扫描节点的分布式管理,统一接受一个漏洞扫描管理平台的集中管理,并提供漏洞扫描插件库以支持多种漏洞的扫描。因此该系统主要分为扫描管理平台,多个扫描节点以及漏洞扫描插件库,其系统架构图如图1所示。
图1 云安全漏洞扫描系统模块架构图
其中,漏洞扫描管理平台模块主要是负责接收和处理用户的请求并对扫描节点组件模块进行统一管理。该模块主要包括任务管理子模块、扫描器管理子模块、漏洞库管理子模块、账户管理子模块和数据存储子模块五个子模块。任务管理子模块主要用于完成与扫描任务相关的管理功能,接受用户或上层管理平台的用户请求并可向扫描节点组件模块发送任务管理请求。漏洞库管理子模块主要用于完成对漏洞扫描插件库模块的管理。扫描器管理子模块主要用于完成扫描器管理功能。账户管理子模块主要用于完成对用户的管理,区别普通用户和管理员,进行角色认证和鉴别等。数据存储子模块主要用于完成对在线安全检测子系统的数据存储和管理。漏洞扫描节点组件模块主要是完成具体扫描任务,提供扫描执行功能,为漏洞扫描管理平台模块提供接口调用,并接受漏洞扫描管理平台模块的管理。接口子模块主要是提供扫描节点组件模块与扫描管理平台以及漏洞扫描插件库之间的接口。扫描执行子模块执行具体的扫描任务,主要包括扫描插件的执行、扫描插件的调度、扫描结果记录的存储管理。漏洞扫描插件库主要包含具体执行扫描任务的所有漏洞扫描插件,并且能够针对其对应的安全漏洞内容进行扫描,然后给出相应的执行结果。所给DVNM方案的分布式虚拟节点管理就是位于扫描管理平台的扫描器管理子模块,来实现对多个扫描节点的管理。云安全漏洞扫描系统的业务流程示意图如图2所示。
图2 云安全漏洞扫描系统业务流程示意图
2 虚拟扫描节点生命周期
为了实现对扫描节点的管理,首先需要分析扫描节点的生命周期。分析虚拟扫描节点的生命周期,能够有助于明确虚拟扫描节点在各个阶段的形态,从而进行合理有效的管理[8]。通过对虚拟扫描节点从创建到回收的各个阶段进行分析,可知一个虚拟扫描节点在漏洞扫描系统中基本需要经历创建、部署、分配、执行扫描和回收五个阶段,在此期间还需要对虚拟扫描节点进行资源、效率和是否活跃等方面进行全面监控。虚拟扫描节点的工作流由一系列虚拟扫描节点的生命周期组成的,具有时间叠加和空间叠加的特性,也即是说多个虚拟扫描节点可拥有以共同的生命周期时间段,多个虚拟扫描节点可以部署在同一台物理机上。有效地管理和维护虚拟扫描节点工作流,使其可以高效、无中断地运行,能够在达到降低系统资源消耗的同时,实现漏洞扫描服务吞吐率的最大化。虚拟扫描节点生命周期示意图如图3所示。
图3 虚拟扫描节点生命周期示意图
(1)创建阶段:主要是根据用户需求创建相应的虚拟扫描节点,其中虚拟扫描节点的信息包括节点名称、身份标识、网络地址、端口地址、服务地址和节点状态等。
(2)部署阶段:主要是根据任务利用统一的扫描器镜像模板,通过一键式部署脚本来创建和部署虚拟扫描节点的扫描引擎。同时,将虚拟扫描节点部署到相应的目标网络中,并存储虚拟扫描节点的相关信息。
(3)分配阶段:主要是根据虚拟节点监控子模块传回的扫描器状态信息以及任务调度算法,将任务分配给合适的虚拟扫描节点,同时需要维护扫描节点管理队列。另外,可根据任务调度方案对正在进行的任务执行暂停、恢复或停止等操作。
(4)执行阶段:主要是根据已分配的任务对目标主机进行漏洞扫描。同时,在虚拟扫描节点异常连接时,可根据任务迁移方案将未完成的任务迁移到其它虚拟扫描节点,由新的虚拟扫描节点对任务目标主机继续执行漏洞扫描任务。
(5)回收阶段:当遇到虚拟扫描节点异常连接、执行扫描任务的过程中发生故障、系统管理员需要停用部分虚拟扫描节点等异常情况时,通过对虚拟节点进行有效回收来释放这些扫描节点所占用的系统资源,主要回收该虚拟扫描节点的IP和端口等信息。
(6)状态监控:主要是对虚拟扫描节点的运行状态信息进行监控,当虚拟扫描节点异常连接时能够及时进行回收和任务迁移,以保证虚拟扫描节点保持正常运行状态。
3 虚拟化部署方案
虚拟化的主要目的是在于集中管理任务,从而可以简化运维流程以及降低成本,同时也能够改善计算资源有效利用率和可用性。简单的来说,虚拟化就是改善在传统一台物理服务器上运行一个应用程序的模式,让物理服务器硬件及网络资源能够被充分的配置利用,使得一台物理服务器上能够运行多个互相独立的虚拟机,并执行多个应用服务程序,从而实现以较少的硬件资源完成更多更有效率的服务,达到节省总拥有成本并增加投资回报的目的。对于云安全漏洞扫描系统来说,采取虚拟化部署的方法可以有效适应云计算环境特点以及提供高效快速的漏洞扫描服务[9]。例如,通过采用虚拟化技术,软件能够在共享的硬件上运行实现了云计算中资源池化的特征,也可以有效共享执行漏洞扫描任务所需的CPU、内存等各类资源,因而可以屏蔽不同机器底层的硬件差异,使得用户能够专注于应用。所给DVNM方案的虚拟化部署方案如图4所示,虚拟扫描节点通过虚拟交换机与管理平台相连,可通过接口统一接受外部第三方系统或者上层管理员的管理,这种方式可以方便地对虚拟扫描节点进行部署、管理和回收,同时有效地进行扫描任务的监控和迁移。
4 虚拟扫描节点管理方案设计
在分析虚拟扫描节点的生命周期并建立了虚拟化部署方案后,可以针对虚拟节点生命周期中的不同阶段对其进行管理。虚拟扫描节点管理模块的结构如图5所示。
图5 虚拟扫描节点管理模块结构图
4.1 虚拟扫描节点部署子模块
对于在云环境条件下漏洞扫描服务的使用者来说,仅仅关心的是漏洞扫描服务有没有正确部署,当缺少足够的扫描节点时能否可以方便地获取足够正常工作的扫描节点,而对于其中镜像管理、虚拟扫描节点的创建、虚拟网络协议配置等等都是不需要关心的,即这些功能对用户可以是透明的。虚拟扫描节点部署子模块利用统一的扫描器镜像模板,通过一键式部署脚本来实现扫描引擎的创建和部署。创建和部署后的虚拟扫描节点在数据库中存储的信息如表1所示。
表1 数据库中存储的虚拟扫描节点信息
4.2 虚拟扫描节点分配子模块
为了可以充分利用分布式系统的巨大处理能力,虚拟扫描节点分配子模块在分布式云安全漏洞扫系统任务调度算法的基础上,同时为实现该漏洞扫描系统中各扫描节点的负载均衡提供支持。该模块通过维护一个扫描节点管理队列,然后根据虚拟节点监控子模块传回的扫描器状态信息以及任务调度算法的输出,将任务分配给合适的虚拟扫描节点,同时还可以将正在进行的任务暂停、恢复或停止。该模块与虚拟扫描节点之间的接口如表2所示。
表2 虚拟扫描节点与分配子模块之间的接口信息说明
4.3 虚拟扫描节点监控子模块
在云安全漏洞扫描系统运行过程中,通常需要对各虚拟扫描节点的运行状态信息进行监控,从而保证系统中各扫描节点保持正常的运行,以便在虚拟扫描节点异常连接时进行回收和任务迁移。在每个虚拟扫描节点中,均有监控子模块所设置的监控代理,即由监控代理主动向虚拟扫描节点监控子模块报告扫描器状态和扫描节点的各项物理指标。监控子模块为每一个扫描器创建连接进程,通过监控代理汇报的指标修改扫描节点状态信息,作为输入给任务调度策略。若一段时间内未收到监控代理的信息,则将该扫描节点状态修改为失联。
4.4 虚拟扫描节点回收子模块
在云安全漏洞扫描系统运行过程中,可能会遇到虚拟扫描节点异常连接或在执行扫描任务的过程中发生故障,又或者系统管理员需要停用部分虚拟扫描节点,这时应对虚拟节点进行有效回收,从而释放这些扫描节点所占用的系统资源。回收子模块主要回收该虚拟扫描节点的IP和端口等信息,并在操作界面上显示故障或异常连接时扫描节点的具体信息描述(比如所在的物理机地址),以便系统管理员能够及时回收。
5 实验与性能分析
所给DVNM漏洞扫描方案的优点主要包括:(1)所给DVNM方案可以扫描不同种类的漏洞,只要部署相应的漏洞扫描引擎即可执行相应的漏洞扫描,而基于检测代理的扫描方案在没有部署相应检测代理的情况下无法实施漏洞扫描,(2)所给DVNM方案可以根据不同的漏洞扫描需求创建相应数量的虚拟扫描节点,可以检测数量众多的漏洞类型,而基于任务驱动的漏洞扫描系统[10]需要根据任务来启动检测代理的数量,当扫描任务较多时,检测代理可能无法满足且无法及时部署相应的检测代理,这就限制了扫描任务的数量;(3)所给DVNM方案可以根据需要创建虚拟节点数目,且当任务完成时可以回收虚拟扫描节点,避免资源一直被空置,而基于监视代理的扫描方案[11]在扫描任务完成时,监视代理的部分资源将会被空置,造成资源浪费;(4)所给DVNM方案中当虚拟扫描节点出现异常时,可将扫描任务迁移至其它虚拟扫描节点,而基于代理的扫描方案在检测代理出现异常时,将需要采用新的检测代理来重新进行漏洞任务扫描,将会造成资源重复浪费。
下面通过利用OpenStack云计算平台仿真实验环境,对所给的DVNM漏洞扫描方案进行仿真测试。其中,OpenStack是以单节点的形式安装该平台最基本的nova,keystone,glance和horizon功能模块,采用64位2.0GHz的DELL PowerEdge 2950服务器,8Gb内存,292Gb硬盘存储空间,千兆以太网,运行Ubuntu 12.04.2 Desktop i386版本的操作系统,目标主机的操作系统为当前普遍使用的Windows XP SP3版本。主要分别从CPU使用率、内存占用率以及扫描检测时间三个方面来测试所给DVNM方案的性能。下面图6给出了所给DVNM漏洞扫描方案的CPU使用率。可以看出,当扫描任务完成时,通过对虚拟扫描节点的回收可以降低CPU的使用率;而当扫描任务数量较多时,需要根据用户需求建立多个虚拟扫描节点,使得CPU使用率大幅增加;而当扫描任务数量保持不变时,CPU的使用率也基本保持不变。但所给DVNM方案的CPU使用率能够基本平均保持在0.3左右,具有较好地CPU使用性能。
图6 DVNM漏洞扫描方案的CPU使用率
下面图7给出了所给DVNM漏洞扫描方案的内存占用率。可以看出,服务器在各个时段的内存占用率基本保持稳定。当扫描任务类型或者数量较少时,所需创建的虚拟扫描节点数目或所需存储的数据信息也将较少,使得内存占用率较低,比如在1.8min左右的时刻,尽管此时CPU的使用率较高,然而由于扫描任务类型较少且数量也不多,虽然创建了多个虚拟扫描节点,但数量有限使得需要存储的信息有限,所以内存占用较少;而当扫描任务类型且数量较多时,所需创建的扫描节点数目以及所需存储的数据信息将较多,将使得内存占用率大幅增加,比如在5.8min左右的时刻,因扫描任务类型和数量都较多,需要创建具有不同扫描引擎的多个虚拟扫描节点,使得内存占用率大幅增加。但所给DVNM方案的内存占用率能基本保持在不高于57%,具有较好的性能。
图7 DVNM漏洞扫描方案的内存占用率
下面图8给出了所给DVNM漏洞扫描方案与文献[10]和[11]扫描方案的扫描耗时比较。可以看出,所给DVNM方案在同等数量的扫描任务下具有较短的扫描耗时,且随着漏洞扫描任务数量的增加,扫描耗时增加幅度不大。一方面,这是由于所给DVNM方案可以根据扫描任务直接创建相应的虚拟扫描节点,随后即可实施扫描任务,而文献[10]需要根据扫描任务类型首先匹配对应的检测代理后才能实施扫描,增加了匹配时间,文献[11]需要根据扫描任务的数量来启动相应数目的检测代理,增加了启动时间;另一方面,则是因为所给DVNM方案可以通过扫描任务迁移,创建多个虚拟扫描节点对同一扫描任务实施扫描,可以大大降低扫描耗时。另外,当扫描节点出现异常情况时,所给DVNM方案也可通过扫描任务迁移,将所执行的扫描任务迁移到新的虚拟扫描节点上继续扫描,而其它两种方案则是需要在新的检测代理中重新进行扫描,将会大幅增加扫描耗时。因此,所给DVNM漏洞扫描方案可以很好地应用在云环境中,且具有较好的性能。
图8 DVNM漏洞扫描方案的扫描耗时
6 结 语
传统的漏洞扫描系统不能够很好地适应云计算环境、不能执行大数据量扫描任务或不能支持多种漏洞扫描任务的问题,而设计的分布式云安全漏洞扫描系统还尚缺少合理的虚拟扫描节点管理方案,缺少为实现扫描任务分布式执行和管理的技术支持,不能快速有效地创建部署能够提供漏洞扫描功能的扫描节点,不能实现虚拟扫描节点的全方面监控。因此,研究云安全漏洞扫描系统虚拟节点管理十分重要。所给的DVNM方案首先分析一个普通扫描节点从创建到回收的生命周期和基于此生命周期的扫描节点工作流,然后给出适用于分布式云安全漏洞扫描系统的虚拟化部署方案,最后着重设计了虚拟扫描节点在其生命周期各个时间段的管理策略,可根据物理资源创建合适的虚拟扫描节点,且能够快速部署漏洞扫描功能,同时接受管理平台的即时监控,以便根据不同的任务调度策略合理分配扫描任务以及快速检测异常扫描节点,从而实现扫描任务的合理迁移和扫描节点的回收。
[1] 冯登国,张敏,张妍,等.云计算安全研究[J].软件学报,2011,22(1):71-83.
[2] 彭武,韦涛,王冬海.基于关联分析的关键信息系统生存能力评估方法[J].中国电子科学研究院学报,2014,9(6):598-602.
[3] Mika D A.Cloud Vulnerability Assessment [M].Massachusetts (USA):Worcester Polytechnic Institute,2012.
[4] Wei J P,Zhang X L,Ammons G.Managing Security of Virtual Machine Images in a Cloud Environment [C]//CCSW’09 Proceedings of the 2009 ACM Workshop on Cloud Computing Security.New York (USA):ACM,2009:91-96.
[5] Wang Y L,Shen J K.CloudProxy:a NAPT Proxy for Vulnerability Scanners based on Cloud Computing [J].Journal of Networks,2013,8(3):607-615.
[6] 张海辉,张勇,欧争光.基于任务驱动的云计算平台漏洞扫描系统[J].深圳大学学报理工版,2014,31(1):71-76.
[7] Fan P,Chen Z B,Wang J,et al.Online Optimization of VM Deployment in IaaS Cloud [C]//IEEE Parallel and Distributed Systems (ICPADS),2012 IEEE 18th International Conference on,Singapore:Creation,2012:760-765.
[8] Schwarzkopf R,Schmidt M,Strack C,et al.Increasing Virtual Machine Security in Cloud Environments [J].Journal of Cloud Computing:Advances,Systems and Application,2012,1(1):1-12.
[9] Jog M,Madajagan M.Cloud Computing:Exploring Security Design Approaches in Infrastructure as a Service[C]//IEEE Cloud Computing Technologies,Applications and Management (ICCCTAM),2012 International Conference on,Dubai:Dubai,2012:156-159.
[10]刘正,张国印.基于云计算的Web漏洞检测分析系统[J].哈尔滨工程大学学报,2013,34(10):1274-1279.
[11]姜俊方,陈兴署,陈林.基于监视代理的IaaS平台漏洞扫描框架[J].四川大学学报(工程科学版),2014,46(Supp2):116-121.
廖金菊(1980—),女,河南人,讲师,主要研究方向为计算机应用;
E-mail:wzymgsm@163.com
冯光辉(1982—),男,河南人,副教授,主要研究方向为计算机应用。
Cloud Security Vulnerability Scanning System Based on Distributed Virtual Nodes Management
LIAO Jin-ju, FENG Guang-hui
(School of Information Engineering, Zhengzhou University of Industrial Technology, Zhengzhou 451150, China)
Security vulnerabilities are very important parts of cloud security issues.However, the systems for network vulnerability scanning are currently not well suited for cloud computing network.In order to meet the needs of distributed vulnerability scanning in a cloud environment, it is necessary to achieve the overall management of the multi-scanning nodes.So a research scheme for the cloud security vulnerability scanning system based on distributed virtual nodes management was proposed.The method analyzes the life cycle of the scanning nodes and the work flow based on it.It focuses on the design of virtual nodes management strategies at each stage of its life cycle and accepts the real-time monitoring from management platform.Thus, the proposed scheme could provide rational allocation of scanning tasks and quick detection of abnormal scanning nodes depending on different task scheduling strategies, and also could realize the rational move of scanning tasks and the retrieve of scanning nodes.
cloud security;vulnerability scanning;virtual nodes management;distributed
2016-04-18
2016-09-01
河南省科技厅发展计划(142102110088)
:A
1673-5692(2016)05-483-07