CN103119601B - 用于在独立于操作系统(os)的防病毒(av)扫描器上执行强制性安全策略的方法和装置 - Google Patents

用于在独立于操作系统(os)的防病毒(av)扫描器上执行强制性安全策略的方法和装置 Download PDF

Info

Publication number
CN103119601B
CN103119601B CN201180044799.9A CN201180044799A CN103119601B CN 103119601 B CN103119601 B CN 103119601B CN 201180044799 A CN201180044799 A CN 201180044799A CN 103119601 B CN103119601 B CN 103119601B
Authority
CN
China
Prior art keywords
error handler
application
client
security
security domain
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.)
Expired - Fee Related
Application number
CN201180044799.9A
Other languages
English (en)
Other versions
CN103119601A (zh
Inventor
N·M·史密斯
G·D·丹内尔斯
V·尚博格
S·苏古马尔
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN103119601A publication Critical patent/CN103119601A/zh
Application granted granted Critical
Publication of CN103119601B publication Critical patent/CN103119601B/zh
Expired - Fee Related 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
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • 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/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Retry When Errors Occur (AREA)
  • Stored Programmes (AREA)

Abstract

一种防病毒(AV)应用,其指定错误处理器代码镜像、错误处理器清单、AV应用的存储器位置,和AV应用清单。加载器验证错误处理器代码镜像和错误处理器清单,创建具有第一安全级别的第一安全域,将错误处理器代码镜像拷贝到与第一安全域相关联的存储器,并且启动错误处理器的执行。加载器请求锁定在客户操作系统中为AV应用保留的存储页面。通过在客户操作系统存储器中所选代码片段上设置陷阱,错误处理器锁定加载到客户操作系统存储器中的AV应用的可执行代码镜像。

Description

用于在独立于操作系统(OS)的防病毒(AV)扫描器上执行强制性安全策略的方法和装置
技术领域
本公开一般地涉及计算领域。更具体地说,本发明的实施例涉及对在计算系统中运行的防病毒扫描代理强制执行强制性安全策略。
背景技术
防病毒(AV)扫描代理应用程序一般作为操作系统(OS)进程来运行。AV扫描代理通过使用一些与恶意软件所使用的相同的隐匿技术来保护自身不受恶意软件/木马攻击。近来操作系统设计中的改变采用了强制性访问控制(MAC)标签,其以低、中、高完整性分类的形式来标记进程。在不同级别的进程不允许彼此进行修改/访问。但是MAC级别的语义在OS环0(内核特权)处强制执行。环0受到损害意味着MAC强制执行机制受到损害,并因而在环3(用户特权)和环0中运行的AV扫描代理受到损害。虚拟内存管理器(VMM)(如果使用了)的损害也可能导致用户OS(UOS)的MAC机制受到损害。在OS中的MAC机制的使用使得AV扫描代理更难躲避针对AV扫描代理代码的恶意软件。因此,除非改进OS安全性,否则AV扫描代理代码会易受到攻击。
发明内容
根据本发明的一个方面,提供一种在具有加载器和错误处理器的计算系统中,对在客户操作系统中运行的独立于操作系统(OS)的防病毒(AV)应用强制执行安全策略的方法,包括:由所述AV应用指定错误处理器代码镜像、错误处理器清单、所述AV应用的存储器位置,和AV应用清单;由所述加载器验证所述错误处理器代码镜像和所述错误处理器清单;由所述加载器创建具有第一安全级别的第一安全域,将所述错误处理器代码镜像拷贝到与所述第一安全域相关联的存储器,并且启动所述错误处理器的执行;由所述加载器请求锁定在所述客户OS中为所述AV应用保留的存储器页;通过在所述客户OS存储器页中所选的代码段上设置陷阱,所述错误处理器锁定加载到客户OS存储器中的所述AV应用的可执行代码镜像;由所述加载器测量AV应用存储器并将所述测量与所述AV应用清单进行比较;以及当所述测量和比较步骤成功地验证所述AV应用时,由所述加载器将所述AV应用提升到所述第一安全域。
根据本发明的另一个方面,提供一种在具有加载器和错误处理器的计算系统中,对在客户操作系统中运行的独立于操作系统(OS)的防病毒(AV)应用强制执行安全策略的装置,包括:用于由防病毒(AV)应用指定错误处理器代码镜像、错误处理器清单、所述AV应用的存储器位置,和AV应用清单的模块;用于由所述加载器验证所述错误处理器代码镜像和所述错误处理器清单的模块;用于由所述加载器创建具有第一安全级别的第一安全域,将所述错误处理器代码镜像拷贝到与所述第一安全域相关联的存储器,并且启动所述错误处理器的执行的模块;用于由所述加载器请求锁定在所述客户OS中为所述AV应用保留的存储器页的模块;用于通过在所述客户OS存储器页中所选的代码段上设置陷阱,所述错误处理器锁定加载到客户OS存储器中的所述AV应用的可执行代码镜像的模块;用于由所述加载器测量AV应用存储器并将所述测量与所述AV应用清单进行比较的模块;以及用于当执行所述测量和比较的模块成功地验证所述AV应用时,由所述加载器将所述AV应用提升到所述第一安全域的模块。
根据本发明的再一个方面,提供一种用于对防病毒代理强制执行强制性安全策略的计算系统,包括:用于执行指令来强制执行用于所述计算系统的安全策略的处理器,所述处理器包括控制对多个安全域的访问的资源管理器逻辑;包括加载器和错误处理器的执行容器;以及包括防病毒(AV)应用的客户操作系统(OS);其中,所述AV应用指定错误处理器代码镜像、错误处理器清单、所述AV应用的存储器位置,和AV应用清单;其中,所述加载器验证所述错误处理器代码镜像和所述错误处理器清单,创建具有第一安全级别的第一安全域,将所述错误处理器代码镜像拷贝到与所述第一安全域相关联的存储器,启动由所述处理器执行的所述错误处理器,和请求锁定在所述客户OS中为所述AV应用保留的存储器页;其中,所述错误处理器通过在所述客户OS存储器页中所选的代码段上设置陷阱来锁定加载到客户OS存储器中的所述AV应用的可执行代码镜像;以及
其中,所述加载器测量AV应用存储器,将所述测量与所述AV应用清单进行比较,并且当所述测量和比较的结果成功地验证所述AV应用时,将所述AV应用提升到所述第一安全域。
附图说明
通过参考附图来提供详细描述。在不同附图中使用的相同附图标记指示相似的或相同的项目。
图1是根据本发明的一些实施例的执行容器完整性模型的图;
图2示出了根据本发明的实施例的具有客户OS的执行容器完整性模型;
图3是根据本发明的实施例的具有客户OS(具有AV应用)的执行容器完整性模型的图;
图4是根据本发明的实施例的用于建立域C的流程图;
图5是示出了根据本发明的实施例的对应于一系列资源设陷机构的级联Biba级别的图;
图6是示出了根据本发明的实施例的建立C子域的流程图;
图7是示出了根据本发明的实施例的设置应用陷阱的流程图;
图8是示出了根据本发明的另一实施例的设置应用陷阱的流程图;
图9是示出了根本发明的实施例的执行陷阱的流程图;
图10是根据本发明的另一实施例的具有用于虚拟机管理器(VMM)的客户OS的执行容器完整性模型的图;
图11是根据本发明的实施例的具有用于VMM的客户OS的执行容器完整性模型的图,其中虚拟机包括AV应用;以及
图12和图13示出了计算系统的实施例的框图,其可以用来实现在本文中讨论的一些实施例。
具体实施方式
在下面的说明书中,为了提供对各个实施例的完全理解而阐述了多个具体细节。但是,没有所述具体细节本发明的各个实施例也可以实施。在其他的实例中,没有详细描述公知的方法、程序、部件和电路,以免模糊了本发明的特定实施例。此外,可以使用各种器件来执行本发明的实施例的各个方面,所述器件例如为集成半导体电路(硬件)、被组织为存储在计算机可读存储介质上的一个或多个程序的计算机可读指令(软件),或硬件和软件的一些组合。为了本公开的目的,对“逻辑”的引用应意味着硬件、软件(包括例如控制处理器操作的微代码)、固件,或其上的一些组合。
在实施例中,可以在计算系统中的受保护的执行环境中执行AV扫描代理应用程序,在所述计算系统中可以向该AV扫描代理分配MAC特权,所述MAC特权支配由用户操作系统(UOS)(或虚拟机管理器(VMM))所使用的MAC特权。AV扫描代理配置包含UOS代理的存储页面,使用受保护的执行环境来保护所述存储页面。这些存储页面具有有效的MAC特权,所述MAC特权高于由UOS(或VMM)授予的最高特权,因而UOS的损害不会转化为UOS中的AV扫描代理的损害。
本发明的实施例使用至少两种技术的组合:受保护的执行环境微代码和在硬件级别应用的、与操作系统MAC抽象分离的MAC标签。在受保护的执行环境中的执行容器为以比最高可能的OS环0级别更高的安全级别运行的AV扫描代理运行时间提供执行隔离。这个级别由受保护的执行环境强制执行。因为受保护的执行环境遵守MAC安全模型,所以受保护的执行环境可以在防止恶意修改AV扫描代理运行时间的同时仍允许对OS文件系统对象进行读取访问。本发明的实施例一致地关联了MAC标签,同时在客户OS资源上设置了陷阱。实施例的方法在客户资源和页面上递归地级联标签分配和陷阱分配,直到AV扫描代理应用和相关的数据被保护。可以由计算系统的处理器检测并防止尝试修改受保护的资源的恶意软件。从检测到的攻击中恢复可以由来自受保护的执行环境的以较高的完整性级别运行的处理器代理程序进行管理,而不破坏系统的完整性模型。
MAC安全模型通过将安全标签分配给系统中的主体和对象来保护信息。一个这样的MAC安全模型是Biba模型,其公开在1977年4月,Mitre公司的Biba,K.J.“IntegrityConsiderationsforSecureComputerSystems”,MTR-3153中。Biba完整性模型是计算机系统安全策略的正式状态转换系统,其描述了被设计用来确保数据完整性的一套访问控制规则。数据和主体被分组为完整性的有序级别。设计该模型使得主体不可以损坏处于高于该主体级别等级的数据,或该主体不可以被来自低于该主体级别等级的数据损坏。一般来说,保持数据完整性的目的在于防止数据被未授权方修改、防止未授权的数据被未授权方修改,和维护内部和外部一致性(即,数据反映了真实世界)。这种安全模型是为了数据完整性,并且其特性在于短语“不向下读,不向上写”。BibaMAC规则可被总结为:1)给予资源(主体和对象)Biba完整性标签,使得更高级别“支配”更低级别。支配对象或其他主体的主体能对这些资源“向下写”。2)较低级别的资源能“向上读”更高级别的资源。
Biba模型可以被应用于受保护的执行环境,使得设备、存储器、直接存储器存取(DMA)缓存、中断和配置空间都可以固定地使用Biba标签,使得能一致地应用Biba访问规则。在受保护的执行环境中运行的应用可以对应于MAC标签约束而被分配虚拟资源,其中运行在执行容器中的OS强制执行Biba安全模型。可以信任受保护的执行环境的资源管理器部件以跨越执行容器(受保护的存储器)和设备资源之间的硬件接口边界来强制执行特权语义。
图1是根据本发明的某些实施例的执行容器完整性模型的图。受保护的执行环境可以对运行在执行容器100中的应用强制执行Biba安全策略。执行容器包括在计算系统内的应用环境,所述计算系统与正常的操作系统环境相隔离。在实施例中,执行容器在其功能性方面受到约束;执行容器可能不包括全功能的操作系统。在实施例中,执行容器包括应用(App)策略管理器部件102,和一个或多个应用程序。在图1示出的示例中,执行容器包括第一级别完整性的应用(AppL1104),第二级别完整性的应用(AppL2106),和第三级别完整性的应用(AppL3108)。
在实施例中,通过使用仲裁访问平台资源(中央处理单元(CPU)、存储器、芯片组、闪存等)的硬件支持对这些资源进行分区,受保护的执行环境提供在计算系统中创建执行容器的机制。目的在于除了用于用户操作系统(UOS)的容器以外,通常利用在为了节约能源的低活动期间UOS使得内核脱机时未使用的多核处理器中的内核上的周期,其他独立的操作环境能够运行。这对能源消耗和性能具有轻微的影响,但是提供了用于程序执行的环境,所述环境可被用于UOS的带外(OOB)活动,例如安全性、可管理性、安全商务或许可。使用OOB执行环境,运行在这些容器中的应用将免受用户篡改、恶意软件的损害,并且能抵抗操作系统故障。为启动这个功能,可能在处理器上添加若干新的硬件特征(例如定时器、设备过滤、调度缓存、页表、中断映射支持和闪存中的空间),还可能需要扩展的软件堆栈(内核、UOS驱动、内核驱动、固件等),并且还可能需要非核心补丁支持。每个执行容器将具有独立的存储器(包括单独的扩展页表(EPT))、它们自身的状态、控制在处理器上执行所需的时间片段的方法,和用于专门访问硬件设备的潜在方法(通过设备过滤、局部高级可编程序中断控制器(APIC)和中断重映射强制执行)。受保护的执行环境的一个示例和在计算系统中用于改进功率效率的使用模型公开在Kumar等人的“MethodandApparatusforCostandPowerEfficientScalableOs-IndependentServices”中,其于2007年12月26日提交,序号为11/964,439,已转让给本申请的受让人,并通过引用方式将其并入本申请。
在实施例中,应用与受保护的执行环境资源管理器(RM)110进行通信。在实施例中,RM可被实现为计算系统的处理器中的微代码,并且RM创建在不同完整性级别运行的线程。在实施例中,RM可以作为独立的超线程而运行,其不可被环0或环3进程访问。RM的受保护的超线程可以在系统引导过程期间被实例化,并且可以由操作系统进行调度但不会被操作系统修改。在执行容器100中运行的应用上强制执行Biba安全策略可以通过以下实现:使RM110以比执行容器更高的完整性级别进行操作,使得代表执行容器来修改或破坏RM的任意企图构成对安全策略的违反。RM能够在执行容器中建立信任,作为在执行容器中加载和验证操作系统的一部分。在实施例中,执行容器发起控制策略来确认执行容器能力包括强制执行Biba安全规则的能力。
在RM中的域策略管理器112将一系列的Biba标签(即,特权)分配给应用策略管理器102。域策略管理器保持跟踪域能在处理器中运行的标签。执行容器根据提供的范围来强制执行Biba规则。应用策略管理器接着将特权分配给来自所述范围内的执行容器应用。这确保了系统范围的Biba级别的语义一致性,即使执行容器可能不具有计算平台资源的全局视角。RM110提供了多个安全域。在实施例中,域是物理资源(例如存储器、磁盘存储设备或网络接口设备)的分区,其中该分区根据由资源管理器使用的Biba标签包含已标记的数据。在图1示出的示例中,有两个域,具有在类别Y1中的完整性级别X1的域A114,和在类别Y2中的完整性级别X2的域B116。可以将各种计算系统部件(例如物理存储器和设备118)分配到一个域。例如,可将设备120和122分配给域A,并且可以将设备124和126分配到域B。例如,包含在直接存储器存取(DMA)缓存中在Biba标签(X1:Y1)处指定的存储页面可被写入到磁盘存储设备,所述磁盘存储设备具有根据Biba标签方案的分区轨道,其中轨道0-n对应于标签(X1:Y1),并且轨道(n+1)-m对应于标签X2:Y2,以此类推。也可以在DMA存储器上创建虚拟化技术的表,使得虚拟化技术的道对应于标签(X1:Y1),并且第二虚拟化技术的道对应于另一标签X2:Y2,以此类推。
图1还包括尝试在应用之间读和写的流程管理的表示。如果AppL1的完整性级别X1低于或等于高级别,则在域A中具有高级别完整性的应用可以向下写入AppL1104。在域A中的应用也可以从AppL1读取。AppL1可以从在域A中的应用读取。因为AppL2的完整性级别X2小于或等于AppL1的完整性级别X1,所以AppL1104可以向下写AppL2106。AppL1也可以从AppL2读取。AppL2可以从AppL1读取。因为AppL3的完整性级别X3低于或等于AppL2的完整性级别X2,所以AppL2106可以向下写AppL3108。AppL2也可以从AppL3读取。AppL3可以从AppL2读取。因为域B中的应用的低完整性级别低于或等于AppL3的完整性级别X3,所以AppL3108也可以向下写域B130中的应用。AppL3也可以从在域B中的应用读取。在域B中的应用可以从AppL3读取。
图2示出了根据本发明的实施例的具有客户OS的执行容器完整性模型。RM110可以将全局Biba特权分配给缺少可信Biba感知内核的客户OS200。特权在初始化客户OS时被关联。RM微代码监视随后对硬件的访问。因此,因为策略阻抗不匹配,所以在执行容器中运行的应用所共享的设备和存储器资源不会造成线程增加。但是客户OS应用(例如在这个示例中的AppL3108)能继续正常运行而不需要知道Biba安全模型对设备和系统资源的约束,除非这些访问表示对系统完整性的威胁。在实施例中,RM包括全局客户特权分配部件20,用于将Biba模型应用到客户OS访问。例如,如果由CPU超线程组成的Biba感知执行容器100具有分别分配了Biba标签(X1:Y1)和(X2:Y2)的两个应用L1104和L2106,给定在没有Biba感知的客户OS200(运行在第二CPU超线程中)中的第三应用L3108可能需要使用由资源管理器分配的资源。作出创建用于分配给客户OS的资源的默认映射的全局客户特权分配,使得由资源管理器进行的Biba标签支配计算将产生明确的结果;并且当客户OS访问时已经给予Biba标签的资源会混淆没有Biba感知的客户OS。
在包括AV扫描代理的客户OS中保护存储页面的新技术可以“加固”这些页面来对抗客户OS中的恶意软件的可能攻击。通过进行这些存储页面保护配置和使用受保护的执行环境的运行时间软件,在客户OS中的受保护部件能够以提高的安全级别操作,其安全策略相对于系统范围的策略是一致的。
图3是根据本发明的实施例的具有客户OS(具有AV应用)的执行容器完整性模型的图。在实施例中,计算系统可以建立一系列的域以能够保护AV扫描代理的完整性。在实施例中,可以为正被监视是否变化的客户OS存储器创建一组域。一些域可以包括在客户OS200内的受保护的资源303。至少一个域可以包括在客户OS200内的未受保护的资源306。在实施例中,域可以与在处理器中的微操作(uop)线程相关联。
域A114:最高完整性级别(SYS_HI)。这个域可以由计算系统建立并且具有最高完整性级别。域A114由计算硬件(寄存器、存储器)、RM110和RM受控设备,以及应用策略管理器102组成,所述应用策略管理器102能够接受清单和存储器区域并且验证该存储器区域与清单相匹配,并且基于存储在应用策略管理器中的可信根验证签名的有效性。
域B116:(域B<域A)。域B包含受保护的执行环境100应用,其运行来支持AV扫描代理保护机制。可以由RM110以及在执行容器100中运行的其他程序来验证这些应用。部件包括运行时间/轻量级操作系统(未示出)、加载器302、错误处理器304、应用清单322和应用策略管理器102,所述应用策略管理器102向域C防病毒应用300提供服务,并且负责证实域C防病毒应用300且将防病毒应用安装到执行容器100中。
域C310:(域C<域B)。这是将在其中执行防病毒应用的域。在域C中的防病毒应用具有比执行容器100应用更低的完整性级别,但因为在这个域中应用的完整性可能由域A中的数字签名和应用策略管理器102进行验证,所以其高于计算系统的其余部分。在实施例中,在这个域中可能有至少两个应用,在执行容器100中运行的错误处理器304和在受保护页面中运行在用户(客户)OS200中的防病毒应用300。该防病毒应用可以具有客户OS专用知识,但需要被高于域D的Biba模型保护。
域C-1,C-2,…,C-n:(如果i>j,则域C-i<域C-j。域C-2<域C-1<域C)。域C的应用(防病毒应用300和错误处理器304)将创建一系列低于域C的细粒度域。当将写入陷阱放置在那些存储器区域周围时,它们将在客户OS中的存储器放入这些域中。这些域具有低于域C的完整性级别,这是因为并不知道在存储器区域中的值没有恶意软件,但是知道自设置了陷阱后这些值没有改变。这与域C相对比,在域C中所包括的软件被显示出从创建软件起就没有改变软件的清单签名。也与域D相对比(在下面讨论,即,客户OS环境),在域D内,在任意时间都能改变存储器。在实施例中,可以使用一系列这样的域,使得AV应用可以分辨在受保护项目中的不同级别的完整性。例如,因为处理器的全局描述符表寄存器(GDTR)存储在域A硬件中所以已知在GDTR中的值具有高确信度,而与网络存储器映射呈线性的值可以取决于存储在以前建立的域C-i中的值。因此,不能以与域C-i相同的完整性级别建立值并且因此所述值必须具有其自身的域C-(i+1)。
域D312:(域D<域C-n<域-C)。在实施例中,域D可以是分配给可被客户应用308所访问的所有未保护的资源306的全局域。这包括客户环0应用和内核。域D还包括所有的环3应用软件。从物理存储设备的一分区分配客户OS存储资源,其中分区320包含在具有标签(X4:Y)的域D中的轨道t0-tn。
包含在受保护的客户OS存储页面303中的AV应用300具有存储页面陷阱,当解除引用(de-reference)所述陷阱时将致使错误处理器314咨询BibaMAC策略,借此可以使用支配包括域C的默认标签的标签来覆盖默认客户OSBiba标签。通常由318表示这些存储页面。
从存储池和存储资源314和316分配由执行容器100消耗的物理资源。执行容器100对由标签分离和通过分区来强制执行的这些资源具有排他性访问。可以将应用清单322存储在具有符合域A114的标签分配的执行容器存储314中。
图4是根据本发明的实施例的用于建立域C的流程图400。在块402,AV应用部件300使用处理器指令来指定错误处理器部件304的代码镜像、用于错误处理器的清单、AV应用的存储器位置,和AV应用清单322。在块404,加载器部件302使用应用策略管理器102来验证应用清单322和错误处理器304代码镜像。如果成功地验证了应用清单和错误处理器,则过程继续。加载器创建域C310、将错误处理器代码镜像拷贝到与域C相关联的存储器内,并且启动由处理器执行的错误处理器代码。在块406,加载器302请求错误处理器304锁定在客户OS200中为AV应用300保留的存储页面。在块408,错误处理器通过在客户OS存储器318中的所选代码片段上设置陷阱,来锁定当前加载在客户存储器中的AV应用300的可执行代码镜像。最初,客户OS受保护的页面在域D处。在块410,加载器测量AV应用存储器并将其与AV应用清单322进行比较。如果在客户OS中的攻击者通过供应不正确的页面地址而较早地欺骗了错误处理器,则完整性检测应该会失败。因此,加载器不依赖在域D中的页面表来执行完整性检查,而是基于运行在域A中的应用策略管理器102所证实的清单。
在块412,一旦加载器验证了AV应用镜像的完整性,并且已建立了条件使得其他的客户OS应用(或甚至是客户OS内核代码)在不触发页面陷阱(由错误处理器可检测)情况下不能修改镜像,加载器将AV应用推进到域C。在实施例中,现在错误处理器304和AV应用300在同一域中,它们能够经由硬件实现的处理器发送消息命令进行通信。在块414,错误处理器验证从AV应用接收的每个消息都来源于上述定义和锁定的存储器区域内。在域C中包括代码片段和数据片段二者。锁定用于消息的代码片段并将其与错误处理器的代码片段一起放入到域C中,并且可以许可AV应用来访问这些页面。
此时,已经建立了域C,包括运行在执行容器100中的错误处理器和运行在客户OS200中的AV应用300。清单已验证了这两个部件并且存储器陷阱保留了软件镜像的完整性。现在可以运行AV应用来扫描恶意软件。
图5是示出根据本发明的实施例的对应于一系列资源设陷机构的级联Biba安全级别的图。设置初始内核陷阱包括建立或改变域C-1、C-2等。将资源放入到不同的域改进了系统的整体安全性。图5示出了图4的块408的另外的细节。客户OS200可以包括用于域C500的受保护的资源区域,受保护的资源区域在实施例中包括AV配置程序510。客户OS也可以包括用于域D的未受保护的资源区域306,未受保护的资源区域306在实施例中可以包含未受保护的页面520,客户OS还包括用于域D的受保护的资源区域508。域C-1502具有任意C子域的最高完整性级别。因为外部机构签名的清单没有证实,因此其内容不能保证是没有恶意软件的。关于C子域将做出确认:从设置陷阱的点起,没有未经授权的软件修改了值(但是不保证未经授权的软件在设置陷阱之前没有修改信息)。
在实施例中,可以首先建立域C-1502并且该域包含在受保护的寄存器512内的所有内核元件。可以接着使用域C-1的元件建立域C-2504来获得正确的地址。域C-1将包含为未授权的改变(SYSENTERMSR、CR3等)所监视的系统的寄存器514,并且域C-2将包含地址转换页表(PT)和页面错误处理器(PFH)514。一旦建立了这些域,可以进一步创建域C-i(例如域C-N506),所述域C-i依赖于域C-1和域C-2的完整性。进一步地,域n可以包含设备驱动器516和应用,所述应用的页面是使用页面错误陷阱(例如AV扫描器518)来保护的。
图6是示出根据本发明的实施例的建立C子域的流程图600。在块602,AV应用300识别要设陷的内核寄存器512以及在内核内被允许修改这些寄存器的代码位置—例如允许改变用于客户OS200上下文的CR3的值的调度软件。在块604,AV应用向错误处理器304发送消息来在所选的寄存器和允许对寄存器做出修改的一列代码位置上设置陷阱。在块606,错误处理器将寄存器和代码位置放置到域C-1502中,并且在寄存器和授权的代码设置上设置写入陷阱。此时,对寄存器的所有未授权的访问将在受保护的执行环境系统内生成陷阱,并且将生成从域D306写入到域C-1502的Biba违例。在块608,AV应用使用在域C-1中的寄存器的值来识别需要在域C-2504中受到保护的系统的页面表514。在块610,AV应用向错误处理器发送消息以在所选的页面表条目上设置陷阱,并且包括允许对那些位置(例如页面错误处理器)做出修改的一列位置。在块612,错误处理器在所选的页面表条目上、在那些被授权修改页面表的代码位置上设置陷阱,并且将存储器和代码位置放置到域C-2504中。此时,对页面表的所有未授权的访问将生成在受保护的执行环境系统中的陷阱,并且将生成从域D306写入到域C-2504的Biba违例。所有授权的操作将是从域C-2504到域C-2的写入或从域C-2到域D306的写入。此时,已保护了核心系统(内核)寄存器和页面表。这允许系统在这些核心元件上构建更复杂的陷阱。
图7是示出根据本发明的实施例的设置应用陷阱的流程图700。图7提供了图6的块604的实施例的进一步细节来用于建立或改变域C-i。这在无论何时AV应用确定必须保护内核或用户存储器的区域,或当系统状态改变使得以前没有访问特定存储器区域的代码区域现在需要访问那个区域时发生。在块702,AV应用300确定在内核或应用存储器中需要保护的位置。AV应用读取客户OS硬件寄存器512和页面表514来计算陷阱的位置。这些值驻留在域C-1502或域C-2504中。在块704,AV应用向错误处理器304发送消息,以在所需的存储器位置和允许对这些存储器位置做出修改的一列代码位置上设置陷阱。在块706,错误处理器在存储器位置和授权修改存储器位置的所有代码位置上设置写入陷阱。然后错误处理器将这些元件放置到域C-i中,其中i被确定为j-1,其中j是用于计算陷阱的地址和位置的最高域级别。来自未受保护区域的所有未授权访问将生成Biba违例,这是因为其将是从域D306到域C-i的写入。但是,如果在域C-i内存在多个区域,则将需要辨别在该域内的写入(从被授权写入到一个存储区区域的写入不能被允许向该域中的所有区域写入)。
图8是示出根据本发明的另一实施例的设置应用陷阱的流程图800。这个过程可被用作图7的替换流程。在块802,AV应用确定在内核或应用代码内的位置需要访问在域C-i内的存储器位置。这可能是因为安装了新的驱动器或其他软件。在块804,AV应用向错误处理器发送消息以包括在域C-i内的代码区域。在块806,错误处理器在代码位置上设置陷阱,并将代码位置放置到域C-i中。
至此,已将AV应用表示为在受保护的执行环境系统内的单个实体,但在实施例中,AV应用可以由多个部分组成并且所述部分可以驻留在系统内的不同域中。例如,在实施例中,AV应用可以由两个部件组成:在客户OS对象上设置陷阱的AV配置(Config)应用510,和读取未受保护页面和文件来用于寻找恶意软件感染的AV扫描器应用518。通过这个分割模型,可将AV配置部件提升到域C500中,但是AV扫描器518可以保留在较低的域中。在一个实施例中,可将AV扫描器放置在最低的C子域中(域C-n506),并且AV扫描器取决于所有更高域的完整性,但是它隔离于来自域D恶意软件的攻击,这是因为任何由域D恶意软件向AV扫描器的写入将生成Biba错误。
当在“环”模式中使用Biba时,许可AV扫描器518读取域D的对象同时在域C-n506操作。如果检测到感染的对象,AV扫描器可以在域D产生子程序来删除或隔离感染的文件。因为AV扫描器不能在域C-n运行,所以AV扫描器永远不会受到攻击型恶意软件的威胁。AV扫描器可以给成功通过AV扫描的硬盘驱动器(HDD)或固态硬盘(SSD)320或存储页面分配新的标签。新标签是大于D并小于域C-n的域。通过验证标签改变请求来源于AV扫描器页面,同时页面陷阱是激活的且AV扫描器标签在域C-n或更高的域,资源管理器(RM)110验证AV扫描器是可信的(例如,页面陷阱保护是合适的)以执行在已扫描的对象上执行标签改变。
当在“低水位线”模式使用Biba时,AV扫描器自动地将标签转换到域D来执行扫描。如果检测到感染的对象,扫描器可以立即移除或隔离,但是不可以改变清除对象的标签。然而,通过确认AV扫描器符合域C-n的要求,所述要求是已在所有临界代码和数据区域上放置了陷阱,并且在AV扫描器在域D中操作时这些陷阱已是合适的,AV扫描器可以按如上所述将其标签改变为域C-n。仅因为资源陷阱,AV扫描器518被保护不受域D恶意软件的损害;在此没有强制使用Biba限制。当在“严格”模式中使用Biba时,AV扫描器必须在执行对象扫描和隔离之前请求标签改变为域D。接着,当完成改变时,AV扫描器必须请求将标签改变回域C-n以对清除对象重新标注。
在实施例中,将AV扫描器放置到域C-n可以按如下完成。AV配置应用510确定在AV扫描器应用518内需要保护的位置。AV配置应用发信号通知错误处理器304将陷阱放置在适当的AV扫描器应用位置上。因为域C-n取决于所有其他的C子域,所以错误处理器设置适当的陷阱,并且将位置放置到域C-n506中。
图9是示出根本发明的实施例的执行陷阱的流程图900。在某一时间,在设陷的位置将发生写入。这将生成错误(通过AV扫描器机制或通过从较低完整性域向较高完整性域进行写入造成的Biba违例)。在块902,如果客户OS200应用或内核向设置了陷阱的存储器进行写入,则RM110标记页面访问并且调用错误处理器304。在块904,RM创建一组来自寄存器的系统状态表。在块906,RM调用错误处理器并将系统状态表传递给错误处理器。确信正确地构造了状态表。在块908,错误处理器确定被尝试访问的存储器的域和正在访问存储器的代码的域。在块910,如果尝试的存储器访问来自高于或等同于存储器的域的域,并且尝试访问存储器的代码位置列在允许改变这个存储器位置的范围组中,则错误处理器允许操作。在块912,如果尝试的存储器访问来自于低于存储器的域的域,则错误处理器不允许访问改变存储器。
图10是根据本发明的另一实施例的具有用于虚拟机管理器(VMM)1002的客户OS的执行容器完整性模型的图。所使用的VMM在虚拟化技术的技术领域中是普遍知晓的。在实施例中,VMM能够强制执行通常理解的Biba安全策略。RM110在高于VMM的完整性级别进行操作,使得代表VMM的任何尝试对RM进行的修改或破坏都构成对安全策略的违例。作为VMM负载的一部分,RM能够建立对VMM的信任,并且能够验证确认VMM能力的启动控制策略包括强制执行Biba安全规则的能力。在RM中的域策略管理器112将一系列Biba标签(即,特权)分配给在VMM内的VM策略管理器1004。VMM根据提供的范围强制执行Biba规则。在VMM中的VM策略管理器接着将特权分配给来自那个范围内的VM容器。这确保Biba级别系统范围的语义连续性,即使VMM可能不具有对所有计算平台资源的全局视角。
例如,如果在执行容器100中的应用程序(例如,AppL1104)被分配了特权域A114,并且运行在客户VM11008中的应用(例如,AppG11006)被分配了特权域A114,则这两个应用将使用类似的特权进行操作。此外,如果AppL1104将信息降级用于AppL2106消耗,则AppL2能够将那个信息通知给运行在客户OS200环境中的客户VM21012中的AppG21010,而不违反系统范围安全策略。类似地,AppG21010能够降级信息并且将其共享给运行在客户VM31016中并具有域C310的AppG31014,和/或AppL3108,而不违反安全策略。
具有通常理解的安全策略模型允许系统部件之间的灵活互动,同时仍旧可以确保保持系统的安全目的。如果确定客户OS环境具有低于受保护的执行环境的最大级别的可信度,则RM将保留在没有分配给VMM环境的范围的顶层的特权级别。如果VMM被损坏并且分配的特权在其分配的范围外,则RM能够在存储器和设备访问上执行范围检查来检测欺骗。如果使用安全启动技术(例如,可信的执行技术(TXT))启动VMM环境,则RM可以信任VMM来强制执行在VM页面上的范围检查。这可能会产生有益的性能影响。
受保护的执行环境的使用可以结合虚拟化,同时保持系统范围的Biba安全策略一致性。图11是根据本发明的实施例的具有用于VMM1002的客户OS200的执行容器完整性模型的图,其中虚拟机包括AV应用。可以使用受保护的执行环境来在VM11008中的更高的特权应用上强制执行域边界。具有相同特权的VMM信任VM1(例如,域0是代表VMM行动的VM)。但是,如果VM受到损害,VM能够破坏VMM的行为。
图11示出了用于填充在VM11008中的应用(AppG11006)的执行环境1022,使用存储器沙盒技术保护所述应用。VMM使用通常理解的由RM110的域策略管理器112指导的策略语法和语义来对VM强制执行Biba特权。另外的页面保护可被用于在VM11008中的AppG11006。可以将Biba策略分配给应用策略管理器102,使得分配给AppG11006的Biba标签在VMM策略管理器1004分配给VM11008的标签范围内。
在VM1008中的客户OS没有感知Biba的情况下,VMM1002能够注册应用1006页面1018来生成VMExit陷阱,使得VM清单1020包含用于构建VMExit陷阱的策略和Biba标签分配,其覆盖Biba感知VMM1002分配的默认标签。
在客户OS感知BibaVM1012&1016的情况下,VM根据VM做出的标签分配来分配存储器页面。
本发明的实施例通过实现由处理器的微代码强制执行的强制完整性策略来提供受保护的执行环境。正式指定的完整性规则(例如,Biba)使得验证和安全评估更简单。在处理器硬件中的执行(微代码)确保受到损害的OS不能容易地破坏安全策略。本发明的实施例可用于虚拟化环境和非虚拟化环境并用于在任意操作系统环境中。
图12示出了计算系统1200的实施例的框图。在各个实施例中,可以用能够执行参考本发明的一些实施例在本文中讨论的一种或多种操作的各种电子设备来提供系统1200的一个或多个部件。例如,可以使用系统1200的一个或多个部件来执行参考图1-11所讨论的操作,例如根据本文中的讨论的操作的处理指令、执行子程序等。还有,可以使用在本文中讨论的各种存储设备(例如,参考图12和/或图13)来存储数据、操作结果等。在一个实施例中,可以将在网络1203上接收(例如,经由网络接口设备1230和/或1330)的数据存储在存在于处理器1202(和/或图3的1302)中的高速缓存(例如,在实施例中为L1高速缓存)中。这些处理器可以接着根据本发明的各个实施例应用在本文中讨论的操作。
更具体地,计算系统1200可以包括经由互连网络(或总线)1204进行通信的一个或多个中央处理单元(CPU)1202或处理器。因此,在一些实施例中可以由处理器执行在本文中讨论的各种操作。此外,处理器1202可以包括通用处理器、网络处理器(其处理在计算机网络1203上传输的数据),或其他类型的处理器(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。此外,处理器1202可以具有单个或多个内核设计。具有多个内核设计的处理器1202可以在同一集成电路(IC)芯片上集成不同类型的处理器内核。还有,具有多个内核设计的处理器1202可以实现为对称的或非对称的多处理器。此外,可以由系统1200的一个或多个部件执行参考图1-11所讨论的操作。在实施例中,处理器(例如处理器11202-1)可以包括作为硬件线路逻辑(例如,电路)或微代码的资源管理器(RM)110。
芯片组1206也可以与互连网络1204进行通信。芯片组1206可以包括图形和存储器控制中心(GMCH)1208。GMCH1208可以包括与存储器1212进行通信的存储器控制器1210。存储器1212可以存储数据,包括处理器1202或计算系统1200包括的任意其他设备执行的指令序列。此外,存储器1212可以存储在本文中讨论的一种或多种程序或算法,例如执行容器100、客户OS200、编译器1213、根据执行表的指令、映射等。这些数据(包括指令)的相同部分或至少一部分可以存储在硬盘驱动器1228和/或在处理器1202内的一个或多个高速缓存中。在本发明的一个实施例中,存储器1212可以包括一种或多种易失性存储(或存储器)设备,例如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM),或其他类型的存储设备。还可以使用非易失性存储器,例如硬盘。另外的设备可以经由互连网络1204进行通信,例如多处理器和/或多系统存储器。
GMCH1208还可以包括与显示器1216通信的图形接口1214。在本发明的一个实施例中,图形接口1214可以经由加速图形端口(AGP)与显示器1216进行通信。在本发明的实施例中,显示器1216可以是通过例如信号转换器与图形接口1214进行通信的平板显示器,所述信号转换器将存储在存储设备(例如,视频存储器或系统存储器)中的图像的数字表示转换为由显示器1216进行解释和显示的显示信号。由接口1214产生的显示信号在被显示器1216解释并随后显示之前,可以通过各种控制设备。
中心接口1218可以允许GMCH1208和输入/输出(I/O)控制中心(ICH)1220进行通信。ICH1220可以向I/O设备提供与计算系统1200进行通信的接口。ICH1220可以通过外围桥(或控制器)1224与总线1222进行通信,所述外围桥(或控制器)1224例如为外围部件互连(PCI)桥、通用串行总线(USB)控制器,或其他类型的外围桥或控制器。桥1224可以提供在处理器1202和外围设备1224之间的数据路径。也可以使用其他类型的技术。还有,多条总线可以通过例如多个桥或控制器与ICH1220进行通信。此外,在本发明的各个实施例中,可以包括与ICH1220进行通信的其他外围设备:电子集成驱动器(IDE)或小型计算机系统接口(SCSI)硬盘驱动器、USB端口、键盘、鼠标、并行端口、串行端口、软盘驱动器、数字输出支持(例如,数字视频接口(DVI)),或其他设备。
总线1222可以与音频设备1226、一个或多个磁盘驱动器1228和网络接口设备1230进行通信,所述网络接口设备1230可以与计算机网络1203进行通信。在实施例中,设备1230可以是能够有线通信或无线通信的网络接口控制器(NIC)。其他设备可以经由总线1222进行通信。还有,在本发明的一些实施例中,各种部件(例如网络接口设备1230)可以与GMCH1208进行通信。此外,可以结合处理器1202、GMCH1208,和/或图形接口1214来形成单个芯片。
此外,计算系统1200可以包括易失性和/或非易失性存储器(或存储)。例如,非易失性存储器可以包括以下的一种或多种设备:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、磁盘驱动器(例如,1228)、软盘、光盘只读存储器(CD-ROM)、数字多用途盘(DVD)、闪存、磁光盘,或其他类型的能够存储电子数据(例如,包括指令)的机器可读介质。
在实施例中,可以以例如参考图13所讨论的点对点(PtP)配置来安排系统1200的部件。例如,通过多个点对点接口可以互连处理器、存储器和/或输入/输出设备。
更精确地,图13示出了根据本发明的实施例的安排为点对点(PtP)配置的计算系统1300。特别地,图13示出了其中通过多个点对点接口进行互连的处理器、存储器和输入/输出设备的系统。可以通过系统1300的一个或多个部件来执行参考图1-12所讨论的操作。
如图13所示,系统1300可以包括多个处理器,为了清楚仅示出了两个处理器,处理器1302和1304。处理器1302和1304每一个可以包括与存储器1310和1312相耦合的本地存储器控制中心(MCH)1306和1308(在一些实施例中,其可以是与图12中的GMCH1208是相同或相似的)。存储器1310和/或1312可以存储诸如参考图13的存储器1212所讨论的那些各类数据。
处理器1302和1304可以是例如参考图13的处理器1302所讨论的那些任何适当的处理器。处理器1302和1304可以分别使用PtP接口电路1316和1318经由点对点(PtP)接口1314来交换数据。处理器1302和1304中的每一个可以使用点对点接口电路1326、1328、1330和1332经由个体PtP接口1322和1324与芯片组1320进行数据交换。芯片组1320还可以使用PtP接口电路1337经由高性能图形接口1336与高性能图形电路1334进行数据交换。
通过使用处理器1302和1304可以提供本发明的至少一个实施例。例如,处理器1302和/或1304可以执行图1-11的一个或多个操作。但是本发明的其他实施例可以存在于图13的系统1300中的其他电路、逻辑单元或设备中。此外,本发明的其他实施例可以分布在图13中示出的数个电路、逻辑单元,或设备。
可以使用PtP接口电路1341来将芯片组1320耦合到总线1340。总线1340可以具有与其相耦合的一个或多个设备,例如总线桥1342和I/O设备1343。经由总线1344,总线桥1343可以与其他设备相耦合,所述其他设备例如为键盘/鼠标1345、参考图12讨论的网络接口设备1330(例如调制解调器、网络接口卡(NIC),或类似的可以与计算机网络1303相耦合的设备)、音频I/O设备1347,和/或数据存储设备1348。数据存储设备1348可以存储可被处理器1302和/或1304执行的代码1349。
在本发明的各个实施例中,在本文中例如参考图1-13所讨论的操作可以用硬件(例如,逻辑电路)、软件(包括,例如,控制处理器(例如参考图12-13所讨论的处理器)操作的微代码)、固件,或其上的组合,它们可以作为计算机程序产品来提供,例如,包括具有指令(或软件程序)存储在其上的有形的机器可读或计算机可读介质,所述指令用来为计算机(例如,处理器或计算机设备的其他逻辑)编程以执行在本文中讨论的操作。机器可读介质可以包括例如在文本中所讨论的那些存储设备。
本说明书中引用“一个实施例”或“实施例”指结合该实施例所描述的特定特征、结构或特性包括在本发明的至少一个实施例中。本说明书中各处出现的短语“在一个实施例中”并不必然全都指相同实施例。
在说明书和权利要求书中,可以使用术语“耦合”和“连接”以及它们的派生词。在特定的实施例中,“连接”可被用来指示两个或更多个元件彼此之间是直接物理接触或电接触的。“耦合”可以意味着两个或更多个元件是直接物理接触或电接触的。然而,“耦合”还可以意味着两个或更多的元件彼此之间不是直接接触的,但彼此之间仍然可以协作或交互。
此外,这些计算机可读媒介可以作为计算机程序产品而被下载,其中可以经由通信链路(例如总线、调制解调器,或网络连接)通过数据信号的方式将程序从远程计算机(例如,服务器)传送到请求计算机(例如,客户端)。
因此,虽然已经用具体到结构特征和/或方法动作的语言描述了实施例,但是可以理解,不应将声明的主题限制到所描述的具体特征或动作。而是,作为实现声明的主题的示例形式公开了这些具体特征和动作。

Claims (24)

1.一种在具有加载器和错误处理器的计算系统中,对在客户操作系统中运行的独立于操作系统(OS)的防病毒(AV)应用强制执行安全策略的方法,包括:
由所述AV应用指定错误处理器代码镜像、错误处理器清单、所述AV应用的存储器位置,和AV应用清单;
由所述加载器验证所述错误处理器代码镜像和所述错误处理器清单;
由所述加载器创建具有第一安全级别的第一安全域,将所述错误处理器代码镜像拷贝到与所述第一安全域相关联的存储器,并且启动所述错误处理器的执行;
由所述加载器请求锁定在所述客户OS中为所述AV应用保留的存储器页;
通过在所述客户OS存储器页中所选的代码段上设置陷阱,所述错误处理器锁定加载到客户OS存储器中的所述AV应用的可执行代码镜像;
由所述加载器测量AV应用存储器并将所述测量与所述AV应用清单进行比较;以及
当所述测量和比较步骤成功地验证所述AV应用时,由所述加载器将所述AV应用提升到所述第一安全域。
2.根据权利要求1所述的方法,其中,所述加载器和所述错误处理器在所述计算系统中的受保护的执行环境中执行。
3.根据权利要求1所述的方法,其中,在所述客户OS中运行的其他应用位于具有第二安全级别的第二安全域中,所述第一安全级别高于所述第二安全级别。
4.根据权利要求3所述的方法,其中,在所述第二安全域中运行的应用在没有触发由所述错误处理器检测到的陷阱的情况下不能修改在所述第一安全域中的存储器。
5.根据权利要求3所述的方法,其中,在所述第二安全域中运行的客户OS内核代码在没有触发由所述错误处理器检测到的陷阱的情况下不能修改在所述第一安全域中的存储器。
6.根据权利要求1所述的方法,还包括执行所述AV应用来扫描在所述计算系统中的恶意软件。
7.根据权利要求6所述的方法,还包括由所述错误处理器验证来自所述AV应用的消息来源于已锁定的客户OS存储器。
8.根据权利要求1所述的方法,其中,由所述计算系统的处理器的资源管理器逻辑来控制对所述安全域的访问。
9.根据权利要求1所述的方法,其中,所述AV应用在由虚拟机管理器(VMM)所控制的虚拟机中执行。
10.一种在具有加载器和错误处理器的计算系统中,对在客户操作系统中运行的独立于操作系统(OS)的防病毒(AV)应用强制执行安全策略的装置,包括:
用于由防病毒(AV)应用指定错误处理器代码镜像、错误处理器清单、所述AV应用的存储器位置,和AV应用清单的模块;
用于由所述加载器验证所述错误处理器代码镜像和所述错误处理器清单的模块;
用于由所述加载器创建具有第一安全级别的第一安全域,将所述错误处理器代码镜像拷贝到与所述第一安全域相关联的存储器,并且启动所述错误处理器的执行的模块;
用于由所述加载器请求锁定在所述客户OS中为所述AV应用保留的存储器页的模块;
用于通过在所述客户OS存储器页中所选的代码段上设置陷阱,所述错误处理器锁定加载到客户OS存储器中的所述AV应用的可执行代码镜像的模块;
用于由所述加载器测量AV应用存储器并将所述测量与所述AV应用清单进行比较的模块;以及
用于当执行所述测量和比较的模块成功地验证所述AV应用时,由所述加载器将所述AV应用提升到所述第一安全域的模块。
11.根据权利要求10所述的装置,其中,所述加载器和所述错误处理器在所述计算系统中的受保护的执行环境中执行。
12.根据权利要求10所述的装置,其中,在所述客户OS中运行的其他应用位于具有第二安全级别的第二安全域中,所述第一安全级别高于所述第二安全级别。
13.根据权利要求12所述的装置,其中,在所述第二安全域中运行的应用在没有触发由所述错误处理器检测到的陷阱的情况下不能修改在所述第一安全域中的存储器。
14.根据权利要求12所述的装置,其中,在所述第二安全域中运行的客户OS内核代码在没有触发由所述错误处理器检测到的陷阱的情况下不能修改在所述第一安全域中的存储器。
15.根据权利要求10所述的装置,还包括用于执行所述AV应用来扫描在所述计算系统中的恶意软件的模块。
16.根据权利要求15所述的装置,还包括用于由所述错误处理器验证来自所述AV应用的消息来源于已锁定的客户OS存储器的模块。
17.一种用于对防病毒代理强制执行强制性安全策略的计算系统,包括:
用于执行指令来强制执行用于所述计算系统的安全策略的处理器,所述处理器包括控制对多个安全域的访问的资源管理器逻辑;
包括加载器和错误处理器的执行容器;以及
包括防病毒(AV)应用的客户操作系统(OS);
其中,所述AV应用指定错误处理器代码镜像、错误处理器清单、所述AV应用的存储器位置,和AV应用清单;
其中,所述加载器验证所述错误处理器代码镜像和所述错误处理器清单,创建具有第一安全级别的第一安全域,将所述错误处理器代码镜像拷贝到与所述第一安全域相关联的存储器,启动由所述处理器执行的所述错误处理器,和请求锁定在所述客户OS中为所述AV应用保留的存储器页;
其中,所述错误处理器通过在所述客户OS存储器页中所选的代码段上设置陷阱来锁定加载到客户OS存储器中的所述AV应用的可执行代码镜像;以及
其中,所述加载器测量AV应用存储器,将所述测量与所述AV应用清单进行比较,并且当所述测量和比较的结果成功地验证所述AV应用时,将所述AV应用提升到所述第一安全域。
18.根据权利要求17所述的计算系统,其中,在所述客户OS中运行的其他应用位于具有第二安全级别的第二安全域中,所述第一安全级别高于所述第二安全级别。
19.根据权利要求18所述的计算系统,其中,在所述第二安全域中运行的应用在没有触发由所述错误处理器检测到的陷阱的情况下不能修改在所述第一安全域中的存储器。
20.根据权利要求18所述的计算系统,其中,在所述第二安全域中运行的客户OS内核代码在没有触发由所述错误处理器检测到的陷阱的情况下不能修改在所述第一安全域中的存储器。
21.根据权利要求17所述的计算系统,还包括执行所述AV应用来扫描在所述计算系统中的恶意软件。
22.根据权利要求21所述的计算系统,其中,所述错误处理器验证来自所述AV应用的消息来源于已锁定的客户OS存储器。
23.根据权利要求17所述的计算系统,还包括在所述客户OS中用于实例化虚拟机的虚拟机管理器(VMM),其中,所述AV应用在所述虚拟机中执行。
24.根据权利要求17所述的计算系统,其中,所述执行容器包括受保护的执行环境。
CN201180044799.9A 2010-08-18 2011-07-25 用于在独立于操作系统(os)的防病毒(av)扫描器上执行强制性安全策略的方法和装置 Expired - Fee Related CN103119601B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/858,882 US20120047580A1 (en) 2010-08-18 2010-08-18 Method and apparatus for enforcing a mandatory security policy on an operating system (os) independent anti-virus (av) scanner
US12/858,882 2010-08-18
PCT/US2011/045158 WO2012024057A2 (en) 2010-08-18 2011-07-25 Method and apparatus for enforcing a mandatory security policy on an operating system (os) independent anti-virus (av) scanner

Publications (2)

Publication Number Publication Date
CN103119601A CN103119601A (zh) 2013-05-22
CN103119601B true CN103119601B (zh) 2016-01-27

Family

ID=45595127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180044799.9A Expired - Fee Related CN103119601B (zh) 2010-08-18 2011-07-25 用于在独立于操作系统(os)的防病毒(av)扫描器上执行强制性安全策略的方法和装置

Country Status (8)

Country Link
US (1) US20120047580A1 (zh)
EP (1) EP2606450B1 (zh)
JP (1) JP5487479B2 (zh)
KR (1) KR101536486B1 (zh)
CN (1) CN103119601B (zh)
AU (1) AU2011292373B2 (zh)
TW (1) TWI539320B (zh)
WO (1) WO2012024057A2 (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904537B2 (en) * 2011-05-09 2014-12-02 F—Secure Corporation Malware detection
US9910823B2 (en) 2011-05-16 2018-03-06 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) having an instruction set optimized to minimize memory fetch
US8934279B2 (en) * 2011-05-16 2015-01-13 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space
US9588881B2 (en) 2011-05-16 2017-03-07 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space having an instruction set optimized to minimize processor stack accesses
CN103620612B (zh) * 2011-07-12 2016-04-13 惠普发展公司,有限责任合伙企业 包括端口和来宾域的计算设备
CN104335220B (zh) * 2012-03-30 2018-04-20 爱迪德技术有限公司 用于防止和检测安全威胁的方法和系统
EP2973175B1 (en) * 2013-03-13 2019-07-31 Intel Corporation Managing device driver cross ring accesses
US10075470B2 (en) * 2013-04-19 2018-09-11 Nicira, Inc. Framework for coordination between endpoint security and network security services
CN104217161B (zh) * 2013-05-30 2016-08-17 腾讯科技(深圳)有限公司 一种病毒扫描方法及系统、终端设备
CN103354530B (zh) * 2013-07-18 2016-08-10 北京启明星辰信息技术股份有限公司 虚拟化网络边界数据流汇聚方法及装置
US9792112B2 (en) * 2013-08-28 2017-10-17 Via Technologies, Inc. Propagation of microcode patches to multiple cores in multicore microprocessor
US9465432B2 (en) 2013-08-28 2016-10-11 Via Technologies, Inc. Multi-core synchronization mechanism
US9507404B2 (en) 2013-08-28 2016-11-29 Via Technologies, Inc. Single core wakeup multi-core synchronization mechanism
US9674225B2 (en) 2013-09-20 2017-06-06 Open Text Sa Ulc System and method for updating downloaded applications using managed container
US9292686B2 (en) 2014-01-16 2016-03-22 Fireeye, Inc. Micro-virtualization architecture for threat-aware microvisor deployment in a node of a network environment
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9912681B1 (en) 2015-03-31 2018-03-06 Fireeye, Inc. Injection of content processing delay in an endpoint
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US10339302B2 (en) 2015-05-21 2019-07-02 Airwatch Llc Creating multiple workspaces in a device
US10223526B2 (en) * 2015-05-21 2019-03-05 Airwatch Llc Generating packages for managed applications
US10171502B2 (en) * 2015-05-21 2019-01-01 Airwatch Llc Managed applications
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US10374805B2 (en) * 2015-07-20 2019-08-06 Intel Corporation Technologies for trusted I/O for multiple co-existing trusted execution environments under ISA control
US11593075B2 (en) 2015-11-03 2023-02-28 Open Text Sa Ulc Streamlined fast and efficient application building and customization systems and methods
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
US11388037B2 (en) 2016-02-25 2022-07-12 Open Text Sa Ulc Systems and methods for providing managed services
US10191861B1 (en) 2016-09-06 2019-01-29 Fireeye, Inc. Technique for implementing memory views using a layered virtualization architecture
KR102573921B1 (ko) * 2016-09-13 2023-09-04 삼성전자주식회사 바이러스/멀웨어로부터 안전한 저장 장치, 그것을 포함한 컴퓨팅 시스템 및 그것의 방법
US9830469B1 (en) * 2016-10-31 2017-11-28 International Business Machines Corporation Automated mechanism to secure customer data
US10951644B1 (en) * 2017-04-07 2021-03-16 Comodo Security Solutions, Inc. Auto-containment of potentially vulnerable applications
US10650156B2 (en) 2017-04-26 2020-05-12 International Business Machines Corporation Environmental security controls to prevent unauthorized access to files, programs, and objects
US10977361B2 (en) * 2017-05-16 2021-04-13 Beyondtrust Software, Inc. Systems and methods for controlling privileged operations
US10705976B2 (en) * 2018-06-29 2020-07-07 Intel Corporation Scalable processor-assisted guest physical address translation
US10922439B2 (en) * 2018-06-29 2021-02-16 Intel Corporation Technologies for verifying memory integrity across multiple memory regions
KR102140714B1 (ko) 2018-11-26 2020-08-03 단국대학교 산학협력단 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템
CN111382433B (zh) * 2018-12-29 2022-12-13 龙芯中科技术股份有限公司 模块加载方法、装置、设备以及存储介质
US20200285501A1 (en) * 2019-03-08 2020-09-10 International Business Machines Corporation Communication interface of a secure interface control
US11520493B2 (en) * 2019-07-23 2022-12-06 Arm Technology (China) Co. LTD Allocation policy for shared resource accessible in both secure and less secure domains
US11436342B2 (en) 2019-12-26 2022-09-06 Intel Corporation TDX islands with self-contained scope enabling TDX KeyID scaling
CN113505373A (zh) * 2021-07-09 2021-10-15 福建健康之路信息技术有限公司 一种软件代码质量的测试方法和存储设备
US20230087520A1 (en) * 2021-09-17 2023-03-23 Mediatek Inc. Kernel protection system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1723465A (zh) * 2002-02-25 2006-01-18 英特尔公司 加载可信操作系统的方法和装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7503067B2 (en) * 2004-02-02 2009-03-10 Toshiba Corporation Preset security levels
US20070000005A1 (en) * 2005-06-20 2007-01-04 Wang Wen P Soft pad
US7669242B2 (en) * 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
US7380049B2 (en) * 2005-09-06 2008-05-27 Intel Corporation Memory protection within a virtual partition
US7845009B2 (en) * 2006-05-16 2010-11-30 Intel Corporation Method and apparatus to detect kernel mode rootkit events through virtualization traps
US8356361B2 (en) * 2006-11-07 2013-01-15 Spansion Llc Secure co-processing memory controller integrated into an embedded memory subsystem
US20080320594A1 (en) * 2007-03-19 2008-12-25 Xuxian Jiang Malware Detector
US8561061B2 (en) * 2007-05-14 2013-10-15 Vmware, Inc. Adaptive dynamic selection and application of multiple virtualization techniques
US8307443B2 (en) * 2007-09-28 2012-11-06 Microsoft Corporation Securing anti-virus software with virtualization
US8839237B2 (en) * 2007-12-31 2014-09-16 Intel Corporation Method and apparatus for tamper resistant communication in a virtualization enabled platform
US8042190B2 (en) * 2007-12-31 2011-10-18 Intel Corporation Pre-boot protected memory channel
US8539200B2 (en) * 2008-04-23 2013-09-17 Intel Corporation OS-mediated launch of OS-independent application

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1723465A (zh) * 2002-02-25 2006-01-18 英特尔公司 加载可信操作系统的方法和装置

Also Published As

Publication number Publication date
EP2606450A4 (en) 2014-08-20
US20120047580A1 (en) 2012-02-23
EP2606450B1 (en) 2015-09-02
WO2012024057A3 (en) 2012-05-10
JP2013537672A (ja) 2013-10-03
KR20130045389A (ko) 2013-05-03
TW201224840A (en) 2012-06-16
JP5487479B2 (ja) 2014-05-07
AU2011292373B2 (en) 2014-06-19
WO2012024057A2 (en) 2012-02-23
EP2606450A2 (en) 2013-06-26
TWI539320B (zh) 2016-06-21
KR101536486B1 (ko) 2015-07-13
CN103119601A (zh) 2013-05-22
AU2011292373A1 (en) 2013-03-14

Similar Documents

Publication Publication Date Title
CN103119601B (zh) 用于在独立于操作系统(os)的防病毒(av)扫描器上执行强制性安全策略的方法和装置
US20210194696A1 (en) System and method for high performance secure access to a trusted platform module on a hardware virtualization platform
CN111651778B (zh) 基于risc-v指令架构的物理内存隔离方法
US10114958B2 (en) Protected regions
Koeberl et al. TrustLite: A security architecture for tiny embedded devices
US9203855B1 (en) Systems and methods involving aspects of hardware virtualization such as hypervisor, detection and interception of code or instruction execution including API calls, and/or other features
CN101266635B (zh) 用于控制对关键存储器区域的访问的方法和系统
CN100533385C (zh) 用于提供系统完整性和遗留环境模拟的方法及装置
CN109643290B (zh) 用于具用扩展分段的面向对象的存储器管理的技术
US20150332048A1 (en) Systems and Methods Involving Features of Hardware Virtualization, Hypervisor, APIs of Interest, and/or Other Features
US8327415B2 (en) Enabling byte-code based image isolation
Hunt et al. Confidential computing for OpenPOWER
CN105393255A (zh) 用于虚拟机中的恶意软件检测的过程评估
JP2010182196A (ja) 情報処理装置およびファイル検証システム
KR102579861B1 (ko) 차량용 소프트웨어 업데이트 장치 및 그 제어 방법
Yao et al. Building Secure Firmware
US11188640B1 (en) Platform firmware isolation
CN114741740B (zh) 基于risc-v的物理内存保护方法、系统和相关设备
CN115422554A (zh) 请求处理方法、编译方法和可信计算系统
Cho et al. Instruction-level data isolation for the kernel on ARM
CN113448682B (zh) 一种虚拟机监控器加载方法、装置及电子设备
Peters et al. Software separation in measuring instruments through security concepts and separation kernels
Ozga Towards a Formally Verified Security Monitor for VM-based Confidential Computing
US20240070260A1 (en) Process Credential Protection
Yao et al. Proactive Firmware Security Development

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160127

Termination date: 20170725