CN115686739A - 攻击检测方法及装置 - Google Patents

攻击检测方法及装置 Download PDF

Info

Publication number
CN115686739A
CN115686739A CN202110874435.9A CN202110874435A CN115686739A CN 115686739 A CN115686739 A CN 115686739A CN 202110874435 A CN202110874435 A CN 202110874435A CN 115686739 A CN115686739 A CN 115686739A
Authority
CN
China
Prior art keywords
indirect jump
function
instruction
indirect
detection function
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.)
Pending
Application number
CN202110874435.9A
Other languages
English (en)
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies 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 Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to CN202110874435.9A priority Critical patent/CN115686739A/zh
Publication of CN115686739A publication Critical patent/CN115686739A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请涉及计算机技术领域,具体涉及一种攻击检测方法及装置。该方法应用于宿主机,宿主机运行有虚拟机监视器和第一虚拟机,虚拟器监视器包括第一进程,第一进程用于模拟第一虚拟机的虚拟设备;该方法包括:在第一进程的指令集中,确定用于模拟虚拟设备的I/O接口的第一指令子集,第一指令子集包括多个间接跳转指令;为多个间接跳转指令中的每一个间接跳转指令关联检测函数;其中,每一个间接跳转指令所关联的检测函数,用于检测间接跳转指令在第一进程运行期间的跳转目标地址是否合法。该方法可在进行攻击检测的同时,减少攻击检测函数的执行对代码执行整体性能的影响。

Description

攻击检测方法及装置
技术领域
本申请涉及计算机技术领域,且特别涉及一种攻击检测方法及装置。
背景技术
利用虚拟化技术,可以在一个物理机上模拟出多个虚拟机。虚拟机(virtualmachine,VM)是指通过软件模拟的具有完整硬件系统功能的、运行在一个隔离环境中的计算机系统。为了给虚拟机的操作系统(operating system,OS)提供虚拟化的硬件环境,虚拟机管理软件(例如虚拟机监视器(virtual machine monitor,VMM))需要为虚拟机提供必要的虚拟设备,例如显卡、磁盘、网卡、通用串行总线(universal serial bus,USB)设备等。这些虚拟设备由软件模拟实现的,且实现逻辑较为复杂,因此,容易引入安全漏洞。通过安全漏洞,虚拟机可能会从其隔离环境中逃逸。
一旦虚拟机从其隔离环境中逃逸,其便拥有了在VMM内执行代码的权限,并有可能控制整个VMM,对宿主机(host)以及其上面运行的其他虚拟机造成极大安全风险。
发明内容
本申请实施例提供了一种攻击检测方法及装置,可在进行攻击检测的同时,减少攻击检测函数的执行对代码执行整体性能的影响。
第一方面,本申请实施例提供了一种攻击检测方法,应用于宿主机,宿主机运行有虚拟机监视器和第一虚拟机,虚拟器监视器包括第一进程,第一进程用于模拟第一虚拟机的虚拟设备;该方法包括:在第一进程的指令集中,确定用于模拟虚拟设备的I/O接口的第一指令子集,第一指令子集包括多个间接跳转指令;为多个间接跳转指令中的每一个间接跳转指令关联检测函数;其中,每一个间接跳转指令所关联的检测函数,用于检测间接跳转指令在第一进程运行期间的跳转目标地址是否合法。
在一种可能的实现方式中,该方法还包括:在启动第一进程之前,为多个间接跳转指令中每个间接跳转指令添加标识信息;为多个间接跳转指令中的每一个间接跳转指令关联检测函数,包括:在启动第一进程时,为具有标识信息的间接跳转指令关联检测函数。
也就是说,在该实现方式中,在进程启动之前,通过标识信息标记需要关联检测函数的间接跳转指令,而非直接将检测函数关联到间接跳转指令上。从而避免了攻击者攻击磁盘中的信息,得到检测函数的信息,进而在进程运行时,根据检测函数的信息,确定并更改检测函数。
在一种可能的实现方式中,为多个间接跳转指令中的每一个间接跳转指令关联检测函数,包括:当第一进程符合预设条件时,为多个间接跳转指令中的每一个间接跳转指令关联检测函数。
也就是说,在该实现方式中,在进程符合预设条件时,为该进程的间接跳转指令关联检测函数,可以选择性地为进程的间接跳转指令关联检测函数,改善了用户体验。
在一种可能的实现方式中,该方法还包括:在启动第一进程之前,根据多个间接跳转指令的多个预设目标函数,确定第一控制流图,第一控制流图用于表示多个间接跳转指令和多个预设目标函数的一一对应关系;在启动第一进程时,确定多个预设目标函数在第一进程运行期间的内存地址;根据多个预设目标函数的内存地址和第一控制流图,确定第二控制流图,第二控制流图用于表示多个间接跳转指令和多个预设目标函数的内存地址的一一对应关系。
也就是说,在该实现方式中,可以生成间接跳转指令和预设目标函数在第一进程运行期间的地址对应关系,从而可以在第一进程运行期间,检测间接跳转指令是否发生异常跳转,从而实现攻击检测。
在一种可能的实现方式中,多个间接跳转指令包括第一间接跳转指令,第一间接跳转指令与第一检测函数关联,且对应第一预设目标函数;其中,第一检测函数用于确定第一间接跳转指令在第一进程运行期间的第一跳转目标地址,并根据第二控制流图,判断第一跳转目标地址与第一预设目标函数的内存地址是否相同;其中,当第一跳转目标地址与第一预设目标函数的内存地址不同时,确定第一跳转目标地址不合法。
也就是说,在该实现方式中,可以检测间接跳转函数在第一进程运行期间的跳转目标地址是否合法,从而实现攻击检测。
在一种可能的实现方式中,多个间接跳转指令包括第一间接跳转指令,该方法还包括:在第一进程运行期间,获取第一更新信息,第一更新信息包括第一函数,第一函数用于更新第一间接跳转指令的预设目标函数;将第一函数作为第一间接跳转指令新的预设目标函数,并根据第一函数在第一进程运行期间的内存地址更新第二控制流图。
也就是说,在该实现方式中,在第一进程运行期间,可以根据间接跳转指令的预设目标函数,从而可以同时实现攻击检测和进程更新。
在一种可能的实现方式中,第一更新信息为热补丁或动态库。
也就是说,在该实现方式中,在进行攻击检测的同时,可以进行热补丁升级或加载动态库。
在一种可能的实现方式中,多个间接跳转指令包括第一间接跳转指令,第一间接跳转指令与第一检测函数关联,第一检测函数包括预设的攻击应对策略;该方法还包括:当第一检测函数检测到第一间接跳转指令在第一进程运行期间的跳转目标地址不合法时,执行攻击应对策略。
也就是说,在该实现方式中,可以预先设置攻击应对策略,在检测到间接跳转指令的跳转目标地址不合法时,执行预设的攻击应该策略,从而可以在检测到攻击时,针对该攻击进行灵活处理。
在一种可能的实现方式中,攻击应对策略包括以下至少一种:
忽略第一检测函数的检测结果、输出异常日志、终止第一进程的运行、触发告警。
也就是说,在该实现方式中,可以设置多样化的攻击对应策略,从而可以在检测到攻击时,针对该攻击进行灵活处理。
第二方面,本申请实施例提供了一种攻击检测装置,配置于宿主机,宿主机运行有虚拟机监视器和第一虚拟机,虚拟器监视器包括第一进程,第一进程用于模拟第一虚拟机的虚拟设备;该装置包括:确定单元,用于在第一进程的指令集中,确定用于模拟虚拟设备的I/O接口的第一指令子集,第一指令子集包括多个间接跳转指令;关联单元,用于为多个间接跳转指令中的每一个间接跳转指令关联检测函数;其中,每一个间接跳转指令所关联的检测函数,用于检测间接跳转指令在第一进程运行期间的跳转目标地址是否合法。
在一种可能的实现方式中,该装置还包括添加单元,用于在启动第一进程之前,为多个间接跳转指令中每个间接跳转指令添加标识信息;关联单元还用于在启动第一进程时,为具有标识信息的间接跳转指令关联检测函数。
在一种可能的实现方式中,关联单元还用于当第一进程符合预设条件时,为多个间接跳转指令中的每一个间接跳转指令关联检测函数。
在一种可能的实现方式中,确定单元还用于:在启动第一进程之前,根据多个间接跳转指令的多个预设目标函数,确定第一控制流图,第一控制流图用于表示多个间接跳转指令和多个预设目标函数的一一对应关系;在启动第一进程时,确定多个预设目标函数在第一进程运行期间的内存地址;根据多个预设目标函数的内存地址和第一控制流图,确定第二控制流图,第二控制流图用于表示多个间接跳转指令和多个预设目标函数的内存地址的一一对应关系。
在一种可能的实现方式中,多个间接跳转指令包括第一间接跳转指令,第一间接跳转指令与第一检测函数关联,且对应第一预设目标函数;其中,第一检测函数用于确定第一间接跳转指令在第一进程运行期间的第一跳转目标地址,并根据第二控制流图,判断第一跳转目标地址与第一预设目标函数的内存地址是否相同;其中,当第一跳转目标地址与第一预设目标函数的内存地址不同时,确定第一跳转目标地址不合法。
在一种可能的实现方式中,多个间接跳转指令包括第一间接跳转指令;该装置还包括:获取单元,用于在第一进程运行期间,获取第一更新信息,第一更新信息包括第一函数,第一函数用于更新第一间接跳转指令的预设目标函数;更新单元,用于将第一函数作为第一间接跳转指令新的预设目标函数,并根据第一函数在第一进程运行期间的内存地址更新第二控制流图。
在一种可能的实现方式中,第一更新信息为热补丁或动态库。
在一种可能的实现方式中,多个间接跳转指令包括第一间接跳转指令,第一间接跳转指令与第一检测函数关联,第一检测函数包括预设的攻击应对策略;该装置还包括:执行单元,用于当第一检测函数检测到第一间接跳转指令在第一进程运行期间的跳转目标地址不合法时,执行攻击应对策略。
在一种可能的实现方式中,攻击应对策略包括以下至少一种:
忽略第一检测函数的检测结果、输出异常日志、终止第一进程的运行、触发告警。
可以理解,第二方面提供的攻击检测装置用于执行第一方面提供的攻击检测方法,其有益效果可以参考上文对攻击检测方法有益效果的描述,在此不再赘述。
第三方面,本申请实施例还提供了一种攻击检测装置,包括处理器、存储器;存储器用于存储计算机指令;当攻击检测装置运行时,处理器执行该计算机指令,使得攻击检测装置第一方面所提供的方法。
第四方面,本申请实施例还提供了一种计算机存储介质,计算机存储介质包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行第一方面所提供的方法。
第五方面,本申请实施例还提供了一种计算机程序产品,计算机程序产品包含的程序代码被用于电子设备中的处理器执行时,使得电子设备执行第一方面所提供的方法。
本申请实施例提供的攻击检测方法及装置,可以通过监控高风险代码的运行范围,在使用攻击检测函数进行攻击检测的同时,减少攻击检测函数的执行对代码执行整体性能的影响。
附图说明
图1示出了虚拟机和虚拟机监视器间的关系示意图;
图2示出了本申请实施例提供的一种系统架构示意图;
图3示出了本申请实施例提供的一种静态控制流流图生成过程示意图;
图4示出了本申请实施例提供的一种代码结构示意图;
图5示出了本申请实施例提供的一种动态控制流流图生成过程示意图;
图6示出了本申请实施例提供的一种函数调用示意图。
图7示出了本申请实施例提供的一种攻击检测方法流程图;
图8示出了本申请实施例提供的一种攻击检测装置的结构示意图;
图9示出了本申请实施例提供的一种攻击检测装置的示意性框图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。
在本说明书的描述中″一个实施例″或″一些实施例″等意味着在本说明书的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句″在一个实施例中″、″在一些实施例中″、″在其他一些实施例中″、″在另外一些实施例中″等不是必然都参考相同的实施例,而是意味着″一个或多个但不是所有的实施例″,除非是以其他方式另外特别强调。
其中,在本说明书的描述中,除非另有说明,″/″表示或的意思,例如,A/B可以表示A或B;本文中的″和/或″仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本说明书实施例的描述中,″多个″是指两个或多于两个。
在本说明书的描述中,术语″第一″、″第二″仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐合指明所指示的技术特征的数量。由此,限定有″第一″、″第二″的特征可以明示或者隐合地包括一个或者更多个该特征。术语″包括″、″包含″、″具有″及它们的变形都意味着″包括但不限于″,除非是以其他方式另外特别强调。
参阅图1,VMM通过运行设备模拟代码,为虚拟机模拟出虚拟显卡、虚拟USB设备、虚拟磁盘、虚拟网卡等虚拟硬件设备,以为虚拟机操作系统的运行提供硬件环境。其中,虚拟硬件设备也可以为称为虚拟设备,代码也可以称为指令。由于VMM的设备模拟代码中可能存在缓冲区溢出等漏洞,使得虚拟机内的恶意代码可通过虚拟硬件设备的I/O(input/output)接口注入恶意数据和代码触发漏洞,从而控制虚拟硬件设备的执行逻辑,引发虚拟机发生逃逸行为。在一个例子中,I/O接口可以为端口映射输入输出(Port-mapped I/O,PMIO)。相应地,PMIO的模拟代码可以包括(in/out(val,port))。在另一个例子中,I/O接口可以为内存映射输入输出(Memory-mapped I/O,MMIO)。相应地,MMIO的模拟代码可以包括(readl/writel(addr,val))。
虚拟机逃逸对宿主机造成极大安全风险,因此,制止虚拟机逃逸对提升宿主机的安全性能具有重要意义。
在一种方案中,根据虚拟机逃逸后引发的某些特征(例如打开了非法文件或进程),识别发生了虚拟机逃逸。然后,利用强制访问控制技术、进程权限沙箱等技术,阻断虚拟机逃逸。该方案属于″事后″发现虚拟机逃逸的方案,当确定发生虚拟机逃逸时,逃逸的虚拟机可能已经引发了不良结果。
在另一种方案中,借助编译器的支持,使用控制流完整性(contro1-flowintegrity,CFI)技术,限制程序运行中的控制转移始终处于规划的控制流内,以确定程序按照预先逻辑执行。该方案在程序的每个间接跳转指令处插入目的地址检测函数,以程序运行时,检测间接跳转指令的所要跳转的目标函数是否异常(即是否处于控制流内)。该方案导致程序执行性能下降,并且也不支持热补丁技术,灵活性较差。
本申请实施例提供了一种攻击检测方法,可以从用于模拟虚拟设备的指令集A中,确定用于模拟I/O接口的指令子集A1。然后,为该指令子集A1中的每个间接跳转指令关联检测函数。该检测函数可以在该指令集A的运行期间,检测该检测函数所关联的间接跳转指令的跳转目标地址是否合法,以判断是否遭遇到了攻击。
一般而言,虚拟设备的I/O接口为恶意攻击的最主要攻击入口。攻击者通过修改I/O接口的模拟指令中的间接跳转指令的目标地址,引发虚拟机逃逸。因此,在虚拟设备运行期间,检测I/O接口的模拟指令中的间接跳转指令的目标地址是否合法,可以准确且全面的检测出虚拟设备或者说虚拟设备所对应的虚拟机是否遭受到了攻击。并且I/O接口的模拟指令的代码逻辑在整个用于模拟虚拟设备的代码中占比有限且明确,为其关联检测函数,对程序执行性能影响较小。
另外,间接跳转指令为一类跳转目标为寄存器地址的跳转指令,其是先读取寄存器或存储器的地址,然后再读取位于该地址上的函数。与之相对的是直接跳转指令。对应直接跳转指令而言,在编码时,直接将跳转目标作为跳转指令的一部分。因此,相对于直接跳转指令,间接跳转指令的跳转目标有被修改的可能,例如,攻击者可以将非法地址修改为间接跳转指令的跳转目标,从而跳转到非法地址上,引发异常。
接下来,结合附图,对本申请实施例提供的方案进行示例介绍。
图2示出了本申请实施例提供的一种系统架构示意图。该系统架构可以运行在宿主机100上。示例性的,宿主机100可为服务器。在一个例子中,宿主机100具体可以为云数据中心中的服务器。
如图2所示,该系统架构可以包括虚拟机111、虚拟机112等多个虚拟机,以及包括虚拟机监视器120等。其中,虚拟机监视器可以包括虚拟机支持模块121和虚拟机支持模块122等多个虚拟机支持模块。该多个虚拟机支持模块和该多个虚拟机一一对应。虚拟机支持模块也可以称为虚拟机支持进程,其为虚拟机监视器中的进程(process)。其中,虚拟机支持模块121为虚拟机111的运行提供支持,例如用于模拟虚拟机111所需的虚拟设备,以为虚拟机111的操作系统提供虚拟硬件环境和资源。同理,虚拟机支持模块122为虚拟机112的运行提供支持,例如用于模拟虚拟机112所需的虚拟设备,以为虚拟机111的操作系统提供虚拟硬件环境和资源。
该系统架构还包括编译器130,用于解析虚指令集(例如指令子集A1)的函数调用关系,并根据函数调用关系,确定间接跳转指令以及间接跳转指令的跳转目标函数,并为间接跳转指令关联标识信息,并据此得到静态控制流流图。其中,此处的跳转目标函数是对源代码进行解析得到的,即跳转目标函数是源代码的开发者为间接跳转指令设置的跳转目标函数。因此,可以将此处的跳转目标函数称为预设跳转目标函数。
示例性的,可以设定指令子集A1用于模拟虚拟机111的虚拟设备的I/O接口,通过解析指令子集A1的函数调用关系,获取间接跳转指令以及间接跳转指令的预设跳转目标函数。在获取间接跳转指令后,可以为间接跳转指令关联标识信息。编译器130可以将解析的函数调用关系(包括间接跳转指令和其预设跳转目标函数的对应关系)以及为间接跳转指令关联标识信息,按照二进制形式的进行存储,得到对应于虚拟机111的静态控制流流图。
参考虚拟机111的静态控制流流图的获取方法,可以获取其他虚拟机(例如虚拟机112)的静态控制流流图。
示例性的,静态控制流流图可以存放在虚拟机监视器的磁盘上的二进制存储区域。
在一些实施例中,可以通过插桩的方式为间接跳转指令关联标识信息。其中,插桩是指目标程序代码中某些位置插入一些信息。插入的信息为标识信息。示例性的,该标识信息也可以称为空桩函数,其并非具有检测跳转目标地址是否合法功能的检测函数,而仅用于标识间接跳转指令。示例性的,标识信息可以为预设的代码片段。
继续参阅图2,虚拟机监视器120还可以包括调用位图模块1211、调用位图模块1221等多个调用位图模块。其中,多个调用位图模块和该系统架构中的多个虚拟机一一对应,例如调用位图模块1211对应虚拟机111,调用位图模块1221对应虚拟机112。示例性的,如上所述,虚拟机支持模块和虚拟机具有一一对应关系,由此,调用位图模块可以设置于对应的虚拟机支持模块中。
接下来,以调用位图模块1211为例,示例介绍调用位图模块的功能。
可以在虚拟机支持模块121启动,开始模拟虚拟机111的虚拟设备时,调用位图模块1211可以从磁盘中加载虚拟机111的静态控制流流图,并根据该静态控制流流图,构建虚拟机111的动态控制流流图。具体而言,可将静态控制流流图的所描述的函数调用关系以及标识信息,使用内存地址来表示,以生成动态控制流流图。以在静态控制流流图中,函数调用关系以及标识信息采用位图基址表示为例,可以将静态控制流流图所描述的位图基址转换为虚拟机监视器运行指令集A期间(即模拟虚拟机111的虚拟设备的进程运行期间)的内存地址,从而得到动态控制流流图。更具体地,可以将间接跳转指令的跳转目标函数的位图基址转换为该跳转目标函数在内存中的地址,将标识信息的位图基址转换为内存中的地址,将间接跳转指令的位图基址转换为间接跳转指令在内存中的地址。换言之,动态控制流流图记录了间接跳转指令的目标函数的内存地址。
调用位图模块1211还可以使用检测函数替换标识信息。具体而言,可以将标识信息从内存中删除,并在原来存放标识信息的地址上放入检测函数。如此,即使攻击者获得了静态控制流流图,也无法获取检测函数(静态控制流流图中描述的是标识信息),从而无法在内存中追踪检测函数。其中,检测函数是指具有检测间接跳转指令在虚拟机运行期间将要跳转到地址是否合法。为方便描述,可以将检测间接跳转指令在虚拟机运行期间将要跳转到地址称为实测跳转目标地址。
在一些实施例中,调用位图模块1211还可以提供内存地址更新接口。虚拟机监视器120上的用户态管理程序可以调用内存地址更新接口,更新动态控制流流图上的函数内存地址。也就说,通过内存地址更新接口,可以更改间接跳转指令所对应的内存地址,从而更改间接跳转指令的预设跳转目标函数。
如此,在虚拟机运行期间,可以实施热补丁。具体而言,可以将补丁所包含的函数加载到内存中,并获取该函数的内存地址。为方便描述,可以将该函数称为补丁函数。在获取补丁函数的内存地址后,将相应的间接跳转指令的预设跳转目标函数的内存地址,替换为补丁函数的内存地址,从而完成热补丁。
通过内存地址更新接口,还可以在虚拟机运行期间动态地加载动态库。具体可以将动态库所包含的函数加载到内存中,并获取该函数的内存地址。为方便描述,可以将该函数称为更新函数。在获取更新函数的内存地址后,将相应的间接跳转指令的预设跳转目标函数的内存地址,替换为更新函数的内存地址,从而完成动态库加载。
在一些实施例中,可以为虚拟机配置逃逸阻断指示信息,该逃逸阻断指示信息用于指示该虚拟机需要进行逃逸阻断。当虚拟机111被配置有逃逸阻断指示信息时,调用位图模块1211根据虚拟机111的静态控制流流图,生成动态控制流流图。当虚拟机111没有被配置逃逸阻断指示信息时,调用位图模块1211则不执行动态控制流流图的生成操作。示例性的,逃逸阻断指示信息可以配置在虚拟机111的虚拟设备的模拟代码中。如此,在虚拟机支持模块121启动,开始模拟虚拟机111的虚拟设备时,可以判断虚拟机111是否被配置有逃逸阻断指示信息。
在一些实施例中,虚拟机监视器120还可以包括内核模块(未示出),可以监控虚拟机进行的运行,并在虚拟机支持模块启动,开始模拟虚拟机的虚拟设备时,使用调用位图模块,根据静态控制流流图,和,静态控制流流图中函数调用关系以及标识信息在虚拟机监视器运行指令集A期间(即模拟虚拟机111的虚拟设备的进程运行期间)的内存地址,生成动态控制流流图。
继续参阅图2,虚拟机监视器120还可以包括监控告警模块123,可以用于在检测到间接跳转指令的实测跳转目标地址与预设跳转目标函数的内存地址不一致时,提供告警信息。例如,监控告警模块123可以向宿主机100的管理节点发送告警信息。再例如,监控告警模块123可以提供人机接口,并通过人机接口提供告警信息,以提示运维人员查看。
上述示例介绍了本申请实施例提供的方案可采用的一种系统架构。接下来,结合上文所述的系统架构,以虚拟机111为例,对本申请实施例提供的方案进行举例说明。
可以参阅图3,首先,可以获取用于模拟虚拟机111的虚拟设备的指令集A。其中,指令集A也可以称为虚拟设备的模拟源码。可以从指令集A中,确定用于模拟该虚拟设备I/O接口的指令子集A1。示例性的,可以通过代码静态分析技术,确定从指令集A中,确定用于模拟该虚拟设备I/O接口的指令或者说代码,进而得到指令子集A1。在一些实施例中,指令子集A1中的指令可以使用位图基址来表示。也就是说,在指令子集A1中,可以使用各指令的位图基址,来描述相应的指令。
在一个例子中,指令子集A1可以包括如下指令。
″_attribute_(sanitize(“cfi_icall”))int dev_pci_ops(..)″
继续参阅图3,可以使用编译器130解析指令子集A1中的函数调用关系以及为间接跳转指令关联标识信息,并生成静态控制流流图。具体可以参考上文对编译器130功能的介绍。其中,若有无法识别的函数调用关系或间接跳转指令,可以结合人工进行识别并进行标记,以使编译器130可以识别。
在一个例子中,静态控制流流图可以包括用于描述图4所示内容的信息,其中,″callq0x401200″为间接跳转指令。″<cfi_check>″为该间接跳转指令所关联的标识信息。″<dev_pci_ops>″为该间接跳转指令的预设跳转目标函数。另外,
″mov-0x4(%rbp),%edi
mov-0x10(%rbp),%rax
mov(%rax),%rsi
callq*%rsi″
为预设的函数,用于在虚拟机111运行期间,减少检测函数(插置在标识信息处)对间接跳转指令运行的影响。
在一些实施例中,继续参阅图3,编译器130可以将静态控制流流图存放到虚拟机监视器的磁盘上的二进制存储区域。示例性的,该二进制存储区域还存放有用于模拟虚拟设备的二进制文件。其中,该二进制文件是编译器130对指令集A进行编译得到的。
参阅图5,在虚拟机支持模块121开始为虚拟机111模拟虚拟设备时,调用位图模块1211可以读取静态控制流流图,并基于静态控制流流图,生成动态控制流流图。具体可以参考上文对调用位图模块的介绍,在此不再赘述。在一个例子中,用于替换标识信息的检测函数可以为″cfi_bitmap_check″函数。
在虚拟机支持模块121模拟虚拟设备期间,若执行到指令子集A1的间接跳转指令时,可以检测该间接跳转指令即将跳转的目标地址(即上文所述的实测跳转目标地址)是否合法。具体而言,可以获取该间接跳转指令即将跳转的目标地址是否位于动态控制流流图中。如上所述,动态控制流流图包括了指令子集A1中间接跳转指令的预设跳转目标函数的内存地址。
若该即将跳转的目标地址位于动态控制流流图中,说明该即将跳转的目标地址是间接跳转指令的预设跳转目标函数,没有发生不在预期内的恶意代码的执行。
若该即将跳转的目标地址不位于动态控制流流图中,说明该即将跳转的目标地址不是该间接跳转指令的预设跳转目标函数,即该即将跳转的目标地址不合法。例如,如图6所示,在间接跳转指令的作用下,代码运行将要从func_write_data的内存地址跳转到非预期(即不在动态控制流流图中)的shellcode内存地址,则确定间接跳转指令即将跳转的目标地址不合法。
在一些实施例中,当检测到间接跳转指令的即将跳转的目的地址不合法时,虚拟机监视器120可以拒绝执行该间接跳转指令的跳转操作。
在一些实施例中,当检测到间接跳转指令的即将跳转的目的地址不合法时,虚拟机监视器120可以终止对虚拟机111的虚拟设备的模拟操作或者强制终止虚拟机的运行。
在一些实施例中,当检测到间接跳转指令的即将跳转的目的地址不合法时,虚拟机监视器120中的监控告警模块123将提供告警信息。具体可以参见上文对监控告警模块123的介绍,在此不再赘述。
在一些实施例中,当检测到间接跳转指令的即将跳转的目的地址不合法时,虚拟机监视器120可以输出异常日志,该异常日志中可以记录有间接跳转指令的即将跳转的目的地址,以及记录有该即将跳转的目的地址是不合法的。
在一些实施例中,当检测到间接跳转指令的即将跳转的目的地址不合法时,虚拟机监视器120可以忽略该检测结果,继续执行该间接跳转指令的跳转操作。
在一些实施例中,当检测到间接跳转指令的即将跳转的目的地址合法时,可以继续执行该间接跳转指令的跳转操作。
综上所述,本申请实施例提供的攻击检测方法,可以通过监控高风险代码的运行范围,在使用攻击检测函数进行攻击检测的同时,减少攻击检测函数的执行对代码执行整体性能的影响。并且,代码加载到内存之前,先插入标识信息,以指示检测函数的插入位置,而非直接插入检测函数,避免了攻击者在内存中追踪检测函数,使得本申请提供的攻击检测方法本身具有很高的安全性。另外,本申请实施例提供的攻击间接方法支持热补丁和加载动态库,具有较高的适用性。此外,在检测到代码运行异常时,支持不同的策略来处理该异常,增强了异常处理的灵活性。
接下来,基于上文所描述的攻击检测方案,对本申请实施例提供的一种攻击检测方法进行介绍。可以理解的是,该方法是上文所描述的攻击检测方案的另一种表达方式,两者是相结合的。该方法是基于上文所描述的攻击检测方案提出,该方法中的部分或全部内容可以参见上文对攻击检测方案的描述。
参阅图7,本申请实施例提供了一种攻击检测方法,该方法可以应用于宿主机,该宿主机运行有虚拟机监视器和第一虚拟机,虚拟器监视器包括第一进程,第一进程用于模拟第一虚拟机的虚拟设备。示例性的,该宿主机可以为图2所示实施例中的宿主机100,第一虚拟机可以为图2所示实施例中的虚拟机111。该虚拟机监视器可以为图2所示实施例中的虚拟机监视器120。
如图7所示,该方法包括如下步骤。
步骤701,在第一进程的指令集中,确定用于模拟虚拟设备的I/O接口的第一指令子集,所述第一指令子集包括多个间接跳转指令。具体可以参考上文对图2所示的编译器130的介绍实现,在此不再赘述。
步骤702,为所述多个间接跳转指令中的每一个间接跳转指令关联检测函数;其中,每一个间接跳转指令所关联的检测函数,用于检测所述间接跳转指令在所述第一进程运行期间的跳转目标地址是否合法。具体可以参考上文对图2所示的调用位图模块1211的介绍实现,在此不再赘述。
在一些实施例中,该方法还包括:在启动所述第一进程之前,为所述多个间接跳转指令中每个间接跳转指令添加标识信息;所述为所述多个间接跳转指令中的每一个间接跳转指令关联检测函数,包括:在启动所述第一进程时,为具有所述标识信息的间接跳转指令关联检测函数。具体可以参考上文对图2所示的调用位图模块1211的介绍,在此不再赘述。
在一些实施例中,所述为所述多个间接跳转指令中的每一个间接跳转指令关联检测函数,包括:当所述第一进程符合预设条件时,为所述多个间接跳转指令中的每一个间接跳转指令关联检测函数。具体可以参考上文对逃逸阻断指示信息的介绍实现,在此不再赘述。
在一些实施例中,该方法还包括:在启动所述第一进程之前,根据所述多个间接跳转指令的多个预设目标函数,确定第一控制流图,所述第一控制流图用于表示所述多个间接跳转指令和所述多个预设目标函数的一一对应关系;在启动所述第一进程时,确定所述多个预设目标函数在所述第一进程运行期间的内存地址;根据所述多个预设目标函数的内存地址和所述第一控制流图,确定第二控制流图,所述第二控制流图用于表示所述多个间接跳转指令和所述多个预设目标函数的内存地址的一一对应关系。具体可以参考上文对编译器130和调用位图模块1211的介绍实现,在此不再赘述。
在这些实施例的一个示例中,所述多个间接跳转指令包括第一间接跳转指令,所述第一间接跳转指令与第一检测函数关联,且对应第一预设目标函数;其中,所述第一检测函数用于确定所述第一间接跳转指令在所述第一进程运行期间的第一跳转目标地址,并根据所述第二控制流图,判断所述第一跳转目标地址与所述第一预设目标函数的内存地址是否相同;其中,当所述第一跳转目标地址与所述第一预设目标函数的内存地址不同时,确定所述第一跳转目标地址不合法。具体可以参考上文对图5中虚拟机支持模块121的介绍实现,在此不再赘述。
在这些实施例的一个示例中,所述多个间接跳转指令包括第一间接跳转指令,所述方法还包括:在所述第一进程运行期间,获取第一更新信息,所述第一更新信息包括第一函数,所述第一函数用于更新所述第一间接跳转指令的预设目标函数;将所述第一函数作为所述第一间接跳转指令新的预设目标函数,并根据所述第一函数在所述第一进程运行期间的内存地址更新所述第二控制流图。具体可以参考上文对调用位图模块1211的介绍实现,在此不再赘述。
在该示例的一个例子中,所述第一更新信息为热补丁或动态库。
在一些实施例中,所述多个间接跳转指令包括第一间接跳转指令,所述第一间接跳转指令与第一检测函数关联,所述第一检测函数包括预设的攻击应对策略;所述方法还包括:当所述第一检测函数检测到所述第一间接跳转指令在所述第一进程运行期间的跳转目标地址不合法时,执行所述攻击应对策略。具体可以参考上文对图6所示实施例的介绍实现,在此不再赘述。
在一些实施例中,所述攻击应对策略包括以下至少一种:
忽略所述第一检测函数的检测结果、输出异常日志、终止所述第一进程的运行、触发告警。
本申请实施例提供的攻击检测方法,可以通过监控高风险代码的运行范围,在使用攻击检测函数进行攻击检测的同时,减少攻击检测函数的执行对代码执行整体性能的影响。并且,代码加载到内存之前,先插入标识信息,以指示检测函数的插入位置,而非直接插入检测函数,避免了攻击者在内存中追踪检测函数,使得本申请提供的攻击检测方法本身具有很高的安全性。另外,本申请实施例提供的攻击间接方法支持热补丁和加载动态库,具有较高的适用性。此外,在检测到代码运行异常时,支持不同的策略来处理该异常,增强了异常处理的灵活性。
参阅图8,本申请实施例提供了一种攻击检测装置800,可配置于宿主机,所述宿主机运行有虚拟机监视器和第一虚拟机,所述虚拟器监视器包括第一进程,所述第一进程用于模拟所述第一虚拟机的虚拟设备。如图8所示,该装置800包括:
确定单元810,用于在所述第一进程的指令集中,确定用于模拟所述虚拟设备的I/O接口的第一指令子集,所述第一指令子集包括多个间接跳转指令;
关联单元820,用于为所述多个间接跳转指令中的每一个间接跳转指令关联检测函数;其中,每一个间接跳转指令所关联的检测函数,用于检测所述间接跳转指令在所述第一进程运行期间的跳转目标地址是否合法。
本申请实施例提供的攻击检测装置的各功能单元的功能可以参照上文如图7所示的各方法实施例实现,在此不再赘述。
本申请实施例提供的攻击检测装置,可以通过监控高风险代码的运行范围,在使用攻击检测函数进行攻击检测的同时,减少攻击检测函数的执行对代码执行整体性能的影响。
参阅图9,本申请实施例提供了一种攻击检测装置900。攻击检测装置900可以包括处理器910和存储器920。存储器920存储有指令,该指令可被处理器910执行。当该指令在被处理器910执行时,使得攻击检测装置900可以执行图7所示的攻击检测方法。例如,攻击检测装置900可以执行:在第一进程的指令集中,确定用于模拟虚拟设备的I/O接口的第一指令子集,第一指令子集包括多个间接跳转指令;为多个间接跳转指令中的每一个间接跳转指令关联检测函数;其中,每一个间接跳转指令所关联的检测函数,用于检测间接跳转指令在第一进程运行期间的跳转目标地址是否合法。
本申请实施例提供的攻击检测装置,可以通过监控高风险代码的运行范围,在使用攻击检测函数进行攻击检测的同时,减少攻击检测函数的执行对代码执行整体性能的影响。
本申请实施例还提供了一种计算机存储介质,计算机存储介质包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行图7所示的攻击检测方法。
本申请实施例还提供了一种计算机程序产品,计算机程序产品包含的程序代码被用于电子设备中的处理器执行时,使得电子设备执行图7所示的攻击检测方法。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。

Claims (21)

1.一种攻击检测方法,其特征在于,应用于宿主机,所述宿主机运行有虚拟机监视器和第一虚拟机,所述虚拟器监视器包括第一进程,所述第一进程用于模拟所述第一虚拟机的虚拟设备;所述方法包括:
在所述第一进程的指令集中,确定用于模拟所述虚拟设备的I/O接口的第一指令子集,所述第一指令子集包括多个间接跳转指令;
为所述多个间接跳转指令中的每一个间接跳转指令关联检测函数;其中,每一个间接跳转指令所关联的检测函数,用于检测所述间接跳转指令在所述第一进程运行期间的跳转目标地址是否合法。
2.根据权利要求1所述的方法,其特征在于,
所述方法还包括:在启动所述第一进程之前,为所述多个间接跳转指令中每个间接跳转指令添加标识信息;
所述为所述多个间接跳转指令中的每一个间接跳转指令关联检测函数,包括:
在启动所述第一进程时,为具有所述标识信息的间接跳转指令关联检测函数。
3.根据权利要求1所述的方法,其特征在于,所述为所述多个间接跳转指令中的每一个间接跳转指令关联检测函数,包括:
当所述第一进程符合预设条件时,为所述多个间接跳转指令中的每一个间接跳转指令关联检测函数。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
在启动所述第一进程之前,根据所述多个间接跳转指令的多个预设目标函数,确定第一控制流图,所述第一控制流图用于表示所述多个间接跳转指令和所述多个预设目标函数的一一对应关系;
在启动所述第一进程时,确定所述多个预设目标函数在所述第一进程运行期间的内存地址;
根据所述多个预设目标函数的内存地址和所述第一控制流图,确定第二控制流图,所述第二控制流图用于表示所述多个间接跳转指令和所述多个预设目标函数的内存地址的——对应关系。
5.根据权利要求4所述的方法,其特征在于,所述多个间接跳转指令包括第一间接跳转指令,所述第一间接跳转指令与第一检测函数关联,且对应第一预设目标函数;其中,
所述第一检测函数用于确定所述第一间接跳转指令在所述第一进程运行期间的第一跳转目标地址,并根据所述第二控制流图,判断所述第一跳转目标地址与所述第一预设目标函数的内存地址是否相同;其中,当所述第一跳转目标地址与所述第一预设目标函数的内存地址不同时,确定所述第一跳转目标地址不合法。
6.根据权利要求4所述的方法,其特征在于,所述多个间接跳转指令包括第一间接跳转指令,所述方法还包括:
在所述第一进程运行期间,获取第一更新信息,所述第一更新信息包括第一函数,所述第一函数用于更新所述第一间接跳转指令的预设目标函数;
将所述第一函数作为所述第一间接跳转指令新的预设目标函数,并根据所述第一函数在所述第一进程运行期间的内存地址更新所述第二控制流图。
7.根据权利要求6所述的方法,其特征在于,所述第一更新信息为热补丁或动态库。
8.根据权利要求1所述的方法,其特征在于,所述多个间接跳转指令包括第一间接跳转指令,所述第一间接跳转指令与第一检测函数关联,所述第一检测函数包括预设的攻击应对策略;
所述方法还包括:
当所述第一检测函数检测到所述第一间接跳转指令在所述第一进程运行期间的跳转目标地址不合法时,执行所述攻击应对策略。
9.根据权利要求8所述的方法,其特征在于,所述攻击应对策略包括以下至少一种:
忽略所述第一检测函数的检测结果、输出异常日志、终止所述第一进程的运行、触发告警。
10.一种攻击检测装置,其特征在于,配置于宿主机,所述宿主机运行有虚拟机监视器和第一虚拟机,所述虚拟器监视器包括第一进程,所述第一进程用于模拟所述第一虚拟机的虚拟设备;所述装置包括:
确定单元,用于在所述第一进程的指令集中,确定用于模拟所述虚拟设备的I/O接口的第一指令子集,所述第一指令子集包括多个间接跳转指令;
关联单元,用于为所述多个间接跳转指令中的每一个间接跳转指令关联检测函数;其中,每一个间接跳转指令所关联的检测函数,用于检测所述间接跳转指令在所述第一进程运行期间的跳转目标地址是否合法。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括添加单元,用于在启动所述第一进程之前,为所述多个间接跳转指令中每个间接跳转指令添加标识信息;
所述关联单元还用于在启动所述第一进程时,为具有所述标识信息的间接跳转指令关联检测函数。
12.根据权利要求10所述的装置,其特征在于,所述关联单元还用于当所述第一进程符合预设条件时,为所述多个间接跳转指令中的每一个间接跳转指令关联检测函数。
13.根据权利要求10-12任一项所述的装置,其特征在于,所述确定单元还用于:
在启动所述第一进程之前,根据所述多个间接跳转指令的多个预设目标函数,确定第一控制流图,所述第一控制流图用于表示所述多个间接跳转指令和所述多个预设目标函数的一一对应关系;
在启动所述第一进程时,确定所述多个预设目标函数在所述第一进程运行期间的内存地址;
根据所述多个预设目标函数的内存地址和所述第一控制流图,确定第二控制流图,所述第二控制流图用于表示所述多个间接跳转指令和所述多个预设目标函数的内存地址的一一对应关系。
14.根据权利要求13所述的装置,其特征在于,所述多个间接跳转指令包括第一间接跳转指令,所述第一间接跳转指令与第一检测函数关联,且对应第一预设目标函数;其中,
所述第一检测函数用于确定所述第一间接跳转指令在所述第一进程运行期间的第一跳转目标地址,并根据所述第二控制流图,判断所述第一跳转目标地址与所述第一预设目标函数的内存地址是否相同;其中,当所述第一跳转目标地址与所述第一预设目标函数的内存地址不同时,确定所述第一跳转目标地址不合法。
15.根据权利要求13所述的装置,其特征在于,所述多个间接跳转指令包括第一间接跳转指令;所述装置还包括:
获取单元,用于在所述第一进程运行期间,获取第一更新信息,所述第一更新信息包括第一函数,所述第一函数用于更新所述第一间接跳转指令的预设目标函数;
更新单元,用于将所述第一函数作为所述第一间接跳转指令新的预设目标函数,并根据所述第一函数在所述第一进程运行期间的内存地址更新所述第二控制流图。
16.根据权利要求15所述的装置,其特征在于,所述第一更新信息为热补丁或动态库。
17.根据权利要求10所述的装置,其特征在于,所述多个间接跳转指令包括第一间接跳转指令,所述第一间接跳转指令与第一检测函数关联,所述第一检测函数包括预设的攻击应对策略;
所述装置还包括:
执行单元,用于当所述第一检测函数检测到所述第一间接跳转指令在所述第一进程运行期间的跳转目标地址不合法时,执行所述攻击应对策略。
18.根据权利要求17所述的装置,其特征在于,所述攻击应对策略包括以下至少一种:
忽略所述第一检测函数的检测结果、输出异常日志、终止所述第一进程的运行、触发告警。
19.一种攻击检测装置,其特征在于,包括处理器、存储器;
所述存储器用于存储计算机指令;
当所述攻击检测装置运行时,所述处理器执行所述计算机指令,使得所述攻击检测装置执行权利要求1-9中的任一项所述的方法。
20.一种计算机存储介质,其特征在于,所述计算机存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行权利要求1-9中的任一项所述的方法。
21.一种计算机程序产品,计算机程序产品包含的程序代码被用于电子设备中的处理器执行时,使得所述电子设备执行权利要求1-9中的任一项所述的方法。
CN202110874435.9A 2021-07-30 2021-07-30 攻击检测方法及装置 Pending CN115686739A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110874435.9A CN115686739A (zh) 2021-07-30 2021-07-30 攻击检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110874435.9A CN115686739A (zh) 2021-07-30 2021-07-30 攻击检测方法及装置

Publications (1)

Publication Number Publication Date
CN115686739A true CN115686739A (zh) 2023-02-03

Family

ID=85057914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110874435.9A Pending CN115686739A (zh) 2021-07-30 2021-07-30 攻击检测方法及装置

Country Status (1)

Country Link
CN (1) CN115686739A (zh)

Similar Documents

Publication Publication Date Title
JP6761476B2 (ja) 仮想マシンを監査するためのシステムおよび方法
US9223964B2 (en) Detecting JAVA sandbox escaping attacks based on JAVA bytecode instrumentation and JAVA method hooking
JP6706273B2 (ja) インタープリタ仮想マシンを用いた挙動マルウェア検出
US8359496B1 (en) Fault-resistant just-in-time compiler
US9811663B2 (en) Generic unpacking of applications for malware detection
US9804948B2 (en) System, method, and computer program product for simulating at least one of a virtual environment and a debugging environment to prevent unwanted code from executing
CN113569246B (zh) 漏洞检测方法、装置、计算机设备和存储介质
Prakash et al. Enforcing system-wide control flow integrity for exploit detection and diagnosis
JP2019502197A (ja) ランタイム生成コードにおける悪意のあるコードの検出のためのシステムおよび方法
CN109388946B (zh) 恶意进程检测方法、装置、电子设备及存储介质
CN104715202A (zh) 一种虚拟机中的隐藏进程检测方法和装置
CN105678160A (zh) 用于提供对引导驱动程序的原始例程的访问的系统和方法
US20220258955A1 (en) Non-disruptive mitigation of malware attacks
US10275595B2 (en) System and method for characterizing malware
CN111444504A (zh) 一种用于软件运行时自动识别恶意代码的方法及装置
WO2016126206A1 (en) Method for obfuscation of code using return oriented programming
US11886589B2 (en) Process wrapping method for evading anti-analysis of native codes, recording medium and device for performing the method
WO2023096726A1 (en) Vulnerability analysis of a computer driver
CN115686739A (zh) 攻击检测方法及装置
US11556645B2 (en) Monitoring control-flow integrity
CN109388948B (zh) 一种基于虚拟化技术的潜在恶意软件分析方法及相关装置
JP6430922B2 (ja) 解析装置、解析方法および解析プログラム
KR102271273B1 (ko) 네이티브 코드 분석방지 우회를 위한 프로세스 래핑 방법, 이를 수행하기 위한 기록 매체 및 장치
EP4310707A1 (en) System and method for detecting malicious code by an interpreter in a computing device
CN115408007A (zh) 虚拟设备生成、驱动程序测试方法、装置、设备及介质

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