CN104520867B - 用于目标装置的主动监测、存储器保护和完整性验证的方法、系统和计算机可读介质 - Google Patents

用于目标装置的主动监测、存储器保护和完整性验证的方法、系统和计算机可读介质 Download PDF

Info

Publication number
CN104520867B
CN104520867B CN201380041361.4A CN201380041361A CN104520867B CN 104520867 B CN104520867 B CN 104520867B CN 201380041361 A CN201380041361 A CN 201380041361A CN 104520867 B CN104520867 B CN 104520867B
Authority
CN
China
Prior art keywords
virtual processor
normal boundary
safety limit
processor
destination
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
CN201380041361.4A
Other languages
English (en)
Other versions
CN104520867A (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.)
NORTH CARLINA STATE UNIVERSITY
Original Assignee
NORTH CARLINA STATE UNIVERSITY
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 NORTH CARLINA STATE UNIVERSITY filed Critical NORTH CARLINA STATE UNIVERSITY
Publication of CN104520867A publication Critical patent/CN104520867A/zh
Application granted granted Critical
Publication of CN104520867B publication Critical patent/CN104520867B/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

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

Abstract

公开一种用于目标装置的主动监测、存储器保护和完整性验证的方法、系统和计算机可读介质。例如,在目标装置上配置(instantiate,实例化)正常界虚拟处理器和安全界虚拟处理器。在正常界虚拟处理器上执行目标操作系统。在安全界虚拟处理器上执行完整性验证代理。在正常界虚拟处理器上尝试的一个或更多个预定操作被困制于安全界虚拟处理器。完整性验证代理用于确定在目标装置上执行所述被困制操作的效果。

Description

用于目标装置的主动监测、存储器保护和完整性验证的方法、 系统和计算机可读介质
优先权声明
本申请要求于2012年8月3日提交的序列号为61/679,305的美国临时专利申请的权益;所述临时专利申请的公开通过引用全部合并于此。
政府利益
利用由(美国)国家科学基金会授予的基金号为0910767的政府支持和由美国陆军研究办公室授予的基金号为W911NF-08-1-0105和528787的政府支持做出了本发明。政府在本发明中享有一定权利。
技术领域
在此描述的主题涉及到计算机系统安全。更具体地讲,在此描述的主题涉及一种用于目标装置的主动监测、存储器保护和完整性验证的方法、系统和计算机可读介质。
背景技术
攻击和安全漏洞所导致的破坏和损失引起了对于开发包括移动和嵌入式系统的用于计算平台的安全且可靠的系统的关注。
计算机攻击和安全漏洞能通过对操作系统(OS)内核或关键程序(比如,在目标系统内运行的用户进程或系统管理后台程序)执行未授权的修改来严重影响目标装置。具体地讲,修改OS内核可允许恶意攻击者拥有对整个系统的无限制的访问。
这些挑战呈现出对于开发出与运行中的OS良好地隔离但能主动监测目标系统(包括内核)并提供需要的存储器保护以保证其完整性的非传统的解决方案的需求。
发明内容
公开一种用于在目标装置上运行的软件程序的主动监测、存储器保护和完整性验证的方法、系统和计算机可读介质。根据一种方法,在目标装置上配置(instantiate,实例化)正常界虚拟处理器和安全界虚拟处理器。在正常界虚拟处理器上执行目标操作系统。在安全界虚拟处理器上执行完整性验证代理。在正常界虚拟处理器上尝试的预定操作被困制于安全界虚拟处理器。完整性验证代理用于确定困制操作在目标装置上的执行效果。
在所述方法中,其中,使用完整性验证代理确定目标装置的困制操作的执行效果的步骤包括执行缓解(mitigate)动作。在所述方法中,其中,缓解动作包括拒绝执行被困操作、发布安全警告或关闭目标装置。
在所述方法中,其中,完整性验证代理使用安全策略,其中,执行缓解动作的步骤响应于能违反安全策略的被困操作而发生。
在所述方法中,其中,目标装置包括计算平台、智能电话、PDA、平板计算机或嵌入式系统。
根据一种系统,所述系统包括被配置为在目标装置上执行的正常界虚拟处理器和安全界虚拟处理器。所述系统还包括被配置为在安全界虚拟处理器上执行的完整性验证代理。所述系统还包括在正常界虚拟处理器上执行的目标操作系统。正常界虚拟处理器被配置为限制在正常界虚拟处理器上尝试的一个或更多个预定操作。安全界虚拟处理器被配置为使用完整性验证代理确定困制操作在目标装置上的执行效果。
在所述系统中,所述被困的一个或更多个预定操作包括安全关键操作、特权指令、能禁用或修改由正常界虚拟处理器的存储器管理单元(MMU)提供的虚拟存储器访问保护的指令、能修改与目标装置的处理器或协处理器关联的一个或更多个预定寄存器的指令、能修改与目标装置关联的代码或关键的只读数据的指令、能修改与目标系统关联的直接存储器访问(DMA)控制器的指令、常规数据中止异常或用于系统调用的管理模式调用。
在所述系统中,其中,所述被困的一个或更多个预定操作包括能禁用、修改或缓解目标操作系统的完整性验证代理的指令。
在所述系统中,其中,安全界虚拟处理器与正常界虚拟处理器隔离并被保护不受正常界虚拟处理器影响。
在所述系统中,其中,安全界虚拟处理器的代码和数据不能由正常界虚拟处理器访问。
在所述系统中,其中,正常界虚拟处理器的代码和数据能由安全界虚拟处理器访问。
在所述系统中,其中,目标操作系统被配置为创建将特权代码页的存储器访问保护定义为“不可写入”的正常界虚拟处理器的虚拟存储器映射。在所述系统中,特权代码页包括处理向量中断或处理向量异常。在所述系统中,其中,正常界虚拟处理器的虚拟存储器映射被配置为将非特权代码页的存储器访问保护定义为“永不特许执行(PXN)”,使得所述一个或更多个非特权代码页被禁止执行能由特权代码页执行的特权指令或安全关键操作。
在所述系统中,其中,目标操作系统被配置为通过将执行环境从正常界虚拟处理器切换到安全界虚拟处理器使所述一个或更多个预定操作困于安全界虚拟处理器,使得所述操作不由在正常界中运行的目标操作系统而由在安全界中运行的完整性验证代理来执行。
在所述系统中,其中,目标操作系统被修改使得困于安全界虚拟处理器的所述一个或更多个预定操作由调用所替代,其中,将安全关键操作困制的步骤包括将对特权代码页的尝试写入困制。在所述系统中,其中,目标操作系统通过修改目标操作系统的源代码、修改目标操作系统的可执行二进制文件或二进制转换来修改。
在所述系统中,进一步包括执行目标操作系统的静态完整性校验。
在所述系统中,其中,完整性验证代理被配置为执行缓解动作。在所述系统中,其中,缓解动作包括:拒绝执行被困操作、发布安全警告或关闭目标装置。在所述系统中,其中,完整性验证代理使用安全策略,其中,执行缓解动作的步骤响应于能违反安全策略的被困操作而发生。
在所述系统中,其中,目标装置包括计算平台、智能电话、PDA、平板计算机或嵌入式系统。
根据一种非暂时性计算机可读介质,所述介质已在其上存储了当由计算机的处理器执行时控制计算机执行以下步骤的可执行指令,所述步骤包括:实例化目标装置上的正常界虚拟处理器和安全界虚拟处理器;执行正常界虚拟处理器上的目标操作系统;执行安全界虚拟处理器上的完整性验证代理;将在正常界虚拟处理器上尝试的一个或更多个预定操作困于安全界虚拟处理器;使用完整性验证代理确定目标装置的被困操作的执行效果。
用于目标装置的主动监测、存储器保护和完整性验证的在此描述的主题可以以硬件、软件、固件或它们的任意的组合来实现。如此,如在此使用的术语“功能”或“模块”表示用于实现所描述的功能的硬件、软件和/或固件。在一种示例性实施方式中,在此描述的主题可利用计算机可读介质来实现,在所述计算机可读介质上已存储了在由计算机的处理器执行时控制计算机执行步骤的可执行指令。适于实现在此描述的主题的示例性计算机可读介质包括非暂时性计算机可读介质,诸如,盘存储器装置、芯片存储器装置、可编程逻辑装置、专用集成电路。另外,实现在此描述的主题的计算机可读介质可位于单个装置或计算平台上,或者可跨越多个装置或计算平台来分布。
附图说明
现将参照附图解释在此描述的主题,在附图中:
图1是对MCR指令进行编码的样本的框图;
图2是根据在此描述的主题的实施例的用于目标装置的主动监测和存储器处理的系统的框图。
具体实施方式
我们拥有可解决这些挑战的新型技术和机制。在此描述的主题的方面可提供在正常界(normal world)虚拟处理器和安全界(secure world)虚拟处理器之间的基于硬件的隔离。诸如由ARM Holdings plc提供的ARM架构的特定处理器架构提供这样的隔离。在ARM中,此功能被称为ARM TrustZone技术。ARM的信任区(TrustZone)技术使基于硬件的隔离能将在单个物理处理器核上运行的代码分为两界:“安全界”和“正常界”(或“非安全界”)。安全界意在用于安全敏感性操作,而正常界意在用于其它操作。
在一些实施例中,我们将要被保护的目标操作系统置于正常界中,将我们信任的组件置于安全界中。此布置可在各种架构上实现。尽管在此描述的主题的一些方面使用ARMTrustZone架构,但是将理解的是,在此描述的方法和技术可在现在已知的或以后被开发的其它处理器架构上实现。
目标操作系统原则上可以是任何操作系统,诸如,Android、嵌入式Linux、NetBSD或现在已知的或以后被开发的任何其它的OS。在一些实施例中,目标操作系统可包括负责管理装置资源的内核。在一些实施例中,OS内核的代码可在“特权模式”下运行,并可被允许执行特权指令和安全关键操作。
在一些实施例中,目标装置可具有在非特权的“用户模式”下运行并可不被允许执行特权指令和安全关键操作的多个用户进程和/或后台程序。
在一些实施例中,在正常界虚拟处理器上尝试的一个或更多个预定操作(诸如,安全关键操作和特权指令)被困制于安全界虚拟处理器(限制在安全界虚拟处理器内)。例如,使安全关键操作或特权指令被困制(被限制)的步骤可包括将运行环境从正常界虚拟处理器切换到安全界虚拟处理器。在此示例中,安全关键操作或特权指令可不通过在正常界中运行的目标操作系统而通过在安全界中运行的完整性验证代理(agent)来执行。
在一些实施例中,完整性验证代理可被用来确定在目标装置上执行困制操作(限制操作)的效果。
在一些实施例中,可以修改正常界虚拟处理器上运行的目标OS,以使其不能够执行预定的安全关键操作或特权指令而无需将所述预定的操作或指令困制于在安全界虚拟处理器上运行的完整性验证代理内。例如,可以修改目标操作系统内核,以使全部的特权指令从所述内核的可执行的二进制文件(binary)被去除。例如,安全特权指令包括但不限于控制目标装置的存储器管理单元(MMU)的指令。
在一些实施例中,修改后的可执行二进制文件可被标记为只读以避免潜在的恶意修改,例如,将特权指令添加回二进制文件中的未授权指令。
在一些实施例中,根据在此描述的主题的多个方面的方法可包括目标操作系统的非特权程序(例如,用户进程)作为被映射为“永不特许执行(privileged-execute never)”的存储器,所以,即使所述非特权程序被恶意修改,所述非特权程序也不被允许执行特权指令。
在一些实施例中,可通过使用直接修改正常界OS的源代码、修改正常界OS的可执行二进制文件的任何的现有技术,或者通过使用二进制变换来进行对正常界OS的修改。
在一些实施例中,根据在此描述的主题的多个方面的方法还可包括使用存储器访问保护来防止目标操作系统获取用于执行安全关键操作的需要的存储器通路(access)。例如,安全关键操作可包括但不限于修改定义系统的存储器映射的页表或修改直接存储器访问(DMA)控制器。DMA控制器可确定外围装置可访问哪个存储器。攻击可试图利用DMA控制器以便使用外围装置来修改正常界虚拟处理器的代码或数据。
在一些实施例中,根据在此描述的主题的方面的方法可包括:当完整性验证代理检测到对执行违反预定策略的特权指令或安全关键操作的尝试时,检测目标装置的完整性违反。例如,所述策略可包括但不限于:不允许对正常界OS的可执行二级制文件的修改、禁用正常界OS的存储器访问保护或修改正常界OS的只读关键数据结构。
技术性能
我们的主要目标在于防止尝试修改目标装置(诸如正常界操作系统)或其中的部分的安全攻击。
在一些实施例中,在此描述的主题的方面可包括用于通过产生关于正常界操作系统的完整性状态的最新报告来检测恶意攻击的技术和/或方法。
在一些实施例中,在此描述的主题的方面可包括可包含在可导致危害正常界操作系统的完整性的指令和/或操作被执行前防止所述指令和/或操作的技术和/或方法。
在一些实施例中,在此描述的主题的方面可包括用于检测或防止恶意攻击或者二者的组合的技术和/或方法。
为了实现这些目标,在此描述的主题的方面可提供包括以下性能中的一种或更多种的方法、模块和/或装置:
1)主动监测包括安全关键操作和特权指令的正常界关键事件,并识别所述事件对正常界操作系统的状态的影响。
2)全面控制正常界存储器布局,使得安全界可确认在验证后的正常界程序被加载之后所述程序不能被篡改并且未验证的正常界程序将不能执行特权指令或安全关键操作。我们将此性能表示为“存储器保护”。
3)可基于预定安全策略的完整性验证。用于验证一个或更多个安全策略是否被违反的输入事件可由(上面提到的)主动监测和/或存储器保护而引起。
假定
在一些实施例中,在目标操作系统在正常界中运行或执行时,完整性验证(测量)代理可作为安全界的一部分来执行。
在一些实施例中,安全界可通过计算加载的二进制文件的校验和来进行正常界内核的加载时间验证(此处理作为静态测量是众所周知的)。
在一些实施例中,加载时间验证还可延伸至验证通过从正常界内核二进制文件去除全部特权指令而针对我们期望的保护适当地修改正常界内核。
在“Terra:用于可信计算的基于虚拟机的平台”(Grafinkel等,SOSP(2003))中描述了使用被隔离或保护的组件来验证通用系统的想法,该文献的公开通过引用全部合并于此。直观上,静态测量仅在启动处理期间保证正常界内核的完整性,但是静态测量不能在系统启动并开始与潜在攻击者交互之后保证所述内核的完整性。
在一些实施例中,OS内核仅是在正常界虚拟处理器上执行特权指令的软件。此外,所述内核可不依赖于混合的可写且可执行的页。通过我们的实验评估,我们发现近期版本的OS内核中的多种(例如,Android和Linux)通过将可执行代码与可写数据分开来遵循此假定。
风险模式:
在一些实施例中,根据在此描述的主题的方面的方法考虑到旨在在正常界操作系统内部暗地里执行代码的全部攻击。在此情境中,暗地里意为将在不更新在安全界中运行的完整性验证代理的情况下执行代码。不是通过加载新的未验证代码二进制文件就是通过修改先前被映射并已经存在于存储器中的代码二进制文件来进行这样的攻击。我们设计我们的系统以处理所述两种情况。
在一些实施例中,根据在此描述的主题的方面的方法还可考虑到旨在在正常界操作系统内部修改安全关键数据的全部攻击。在此环境中,安全关键数据应针对完整性验证代理而被预定义以监测安全关键数据的修改。
攻击者可利用包括将允许攻击者控制正常界内核的内核隐患的任何现有系统隐患来非法侵入正常界操作系统。假定这些隐患涉及加载新代码或修改现有代码,我们保证我们的系统应检测到和/或防止任何这些隐患。
然而,有一种不需要修改或加载代码的特殊类型的攻击,即返回导向攻击。尽管我们的系统由于返回导向攻击仅仅依赖于数据隐患而不能检测到返回导向攻击,但是我们保证这些攻击将不会通过在安全界中加载未被完整性测量代理测量的新程序(例如,恶意应用)来颠覆我们的主动监测和存储器保护框架。
在基于信任区(TrustZone)的系统中主动监测和存储器保护的技术挑战
在一些实施例中,我们的系统的一个示例性设计基于ARM TrustZone。尽管这赋予了较强的基于硬件的保护,但是它限制其紧密控制测量目标(正常界操作系统)的性能。在下文中,我们讨论面临在使用基于ARM TrustZone的完整性监测的实施例中实现主动监测和存储器保护的主要挑战和限制。
1、由信任区提供的存储器保护:信任区技术的主要目的是创建防止安全关键资产(asset)(安全界存储器和外围设备)被正常界访问的硬件隔离环境。然而,这样的隔离原则上赋予所述两界之一对所述两界之一的自身资源的完全控制。因此,正常界内核完全控制其被分配的物理存储器,所述完全控制包括充分配置存储器管理单元(MMU)并将访问权限(例如,只读、可写、可执行)分配给正常界内核的映射存储器页。直观上,这样的架构为安全界组件带来了监测并保护属于正常界的关键存储器区域的挑战。
2、在信任区中处理的中断和异常:尽管信任区允许安全界选择将要由安全界处理的一组事件,但是这些事件限于外部中断(IRQ或FIQ)以及特定类型的异常(例如,外部数据中止(data abort))。然而,其它类型的异常和关键事件(例如,常规数据中止异常或用于系统调用的管理模式调用)不能被配置为困制于安全界,其它类型的异常和关键事件由正常界来直接处理。直观上,这样的事件可影响正常界的完整性状态。如果这些事件不被困制于安全界,则对完整性的这样的影响会被完整性监测代理忽视。
推荐的技术
在此描述的主题的多个方面通过将关键事件困制于安全界来允许正常界的主动监测。此外,我们使用这种主动监测技术来掌握对正常界的虚拟存储器映射的控制,使得这种主动监测技术可利用虚拟存储器访问许可标志来提供对正常界存储器的完全保护。
在我们呈现我们的技术之前,我们给出关于ARM v7处理器的三种架构原理的简要背景,所述三种架构原理与在ARM v7架构上实现在此描述的主题的多个方面的实施例相关。如之前提到的,将理解这里的方法和技术可在除了在这个示例性设计中使用的ARM v7之外的现在已知或以后被开发的任何处理器架构上实现。
ARM协处理器支持:ARM v7架构支持协处理器以拓展ARM v7处理器的功能性。协处理器指令提供对十六个协处理器的访问(0至15)。协处理器15(CP15)提供控制大多数处理器和存储器系统功能(例如,MMU、中断向量处理器、高速缓存、性能模式)的系统控制寄存器。
对CP15协处理器的受控访问:可通过特殊命令(例如,MCR和LDC)来进行对用于读取和写入的ARM v7CP15的访问。这被限制以使其只通过特权软件(即,内核代码)发生。此外,ARM v7虚拟存储器系统架构可使用特许不执行(Privileged Non eXecute,PXN)访问许可来规定:仅仅允许定义的存储器页集在特权模式下执行。
一致的(Aligned)本地代码:ARM指令集(不是thumb就是arm)由32位或16位的一致的单一的二进制指令序列所构成的本地代码构成。每个二进制指令包含一个32位或16位二进制字形式的操作码和操作数。我们的主动监测可被总结为以下基本原理:
正常界被初始化使得正常界只允许(由虚拟存储器访问控制限定的)特定存储器范围执行特权代码。
在一些实施例中,这可通过加载正常界的可信的预配置初始图像来进行。
在一些实施例中,这些特权存储器页被标记为不可写的并可被细心检查使得所述特权存储器页不包含进行特定特权操作的任何单一指令(例如,修改ARM v7架构的CP15中的关键寄存器的指令),正常界将不可运行这些指令。因此,正常界内核将不能修改由这些指令控制的处理器功能(例如,由ARM v7架构的特定关键CP15寄存器控制的功能)。
在一些实施例中,这些关键指令全体可以是用于控制正常界虚拟处理的虚拟存储器访问控制的唯一方法。
主动监测和存储器保护框架的示例性实施方式将利用以下步骤中的一个或更多个来实现:
1、在初始化目标装置之后,正常界的虚拟存储器映射可以(通过正常界或安全界)来配置,使得包括中断与异常处理向量的特权代码页被标记为不可写的。
2、要么属于内核要么属于用户进程的全部其它的正常界映射页可被标记为PXN页,使得即使所述正常界映射页随后被修改,所述正常界映射页也从不被允许执行修改正常界的状态的特权指令(例如,访问ARM v7CP15的特定安全关键寄存器的那些指令)。
3、用于定义正常界存储器布局和访问控制的全部页表可被标记为不可写。因此,对于页表的任何修改将导致数据中止异常。在一些实施例中,可由ARM v7CP15转换表基址寄存器(TTBR)或在其它架构上的具有相似功能的任何其它寄存器来指向这些页表。
4、可以修改不可写的内核页,以使对安全界虚拟处理器的调用(例如,安全监视调用(SMC)指令)替代安全关键操作和特权指令(例如,数据中止异常处理器、指令中止处理器、对页表写入和CP15寄存器写入)。因此,全部这些安全关键操作和特权指令将由安全界来处理。
5、安全界可检查关键事件并将关键事件转发到完整性测量代理以评估关键事件对系统的完整性状态的影响。在被困制的事件是页表写入的情况下,安全界将在确认被困制的活动不违反预定安全策略或不恢复由步骤1-4限定的任意操作(在一些实施例中,预定安全策略可包括禁止对原始内核页或任何页表赋予写入权限。这还可防止特权可执行页的映射)之后,为了正常界内核进行需要的页表修改。
6、在一些实施例中,完整性验证代理可使用计算机可读介质(例如,易失性或非易失性存储器)来存储关于正常界存储器映射的状态和/或任何需要的安全策略的信息。在示例实施方式中,完整性验证代理可存储标记正常界的每页状态的位图,使得完整性验证代理可检测对此页的id写入(或者在对应的页表入口改变正常界的存储器映射)是否会违反任何安全策略。
这些步骤可允许推荐的系统均实现正常界内核主动监测和正常内核存储器保护。步骤1和2防止在正常界内部运行的任何潜在的恶意软件通过将指令映射在存储器中或通过修改特权的已被映射的指令中的任意指令来执行特权指令。ARM本地代码只由32位或16位指令构成的事实使得ARM本地代码能逐字扫描可执行的特权页并确认所述指令中没有指令将访问关键寄存器。
在使用ARM v7架构的一些实施例中,图1示出用于写入CP寄存器的MCR指令的样本编码。CP寄存器由CP号和四个其它的参数(CRn、CRm、opc1和opc2)来限定。如果特权可执行页的32位(一致的)值被检查,使得没有指令能将MCR与这个特定寄存器匹配,则我们能保证这个寄存器将永不被正常界修改。作为我们的目标的关键寄存器特指禁用MMU、再定位中断向量处理器或再定位虚拟寻址转换表的基址的关键寄存器。
步骤3保证存储器保护。在使用ARM v7架构的一些实施例中,指向页表基址(base)的TTBR是CP15的一部分。在被禁止由正常界内核修改的寄存器中的TTBR将被标记(如步骤2所提到的)。因此,正常界将被限于将特定物理存储器用作页表。初始化代码将这个物理存储器(页表)映射为不可写。因此,任何页表更新将引起数据中止。由于所有的数据中止异常将被困制于安全界(如步骤4所讨论的),因此全部的页表修改将在实际作用于正常界之前被安全界检查。
步骤4保证需要的主动监测。在使用ARM v7架构的一些实施例中,诸如修改TTBR值以在用户进程之间进行环境切换的关键事件将不可能在正常界中执行。因此,正确执行此功能的唯一方式是针对正常界内核调用“SMC”指令并使关键操作由安全界来处理。此操作的安全性由这样的事实来支持,所述事实是CP寄存器写入和“SMC”调用均是由单一指令构成的原子操作。同时,所有的完整性检查(例如,验证新页表不具有可写入的特权页)通过安全界来进行,所述完整性检查不在正常界的范围内。甚至被返回导向攻击颠覆的内核将不能通过跳过复合代码的中间并略过潜在的正常界完整性验证来修改关键状态。
最后,实现步骤5意味着安全界将是保证主动监测性能将在系统寿命内保持有效的完整性验证的单点(single point)。通过对特权操作实施适当的完整性检查(诸如,验证最新映射的处理器的页表和验证MMU或虚拟页访问控制保护未被禁用),安全界将保证存储器保护和主动监测均适于正常界。
图2是根据在此描述的主题的实施例的用于目标装置的主动监测和存储器保护的系统的框图。在图2中,系统包括在目标装置104上的正常界虚拟处理器100和安全界虚拟处理器102。正常界虚拟处理器100和安全界虚拟处理器102可均是ARM TrustZone虚拟处理器,如在ARM安全技术、使用信任区技术建立安全系统、ARM Whitepaper、ARM Limited(2009)中所述,该文献的公开通过引用全部合并于此。目标装置104可以是可利用正常界虚拟处理器和安全界虚拟处理器来实现隔离的任何计算平台。这样的计算平台的示例包括:服务器,台式计算机,诸如智能电话、PDA或平板计算机的移动装置,或者可包括处理器和嵌入在器械或工业装置中的关联存储器的嵌入式系统(诸如,电表或水表)。
如上所述,目标操作系统106在正常界虚拟处理器100上执行,完整性验证代理108在安全界虚拟处理器102上执行。特定关键操作的执行被困制于安全界虚拟处理器102。困制操作的示例包括常规数据中止异常或用于系统调用的管理模式调用。困制操作在安全界虚拟处理器102上执行。完整性验证代理108监测在安全界虚拟处理器102上的困制操作的执行以评估困制操作的执行对目标装置104的完整性的效果。
例如,目标装置104可以是智能电话并且用户可在语音呼叫和电子邮件应用之间切换。在这样的情况下,目标OS 106可将新值写入处理器控制寄存器、CP 15,以在进程之间切换。如上所述,对CP 15的尝试写入被困制并被传输到用于验证的完整性验证代理108。完整性验证代理108可检验正被写入CP 15的值。在这种情况下,所述值可以是用于电子邮件应用的进程ID或存储器定位。为了验证进程ID,完整性验证代理108可搜索被允许的进程的列表以发现电子邮件应用是否被允许执行。在这种情况下,假定允许执行电子邮件应用,进而安全界虚拟处理器102可允许电子邮件应用执行。
在另一示例中,尝试被写入CP 15的存储器定位或进程ID可对应于不在被允许的应用的列表中的恶意软件。在这样的情况下,安全界虚拟处理器102可防止恶意软件执行。还应注意的是完整性验证代理108可(例如)利用应用的加密签章来咨询外部系统,以验证所述应用或处理。
将理解,在不脱离本公开主题的范围的情况下可改变本公开主题的各种细节。此外,前面的描述仅为了说明的目的,而不是为了限制的目的。

Claims (14)

1.一种用于目标装置的主动监测、存储器保护和完整性验证的方法,所述方法包括:
在目标装置上配置正常界虚拟处理器和安全界虚拟处理器;
在正常界虚拟处理器上执行目标操作系统;
在安全界虚拟处理器上执行完整性验证代理;
将在正常界虚拟处理器上尝试的一个或更多个预定操作困制于安全界虚拟处理器;
使用完整性验证代理确定目标装置的所述被困制的一个或更多个预定操作的执行效果,
其中,配置正常界虚拟处理器的步骤包括创建将特权代码页的存储器访问保护定义为“不可写入”的正常界虚拟处理器的虚拟存储器映射。
2.根据权利要求1所述的方法,其中,被困制的一个或更多个预定操作包括安全关键操作、特权指令、能操作为禁用或修改由正常界虚拟处理器的存储器管理单元(MMU)提供的虚拟存储器访问保护的指令、能操作为修改与目标装置的处理器或协处理器关联的一个或更多个预定寄存器的指令、能操作为修改与目标装置关联的代码或关键的只读数据的指令、能操作为修改与目标系统关联的直接存储器访问(DMA)控制器的指令、常规数据中止异常或用于系统调用的管理模式调用。
3.根据权利要求1所述的方法,其中,被困制的一个或更多个预定操作包括能操作为禁用、修改或缓解目标操作系统的完整性验证代理的指令。
4.根据权利要求1所述的方法,其中,安全界虚拟处理器与正常界虚拟处理器隔离,并保护安全界虚拟处理器不受正常界虚拟处理器的影响。
5.根据权利要求1所述的方法,其中,安全界虚拟处理器的代码和数据不能由正常界虚拟处理器访问。
6.根据权利要求1所述的方法,其中,正常界虚拟处理器的代码和数据能由安全界虚拟处理器访问。
7.根据权利要求1所述的方法,其中,特权代码页包括中断处理向量或异常处理向量。
8.根据权利要求1所述的方法,其中,正常界虚拟处理器的虚拟存储器映射将非特权代码页的存储器访问保护定义为“永不特许执行(PXN)”,使得所述一个或更多个非特权代码页被禁止执行能由特权代码页执行的特权指令或安全关键操作。
9.根据权利要求1所述的方法,其中,使所述一个或更多个预定操作困制于安全界虚拟处理器的步骤包括将执行环境从正常界虚拟处理器切换到安全界虚拟处理器,使得所述操作不由在正常界中运行的目标操作系统而由在安全界中运行的完整性验证代理来执行。
10.根据权利要求2所述的方法,包括修改正常界虚拟处理器的目标操作系统使得困制于安全界虚拟处理器的所述一个或更多个预定操作由调用所替代,其中,将安全关键操作困制的步骤包括将对特权代码页的尝试写入困制。
11.根据权利要求8所述的方法,其中,修改正常界虚拟处理器的目标操作系统的步骤包括:修改目标操作系统的源代码,修改目标操作系统的可执行二进制文件或二进制转换。
12.根据权利要求1所述的方法,包括执行目标操作系统的静态完整性校验。
13.根据权利要求1所述的方法,其中,使用完整性验证代理确定目标装置的困制操作的执行效果的步骤包括执行缓解动作。
14.一种用于目标装置的主动监测和存储器保护的系统,其中,所述系统包括:
正常界虚拟处理器和安全界虚拟处理器,被配置为在目标装置上执行;
完整性验证代理,被配置为在安全界虚拟处理器上执行;
其中,目标操作系统在正常界虚拟处理器上执行,并且,正常界虚拟处理器被配置为将在正常界虚拟处理器上尝试的一个或更多个预定操作困制于安全界虚拟处理器,并将特权代码页的存储器访问保护定义为“不可写入”的正常界虚拟处理器的虚拟存储器映射,
安全界虚拟处理器被配置为使用完整性验证代理确定所述被困制的一个或更多个预定操作在目标装置上的执行效果。
CN201380041361.4A 2012-08-03 2013-03-15 用于目标装置的主动监测、存储器保护和完整性验证的方法、系统和计算机可读介质 Expired - Fee Related CN104520867B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261679305P 2012-08-03 2012-08-03
US61/679,305 2012-08-03
PCT/US2013/000074 WO2014021919A2 (en) 2012-08-03 2013-03-15 Methods, systems, and computer readable medium for active monitoring, memory protection and integrity verification of target devices

Publications (2)

Publication Number Publication Date
CN104520867A CN104520867A (zh) 2015-04-15
CN104520867B true CN104520867B (zh) 2017-10-31

Family

ID=50028637

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380041361.4A Expired - Fee Related CN104520867B (zh) 2012-08-03 2013-03-15 用于目标装置的主动监测、存储器保护和完整性验证的方法、系统和计算机可读介质

Country Status (8)

Country Link
US (1) US9483635B2 (zh)
EP (1) EP2880587B1 (zh)
KR (1) KR20150038574A (zh)
CN (1) CN104520867B (zh)
AU (1) AU2013297064B2 (zh)
BR (1) BR112015002316A2 (zh)
RU (1) RU2615664C2 (zh)
WO (1) WO2014021919A2 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102183852B1 (ko) * 2013-11-22 2020-11-30 삼성전자주식회사 전자 장치의 무결성 검증을 위한 방법, 저장 매체 및 전자 장치
US9672354B2 (en) 2014-08-18 2017-06-06 Bitdefender IPR Management Ltd. Systems and methods for exposing a result of a current processor instruction upon exiting a virtual machine
US9832207B2 (en) 2014-12-23 2017-11-28 Mcafee, Inc. Input verification
US9798559B2 (en) 2014-12-27 2017-10-24 Mcafee, Inc. Trusted binary translation
US9996690B2 (en) 2014-12-27 2018-06-12 Mcafee, Llc Binary translation of a trusted binary with input tagging
US10019576B1 (en) 2015-04-06 2018-07-10 Intelligent Automation, Inc. Security control system for protection of multi-core processors
US10025925B2 (en) * 2015-06-23 2018-07-17 Adventium Enterprises, Llc Dynamically measuring the integrity of a computing apparatus
WO2017019061A1 (en) * 2015-07-29 2017-02-02 Hewlett Packard Enterprise Development Lp Firewall to determine access to a portion of memory
US10282224B2 (en) 2015-09-22 2019-05-07 Qualcomm Incorporated Dynamic register virtualization
US10055577B2 (en) * 2016-03-29 2018-08-21 Intel Corporation Technologies for mutual application isolation with processor-enforced secure enclaves
US10019583B2 (en) * 2016-04-01 2018-07-10 Samsung Electronics Co., Ltd. Method and apparatus for performing protected walk-based shadow paging using multiple stages of page tables
US10282190B2 (en) * 2016-12-01 2019-05-07 Dell Products, L.P. System and method for updating a UEFI image in an information handling system
KR102021008B1 (ko) 2017-08-23 2019-09-11 서울대학교산학협력단 Arm 시스템 소프트웨어 대한 인트라 레벨 권한 분리 시스템 및 방법
KR102416501B1 (ko) * 2017-09-20 2022-07-05 삼성전자주식회사 전자 장치 및 그의 제어 방법
KR102514062B1 (ko) * 2018-02-27 2023-03-24 삼성전자주식회사 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치
CN109684126B (zh) * 2018-12-25 2022-05-03 贵州华芯通半导体技术有限公司 用于arm设备的内存校验方法和执行内存校验的arm设备
US11531627B2 (en) 2019-03-08 2022-12-20 International Business Machines Corporation Secure storage isolation
US11640361B2 (en) 2019-03-08 2023-05-02 International Business Machines Corporation Sharing secure memory across multiple security domains
US11487906B2 (en) * 2019-03-08 2022-11-01 International Business Machines Corporation Storage sharing between a secure domain and a non-secure entity
CN111382445B (zh) * 2020-03-03 2023-04-07 首都师范大学 利用可信执行环境系统提供可信服务的方法
US11455395B2 (en) * 2020-06-17 2022-09-27 Hewlett Packard Enterprise Development Lp Perform verification check in response to change in page table base register
CN112256396B (zh) * 2020-10-23 2022-10-21 海光信息技术股份有限公司 内存管理方法、系统及安全处理装置、数据处理装置
CN113239329B (zh) * 2021-04-19 2024-03-19 南京大学 一种用于移动端应用程序的可信执行环境的实现系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1961272A (zh) * 2004-06-29 2007-05-09 英特尔公司 通过沙箱技术改进计算机安全性的方法
CN101266635A (zh) * 2006-12-27 2008-09-17 英特尔公司 提供对临界存储器区域的受保护访问
CN101399835A (zh) * 2007-09-17 2009-04-01 英特尔公司 用于虚拟系统上动态切换和实时安全性控制的方法和设备
US7950020B2 (en) * 2006-03-16 2011-05-24 Ntt Docomo, Inc. Secure operating system switching

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1303097A3 (en) * 2001-10-16 2005-11-30 Microsoft Corporation Virtual distributed security system
WO2004046925A1 (en) 2002-11-18 2004-06-03 Arm Limited Security mode switching via an exception vector
US7149862B2 (en) 2002-11-18 2006-12-12 Arm Limited Access control in a data processing apparatus
US7587763B2 (en) 2002-12-12 2009-09-08 Finite State Machine Labs, Inc. Systems and methods for detecting a security breach in a computer system
US20050107163A1 (en) * 2003-11-13 2005-05-19 Nguyen Binh T. Methods and apparatus for providing an electronic operational event trail for a gaming apparatus
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US8955104B2 (en) * 2004-07-07 2015-02-10 University Of Maryland College Park Method and system for monitoring system memory integrity
EP1955154A2 (en) * 2005-10-25 2008-08-13 Secure64 Software Corporation Secure virtual-machine monitor
US8732824B2 (en) * 2006-01-23 2014-05-20 Microsoft Corporation Method and system for monitoring integrity of running computer system
US20070226795A1 (en) * 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
RU2321055C2 (ru) * 2006-05-12 2008-03-27 Общество с ограниченной ответственностью Фирма "Анкад" Устройство защиты информации от несанкционированного доступа для компьютеров информационно-вычислительных систем
EP2075696A3 (en) * 2007-05-10 2010-01-27 Texas Instruments Incorporated Interrupt- related circuits, systems and processes
US8578483B2 (en) 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
US8819225B2 (en) * 2010-11-15 2014-08-26 George Mason Research Foundation, Inc. Hardware-assisted integrity monitor
US20120216281A1 (en) 2011-02-22 2012-08-23 PCTEL Secure LLC Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel
US8712407B1 (en) * 2012-04-05 2014-04-29 Sprint Communications Company L.P. Multiple secure elements in mobile electronic device with near field communication capability

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1961272A (zh) * 2004-06-29 2007-05-09 英特尔公司 通过沙箱技术改进计算机安全性的方法
US7950020B2 (en) * 2006-03-16 2011-05-24 Ntt Docomo, Inc. Secure operating system switching
CN101266635A (zh) * 2006-12-27 2008-09-17 英特尔公司 提供对临界存储器区域的受保护访问
CN101399835A (zh) * 2007-09-17 2009-04-01 英特尔公司 用于虚拟系统上动态切换和实时安全性控制的方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于ARM TrustZone技术的移动可信平台;杜文银;《测控技术》;20091230;第28卷;论文第53页,图1 *

Also Published As

Publication number Publication date
RU2615664C2 (ru) 2017-04-06
KR20150038574A (ko) 2015-04-08
EP2880587B1 (en) 2017-05-10
WO2014021919A2 (en) 2014-02-06
US20150199507A1 (en) 2015-07-16
BR112015002316A2 (pt) 2017-07-04
AU2013297064B2 (en) 2016-06-16
US9483635B2 (en) 2016-11-01
EP2880587A4 (en) 2016-04-27
AU2013297064A1 (en) 2015-03-05
WO2014021919A3 (en) 2014-03-27
CN104520867A (zh) 2015-04-15
RU2015107219A (ru) 2016-09-27
EP2880587A2 (en) 2015-06-10

Similar Documents

Publication Publication Date Title
CN104520867B (zh) 用于目标装置的主动监测、存储器保护和完整性验证的方法、系统和计算机可读介质
CN104335220B (zh) 用于防止和检测安全威胁的方法和系统
Ge et al. Sprobes: Enforcing kernel code integrity on the trustzone architecture
US20210124824A1 (en) Securing secret data embedded in code against compromised interrupt and exception handlers
KR102183852B1 (ko) 전자 장치의 무결성 검증을 위한 방법, 저장 매체 및 전자 장치
US20120216281A1 (en) Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel
CN108604274A (zh) 安全片上系统
CN111400702B (zh) 一种虚拟化的操作系统内核保护方法
CN109918919A (zh) 认证变量的管理
CN103907101A (zh) 用于管理器环境中的内核rootkit防护的系统和方法
CN105264540B (zh) 数据处理设备中的软件库的安全保护
CN103377349A (zh) 安全控制的多处理器系统
CN103455756B (zh) 一种基于可信计算的进程控制方法
CN107092495A (zh) 平台固件铠装技术
CN103955438A (zh) 基于硬件辅助虚拟化技术的进程内存保护方法
US20160188492A1 (en) Memory Protection with Non-Readable Pages
Chen et al. Privwatcher: Non-bypassable monitoring and protection of process credentials from memory corruption attacks
CN110069935B (zh) 基于标记内存的内部敏感数据保护方法及系统
CN108154032A (zh) 一种基于可信执行环境的具有内存完整性保障功能的计算机系统信任根构建方法
Qiang et al. PrivGuard: Protecting sensitive kernel data from privilege escalation attacks
CN114035886B (zh) 一种针对内核数据的容器安全加固系统及方法
WO2022105610A1 (zh) 一种数据保护的方法、装置、存储介质和计算机设备
Park et al. Memory protection keys: Facts, key extension perspectives, and discussions
Ward et al. Security Considerations for Next-Generation Operating Systems for Cyber-Physical Systems
Tsantekidis et al. Securing Runtime Memory via MMU Manipulation

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171031

Termination date: 20190315

CF01 Termination of patent right due to non-payment of annual fee