云虚拟网络漏洞检测方法、系统、装置及电子设备与流程

文档序号:23664150发布日期:2021-01-15 14:02阅读:88来源:国知局
云虚拟网络漏洞检测方法、系统、装置及电子设备与流程

本申请涉及云技术领域,尤其云安全技术领域,具体涉及一种云虚拟网络漏洞检测方法、系统、装置及电子设备。



背景技术:

随着云计算的不断发展,云计算应用在经济、国防、教育等各个方面,已经融入现今的社会生活,其中,虚拟化技术是云计算的核心技术之一。

虚拟化技术可以使得一台物理机上同时运行多个操作系统,并且在多个操作系统之间进行有效的资源隔离和数据隔离,能够充分利用硬件资源,节省it成本。

随着虚拟化技术的发展,云虚拟网络的应用十分广泛,随之云虚拟网络的安全问题也暴露出来了。由于虚拟化技术的特殊性,虚拟化一旦出现安全问题,后果比传统的安全问题更为严重。如何抢在恶意攻击前面发现云虚拟网络中存在的安全漏洞并且及时发布更新补丁是一个很重要的问题。因此,目前亟需一种针对云虚拟网络进行漏洞检测的方案。



技术实现要素:

本申请实施例提供一种云虚拟网络漏洞检测方法、系统、装置及电子设备,用以对云虚拟网络进行漏洞检测。

第一方面,本申请实施例提供一种云虚拟网络漏洞检测方法,该方法包括:

接收云虚拟网络对应的物理机发送的云虚拟网络漏洞检测启动指令;

从所述云虚拟网络对应的网络配置信息中获取所述云虚拟网络支持的网络通信协议,以及获取包含漏洞检测数据包的原始测试用例;

根据所述云虚拟网络支持的网络通信协议对应的数据格式模板,对所述包含漏洞检测数据包的原始测试用例的数据格式进行调整,生成用于对所述云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例;

触发执行所述云虚拟网络漏洞测试用例,并监测所述云虚拟网络漏洞测试用例的执行状态;

根据所述云虚拟网络漏洞测试用例的执行状态生成用于表示所述云虚拟网络中是否存在漏洞的检测结果;

将所述生成的检测结果返回给所述物理机,以使所述物理机展示对所述云虚拟网络的检测结果。

第二方面,本申请实施例提供一种云虚拟网络漏洞检测系统,包括云虚拟网络对应的物理机,以及所述云虚拟网络中至少一个目标虚拟机;

所述物理机,用于响应目标对象触发的虚拟机选择指令,确定所述目标对象从云虚拟网络中的多个候选虚拟机中选择的至少一个目标虚拟机;向各个目标虚拟机发送云虚拟网络漏洞检测启动指令,并接收各个目标虚拟机返回的用于表示所述云虚拟网络中是否存在漏洞的检测结果,以及展示接收到的检测结果;

所述目标虚拟机,用于接收所述物理机发送的云虚拟网络漏洞检测启动指令;从所述云虚拟网络对应的网络配置信息中获取所述云虚拟网络支持的网络通信协议,以及获取包含漏洞检测数据包的原始测试用例;根据所述云虚拟网络支持的网络通信协议对应的数据格式模板,对所述包含漏洞检测数据包的原始测试用例的数据格式进行调整,生成用于对所述云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例,并执行所述云虚拟网络漏洞测试用例;以及监测所述云虚拟网络漏洞测试用例的执行状态;根据所述云虚拟网络漏洞测试用例的执行状态生成用于表示所述云虚拟网络中是否存在漏洞的检测结果,将所述生成的检测结果返回给所述物理机。

第三方面,本申请实施例提供一种云虚拟网络漏洞检测装置,包括:

接收单元,用于接收云虚拟网络对应的物理机发送的云虚拟网络漏洞检测启动指令;

生成单元,用于从所述云虚拟网络对应的网络配置信息中获取所述云虚拟网络支持的网络通信协议,以及获取包含漏洞检测数据包的原始测试用例;根据所述云虚拟网络支持的网络通信协议对应的数据格式模板,对所述包含漏洞检测数据包的原始测试用例的数据格式进行调整,生成用于对所述云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例;

执行单元,用于触发执行所述云虚拟网络漏洞测试用例,并监测所述云虚拟网络漏洞测试用例的执行状态;根据所述云虚拟网络漏洞测试用例的执行状态生成用于表示所述云虚拟网络中是否存在漏洞的检测结果;

发送单元,用于将所述生成的检测结果返回给所述物理机,以使所述物理机展示对所述云虚拟网络的检测结果。

第四方面,本申请实施例提供一种电子设备,包括:至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例提供的云虚拟网络漏洞检测方法。

第五方面,本申请实施例提供一种计算机可读介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本申请提供的云虚拟网络漏洞检测方法。

本申请有益效果:

在对云虚拟网络进行漏洞检测时,物理机向对应的云虚拟网络中的至少一个目标虚拟机发送云虚拟网络漏洞检测启动指令;目标虚拟机接收到云虚拟网络漏洞检测启动指令后,从云虚拟网络对应的网络配置信息中获取云虚拟网络支持的网络通信协议,以及获取包含漏洞检测数据包的原始测试用例;根据云虚拟网络支持的网络通信协议对应的数据格式模板,对包含漏洞检测数据包的原始测试用例的数据格式进行调整,生成用于对云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例;触发执行云虚拟网络漏洞测试用例,并监测云虚拟网络漏洞测试用例的执行状态;根据云虚拟网络漏洞测试用例的执行状态生成用于表示云虚拟网络中是否存在漏洞的检测结果;将生成的检测结果返回给物理机,物理机展示对云虚拟网络的检测结果。本申请实施例提供了一种对云虚拟网络进行漏洞检测的方法,且本申请实施例通过构建虚拟机架构,可以轻量、高速地模拟了物理机提供的云虚拟化网络的底层架构,提供了一种快速、便捷地构建云虚拟网络漏洞检测场景的方案,可以对云虚拟网络进行准确、快速地漏洞检测。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例示例性的一种应用场景的示意图;

图2为本申请实施例一种云虚拟网络的漏洞检测系统的示意图;

图3为本申请实施例示例性的物理机外接的控制设备的显示界面的示意图;

图4为本申请实施例示例性的物理机对应的显示界面的示意图;

图5为本申请实施例示例性的物理机对应的显示界面的示意图;

图6为本申请实施例云虚拟网络漏洞检测的示意图;

图7为本申请实施例一种云虚拟网络漏洞检测的物理机与虚拟机交互流程图;

图8为本申请实施例一种云虚拟网络漏洞检测的完整流程示意图;

图9为本申请实施例提供的一种目标虚拟机侧的云虚拟网络漏洞检测方法的流程图;

图10为本申请实施例提供的一种物理机侧的云虚拟网络漏洞检测方法的流程图;

图11为本申请实施例提供的一种云虚拟网络漏洞检测装置的结构示意图;

图12为本申请实施例中的一种电子设备的结构示意图;

图13为本申请实施例中的一种计算装置的结构示意图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

下面对文中出现的一些术语进行解释:

1、虚拟化技术:在真实主机上实现资源管理、优化,分割、组合成一个或多个虚拟计算机设备的计算机技术。

2、容器技术:一种实现代码执行环境的空间、能力、资源限度隔离的代码执行环境隔离技术。

3、云平台:也称云计算平台,利用虚拟化技术、容器技术等封装底层计算、网络、存储等硬件资源,并上层用户进行资源的再次分配的计算平台。

4、物理机:支撑虚拟化技术或容器技术的真实宿主设备。

5、虚拟机:利用虚拟化技术或容器技术,向云平台租户提供的虚拟/隔离执行环境。

6、软件定义网络:通过软件编程的形式定义和控制网络,将网络设备的控制面与数据面分离,实现网络流量的灵活控制,使网络作为管道变得更加智能。

7、云虚拟化网络:在云平台上,利用软件定义网络技术实现的虚拟网络隔离。

8、网桥:工作于数据链路层,将两个网络连接起来,并对网络数据的流通进行管理,从而扩展网络的距离或范围,并且提高网络的性能、可靠性和安全性。

9、虚拟网卡:在物理机上通过软件代码模拟网卡设备,向虚拟机提供模拟网卡设备和网络通信能力的虚拟设备。

10、服务器:可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。

11、终端:可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

下面针对本申请实施例的设计思想进行简要介绍:

云技术(cloudtechnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。

云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。

云安全(cloudsecurity)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。

云安全主要研究方向包括:1、云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2、安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3、云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。

随着虚拟化技术的不断发展,越来越多的场景下会应用云虚拟网络。随着云虚拟网络的广泛应用,云虚拟网络的安全问题也随之暴露出来。需要通过漏洞检测将云虚拟网络的漏洞检测出来,并及时修补。相关技术中,一种常用的漏洞检测工具为syzkaller,syzkaller是一款能够针对linux操作系统进行漏洞检测的工具,但是syzkaller只能对linux内核网络通信代码进行漏洞挖掘,无法对云虚拟化网络进行漏洞检测。

有鉴于此,本申请实施例提供一种云虚拟网络漏洞检测方法,物理机向对应的云虚拟网络中的至少一个目标虚拟机发送云虚拟网络漏洞检测启动指令;目标虚拟机在接收到云虚拟网络漏洞检测启动指令后,生成用于对云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例;触发执行云虚拟网络漏洞测试用例,并监测云虚拟网络漏洞测试用例的执行状态,生成用于表示云虚拟网络中是否存在漏洞的检测结果;将生成的检测结果返回给物理机,物理机展示对云虚拟网络的检测结果。本申请实施例提供了一种对云虚拟网络进行漏洞检测的方案,本申请实施例通过云虚拟网络中构建的虚拟机执行云虚拟网络漏洞测试用例的方式,完成对云虚拟化网络的漏洞检测,在进行漏洞检测时,采用虚拟机架构,可以轻量、高速地模拟了物理机提供的云虚拟化网络的底层架构,提供了一种快速、便捷地构建云虚拟网络漏洞检测场景的方案,可以对云虚拟网络进行准确、快速地漏洞检测。

在介绍完本申请实施例的设计思想之后,下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。

如图1所示,其为本申请实施例示例性的一种应用场景的示意图,为一种可选的云虚拟网络漏洞检测场景,包括控制设备10、物理机11、云虚拟网络12、以及云虚拟网络中的多个虚拟机13。

其中,物理机11可以为服务器或者服务器集群;云虚拟网络12为在服务器或者服务器集群上进行资源管理形成的虚拟网络环境;控制设备10可以为外接与服务器或服务器集群的终端设备,例如电脑、手机、平板等,或者控制设备10还可以为键盘和鼠标等设备。

目标对象通过与物理机11外接的控制设备10触发虚拟机选择指令;例如,目标对象通过控制设备10的可视化图形界面触发虚拟机选择指令,或者目标对象通过控制设备10输入命令行的方式触发虚拟机选择指令。

物理机11确定目标对象从云虚拟网络中的多个虚拟机13中选择的至少一个目标虚拟机;物理机11向各个目标虚拟机发送云虚拟网络漏洞检测启动指令;各个目标虚拟机从云虚拟网络对应的网络配置信息中获取云虚拟网络支持的网络通信协议,以及获取包含漏洞检测数据包的原始测试用例;根据云虚拟网络支持的网络通信协议对应的数据格式模板,对包含漏洞检测数据包的原始测试用例的数据格式进行调整,生成并执行用于对云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例,各个目标虚拟机生成用于表示云虚拟网络中是否存在漏洞的检测结果;各个虚拟机将生成的检测结果发送给物理机11;物理机11在显示界面中展示接收到的检测结果。

需要说明的是,上文涉及的应用场景仅是为了便于理解本申请的精神和原理而示出,本申请实施例在此方面不受任何限制。

如图2所示,本申请实施例一种云虚拟网络的漏洞检测系统,包括物理机20和至少一个目标虚拟机21;

其中,目标虚拟机为目标对象从物理机20对应的云虚拟网络中的多个候选虚拟机中选择出来的。

本申请实施例中,目标对象可以通过与物理机20外接的控制设备输入虚拟机选择指令;

例如,控制设备为鼠标键盘等输入设备时,目标对象通过控制设备输入命令行的方式触发虚拟机选择指令,具体的,目标对象通过控制设备输入选择的目标虚拟机;

又例如,控制设备可以为包含显示界面的设备,通过该控制设备的显示界面中的图形界面程序,目标对象可以选择目标虚拟机。如图3所示的物理机外接的控制设备的显示界面,显示界面中展示有物理机20对应的云虚拟网络中的多个候选虚拟机,目标对象可以从多个候选虚拟机中选择需要使用的目标虚拟机,假设目标对象选择虚拟机001、虚拟机002、虚拟机007、虚拟机011作为目标虚拟机。

物理机20响应目标对象的虚拟机选择指令,启动manager进程;物理机20调用manager进程,根据确定出的至少一个目标虚拟机生成测试配置信息,并将生成的测试配置信息保存在存储区域中,并将测试配置信息的保存路径传递给各个目标虚拟机21,各个目标虚拟机21根据保存路径获取测试配置信息,并在启动后根据获取到的测试配置信息运行。

需要说明的是,测试配置信息包括但不限于:云虚拟网络对应的网络配置信息,目标虚拟机的个数、每个目标虚拟机使用的cpu的个数、每个目标虚拟机可调用的测试进程的个数、云虚拟网络中被测试的目标系统服务接口及接口相关数据。

其中,云虚拟网络对应的网络配置信息包括云虚拟网络支持的网络通信协议;网络通信协议为云虚拟网络中虚拟机之间的数据传输方式;

云虚拟网络支持的网络通信协议包括但不限于:

arp(addressresolutionprotocol,地址解析协议)协议、udp(userdatagramprotocol,用户数据报协议)协议、tcp(transfercontrolprotocol,传输控制协议)协议。

物理机20向各个目标虚拟机21发送云虚拟网络漏洞检测启动指令;

各个目标虚拟机21在接收到云虚拟网络漏洞检测启动指令后,执行下列过程:

从云虚拟网络对应的网络配置信息中获取云虚拟网络支持的网络通信协议,以及获取包含漏洞检测数据包的原始测试用例;根据云虚拟网络支持的网络通信协议对应的数据格式模板,对包含漏洞检测数据包的原始测试用例的数据格式进行调整,生成用于对云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例;触发执行云虚拟网络漏洞测试用例,并生成用于表示云虚拟网络中是否存在漏洞的检测结果;将生成的检测结果返回给物理机。

需要说明的是,本申请实施例各个目标虚拟机接收到云虚拟网络漏洞检测启动指令后,执行的过程相同,下文描述中,以至少一个目标虚拟机中任一个为例进行介绍。

在物理机向目标虚拟机发送云虚拟网络漏洞检测启动指令时,一种可选的实施方式为,通过物理机与目标虚拟机之间的信息通信途径,物理机将云虚拟网络漏洞检测启动指令发送给目标虚拟机;

其中,本申请实施例的云虚拟网络漏洞检测启动指令中可以携带物理机生成的测试配置信息的保存路径;目标虚拟机接收到云虚拟网络漏洞检测启动指令后进行启动,并根据云虚拟网络漏洞检测启动指令中携带的保存路径,获取测试配置信息,目标虚拟机根据获取到的测试配置信息确定启动的漏洞检测进程的个数,需要检测的云虚拟网络的系统服务接口以及网络配置信息等信息。

目标虚拟机在接收到云虚拟网络漏洞检测启动指令之后,进行网络设施配置;

实施中,目标虚拟机网络设施配置过程,是为了生成检测过程中传输数据的虚拟网络链路;

在目标虚拟机启动后,可以通过预先注册的自启动系统服务,执行网络设施配置。

一种可选的实施方式为,目标虚拟机的网络设施配置过程如下:

1、安装云虚拟化内核模块;

需要说明的是,若云虚拟化内核模块已被编译链接到linux内核文件中,则可以忽略该步骤。

2、创建虚拟网桥linuxbridge;

虚拟网桥用于为虚拟网卡、vpc设备提供数据通路。

3、创建虚拟网卡;

需要说明的是,创建的虚拟网卡可以为成对创建的vethpair,例如分别以veth-h、veth-g标注;其中,veth-h供物理机使用,连接到虚拟网桥上实现数据互通,veth-g供不同虚拟机使用,用于模拟虚拟机中的网络通信数据。

4、创建vpc(virtualportchannel,虚拟链路聚合)设备;

vpc设备用于管理虚拟机的网络通信数据收发、封装、解封等,vpc设备为实现云虚拟化网络功能的核心。

5、将创建的vpc设备、虚拟网卡与虚拟网桥建立连接,生成用于进行数据传输的虚拟网络链路。

本申请实施例在目标虚拟机的网络设施配置完成后,通过预先注册的自启动系统服务,调用漏洞检测管理进程。

漏洞检测管理进程启动后,漏洞检测管理进程从云虚拟网络对应的网络配置信息中获取云虚拟网络支持的网络通信协议,以及获取包含漏洞检测数据包的原始测试用例;根据云虚拟网络支持的网络通信协议对应的数据格式模板,对包含漏洞检测数据包的原始测试用例的数据格式进行调整,生成用于对云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例。

需要说明的是,用于对云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例为恶意构造的云虚拟网络漏洞测试用例,且云虚拟网络漏洞测试用例中包含的漏洞检测数据包也可以为恶意构造的数据包。

在漏洞检测管理进程生成云虚拟网络漏洞测试用例时,从有效用例集合中选取包含漏洞检测数据包的原始测试用例;或者,在没有获取到有效用例集合时,漏洞检测管理进程根据预设的测试用例模板生成包含漏洞检测数据包的原始测试用例;

需要说明的是,漏洞检测管理进程检查有效用例存储目录中是否存有用例;若有效用例存储目录中存储有用例,则漏洞检测管理进程对有效用例存储目录进行解析、统计,形成原始有效用例集合;漏洞检测管理进程从有效用例集合中选取包含漏洞检测数据包的原始测试用例。

漏洞检测管理进程在生成包含漏洞检测数据包的原始测试用例后,根据云虚拟网络支持的网络通信协议对应的数据格式模板,将获取到的包含漏洞检测数据包的原始测试用例的数据格式,调整为与网络通信协议相匹配的数据格式,生成用于对云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例;

目标虚拟机在调用漏洞检测管理进程生成云虚拟网络漏洞测试用例后,调用漏洞检测执行进程执行云虚拟网络漏洞测试用例。

漏洞检测执行进程执行云虚拟网络漏洞测试用例的过程可以为:

通过生成的虚拟网络链路向云虚拟网络中的其他目标虚拟机发送云虚拟网络漏洞测试用例中包含的漏洞检测数据包;以及通过生成的虚拟网络链路接收其他目标虚拟机返回的与接收到的漏洞检测数据包对应的响应数据包。

一种可选的实施方式为,漏洞检测执行进程创建套接字,通过创建的套接字收发数据;

实施中,调用漏洞检测执行进程,通过创建的套接字以及虚拟网络链路向云虚拟网络中的其他目标虚拟机发送云虚拟网络漏洞测试用例中包含的漏洞检测数据包;通过创建的套接字以及虚拟网络链路接收其他目标虚拟机返回的与接收到的漏洞检测数据包对应的响应数据包。

其中,本申请实施例漏洞检测执行进程创建的套接字可以为原始套接字或者为其它常规套接字。

漏洞检测执行进程执行云虚拟网络漏洞测试用例过程中,漏洞检测管理进程检测漏洞检测执行进程的运行状态;

需要说明的是,漏洞检测管理进程可以通过进程间通信的方式获取漏洞检测执行进程的运行状态。

若漏洞检测管理进程确定漏洞检测执行进程发生故障,则生成用于表示云虚拟网络中存在漏洞的检测结果;若漏洞检测管理进程确定漏洞检测执行进程正常运行,则在漏洞检测执行进程执行云虚拟网络漏洞测试用例过程中,继续检测漏洞检测执行进程的运行状态;

需要说明的是,漏洞检测执行进程发生故障的一种表现形式可以为漏洞检测执行进程崩溃。

漏洞检测管理进程在确定生成表示云虚拟网络中存在漏洞的检测结果之后,通过目标虚拟机将表示云虚拟网络中存在漏洞的检测结果返回给物理机,物理机在对应的显示界面中展示接收到的检测结果。

另外,漏洞检测执行进程执行云虚拟网络漏洞测试用例过程中,漏洞检测执行进程还需要采集云虚拟网络漏洞测试用例触发的内核代码覆盖率信息;

其中,内核代码覆盖率信息包括云虚拟网络漏洞测试用例触发的内核代码覆盖率,以及云虚拟网络漏洞测试用例是否触发新的代码覆盖路径。

实施中,漏洞检测执行进程根据linux内核kernelcoverage机制提供的配置接口启动内核态中的代码覆盖率统计;在云虚拟网络漏洞测试用例执行结束后,漏洞检测执行进程通过进程间通信,向漏洞检测管理进程反馈内核代码覆盖率信息。

漏洞检测管理进程在根据漏洞检测执行进程反馈的内核代码覆盖率信息,确定该云虚拟网络漏洞测试用例触发了新的代码执行路径时,漏洞检测管理进程可以将该云虚拟网络漏洞测试用例作为有效云虚拟网络漏洞测试用例,存储在对应的有效用例存储目录中。

可选的,漏洞检测管理进程将漏洞检测执行进程反馈的内核代码覆盖率信息通过目标虚拟机返回给物理机;物理机可以在对应的显示界面中展示接收到的内核代码覆盖率信息。

例如,如图4所示的物理机对应的显示界面,其中,该显示界面可以为物理机外接设备的显示界面;在该显示界面中可以展示接收到的检测结果,假设检测结果为云虚拟网络存在漏洞。

又例如,如图5所示的物理机对应的显示界面,其中,该显示界面可以为物理机外接设备的显示界面;在该显示界面中可以展示接收到的检测结果以及云虚拟网络漏洞测试用例触发的内核代码覆盖率信息;假设检测结果为云虚拟网络存在漏洞,以及内核代码覆盖率为75%,且触发了新的代码执行路径。

在物理机对应的显示界面中展示云虚拟网络漏洞测试用例的检测结果和内核代码覆盖率信息之后,目标对象可以通过该显示界面中展示的内容确定对云虚拟网络进行检测的检测结果,以及可以根据内核代码覆盖率信息判断是否结束检测。

例如,在显示界面中展示的内容为云虚拟网络存在漏洞的检测结果时,目标对象可以确定需要对云虚拟网络进行修复。

本申请实施例物理机接收到内核代码覆盖率信息之后,目标对象可以根据物理机对应的显示界面中展示的内核代码覆盖率信息判断是否结束检测;例如,在目标用户判断没有触发新的代码执行路径,且执行该云虚拟网络漏洞测试用例得到的内核代码覆盖率相比于之前执行云虚拟网络漏洞测试用例得到的内核代码覆盖率较为稳定,则目标对象确定可以结束检测;或者,在目标用户判断触发了新的代码执行路径,或执行该云虚拟网络漏洞测试用例得到的内核代码覆盖率相比于之前执行云虚拟网络漏洞测试用例得到的内核代码覆盖率变化较大时,目标对象确定需要继续进行检测。

需要说明的是,在目标虚拟机对一个云虚拟网络漏洞测试用例执行完毕后,若没有接收到检测结束指令,则该目标虚拟机继续调用漏洞检测管理进程生成新的云虚拟网络漏洞测试用例,调用漏洞检测执行进程执行新的云虚拟网络漏洞测试用例,直到接收到物理机发送的检测结束指令后,停止对云虚拟网络进行检测。

如图6所示,本申请实施例云虚拟网络漏洞检测的示意图;假设目标对象从云虚拟网络中选择两个目标虚拟机为例,假设分别为虚拟机0和虚拟机1;在网络设施配置过程中,为虚拟机0创建的虚拟网卡为veth-h0、veth-g0,为虚拟机1创建的虚拟网卡为veth-h1、veth-g1;veth-g0、veth-g1、vpc设备与创建虚拟网桥建立连接,生成在执行云虚拟网络漏洞测试用例过程中传输数据的虚拟网络链路。目标对象触发虚拟机选择指令后,物理机启动manager进程,通过manager进程向虚拟机0和虚拟机1发送云虚拟网络漏洞检测启动指令,虚拟机0和虚拟机1启动后,分别调用云虚拟网络中的漏洞检测管理进程生成云虚拟网络漏洞测试用例,以及分别调用云虚拟网络中的漏洞检测执行进程执行云虚拟网络漏洞测试用例,从而对实现对云虚拟网络进行漏洞检测。

如图7所示,为本申请实施例一种云虚拟网络漏洞检测的物理机与虚拟机交互流程图,包括以下步骤:

步骤s701、响应目标对象触发的检测指令,物理机确定目标对象从云虚拟网络中的多个候选虚拟机中选择的至少一个目标虚拟机。

针对待检测的云虚拟网络,目标对象通过鼠标键盘或包含显示界面的控制设备,从云虚拟网络中的多个候选虚拟机中选择进行漏洞检测所使用的目标虚拟机,其中,目标对象可以从候选虚拟机中选择一个或多个目标虚拟机;并通过命令行或显示界面中应用程序的方式触发检测指令;

物理机响应目标对象触发的检测指令,确定目标对象从云虚拟网络中的多个候选虚拟机中选择的至少一个目标虚拟机。

物理机根据确定出的至少一个目标虚拟机生成测试配置信息,并将生成的测试配置信息保存在存储区域中,并将测试配置信息的保存路径传递给各个目标虚拟机,以使各个目标虚拟机根据保存路径获取测试配置信息,在启动后根据获取到的测试配置信息进行漏洞检测。

步骤s702、物理机向各个目标虚拟机发送云虚拟网络漏洞检测启动指令。

各个目标虚拟机在接收到云虚拟网络漏洞检测启动指令后,生成并执行云虚拟网络漏洞测试用例,用以对云虚拟网络进行漏洞检测。由于各个目标虚拟网络生成并执行云虚拟网络漏洞测试用例的过程相同,在下面步骤描述过程中,以至少一个目标虚拟机中任一个目标虚拟机为例,介绍目标虚拟机生成并执行云虚拟网络漏洞测试用例的过程。

步骤s703、目标虚拟机接收到云虚拟网络漏洞检测启动指令后,进行网络设施配置;

实施中,目标虚拟机在进行网络设施配置过程中,需要生成用于在执行云虚拟网络漏洞测试用例过程中传输数据的虚拟网络链路;

例如,网络设施配置过程包括安装云虚拟化内核模块、创建虚拟网桥linuxbridge、创建虚拟网卡、创建vpc设备;将创建的vpc设备、虚拟网卡与虚拟网桥建立连接,生成用于进行数据传输的虚拟网络链路。

步骤s704、目标虚拟机生成用于对云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例;

实施中,本申请实施例目标虚拟机在生成云虚拟网络漏洞测试用例时,首先获取包含漏洞检测数据包的原始测试用例,以及从云虚拟网络对应的网络配置信息中获取云虚拟网络支持的网络通信协议,根据云虚拟网络支持的网络通信协议对应的数据格式模板,对获取到的包含漏洞检测数据包的原始测试用例进行调整,生成对云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例;

其中,本申请实施例目标虚拟机可以通过调用漏洞检测管理进程生成云虚拟网络漏洞测试用例;

具体的,调用漏洞检测管理进程从有效用例集合中选取包含漏洞检测数据包的原始测试用例,或调用漏洞检测管理进程根据预设的测试用例模板随机生成包含漏洞检测数据包的原始测试用例,调用漏洞检测管理进程从云虚拟网络对应的网络配置信息中获取云虚拟网络支持的网络通信协议,根据云虚拟网络支持的网络通信协议对应的数据格式模板,对获取到的包含漏洞检测数据包的原始测试用例进行调整,得到对云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例。

例如,漏洞检测管理进程可以为fuzzer进程。

步骤s705、目标虚拟机执行云虚拟网络漏洞测试用例;

实施中,本申请实施例目标虚拟机可以调用漏洞检测执行进程执行云虚拟网络漏洞测试用例;在调用漏洞检测执行进程执行云虚拟网络漏洞测试用例过程中,通过网络设施配置过程中创建的虚拟网络链路,与其他目标虚拟机进行数据收发,从而对云虚拟网络进行漏洞检测;

具体的,在调用漏洞检测执行进程执行云虚拟网络漏洞测试用例过程中,通过网络设施配置过程中创建的虚拟网络链路,向云虚拟网络中的其他目标虚拟机发送云虚拟网络漏洞测试用例中包含的漏洞检测数据包,并通过创建的虚拟网络链路接收其他目标虚拟机返回的与接收到的漏洞检测数据包对应的响应数据包。

例如,漏洞检测执行进程可以为executor进程。

步骤s706、目标虚拟机采集云虚拟网络漏洞测试用例触发的内核代码覆盖率信息,以及根据云虚拟网络漏洞测试用例的执行状态生成用于表示云虚拟网络中是否存在漏洞的检测结果;

其中,本申请实施例调用executor进程采集云虚拟网络漏洞测试用例触发的内核代码覆盖率信息;

目标虚拟机调用fuzzer进程检测executor进程的运行状态,根据executor进程的运行状态确定云虚拟网络漏洞测试用例的执行状态;

例如,在调用fuzzer进程检测executor进程故障后,确定云虚拟网络漏洞测试用例的执行状态为执行中断,则生成表示云虚拟网络中存在漏洞的检测结果。

步骤s707、目标虚拟机将检测结果返回给物理机;

例如,在目标虚拟机生成表示云虚拟网络中存在漏洞的检测结果后,将表示云虚拟网络中存在漏洞的检测结果返回给物理机。

步骤s708、在云虚拟网络漏洞测试用例执行结束后,目标虚拟机将内核代码覆盖率信息发送给物理机;

需要说明的是,物理机在接收到目标虚拟机发送的内核代码覆盖率信息之后,在对应的显示界面中展示接收到的内核代码覆盖率信息;

目标对象可以通过物理机对应的显示界面中展示的内核代码覆盖率信息判断是否需要停止漏洞检测;响应目标对象触发的结束检测的操作,向目标虚拟机发送检测结束指令,目标虚拟机接收到检测结束指令后停止对云虚拟网络进行检测。

如图8所示,为本申请实施例云虚拟网络漏洞检测的完整流程示意图,包括下列内容:

步骤s801、响应目标对象触发的启动命令,物理机启动控制进程;

具体实施中,目标对象可通过命令行或者图形界面程序,触发云虚拟网络漏洞检测的启动命令,从云虚拟网络中的多个虚拟机中,选择进行漏洞检测的目标虚拟机,并根据选择的目标虚拟机生成测试配置信息,并将生成的配置信息保存在存储区域中,并将测试配置信息的保存路径传递给物理机;物理机响应目标对象的触发的启动命令,启动控制进程;其中,启动命令中包含测试配置信息的保存路径。

步骤s802、控制进程获取测试配置信息;

实施中,控制进程根据步骤s801中传递的配置信息保存路径获取配置信息。

步骤s803、控制进程确定需要启动的目标虚拟机;

实施中,控制进程根据获取到的测试配置信息中目标对象选择的目标虚拟机的信息,确定需要进行漏洞检测的目标虚拟机。

步骤s804、物理机向目标虚拟机发送云虚拟网络漏洞检测启动指令;

通过物理机与目标虚拟机之间的信息通信途径,物理机向目标虚拟机发送云虚拟网络漏洞检测启动指令,其中云虚拟网络漏洞检测启动指令包括但不限于目标虚拟机中启动的测试进程数目,目标虚拟机的待测目标系统服务接口;

物理机向目标虚拟机发送云虚拟网络漏洞检测启动指令后,创建并启动两个子进程:

1)、通过物理机与目标虚拟机之间的信息通信途径,物理机接收目标虚拟机的反馈信息,并记录在数据库中;

2)、通过用户交互界面,监听用户交互信息,如展示测试结果、终止测试等。

步骤s805、目标虚拟机接收到云虚拟网络漏洞检测启动指令后进行启动。

步骤s806、目标虚拟机根据云虚拟网络漏洞检测启动指令中携带的保存路径,获取测试配置信息后,配置网络设施;

在目标虚拟机启动后,可以通过预先注册的自启动系统服务,执行网络设施配置,具体包括下列过程:

安装云虚拟化内核模块、创建虚拟网桥linuxbridge、创建虚拟网卡、创建vpc设备;将创建的vpc设备、虚拟网卡与虚拟网桥建立连接,生成用于进行数据传输的虚拟网络链路;

需要说明的是,在网络设施配置过程中,首先判断云虚拟化内核模块是否已被编译链接到linux内核文件中,若是,则跳过安装云虚拟化内核模块的步骤,若否,则需要安装云虚拟化内核模块;

在网络设施配置过程中生成的虚拟网络链路,用于在执行云虚拟网络漏洞测试用例过程中,目标虚拟机之间通过虚拟网络链路传输数据包。

步骤s807、目标虚拟机在完成网络设施配置后,启动漏洞检测管理进程;

目标虚拟机在完成网络设施配置,建立虚拟网络链路后,通过调用漏洞检测管理进程的方式对云虚拟网络进行漏洞检测;因此,在目标虚拟机在完成网络设施配置后,需要启动漏洞检测管理进程。

步骤s808、漏洞检测管理进程生成原始有效用例集合;

首先,检查有效用例存储目录中是否存有用例;然后,若有效用例存储目录中存储有用例,则漏洞检测管理进程对有效用例存储目录进行解析、统计,生成原始有效用例集合。

步骤s809、漏洞检测管理进程从有效用例集合中选取包含漏洞检测数据包的原始测试用例;

实施中,漏洞检测管理进程可以从有效用例集合中包括的多个测试用例中随机选取一个,作为原始测试用例。

步骤s810、漏洞检测管理进程根据云虚拟网络支持的网络通信协议对应的数据格式模板,对包含漏洞检测数据包的原始测试用例的数据格式进行调整,生成用于对云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例;

需要说明的是,生成的云虚拟网络漏洞测试用例中包含了用于对云虚拟网络进行漏洞检测的漏洞检测数据包,且该漏洞检测数据包可以为恶意构造的数据包。

步骤s811、漏洞检测管理进程触发启动漏洞检测执行进程;

本申请实施例通过调用漏洞检测管理进程和漏洞检测执行进程,配合完成对云虚拟网络进行漏洞检测;实施中,在漏洞检测管理进程生成云虚拟网络漏洞测试用例之后,通过进程间通讯的方式,触发启动漏洞检测执行进程。

步骤s812、漏洞检测执行进程启动后,创建套接字;

其中,在创建套接字时,是基于网络设施配置过程中创建的虚拟网卡veth-g设备进行创建的,且创建的套接字可以为原始套接字。

步骤s813、漏洞检测执行进程执行云虚拟网络漏洞测试用例;

漏洞检测执行进程在执行云虚拟网络漏洞测试用例时,通过虚拟网络链路向云虚拟网络中的其他目标虚拟机发送云虚拟网络漏洞测试用例中包含的漏洞检测数据包;以及通过虚拟网络链路接收其他目标虚拟机返回的响应数据。

步骤s814、在执行测试用例的过程中,漏洞检测执行进程采集测试用例触发的内核代码覆盖率信息,并向漏洞检测管理进程反馈内核代码覆盖率信息;

需要说明的是,通过在执行测试用例的过程中采集内核代码覆盖率信息,可以判断正在执行的测试用例是否触发新的代码执行路径;漏洞检测执行进程通过进程间通信的方式向漏洞检测管理进程反馈内核代码覆盖率信息。

步骤s815、在漏洞检测执行进程执行云虚拟网络漏洞测试用例时,漏洞检测管理进程监测漏洞检测执行进程的运行状态;以及,接收漏洞检测执行进程反馈的内核代码覆盖率信息;

需要说明的是,漏洞检测管理进程是通过进程间通信的方式,对漏洞检测执行进程的运行状态进行监测的。

步骤s816、漏洞检测管理进程根据漏洞检测执行进程的运行状态,生成用于检测结果;

判断漏洞检测执行进程在执行云虚拟网络漏洞测试用例时是否发生故障;例如,若监测到云虚拟网络漏洞测试用例的执行状态为执行中断,则确定漏洞检测执行进程发生故障;

需要说明的是,漏洞检测执行进程发生故障的一种表现形式可以为漏洞检测执行进程崩溃;

若漏洞检测执行进程执行云虚拟网络漏洞测试用例时发生故障,则漏洞检测管理进程生成用于表示云虚拟网络中存在漏洞的检测结果;

漏洞检测管理进程记录崩溃信息以及触发崩溃的云虚拟网络漏洞测试用例,将崩溃信息以及触发崩溃的云虚拟网络漏洞测试用例作为检测结果;

漏洞检测管理进程根据漏洞检测执行进程反馈的内核代码覆盖率信息,确定云虚拟网络漏洞测试用例触发新的代码覆盖路径后,漏洞检测管理进程确定云虚拟网络漏洞测试用例触发新的代码覆盖路径后,记录路径覆盖率;以及将该云虚拟网络漏洞测试用例作为有效云虚拟网络漏洞测试用例,存储在对应的有效用例存储目录中;

步骤s817、将检测结果以及内核代码覆盖率信息作为反馈信息发送给物理机;

其中,漏洞检测管理进程通过目标虚拟机与物理机之间的信息通路,将反馈信息发送给物理机。

步骤s818、物理机接收漏洞检测管理进程发送的反馈信息后,在显示界面中展示测试结果;

物理机接收漏洞检测管理进程发送的反馈信息后,将反馈信息记录在数据库中;若物理机通过外接设备确定目标对象触发了展示测试结果的指令,物理机可以根据数据库中记录的测试结果,在显示界面中展示测试结果;例如,测试结果可以为云虚拟网络存在漏洞。

步骤s819、物理机监测到目标对象触发的检测结束指令后,向目标虚拟机发送检测结束指令;

物理机监测外接设备的指令,若监测到目标对象通过外接设备触发的检测结束指令,则确定目标对象需要停止对云虚拟网络进行漏洞检测;

例如,在目标对象根据显示界面中展示的测试结果,确定可以停止进行漏洞检测后,通过物理机的外接设备触发检测结束指令;

物理机在确定目标对象触发检测结束指令后,向目标虚拟机发送该检测结束指令,从而使目标虚拟机停止运行。

步骤s820、目标虚拟机监听到物理机下发的检测结束指令后,停止运行。

在目标虚拟机在运行过程中,通过与物理机之间的信息通路持续监测物理机的指令,监测物理机下发的检测结束指令;

漏洞检测管理进程通过目标虚拟机与物理机之间的信息通路,判断是否接收到物理机发送的检测结束指令,若是,结束漏洞检测管理进程。

基于同一发明构思,本申请实施例中还提供了一种目标虚拟机侧的云虚拟网络漏洞检测方法,由于上述方法解决问题的原理与云虚拟网络漏洞检测系统相似,因此上述方法的实施可以参见系统的实施,重复之处不再赘述。

如图9所示,为本申请实施例提供的一种目标虚拟机侧的云虚拟网络漏洞检测方法的流程图,应用于云虚拟网络中的任一个目标虚拟机,该方法包括以下步骤:

步骤s901、接收云虚拟网络对应的物理机发送的云虚拟网络漏洞检测启动指令;

实施中,目标虚拟机根据云虚拟网络漏洞检测启动指令中物理机生成的测试配置信息的保存路径,获取测试配置信息,并在启动后根据测试配置信息运行;其中,测试配置信息包括但不限于:云虚拟网络对应的网络配置信息、目标虚拟机的个数、每个目标虚拟机使用的cpu的个数、每个目标虚拟机可调用的测试进程的个数、云虚拟网络中被测试的目标系统服务接口及接口相关数据;

具体实施中,目标虚拟机根据获取到的测试配置信息,确定启动的漏洞检测进程的个数,需要检测的云虚拟网络的系统服务接口以及网络配置信息等信息。

步骤s902、从云虚拟网络对应的网络配置信息中获取云虚拟网络支持的网络通信协议,以及获取包含漏洞检测数据包的原始测试用例;根据云虚拟网络支持的网络通信协议对应的数据格式模板,对包含漏洞检测数据包的原始测试用例的数据格式进行调整,生成用于对云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例;

其中,云虚拟网络对应的网络配置信息包括但不限于:云虚拟网络支持的网络通信协议,即云虚拟网络中虚拟机之间的传输方式;且云虚拟网络的网络通信协议可以为arp、udp、tcp中的至少一种;

具体实施中,目标虚拟机可通过下列方式获取包含漏洞检测数据包的原始测试用例:

方式1、目标虚拟机检查有效用例存储目录中存有用例后,对有效用例存储目录进行解析、统计,形成原始有效用例集合,从原始有效用例集合中选取包含漏洞检测数据包的原始测试用例;

方式2、在没有获取到有效用例集合时,目标虚拟机根据预先设置的测试用例模板生成包含漏洞检测数据包的原始测试用例;

在获取到包含漏洞检测数据包的原始测试用例后,目标虚拟机根据云虚拟网络支持的网络通信协议的数据格式模板,将包含漏洞检测数据包的原始测试用例的数据格式调整为与网络通信协议相匹配的数据格式,生成云虚拟网络漏洞测试用例。

步骤s903、触发执行云虚拟网络漏洞测试用例,并监测云虚拟网络漏洞测试用例的执行状态;

实施中,目标虚拟机在生成云虚拟网络漏洞测试用例后,触发执行云虚拟网络漏洞测试用例的漏洞检测执行进程,通过调用漏洞检测执行进程向云虚拟网络中的其他目标虚拟机发送云虚拟网络漏洞测试用例中包含的漏洞检测数据包;并在云虚拟网络漏洞测试用例执行过程中,监测云虚拟网络漏洞测试用例的执行状态。

步骤s904、根据云虚拟网络漏洞测试用例的执行状态生成用于表示云虚拟网络中是否存在漏洞的检测结果;

目标虚拟机对监测到的云虚拟网络漏洞测试用例的执行状态进行判断,判断云虚拟网络漏洞测试用例在执行过程中是否发生故障;若云虚拟网络漏洞测试用例在执行过程中发生故障,则生成用于表示云虚拟网络中存在漏洞的检测结果。

具体实施中,目标虚拟机可调用漏洞检测管理进程监测漏洞检测执行进程的运行状态;其中,漏洞检测管理进程可以通过进程间的通信的方式监测漏洞检测执行进程的运行状态;目标虚拟机对云虚拟网络漏洞测试用例的执行状态进行判断,判断漏洞检测执行进程是否发生故障;若确定漏洞检测执行进程发生故障,则确定云虚拟网络漏洞测试用例的执行状态为执行中断,生成用于表示云虚拟网络中存在漏洞的检测结果。

步骤s905、将生成的检测结果返回给物理机,以使物理机展示对云虚拟网络的检测结果;

实施中,目标虚拟机通过物理机与虚拟机之间的信息通信途径,将生成的检测结果发送给物理机。

一种可选的实施方式为,执行云虚拟网络漏洞测试用例,具体包括:

生成用于在执行云虚拟网络漏洞测试用例过程中传输数据的虚拟网络链路;通过生成的虚拟网络链路向云虚拟网络中的其他目标虚拟机发送云虚拟网络漏洞测试用例中包含的漏洞检测数据包;以及通过生成的虚拟网络链路接收其他目标虚拟机返回的与接收到的漏洞检测数据包对应的响应数据包。

实施中,本申请实施例虚拟网络链路是目标虚拟机启动后,可以通过预先注册的自启动系统服务,进行网络设施配置生成的。

具体实施中,在目标虚拟机启动后,可进行如下网络配置:

安装云虚拟化内核模块;创建用于为虚拟网卡、vpc设备提供数据通路的虚拟网桥linuxbridge,虚拟网卡以及vpc设备;将创建的vpc设备、虚拟网卡与虚拟网桥建立连接,生成用于进行数据传输的虚拟网络链路。

一种可选的实施方式为,在接收云虚拟网络对应的物理机发送的云虚拟网络漏洞检测启动指令之后,执行云虚拟网络漏洞测试用例之前,目标虚拟机还通过调用漏洞检测执行进程创建套接字;其中,创建的套接字可以为原始套接字或者为其它常规套接字;然后,目标虚拟机调用漏洞检测执行进程,通过创建的套接字以及虚拟网络链路向云虚拟网络中的其他目标虚拟机发送云虚拟网络漏洞测试用例中包含的漏洞检测数据包;并调用漏洞检测执行进程,通过创建的套接字以及虚拟网络链路接收其他目标虚拟机返回的与接收到的漏洞检测数据包对应的响应数据包。

一种可选的实施方式为,目标虚拟机在执行云虚拟网络漏洞测试用例过程中,还调用漏洞检测执行进程采集云虚拟网络漏洞测试用例触发的内核代码覆盖率信息;其中,内核代码覆盖率信息包括云虚拟网络漏洞测试用例触发的内核代码覆盖率,以及云虚拟网络漏洞测试用例是否触发新的代码覆盖路径。

具体实施中,目标虚拟机调用漏洞检测执行进程,根据linux内核kernelcoverage机制提供的配置接口启动内核态中的代码覆盖率统计,采集在执行云虚拟网络漏洞测试用例的过程中,云虚拟网络漏洞测试用例触发的内核代码覆盖率信息。

实施中,目标虚拟机将采集到的内核代码覆盖率信息通过物理机与目标虚拟机之间的信息通信途径返回给物理机,以使物理机将内核代码覆盖率信息展示给目标对象,由目标对象根据内核代码覆盖率信息确定是否结束检测;

目标虚拟机在接收到物理机发送的检测结束指令后,停止对云虚拟网络进行检测;其中,检测结束指令为目标对象通过物理机触发的。

基于同一发明构思,本申请实施例中还提供了一种物理机侧的云虚拟网络漏洞检测方法,由于上述方法解决问题的原理与云虚拟网络漏洞检测系统相似,因此上述方法的实施可以参见系统的实施,重复之处不再赘述。

如图10所示,为本申请实施例提供的一种物理机侧的云虚拟网络漏洞检测方法的流程图,应用于云虚拟网络对应的物理机,该方法包括以下步骤:

步骤s1001、响应目标对象触发的虚拟机选择指令,确定目标对象从云虚拟网络中的多个候选虚拟机中选择的至少一个目标虚拟机;

具体实施中,物理机响应目标对象通过物理机外接控制设备触发的虚拟机选择指令,确定目标对象从云虚拟网络中的多个候选虚拟机中选择的至少一个目标虚拟机后,根据确定出的至少一个目标虚拟机生成测试配置信息,并保存生成的测试配置信息。

步骤s1002、向各个目标虚拟机发送云虚拟网络漏洞检测启动指令。

具体实施中,物理机通过物理机与目标虚拟机之间的信息通信途径向各个目标虚拟机发送云虚拟网络漏洞检测启动指令;其中,云虚拟网络漏洞检测启动指令中包含物理机生成的测试配置信息的保存路径。

一种可选的实施方式为,在向目标虚拟机发送检测结束指令之前,物理机还通过物理机与目标虚拟机之间的信息通信途径,接收目标虚拟机发送的内核代码覆盖率信息;物理机通过外接控制设备监测目标对象是否触发展示测试结果的指令;若监测到目标对象通过外界控制设备触发展示测试结果的指令,则物理机在物理机对应的显示界面中展示接收到的内核代码覆盖率信息,由目标对象根据内核代码覆盖率信息确定是否结束检测。

一种可选的实施方式为,物理机响应目标对象触发的结束检测的操作,向目标虚拟机发送检测结束指令。

具体实施中,目标对象对在物理机对应的显示界面中展示的内核代码覆盖率信息进行分析,若目标对象确定可以结束云虚拟网络的漏洞检测后,通过外界控制设备触发结束检测的指令,物理机通过外界控制设备监测到目标对象触发的结束检测的指令后,响应目标对象触发的结束检测的操作,向目标虚拟机发送检测结束指令。

基于同一发明构思,本申请实施例中还提供了一种云虚拟网络漏洞检测装置,由于上述装置解决问题的原理与云虚拟网络漏洞检测系统相似,因此上述装置的实施可以参见系统的实施,重复之处不再赘述。

如图11所示,为本申请实施例提供的一种云虚拟网络漏洞检测装置1000的结构示意图,包括:

接收单元1101,用于接收云虚拟网络对应的物理机发送的云虚拟网络漏洞检测启动指令;

生成单元1102,用于从云虚拟网络对应的网络配置信息中获取云虚拟网络支持的网络通信协议,以及获取包含漏洞检测数据包的原始测试用例;根据云虚拟网络支持的网络通信协议对应的数据格式模板,对包含漏洞检测数据包的原始测试用例的数据格式进行调整,生成用于对云虚拟网络进行漏洞检测的云虚拟网络漏洞测试用例;

执行单元1103,用于触发执行云虚拟网络漏洞测试用例,并监测云虚拟网络漏洞测试用例的执行状态;根据云虚拟网络漏洞测试用例的执行状态生成用于表示云虚拟网络中是否存在漏洞的检测结果;

发送单元1104,用于将生成的检测结果返回给物理机,以使物理机展示对云虚拟网络的检测结果。

一种可选的实施方式为,执行单元1103具体用于:

生成用于在执行云虚拟网络漏洞测试用例过程中传输数据的虚拟网络链路;

通过生成的虚拟网络链路向云虚拟网络中的其他目标虚拟机发送云虚拟网络漏洞测试用例中包含的漏洞检测数据包;以及

通过生成的虚拟网络链路接收其他目标虚拟机返回的与接收到的漏洞检测数据包对应的响应数据包。

一种可选的实施方式为,根据下列方式获取包含漏洞检测数据包的原始测试用例:

调用漏洞检测管理进程从有效用例集合中选取包含漏洞检测数据包的原始测试用例;或

调用漏洞检测管理进程,根据预设的测试用例模板随机生成包含漏洞检测数据包的原始测试用例。

一种可选的实施方式为,在接收云虚拟网络对应的物理机发送的云虚拟网络漏洞检测启动指令之后,执行云虚拟网络漏洞测试用例之前,执行单元1103还用于:

调用漏洞检测执行进程创建套接字;

执行单元1103具体用于:

调用漏洞检测执行进程,通过创建的套接字以及虚拟网络链路向云虚拟网络中的其他目标虚拟机发送云虚拟网络漏洞测试用例中包含的漏洞检测数据包;

执行单元1103具体用于:

调用漏洞检测执行进程,通过创建的套接字以及虚拟网络链路接收其他目标虚拟机返回的与接收到的漏洞检测数据包对应的响应数据包。

一种可选的实施方式为,执行单元1103具体用于:

调用漏洞检测管理进程检测漏洞检测执行进程的运行状态;

若确定漏洞检测执行进程发生故障,则确定云虚拟网络漏洞测试用例的执行状态为执行中断,生成用于表示云虚拟网络中存在漏洞的检测结果。

一种可选的实施方式为,执行单元1103还用于:在执行云虚拟网络漏洞测试用例过程中,调用漏洞检测执行进程采集云虚拟网络漏洞测试用例触发的内核代码覆盖率信息;

发送单元1104还用于:将采集到的内核代码覆盖率信息返回给物理机,以使物理机将内核代码覆盖率信息展示给目标对象,由目标对象根据内核代码覆盖率信息确定是否结束检测;

在接收到物理机发送的检测结束指令后,停止对云虚拟网络进行检测;其中,检测结束指令为目标对象通过物理机触发的。

一种可选的实施方式为,接收单元1101还用于:

响应目标对象触发的虚拟机选择指令,确定目标对象从云虚拟网络中的多个候选虚拟机中选择的至少一个目标虚拟机;

向各个目标虚拟机发送云虚拟网络漏洞检测启动指令。

一种可选的实施方式为,发送单元1104还用于:

接收目标虚拟机发送的内核代码覆盖率信息;

展示接收到的内核代码覆盖率信息,由目标对象根据内核代码覆盖率信息确定是否结束检测;

响应目标对象触发的结束检测的操作,向目标虚拟机发送检测结束指令。

为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。

所属技术领域的技术人员能够理解,本申请的每个方面可以实现为系统、方法或程序产品。因此,本申请的每个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

在一些可能的实施方式中,本申请实施例还提供一种电子设备,参阅图12所示,电子设备1200可以至少包括至少一个处理器1201、以及至少一个存储器1202。其中,存储器1202存储有程序代码,当程序代码被处理器1201执行时,使得处理器1201执行本说明书上述描述的根据本申请各种示例性实施方式的目标虚拟机侧的云虚拟网络漏洞检测方法中的步骤,例如,处理器1201可以执行如图9中所示的步骤;或使得处理单元执行本说明书上述描述的根据本申请各种示例性实施方式的物理机侧的云虚拟网络漏洞检测方法中的步骤,例如,处理器1201可以执行如图10中所示的步骤。

下面参照图13来描述根据本申请的这种实施方式的计算装置1300。图13的计算装置1300仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图13,计算装置1300以通用计算装置的形式表现。计算装置1300的组件可以包括但不限于:上述至少一个处理单元1301、上述至少一个存储单元1302、连接不同系统组件(包括存储单元1302和处理单元1301)的总线1303。

总线1303表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。

存储单元1302可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)1321或高速缓存存储单元1322,还可以进一步包括只读存储器(rom)1323。

存储单元1302还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

计算装置1300也可以与一个或多个外部设备1304(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置1300交互的设备通信,或与使得该计算装置1300能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1305进行。并且,计算装置1300还可以通过网络适配器1306与一个或者多个网络(例如局域网(lan),广域网(wan)或公共网络,例如因特网)通信。如图所示,网络适配器1306通过总线1303与用于计算装置1300的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置1300使用其它硬件或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

在一些可能的实施方式中,本申请提供的云虚拟网络漏洞检测方法的每个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的目标虚拟机侧的云虚拟网络漏洞检测方法中的步骤,例如,计算机设备可以执行如图9中所示的步骤。

在一些可能的实施方式中,本申请提供的云虚拟网络漏洞检测方法的每个方面也可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的物理机侧的云虚拟网络漏洞检测方法中的步骤,例如,计算机设备可以执行如图10中所示的步骤。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1