CN110764870A - 一种虚拟机逃逸漏洞挖掘方法、装置、设备及介质 - Google Patents
一种虚拟机逃逸漏洞挖掘方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN110764870A CN110764870A CN201910944781.2A CN201910944781A CN110764870A CN 110764870 A CN110764870 A CN 110764870A CN 201910944781 A CN201910944781 A CN 201910944781A CN 110764870 A CN110764870 A CN 110764870A
- Authority
- CN
- China
- Prior art keywords
- test case
- preset
- code
- coverage rate
- fuzzy test
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 230
- 238000005065 mining Methods 0.000 title claims abstract description 36
- 238000012360 testing method Methods 0.000 claims abstract description 233
- 230000008569 process Effects 0.000 claims abstract description 174
- 230000006870 function Effects 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 20
- 230000004048 modification Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 3
- 230000035772 mutation Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种虚拟机逃逸漏洞挖掘方法、装置、设备及介质,所述方法包括获取运行于宿主机的预设进程的源代码和宿主机的预设内核模块的功能文件;对预设进程的源代码进行修改,以使预设进程执行用于挖掘虚拟机逃逸漏洞的模糊测试用例,以及输出第一代码覆盖率信息;对预设内核模块的功能代码进行修改,以使得预设内核模块时输出运行过程中的第二代码覆盖率信息;在预设进程指向的进程空间中对虚拟机执行模糊测试用例,所述模糊测试用例根据所述第一代码覆盖率信息和所述第二代码覆盖率信息动态生成;获取模糊测试用例对应的测试结果并进行分析。本发明可以探测到提高测试程序的代码覆盖率,挖掘到较广和较深层次代码逻辑中的虚拟机逃逸漏洞。
Description
技术领域
本发明涉及测试领域,尤其涉及一种虚拟机逃逸漏洞挖掘方法、装置、设备及介质。
背景技术
云计算技术是由其底层的虚拟化技术支撑的,大部分云厂商的虚拟机操作***运行于宿主机的预设进程之中,由宿主机的预设内核模块与所述预设进程共同完成对于中央处理器、内存以及硬件I/O的模拟。
在云厂商环境中,虚拟机虽然是运行在宿主机的进程中,但虚拟机无法直接访问宿主机的资源,但如果所述预设进程和所述预设内核模块的代码中存在漏洞,则能够让虚拟机拥有宿主机权限,访问宿主机资源,这类漏洞即被称之为虚拟机逃逸漏洞。虚拟机逃逸漏洞对云厂商及其商户的危害巨大,攻击者可以通过购买虚拟机,利用虚拟机逃逸漏洞攻击云厂商的宿主机,也可以对其他商户的虚拟机进行攻击,因此,对于虚拟机逃逸漏洞的挖掘非常具有实际价值。
现有技术中挖掘虚拟机逃逸漏洞的方法主要有两种,一种是纯人工审计的方法,受限于审计者的能力和经验;一种是在虚拟机当中随机对硬件I/O端口和I/O内存进行读写访问测试,代码覆盖率较低。
发明内容
为了解决现有技术中自动挖掘虚拟机逃逸漏洞的方法存在代码覆盖率较差的技术问题。本发明实施例提供一种虚拟机逃逸漏洞挖掘方法、装置、设备及介质。
一方面,本发明提供了一种虚拟机逃逸漏洞挖掘方法,所述方法包括:
获取运行于宿主机的预设进程的源代码和宿主机的预设内核模块的功能文件;
对所述预设进程的源代码进行修改,并基于修改后的预设进程的源代码得到预设进程执行文件,以使得基于所述预设进程执行文件运行的预设进程执行用于挖掘虚拟机逃逸漏洞的模糊测试用例,以及输出第一代码覆盖率信息;
对所述预设内核模块的功能代码进行修改,以使得基于修改后的功能代码运行预设内核模块时输出运行过程中的第二代码覆盖率信息;
运行所述预设进程执行文件以及所述预设内核模块,在预设进程指向的进程空间中对虚拟机执行模糊测试用例,所述模糊测试用例根据所述第一代码覆盖率信息和所述第二代码覆盖率信息动态生成;
获取所述模糊测试用例对应的测试结果,根据所述模糊测试用例和其对应的测试结果生成待分析数据;
对所述待分析数据进行处理以挖掘虚拟机逃逸漏洞。
另一方面,本发明提供一种虚拟机逃逸漏洞挖掘装置,所述装置包括:
文件获取模块,用于获取运行于宿主机的预设进程的源代码和宿主机的预设内核模块的功能文件;
预设进程修改模块,用于对所述预设进程的源代码进行修改,并基于修改后的预设进程的源代码得到预设进程执行文件,以使得基于所述预设进程执行文件运行的预设进程执行用于挖掘虚拟机逃逸漏洞的模糊测试用例,以及输出第一代码覆盖率信息;
预设内核模块修改模块,用于对所述预设内核模块的功能代码进行修改,以使得基于修改后的功能代码运行预设内核模块时输出运行过程中的第二代码覆盖率信息;
运行模块,用于运行所述预设进程执行文件以及所述预设内核模块,在预设进程指向的进程空间中对虚拟机执行模糊测试用例,所述模糊测试用例根据所述第一代码覆盖率信息和所述第二代码覆盖率信息动态生成;
待分析数据获取模块,用于获取所述模糊测试用例对应的测试结果,根据所述模糊测试用例和其对应的测试结果生成待分析数据;
待分析数据处理模块,用于对所述待分析数据进行处理以挖掘虚拟机逃逸漏洞。
另一方面,本发明提供了一种虚拟机逃逸漏洞挖掘设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现一种虚拟机逃逸漏洞挖掘方法。
另一方面,本发明提供了一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行一种虚拟机逃逸漏洞挖掘方法。
本发明提供了一种虚拟机逃逸漏洞挖掘方法、装置、设备及介质。本发明可以实时根据预设内核模块和预设进程反馈的代码覆盖情况来生成新的测试用例,可以探测到更多的代码路径,提高测试程序的代码覆盖率,挖掘到较广和较深层次代码逻辑中的虚拟机逃逸漏洞。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明提供的一种虚拟机逃逸漏洞挖掘方法流程图;
图2是本发明提供的对所述预设进程的源代码进行修改,基于修改后的预设进程的源代码得到预设进程执行文件流程图;
图3是本发明提供模糊测试用例获取方法流程图;
图4是本发明提供的根据所述第一代码覆盖率信息和第二代码覆盖率信息动态生成模糊测试用例流程图;
图5是本发明提供的获取模糊测试用例对应的测试结果,根据所述模糊测试用例和其对应的测试结果生成待分析数据流程图;
图6是本发明提供的一种虚拟机逃逸漏洞挖掘方法的实施场景示意图;
图7是本发明提供的一种虚拟机逃逸漏洞挖掘框图;
图8是本发明提供的一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了使本发明实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明实施例,并不用于限定本发明实施例。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。为了便于理解本发明实施例所述的技术方案及其产生的技术效果,本发明实施例首先对于相关专业名词进行解释:
代码覆盖率:代码覆盖(Code coverage)是软件测试中的一种度量指标,描述程式中源代码被测试的比例和程度,所得比例称为代码覆盖率。
虚拟机:虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件***功能的、运行在一个完全隔离环境中的完整计算机***。
宿主机:宿主机是承载虚拟机的实际物理机器,虚拟机运行在虚拟化软件当中,虚拟化软件运行在宿主机中,一台宿主机通常可以运行一个或多个虚拟机。
虚拟机逃逸漏洞:虚拟机逃逸漏洞是指宿主机上的虚拟化软件或宿主机本身存在漏洞,使得运行于其中的虚拟机可以触发这个漏洞从而直接获得宿主机权限或访问宿主机资源。
QEMU-KVM:目前主流云厂商大部分使用了QEMU-KVM作为其虚拟化平台,其提供的云服务均依赖于QEMU-KVM作为其虚拟化平台。在QEMU-KVM架构下,虚拟机操作***运行于宿主机的QEMU进程当中,由宿主机的KVM内核模块和QEMU进程共同完成对于虚拟机CPU,内存和硬件I/O的模拟。
KVM:KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术的Linux的全虚拟化解决方案。它是Linux中一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。但仅有KVM模块是远远不够的,因为用户无法直接控制内核模块去做事情,还需要有一个运行在用户空间的工具才行。这个用户空间的工具可以为开源虚拟化软件QEMU。
Hypervisor,又称虚拟机监视器(Virtual Machine Monitor,VMM),是用来建立与执行虚拟机器的软件、固件或硬件。
模糊测试:模糊测试(Fuzz testing,Fuzzing)是一种软件测试技术。其核心思想是将自动或半自动生成的随机数据输入到一个程序中,并监视程序异常,如崩溃,断言(Assertion)失败,以发现可能的程序错误。模糊测试常常用于检测软件或计算机***的安全漏洞。
程序插桩:它是在保证被测程序原有逻辑完整性的基础上在程序中***一些探针(本质上就是进行信息采集的代码段,可以是赋值语句或采集覆盖信息的函数调用),通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,进而得到逻辑覆盖等动态信息,从而实现测试目的方法。
现有的虚拟机逃逸漏洞挖掘方案中,人工审计的方法受限于人的知识和经验,需要大量的时间来理解代码逻辑。随机测试I/O端口和I/O内存的读写访问的方法代码覆盖率较低,不利于发掘更深和更广层次代码中的漏洞。因此,本发明实施例提供一种虚拟机逃逸漏洞挖掘方法,所述方法基于宿主机中虚拟化软件反馈的代码覆盖信息生成测试用例,从而让测试用例能够触发更广和更深的代码路径,提高测试的代码覆盖率。
本发明实施例提供一种虚拟机逃逸漏洞挖掘方法,如图1所示,包括:
S101.获取运行于宿主机的预设进程的源代码和宿主机的预设内核模块的功能文件。
具体地,本发明实施例中所述功能文件指可以对预设内核模块的执行功能产生影响的文件,比如所述功能文件可以为预设内核模块的源代码或者预设内核魔块的配置文件。
具体地,由于大部分云厂商的虚拟机操作***运行于宿主机的预设进程之中,由宿主机的预设内核模块与所述预设进程共同完成对于中央处理器、内存以及硬件I/O的模拟,因此,为了对虚拟机逃逸漏洞进行挖掘,本发明实施例需要获取所述预设进程对应的源代码和宿主机的预设内核模块的功能代码。很多预设进程的源代码、宿主机的预设内核模块的源代码及其配置文件均为开源代码,因此,获取所述预设进程的源代码和宿主机的预设内核模块的功能代码并不困难。
比如,目前主流云厂商大部分使用的QEMU-KVM虚拟化平台,其中QEMU进程即可成为步骤S101中运行于宿主机的预设进程,KVM模块即可成为S101中宿主机的预设内核模块,而QEMU与KVM对应的源代码均是开源的。
S103.对所述预设进程的源代码进行修改,并基于修改后的预设进程的源代码得到预设进程执行文件,以使得基于所述预设进程执行文件运行的预设进程执行用于挖掘虚拟机逃逸漏洞的模糊测试用例,以及输出第一代码覆盖率信息。
具体地,本发明实施例旨在通过预设进程和预设内核模块反馈的代码覆盖信息生成测试用例,以达到虚拟机逃逸漏洞挖掘的目的。为了获取预设进程的代码覆盖率信息,需要对预设进程运行过程中涉及的各个路径进行插桩,插桩代码可以使得预设进程运行过程中的有关路径输出其对应的信息,以便于得到第一代码覆盖率信息。为了便于说明,本发明实施例中将预设内核模块运行时输出的代码覆盖率信息称为第二代码覆盖率信息,将预设进程运行时输出的代码覆盖率信息称为第一代码覆盖率信息。
在一个可行的实施例中,所述对所述预设进程的源代码进行修改包括对所述源代码中的各个路径进行插桩,并在所述源代码中添加模糊测试执行器。进一步地,所述对所述预设进程的源代码进行修改,基于修改后的预设进程的源代码得到预设进程执行文件,如图2所示,包括:
S1031.将所述预设进程的源代码编译为汇编文件;
S1033.在所述汇编文件中对每条路径***插桩代码;
S1035.为所述汇编文件***模糊测试执行器;
S1037.编译所述汇编文件以得到预设进程执行文件。
S105.对所述预设内核模块的功能代码进行修改,以使得基于修改后的功能代码运行预设内核模块时输出运行过程中的第二代码覆盖率信息。
在一个可行的实施例中,所述对所述预设内核模块的功能代码进行修改,以使得基于修改后的功能代码运行预设内核模块时输出运行过程中的第二代码覆盖率信息包括:通过对预设内核模块的源代码各个路径***插桩代码后生成预设内核模块执行文件,以使得在运行所述预设内核模块执行文件时输出基于插桩代码得到的第二代码覆盖率信息。
在另一个可行的实施例中,对所述预设内核模块的功能代码进行修改包括:选定CONFIG_KCOV选项后运行所述预设内核模块。对于KVM,Linux内核的CONFIG_KCOV选项支持代码覆盖信息,然后可以从/sys/kernel/debug/kcov中读出代码覆盖信息。
模糊测试是指给目标输入特定数据,让目标发生错误的测试方法,这里的错误一般是指目标发生崩溃(Crash)。本发明实施例中基于模糊测试挖掘虚拟机逃逸漏洞,具体地,通过执行模糊测试用例以使得预设进程或预设内核模块发生崩溃,即可捕捉可能的虚拟机逃逸漏洞。
在一个可行的实施例中为了使得预设进程或预设内核模块能够尽快崩溃,可以在KVM环境中使用Address Sanitizer内存错误检测工具。进一步地,所述所述对所述预设内核模块的功能代码进行修改还包括:设置指向所述预设内核模块的编译器支持的AddressSanitizer。Address Sanitizer是编译器支持的选项,可以对编译目标加入错误判断,让目标发生错误时立刻被探查到。
本发明实施例中通过设置Address Sanitizer编译选项,可以使得预设进程或预设内核模块在运行过程中能够在自身发生错误的情况下尽快崩溃,以便于及时发现错误,并将错误与导致错误发生的测试用例对应起来得到待分析数据,根据对所述待分析数据进行分析即可探知虚拟机逃逸漏洞。
S107.运行所述预设进程执行文件以及所述预设内核模块,在预设进程指向的进程空间中对虚拟机执行模糊测试用例,所述模糊测试用例根据所述第一代码覆盖率信息和所述第二代码覆盖率信息动态生成。
在一个优选的实施例中,为了使得预设进程能够高度模块化的执行模糊测试用例,可以对预设进程的源代码进行修改以使得预设进程指向的进程空间中生成模糊测试用例执行器,所述模糊用例测试执行器对所述预设进程空间中运行的虚拟机执行用于挖掘虚拟机逃逸漏洞的模糊测试用例。
进一步地,为了便于所述模糊测试用例执行器能够获取不断更新的模糊测试用例,在一个优选的实施例中,如图3所示,还包括下述步骤:
S201.在宿主机运行空间中生成模糊测试用例管理器。
S203.由所述模糊测试用例管理器获取预设进程输出的第一代码覆盖率信息和预设内核模块输出的第二代码覆盖率信息,根据所述第一代码覆盖率信息和第二代码覆盖率信息动态生成新模糊测试用例。
模糊测试用例管理器是基于模糊测试用例进行测试的逻辑的控制端,它可以基于第一代码覆盖率信息以及第二代码覆盖率信息来生成新的模糊测试用例,新的模糊测试用例是基于可以覆盖更多代码路径的原则来生成的。
在一个优选的实施例中,所述根据所述第一代码覆盖率信息和第二代码覆盖率信息动态生成新模糊测试用例,如图4所示,包括:
S2031.由所述模糊测试用例管理器初始化变异队列,所述变异队列中元素包括模糊测试用例。
S2033.由所述模糊测试用例执行器根据所述变异队列执行模糊测试用例。
S2035.获取所述模糊测试用例产生的第一代码覆盖率信息和第二代码覆盖率,根据所述第一代码覆盖率信息和所述第二代码覆盖率得到所述模糊用例对应的覆盖率信息
S2037.将所述模糊测试用例解析为函数和参数组成的树状结构。
S2039.随机变异所述树状结构的参数,将变异后的树状结构还原为目标测试用例。
S20311.将所述目标测试用例发送至所述模糊测试执行器进行测试,并记录所述目标测试用例产生的第一代码覆盖率信息和第二代码覆盖率信息。
S20313.根据所述第一代码覆盖率信息和所述第二代码覆盖率信息判断所述目标测试用例是否产生覆盖新的代码路径,若是,则将所述目标测试用例确定为新模糊测试用例,***所述变异队列的队尾。
本发明实施例中通过将覆盖新的代码路径的目标测试用例加入变异队列的方式,使得变异队列中的模糊测试用例可以以增量形式覆盖代码路径,因此,基于变异队列进行模糊测试可以探测到更多的代码路径,提高测试的代码覆盖率。
S205.由所述模糊测试用例管理器将所述新模糊测试用例发送至所述模糊测试用例执行器
具体地,模糊测试用例管理器将变异队列中的元素按序发送至模糊测试用例执行器。
具体地,在可以将新模糊测试用例发送至所述变异队列,以使得模糊测试用例执行器根据所述变异队列执行模糊测试用例的时候可以执行所述新模糊测试用例。
S109.获获取模糊测试用例对应的测试结果,根据所述模糊测试用例和其对应的测试结果生成待分析数据。
具体地,只有在导致预设进程或预设内核模块发生错误模糊测试用例中才可能能够分析出虚拟机逃逸漏洞,因此,所述获取模糊测试用例对应的测试结果,根据所述模糊测试用例和其对应的测试结果生成待分析数据具体可以为:
获取导致预设进程或预设内核模块产生错误的测试结果,根据所述测试结果及其对应的测试用例生成待分析数据。
在一个优选的实施例中,通过设置Address Sanitizer编译选项可以使得在预设进程或预设内核模块发生错误的情况下能够尽快崩溃,因此,只需检测预设进程或预设内核模块是否崩溃即可确定预设进程或预设内核模块是否发生错误,则所述获取模糊测试用例对应的测试结果,根据所述模糊测试用例和其对应的测试结果生成待分析数据,如图5所示,包括:
S1091.在宿主机运行空间中生成崩溃***。
S1093.由所述崩溃***监听预设进程或预设内核模块的崩溃信。
S1095.若监听到预设进程或预设内核模块发出崩溃信息,则获取触发所述崩溃信息的模糊测试用例,根据所述模糊测试用例和所述崩溃信息生成待分析数据。
S1011.对所述待分析数据进行处理以挖掘虚拟机逃逸漏洞。
在一个优选的实施例中,所述崩溃***还可以保存待分析数据,以便于测试者可以根据所述待分析数据对其对应的崩溃进行复现,进而确认虚拟机逃逸漏洞的发生点。
请参考图6,其示出了本发明实施例公开的一种虚拟机逃逸漏洞挖掘方法的实施场景示意图。在宿主机内核中运行有预设内核模块(KVM),在宿主机还运行有预设进程(QEMU进程),在预设进程的进程空间中运行有虚拟机和模糊测试执行器。进一步地,在宿主机的用户态空间中还运行有模糊测试管理器和崩溃***,所述模糊测试管理器通过提取预设进程产生的第一代码覆盖率信息和预设内核模块产生的第二代码覆盖率信息动态生成新模糊测试用例,并将所述新模糊测试用例***模糊测试执行器的变异队列的队尾,从而可以不断丰富变异队列以使得模糊测试执行器执行更多用例。所述崩溃***实时监听预设内核模块和预设进程产生的崩溃信息,根据崩溃信息和产生所述崩溃信息的模糊测试用例生成待分析数据,分析所述待分析数据即可挖掘虚拟机逃逸漏洞。
本发明实施例公开的一种虚拟机逃逸漏洞挖掘方法可以实时根据预设内核模块和预设进程反馈的代码覆盖情况来生成新的测试用例,可以探测到更多的代码路径,提高测试程序的代码覆盖率,挖掘到较广和较深层次代码逻辑中的虚拟机逃逸漏洞。
本发明实施例还提供一种虚拟机逃逸漏洞挖掘装置,如图7所示,所述装置包括:
文件获取模块201,用于获取运行于宿主机的预设进程的源代码和宿主机的预设内核模块的功能文件;
预设进程修改模块203,用于对所述预设进程的源代码进行修改,并基于修改后的预设进程的源代码得到预设进程执行文件,以使得基于所述预设进程执行文件运行的预设进程执行用于挖掘虚拟机逃逸漏洞的模糊测试用例,以及输出第一代码覆盖率信息;
预设内核模块修改模块205,用于对所述预设内核模块的功能代码进行修改,以使得基于修改后的功能代码运行预设内核模块时输出运行过程中的第二代码覆盖率信息;
运行模块207,用于运行所述预设进程执行文件以及所述预设内核模块,在预设进程指向的进程空间中对虚拟机执行模糊测试用例,所述模糊测试用例根据所述第一代码覆盖率信息和所述第二代码覆盖率信息动态生成;
待分析数据获取模块209,用于获取模糊测试用例对应的测试结果,根据所述模糊测试用例和其对应的测试结果生成待分析数据;
待分析数据处理模块2011,用于对所述待分析数据进行处理以挖掘虚拟机逃逸漏洞。
具体地,本发明实施例所述一种虚拟机逃逸漏洞挖掘装置与方法实施例均基于相同发明构思。详情请参见方法实施例,在此不再赘述。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令。所述指令可以适于由处理器加载并执行本发明实施例所述的一种虚拟机逃逸漏洞挖掘方法,所述方法至少包括下述步骤:
一种虚拟机逃逸漏洞挖掘方法,所述方法包括:
获取运行于宿主机的预设进程的源代码和宿主机的预设内核模块的功能文件;
对所述预设进程的源代码进行修改,并基于修改后的预设进程的源代码得到预设进程执行文件,以使得基于所述预设进程执行文件运行的预设进程执行用于挖掘虚拟机逃逸漏洞的模糊测试用例,以及输出第一代码覆盖率信息;
对所述预设内核模块的功能代码进行修改,以使得基于修改后的功能代码运行预设内核模块时输出运行过程中的第二代码覆盖率信息;
运行所述预设进程执行文件以及所述预设内核模块,在预设进程指向的进程空间中对虚拟机执行模糊测试用例,所述模糊测试用例根据所述第一代码覆盖率信息和所述第二代码覆盖率信息动态生成;
获取所述模糊测试用例对应的测试结果,根据所述模糊测试用例和其对应的测试结果生成待分析数据;
对所述待分析数据进行处理以挖掘虚拟机逃逸漏洞。
在一个优选的实施例中,所述对所述预设进程的源代码进行修改,基于修改后的预设进程的源代码得到预设进程执行文件包括:
将所述预设进程的源代码编译为汇编文件;
在所述汇编文件中对每条路径***插桩代码;
为所述汇编文件***模糊测试执行器;
编译所述汇编文件以得到预设进程执行文件。
在一个优选的实施例中,所述对所述预设内核模块的功能代码进行修改,以使得基于修改后的功能代码运行预设内核模块时输出运行过程中的第二代码覆盖率信息,包括:
通过对预设内核模块的源代码各个路径***插桩代码后生成预设内核模块执行文件,以使得在运行所述预设内核模块执行文件时输出基于插桩代码得到的第二代码覆盖率信息。
一个优选的实施例中,所述对所述预设内核模块的功能代码进行修改,以使得基于修改后的功能代码运行预设内核模块时输出运行过程中的第二代码覆盖率信息,包括:
设置指向所述预设内核模块的编译器支持的内存错误检测工具;
选定支持代码覆盖信息的选项后运行所述预设内核模块。
一个优选的实施例中,所述运行所述预设进程执行文件以及所述预设内核模块,在预设进程指向的进程空间中对虚拟机执行模糊测试用例,所述模糊测试用例根据所述第一代码覆盖率信息和所述第二代码覆盖率信息动态生成,包括:
对所述预设进程的源代码进行修改以使得所述预设进程指向的进程空间中生成模糊测试用例执行器;
在宿主机运行空间中生成模糊测试用例管理器;
由所述模糊测试用例管理器获取所述预设进程输出的第一代码覆盖率信息和预设内核模块输出的第二代码覆盖率信息,根据所述第一代码覆盖率信息和所述第二代码覆盖率信息动态生成新模糊测试用例;
由所述模糊测试用例管理器将所述新模糊测试用例发送至所述模糊测试用例执行器。
一个优选的实施例中,所述所述根据所述第一代码覆盖率信息和第二代码覆盖率信息动态生成新模糊测试用例,包括:
由所述模糊测试用例管理器初始化变异队列,所述变异队列中元素包括模糊测试用例;
由所述模糊测试用例执行器根据所述变异队列执行模糊测试用例;
获取所述模糊测试用例产生的第一代码覆盖率信息和第二代码覆盖率,根据所述第一代码覆盖率信息和所述第二代码覆盖率得到所述模糊用例对应的覆盖率信息;
将所述模糊测试用例解析为函数和参数组成的树状结构;
随机变异所述树状结构的参数,将变异后的树状结构还原为目标测试用例;
将所述目标测试用例发送至所述模糊测试执行器进行测试,并记录所述目标测试用例产生的第一代码覆盖率信息和第二代码覆盖率信息;
根据所述第一代码覆盖率信息和所述第二代码覆盖率信息判断所述目标测试用例是否产生覆盖新的代码路径,若是,则将所述目标测试用例确定为新模糊测试用例,***所述变异队列的队尾;
相应的,所述模糊测试用例管理器将所述新模糊测试用例发送至模糊测试用例执行器包括:所述模糊测试用例管理器将变异队列中的元素按序发送至所述模糊测试用例执行器。
一个优选的实施例中,所述获取模糊测试用例对应的测试结果,根据所述模糊测试用例和其对应的测试结果生成待分析数据,包括:
在宿主机运行空间中生成崩溃***;
由所述崩溃***监听预设进程或预设内核模块的崩溃信息;
若监听到预设进程或预设内核模块发出崩溃信息,则获取触发所述崩溃信息的模糊测试用例,根据所述模糊测试用例和所述崩溃信息生成待分析数据数据。
进一步地,图8示出了一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图,所述设备可以参与构成或包含本发明实施例所提供的装置或***。如图8所示,设备10可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备10还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中所述的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种虚拟机逃逸漏洞挖掘方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与设备10(或移动设备)的用户界面进行交互。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种虚拟机逃逸漏洞挖掘方法,其特征在于,所述方法包括:
获取运行于宿主机的预设进程的源代码和宿主机的预设内核模块的功能文件;
对所述预设进程的源代码进行修改,并基于修改后的预设进程的源代码得到预设进程执行文件,以使得基于所述预设进程执行文件运行的预设进程执行用于挖掘虚拟机逃逸漏洞的模糊测试用例,以及输出第一代码覆盖率信息;
对所述预设内核模块的功能代码进行修改,以使得基于修改后的功能代码运行预设内核模块时输出运行过程中的第二代码覆盖率信息;
运行所述预设进程执行文件以及所述预设内核模块,在预设进程指向的进程空间中对虚拟机执行模糊测试用例,所述模糊测试用例根据所述第一代码覆盖率信息和所述第二代码覆盖率信息动态生成;
获取所述模糊测试用例对应的测试结果,根据所述模糊测试用例和其对应的测试结果生成待分析数据;
对所述待分析数据进行处理以挖掘虚拟机逃逸漏洞。
2.根据权利要求1所述的方法,其特征在于,所述对所述预设进程的源代码进行修改,基于修改后的预设进程的源代码得到预设进程执行文件包括:
将所述预设进程的源代码编译为汇编文件;
在所述汇编文件中对每条路径***插桩代码;
为所述汇编文件***模糊测试执行器;
编译所述汇编文件以得到预设进程执行文件。
3.根据权利要求1所述的方法,其特征在于,所述对所述预设内核模块的功能代码进行修改,以使得基于修改后的功能代码运行预设内核模块时输出运行过程中的第二代码覆盖率信息,包括:
通过对所述预设内核模块的源代码各个路径***插桩代码后生成预设内核模块执行文件,以使得在运行所述预设内核模块执行文件时输出基于所述插桩代码得到的第二代码覆盖率信息。
4.根据权利要求1所述的方法,其特征在于,所述对所述预设内核模块的功能代码进行修改,以使得基于修改后的功能代码运行预设内核模块时输出运行过程中的第二代码覆盖率信息,包括:
设置指向所述预设内核模块的编译器支持的内存错误检测工具;
选定支持代码覆盖信息的选项后运行所述预设内核模块。
5.根据权利要求1所述的方法,其特征在于,所述运行所述预设进程执行文件以及所述预设内核模块,在预设进程指向的进程空间中对虚拟机执行模糊测试用例,所述模糊测试用例根据所述第一代码覆盖率信息和所述第二代码覆盖率信息动态生成,包括:
对所述预设进程的源代码进行修改以使得所述预设进程指向的进程空间中生成模糊测试用例执行器;
在宿主机运行空间中生成模糊测试用例管理器;
由所述模糊测试用例管理器获取所述预设进程输出的第一代码覆盖率信息和预设内核模块输出的第二代码覆盖率信息,根据所述第一代码覆盖率信息和所述第二代码覆盖率信息动态生成新模糊测试用例;
由所述模糊测试用例管理器将所述新模糊测试用例发送至所述模糊测试用例执行器。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一代码覆盖率信息和第二代码覆盖率信息动态生成新模糊测试用例,包括:
由所述模糊测试用例管理器初始化变异队列,所述变异队列中元素包括模糊测试用例;
由所述模糊测试用例执行器根据所述变异队列执行模糊测试用例;
获取所述模糊测试用例产生的第一代码覆盖率信息和第二代码覆盖率,根据所述第一代码覆盖率信息和所述第二代码覆盖率得到所述模糊用例对应的覆盖率信息;
将所述模糊测试用例解析为函数和参数组成的树状结构;
随机变异所述树状结构的参数,将变异后的树状结构还原为目标测试用例;
将所述目标测试用例发送至所述模糊测试执行器进行测试,并记录所述目标测试用例产生的第一代码覆盖率信息和第二代码覆盖率信息;
根据所述第一代码覆盖率信息和所述第二代码覆盖率信息判断所述目标测试用例是否产生覆盖新的代码路径,若是,则将所述目标测试用例确定为新模糊测试用例,***所述变异队列的队尾;
相应的,所述模糊测试用例管理器将所述新模糊测试用例发送至模糊测试用例执行器包括:所述模糊测试用例管理器将变异队列中的元素按序发送至所述模糊测试用例执行器。
7.根据权利要求1所述的方法,其特征在于,所述获取模糊测试用例对应的测试结果,根据所述模糊测试用例和其对应的测试结果生成待分析数据,包括:
在宿主机运行空间中生成崩溃***;
由所述崩溃***监听预设进程或预设内核模块的崩溃信息;
若监听到预设进程或预设内核模块发出崩溃信息,则获取触发所述崩溃信息的模糊测试用例,根据所述模糊测试用例和所述崩溃信息生成待分析数据。
8.一种虚拟机逃逸漏洞挖掘装置,其特征在于,所述装置包括:
文件获取模块,用于获取运行于宿主机的预设进程的源代码和宿主机的预设内核模块的功能文件;
预设进程修改模块,用于对所述预设进程的源代码进行修改,并基于修改后的预设进程的源代码得到预设进程执行文件,以使得基于所述预设进程执行文件运行的预设进程执行用于挖掘虚拟机逃逸漏洞的模糊测试用例,以及输出第一代码覆盖率信息;
预设内核模块修改模块,用于对所述预设内核模块的功能代码进行修改,以使得基于修改后的功能代码运行预设内核模块时输出运行过程中的第二代码覆盖率信息;
运行模块,用于运行所述预设进程执行文件以及所述预设内核模块,在预设进程指向的进程空间中对虚拟机执行模糊测试用例,所述模糊测试用例根据所述第一代码覆盖率信息和所述第二代码覆盖率信息动态生成;
待分析数据获取模块,用于获取所述模糊测试用例对应的测试结果,根据所述模糊测试用例和其对应的测试结果生成待分析数据;
待分析数据处理模块,用于对所述待分析数据进行处理以挖掘虚拟机逃逸漏洞。
9.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如权利要求1-7任一项所述的一种虚拟机逃逸漏洞挖掘方法。
10.一种虚拟机逃逸漏洞挖掘设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行如权利要求1-7任一项所述的一种虚拟机逃逸漏洞挖掘方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910944781.2A CN110764870B (zh) | 2019-09-30 | 2019-09-30 | 一种虚拟机逃逸漏洞挖掘方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910944781.2A CN110764870B (zh) | 2019-09-30 | 2019-09-30 | 一种虚拟机逃逸漏洞挖掘方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110764870A true CN110764870A (zh) | 2020-02-07 |
CN110764870B CN110764870B (zh) | 2024-01-09 |
Family
ID=69329253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910944781.2A Active CN110764870B (zh) | 2019-09-30 | 2019-09-30 | 一种虚拟机逃逸漏洞挖掘方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110764870B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111709031A (zh) * | 2020-05-28 | 2020-09-25 | 杭州电子科技大学 | 一种覆盖率引导的VxWorks内核模糊测试方法 |
CN112235300A (zh) * | 2020-10-14 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 云虚拟网络漏洞检测方法、***、装置及电子设备 |
CN112532658A (zh) * | 2021-02-08 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 云网络逃逸事件扫描方法、装置及计算机可读存储介质 |
CN112905447A (zh) * | 2021-01-22 | 2021-06-04 | 支付宝(杭州)信息技术有限公司 | 一种区块链虚拟机的测试方法和*** |
CN115225551A (zh) * | 2022-07-14 | 2022-10-21 | 北京邮电大学 | 一种模糊测试方法、装置、设备及存储介质 |
CN117648696A (zh) * | 2023-11-27 | 2024-03-05 | 中国电子科技集团公司第十五研究所 | 一种软件安全性测试方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107169362A (zh) * | 2017-03-29 | 2017-09-15 | 西安电子科技大学 | 基于自动化识别驱动参数辅助内核漏洞挖掘的方法 |
CN108416219A (zh) * | 2018-03-18 | 2018-08-17 | 西安电子科技大学 | 一种Android二进制文件漏洞检测方法及*** |
CN109032927A (zh) * | 2018-06-26 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种漏洞挖掘方法及装置 |
CN109543417A (zh) * | 2018-11-26 | 2019-03-29 | 杭州安恒信息技术股份有限公司 | 一种基于Qemu平台的漏洞挖掘方法和装置 |
CN109948346A (zh) * | 2019-04-09 | 2019-06-28 | 苏州浪潮智能科技有限公司 | 一种漏洞PoC实现方法和装置 |
-
2019
- 2019-09-30 CN CN201910944781.2A patent/CN110764870B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107169362A (zh) * | 2017-03-29 | 2017-09-15 | 西安电子科技大学 | 基于自动化识别驱动参数辅助内核漏洞挖掘的方法 |
CN108416219A (zh) * | 2018-03-18 | 2018-08-17 | 西安电子科技大学 | 一种Android二进制文件漏洞检测方法及*** |
CN109032927A (zh) * | 2018-06-26 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种漏洞挖掘方法及装置 |
CN109543417A (zh) * | 2018-11-26 | 2019-03-29 | 杭州安恒信息技术股份有限公司 | 一种基于Qemu平台的漏洞挖掘方法和装置 |
CN109948346A (zh) * | 2019-04-09 | 2019-06-28 | 苏州浪潮智能科技有限公司 | 一种漏洞PoC实现方法和装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111709031A (zh) * | 2020-05-28 | 2020-09-25 | 杭州电子科技大学 | 一种覆盖率引导的VxWorks内核模糊测试方法 |
CN111709031B (zh) * | 2020-05-28 | 2022-03-01 | 杭州电子科技大学 | 一种覆盖率引导的VxWorks内核模糊测试方法 |
CN112235300A (zh) * | 2020-10-14 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 云虚拟网络漏洞检测方法、***、装置及电子设备 |
CN112235300B (zh) * | 2020-10-14 | 2023-10-24 | 腾讯科技(深圳)有限公司 | 云虚拟网络漏洞检测方法、***、装置及电子设备 |
CN112905447A (zh) * | 2021-01-22 | 2021-06-04 | 支付宝(杭州)信息技术有限公司 | 一种区块链虚拟机的测试方法和*** |
CN112532658A (zh) * | 2021-02-08 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 云网络逃逸事件扫描方法、装置及计算机可读存储介质 |
CN115225551A (zh) * | 2022-07-14 | 2022-10-21 | 北京邮电大学 | 一种模糊测试方法、装置、设备及存储介质 |
CN115225551B (zh) * | 2022-07-14 | 2024-03-29 | 北京邮电大学 | 一种模糊测试方法、装置、设备及存储介质 |
CN117648696A (zh) * | 2023-11-27 | 2024-03-05 | 中国电子科技集团公司第十五研究所 | 一种软件安全性测试方法及装置 |
CN117648696B (zh) * | 2023-11-27 | 2024-06-04 | 中国电子科技集团公司第十五研究所 | 一种软件安全性测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110764870B (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110764870B (zh) | 一种虚拟机逃逸漏洞挖掘方法、装置、设备及介质 | |
Li et al. | Droidbot: a lightweight ui-guided test input generator for android | |
Wang et al. | An empirical study of android test generation tools in industrial cases | |
Van Der Merwe et al. | Verifying android applications using java pathfinder | |
Liu et al. | Greendroid: Automated diagnosis of energy inefficiency for smartphone applications | |
Amalfitano et al. | A general framework for comparing automatic testing techniques of Android mobile apps | |
Liang et al. | Caiipa: Automated large-scale mobile app testing through contextual fuzzing | |
Vidas et al. | A5: Automated analysis of adversarial android applications | |
US8826240B1 (en) | Application validation through object level hierarchy analysis | |
Lai et al. | Goal-driven exploration for android applications | |
US10042745B2 (en) | Enhancing the debugger stack with recently reported errors under debug | |
Salihu et al. | AMOGA: a static-dynamic model generation strategy for mobile apps testing | |
KR20080050118A (ko) | 임베디드용 소프트웨어의 오류 검출 방법 | |
CN103838663A (zh) | 一种应用程序的测试方法及装置 | |
Rubinov et al. | What are we missing when testing our android apps? | |
CN113157508B (zh) | 嵌入式***的测试方法、***、装置、设备及存储介质 | |
Usman et al. | TEGDroid: Test case generation approach for android apps considering context and GUI events | |
Kim et al. | FIRM-COV: high-coverage greybox fuzzing for IoT firmware via optimized process emulation | |
CN114969760A (zh) | 漏洞检测方法及装置、计算机可读介质和电子设备 | |
Ma et al. | An automated testing platform for mobile applications | |
US9075921B2 (en) | Error simulation | |
Griebe et al. | Towards automated UI-tests for sensor-based mobile applications | |
Jiang et al. | Fuzzing error handling code in device drivers based on software fault injection | |
CN116522345A (zh) | 漏洞挖掘方法、装置、设备及可读存储介质 | |
Yi et al. | Vulcan: Lessons on reliability of wearables through state-aware fuzzing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40021401 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |