CN111177728B - 一种虚拟设备漏洞挖掘方法、装置及介质 - Google Patents

一种虚拟设备漏洞挖掘方法、装置及介质 Download PDF

Info

Publication number
CN111177728B
CN111177728B CN201910958136.6A CN201910958136A CN111177728B CN 111177728 B CN111177728 B CN 111177728B CN 201910958136 A CN201910958136 A CN 201910958136A CN 111177728 B CN111177728 B CN 111177728B
Authority
CN
China
Prior art keywords
configuration
target
virtual
virtual device
target virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910958136.6A
Other languages
English (en)
Other versions
CN111177728A (zh
Inventor
陈楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910958136.6A priority Critical patent/CN111177728B/zh
Publication of CN111177728A publication Critical patent/CN111177728A/zh
Application granted granted Critical
Publication of CN111177728B publication Critical patent/CN111177728B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种虚拟设备漏洞挖掘方法、装置及介质。所述方法包括:遍历主机系统上的虚拟设备,构建出所述虚拟设备之间对应的拓扑关系;基于所述拓扑关系生成目标虚拟设备的配置样本文件,所述目标虚拟设备指向所述拓扑关系对应的任一所述虚拟设备;向所述目标虚拟设备发送所述配置样本文件;响应于接收到的配置失败指令,根据配置样本文件对应的响应结果进行漏洞挖掘;响应于接收到的配置成功指令,获取目标虚拟设备对应的配置信息;根据配置信息生成目标虚拟设备的接口测试用例;向目标虚拟设备发送接口测试用例;根据接口测试用例对应的响应结果进行漏洞挖掘。本发明能够准确、有效的挖掘出安全漏洞,提高虚拟设备的运行安全性。

Description

一种虚拟设备漏洞挖掘方法、装置及介质
技术领域
本发明涉及互联网通信技术领域,尤其涉及一种虚拟设备漏洞挖掘方法、装置及介质。
背景技术
漏洞是由安全域切换到非安全域的触发点,即在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或者破坏系统。
通过虚拟化(Virtualization)技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用,通常把这种经过虚拟的设备称为虚拟设备。虚拟化技术是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。
工作人员在构建虚拟设备时不可避免的会遗漏对一些情形的考虑,这样虚拟设备在运行中不免会触发漏洞,进而影响相关的任务的执行。然而,现有技术中并不能提供对虚拟设备进行有效漏洞挖掘的方案。
发明内容
为了解决现有技术应用在对虚拟设备进行漏洞挖掘时,准确性低等问题,本发明提供了一种虚拟设备漏洞挖掘方法、装置及介质:
一方面,本发明提供了一种虚拟设备漏洞挖掘方法,所述方法包括:
遍历主机系统上的虚拟设备,构建出所述虚拟设备之间对应的拓扑关系;
基于所述拓扑关系生成目标虚拟设备的配置样本文件,所述目标虚拟设备指向所述拓扑关系对应的任一所述虚拟设备;
向所述目标虚拟设备发送所述配置样本文件;
响应于接收到的配置失败指令,根据所述配置样本文件对应的响应结果进行漏洞挖掘,所述配置失败指令为所述目标虚拟设备基于所述配置样本文件进行配置处理生成的;
响应于接收到的配置成功指令,获取所述目标虚拟设备对应的配置信息,所述配置成功指令为所述目标虚拟设备基于所述配置样本文件进行配置处理生成的;根据所述配置信息生成所述目标虚拟设备的接口测试用例;向所述目标虚拟设备发送所述接口测试用例;根据所述接口测试用例对应的响应结果进行漏洞挖掘。
另一方面提供了一种虚拟设备漏洞挖掘装置,所述装置包括:
拓扑关系构建模块:用于遍历主机系统上的虚拟设备,构建出所述虚拟设备之间对应的拓扑关系;
配置样本文件生成模块:用于基于所述拓扑关系生成目标虚拟设备的配置样本文件,所述目标虚拟设备指向所述拓扑关系对应的任一所述虚拟设备;
配置样本文件发送模块:用于向所述目标虚拟设备发送所述配置样本文件;
第一漏洞挖掘模块:用于响应于接收到的配置失败指令,根据所述配置样本文件对应的响应结果进行漏洞挖掘,所述配置失败指令为所述目标虚拟设备基于所述配置样本文件进行配置处理生成的;
第二漏洞挖掘模块:用于响应于接收到的配置成功指令,获取所述目标虚拟设备对应的配置信息,所述配置成功指令为所述目标虚拟设备基于所述配置样本文件进行配置处理生成的;根据所述配置信息生成所述目标虚拟设备的接口测试用例;向所述目标虚拟设备发送所述接口测试用例;根据所述接口测试用例对应的响应结果进行漏洞挖掘。
另一方面提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述的虚拟设备漏洞挖掘方法。
另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述的虚拟设备漏洞挖掘方法。
本发明提供的一种虚拟设备漏洞挖掘方法、装置及介质,具有如下技术效果:
本发明基于对虚拟设备实现原理的全面分析,综合考虑虚拟设备集群的拓扑关系、虚拟设备的配置以及虚拟设备的接口,进而建立更多维度的攻击面以进行深入的虚拟设备漏洞挖掘。能够准确、有效的挖掘出安全漏洞,提高了虚拟设备的运行安全性,同时提高了漏洞挖掘的效率和质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明实施例提供的一种应用环境的示意图;
图2是本发明实施例提供的一种虚拟设备漏洞挖掘方法的流程示意图;
图3也是本发明实施例提供的一种虚拟设备漏洞挖掘方法的流程示意图;
图4是本发明实施例提供的基于所述拓扑关系生成目标虚拟设备的配置样本文件的一种流程示意图;
图5是本发明实施例提供的向所述目标虚拟设备发送所述配置样本文件的一种流程示意图;
图6是本发明实施例提供的进行漏洞挖掘的一种流程示意图;
图7是本发明实施例提供的一种虚拟设备漏洞挖掘装置的组成框图;
图8是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1是本发明实施例提供的一种应用环境的示意图,如图1所示,该应用环境中,向虚拟设备输入测试用例进行测试,得到响应结果,基于响应结果进行漏洞挖掘。需要说明的是,图1仅仅是一种示例。
在本发明实施例中,可以基于真实硬件(物理的硬件设备,作为计算机的基础)利用Hypervisor(又称虚拟机监视器:virtual machine monitor,VMM)来构建虚拟设备。Hypervisor可以是用来建立与执行虚拟机器(虚拟机、虚拟设备)的软件、固件或硬件。被Hypervisor用来执行一个或多个虚拟机器的真实硬件(比如电脑)称为主体机器(hostmachine,主机),这些虚拟机器则称为客体机器(guestmachine,客机)。Hypervisor提供虚拟的作业平台来执行客体机器操作系统(guest operating systems,guest os,虚拟机系统,客机系统),负责管理其他客体机器操作系统的执行阶段。这些客体机器操作系统,共同分享虚拟化后的硬件资源。
进一步的,host os(主体机器操作系统,主机系统)用来启动虚拟机系统,虚拟设备就在该系统上实现。guest os具有和真实的系统完全一样的功能,进入虚拟机系统后,所有操作都可以在这个全新的独立的虚拟机系统里面进行:独立安装、运行软件,保存数据,拥有自己的独立桌面等。
在实际应用中,可以在服务器上安装由虚拟机软件模拟出的一台虚拟机,即逻辑上的服务器,这样可以实现对资源的充分利用。在该虚拟机运行过程中,用户可以像对真实物理机的操作一样对虚拟机进行操作。具体的,为了在虚拟化环境下实现与网卡、磁盘等硬件设备相同的功能,可以利用虚拟设备进行模型,这样可以得到模拟网卡功能的虚拟网卡设备、模拟磁盘功能的虚拟磁盘设备等等。
在一个具体的实施例中,所述虚拟设备漏洞挖掘装置可以包括虚拟设备漏洞挖掘模块和异常监控模块。虚拟设备漏洞挖掘安装在guest os中,通过它可以对host os中的虚拟设备进行漏洞挖掘。异常监控模块运行于host os中,可以在漏洞挖掘过程中用来监控虚拟设备的运行,如果出现异常则进行记录,方便后续的漏洞复现和分析。
如图1所示,虚拟设备漏洞挖掘模块其包含以下功能单元:
虚拟设备拓扑分析单元:该单元通过遍历虚拟设备,构建出所有虚拟设备的拓扑关系数据图。
虚拟设备配置测试单元:对虚拟设备发送不同的配置选项,进行测试。
虚拟设备IO(输入输出)/MMIO(内存映射输入输出)测试单元:在不同的配置下,对虚拟设备发送IO/MMIO指令,进行测试。
虚拟设备其他接口测试单元:根据虚拟设备的具体实现,发现新的调用接口,对该接口进行测试。
进一步的,当虚拟设备启动后,开始加载虚拟设备漏洞挖掘模块(可以加载其中的内核态程序和用户态程序)。用户态程序用于实现漏洞挖掘的主逻辑:构建拓扑关系,生成、发送配置测试文件以及生成、发送接口测试用例等功能。由于虚拟设备对于guest os而言是真实的设备,需要调用特权指令来访问,因而由所述内核态程序调用特权指令以将对应的功能指令发送至虚拟设备。
以下介绍本发明一种虚拟设备漏洞挖掘方法的具体实施例,图2、3是本发明实施例提供的一种虚拟设备漏洞挖掘方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2、3所示,所述方法可以包括:
S201:遍历主机系统上的虚拟设备,构建出所述虚拟设备之间对应的拓扑关系;
在本发明实施例中,所述拓扑关系表征了作为拓扑节点的各虚拟设备之间的关联关系。可以通过遍历主机系统上的虚拟设备,所有虚拟设备可以组成一个虚拟设备集群,进而构建出该虚拟设备集群对应的拓扑图。
在一个具体的实施例中,可以从注册表中获取虚拟设备列表,所述虚拟设备列表存储于注册表项\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum中。然后,读取所述虚拟设备列表,根据所述虚拟设备列表构建出所述拓扑关系。
在另一个具体的实施例中,在内核中,每个设备都有其对应的设备对象(DeviceObject)。可以确定虚拟设备对象类型(对应虚拟设备),再访问内核、遍历内核中所述虚拟设备对象类型对应的设备对象,进而构建出所述拓扑关系。
在另一个具体的实施例中,虚拟设备集群中有一些虚拟设备是总线设备,总线设备会负责连接其他的功能性设备。可以访问总线设备。然后,基于所述总线设备的连接关系(指向所述总线设备连接的所有设备)构建出所述拓扑关系。
在实际应用中,可以将“遍历主机系统上的虚拟设备,构建出所述虚拟设备之间对应的拓扑关系”对应的具体执行逻辑以拓扑关系构建指令的形式表现。所述拓扑关系构建指令可以存在于所述用户态程序中,所述用户态程序将所述拓扑关系构建指令发送给所述内核态程序,再由所述内核态程序调用特权指令以将所述拓扑关系构建指令发送至虚拟设备集群,实现拓扑关系的构建。
S202:基于所述拓扑关系生成目标虚拟设备的配置样本文件,所述目标虚拟设备指向所述拓扑关系对应的任一所述虚拟设备;
在本发明实施例中,通过拓扑关系可以明确各虚拟设备之间的关联性。比如虚拟设备A与虚拟设备B之间存在以下关联关系:对虚拟设备A进行设置之前,需要先对虚拟设备B进行相关设置。
在一个具体的实施例中,如图4所示,所述基于所述拓扑关系生成目标虚拟设备的配置样本文件,包括:
S301:基于所述拓扑关系确定出所述目标虚拟设备对应的拓扑属性;
拓扑关系可以表征作为拓扑节点的各虚拟设备和对应的通信介质共同构成的网络结构。拓扑关系可以描述线缆和各虚拟设备(比如虚拟键盘设备、虚拟磁盘设备、虚拟鼠标设备、虚拟网卡设备、虚拟显卡设备、虚拟USB(Universal Serial Bus,通用串行总线)设备等)的布局(比如可以在对应物体拓扑上的总线型、星型、环型、树型、网状型等结构)以及数据传输时所采用的路径。其中,拓扑关系对应有物理拓扑和逻辑拓扑。物理拓扑是指物理结构上各种设备和传输介质的布局。
所述目标虚拟设备可以指向所述拓扑关系对应的任一所述虚拟设备。基于所述拓扑关系确定出的所述目标虚拟设备对应的拓扑属性可以包括从所述目标虚拟设备对应的拓扑节点与相邻节点之间的关联关系、所述拓扑节点对应的位置信息、所述拓扑节点对应的通信方式组成的群组中选择的至少一个。
S302:根据所述拓扑属性生成所述配置样本文件;
结合所述拓扑属性可以为生成配置样本文件提供更全局性的参考。
虚拟设备可以有其对应的配置寄存器,可以通过对对应的配置寄存器的设置以修改虚拟设备的配置信息。具体的,可以确定所述目标虚拟设备对应的配置寄存器。然后,获取所述配置寄存器对应的配置项集合,所述配置项集合包括至少一个配置项以及每个所述配置项对应的取值范围。再根据所述配置项集合确定目标配置项,以及根据所述目标配置项对应的取值范围随机生成目标值。进而,根据所述目标值生成所述配置样本文件。
在实际应用中,可以将“基于所述拓扑关系生成目标虚拟设备的配置样本文件”对应的具体执行逻辑以配置样本文件生成指令的形式表现。所述配置样本文件生成指令可以存在于所述用户态程序中,所述用户态程序将所述配置样本文件生成指令发送给所述内核态程序,再由所述内核态程序调用特权指令以将所述配置样本文件生成指令发送至目标虚拟设备。
S203:向所述目标虚拟设备发送所述配置样本文件;
在本发明实施例中,配置样本文件对应的配置项不同,向目标虚拟设备发送配置样本文件所调用的端口也可以不同。
在一个具体的实施例中,如图5所示,所述向所述目标虚拟设备发送所述配置样本文件,包括:
S401:根据所述目标配置项确定对应的调用端口;
所述配置样本文件可以是根据指向所述目标配置项的所述目标值生成的。那么可以根据所述目标配置项确定对应的调用端口。
S402:当所述调用端口为第一类端口时,读取所述第一类端口对应的第一端口信息,根据所述第一端口信息确定第一目标指令,以及利用所述第一目标指令调用所述第一类端口向所述目标虚拟设备发送所述配置样本文件;
所述第一类端口可以是所述目标虚拟设备自身的输入输出(IO)端口和内存映射输入输出(MMIO)端口。调用所述第一类端口向所述目标虚拟设备发送所述配置样本文件:读取所述目标虚拟设备自身的输入输出(IO)端口或内存映射输入输出(MMIO)端口对应的第一端口信息;利用(In,Out)指令(输入输出指令,由IO端口对应的第一端口信息确定的第一目标指令)通过IO端口发送配置样本文件,当然,也可以接收配置样本文件对应的配置结果;利用MOV指令(一种数据传输指令;由MMIO端口对应的第一端口信息确定的第一目标指令)通过MMIO端口发送配置样本文件,当然,也可以接收配置样本文件对应的配置结果。
S403:当所述调用端口为第二类端口时,读取所述第二类端口对应的第二端口信息和所述目标虚拟设备对应的设备标识,根据所述第二端口信息确定第二目标指令,以及利用所述第二目标指令和所述设备标识调用所述第二类端口向所述目标虚拟设备发送所述配置样本文件。
所述第二类端口可以是连接所述目标虚拟设备的总线输入输出(IO)端口。调用所述第二类端口向所述目标虚拟设备发送所述配置样本文件:读取连接所述目标虚拟设备的总线输入输出(IO)端口对应的第二端口信息;读取所述目标虚拟设备在总线上对应的设备标识;利用(In,Out)指令(输入输出指令,由总线IO端口对应的第二端口信息确定的第二目标指令)和所述设备标识通过总线IO端口发送配置样本文件。
S204:响应于接收到的配置失败指令,根据所述配置样本文件对应的响应结果进行漏洞挖掘,所述配置失败指令为所述目标虚拟设备基于所述配置样本文件进行配置处理生成的;
在本发明实施例中,所述配置失败指令可以由所述目标虚拟设备基于所述配置样本文件未完成配置而生成,比如通过可以根据上述步骤S402中接收到的所述配置结果确定所述配置样本文件未完成配置。
在一个具体的实施例中,对于根据所述配置样本文件对应的响应结果进行漏洞挖掘的步骤。如图6所示,所述根据所述配置样本文件对应的响应结果进行漏洞挖掘,包括:
S501:监控所述虚拟设备的运行状态;
可以对虚拟设备集群中的所有虚拟设备的运行状态进行监控,可以利用调试器技术对所述虚拟设备所运行的进程进行监控。当然,可以对目标虚拟设备对应的进程进行监控。考虑所述拓扑关系,可以对虚拟设备集群中与所述目标虚拟设备存在关联关系的关联虚拟设备对应的进程进行监控。
S502:基于所述运行状态捕获所述虚拟设备所触发的异常消息;
结合步骤S501中监控对象的不同,当存在虚拟设备(可以是目标虚拟设备)触发了内存异常消息或其他异常消息时,及时捕获该异常消息。
S503:根据所述异常消息进行漏洞挖掘。
异常消息的出现很有可能来自于漏洞的出现。可以对该异常消息对应的情形以及调用栈进行记录,生成记录日志。利用该记录日志进行更细致、全面的漏洞分析。
S205:响应于接收到的配置成功指令,获取所述目标虚拟设备对应的配置信息,所述配置成功指令为所述目标虚拟设备基于所述配置样本文件进行配置处理生成的(对应S2051);根据所述配置信息生成所述目标虚拟设备的接口测试用例(对应S2052);向所述目标虚拟设备发送所述接口测试用例(对应S2053);根据所述接口测试用例对应的响应结果进行漏洞挖掘(对应S2054);
在本发明实施例中,所述配置成功指令可以由所述目标虚拟设备基于所述配置样本文件完成配置而生成,比如通过可以根据上述步骤S402中接收到的所述配置结果确定所述配置样本文件完成配置。所述配置成功指令可以表征所述目标虚拟设备基于所述配置样本文件完成配置,所述目标虚拟设备对应的配置信息是基于所述配置样本文件得到的,这样可以保证在进行漏洞挖掘的过程中测试路径的覆盖全面性。
在一个具体的实施例中,对于根据所述配置信息生成所述目标虚拟设备的接口测试用例的步骤。虚拟设备模拟真实硬件,硬件(对应虚拟设备)与对应的操作系统(guestos)可以基于接口进行交互。可以生成与目标虚拟设备进行接口交互的样本数据用以接口测试。根据所述配置信息可以更具针对性的生成所述目接口测试用例,提高漏洞挖掘的效率。
具体的,可以根据所述配置信息从所述目标虚拟设备上确定出所述目标测试接口以及所述目标测试接口对应的接口属性。然后,根据所述接口属性构建所述接口测试用例。
所述接口测试用例可以对应功能测试(比如测试参数类型、边界值)、性能测试(比如测试响应时间、并发数和吞吐量)以及安全测试(比如测试敏感信息是否加密、接口是否防恶意请求)。
所述接口属性包括从输入输出(IO)端口属性、内存映射输入输出(MMIO)端口属性、命名管道属性、共享内存属性和虚拟总线属性组成的群组中选择的至少一个。基于接口属性维度,保证了所生成的接口测试用例的针对性,同时可以有效保证接口测试的全面性。
其中,针对命名管道属性:命名管道可在同一台虚拟设备的不同进程之间或在跨越一个网络的不同虚拟设备的不同进程之间,支持可靠的、单向或双向的数据通信。基于命名管道可以实现目标虚拟设备与guest os的通讯。针对共享内存属性:虚拟设备可以申请一段共享内存,基于共享内存实现目标虚拟设备与guest os的通讯,尤其是传输较大数据。针对虚拟总线属性:虚拟设备可以设置一套虚拟总线机制,利用该机制构建一条数据传输通道(例如环形共享内存,基于虚拟总线实现目标虚拟设备与guest os的通讯。
在实际应用中,可以将“根据所述配置信息生成所述目标虚拟设备的接口测试用例”对应的具体执行逻辑以接口测试用例生成指令的形式表现。可以结合内核态程序和用户态程序(可参见步骤S201中的相关记载),这里可以将所述接口测试用例生成指令发送给所述用户态程序,所述用户态程序再将所述接口测试用例生成指令发送给所述内核态程序。进一步的,可以只将执行“接口测试用例生成指令”的结果“接口测试用例”发送给所述用户态程序,所述用户态程序再将所述接口测试用例发送给所述内核态程序。
在一个具体的实施例中,对于向所述目标虚拟设备发送所述接口测试用例的步骤。根据所述配置信息从所述目标虚拟设备上确定出目标测试接口以及所述目标测试接口对应的接口属性;根据所述接口属性确定对应的发送方式;基于所述发送方式向所述目标虚拟设备发送所述接口测试用例。接口测试用例对应目标测试接口,根据所述目标测试接口的不同可以采用不同的发送方式向所述目标虚拟设备发送所述接口测试用例。
1)当所述目标测试接口为输入输出端口时,利用所述输入输出端口对应的端口地址和端口调用指令调用所述输入输出端口向所述目标虚拟设备发送所述接口测试用例。
比如读取目标虚拟设备的输入输出(IO)端口对应的端口地址;利用该端口地址和(In,Out)指令(输入输出指令)通过IO端口向所述目标虚拟设备发送所述接口测试用例。
2)当所述目标测试接口为内存映射输入输出端口时,利用所述内存映射输入输出端口对应的端口映射地址和端口调用指令调用所述内存映射输入输出端口向所述目标虚拟设备发送所述接口测试用例。
比如读取目标虚拟设备的内存映射输入输出(MMIO)端口对应的端口地址(具体的,可以是端口映射地址);利用该端口地址和MOV指令通过MMIO端口向所述目标虚拟设备发送所述接口测试用例。
3)当所述目标测试接口对应的接口属性为命名管道属性时,根据所述命名管道属性构建所述接口测试用例,通过命名管道向所述目标虚拟设备发送所述接口测试用例。
4)当所述目标测试接口对应的接口属性为共享内存属性时,根据所述共享内存属性构建所述接口测试用例,通过共享内存向所述目标虚拟设备发送所述接口测试用例。具体的,因此可以在guest os中修改与目标虚拟设备对应的一段共享内存,来达到与虚拟设备通讯的目的。
5)当所述目标测试接口对应的接口属性为虚拟总线属性时,根据所述虚拟总线属性构建所述接口测试用例,通过虚拟总线向所述目标虚拟设备发送所述接口测试用例。
在一个具体的实施例中,对于根据所述接口测试用例对应的响应结果进行漏洞挖掘的步骤。如图6所示,所述根据所述接口测试用例对应的响应结果进行漏洞挖掘,包括:
S501:监控所述虚拟设备的运行状态;
可以对虚拟设备集群中的所有虚拟设备的运行状态进行监控,可以利用调试器技术对所述虚拟设备所运行的进程进行监控。当然,可以对目标虚拟设备对应的进程进行监控。考虑所述拓扑关系,可以对虚拟设备集群中与所述目标虚拟设备存在关联关系的关联虚拟设备对应的进程进行监控。
S502:基于所述运行状态捕获所述虚拟设备所触发的异常消息;
结合步骤S501中监控对象的不同,当存在虚拟设备(可以是目标虚拟设备)触发了内存异常消息或其他异常消息时,及时捕获该异常消息。
S503:根据所述异常消息进行漏洞挖掘。
异常消息的出现很有可能来自于漏洞的出现。可以对该异常消息对应的情形以及调用栈进行记录,生成记录日志。利用该记录日志进行更细致、全面的漏洞分析。
由以上本说明书实施例提供的技术方案可见,基于对虚拟设备实现原理的全面分析,综合考虑虚拟设备集群的拓扑关系、虚拟设备的配置以及虚拟设备的接口,进而建立更多维度的攻击面以进行深入的虚拟设备漏洞挖掘。能够准确、有效的挖掘出安全漏洞,提高了虚拟设备的运行安全性和可靠性,同时提高了漏洞挖掘的效率和质量。本说明书实施例提供的漏洞挖掘方案不仅可以应用于虚拟设备,还可以应用于虚拟化软件中。
本发明实施例还提供了一种虚拟设备漏洞挖掘装置,如图7所示,所述装置包括:
拓扑关系构建模块710:用于遍历主机系统上的虚拟设备,构建出所述虚拟设备之间对应的拓扑关系;
配置样本文件生成模块720:用于基于所述拓扑关系生成目标虚拟设备的配置样本文件,所述目标虚拟设备指向所述拓扑关系对应的任一所述虚拟设备;
配置样本文件发送模块730:用于向所述目标虚拟设备发送所述配置样本文件;
第一漏洞挖掘模块740:用于响应于接收到的配置失败指令,根据所述配置样本文件对应的响应结果进行漏洞挖掘,所述配置失败指令为所述目标虚拟设备基于所述配置样本文件进行配置处理生成的;
第二漏洞挖掘模块750:用于响应于接收到的配置成功指令,获取所述目标虚拟设备对应的配置信息,所述配置成功指令为所述目标虚拟设备基于所述配置样本文件进行配置处理生成的;根据所述配置信息生成所述目标虚拟设备的接口测试用例;向所述目标虚拟设备发送所述接口测试用例;根据所述接口测试用例对应的响应结果进行漏洞挖掘。
需要说明的,所述装置实施例中的装置与方法实施例基于同样的发明构思。
本发明实施例提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例所提供的虚拟设备漏洞挖掘方法。
进一步地,图8示出了一种用于实现本发明实施例所提供的方法的电子设备的硬件结构示意图,所述设备可以参与构成或包含本发明实施例所提供的装置。如图8所示,设备80可以包括一个或多个(图中采用802a、802b,……,802n来示出)处理器802(处理器802可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器804、以及用于通信功能的传输装置806。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备80还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。
应当注意到的是上述一个或多个处理器802和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到电子设备80(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器804可用于存储应用软件的软件程序以及模块,如本发明实施例中所述的方法对应的程序指令/数据存储装置,处理器802通过运行存储在存储器84内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种虚拟设备漏洞挖掘方法。存储器804可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器804可进一步包括相对于处理器802远程设置的存储器,这些远程存储器可以通过网络连接至电子设备80。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置806用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备80的通信供应商提供的无线网络。在一个实例中,传输装置806包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置806可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与电子设备80(或移动设备)的用户界面进行交互。
本发明的实施例还提供了一种存储介质,所述存储介质可设置于电子设备之中以保存用于实现方法实施例中一种虚拟设备漏洞挖掘方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的虚拟设备漏洞挖掘方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种虚拟设备漏洞挖掘方法,其特征在于,所述方法包括:
遍历主机系统上的虚拟设备,构建出所有所述虚拟设备之间对应的拓扑关系;
基于所述拓扑关系生成针对目标虚拟设备的配置样本文件,所述目标虚拟设备指向所述拓扑关系对应的任一所述虚拟设备;
向所述目标虚拟设备发送所述配置样本文件;
响应于接收到的配置失败指令,根据所述配置样本文件对应的响应结果进行漏洞挖掘,所述配置失败指令为所述目标虚拟设备基于所述配置样本文件进行配置处理生成的;
响应于接收到的配置成功指令,获取所述目标虚拟设备对应的配置信息,根据所述配置信息生成针对所述目标虚拟设备的接口测试用例,向所述目标虚拟设备发送所述接口测试用例;根据所述接口测试用例对应的响应结果进行漏洞挖掘;所述配置成功指令为所述目标虚拟设备基于所述配置样本文件进行配置处理生成的。
2.根据权利要求1所述的方法,其特征在于,所述遍历主机系统上的虚拟设备,构建出所有所述虚拟设备对应的拓扑关系,包括:
从注册表中获取虚拟设备列表;
根据所述虚拟设备列表构建出所述拓扑关系;
或者,
确定虚拟设备对象类型;
遍历内核中所述虚拟设备对象类型对应的设备对象,构建出所述拓扑关系;
或者,
访问总线设备;
基于所述总线设备的连接关系构建出所述拓扑关系。
3.根据权利要求1所述的方法,其特征在于,所述基于所述拓扑关系生成针对目标虚拟设备的配置样本文件,包括:
基于所述拓扑关系确定出所述目标虚拟设备对应的拓扑属性;
根据所述拓扑属性生成所述配置样本文件;
其中,所述拓扑属性包括从所述目标虚拟设备对应的拓扑节点与相邻节点之间的关联关系、所述拓扑节点对应的位置信息、所述拓扑节点对应的通信方式组成的群组中选择的至少一个。
4.根据权利要求3所述的方法,其特征在于,所述根据所述拓扑属性生成所述配置样本文件,还包括:
确定所述目标虚拟设备对应的配置寄存器;
获取所述配置寄存器对应的配置项集合,所述配置项集合包括至少一个配置项以及每个所述配置项对应的取值范围;
根据所述配置项集合确定目标配置项,以及根据所述目标配置项对应的取值范围随机生成目标值;
根据所述目标值生成所述配置样本文件。
5.根据权利要求4所述的方法,其特征在于,所述向所述目标虚拟设备发送所述配置样本文件,包括:
根据所述目标配置项确定对应的调用端口;
当所述调用端口为第一类端口时,读取所述第一类端口对应的第一端口信息,根据所述第一端口信息确定第一目标指令,以及利用所述第一目标指令调用所述第一类端口向所述目标虚拟设备发送所述配置样本文件;
当所述调用端口为第二类端口时,读取所述第二类端口对应的第二端口信息和所述目标虚拟设备对应的设备标识,根据所述第二端口信息确定第二目标指令,以及利用所述第二目标指令和所述设备标识调用所述第二类端口向所述目标虚拟设备发送所述配置样本文件。
6.根据权利要求1所述的方法,其特征在于,所述根据所述配置信息生成针对所述目标虚拟设备的接口测试用例,包括:
根据所述配置信息从所述目标虚拟设备上确定出目标测试接口以及所述目标测试接口对应的接口属性;
根据所述接口属性构建所述接口测试用例;
其中,所述接口属性包括从输入输出端口属性、内存映射输入输出端口属性、命名管道属性、共享内存属性和虚拟总线属性组成的群组中选择的至少一个。
7.根据权利要求1所述的方法,其特征在于,所述向所述目标虚拟设备发送所述接口测试用例,包括:
根据所述配置信息从所述目标虚拟设备上确定出目标测试接口以及所述目标测试接口对应的接口属性;
根据所述接口属性确定对应的发送方式;
基于所述发送方式向所述目标虚拟设备发送所述接口测试用例。
8.根据权利要求1所述的方法,其特征在于,所述根据所述配置样本文件对应的响应结果进行漏洞挖掘和所述根据所述接口测试用例对应的响应结果进行漏洞挖掘,包括:
监控所述虚拟设备的运行状态;
基于所述运行状态捕获所述虚拟设备所触发的异常消息;
根据所述异常消息进行漏洞挖掘。
9.一种虚拟设备漏洞挖掘装置,其特征在于,所述装置包括:
拓扑关系构建模块:用于遍历主机系统上的虚拟设备,构建出所有所述虚拟设备之间对应的拓扑关系;
配置样本文件生成模块:用于基于所述拓扑关系生成针对目标虚拟设备的配置样本文件,所述目标虚拟设备指向所述拓扑关系对应的任一所述虚拟设备;
配置样本文件发送模块:用于向所述目标虚拟设备发送所述配置样本文件;
第一漏洞挖掘模块:用于响应于接收到的配置失败指令,根据所述配置样本文件对应的响应结果进行漏洞挖掘,所述配置失败指令为所述目标虚拟设备基于所述配置样本文件进行配置处理生成的;
第二漏洞挖掘模块:用于响应于接收到的配置成功指令,获取所述目标虚拟设备对应的配置信息,根据所述配置信息生成针对所述目标虚拟设备的接口测试用例;向所述目标虚拟设备发送所述接口测试用例;根据所述接口测试用例对应的响应结果进行漏洞挖掘;所述配置成功指令为所述目标虚拟设备基于所述配置样本文件进行配置处理生成的。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1-8任一所述的虚拟设备漏洞挖掘方法。
11.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1-8任一所述的虚拟设备漏洞挖掘方法。
CN201910958136.6A 2019-10-10 2019-10-10 一种虚拟设备漏洞挖掘方法、装置及介质 Active CN111177728B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910958136.6A CN111177728B (zh) 2019-10-10 2019-10-10 一种虚拟设备漏洞挖掘方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910958136.6A CN111177728B (zh) 2019-10-10 2019-10-10 一种虚拟设备漏洞挖掘方法、装置及介质

Publications (2)

Publication Number Publication Date
CN111177728A CN111177728A (zh) 2020-05-19
CN111177728B true CN111177728B (zh) 2022-06-17

Family

ID=70657061

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910958136.6A Active CN111177728B (zh) 2019-10-10 2019-10-10 一种虚拟设备漏洞挖掘方法、装置及介质

Country Status (1)

Country Link
CN (1) CN111177728B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235300B (zh) * 2020-10-14 2023-10-24 腾讯科技(深圳)有限公司 云虚拟网络漏洞检测方法、系统、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103812726A (zh) * 2014-01-26 2014-05-21 烽火通信科技股份有限公司 一种数据通信设备的自动化测试方法及装置
CN108075938A (zh) * 2016-11-17 2018-05-25 迈普通信技术股份有限公司 一种自动化测试方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2974965A1 (fr) * 2011-05-06 2012-11-09 France Telecom Procede de detection d'intrusions
US9979743B2 (en) * 2015-08-13 2018-05-22 Accenture Global Services Limited Computer asset vulnerabilities

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103812726A (zh) * 2014-01-26 2014-05-21 烽火通信科技股份有限公司 一种数据通信设备的自动化测试方法及装置
CN108075938A (zh) * 2016-11-17 2018-05-25 迈普通信技术股份有限公司 一种自动化测试方法和装置

Also Published As

Publication number Publication date
CN111177728A (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
US10623418B2 (en) Internet of Things security appliance
US20180039507A1 (en) System and method for management of a virtual machine environment
Jin et al. A VMM-based intrusion prevention system in cloud computing environment
US10530837B2 (en) Always-on monitoring in the cloud
US8910172B2 (en) Application resource switchover systems and methods
US8763005B2 (en) Virtual-machine-based application-service provision of front-end versions of back-end applications
US20230214229A1 (en) Multi-tenant java agent instrumentation system
US8677339B2 (en) Component relinking in migrations
Tao et al. On building a cloud-based mobile testing infrastructure service system
CN105247533A (zh) 信息处理装置和确定方法
CN111177728B (zh) 一种虚拟设备漏洞挖掘方法、装置及介质
CN117032894A (zh) 容器安全状态检测方法、装置、电子设备及存储介质
US11526373B2 (en) Agentless personal network firewall in virtualized datacenters
Bleikertz Automated security analysis of infrastructure clouds
US11297086B2 (en) Correlation-based network security
US11295011B2 (en) Event-triggered behavior analysis
WO2022043852A1 (en) Performing application snapshot using process virtual machine resources
KR101301938B1 (ko) 공유메모리를 이용하여 로그를 수집하는 방법 및 그 단말기
US20240095370A1 (en) Protecting software development environments from malicious actors
Jena et al. Co-Resident Attack and its impact on Virtual Environment
Mourlin et al. Monitoring architecture for fog and mobile cloud
US11368473B2 (en) Interface threat assessment in multi-cluster system
Tibom et al. Design, Implementation and Evaluation of a Moving Target Defense in Distributed Systems
US9686171B1 (en) Systems and methods for attributing input/output statistics networks to region-mapped entities
Kanimozhi Trusted cloud—a solution for cloud cartography

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant