CN110765462B - 一种操作控制方法、装置、计算系统及电子设备 - Google Patents

一种操作控制方法、装置、计算系统及电子设备 Download PDF

Info

Publication number
CN110765462B
CN110765462B CN201810850576.5A CN201810850576A CN110765462B CN 110765462 B CN110765462 B CN 110765462B CN 201810850576 A CN201810850576 A CN 201810850576A CN 110765462 B CN110765462 B CN 110765462B
Authority
CN
China
Prior art keywords
register
operation instruction
attack
attack behavior
exists
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
CN201810850576.5A
Other languages
English (en)
Other versions
CN110765462A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810850576.5A priority Critical patent/CN110765462B/zh
Publication of CN110765462A publication Critical patent/CN110765462A/zh
Application granted granted Critical
Publication of CN110765462B publication Critical patent/CN110765462B/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例公开了一种操作控制方法、装置、计算系统及电子设备,该方法包括:获取对第一内存映射输入输出地址空间内寄存器的第一操作指令;根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为;如果确定不存在攻击行为,则允许执行所述第一操作指令;如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中所述第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。

Description

一种操作控制方法、装置、计算系统及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种操作控制方法、装置、计算系统及电子设备。
背景技术
随着人工智能不断发展,视频识别、语音识别、图像识别、自然语言翻译和人工智能画匠等基于GPU的在线预测也得到快速发展,而弹性GPU服务对于人工智能来说尤为重要。弹性GPU服务可以将GPU计算资源作为服务提供给用户,帮助将用户的本地GPU密集型任务迁移到集群云环境中。
弹性GPU服务使用的技术基础依托PCI直通,通过IOMMU(Input-Output MemoryManagement Unit,输入输出内存管理单元)/VTD(Virtualization for Directed I/O,直接输入输出虚拟化)隔离技术,虚拟机管理程序可以直接将整个PCI设备的资源呈现给客户机,而不需要虚拟机的拦截干预和模拟,也即是虚拟机内的设备驱动程序完全控制着GPU的硬件行为。上述处理方式下,PCI直通方式提供了接近本地设备的最佳性能,而且设备供应商可以在本地设备和客户机内设备驱动之间共享原生设备驱动程序。
通常,直通设备受IOMMU保护,安全隔离性具有一定的保障,但是,某些情况下可能会为直通设备带来严重的攻击,例如,直通设备的硬件自身存在安全漏洞,一旦直通设备通过直通方式分配给虚拟机,则该安全漏洞将暴露给虚拟机,这样,虚拟机中的恶意代码可以利用该安全漏洞攻击直通设备,从而增加了主机受攻击的可能性。
发明内容
本申请实施例的目的是提供一种操作控制方法、装置、计算系统及电子设备,以解决现有技术中虚拟机中的恶意代码可以利用安全漏洞攻击客户机,从而增加客户机受攻击的可能性的问题。
为解决上述技术问题,本申请实施例是这样实现的:
本申请实施例提供的一种操作控制方法,所述方法包括:
获取对第一内存映射输入输出地址空间内寄存器的第一操作指令;
根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为;
如果确定不存在攻击行为,则允许执行所述第一操作指令;
如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中所述第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
可选地,在所述不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤之前,所述方法还包括:
获取对第二内存映射输入输出地址空间内寄存器的第二操作指令;
允许执行所述第二操作指令。
可选地,所述第一内存映射输入输出地址空间包括至少一个第一内存映射输入输出地址页,所述第一内存映射输入输出地址页为对其进行操作的次数未超过预定阈值的寄存器所在的地址页,所述第二内存映射输入输出地址空间包括至少一个第二内存映射输入输出地址页,所述第二内存映射输入输出地址页为对其进行操作的次数超过预定阈值的寄存器所在的地址页。
可选地,所述攻击行为模式包括与攻击行为相关的至少一个寄存器,
所述获取对第一内存映射输入输出地址空间内寄存器的第一操作指令之后,所述方法还包括:
查找与所述第一操作指令对应寄存器相匹配的攻击行为模式;
获取所述查找到的攻击行为模式中除所述第一操作指令对应寄存器之外的其他寄存器,所述其他寄存器包括所述在先寄存器和所述在后寄存器。
可选地,所述方法还包括:
如果未查找到与所述第一操作指令对应寄存器匹配的攻击行为模式,则确定不存在攻击行为;或者
如果所述查找到的攻击行为模式中不存在所述其他寄存器,则确定存在所述攻击行为。
可选地,所述攻击行为模式还包括所述至少一个寄存器的先后关系,
所述根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为的步骤包括:
根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在先寄存器;
根据所述查找到的攻击行为模式和所述在先寄存器来判断是否存在所述攻击行为。
可选地,所述方法还包括:
如果不存在所述在先寄存器,则根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在后寄存器;
如果所述在后寄存器位于所述第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
可选地,在对所述第三操作指令确定存在或者不存在攻击行为之后,所述方法还包括:
如果接收到对所述在后寄存器的第四操作指令,则允许执行所述第四操作指令,并停止对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
可选地,在所述根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为的步骤之前,所述方法还包括:
判断所述第一操作指令对应的寄存器是否为预设的寄存器黑名单中记录的寄存器;
如果所述第一操作指令对应的寄存器是预设的寄存器黑名单中记录的寄存器,则确定存在攻击行为。
可选地,所述方法还包括:
如果确定存在攻击行为,则修改或者不允许执行获取到的操作指令。
本申请实施例提供的一种数据的访问控制装置,所述装置包括:
第一指令获取模块,用于获取对第一内存映射输入输出地址空间内寄存器的第一操作指令;
第一攻击判断模块,用于根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为;
第一指令执行模块,用于如果确定不存在攻击行为,则允许执行所述第一操作指令;
第二攻击判断模块,用于如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中所述第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
可选地,所述装置还包括:
第二指令获取模块,用于获取对第二内存映射输入输出地址空间内寄存器的第二操作指令;
第二指令执行模块,用于允许执行所述第二操作指令。
可选地,所述第一内存映射输入输出地址空间包括至少一个第一内存映射输入输出地址页,所述第一内存映射输入输出地址页为对其进行操作的次数未超过预定阈值的寄存器所在的地址页,所述第二内存映射输入输出地址空间包括至少一个第二内存映射输入输出地址页,所述第二内存映射输入输出地址页为对其进行操作的次数超过预定阈值的寄存器所在的地址页。
可选地,所述攻击行为模式包括与攻击行为相关的至少一个寄存器,所述装置还包括:
查找模块,用于查找与所述第一操作指令对应寄存器相匹配的攻击行为模式;
寄存器获取模块,用于获取所述查找到的攻击行为模式中除所述第一操作指令对应寄存器之外的其他寄存器,所述其他寄存器包括所述在先寄存器和所述在后寄存器。
可选地,所述装置还包括:
第三攻击判断模块,用于如果未查找到与所述第一操作指令对应寄存器匹配的攻击行为模式,则确定不存在攻击行为;或者如果所述查找到的攻击行为模式中不存在所述其他寄存器,则确定存在所述攻击行为。
可选地,所述攻击行为模式还包括所述至少一个寄存器的先后关系,所述第一攻击判断模块,用于根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在先寄存器;根据所述查找到的攻击行为模式和所述在先寄存器来判断是否存在所述攻击行为。
可选地,所述装置还包括:
寄存器确定模块,用于如果不存在所述在先寄存器,则根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在后寄存器;
所述第二攻击判断模块,用于如果所述在后寄存器位于所述第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,则不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
可选地,所述装置还包括:
第三指令执行模块,用于如果接收到对所述在后寄存器的第四操作指令,则允许执行所述第四操作指令,并停止对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
可选地,所述装置还包括:
判断模块,用于判断所述第一操作指令对应的寄存器是否为预设的寄存器黑名单中记录的寄存器;
攻击行为确定模块,用于如果所述第一操作指令对应的寄存器是预设的寄存器黑名单中记录的寄存器,则确定存在攻击行为。
可选地,所述装置还包括:
处理模块,用于如果确定存在攻击行为,则修改或者不允许执行获取到的操作指令。
本申请实施例提供的一种计算系统,包括硬件计算资源、虚拟机监视器和虚拟机,其中:
所述硬件计算资源包括内存映射输入输出地址空间内的多个寄存器;
所述虚拟机监视器包括如上述实施例提供的所述操作控制装置;
所述虚拟机适于经由所述虚拟机监视器来执行对所述硬件计算资源的操作指令。
本申请实施例提供的一种数据的电子设备,所述电子设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行上述所述的方法。
本申请实施例提供的一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被电子设备执行时,使得所述电子设备执行上述所述的方法。
由以上本申请实施例提供的技术方案可见,本申请实施例通过获取对第一内存映射输入输出地址空间内寄存器的第一操作指令,根据与第一操作指令对应寄存器相匹配的攻击行为模式中第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为,并在确定不存在攻击行为时,允许执行第一操作指令,而如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对在后寄存器的第三操作指令,不允许执行第三操作指令,并对第三操作指令重复上述判断是否存在攻击行为的步骤,这样,始终先对待操作的第一内存映射输入输出地址空间内寄存器进行攻击行为分析(通过第一操作指令触发),在无法确定是否存在攻击行为的情况下,才对位于第二内存映射输入输出地址空间内的在后寄存器进行攻击行为分析(通过第三操作指令触发),从而不仅可以有效识别出攻击行为,避免了虚拟机中的恶意代码可以利用安全漏洞攻击客户机,减少了客户机受攻击的可能性,而且还可以尽可能的减少由于对第二内存映射输入输出地址空间内的寄存器进行攻击行为分析而造成的寄存器性能的影响。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一种操作控制方法实施例;
图2为相关技术中一种数据的访问控制的逻辑关系图;
图3为本申请一种数据的访问控制的逻辑关系图;
图4为本申请另一种操作控制方法实施例;
图5为本申请一种PCI设备的MMIO Bar的结构示意图;
图6为本申请一种第一MMIO页中的寄存器在高负荷机器学习过程中发生的频率的示意图;
图7为本申请一种操作控制装置实施例;
图8为本申请一种计算系统实施例;
图9为本申请一种电子设备实施例。
具体实施方式
本申请实施例提供一种操作控制方法、装置、计算系统及电子设备。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
实施例一
如图1所示,本申请实施例提供一种操作控制方法,该方法的执行主体可以为服务器或终端设备,其中,服务器可以是一个独立的服务器,还可以是由多个服务器构成的服务器集群。终端设备可以如个人计算机、手机或平板电脑等,本实施例以服务器为例进行说明。该方法可以用于对寄存器的访问进行控制,以防止虚拟机内部的恶意代码使用某些主机中存在的漏洞来攻击主机等,该方法具体可以包括以下步骤:
在步骤S102中,获取对第一内存映射输入输出地址空间内寄存器的第一操作指令。
其中,第一内存映射输入输出可以是第一MMIO(Memory Mapping Input/Output),为了简化后续内容,本申请实施例中的第一内存映射输入输出使用第一MMIO代替,第一MMIO占用CPU的物理地址空间,对它的访问可以使用CPU访问内存的指令进行,同样,第一MMIO可以通过与访问内存一样的方式访问I/O资源。第一操作指令可以是任意操作的指令,例如读取寄存器中某数据的指令,或向寄存器中写入某数据的指令等。
在实施中,随着人工智能不断发展,视频识别、语音识别、图像识别、自然语言翻译和人工智能画匠等基于GPU(Graphics Processing Unit,图形处理器)的在线预测也得到快速发展。而弹性伸缩对于人工智能服务来说尤为重要,一方面是业务压力峰值时巨大的计算力需求,另一方面当业务空闲时,GPU的空耗成本也是人们很难承受的,同时在与客户的交流中,客户对于GPU资源的弹性伸缩也有很强的定制化需求,并希望能够自主控制触发条件,在此基础上和自身业务指标相结合等,为此,弹性GPU服务越来越重要。弹性GPU服务可以将GPU计算资源作为服务提供给用户,帮助将用户的本地GPU密集型任务迁移到集群云环境中。弹性GPU服务使用的技术基础依托PCI直通(即Peripheral ComponentInterconnect passthrough,外设部件互连直通标准),其中的PCI直通可以包括SRIOV(Single-Root Input/Output Virtualization,单根输入输出虚拟化)的VF(VisualFunction)设备直通给客户机。通过IOMMU/VTD隔离技术,虚拟机管理程序(VMM(VirtualMachine Monitor,虚拟机监视器)or Hypervisor)可以直接将整个PCI设备的资源呈现给客户机(即虚拟机),而不需要VMM的拦截干预和模拟,也即是虚拟机内的设备驱动程序完全控制着GPU的硬件行为。上述处理方式下,PCI直通方式提供了接近本地设备的最佳性能,而且设备供应商可以在本地设备和客户机内设备驱动之间共享原生设备驱动程序,但是,另一方面,VMM对于上述直通设备的客户行为知之甚少,特别是对于足够复杂的GPU设备,而VMM无从管理,在某些特定情况下,VMM出于安全隔离的原因,VMM必须拦截并阻止虚拟机的某些行为,以避免主机端受攻击。
通常,直通设备受IOMMU(Input–Output Memory Management Unit,输入输出内存管理单元)保护,安全隔离性有保障。但是有一些特例可能会为直通设备带来严重的攻击,例如,直通设备的硬件自身的安全漏洞,虚拟机中的恶意代码可以利用这个漏洞攻击主机(即直通设备),在实际应用中,GPU产品(如AMD和Nvidia Graphic产品等)在宿主机环境下只需要升级设备驱动程序就可以避免主机受到设备安全漏洞的影响,但是,一旦主机通过直通方式分配给虚拟机,则该安全漏洞将暴露给虚拟机,从而增加了主机受攻击的可能。例如,当Nvidia设备驱动程序试图在微代码加载完成之前重置微控制器(如Nvidia Bug200318995)时,Nvidia Telsa P100Graphic可以会导致整个主机系统宕机,虚拟机内部的恶意代码完全可以使用该漏洞来攻击主机。
如图2所示,VMM的设备模拟器(例如Qemu、Freebsd bhyve和KVMtool等)将模拟直通设备的PCI配置空间,同时将整个PCI设备各个Bars资源通过设置EPT(Extended PageTable,扩展页表)表项直通给虚拟机,上述Bars资源可以包括MMIO bar0、设备aperture和MSIX矢量表等,VMM不会对上述直通资源的访问做任何拦截,从而,使得虚拟机内部的恶意代码完全可以使用该漏洞来攻击主机,为此,本申请实施例提供一种可以解决上述问题的方案,具体可以包括以下内容:
如图3所示,可以在图2所示的系统结构的基础上,可以在VMM的设备模拟器或VMM中设置针对直通设备特定攻击行为模式的攻击检测机制(即DMPPT,Dynamic MMIOProtected PCI pass-through solution)。该攻击检测机制可以预先根据当前已知的攻击行为模式而设置,其中,该攻击行为模式对应的漏洞可以被修复。可以将该攻击行为模式对应的漏洞的相关信息设置于相应的MMIO地址空间内的寄存器中,其中,MMIO地址空间一般是以4bytes对齐,可以按照一页的大小划分MMIO地址空间。当客户机需要访问某寄存器或对某寄存器进行其它操作时,可以生成对该寄存器的操作指令,如果该寄存器为第一MMIO地址空间内的寄存器,则该操作指令为第一操作指令,可以获取该第一操作指令。其中,访问某寄存器或对某寄存器进行其它操作是通过访问相应PCI的MMIO Bar的一个地址实现的。
在步骤S104中,根据与第一操作指令对应寄存器相匹配的攻击行为模式中第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为。
其中,攻击行为模式可以是能够引起虚拟机内部的恶意代码通过待访问寄存器中的数据对应的漏洞来攻击主机的行为模式。攻击行为可以是能够引起虚拟机内部的恶意代码通过待访问寄存器中的数据对应的漏洞来攻击主机的行为。
在实施中,对于MMIO空间来说,MMIO空间可以以MMIO页为基本单位,因此,当获取到第一操作指令后,可以对第一操作指令进行分析,从中确定需要访问的寄存器,以及需要访问的该寄存器中的数据等。然后,可以将需要访问的该寄存器中的数据与当前已知的攻击行为模式对应的数据进行匹配,可以从当前已知的攻击行为模式中获取与第一操作指令相匹配的攻击行为模式。由于从已知的攻击行为模式中查找到的与第一操作指令对应寄存器匹配的攻击行为模式中往往是多个,可以对查找到的每个攻击行为模式执行后续处理。而即使是只匹配到一个攻击行为模式,该攻击行为模式中还可能会包含除第一操作指令对应的寄存器外的其它寄存器(可以是一个其他寄存器,也可以是多个其他寄存器),此时可以确定只通过第一操作指令对应的寄存器已无法判断是否存在攻击行为,而需要结合攻击行为模式中包含的除第一操作指令对应的寄存器外的其它寄存器来判断是否存在攻击行为。
例如,以进行写操作的第一操作指令为例,攻击行为模式包括:攻击行为模式A,即regA=a,regB=b,regC=b,以及攻击行为模式B,即regA=a,regB=b,regC=cc,第一操作指令对应的寄存器为regB,且指示要写入regB的数值为b,由于上述两种攻击行为模式中均包括寄存器regB及regB=b,因此查找到的与第一操作指令对应寄存器匹配的攻击行为模式为攻击行为模式A和攻击行为模式B。攻击行为模式A和攻击行为模式B中除了包含第一操作指令对应寄存器regB外,还包括寄存器regA和regC,因此,为了能够进一步判断第一操作指令是否允许执行,还需要通过寄存器regA和regC做进一步判断。
在实际应用中,上述攻击行为模式还可以包括至少一个寄存器的先后关系,基于此,可以根据上述先后关系,确定上述其他寄存器中第一操作指令对应寄存器的在先寄存器。
基于上述示例,攻击行为模式A为regA=a,regB=b,regC=b,如果寄存器regA、寄存器regB和寄存器regC存在先后执行的顺序(如数据输入的先后顺序等),如果攻击行为模式A中寄存器的先后执行的顺序为regA→regB→regC,由于当前获取的是第一操作指令,而第一操作指令对应的寄存器为regB,因此,regA可以为在先寄存器。对于攻击行为模式B来说,也同样存在在先寄存器regA。其中,在实际应用中,在先寄存器还可以包括多个。
可以通过查找到的攻击行为模式中在先寄存器的数值来判断是否存在攻击行为。如果查找到的攻击行为模式中在先寄存器的数值与该在先寄存器的实际数值不相等,则可以确定不存在攻击行为。
例如,如果查找到的攻击行为模式为攻击行为模式C,即regA=k,regB=b,如果当前在先寄存器regA的实际值为k,第一操作指令对应寄存器regB的实际值为b,则可以确定如果执行第一操作指令,必会触发攻击行为模式C启动,从而可能会对客户机产生攻击行为,如果当前在先寄存器regA的实际值为a,第一操作指令对应寄存器regB的实际值为b,则可以确定执行第一操作指令不会启动攻击行为模式C,也即是执行第一操作指令对客户机不会产生攻击行为。
需要说明的是,对于在先寄存器包括多个的情况,可以获取每个在先寄存器的实际值,然后,与上述查找到的攻击行为模式进行匹配,从而判断是否存在攻击行为。此外,如果多个在先寄存器中的任一个在先寄存器实际的数值与查找到的攻击行为模式不匹配,则可以确定不存在攻击行为。
另外,需要说明的是,如果根据第一操作指令和相匹配的攻击行为模式确定存在攻击行为,则表明第一操作指令会引起虚拟机内部的恶意代码通过待访问寄存器中的数据对应的漏洞来攻击主机的行为,此时,可以不允许执行第一操作指令。如果当前已知的攻击行为模式中不存在与第一操作指令相匹配的攻击行为模式,则表明第一操作指令不会引起虚拟机内部的恶意代码通过待访问寄存器中的数据对应的漏洞来攻击主机的行为,此时,可以继续执行上述步骤S102的相关处理。
在步骤S106中,如果确定不存在攻击行为,则允许执行上述第一操作指令。
在实施中,基于上述内容,判断结果可以包括多种,即第一操作指令能够引起虚拟机内部的恶意代码通过待访问寄存器中的数据对应的漏洞来攻击主机的行为、第一操作指令不能引起虚拟机内部的恶意代码通过待访问寄存器中的数据对应的漏洞来攻击主机的行为等,不同的判断结果可以有不同的处理方法。如果判断结果为第一操作指令能够引起虚拟机内部的恶意代码通过待访问寄存器中的数据对应的漏洞来攻击主机的行为,则可以阻止第一操作指令的执行,从而可以控制对第一MMIO地址空间内寄存器的读写操作等;如果判断结果为第一操作指令不能引起虚拟机内部的恶意代码通过待访问寄存器中的数据对应的漏洞来攻击主机的行为,则可以允许第一操作指令执行,从而可以控制对第一MMIO地址空间内寄存器的读写操作等。
在步骤S108中,如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对在后寄存器的第三操作指令,不允许执行第三操作指令,并对第三操作指令重复上述判断是否存在攻击行为的步骤。
在实施中,如果相匹配的攻击行为模式中在先寄存器的数值与该在先寄存器的实际数值相等,且该攻击行为模式中存在在后寄存器,则无法确定是否存在攻击行为。
基于上述示例,攻击行为模式A,即regA=a,regB=b,regC=b,以及攻击行为模式B,即regA=a,regB=b,regC=cc,在先寄存器为regA,在后寄存器为regC,如果当前在先寄存器regA的实际值为a,第一操作指令对应寄存器regB指示要写入的数值为b,则通过上述攻击行为模式A和攻击行为模式B可知,仅通过先寄存器regA和第一操作指令对应寄存器regB无法确定是否存在攻击行为,此时可以继续从上述其他寄存器中确定第一操作指令对应寄存器的在后寄存器,即上述示例中的寄存器regC。
需要说明的是,如果不存在在先寄存器,则根据上述先后关系,确定上述其他寄存器中第一操作指令对应寄存器的在后寄存器。
如果上述在后寄存器位于第一MMIO地址空间内,则后续会获取到对在后寄存器的第一操作指令,此时,可以针对第一操作指令执行上述步骤S404及其后续的处理过程。如果上述在后寄存器位于第二MMIO地址空间内,则后续会获取到对在后寄存器的第三操作指令,在获取到对在后寄存器的第三操作指令后,可以阻止第三操作指令的执行,然后,可以根据第三操作指令和已知的攻击行为模式来判断是否存在攻击行为,具体地,可以查找与第三操作指令对应在后寄存器匹配的攻击行为模式,然后,可以根据查找到的攻击行为模式和其中除第三操作指令对应寄存器之外的其他寄存器来判断是否存在攻击行为等,具体处理过程可以参见上述相关内容,在此不再赘述。
在实际应用中,在获取到对在后寄存器的第三操作指令后,可以不允许执行第三操作指令,然后,进一步判断是否存在攻击行为。例如,基于上述步骤三的示例,在后寄存器为regC,在先寄存器为regA,第一操作指令对应寄存器为regB,此时在先寄存器regA的实际值为a,第一操作指令对应寄存器regB指示要写入的数值为b,显然地,根据第一操作指令无法确定是否存在对应攻击行为模式A的攻击行为和对应攻击行为模式B的攻击行为,只能允许执行第一操作指令,当后续获取到对在后寄存器regC的操作指令时再进行攻击行为分析。
如果在后寄存器regC位于第二MMIO地址空间内,则对regC的操作指令为第三操作指令。当获取到对在后寄存器regC的第三操作指令后,可以获取在后寄存器regC指示要写入的数值,如果在后寄存器regC指示要写入的数值为b或cc,则可以确定存在对应攻击行为模式A或B的攻击行为,否则不存在攻击行为。
此外,如果查找到的攻击行为模式中在先寄存器的数值与该在先寄存器的实际数值相等,且该攻击行为模式中不存在在后寄存器,则可以确定存在攻击行为。
本申请实施例提供一种操作控制方法,通过获取对第一内存映射输入输出地址空间内寄存器的第一操作指令,根据与第一操作指令对应寄存器相匹配的攻击行为模式中第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为,并在确定不存在攻击行为时,允许执行第一操作指令,而如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对在后寄存器的第三操作指令,不允许执行第三操作指令,并对第三操作指令重复上述判断是否存在攻击行为的步骤,这样,始终先对待操作的第一内存映射输入输出地址空间内寄存器进行攻击行为分析(通过第一操作指令触发),在无法确定是否存在攻击行为的情况下,才对位于第二内存映射输入输出地址空间内的在后寄存器进行攻击行为分析(通过第三操作指令触发),从而不仅可以有效识别出攻击行为,避免了虚拟机中的恶意代码可以利用安全漏洞攻击客户机,减少了客户机受攻击的可能性,而且还可以尽可能的减少由于对第二内存映射输入输出地址空间内的寄存器进行攻击行为分析而造成的寄存器性能的影响。
实施例二
如图4所示,本申请实施例提供一种数据的访问控制方法,该方法的执行主体可以为服务器或终端设备,其中,服务器可以是一个独立的服务器,还可以是由多个服务器构成的服务器集群。终端设备可以如个人计算机、手机或平板电脑等,本实施例以服务器为例进行说明。该方法可以用于对寄存器的访问进行控制,以防止虚拟机内部的恶意代码使用某些主机中存在的漏洞来攻击主机等,该方法具体可以包括以下步骤:
在步骤S402中,获取对第一内存映射输入输出地址空间内寄存器的第一操作指令。
在实施中,如图5所示,PCI设备的MMIO Bar中给出了部分MMIO地址空间的组成结构,其中包括多个MMIO地址,并且可以根据预先设定的每个MMIO页所占用的MMIO地址,将MMIO空间划分为多个MMIO页,每个MMIO页可以占用相同大小的MMIO地址区间,如图5中的0x2000~0x3000或0x3000~0x4000等。
如图5所示,对于VMM的设备模拟器来说,可能对某些寄存器需要进行频繁的读写操作,而如果对读写操作频繁的上述寄存器的操作指令进行拦截,来进行攻击行为分析势必会影响寄存器性能,即如果一个MMIO页中包含某个寄存器,该寄存器属于被频繁访问(如5000次/秒)的寄存器,则该寄存器的读写性能会严重下降,为此,可以将MIMO地址空间划分为多个部分,即可以将上述被频繁进行操作的寄存器所在的MMIO地址页认为是第二MMIO地址页,将不存在被频繁进行操作的寄存器的MMIO地址页认为是第一MMIO地址页。具体来说,第一MMIO地址空间可以包括至少一个第一MMIO地址页,第一MMIO地址页可以为对其进行操作的次数未超过预定阈值的寄存器所在的地址页。第二MMIO地址空间可以包括至少一个第二MMIO地址页,第二MMIO地址页为对其进行操作的次数超过预定阈值的寄存器所在的地址页。其中,预定阈值可以根据实际情况设定,具体如7000次/秒或5000次/秒等。
上述步骤S402的具体处理可以参见上述实施例一中步骤S102的相关内容,在此不再赘述。
另外,为了快速判断出待读写的寄存器中可能会包含攻击行为对应的数据,因此,可以预先设置寄存器黑名单,该寄存器黑名单中可以包括第一MMIO地址空间内能够引发攻击行为的寄存器,具体可以参见下述步骤S404的处理。
在步骤S404中,判断第一操作指令对应的寄存器是否为预设的寄存器黑名单中记录的寄存器。
在实施中,用户可以根据实际情况或需求,在服务器中设置寄存器黑名单,用户可以将能够引起攻击行为的寄存器,记录在上述寄存器黑名单中。其中,对于任一项攻击行为,可以通过访问某一个寄存器触发,也可以通过访问多个寄存器触发。
服务器获取到对第一MMIO地址空间内寄存器的第一操作指令后,可以获取第一操作指令对应的寄存器,并可以获取该寄存器的标识(如名称或编码等)等信息,然后,可以在寄存器黑名单中查找是否包括该寄存器的标识,如果寄存器黑名单中包括该寄存器的标识,则可以确定第一操作指令对应的寄存器为预设的寄存器黑名单中记录的寄存器,并可以确定存在攻击行为。如果寄存器黑名单中不包括该寄存器的标识,则可以确定第一操作指令对应的寄存器不是预设的寄存器黑名单中记录的寄存器,此时,还无法确定对该寄存器的读写操作是否会引发攻击行为,为了进一步判断是否存在攻击行为,可以进行攻击行为分析,即执行下述步骤S406的处理。
例如,若寄存器regB属于第一MMIO地址页,则虚拟机在对regB进行读写操作时,生成相应的操作指令(即为第一操作指令),攻击检测机制(即DMPPT)会主动获取该第一操作指令。然后,可以将第一操作指令对应的寄存器regB与预设的寄存器黑名单中的寄存器进行比对,如果预设的寄存器黑名单中的寄存器中不包括寄存器regB,则可以确定第一操作指令对应的寄存器不是预设的寄存器黑名单中记录的寄存器。
在步骤S406中,如果第一操作指令对应的寄存器未记录在预设的寄存器黑名单中,则查找与第一操作指令对应寄存器相匹配的攻击行为模式。
在实施中,攻击行为模式可以包括与攻击行为相关的至少一个寄存器,还可以包括这些寄存器的数值。例如,某主机(或客户机)存在两个漏洞,通过上述两个漏洞中的任一漏洞均可能会引起虚拟机内部的恶意代码通过上述漏洞来攻击主机的行为,上述已知漏洞对应的攻击行为模式如下:攻击行为模式A:regA=a,regB=b,regC=b;攻击行为模式B:regA=a,regB=b,regC=cc。
其中,与第一操作指令对应寄存器相匹配的攻击行为模式可以是指第一操作指令对应寄存器和攻击行为模式对应的寄存器的标识相匹配,以及相应寄存器的数值相匹配(也即是第一操作指令指示要写入对应寄存器的数值与攻击行为模式中该寄存器的数值相等,或者第一操作指令指示要读取的对应寄存器的数值与攻击行为模式中该寄存器的数值相等)。
在实施中,基于上述步骤S404相关内容,如果通过判断确定第一操作指令对应的寄存器不是预设的寄存器黑名单中记录的寄存器,则可以确定需要进行攻击行为分析,此时,可以从已知的攻击行为模式中查找与第一操作指令对应的寄存器相匹配的攻击行为模式。
其中,对于不同形式或内容的第一操作指令,可以使用不同的查找匹配方式,对于进行读操作的第一操作指令,例如,某个攻击行为模式为:regA=a,regB=c。如果第一操作指令指示需要读取的寄存器为寄存器regB,且寄存器regB中待读取的数值为c,则可以通过第一操作指令对应的寄存器regB,以及寄存器regB中待读取的数值为c(即regB=c),查找相匹配的攻击行为模式。由于上述攻击行为模式中包括寄存器regB,并且regB=c,则查找到的与第一操作指令对应寄存器相匹配的攻击行为模式为上述攻击行为模式,该攻击行为模式为regA=a,regB=c。
对于进行写操作的第一操作指令,例如,存在攻击行为模式A:regA=a,regB=b,regC=b,以及存在攻击行为模式B:regA=a,regB=b,regC=cc。如果第一操作指令对应的寄存器为regB,且指示要写入寄存器regB的数值为b,可以看到,攻击行为模式A和攻击行为模式均包括寄存器regB,且攻击行为模式A和攻击行为模式B中寄存器regB的数值均为b,与第一操作指令指示要写入寄存器regB的数值相等。则查找到的与第一操作指令对应寄存器相匹配的攻击行为模式为攻击行为模式A和攻击行为模式B。
在步骤S408中,获取查找到的攻击行为模式中除第一操作指令对应寄存器之外的其他寄存器。
在实施中,由于从已知的攻击行为模式中查找到的与第一操作指令对应寄存器相匹配的攻击行为模式中可能是多个,可以对查找到的每个攻击行为模式执行后续处理。而即使是只匹配到一个攻击行为模式,该攻击行为模式中还可能会包含除第一操作指令对应的寄存器外的其它寄存器(可以是一个其他寄存器,也可以是多个其他寄存器),此时可以确定只通过第一操作指令对应的寄存器已无法判断是否存在攻击行为,而需要结合攻击行为模式中包含的除第一操作指令对应的寄存器外的其它寄存器来判断是否存在攻击行为。
例如,基于上述步骤S406的示例,以进行写操作的第一操作指令为例,攻击行为模式包括:攻击行为模式A,即regA=a,regB=b,regC=b,以及攻击行为模式B,即regA=a,regB=b,regC=cc,第一操作指令对应的寄存器为regB,且指示要写入regB的数值为b,由于上述两种攻击行为模式中均包括寄存器regB及regB=b,因此查找到的与第一操作指令对应寄存器相匹配的攻击行为模式为攻击行为模式A和攻击行为模式B。攻击行为模式A和攻击行为模式B中除了包含第一操作指令对应寄存器regB外,还包括寄存器regA和regC,因此,为了能够进一步判断第一操作指令是否允许执行,还需要通过寄存器regA和regC做进一步判断。
上述步骤S408中的攻击行为模式还可以包括至少一个寄存器的先后关系,基于此,可以通过下述处理方式处理。
在步骤S410中,根据上述先后关系,确定上述其他寄存器中第一操作指令对应寄存器的在先寄存器。
在实施中,基于上述示例,攻击行为模式A为regA=a,regB=b,regC=b,如果寄存器regA、寄存器regB和寄存器regC存在先后执行的顺序(如数据输入的先后顺序等),则可以确定该攻击行为模式对应的寄存器存在先后关系,例如攻击行为模式A中寄存器的先后关系可以为regA→regB→regC。
在步骤S412中,根据查找到的攻击行为模式和上述在先寄存器来判断是否存在攻击行为。
在步骤S414中,如果根据查找到的攻击行为模式和在先寄存器无法确定不存在攻击行为,则根据上述先后关系,确定上述其他寄存器中第一操作指令对应寄存器的在后寄存器。
在步骤S416中,如果上述在后寄存器位于第二MMIO地址空间,则后续如果获取到对在后寄存器的第三操作指令,不允许执行第三操作指令,并对第三操作指令重复上述判断是否存在攻击行为的步骤。
此外,通过上述步骤S406查找与第一操作指令对应寄存器匹配的攻击行为模式的过程中,如果查找到相匹配的攻击行为模式,则可以执行上述步骤S408及其后续的相关处理,如果没有查找到相匹配的攻击行为模式,则可以执行以下处理:如果未查找到与第一操作指令对应寄存器相匹配的攻击行为模式,则可以确定不存在攻击行为。
例如,某主机(或客户机)仅包括一个漏洞,该漏洞对应的攻击行为模式为:regA=aa,若寄存器regA属于第一MMIO地址页,且寄存器regA中要写入的数值为a或c等非aa的任意数值,则查找与第一操作指令对应寄存器(即regA)匹配的攻击行为模式的结果为未查找到相匹配的攻击行为模式,则可以确定执行第一操作指令后不会引发攻击行为。
另外,如果查找到与第一操作指令对应寄存器匹配的攻击行为模式,则可以执行上述步骤S408及其后续的处理,在通过步骤S408获取查找到的攻击行为模式中除第一操作指令对应寄存器之外的其他寄存器的过程中,如果查找到的攻击行为模式中不存在上述其他寄存器,则确定存在攻击行为。
基于上述示例,某主机(或客户机)存在已知的攻击行为模式:regA=aa,寄存器regA属于第一MMIO地址页,若寄存器regA中要写入的数值为aa,则与第一操作指令对应寄存器(即regA)匹配的攻击行为模式为regA=aa,可见,与查找到的攻击行为模式相匹配的寄存器中不存在其他寄存器,此时,寄存器regA中要写入的数值与已知的攻击行为模式对应的寄存器的数值相同,因此,如果执行第一操作指令,则会引发攻击行为,此时可以确定存在攻击行为。
通过上述处理过程,可以确定操作相应寄存器是否会引发攻击行为,如果不会引发攻击行为,则可以执行下述步骤S418的处理,如果会引发攻击行为,则可以执行下述步骤S420的处理。
在步骤S418中,如果不存在攻击行为,则允许执行上述第一操作指令。
在步骤S420中,如果确定存在攻击行为,则修改或者不允许执行获取到的操作指令。
在实施中,如果通过上述处理过程,确定执行第一操作指令会引发攻击行为,则为了避免主机(或客户机)被攻击,可以对第一操作指令中的相关参数或数据进行修改,以确保主机(或客户机)可以正常访问相关数据。基于上述示例,某主机(或客户机)存在已知的攻击行为模式:regA=aa,如果寄存器regA中要写入的数值为a,寄存器regA属于第一MMIO地址页,若寄存器regA中要写入的数值为aa,则可以确定存在攻击行为,此时,可以将寄存器regA中要写入的数值进行修改,如可以将数值aa修改为数值a,从而可以使得该主机(或客户机)能够正常访问寄存器regA。
此外,除了可以修改第一操作指令中的相关参数或数据外,还可以不允许执行获取到的操作指令(如上述第一操作指令或第三操作指令等)。其中,不允许执行获取到的操作指令的具体实现方式可以多种多样,例如,可以为该操作指令设置不允许执行的标签,或者,可以删除该操作指令等,具体可以根据实际情况设定,本申请实施例对此不做限定。
此外,针对上述步骤S416的具体处理,如果通过上述步骤S416的处理判断出存在攻击行为或不存在攻击行为,由于在后寄存器为第二MMIO地址空间内的寄存器,因此,为了保证寄存器的性能,可以不再阻止对在后寄存器的操作指令,具体可以包括以下内容:如果接收到对上述在后寄存器的第四操作指令,则允许执行该第四操作指令,停止对上述第三操作指令重复上述判断是否存在攻击行为的步骤。
在实施中,基于上述步骤S416对上述第三操作指令重复上述判断是否存在攻击行为的步骤,如果判断出存在攻击行为或不存在攻击行为,则为了保证第二MMIO地址空间内的在后寄存器的性能,可以在后续再次接收到对在后寄存器的操作指令时,允许执行该操作指令,从而保证第二MMIO地址空间内寄存器的读写操作的性能。
针对上述步骤S402的处理,如果获取到的操作指令是对第一MMIO地址空间内寄存器的第一操作指令,则可以执行上述步骤S402及其后续的处理过程,如果获取到的操作指令是对第二MMIO地址空间内寄存器的第二操作指令,或者,在上述步骤S402~步骤S420的处理完成之后,获取到对第二MMIO地址空间内寄存器的第二操作指令,则可以执行下述步骤S422和步骤S424的处理。
在步骤S422中,获取对第二内存映射输入输出地址空间内寄存器的第二操作指令。
在步骤S424中,允许执行上述第二操作指令。
需要说明的是,如果对已知的攻击模式通过上述攻击检测机制DMMPT无法识别,或者,由于对第二MMIO地址页中寄存器的操作指令进行了长时间阻止执行,并进行攻击行为分析而导致寄存器性能下降,则可以通过如修改主机驱动程序等来避免正常工作流程可能会干扰攻击行为模式的可能,例如,可以减少正常工作流程中访问第二MMIO地址页中的寄存器的次数等。
另外,攻击检测机制DMMPT的设置,可能会对业务系统的性能具有一定的影响,例如,可能会造成业务系统的性能下降2%-5%,在实际应用中,上述结果是可接受的。另外,如图6所示,采集了第一MMIO地址页中的寄存器在高负荷的攻击检测机制(或机器学习)过程中发生的频率,通过图6可知,基本上小于<200秒,对业务系统的性能几乎没有影响。
本申请实施例提供一种操作控制方法,通过获取对第一内存映射输入输出地址空间内寄存器的第一操作指令,根据与第一操作指令对应寄存器相匹配的攻击行为模式中第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为,并在确定不存在攻击行为时,允许执行第一操作指令,而如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对在后寄存器的第三操作指令,不允许执行第三操作指令,并对第三操作指令重复上述判断是否存在攻击行为的步骤,这样,始终先对待操作的第一内存映射输入输出地址空间内寄存器进行攻击行为分析(通过第一操作指令触发),在无法确定是否存在攻击行为的情况下,才对位于第二内存映射输入输出地址空间内的在后寄存器进行攻击行为分析(通过第三操作指令触发),从而不仅可以有效识别出攻击行为,避免了虚拟机中的恶意代码可以利用安全漏洞攻击客户机,减少了客户机受攻击的可能性,而且还可以尽可能的减少由于对第二内存映射输入输出地址空间内的寄存器进行攻击行为分析而造成的寄存器性能的影响。
实施例三
以上为本申请实施例提供的操作控制方法,基于同样的思路,本申请实施例还提供一种操作控制装置,如图7所示。
所述操作控制装置包括:第一指令获取模块701、第一攻击判断模块702、第一指令执行模块703和第二攻击判断模块704,其中:
第一指令获取模块701,用于获取对第一内存映射输入输出地址空间内寄存器的第一操作指令;
第一攻击判断模块702,用于根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为;
第一指令执行模块703,用于如果确定不存在攻击行为,则允许执行所述第一操作指令;
第二攻击判断模块704,用于如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中所述第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
本申请实施例中,所述装置还包括:
第二指令获取模块,用于获取对第二内存映射输入输出地址空间内寄存器的第二操作指令;
第二指令执行模块,用于允许执行所述第二操作指令。
本申请实施例中,所述第一内存映射输入输出地址空间包括至少一个第一内存映射输入输出地址页,所述第一内存映射输入输出地址页为对其进行操作的次数未超过预定阈值的寄存器所在的地址页,所述第二内存映射输入输出地址空间包括至少一个第二内存映射输入输出地址页,所述第二内存映射输入输出地址页为对其进行操作的次数超过预定阈值的寄存器所在的地址页。
本申请实施例中,所述攻击行为模式包括与攻击行为相关的至少一个寄存器,所述装置还包括:
查找模块,用于查找与所述第一操作指令对应寄存器相匹配的攻击行为模式;
寄存器获取模块,用于获取所述查找到的攻击行为模式中除所述第一操作指令对应寄存器之外的其他寄存器,所述其他寄存器包括所述在先寄存器和所述在后寄存器。
本申请实施例中,所述装置还包括:
第三攻击判断模块,用于如果未查找到与所述第一操作指令对应寄存器匹配的攻击行为模式,则确定不存在攻击行为;或者如果所述查找到的攻击行为模式中不存在所述其他寄存器,则确定存在所述攻击行为。
本申请实施例中,所述攻击行为模式还包括所述至少一个寄存器的先后关系,所述第一攻击判断模块702,用于根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在先寄存器;根据所述查找到的攻击行为模式和所述在先寄存器来判断是否存在所述攻击行为。
本申请实施例中,所述装置还包括:
寄存器确定模块,用于如果不存在所述在先寄存器,则根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在后寄存器;
所述第二攻击判断模块704,用于如果所述在后寄存器位于所述第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
本申请实施例中,所述装置还包括:
第三指令执行模块,用于如果接收到对所述在后寄存器的第四操作指令,则允许执行所述第四操作指令,并停止对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
本申请实施例中,所述装置还包括:
判断模块,用于判断所述第一操作指令对应的寄存器是否为预设的寄存器黑名单中记录的寄存器;
攻击行为确定模块,用于如果所述第一操作指令对应的寄存器是预设的寄存器黑名单中记录的寄存器,则确定存在攻击行为。
本申请实施例中,所述装置还包括:
处理模块,用于如果确定存在攻击行为,则修改或者不允许执行获取到的操作指令。
本申请实施例提供一种操作控制装置,通过获取对第一内存映射输入输出地址空间内寄存器的第一操作指令,根据与第一操作指令对应寄存器相匹配的攻击行为模式中第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为,并在确定不存在攻击行为时,允许执行第一操作指令,而如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对在后寄存器的第三操作指令,不允许执行第三操作指令,并对第三操作指令重复上述判断是否存在攻击行为的步骤,这样,始终先对待操作的第一内存映射输入输出地址空间内寄存器进行攻击行为分析(通过第一操作指令触发),在无法确定是否存在攻击行为的情况下,才对位于第二内存映射输入输出地址空间内的在后寄存器进行攻击行为分析(通过第三操作指令触发),从而不仅可以有效识别出攻击行为,避免了虚拟机中的恶意代码可以利用安全漏洞攻击客户机,减少了客户机受攻击的可能性,而且还可以尽可能的减少由于对第二内存映射输入输出地址空间内的寄存器进行攻击行为分析而造成的寄存器性能的影响。
实施例四
以上为本申请实施例提供的操作控制装置,基于同样的思路,本申请实施例还提供一种计算系统,如图8所示。
该计算系统包括硬件计算资源801、虚拟机监视器802和虚拟机803,其中:
所述硬件计算资源801包括内存映射输入输出地址空间内的多个寄存器;
所述虚拟机监视器802包括如上述实施例三提供的操作控制装置;
所述虚拟机803适于经由所述虚拟机监视器来执行对所述硬件计算资源的操作指令。
所述虚拟机监视器802,用于获取对第一内存映射输入输出地址空间内寄存器的第一操作指令;根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为;如果确定不存在攻击行为,则允许执行所述第一操作指令;如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中所述第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
此外,所述虚拟机监视器802,还用于获取对第二内存映射输入输出地址空间内寄存器的第二操作指令;允许执行所述第二操作指令。
此外,所述虚拟机监视器802,还用于查找与所述第一操作指令对应寄存器相匹配的攻击行为模式;获取所述查找到的攻击行为模式中除所述第一操作指令对应寄存器之外的其他寄存器。
此外,所述虚拟机监视器802,还用于如果未查找到与所述第一操作指令对应寄存器匹配的攻击行为模式,则确定不存在攻击行为;或者如果与所述查找到的攻击行为模式中不存在所述其他寄存器,则确定存在所述攻击行为。
此外,所述虚拟机监视器802,还用于根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在先寄存器;根据所述查找到的攻击行为模式和所述在先寄存器来判断是否存在所述攻击行为。
此外,所述虚拟机监视器802,还用于如果不存在所述在先寄存器,则根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在后寄存器;如果所述在后寄存器位于所述第二MMIO地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
此外,所述虚拟机监视器802,还用于如果接收到对所述在后寄存器的第四操作指令,则允许执行所述第四操作指令,并停止对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
此外,所述虚拟机监视器802,还用于判断所述第一操作指令对应的寄存器是否为预设的寄存器黑名单中记录的寄存器;如果所述第一操作指令对应的寄存器是预设的寄存器黑名单中记录的寄存器,则确定存在攻击行为。
此外,所述虚拟机监视器802,还用于如果确定存在攻击行为,则修改或者不允许执行获取到的操作指令。
本申请实施例提供一种计算系统,通过获取对第一内存映射输入输出地址空间内寄存器的第一操作指令,根据与第一操作指令对应寄存器相匹配的攻击行为模式中第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为,并在确定不存在攻击行为时,允许执行第一操作指令,而如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对在后寄存器的第三操作指令,不允许执行第三操作指令,并对第三操作指令重复上述判断是否存在攻击行为的步骤,这样,始终先对待操作的第一内存映射输入输出地址空间内寄存器进行攻击行为分析(通过第一操作指令触发),在无法确定是否存在攻击行为的情况下,才对位于第二内存映射输入输出地址空间内的在后寄存器进行攻击行为分析(通过第三操作指令触发),从而不仅可以有效识别出攻击行为,避免了虚拟机中的恶意代码可以利用安全漏洞攻击客户机,减少了客户机受攻击的可能性,而且还可以尽可能的减少由于对第二内存映射输入输出地址空间内的寄存器进行攻击行为分析而造成的寄存器性能的影响。
实施例五
基于同样的思路,本申请实施例还提供一种电子设备,如图9所示。
所述电子设备可以为上述实施例提供的服务器或终端设备。
电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器901和存储器902,存储器902中可以存储有一个或一个以上存储应用程序或数据。其中,存储器902可以是短暂存储或持久存储。存储在存储器902的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对电子设备中的一系列计算机可执行指令。更进一步地,处理器901可以设置为与存储器902通信,在电子设备上执行存储器902中的一系列计算机可执行指令。电子设备还可以包括一个或一个以上电源903,一个或一个以上有线或无线网络接口904,一个或一个以上输入输出接口905,一个或一个以上键盘906。
具体在本实施例中,电子设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对电子设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
获取对第一内存映射输入输出地址空间内寄存器的第一操作指令;
根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为;
如果确定不存在攻击行为,则允许执行所述第一操作指令;
如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中所述第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
本申请实施例中,在所述不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤之前,还包括:
获取对第二内存映射输入输出地址空间内寄存器的第二操作指令;
允许执行所述第二操作指令。
本申请实施例中,所述第一内存映射输入输出地址空间包括至少一个第一内存映射输入输出地址页,所述第一内存映射输入输出地址页为对其进行操作的次数未超过预定阈值的寄存器所在的地址页,所述第二内存映射输入输出地址空间包括至少一个第二内存映射输入输出地址页,所述第二内存映射输入输出地址页为对其进行操作的次数超过预定阈值的寄存器所在的地址页。
本申请实施例中,所述攻击行为模式包括与攻击行为相关的至少一个寄存器,
所述获取对第一内存映射输入输出地址空间内寄存器的第一操作指令之后,还包括:
查找与所述第一操作指令对应寄存器相匹配的攻击行为模式;
获取所述查找到的攻击行为模式中除所述第一操作指令对应寄存器之外的其他寄存器,所述其他寄存器包括所述在先寄存器和所述在后寄存器。
本申请实施例中,还包括:
如果未查找到与所述第一操作指令对应寄存器匹配的攻击行为模式,则确定不存在攻击行为;或者
如果所述查找到的攻击行为模式中不存在所述其他寄存器,则确定存在所述攻击行为。
本申请实施例中,所述攻击行为模式还包括所述至少一个寄存器的先后关系,
所述根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为的步骤包括:
根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在先寄存器;
根据所述查找到的攻击行为模式和所述在先寄存器来判断是否存在所述攻击行为。
本申请实施例中,还包括:
如果不存在所述在先寄存器,则根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在后寄存器;
如果所述在后寄存器位于所述第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
本申请实施例中,在对所述第三操作指令确定存在或者不存在攻击行为之后,还包括:
如果接收到对所述在后寄存器的第四操作指令,则允许执行所述第四操作指令,并停止对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
本申请实施例中,在所述根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为的步骤之前,还包括:
判断所述第一操作指令对应的寄存器是否为预设的寄存器黑名单中记录的寄存器;
如果所述第一操作指令对应的寄存器是预设的寄存器黑名单中记录的寄存器,则确定存在攻击行为。
本申请实施例中,还包括:
如果确定存在攻击行为,则修改或者不允许执行获取到的操作指令。
本申请实施例提供一种电子设备,通过获取对第一内存映射输入输出地址空间内寄存器的第一操作指令,根据与第一操作指令对应寄存器相匹配的攻击行为模式中第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为,并在确定不存在攻击行为时,允许执行第一操作指令,而如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对在后寄存器的第三操作指令,不允许执行第三操作指令,并对第三操作指令重复上述判断是否存在攻击行为的步骤,这样,始终先对待操作的第一内存映射输入输出地址空间内寄存器进行攻击行为分析(通过第一操作指令触发),在无法确定是否存在攻击行为的情况下,才对位于第二内存映射输入输出地址空间内的在后寄存器进行攻击行为分析(通过第三操作指令触发),从而不仅可以有效识别出攻击行为,避免了虚拟机中的恶意代码可以利用安全漏洞攻击客户机,减少了客户机受攻击的可能性,而且还可以尽可能的减少由于对第二内存映射输入输出地址空间内的寄存器进行攻击行为分析而造成的寄存器性能的影响。
实施例六
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中操作控制方法,并具体用于执行:
获取对第一内存映射输入输出地址空间内寄存器的第一操作指令;
根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为;
如果确定不存在攻击行为,则允许执行所述第一操作指令;
如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中所述第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
本申请实施例中,在所述不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤之前,还包括:
获取对第二内存映射输入输出地址空间内寄存器的第二操作指令;
允许执行所述第二操作指令。
本申请实施例中,所述第一内存映射输入输出地址空间包括至少一个第一内存映射输入输出地址页,所述第一内存映射输入输出地址页为对其进行操作的次数未超过预定阈值的寄存器所在的地址页,所述第二内存映射输入输出地址空间包括至少一个第二内存映射输入输出地址页,所述第二内存映射输入输出地址页为对其进行操作的次数超过预定阈值的寄存器所在的地址页。
本申请实施例中,所述攻击行为模式包括与攻击行为相关的至少一个寄存器,
所述获取对第一内存映射输入输出地址空间内寄存器的第一操作指令之后,还包括:
查找与所述第一操作指令对应寄存器相匹配的攻击行为模式;
获取所述查找到的攻击行为模式中除所述第一操作指令对应寄存器之外的其他寄存器,所述其他寄存器包括所述在先寄存器和所述在后寄存器。
本申请实施例中,还包括:
如果未查找到与所述第一操作指令对应寄存器匹配的攻击行为模式,则确定不存在攻击行为;或者
如果所述查找到的攻击行为模式中不存在所述其他寄存器,则确定存在所述攻击行为。
本申请实施例中,所述攻击行为模式还包括所述至少一个寄存器的先后关系,
所述根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为的步骤包括:
根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在先寄存器;
根据所述查找到的攻击行为模式和所述在先寄存器来判断是否存在所述攻击行为。
本申请实施例中,还包括:
如果不存在所述在先寄存器,则根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在后寄存器;
如果所述在后寄存器位于所述第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
本申请实施例中,在对所述第三操作指令确定存在或者不存在攻击行为之后,还包括:
如果接收到对所述在后寄存器的第四操作指令,则允许执行所述第四操作指令,并停止对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
本申请实施例中,在所述根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为的步骤之前,还包括:
判断所述第一操作指令对应的寄存器是否为预设的寄存器黑名单中记录的寄存器;
如果所述第一操作指令对应的寄存器是预设的寄存器黑名单中记录的寄存器,则确定存在攻击行为。
本申请实施例中,还包括:
如果确定存在攻击行为,则修改或者不允许执行获取到的操作指令。
本申请实施例提供一种计算机可读存储介质,通过获取对第一内存映射输入输出地址空间内寄存器的第一操作指令,根据与第一操作指令对应寄存器相匹配的攻击行为模式中第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为,并在确定不存在攻击行为时,允许执行第一操作指令,而如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对在后寄存器的第三操作指令,不允许执行第三操作指令,并对第三操作指令重复上述判断是否存在攻击行为的步骤,这样,始终先对待操作的第一内存映射输入输出地址空间内寄存器进行攻击行为分析(通过第一操作指令触发),在无法确定是否存在攻击行为的情况下,才对位于第二内存映射输入输出地址空间内的在后寄存器进行攻击行为分析(通过第三操作指令触发),从而不仅可以有效识别出攻击行为,避免了虚拟机中的恶意代码可以利用安全漏洞攻击客户机,减少了客户机受攻击的可能性,而且还可以尽可能的减少由于对第二内存映射输入输出地址空间内的寄存器进行攻击行为分析而造成的寄存器性能的影响。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (21)

1.一种操作控制方法,所述方法包括:
获取对第一内存映射输入输出地址空间内寄存器的第一操作指令,所述第一内存映射输入输出地址空间包括至少一个第一内存映射输入输出地址页,所述第一内存映射输入输出地址页为对其进行操作的次数未超过预定阈值的寄存器所在的地址页;
根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为;
如果确定不存在攻击行为,则允许执行所述第一操作指令;
如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中所述第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤,所述第二内存映射输入输出地址空间包括至少一个第二内存映射输入输出地址页,所述第二内存映射输入输出地址页为对其进行操作的次数超过预定阈值的寄存器所在的地址页。
2.根据权利要求1所述的方法,其中,在所述不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤之前,所述方法还包括:
获取对第二内存映射输入输出地址空间内寄存器的第二操作指令;
允许执行所述第二操作指令。
3.根据权利要求2所述的方法,其中,所述攻击行为模式包括与攻击行为相关的至少一个寄存器,
所述获取对第一内存映射输入输出地址空间内寄存器的第一操作指令之后,所述方法还包括:
查找与所述第一操作指令对应寄存器相匹配的攻击行为模式;
获取所述查找到的攻击行为模式中除所述第一操作指令对应寄存器之外的其他寄存器,所述其他寄存器包括所述在先寄存器和所述在后寄存器。
4.根据权利要求3所述的方法,其中,所述方法还包括:
如果未查找到与所述第一操作指令对应寄存器匹配的攻击行为模式,则确定不存在攻击行为;或者
如果所述查找到的攻击行为模式中不存在所述其他寄存器,则确定存在所述攻击行为。
5.根据权利要求3所述的方法,其中,所述攻击行为模式还包括所述至少一个寄存器的先后关系,
所述根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为的步骤包括:
根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在先寄存器;
根据所述查找到的攻击行为模式和所述在先寄存器来判断是否存在所述攻击行为。
6.根据权利要求5所述的方法,其中,所述方法还包括:
如果不存在所述在先寄存器,则根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在后寄存器;
如果所述在后寄存器位于所述第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
7.根据权利要求6所述的方法,其中,在对所述第三操作指令确定存在或者不存在攻击行为之后,所述方法还包括:
如果接收到对所述在后寄存器的第四操作指令,则允许执行所述第四操作指令,并停止对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
8.根据权利要求1所述的方法,其中,在所述根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为的步骤之前,所述方法还包括:
判断所述第一操作指令对应的寄存器是否为预设的寄存器黑名单中记录的寄存器;
如果所述第一操作指令对应的寄存器是预设的寄存器黑名单中记录的寄存器,则确定存在攻击行为。
9.根据权利要求1-8中任一项所述的方法,其中,所述方法还包括:
如果确定存在攻击行为,则修改或者不允许执行获取到的操作指令。
10.一种操作控制装置,所述装置包括:
第一指令获取模块,用于获取对第一内存映射输入输出地址空间内寄存器的第一操作指令,所述第一内存映射输入输出地址空间包括至少一个第一内存映射输入输出地址页,所述第一内存映射输入输出地址页为对其进行操作的次数未超过预定阈值的寄存器所在的地址页;
第一攻击判断模块,用于根据与所述第一操作指令对应寄存器相匹配的攻击行为模式中所述第一操作指令对应寄存器的在先寄存器,判断是否存在攻击行为;
第一指令执行模块,用于如果确定不存在攻击行为,则允许执行所述第一操作指令;
第二攻击判断模块,用于如果无法确定是否存在攻击行为、且相匹配的攻击行为模式中所述第一操作指令对应寄存器的在后寄存器位于第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤,所述第二内存映射输入输出地址空间包括至少一个第二内存映射输入输出地址页,所述第二内存映射输入输出地址页为对其进行操作的次数超过预定阈值的寄存器所在的地址页。
11.根据权利要求10所述的装置,其中,所述装置还包括:
第二指令获取模块,用于获取对第二内存映射输入输出地址空间内寄存器的第二操作指令;
第二指令执行模块,用于允许执行所述第二操作指令。
12.根据权利要求11所述的装置,其中,所述攻击行为模式包括与攻击行为相关的至少一个寄存器,所述装置还包括:
查找模块,用于查找与所述第一操作指令对应寄存器相匹配的攻击行为模式;
寄存器获取模块,用于获取所述查找到的攻击行为模式中除所述第一操作指令对应寄存器之外的其他寄存器,所述其他寄存器包括所述在先寄存器和所述在后寄存器。
13.根据权利要求12所述的装置,其中,所述装置还包括:
第三攻击判断模块,用于如果未查找到与所述第一操作指令对应寄存器匹配的攻击行为模式,则确定不存在攻击行为;或者如果所述查找到的攻击行为模式中不存在所述其他寄存器,则确定存在所述攻击行为。
14.根据权利要求12所述的装置,其中,所述攻击行为模式还包括所述至少一个寄存器的先后关系,所述第一攻击判断模块,用于根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在先寄存器;根据所述查找到的攻击行为模式和所述在先寄存器来判断是否存在所述攻击行为。
15.根据权利要求14所述的装置,其中,所述装置还包括:
寄存器确定模块,用于如果不存在所述在先寄存器,则根据所述先后关系,确定所述其他寄存器中所述第一操作指令对应寄存器的在后寄存器;
所述第二攻击判断模块,用于如果所述在后寄存器位于所述第二内存映射输入输出地址空间,则后续如果获取到对所述在后寄存器的第三操作指令,不允许执行所述第三操作指令,并对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
16.根据权利要求15所述的装置,其中,所述装置还包括:
第三指令执行模块,用于如果接收到对所述在后寄存器的第四操作指令,则允许执行所述第四操作指令,并停止对所述第三操作指令重复上述判断是否存在攻击行为的步骤。
17.根据权利要求10所述的装置,其中,所述装置还包括:
判断模块,用于判断所述第一操作指令对应的寄存器是否为预设的寄存器黑名单中记录的寄存器;
攻击行为确定模块,用于如果所述第一操作指令对应的寄存器是预设的寄存器黑名单中记录的寄存器,则确定存在攻击行为。
18.根据权利要求10-17中任一项所述的装置,其中,所述装置还包括:
处理模块,用于如果确定存在攻击行为,则修改或者不允许执行获取到的操作指令。
19.一种计算系统,包括硬件计算资源、虚拟机监视器和虚拟机,其中:
所述硬件计算资源包括内存映射输入输出地址空间内的多个寄存器;
所述虚拟机监视器包括如权利要求10-18中任一项所述的装置;
所述虚拟机适于经由所述虚拟机监视器来执行对所述硬件计算资源的操作指令。
20.一种电子设备,所述电子设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1-9中任一项所述的方法。
21.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被电子设备执行时,使得所述电子设备执行如权利要求1-9中任一项所述的方法。
CN201810850576.5A 2018-07-28 2018-07-28 一种操作控制方法、装置、计算系统及电子设备 Active CN110765462B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810850576.5A CN110765462B (zh) 2018-07-28 2018-07-28 一种操作控制方法、装置、计算系统及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810850576.5A CN110765462B (zh) 2018-07-28 2018-07-28 一种操作控制方法、装置、计算系统及电子设备

Publications (2)

Publication Number Publication Date
CN110765462A CN110765462A (zh) 2020-02-07
CN110765462B true CN110765462B (zh) 2023-06-27

Family

ID=69328960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810850576.5A Active CN110765462B (zh) 2018-07-28 2018-07-28 一种操作控制方法、装置、计算系统及电子设备

Country Status (1)

Country Link
CN (1) CN110765462B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101059786A (zh) * 2006-04-17 2007-10-24 国际商业机器公司 用于选择性地停止dma操作的方法、设备和系统
CN101165666A (zh) * 2006-10-17 2008-04-23 国际商业机器公司 在数据处理系统中建立地址转换的方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7234144B2 (en) * 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
US7430139B2 (en) * 2006-06-12 2008-09-30 Via Technologies, Inc. Shared memory synchronization systems and methods
US20110246686A1 (en) * 2010-04-01 2011-10-06 Cavanagh Jr Edward T Apparatus and system having pci root port and direct memory access device functionality
CN102262557B (zh) * 2010-05-25 2015-01-21 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架
US9317452B1 (en) * 2013-11-18 2016-04-19 Amazon Technologies, Inc. Selective restrictions to memory mapped registers using an emulator
US10146962B2 (en) * 2015-12-17 2018-12-04 Mcafee, Llc Method and apparatus for protecting a PCI device controller from masquerade attacks by malware
CN105700826A (zh) * 2015-12-31 2016-06-22 华为技术有限公司 虚拟化方法和装置
CN108073350B (zh) * 2016-11-10 2020-11-24 成都云创互联信息技术有限公司 一种用于云渲染的对象存储系统和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101059786A (zh) * 2006-04-17 2007-10-24 国际商业机器公司 用于选择性地停止dma操作的方法、设备和系统
CN101165666A (zh) * 2006-10-17 2008-04-23 国际商业机器公司 在数据处理系统中建立地址转换的方法和装置

Also Published As

Publication number Publication date
CN110765462A (zh) 2020-02-07

Similar Documents

Publication Publication Date Title
US11200080B1 (en) Late load technique for deploying a virtualization layer underneath a running operating system
US11687645B2 (en) Security control method and computer system
JP6842455B2 (ja) 非同期イントロスペクション例外を使用するコンピュータセキュリティシステムおよび方法
KR101955189B1 (ko) 스왑 아웃된 메모리 페이지의 가상 머신 가상화된 메모리로의 맵핑을 위한 가상 머신에서의 페이지 오류 삽입
JP6378758B2 (ja) 仮想マシンにおけるマルウェア検出のためのプロセス評価
US10635479B2 (en) Event filtering for virtual machine security applications
US10140448B2 (en) Systems and methods of asynchronous analysis of event notifications for computer security applications
US20160210069A1 (en) Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine
US20140053272A1 (en) Multilevel Introspection of Nested Virtual Machines
US20170103206A1 (en) Method and apparatus for capturing operation in a container-based virtualization system
CN108027859B (zh) 检测对计算设备中的进程的软件攻击
US9965620B2 (en) Application program interface (API) monitoring bypass
US10628188B2 (en) Disabling just-in-time translation for application functions
CN113449292B (zh) 一种可信应用的运行方法、装置及设备
CN110765462B (zh) 一种操作控制方法、装置、计算系统及电子设备
US11586727B2 (en) Systems and methods for preventing kernel stalling attacks
CN105653937B (zh) 一种文件防护方法和装置
CN115437751A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40022273

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant