CN105701416B - 强制访问控制方法、装置和物理主机 - Google Patents

强制访问控制方法、装置和物理主机 Download PDF

Info

Publication number
CN105701416B
CN105701416B CN201610017077.9A CN201610017077A CN105701416B CN 105701416 B CN105701416 B CN 105701416B CN 201610017077 A CN201610017077 A CN 201610017077A CN 105701416 B CN105701416 B CN 105701416B
Authority
CN
China
Prior art keywords
access instruction
access
main body
security level
instruction
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
CN201610017077.9A
Other languages
English (en)
Other versions
CN105701416A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610017077.9A priority Critical patent/CN105701416B/zh
Publication of CN105701416A publication Critical patent/CN105701416A/zh
Priority to EP17738119.1A priority patent/EP3333752B1/en
Priority to PCT/CN2017/070705 priority patent/WO2017121305A1/zh
Priority to US15/920,007 priority patent/US10762223B2/en
Application granted granted Critical
Publication of CN105701416B publication Critical patent/CN105701416B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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
    • 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/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种强制访问控制方法、装置和物理主机,该方法包括:VMM从至少一个虚拟机获取用户下发的M个输入输出访问指令,M个访问指令中每一个访问指令包括访问的主体和访问的客体;VMM根据M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令;VMM访问N个访问指令中每一个访问指令的客体对应的物理设备。该方法基于VMM管理虚拟机内部的强制访问控制,使得强制访问控制的实现更加灵活,并且操作***无需修改,***兼容性更好。

Description

强制访问控制方法、装置和物理主机
技术领域
本发明实施例涉及虚拟机领域,并且更具体地,涉及一种强制访问控制方法、装置和物理主机。
背景技术
当前,不同行业,例如教育、企业、政府、军工、运营商、医疗和金融等对于安全的需求是不同的。目前应用于各行业的产品实现了一般等级的安全需求,对于高级的安全需求涉及则较少。
访问控制是安全需求中的一种,分为自主访问控制和强制访问控制。根据GB17859-1999等安全标准,定义三级及以上的安全***必须使用强制访问控制。强制访问控制是军工、政府等核心内容保护的行业门槛,是访问控制的后续发展方向。
当前在多种操作***下大多实现了自主访问控制。现有的多种操作***下的自主访问控制大多都采用类似Linux操作***的自主访问控制来实现。自主访问控制是指客体的属主能够决定其他对该客体的访问权限。Linux操作***实现了基于“权限位”的自主访问控制。权限位分为“本人”,“群组”,“其他”三类。当用户决定将客体消息传递给其他用户时,只能选择“群组”或“其他”权限,类似共享策略。基于权限位的自主访问控制机制粒度粗,无法适应于安全性较高的场景。而强制访问控制要求为***中的主体和客体分配安全等级。当主体对客体提出访问请求时,***根据主体、客体的安全等级以及访问类型做出授权(可读/可写)判断。
在操作***层实现强制访问控制通常需要修改内核机制,还需要考虑不同***的差异性,实现难度很大。当前实现强制访问控制的方法较单一,只有部分定制化***实现了强制访问控制。SELinux是基于Linux开发的安全增强模块,通过对内核和用户空间进行修改,对现有的GNU/Linux操作***进行扩展实现了基于强制类型(Type Enforce,TE)策略的强制访问控制。SELinux通过修改GNU/Linux操作***的内核态的代码,针对每一个访问,在访问的主体和客体上打一个标签,使得程序根据标签逐个实现对每一个访问进行强制访问控制。该方案是通过修改GNU/Linux操作***的内核态的代码实现的,不能推广到其它操作***中。因此,SELinu访问不支持Windows操作***,并且该方案会为GNU/Linux操作***带来5%~10%的性能损耗。
发明内容
本发明实施例提供一种强制访问控制方法、装置和物理主机,能够不修改操作***灵活地实现强制访问控制。
本发明基于虚拟机监控器VMM来管理虚拟机内部的强制访问控制。由于VMM本身用于获取并执行虚拟机内部的访问指令,因此,强制访问控制在VMM中实现可以更加灵活,并且操作***无需修改,***兼容性更好。
第一方面,本发明提供了一种强制访问控制方法,包括:虚拟机监控器VMM从至少一个虚拟机获取用户下发的M个访问指令,所述M个访问指令中每一个访问指令包括访问的主体和访问的客体,其中,M为正整数;所述VMM根据所述M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,其中,N为小于或等于M的正整数;所述VMM访问所述N个访问指令中每一个访问指令的客体对应的硬件层设备。
其中,所述M个访问指令是所述用户从所述虚拟机的用户态生成并下发到所述虚拟机的内核态的。
本发明中,被访问的硬件层设备可以与虚拟机监控器VMM和至少一个虚拟机集成在一台物理主机上,也可以存在于其他的物理主机上。
为了加速VMM判断访问指令是否符合强制访问规则,在第一方面的一种可能的实现方式中,对于同一个虚拟机下发的多个访问,可以根据访问的主体的安全等级和客体的安全等级是否相同进行合并。具体地,M为大于或等于2的正整数,所述M个访问指令均是从第一虚拟机获取的,所述VMM根据所述M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,包括:所述VMM将所述M个访问指令中的主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;所述VMM根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述强制访问规则的N个访问指令,其中,N为小于或等于K的正整数。
同样,为了加速VMM判断访问是否符合强制访问规则,在第一方面的另一种可能的实现方式中,对于同一个虚拟机下发的多个访问,可以根据访问的主体和客体是否相同进行合并。具体地,M为大于或等于2的正整数,所述M个访问指令均是从第一虚拟机获取的,所述VMM根据所述M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,包括:所述VMM将所述M个访问指令中的主体相同且客体也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;所述VMM根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述强制访问规则的N个访问指令,其中,N为小于或等于K的正整数。
针对第一方面的上述两种可能的实现方式,强制访问规则可以设计如下:所述强制访问规则包括主体安全规则、客体安全规则和安全判断规则,所述VMM根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述强制访问规则的N个访问指令,包括:所述VMM根据所述K个访问指令中每一个访问指令的主体和所述主体安全规则,确定所述K个访问指令中每一个访问指令的主体的安全等级;所述VMM根据所述K个访问指令中每一个访问指令的客体和所述客体安全规则,确定所述K个访问指令中每一个访问指令的客体的安全等级;所述VMM根据所述主体的安全等级和所述客体的安全等级,判断所述K个访问指令中每一个访问指令是否符合所述安全判断规则,将符合所述安全判断规则的访问指令确定为所述N个访问指令中的一个。
其中,所述主体安全规则、所述客体安全规则和所述安全判断规则分别为独立设计的,所述主体安全规则中包括主体及主体的安全等级的对应关系,所述客体安全规则中包括客体及客体的安全等级的对应关系,所述安全判断规则中包括访主体的安全等级、客体的安全等级及主体的安全等级-客体的安全等级判断结果的对应关系。在一种实现方式中,所述主体安全规则、所述客体安全规则和所述安全判断规则分别对应三张表。
进一步地,为了提高查询强制访问规则的命中率,所述强制访问规则中设置有主体缓存表和客体缓存表,所述主体缓存表用于存储根据用户最近L次访问指令的主体及主体的安全等级的对应关系,所述客体缓存表用于存储根据用户最近L次访问指令的客体及客体的安全等级的对应关系,所述VMM根据所述K个访问指令中每一个访问指令的主体和所述主体安全规则,确定所述K个访问指令中每一个访问指令的主体的安全等级,包括:对于所述K个访问指令中每一个访问指令的主体,所述VMM根据所述主体缓存表中主体及主体的安全等级的对应关系,确定所述K个访问指令中每一个访问指令的主体的安全等级;所述VMM根据所述K个访问指令中每一个访问指令的客体和所述客体安全规则,确定所述K个访问指令中每一个访问指令的客体的安全等级,包括:对于所述K个访问指令中每一个访问指令的客体,所述VMM根据所述客体缓存表中客体及客体的安全等级的对应关系,确定所述K个访问指令中每一个访问指令的客体的安全等级。
在第一方面的另一种可能的实现方式中,M为大于或等于2的正整数,所述M个访问指令包括从第一虚拟机获取的P个访问指令和从第二虚拟机获取的S个访问指令,其中,P和S均为正整数,P与S的和小于或等于M,所述第一虚拟机对应的强制访问规则包括第一主体安全规则、第一客体安全规则和第一安全判断规则,所述第二虚拟机对应的强制访问规则包括第二主体安全规则、第二客体安全规则和第二安全判断规则,所述第一安全判断规则和所述第二安全判断规则相同;所述VMM根据所述M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,包括:所述VMM根据所述第一主体安全规则和所述第一客体安全规则,将所述P个访问指令中主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到Q个访问指令,其中,Q为小于或等于P的正整数;所述VMM根据所述第二主体安全规则和所述第二客体安全规则,将所述S个访问指令中主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到T个访问指令,其中,T为小于或等于S的正整数;所述VMM将所述Q个访问指令和所述T个访问指令中,主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;所述VMM根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述第一安全判断规则的N个访问指令,其中,N为小于或等于K的正整数。
在一种具体的实现中,可以通过内核态的前端驱动和IO环实现获取访问指令。所述虚拟机监控器VMM从虚拟机获取用户下发的M个输入输出访问指令,包括:所述VMM通过IO环从所述虚拟机的内核态的前端驱动中获取所述M个访问指令。
在一种具体的实现中,可以通过后端驱动实现对物理设备的访问。所述VMM访问所述N个访问指令中每一个访问指令的客体对应的物理设备,包括:所述VMM通过后端驱动访问所述N个访问指令中每一个访问指令的客体对应的物理设备。
应理解,在一种实现方式中,该方法应用于物理主机,所述物理主机包括硬件层、运行在所述硬件层之上的VMM,和运行在所述VMM上的至少一个虚拟机。
第二方面提供了一种强制访问控制装置,包括获取模块,用于从至少一个虚拟机获取用户下发的M个访问指令,所述M个访问指令中每一个访问指令包括访问的主体和访问的客体,其中,M为正整数;判断模块,用于根据所述获取模块获取的所述M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,其中,N为小于或等于M的正整数;访问模块,用于访问所述判断模块确定的所述N个访问指令中每一个访问指令的客体对应的硬件层设备。
应理解,第二方面的强制访问控制装置的各个模块可以用于实现第一方面的强制访问控制方法,此处不再赘述。
在一种具体的实现方式中,第二方面的强制访问控制装置为虚拟机监控器VMM。
在一种具体的实现方式中,访问模块可以为虚拟机监控器VMM的后端驱动。
第三方面提供了一种物理主机,所述物理主机包括硬件层、运行在所述硬件层之上的虚拟机监控器VMM,和运行在所述VMM上的至少一个虚拟机,所述VMM用于执行如第一方面及相应的实现方式所述的强制访问控制方法。
本发明中,VMM也可以称为Hypervisor。
本发明中,访问指令可以包括读请求和写请求中的至少一种。或者,访问指令可以包括输入访问指令和输出访问指令中的至少一种。
在本发明中,强制访问控制的主体可以是虚拟机的用户或进程,客体可以是文件或数据。
基于上述技术方案,本发明的强制访问控制方法、装置和物理主机,基于VMM管理虚拟机内部的强制访问控制,由VMM获取并实现虚拟机的访问指令,使得强制访问控制的实现更加灵活,并且操作***无需修改,***兼容性更好。本发明的强制访问控制的方法性能开销更小,更便于不同操作***的多虚拟机的大批量强制访问控制的下发和部署。
本发明实施例的强制访问控制方法、装置和物理主机可以对同一个虚拟机下发的多个访问,根据访问的主体的安全等级和客体的安全等级是否相同进行合并,以减少判断访问指令是否符合强制访问规则的次数,能够加速VMM判断访问指令是否符合强制访问规则。
本发明实施例的强制访问控制方法、装置和物理主机可以对同一个虚拟机下发的多个访问,根据访问的主体主体和客体是否相同进行合并,以减少判断访问指令是否符合强制访问规则的次数,能够加速VMM判断访问指令是否符合强制访问规则。
本发明实施例的强制访问控制方法、装置和物理主机可以对主体安全规则、客体安全规则和安全判断规则分别独立设计,能够使得VMM判断访问指令时查找相应规则更高效,从而加速VMM判断访问指令是否符合强制访问规则。
本发明实施例的强制访问控制方法、装置和物理主机可以对经常使用的主体安全规则和客体安全规则设置缓存表,优先在缓存表中查找主体的安全等级和客体的安全等级,能够使得VMM判断访问指令时查找相应规则更高效,从而加速VMM判断访问指令是否符合强制访问规则。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是虚拟机架构的示意图。
图2是本发明一个实施例的强制访问控制方法的示意性流程图。
图3是本发明一个实施例的强制访问控制模块的示意图。
图4是本发明另一个实施例的强制访问控制方法的示意性流程图。
图5是本发明一个实施例的强制访问控制模块的示意性框图。
图6是本发明一个实施例的强制访问控制流程的示意图。
图7是本发明一个实施例的动态调整主体缓存表和客体缓存表的算法的示意图。
图8是本发明一个实施例的强制访问控制装置的示意性框图。
图9是本发明一个实施例的物理主机的示意性框图。
图10是容器虚拟化的***架构的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的方法、装置和物理主机可以应用于包括多种操作***的虚拟机架构中。例如,可以应用于包括Linux、Windows和Unix等一种或多种操作***的虚拟机架构中,虚拟机架构中还可以包括其它一些操作***,本发明实施例对此不作限定。
本发明实施例涉及访问控制,尤其是涉及强制访问控制,下面对相关概念进行简要的介绍。
访问控制是信息安全保障机制的核心,它是实现数据保密性和完整性机制的主要手段。访问控制是为了限制访问指令中访问的主体(或称为发起者,是一个主动的实体,包括例如用户、进程、服务等),对访问的客体(需要保护的资源)的访问权限,从而使计算机***在合法范围内使用。访问控制机制决定用户及代表一定用户利益的程序能做什么,以及做到什么程度。访问控制作为提供信息安全保障的主要手段,及最为突出的安全机制被广泛地应用于防火墙、文件访问、虚拟专用网络(Virtual Private Network,VPN)及物理安全等多个方面。
访问控制根据实现的基本理念分有以下两种:1)强制访问控制(MandatoryAccess Control,MAC);2)自主访问控制(Discretionary Access Control,DAC)。下面主要介绍强制访问控制的相关定义和原理。
MAC源于对信息机密性的要求以及防止特洛伊木马之类的攻击。MAC通过无法回避的存取限制来阻止直接或间接的非法入侵。在强制访问控制下,用户(或其他主体)与文件(或其他客体)都被标记了固定的安全属性(例如安全等级、访问权限等)。在每次访问发生时,***检测安全属性以便确定一个用户是否有权访问该文件。安全属性是强制性的,由安全管理员(Security Officer)分配,用户或用户进程不能改变自身或其它主体/客体的安全属性。
MAC起初主要用于军方的应用中,并且通常与DAC结合使用,主体只有通过了DAC和MAC的检查后,才能访问某个客体。由于MAC对客体施加了更严格的访问控制,因而可以防止特洛伊木马之类的程序偷窃,同时MAC对用户意外泄漏机密信息也有预防能力。
强制访问控制是“强加”给访问的主体的,即***强制主体服从访问控制。MAC的主要特征是对所有主体及其所控制的客体(例如进程、文件、段、设备)实施强制访问控制。强制访问控制的思想是每个主体都有既定的安全等级,每个客体也都有既定的安全等级,主体对客体是否执行特定的操作取决于两者安全等级之间的关系。
一种具体的实现中,所有主体(例如用户或进程等等)和客体(例如文件、数据等)都被分配了一个安全等级。例如,一种安全等级可以包括最高秘密级(Top Secret)、秘密级(Secret)、机密级(Confidential)及无级别级(Unclassified)。其级别为T>S>C>U,***根据访问的主体和客体的安全等级来决定是否具有访问权限。
虚拟化技术越来越多的应用于信息、通信和技术(Information CommunicationTechnology,ICT)的各行各业。
其中,虚拟机监控器(Virtual Machine Monitor,VMM)是所有虚拟化技术的核心。本发明实施例中的VMM是一种运行在物理服务器和操作***之间的中间软件层。VMM可以允许多个操作***和应用共享一套基础物理硬件。因此,VMM也可以看作是虚拟环境中的“元”操作***,它可以协调访问服务器上的所有硬件层设备和虚拟机。VMM也可以称为Hypervisor,其基本功能是非中断地支持多工作负载迁移的能力。当服务器启动并执行VMM时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作***。
本发明实施例正是基于虚拟化技术以及VMM来实现强制访问控制的。
下面结合附图,详细说明本发明实施例的强制访问控制方法、装置和物理主机。
本发明实施例基于VMM来管理虚拟机内部的强制访问控制。由于VMM本身用于获取并执行虚拟机内部的访问指令,因此,强制访问控制在VMM中实现可以更加灵活,并且操作***无需修改,***兼容性更好。这里,访问指令可以包括读请求和/或写请求。换而言之,访问指令可以包括输入访问指令和/或输出访问指令。
图1是虚拟机架构的示意图。如图1所示,虚拟机包括用户态和内核态。用户在虚拟机的用户态发出各种指令,用户发出的指令从虚拟机的用户态生成下发到虚拟机的内核态。其中,虚拟机架构(或***)中可以包括一个或多个虚拟机。虚拟机之下为与其通信连接的VMM,用于管理上述一个或多个虚拟机。VMM之下为与其通信连接的硬件层设备。由此,在虚拟机架构中,一个或多个虚拟机通过VMM可以访问硬件层设备。相对于现有的修改内核态的程序而实现的强制访问控制技术,本发明实施例的对主体和客体的强制访问控制由内核态下移到VMM中。
在本发明实施例中,强制访问控制的主体可以是虚拟机的用户或进程,客体可以是文件或数据。应理解,本文中访问指令也可以称为“访问”。
图2是本发明实施例的强制访问控制方法200的示意性流程图,该方法200包括:
S201,VMM 22从至少一个虚拟机(例如,虚拟机24和虚拟机26)获取用户下发的M个访问指令,该M个访问指令中每一个访问指令包括访问的主体和访问的客体,其中,M为正整数,该M个访问指令可以是用户从虚拟机24的用户态生成并下发到虚拟机24的内核态的。
其中,在一种具体的实现中,VMM从虚拟机获取用户下发的M个访问指令,可以包括:VMM通过IO环从虚拟机的内核态的前端驱动中获取M个访问指令。IO环为虚拟机与VMM沟通的桥梁,IO环每次从虚拟机内核态的前端驱动向VMM下发一个IO环请求。一个IO环请求可以包括M个访问指令,M个访问指令中每一个访问指令包括一个访问的主体和一个访问的客体。图2中仅示意性的示出了虚拟机24和虚拟机26,***中除虚拟机24和虚拟机26以外,还可以包括更多其它的虚拟机,VMM 22还可以从其它虚拟机获取访问指令,本发明实施例对此不作限定。
S202,VMM 22根据M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,其中,N为小于或等于M的正整数。
其中,强制访问规则可以直接包括主体、客体以及主体-客体判断结果的对应关系;强制访问规则也可以包括主体、主体的安全等级、客体和客体的安全等级的对应关系,以及安全判断规则,安全判断规则包括主体的安全等级、客体的安全等级和主体的安全等级-客体的安全等级判断结果的对应关系;强制访问规则还可以包括主体和主体的安全等级的对应关系(即主体安全规则),客体和客体的安全等级的对应关系(即客体安全规则),以及上述安全判断规则。强制访问规则还可以有其它设计,本发明实施例对此不作限定。
在强制访问规则(例如BLP-info)内可以按照主体、客体及主体-客体判断结果建立数据分块索引,实现快速匹配查询。当***中包括多个虚拟机时,不同虚拟机对相同的主体或相同的客体可能有不同的安全等级,或者不同虚拟机对主体和客体的安全等级的判断规则不同,因此,强制访问规则中还可以增加虚拟机的字段。
当***中包括多个虚拟机时,针对强制访问规则,可以按虚拟机业务或操作***类型等制定配置模板。例如,Linux Apache服务器强制访问规则模板、Windows Exchange服务器强制访问规则模板等。用户或运维人员一般不需制定具体的规则,只需要按类型进行模板部署即可。
根据M个访问指令中每一个访问指令的主体和客体,确定符合强制访问规则的N个访问指令的具体方式可以有多种,在下文中会分别进行详细描述。
S203,VMM 22访问N个访问指令中每一个访问指令的客体对应的硬件层设备(或者称为“物理设备”)。对于M个访问指令中不符合强制访问规则的访问指令,返回失败。具体而言,当访问的主体和客体符合强制访问规则时,VMM 22访问客体对应的硬件层设备28,该访问成功后,VMM 22将访问结果返回虚拟机24。当访问的主体和客体不符合强制访问规则时,则该访问指令直接返回失败。
应理解,本发明实施例中,被访问的硬件层设备可以与虚拟机监控器VMM和至少一个虚拟机集成在一台物理主机上,也可以存在于其他的物理主机上。
本发明实施例的方法基于VMM管理虚拟机内部的强制访问控制。由VMM获取并执行虚拟机的访问指令,使得强制访问控制的实现更加灵活,并且操作***无需修改,***兼容性更好。
本发明实施例的强制访问控制方法从虚拟机的内核态获取访问指令,以及确定符合强制访问规则的访问指令在一个实施例中通过VMM中的一个强制访问控制模块来实现。可以称这个模块为Mandatory Access Control Module(MACM)。该模块具体可以设置在VMM的位置如图3所示,即MACM可以处于虚拟机的IO处理机制中IO环与后端驱动之间的位置。
在该结构中,强制访问控制的流程400具体可以如图4所示。
S401,用户由虚拟机的用户态的进程下发访问指令,访问指令可以有多个,每一个访问指令中包括访问的主体和访问的客体。
S402,访问指令由虚拟机的用户态转至虚拟机的内核态。
S403,虚拟机的前端驱动获取访问指令,并通知IO环其接收到了访问指令。具体地,在前端驱动的数据结构中可以增加访问的主体的变量char*Subject和访问的客体的变量char*Object。前端驱动分别将用户态的进程名和访问文件名填入变量Subject和变量Object中。
S404,IO环接收前端驱动的通知,将访问指令通过IO环请求发送至MACM。具体地,在IO环请求的数据结构中也相应地增加访问指令的主体的变量char*Subject和访问指令的客体的变量char*Object。由此,IO环请求分别将前端驱动传入变量Subject中的进程名和变量Object中的访问文件名传输至MACM。
S405,MACM中可以包括获取单元、判断单元以及存储单元。其中,获取单元可以用于从虚拟机内核态的前端驱动获取IO环请求。判断单元用于判断IO环请求中访问指令的主体和客体是否符合预设的强制访问规则。根据M个访问指令中每一个访问指令的主体和客体,确定除符合强制访问规则的N个访问指令。存储单元用于存储和管理强制访问规则的信息,该强制访问规则具体地可以为Bell-La Padula(BLP)模型信息(BLP-info)。对于主体和客体符合强制访问规则的访问指令,执行S406;否则,对于主体和客体不符合强制访问规则的访问指令,执行S407。
S406,MACM向后端驱动下发指令,指示后端驱动访问N个访问指令中每一个访问指令的客体对应的硬件层设备。该访问成功后,后端驱动将访问结果逐级返回虚拟机的用户态。
S407,对于主体和客体不符合强制访问规则的访问指令,返回失败。
为了减少判断IO环请求中访问的主体和客体是否符合强制访问规则时***所花费的性能开销,加快判断的速度,可以在判断单元中增设一个加速子单元,该加速子单元可以与获取单元和存储单元通信。即如图5所示,MACM包括获取单元52、存储单元54和判断单元56(包括加速子单元562)。
加速子单元562可以通过合并算法和/或缓冲技术,达到加速访问控制性能的目标。一个或多个虚拟机下发批量的访问时,加速单元可以根据各个访问的主体和客体进行访问的合并,以减少判断次数。同时,加速子单元562可以对常用的强制访问规则进行缓存(例如设置缓存表),优先在该缓存中进行判断,从而可以避免高频率地对存储单元中的强制访问规则进行全局搜索。
其中,合并算法具体可以如下:
在相应的单元(例如加速子单元)中设置缓冲区,该缓冲区可以用于存储一定时间内产生的IO环请求中的访问,或者一定次数的IO环请求中的访问。按照缓冲算法对一个或多个虚拟机下发的IO环请求中的访问进行存储。存储时可以以表的结构存储,例如采用双向链表结构实现,key为键值,value为主体-客体对,在进行合并时用哈希(Hash)表来查找具体被命中的缓冲(cache)块。
在进行合并计算时,可以根据典型的“单进程多文件”和“多进程单文件”的访问模型,将一个或多个虚拟机中主体的安全等级和客体的安全等级相同的访问的判断合并为一次判断。具体地,可以通过“单进程多文件”为进程簇,“多进程单文件”为文件簇,快速的实现多个访问的合并。
一个虚拟机(例如第一虚拟机)中多个访问的合并可以包括同一进程对同一文件的访问的合并,还可以包括同一进程对同一安全等级的多个文件的访问的合并,还可以包括同一安全等级的多个进程对同一文件的访问的合并,还可以包括同一安全等级的多个进程对同一安全等级的多个文件的访问的合并。
对于同一个虚拟机下发的多个访问,可以根据访问的主体和客体是否相同进行合并。具体而言,M为大于或等于2的正整数,该M个访问指令均是从第一虚拟机获取的,S202,VMM根据该M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,包括:VMM将该M个访问指令中的主体相同且客体也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;VMM根据该K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从该K个访问指令中确定符合该强制访问规则的N个访问指令,其中,N为小于或等于K的正整数。
在一个具体的例子中,两个均为进程httpd对a.xml的访问指令可以合并为一个访问指令,仅进行一次强制访问规则的判断。
应理解,如果***中包括多个虚拟机,且多个虚拟机对应的强制访问规则相同,则可以依照上述类似的合并方式,对多个虚拟机的多个访问进行合并,本发明实施例对此不作限定。
对于同一个虚拟机下发的多个访问,可以根据访问的主体的安全等级和客体的安全等级是否相同进行合并。具体地,M为大于或等于2的正整数,该M个访问指令均是从第一虚拟机获取的,S202VMM根据该M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,包括:VMM将该M个访问指令中的主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;VMM根据该K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从该K个访问指令中确定符合该强制访问规则的N个访问指令,其中,N为小于或等于K的正整数。
在一个具体的例子中,两个访问指令,进程httpd分别对a.xml和c.xml进行访问,a.xml和c.xml的安全等级都是S级,则可以合并为进程httpd对S级文件的一个访问指令,仅进行一次强制访问规则的判断。在另一个具体的例子中,两个访问指令,进程httpb和httpd的安全等级都是S级,均对a.xml进行访问,则可以合并为S级进程对文件a.xml的一个访问指令,仅进行一次强制访问规则的判断。在另一个具体的例子中,两个访问指令,进程httpb对a.xml进行访问和进程httpd对c.xml进行访问,httpb、httpd、a.xml和c.xml的安全等级都是S级,则可以合并为S级进程对S级文件的一个访问指令,仅进行一次强制访问规则的判断。
应理解,如果***中包括多个虚拟机,且多个虚拟机对应的强制访问规则相同,则也可以依照上述类似的合并方式,对多个虚拟机的多个访问进行合并,本发明实施例对此不作限定。在一个具体的例子中,虚拟机A的进程httpd是S级进程,其访问的文件是S级文件;虚拟机B的进程SQLServer也是S级进程,其访问的文件也是S级文件;则可以将虚拟机A和虚拟机B的访问合并为S级主体对S级客体的一个访问,仅进行一次强制访问规则的判断。
针对上述两种可能的实现方式,为了较快的进行根据强制访问规则的判断。强制访问规则可以设计如下:该强制访问规则包括主体安全规则、客体安全规则和安全判断规则,该VMM根据该K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从该K个访问指令中确定符合该强制访问规则的N个访问指令,包括:该VMM根据该K个访问指令中每一个访问指令的主体和该主体安全规则,确定该K个访问指令中每一个访问指令的主体的安全等级;该VMM根据该K个访问指令中每一个访问指令的客体和该客体安全规则,确定该K个访问指令中每一个访问指令的客体的安全等级;该VMM根据该主体的安全等级和该客体的安全等级,判断该K个访问指令中每一个访问指令是否符合该安全判断规则,将符合该安全判断规则的访问指令确定为该N个访问指令中的一个。
其中,主体安全规则、客体安全规则和安全判断规则分别为独立设计的,主体安全规则中包括主体及主体的安全等级的对应关系,客体安全规则中包括客体及客体的安全等级的对应关系,安全判断规则中包括访主体的安全等级、客体的安全等级及主体的安全等级-客体的安全等级判断结果的对应关系。在一种实现方式中,主体安全规则、客体安全规则和安全判断规则分别对应三张表。
具体而言,强制访问规则的一种高效的设计可以包括主体和主体的安全等级的对应关系(即主体安全规则),客体和客体的安全等级的对应关系(客体安全规则)以及安全判断规则,其中,安全判断规则包括主体的安全等级、客体的安全等级和主体的安全等级-客体的安全等级判断结果。假设安全等级有4级,则安全判断规则只需要保存4*4=16个判断规则。VMM将所有的访问进行强制访问规则的判定后统一返回结果。
应理解,上文中安全判断规则仅为举例,当考虑读访问和写访问两种访问方式的判断规则不同时,安全判断规则可以保存32个判断规则。当安全等级采用其它方式制定时,安全判断规则还可以有其它的制定方式,本发明实施例对此不作限定。
在具体地进行访问的合并时,可以综合考虑合并算法和强制访问规则的缓存设计。同时,还可以考虑虚拟机的IO环的访问模型,从而实现最优的强制访问控制的加速。
以一种具体的虚拟机监控器XEN虚拟化IO环结构实现为例(其它虚拟化IO环结构类似),存储前后端的一个IO环默认为一个page,其中每个page即每个IO环包括多个访问指令。每个访问指令的大小最大为44k。IO环的数据结构本身占用112字节,扣除IO环的一些管理数据结构,一个IO环能存放的访问指令的个数为32个(因为IO环的实现中要求元素个数以2的幂次方对齐,一个IO环中包括的访问指令的个数为2的5次方,为32)。存储前后端的队列深度为32,最大的访问指令的大小为44k。因此,一次IO环请求最大访问量为44k*32=1.37M。如果IO业务模型为大块文件(大于44k)时,则大块文件将被拆分为多个44k的小块进行访问。
除了采用合并算法,还可以采用缓存技术,对常用的强制访问规则设置缓存表,优先在该缓存表中进行查找,以加快判断速度。
设计缓存表时,需要考虑强制访问规则中的主体、客体和安全判断规则,当***中包括多个虚拟机时,还需要考虑虚拟机间的强制访问规则的差异因素。可以将所有虚拟机的主体、客体和安全判断规则组成一个缓存表,将上次IO环请求的访问信息作为缓存内容。但是,该方案存在以下几个问题需要解决。
1、当IO业务模型是大块文件(大于44k)时,需要将大块文件进行分块后访问。IO环请求中的多个访问可能具有完全相同的主体和客体。按照上述方案设计缓存表,则此时的缓存表中都是上次IO环请求的多个访问的信息,该多个访问的信息可能具有完全相同的主体信息和客体信息。因此,按照上述方案设计缓存表会导致此次IO环请求的访问的命中失败的概率增大,在缓存表命中失败时需要全局搜索整个强制访问规则,效率低下。
2、当IO业务模型是小块文件(小于44K)时,一次IO环请求的多个访问中主体和客体均相同的概率较小。按照上述方案设计缓存表,则此时的缓存表中仍存在主体相同、客体不同的多个访问,或者主体不同、客体相同的多个访问。当此次IO环请求的访问在缓存表命中失败时,仍需要全局搜索整个强制访问规则。
3、对于同一物理主机对应多个虚拟机的情况,存在对相同主体或相同客体进行判定的情况,按照上述方案设计缓存表,使得不同虚拟机间需要做出部分冗余的搜索和判断。
综上,为避免多次进行全局搜索,针对上述问题1,本发明实施例为强制访问规则设置缓存表,该缓存表可以将主体、主体的安全等级、客体和客体的安全等级的对应关系设置为主客体缓存表,将安全判断规则设置为安全判断缓存表。两个缓存表均记录前N次IO环请求的多个访问的信息,并且两个缓存表将其中重复的记录进行合并。由此,主客体缓存表中不包括重复记录,主客体缓存表的命中概率较大。两个缓存表,尤其是安全判断缓存表的大小较小,可以安全判断规则所占用的缓存空间。
在一个具体的例子中,依照上述方式设计的缓存表,最多可将一次IO环请求的32个访问合并成主体和客体完全相同的1条访问,可以只查询一次安全判断规则。
针对上述问题2,进一步地可以将主体和主体的安全等级的对应关系,以及客体和客体的安全等级的对应关系进行分离设计,设计为主体缓存表和客体缓存表。将主体缓存表中的重复项进行合并,从而可以避免主体不同、客体相同的多个访问的情况下,重复搜索主体和主体的安全等级的对应关系的问题。同理,可以将客体缓存表中的重复项进行合并,可以避免主体相同、客体不同的多个访问的情况下,重复搜索客体和客体的安全等级的对应关系的问题。
在一个具体的例子中,最多可将一次IO环请求的32个访问的32个主体合并(例如32条访问的主体均相同,合并成一次查询主体缓存表),32条访问的客体的32个客体合并(例如32条访问的客体中有不同的2个客体,合并成2次查询客体缓存表)。
换而言之,为了提高查询强制访问规则的命中率,该强制访问规则中设置有主体缓存表和客体缓存表,该主体缓存表用于存储根据用户最近L次访问指令的主体及主体的安全等级的对应关系,该客体缓存表用于存储根据用户最近L次访问指令的客体及客体的安全等级的对应关系,该VMM根据该K个访问指令中每一个访问指令的主体和该主体安全规则,确定该K个访问指令中每一个访问指令的主体的安全等级,包括:对于该K个访问指令中每一个访问指令的主体,该VMM根据该主体缓存表中主体及主体的安全等级的对应关系,确定该K个访问指令中每一个访问指令的主体的安全等级;该VMM根据该K个访问指令中每一个访问指令的客体和该客体安全规则,确定该K个访问指令中每一个访问指令的客体的安全等级,包括:对于该K个访问指令中每一个访问指令的客体,该VMM根据该客体缓存表中客体及客体的安全等级的对应关系,确定该K个访问指令中每一个访问指令的客体的安全等级。
其中,缓存表的设计可以非常灵活。一种可行的设计方案是,对每一个虚拟机分别设置主体缓存表和客体缓存表,其中,主体缓存表和客体缓存表分别是对最近L次访问指令的主体和主体的安全等级以及客体及客体的安全等级进行提取得到的。另一种可行的设计方案是,当多个虚拟机的安全判定规则相同时,将多个虚拟机中相同的主体和主体的安全等级的对应关系或者客体和客体的安全等级进行合并。所谓安全判定规则相同是指,两个虚拟机对主体的安全等级相同且客体的安全等级相同的访问指令作出的判断结果是相同的。
将安全判断规则设计在最后环节,多个虚拟机中,主体的安全等级和客体的安全等级完全相同的多个访问,只需要判断一次安全判断规则,判断后逐层返回判断结果。应理解,当安全判断规则的条数较多时,也可以设置安全判断缓存表,安全判断缓存表也是对最近L次访问指令进行提取得到的。
在一个具体的例子中,假设安全等级有4级,将所有虚拟机中的大量访问(例如,10000~50000次访问合并为16次判断,然后返回判断结果)。
根据上述缓存表设计分析,由于存在大量的主体相同客体不同,或主体不同客体相同的访问。将主体、客体和安全判断规则分类进行缓存设计则可以有效的减少缓存表的冗余信息,提高访问的命中率。优选地,如表一至表三所示,缓存表设计采用三类缓存表,包括主体缓存表、客体缓存表和安全判断缓存表。
表一主体缓存表
主体 主体安全等级
httpd S
表二客体缓存表
客体 客体安全等级
a.xml S
b.xml T
表三安全判断缓存表
主体安全等级 客体安全等级 判断结果
S S Y
S T N
应理解,表一至表三仅是示意性的,各缓存表中还可以包括虚拟机标识等字段对不同的虚拟机的情况加以区分。各缓存表中还可以包括其它的必要字段,本发明实施例不作限定。另外,主体安全规则、客体安全规则和安全判断规则也可以如表一至表三的格式参在,各字段的设计也可以与表一至表三类似,但本发明实施例不限于此。
在一种优选的实施方式中,M为大于或等于2的正整数,该M个访问指令包括从第一虚拟机获取的P个访问指令和从第二虚拟机获取的S个访问指令,其中,P和S均为正整数,P与S的和小于或等于M,该第一虚拟机对应的强制访问规则包括第一主体安全规则、第一客体安全规则和第一安全判断规则,该第二虚拟机对应的强制访问规则包括第二主体安全规则、第二客体安全规则和第二安全判断规则,该第一安全判断规则和该第二安全判断规则相同;该VMM根据该M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,包括:该VMM根据该第一主体安全规则和该第一客体安全规则,将该P个访问指令中主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到Q个访问指令,其中,Q为小于或等于P的正整数;该VMM根据该第二主体安全规则和该第二客体安全规则,将该S个访问指令中主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到T个访问指令,其中,T为小于或等于S的正整数;该VMM将该Q个访问指令和该T个访问指令中,主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;该VMM根据该K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从该K个访问指令中确定符合该第一安全判断规则的N个访问指令,其中,N为小于或等于K的正整数
在一种具体的实现中,可以通过内核态的前端驱动和IO环实现获取访问指令。S201虚拟机监控器VMM从虚拟机获取用户下发的M个输入输出访问指令,包括:该VMM通过IO环从该虚拟机的内核态的前端驱动中获取该M个访问指令。
具体而言,针对上述问题3,可以对多个虚拟机下发的多个访问指令分层次进行合并。例如,虚拟机A和虚拟机B的安全判定规则是相同的,所谓安全判定规则相同是指,两个虚拟机对主体的安全等级相同且客体的安全等级相同的访问指令作出的判断结果是相同的。对于虚拟机A,有两个访问指令,访问指令1的主体为进程1,客体为文件1;访问指令2的主体为进程2,客体为文件2;进程1、进程2、文件1和文件2的安全等级均为S级。对于虚拟机B,有两个访问指令,访问指令3的主体为进程3,客体为文件3;访问指令4的主体为进程4,客体为文件4;进程3、进程3、文件4和文件4的安全等级均为S级。
对于虚拟机A,将两个访问合并为一个访问,合并后的访问,其形式可以为[主体安全等级为S(主体包括进程1,进程2),客体安全等级为S(客体包括文件1,文件2)]。对于虚拟机B,将两个访问合并为一个访问,合并后的访问,其形式可以为[主体安全等级为S(主体包括进程3,进程4),客体安全等级为S(客体包括文件3,文件4)]。当针对虚拟机A和虚拟机B,S级主体对S级客体的访问的安全判断结果相同时,例如安全判断结果均为Y(可访问)时,将虚拟机A和虚拟机B的访问进行进一步的合并。合并的结果可以为[主体安全等级为S(主体包括进程1,进程2,进程3,进程4),客体安全等级为S(客体包括文件1,文件2,文件3,文件4)]。
由此,将虚拟机A和虚拟机B的4个访问,合并为一个访问,只需进行一次判断。
图6示出了本发明一个实施例的强制访问控制流程600的示意图。流程600可以包括下述步骤。
S601中,获得多个虚拟机通过IO环同时下发的多个访问指令。
S602,在VMM中,首先根据多个访问指令的主体和客体,在单个虚拟机对应的主体缓存表和客体缓存表中搜索。确定IO环中的每一个访问是否命中主体缓存表和客体缓存表。命中时执行S603,未命中时执行S604。
S603,对单个虚拟机的多个访问指令进行合并。
S604,未命中时,转而在BLP-info中进行全局搜索,根据搜索的结果执行访问的合并。
S605,根据S603或S604合并得到的结果,对多个虚拟机的多个访问再次进行合并。
S606,根据安全判断规则判断再次合并后的访问,将判断结果统一逐层返回。
完成判断后,根据判断结果可以返回失败,或者执行对硬件层设备的访问,此处不再进行赘述。
在设计主体缓存表和客体缓存表时,为了增加缓存表的命中概率,可以综合考虑:主体、客体访问时间(最近访问的主体、客体优先缓存);访问频率(访问频率高的主体、客体优先缓存);主体、客体分别缓存的数目等。因此,在设计缓存算法的主体缓存表和客体缓存表时,将主体、客体访问时间、访问频率、缓存数目综合考虑。根据如图7所示的算法700动态调整主体缓存表和客体缓存表,实现缓存因素的动态调整,达到最佳的缓存命中效果。算法700可以包括:
S701,将缓存结构(包括主体缓存表和客体缓存表)的总大小设计为可以容纳N个IO环的大小,其中N为大于或等于2的整数。其中,主体缓存表的字段包括主体、安全等级和访问频率;客体缓存表的字段包括客体、安全等级和访问频率。
S702,主体缓存表和客体缓存表的记录均分为两部分。前部分为最近M次IO环访问的主体或客体的相关记录,其中,M为大于1并且小于N的整数;后部分为N次IO环访问的最高频率访问的主体或客体的相关记录。其中,前部分和后部分均按照访问频率从高到低排序。
S703,当当前的访问的主体和客体分别命中主体缓存表和客体缓存表时,缓存结构不变,主体缓存表和客体缓存表中被命中的主体和客体的访问频率分别加1,缓存表重新排序。
S704,当当前的访问的主体命中主体缓存表,客体未命中客体缓存表时,主体缓存表中被命中的主体的访问频率加1,主体缓存表的总数目减1,客体缓存表的总数目加1。
S705,当当前的访问的主体未命中主体缓存表,客体命中客体缓存表时,客体缓存表中被命中的客体的访问频率加1,客体缓存表的总数目减1,主体缓存表的总数目加1。
S706,当当前的访问的主体和客体均未命中主体缓存表和客体缓存表时,判断与命中失败的访问的主体相同的最近一次访问的间隔次数K。如果K小于N,则表明可以通过增加最近访问次数的缓存量提高缓存命中概率,M设置的值加1;否则,可以增加最高频率访问的缓存量,M设置的值减1。
本发明实施例的强制访问控制的方法,基于VMM管理虚拟机内部的强制访问控制,由VMM获取并实现虚拟机内部的访问指令,使得强制访问控制的实现更加灵活,并且适配Windows、Linux虚拟机操作***,操作***无需修改,***兼容性好。本发明实施例的强制访问控制的方法性能开销更小,更便于不同操作***的多虚拟机的大批量强制访问控制的下发和部署。
应理解,本发明实施例的方法可以应用于物理主机,该物理主机包括硬件层、运行在所述硬件层之上的VMM,和运行在所述VMM上的至少一个虚拟机。
还应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上文中结合图1至图7详细描述了根据本发明实施例的强制访问控制方法,下面将结合图8描述根据本发明实施例的强制访问控制装置。
图8示出了本发明实施例的装置800。如图8所示,装置800可以包括:
获取模块802,用于从至少一个虚拟机获取用户下发的M个输入输出访问指令,该M个访问指令中每一个访问指令包括访问的主体和访问的客体,其中,M为正整数;
判断模块804,用于根据该获取模块802获取的该M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,其中,N为小于或等于M的正整数;
访问模块806,用于访问该判断模块804确定的该N个访问指令中每一个访问指令的客体对应的硬件层设备。
其中,M个访问指令可以是该用户从该虚拟机的用户态生成并下发到该虚拟机的内核态的。
本发明实施例的VMM管理虚拟机内部的强制访问控制,由VMM获取并实现虚拟机的访问指令,使得强制访问控制的实现更加灵活,并且操作***无需修改,***兼容性更好。
应理解,本发明实施例的获取模块802和判断模块804的功能之和可以对应上文中的强制访问控制模块MACM的功能。
可选地,作为一个实施例,M为大于或等于2的正整数,该M个访问指令均是从第一虚拟机获取的,该判断模块804具体用于:将该M个访问指令中的主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;根据该K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从该K个访问指令中确定符合该强制访问规则的N个访问指令,其中,N为小于或等于K的正整数。
可选地,作为一个实施例,M为大于或等于2的正整数,该M个访问指令均是从第一虚拟机获取的,该判断模块804具体用于:将该M个访问指令中的主体相同且客体也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;根据该K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从该K个访问指令中确定符合该强制访问规则的N个访问指令,其中,N为小于或等于K的正整数。
可选地,作为一个实施例,该强制访问规则包括主体安全规则、客体安全规则和安全判断规则,该判断模块704根据该K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从该K个访问指令中确定符合该强制访问规则的N个访问指令,包括:根据该K个访问指令中每一个访问指令的主体和该主体安全规则,确定该K个访问指令中每一个访问指令的主体的安全等级;根据该K个访问指令中每一个访问指令的客体和该客体安全规则,确定该K个访问指令中每一个访问指令的客体的安全等级;根据该主体的安全等级和该客体的安全等级,判断该K个访问指令中每一个访问指令是否符合该安全判断规则,将符合该安全判断规则的访问指令确定为该N个访问指令中的一个。
可选地,作为一个实施例,M为大于或等于2的正整数,该M个访问指令包括从第一虚拟机获取的P个访问指令和从第二虚拟机获取的S个访问指令,其中,P和S均为正整数,P与S的和小于或等于M,该第一虚拟机对应的强制访问规则包括第一主体安全规则、第一客体安全规则和第一安全判断规则,该第二虚拟机对应的强制访问规则包括第二主体安全规则、第二客体安全规则和第二安全判断规则,该第一安全判断规则和该第二安全判断规则相同;该判断模块804具体用于:根据该第一主体安全规则和该第一客体安全规则,将该P个访问指令中主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到Q个访问指令,其中,Q为小于或等于P的正整数;根据该第二主体安全规则和该第二客体安全规则,将该S个访问指令中主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到T个访问指令,其中,T为小于或等于S的正整数;将该Q个访问指令和该T个访问指令中,主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;根据该K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从该K个访问指令中确定符合该第一安全判断规则的N个访问指令,其中,N为小于或等于K的正整数。
可选地,作为一个实施例,该强制访问规则中设置有主体缓存表和客体缓存表,该主体缓存表用于存储用户最近L次访问指令的主体及主体的安全等级的对应关系,该客体缓存表用于存储用户最近L次访问指令的客体及客体的安全等级的对应关系,该判断模块804根据该K个访问指令中每一个访问指令的主体和该主体安全规则,确定该K个访问指令中每一个访问指令的主体的安全等级,包括:对于该K个访问指令中每一个访问指令的主体,该VMM根据该主体缓存表中主体及主体的安全等级的对应关系,确定该K个访问指令中每一个访问指令的主体的安全等级;该判断模块804根据该K个访问指令中每一个访问指令的客体和该客体安全规则,确定该K个访问指令中每一个访问指令的客体的安全等级,包括:对于该K个访问指令中每一个访问指令的客体,该VMM根据该客体缓存表中客体及客体的安全等级的对应关系,确定该K个访问指令中每一个访问指令的客体的安全等级。
可选地,作为一个实施例,该获取模块802具体用于:
通过IO环从该虚拟机的内核态的前端驱动中获取该M个访问指令。
可选地,作为一个实施例,该访问模块806为该VMM的后端驱动。
如图9所示,本发明实施例还提供了一种物理主机900,或称之为架构。该物理主机900包括硬件层910、运行在所述硬件层910之上的强制访问控制装置,和运行在所述强制访问控制装置上的至少一个虚拟机930,其中,所述强制访问控制装置为虚拟机监控器VMM920。
换而言之,该物理主机900包括硬件层910、运行在该硬件层910之上的虚拟机监控器VMM 920,和运行在该VMM 920上的至少一个虚拟机930,该VMM 920用于执行本发明实施例的强制访问控制方法。
硬件层910可以包括处理器911、物理内存912、硬盘913以及网络接口设备914,其中处理器911可以是一个,也可以是多个;网络接口设备914可以是网络适配器或网卡,用于跟任何可连接的网络做连接,例如互联网(Internet)、企业网等。虚拟机930可以包括虚拟处理器931、虚拟内存932、虚拟硬盘933以及客户操作***(Guest Operation System,Guest OS)935,其中Guest OS 935是运行在虚拟处理器931、虚拟内存932、虚拟硬盘933等虚拟设备之上的操作***。在Guest OS 935之上还运行有虚拟网络功能936。虚拟机监控器VMM 920可以用于实现前述实施例所描述的强制访问控制的方法。
应理解,本发明实施例的方法除应用于虚拟机架构外,还可以应用于应用容器引擎Docker架构,或者其它容器虚拟化架构中。Docker等容器虚拟化的***架构较虚拟机架构在安全隔离性上更差,更需要安全访问控制的防护。
图10示出了容器虚拟化的***架构的示意性框图。该***架构可以理解为物理机,该物理机可以是单机也可以是网络中的网元。该***架构包括:操作***和硬件层。
操作***可以分为操作***的用户空间(用户态)和操作***内核(内核态)。
容器可以运行在虚拟机上,也可以直接运行在物理主机上,本发明实施例不做限定,物理主机是相对于虚拟机的具有硬件环境的实体计算机。
主监控器是具有监控能力的模块,可分为用户态部分和内核态部分,其用户态部分运行于操作***用户态,其内核态部分运行于操作***内核态。进一步地,还可以包括管理器,管理器是用于处理服务状态异常的被监控对象的模块,也可分为用户态部分和内核态部分(主要是内核态),该用户态部分运行于操作***用户态,该内核态部分运行于操作***内核态。该硬件层可以包括处理器、存储器、总线和I/O设备(输入/输出设备),上层的操作***通过调用硬件层的资源完成各种任务。具体地,若物理机是网络中的网元,则一台或多台物理机(如应用服务器等)可以组成业务环境,该业务环境中运行着一个或多个为应用提供服务的容器。
容器虚拟化的***架构中的操作***的功能可以类似于虚拟机架构的虚拟机;容器中的应用、进程和线程可以类似于虚拟机架构中虚拟机的用户态的相应的应用、进程和线程;容器虚拟化的***架构中的主监控器的功能可以类似于虚拟机架构的虚拟机监控器;容器虚拟化的***架构中的硬件层则与虚拟机架构的硬件层一致。因此,本发明实施例的方法也可以应用于Docker等容器虚拟化的***架构中,具体应用此处不再进行赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (16)

1.一种强制访问控制方法,其特征在于,包括:
虚拟机监控器VMM从至少一个虚拟机获取用户下发的M个访问指令,所述M个访问指令中每一个访问指令包括访问的主体和访问的客体,其中,M为正整数;
所述VMM根据所述M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,其中,N为小于M的正整数;
所述VMM根据所述M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,包括:
所述VMM根据所述M个访问指令中每一个访问指令的主体和客体,将一个或多个虚拟机中主体的安全等级相同并且客体的安全等级相同的访问指令的强制访问判断合并为一次强制访问判断,得到K个访问指令,其中,所述K个访问指令中每一个访问指令中包括至少一个主体的信息、主体安全等级的信息、至少一个客体的信息和客体安全等级的信息,K为小于M的正整数;
所述VMM根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述强制访问规则的所述N个访问指令,其中,N为小于或等于K的正整数;
所述VMM访问所述N个访问指令中每一个访问指令的客体对应的硬件层设备。
2.根据权利要求1所述的方法,其特征在于,M为大于或等于2的正整数,所述M个访问指令均是从第一虚拟机获取的,所述VMM根据所述M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,包括:
所述VMM将所述M个访问指令中的主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;
所述VMM根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述强制访问规则的N个访问指令,其中,N为小于或等于K的正整数。
3.根据权利要求1所述的方法,其特征在于,M为大于或等于2的正整数,所述M个访问指令均是从第一虚拟机获取的,所述VMM根据所述M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,包括:
所述VMM将所述M个访问指令中的主体相同且客体也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;
所述VMM根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述强制访问规则的N个访问指令,其中,N为小于或等于K的正整数。
4.根据权利要求2或3所述的方法,其特征在于,所述强制访问规则包括主体安全规则、客体安全规则和安全判断规则,所述VMM根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述强制访问规则的N个访问指令,包括:
所述VMM根据所述K个访问指令中每一个访问指令的主体和所述主体安全规则,确定所述K个访问指令中每一个访问指令的主体的安全等级;
所述VMM根据所述K个访问指令中每一个访问指令的客体和所述客体安全规则,确定所述K个访问指令中每一个访问指令的客体的安全等级;
所述VMM根据所述主体的安全等级和所述客体的安全等级,判断所述K个访问指令中每一个访问指令是否符合所述安全判断规则,将符合所述安全判断规则的访问指令确定为所述N个访问指令中的一个。
5.根据权利要求4所述的方法,其特征在于,所述强制访问规则中设置有主体缓存表和客体缓存表,所述主体缓存表用于存储用户最近L次访问指令的主体及主体的安全等级的对应关系,所述客体缓存表用于存储用户最近L次访问指令的客体及客体的安全等级的对应关系,
所述VMM根据所述K个访问指令中每一个访问指令的主体和所述主体安全规则,确定所述K个访问指令中每一个访问指令的主体的安全等级,包括:
对于所述K个访问指令中每一个访问指令的主体,所述VMM根据所述主体缓存表中主体及主体的安全等级的对应关系,确定所述K个访问指令中每一个访问指令的主体的安全等级;
所述VMM根据所述K个访问指令中每一个访问指令的客体和所述客体安全规则,确定所述K个访问指令中每一个访问指令的客体的安全等级,包括:
对于所述K个访问指令中每一个访问指令的客体,所述VMM根据所述客体缓存表中客体及客体的安全等级的对应关系,确定所述K个访问指令中每一个访问指令的客体的安全等级。
6.根据权利要求1所述的方法,其特征在于,M为大于或等于2的正整数,所述M个访问指令包括从第一虚拟机获取的P个访问指令和从第二虚拟机获取的S个访问指令,其中,P和S均为正整数,P与S的和小于或等于M,所述第一虚拟机对应的强制访问规则包括第一主体安全规则、第一客体安全规则和第一安全判断规则,所述第二虚拟机对应的强制访问规则包括第二主体安全规则、第二客体安全规则和第二安全判断规则,所述第一安全判断规则和所述第二安全判断规则相同;
所述VMM根据所述M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,包括:
所述VMM根据所述第一主体安全规则和所述第一客体安全规则,将所述P个访问指令中主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到Q个访问指令,其中,Q为小于或等于P的正整数;
所述VMM根据所述第二主体安全规则和所述第二客体安全规则,将所述S个访问指令中主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到T个访问指令,其中,T为小于或等于S的正整数;
所述VMM将所述Q个访问指令和所述T个访问指令中,主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;
所述VMM根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述第一安全判断规则的N个访问指令,其中,N为小于或等于K的正整数。
7.根据权利要求1或2所述的方法,其特征在于,所述虚拟机监控器VMM从虚拟机获取用户下发的M个输入输出访问指令,包括:
所述VMM通过IO环从所述虚拟机的内核态的前端驱动中获取所述M个访问指令。
8.根据权利要求1或2所述的方法,其特征在于,所述方法应用于物理主机,所述物理主机包括硬件层、运行在所述硬件层之上的VMM,和运行在所述VMM上的至少一个虚拟机。
9.一种强制访问控制装置,其特征在于,所述装置应用于物理主机,所述物理主机运行有虚拟机,所述装置包括:
获取模块,用于从至少一个虚拟机获取用户下发的M个访问指令,所述M个访问指令中每一个访问指令包括访问的主体和访问的客体,其中,M为正整数;
判断模块,用于根据所述获取模块获取的所述M个访问指令中每一个访问指令的主体和客体,确定符合预设的强制访问规则的N个访问指令,其中,N为小于M的正整数;
所述判断模块具体用于:
根据所述M个访问指令中每一个访问指令的主体和客体,将一个或多个虚拟机中主体的安全等级相同并且客体的安全等级相同的访问指令的强制访问判断合并为一次强制访问判断,得到K个访问指令,其中,所述K个访问指令中每一个访问指令中包括至少一个主体的信息、主体安全等级的信息、至少一个客体的信息和客体安全等级的信息,K为小于M的正整数;
根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述强制访问规则的所述N个访问指令,其中,N为小于或等于K的正整数;
访问模块,用于访问所述判断模块确定的所述N个访问指令中每一个访问指令的客体对应的硬件层设备。
10.根据权利要求9所述的装置,其特征在于,M为大于或等于2的正整数,所述M个访问指令均是从第一虚拟机获取的,所述判断模块具体用于:
将所述M个访问指令中的主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;
根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述强制访问规则的N个访问指令,其中,N为小于或等于K的正整数。
11.根据权利要求9所述的装置,其特征在于,M为大于或等于2的正整数,所述M个访问指令均是从第一虚拟机获取的,所述判断模块具体用于:
将所述M个访问指令中的主体相同且客体也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;
根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述强制访问规则的N个访问指令,其中,N为小于或等于K的正整数。
12.根据权利要求10或11所述的装置,其特征在于,所述强制访问规则包括主体安全规则、客体安全规则和安全判断规则,所述判断模块根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述强制访问规则的N个访问指令,包括:
根据所述K个访问指令中每一个访问指令的主体和所述主体安全规则,确定所述K个访问指令中每一个访问指令的主体的安全等级;
根据所述K个访问指令中每一个访问指令的客体和所述客体安全规则,确定所述K个访问指令中每一个访问指令的客体的安全等级;
根据所述主体的安全等级和所述客体的安全等级,判断所述K个访问指令中每一个访问指令是否符合所述安全判断规则,将符合所述安全判断规则的访问指令确定为所述N个访问指令中的一个。
13.根据权利要求12所述的装置,其特征在于,所述强制访问规则中设置有主体缓存表和客体缓存表,所述主体缓存表用于存储用户最近L次访问指令的主体及主体的安全等级的对应关系,所述客体缓存表用于存储用户最近L次访问指令的客体及客体的安全等级的对应关系,
所述判断模块根据所述K个访问指令中每一个访问指令的主体和所述主体安全规则,确定所述K个访问指令中每一个访问指令的主体的安全等级,包括:
对于所述K个访问指令中每一个访问指令的主体,根据所述主体缓存表中主体及主体的安全等级的对应关系,确定所述K个访问指令中每一个访问指令的主体的安全等级;
所述判断模块根据所述K个访问指令中每一个访问指令的客体和所述客体安全规则,确定所述K个访问指令中每一个访问指令的客体的安全等级,包括:
对于所述K个访问指令中每一个访问指令的客体,根据所述客体缓存表中客体及客体的安全等级的对应关系,确定所述K个访问指令中每一个访问指令的客体的安全等级。
14.根据权利要求9所述的装置,其特征在于,M为大于或等于2的正整数,所述M个访问指令包括从第一虚拟机获取的P个访问指令和从第二虚拟机获取的S个访问指令,其中,P和S均为正整数,P与S的和小于或等于M,所述第一虚拟机对应的强制访问规则包括第一主体安全规则、第一客体安全规则和第一安全判断规则,所述第二虚拟机对应的强制访问规则包括第二主体安全规则、第二客体安全规则和第二安全判断规则,所述第一安全判断规则和所述第二安全判断规则相同;
所述判断模块具体用于:
根据所述第一主体安全规则和所述第一客体安全规则,将所述P个访问指令中主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到Q个访问指令,其中,Q为小于或等于P的正整数;
根据所述第二主体安全规则和所述第二客体安全规则,将所述S个访问指令中主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到T个访问指令,其中,T为小于或等于S的正整数;
将所述Q个访问指令和所述T个访问指令中,主体的安全等级相同且客体的安全等级也相同的访问指令进行合并,得到K个访问指令,其中,K为小于M的正整数;
根据所述K个访问指令中每一个访问指令的主体的安全等级和客体的安全等级,从所述K个访问指令中确定符合所述第一安全判断规则的N个访问指令,其中,N为小于或等于K的正整数。
15.根据权利要求9或10所述的装置,其特征在于,所述获取模块具体用于:
通过IO环从所述虚拟机的内核态的前端驱动中获取所述M个访问指令。
16.一种物理主机,其特征在于,所述物理主机包括硬件层、运行在所述硬件层之上的虚拟机监控器VMM,和运行在所述VMM上的至少一个虚拟机,所述VMM用于执行如权利要求1至7中任一项所述的强制访问控制方法。
CN201610017077.9A 2016-01-11 2016-01-11 强制访问控制方法、装置和物理主机 Active CN105701416B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201610017077.9A CN105701416B (zh) 2016-01-11 2016-01-11 强制访问控制方法、装置和物理主机
EP17738119.1A EP3333752B1 (en) 2016-01-11 2017-01-10 Mandatory access control method and device, and physical host
PCT/CN2017/070705 WO2017121305A1 (zh) 2016-01-11 2017-01-10 强制访问控制方法、装置和物理主机
US15/920,007 US10762223B2 (en) 2016-01-11 2018-03-13 Mandatory access control method and apparatus, and physical host

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610017077.9A CN105701416B (zh) 2016-01-11 2016-01-11 强制访问控制方法、装置和物理主机

Publications (2)

Publication Number Publication Date
CN105701416A CN105701416A (zh) 2016-06-22
CN105701416B true CN105701416B (zh) 2019-04-05

Family

ID=56226210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610017077.9A Active CN105701416B (zh) 2016-01-11 2016-01-11 强制访问控制方法、装置和物理主机

Country Status (4)

Country Link
US (1) US10762223B2 (zh)
EP (1) EP3333752B1 (zh)
CN (1) CN105701416B (zh)
WO (1) WO2017121305A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701416B (zh) * 2016-01-11 2019-04-05 华为技术有限公司 强制访问控制方法、装置和物理主机
CN109359450B (zh) * 2018-10-29 2021-03-05 北京猎户星空科技有限公司 Linux***的安全访问方法、装置、设备和存储介质
SG11201909847SA (en) 2019-04-03 2019-11-28 Alibaba Group Holding Ltd Processing and storing blockchain data under a trusted execution environment
CN116204858A (zh) * 2021-11-30 2023-06-02 华为技术有限公司 一种访问控制方法和相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101094097A (zh) * 2006-06-23 2007-12-26 联想(北京)有限公司 一种硬件访问控制***和方法
CN102446087A (zh) * 2010-10-12 2012-05-09 无锡江南计算技术研究所 指令预取方法与预取装置
CN103312722A (zh) * 2013-07-04 2013-09-18 河北科技大学 一种细粒度强制访问的控制设计方法
CN103997502A (zh) * 2014-06-05 2014-08-20 浪潮电子信息产业股份有限公司 一种基于云计算数据中心安全增强模型的设计方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080022376A1 (en) 2006-06-23 2008-01-24 Lenovo (Beijing) Limited System and method for hardware access control
US20090222880A1 (en) 2008-03-03 2009-09-03 Tresys Technology, Llc Configurable access control security for virtualization
FR2929733B1 (fr) * 2008-04-08 2010-08-27 Eads Defence And Security Syst Systeme et procede de securisation d'un ordinateur comportant un micronoyau
JP5035182B2 (ja) * 2008-08-27 2012-09-26 富士通株式会社 アクセス制御システム、アクセス制御方法、アクセス制御プログラム、及びアクセス制御プログラムを記録した記録媒体
CN101452397B (zh) 2008-11-27 2012-08-22 上海交通大学 虚拟化环境中的强制访问控制方法及装置
EP2696303B1 (en) * 2012-08-03 2017-05-10 Alcatel Lucent Mandatory access control (MAC) in virtual machines
US9935964B2 (en) * 2014-10-08 2018-04-03 Oracle Financial Services Software Limited Access control for objects having attributes defined against hierarchically organized domains containing fixed number of values
CN104573553A (zh) * 2014-12-30 2015-04-29 中国航天科工集团第二研究院七O六所 一种面向Xen的虚拟机内存共享的安全隔离方法
US9864849B2 (en) * 2015-12-29 2018-01-09 Dropbox, Inc. View-based expiration of shared content
CN105701416B (zh) * 2016-01-11 2019-04-05 华为技术有限公司 强制访问控制方法、装置和物理主机

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101094097A (zh) * 2006-06-23 2007-12-26 联想(北京)有限公司 一种硬件访问控制***和方法
CN102446087A (zh) * 2010-10-12 2012-05-09 无锡江南计算技术研究所 指令预取方法与预取装置
CN103312722A (zh) * 2013-07-04 2013-09-18 河北科技大学 一种细粒度强制访问的控制设计方法
CN103997502A (zh) * 2014-06-05 2014-08-20 浪潮电子信息产业股份有限公司 一种基于云计算数据中心安全增强模型的设计方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"一种虚拟机***中的强制访问控制机制";王观海;《中国优秀硕士学位论文全文数据库信息科技辑》;20101115;第I138-280页,正文第29-31页第3.1节

Also Published As

Publication number Publication date
EP3333752B1 (en) 2020-01-01
US10762223B2 (en) 2020-09-01
EP3333752A4 (en) 2018-10-31
WO2017121305A1 (zh) 2017-07-20
US20180204016A1 (en) 2018-07-19
EP3333752A1 (en) 2018-06-13
CN105701416A (zh) 2016-06-22

Similar Documents

Publication Publication Date Title
US11392506B2 (en) Apparatus and method for secure memory access using trust domains
US7234037B2 (en) Memory mapped Input/Output operations
CN105701416B (zh) 强制访问控制方法、装置和物理主机
US7146482B2 (en) Memory mapped input/output emulation
US7849311B2 (en) Computer system with dual operating modes
US11475138B2 (en) Creation and execution of secure containers
CN103379089B (zh) 基于安全域隔离的访问控制方法及其***
EP2940615B1 (en) Method and apparatus for isolating management virtual machine
CN109213573A (zh) 基于容器的虚拟桌面的设备隔离方法及装置
US20050114586A1 (en) Memory mapped Input/Output virtualization
US20070143315A1 (en) Inter-partition communication in a virtualization environment
KR20010014878A (ko) 논리적으로-분할된 컴퓨터에서 동시 사용 라이센스 관리
CN101452397A (zh) 虚拟化环境中的强制访问控制方法及装置
CN103139159A (zh) 云计算架构中的虚拟机之间的安全通信
US20220237313A1 (en) Direct access to host memory for guests
DE112020000792T5 (de) Durch grafikverarbeitungseinheit beschleunigte vertrauenswürdige ausführungsumgebung
CN105431858A (zh) 安全特权等级执行和访问保护
DE102018115251A1 (de) Technologien zum Schutz eines virtuellen Maschinenspeichers
DE112020000223T5 (de) Gemeinsame speichernutzung zwischen einer sicheren domäne und einer nicht sicheren entität
CN104350486A (zh) 用于虚拟机互操作性的方法和装置
DE112020000285T5 (de) Programmunterbrechungen für Seiten-Import/-Export
CN107491340A (zh) 跨物理机的巨型虚拟机实现方法
DE112020000286T5 (de) Sicheres ein-/auslagern mit seitenänderungserkennung
US20150101042A1 (en) Tag based permission system and method for virtualized environments
CN104298519B (zh) 用于配置操作***的装置及其方法

Legal Events

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