CN101578589A - 用户空间虚拟化系统 - Google Patents

用户空间虚拟化系统 Download PDF

Info

Publication number
CN101578589A
CN101578589A CNA2007800354080A CN200780035408A CN101578589A CN 101578589 A CN101578589 A CN 101578589A CN A2007800354080 A CNA2007800354080 A CN A2007800354080A CN 200780035408 A CN200780035408 A CN 200780035408A CN 101578589 A CN101578589 A CN 101578589A
Authority
CN
China
Prior art keywords
instruction sequence
carry out
application
security
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2007800354080A
Other languages
English (en)
Inventor
艾奥伊·拉姆
门真淳一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aplix Corp
Original Assignee
Aplix 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 Aplix Corp filed Critical Aplix Corp
Publication of CN101578589A publication Critical patent/CN101578589A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode

Landscapes

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

Abstract

提供了用户空间虚拟化(USV)程序以允许嵌入式系统中的遗产应用共享资源而不必修改,不会损害安全性。计算机实现的USV程序可以用户空间中的方法为特征,所述方法包括取回应用的本地代码(ST101),并且识别指令序列。此外,识别指令序列包括首先确定执行用于执行处理的指令序列是否可能为安全风险(ST102)。如果它是可能的安全风险,那么确认存在用于活动应用的执行权限。执行权限可由安全管理器或处理器确认(ST104)。如果安全管理器确认活动应用具有用于处理的执行权限,那么用处理器执行指令序列(ST103)。如果活动应用没有用于处理的执行权限,那么不执行指令序列(ST108)。另一方面,如果执行用于执行处理的指令序列不是可能的安全风险,那么用处理器执行指令序列(ST107)。

Description

用户空间虚拟化系统
相关申请的交叉引用
本申请是美国非临时申请,其要求于2006年11月17日提交的编号为60/859,673的美国临时专利申请的优先权,并且还要求对于2006年7月24日提交的编号为2006-201037的日本专利申请的优先权,这两者通过引用整体结合于此。
背景技术
本发明涉及用于创建用户空间虚拟化程序的仿真和动态编译技术。
用于嵌入式系统的最新平台要求资源管理系统来仲裁和保护系统资源。这些资源管理系统通常提供应用编程接口(API),用于仲裁或保护系统资源。然而,为了最大化嵌入系统的功能性,有时候期望执行非置信(untrusted)应用,或遗产(legacy)应用,其不使用平台的资源管理系统。因此,在嵌入式系统中也需要为前述应用控制平台的系统资源并且扩展它的安全策略的方法。
传统上,访问控制机制已合并到除了嵌入式产品之外的许多现有操作系统中。众所周知的示例包括LinuxTM中的用户权限检查。在该情况下,每个文件相关于所有者用户的ID和权限模式,所述权限模式用作为某些用户是否可访问文件的指示。另外地,可能限制某些系统调用,使得它们仅可从超级用户ID来调用。此外,Linux“chroot”系统调用可限制一部分文件系统被某些进程看见。
现有Linux中利用用户ID和权限的方法中的问题在于它不能充分地控制限制粒度。例如,不管安全策略,拥有文件的任何人可访问他/她自己的文件并且任意地改变访问限制。SELinux子系统通过实现强制访问控制来克服该问题。使用强制访问控制,用户不能随意地改变访问限制,即使对于他们自己的文件。而且,即使对于特权用户(例如根权限)也可限制访问。然而,使用SELinux,必须调整和重编译Linux内核,这要求复杂的安装和处理。
相反,存在许多未合并访问控制机制的嵌入式操作系统。例如,Symbian(版本9.1和更低的)或者WinCE不包括用户ID的思想。它们文件系统中的大部分(除了仅仅可从内核访问的系统文件)在用户模式的进程中是可访问的。在SymbianOS版本9.1中,修改内核以加强OS安全性。
然而,对于OS内核需要重大的修改以实现这种OS安全性。因此,难于避免由修改而出现程序缺陷的风险。此外,在内核中访问控制特征的每次修改时,出现程序缺陷的风险是不可避免的,这将因此需要高成本并且可导致设计访问控制特征中灵活性的损失。然而,不管SELinux或最新的SymbianOS,访问控制系统和资源管理系统是依赖于OS实现的,并且这些访问控制系统通常不是无关于OS类型而可应用的。
最近,已提出了虚拟化技术,例如VMWare和Xen,用于在桌面和服务器系统上划分资源。这些技术可实现访问控制特征。然而,因为这些方法要求几乎整个操作系统映像的副本,它们对于具有有限计算资源(例如存储器等)的嵌入式平台来说不是理想的。
因此,期望方法和装置来允许遗产应用共享资源,而不必在嵌入式系统中进行修改。
这里提及的所有专利、申请、公开的申请和其它出版物全部合并在此作为参考,包括以下参考:
SELinux,Kerry Thompson,System Admin Magazine,March 2003,http://www.samag.com/documents/s=7835/sam0303a/0303a.htm
Platform Security-a Technical Overview,Version 1.2,Mark Shackman,Symbian Ltd,
http://www.symbian.com/developer/techlib/papers/plat_sec_tech_overview/platform_security_a_technical_overview.pdf
QEMU Internals,Fabrice Bellard,http://fabrice.bellard.free.fr/qemu/qemu-tech.html
The Xen Virtual Machine Monitor,http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
VMWare,http://vmware.com/User-Mode Linu,http://user-mode-linux.sourceforge.net/
发明内容
本发明的实施例共享资源,而不必在如用户空间虚拟化(USV)的嵌入式系统中进行修改,例如用于移动电话和个人数字助理。本发明的实施例也允许可包含非置信的和恶意的代码的应用执行而不会影响系统安全性或保密性。此外,发明实施例使用仿真和动态编译技术来严格地控制应用对资源的使用并且实现执行速度接近于执行原始本地(native)代码的速度的高性能。用户空间虚拟化是用于嵌入式平台上的资源仲裁和保护的新颖方法。它在用户空间中实现并且可灵活地根据操作者/OEM资源管理策略来定制。它需要很少的操作系统支持,所以它可运行在许多流行的智能手机平台上。同时,它使用动态编译技术来获得与候选技术(例如修改OS内核)相同的性能水平。
本发明的实施例提供了用户空间虚拟化(USV)程序以允许遗产应用共享资源,而不必在嵌入式系统中进行修改。计算机实现的USV程序可以用户空间中的方法为特征,所述方法包括取回应用的本地代码,并且识别指令序列。识别指令序列包括首先确定执行指令序列以执行处理是否可能为安全风险。如果它是安全风险,那么用安全管理器或处理器确认存在用于活动应用的执行权限。如果确认活动应用具有用于处理的执行权限,那么用处理器执行指令序列。如果活动应用没有用于处理的执行权限,那么不执行指令序列。另一方面,如果执行指令序列以执行处理不是可能的安全风险,那么用处理器执行指令序列。
此外,在如果活动应用不具有用于处理的执行权限那么不执行指令序列之后,方法可包括在活动应用不具有用于处理的执行权限的情况下执行错误。另外,在如果活动应用不具有用于处理的执行权限那么不执行指令序列之后,方法可还包括执行用执行处理的指令序列来代替指令序列。执行权限关联于活动应用,并且用处理器执行所代替的指令序列。还可能允许这样的配置,其中如果安全管理器确认活动应用具有用于处理的执行权限,已为应用的执行权限确认了本地代码,那么上面用处理器执行指令序列下一次直接用处理器执行,不必用安全管理器确认。在该情况下,可能减少用安全管理器为相同命令确认权限多次而引起的开销。
此外,在其它实施例中,可能允许检测执行可影响应用的本地代码安全性的处理的指令序列。另外,可能生成指令序列的本地代码,以在根据所检测指令序列的本地代码确认应用的执行权限之后,执行可影响安全性的处理,并且用CPU执行所生成代码。
附图说明
图1示出了示出根据本发明实施例的嵌入式系统的配置的示意图;
图2示出了根据本发明实施例的每个软件模块的交互的框图;
图3示出了根据本发明实施例的每个模块的行为的流程图;
图4示出了安全检查指令的生成的实施例;
图5示出了根据本发明实施例的在先前已生成安全检查指令之后执行指令序列;
图6示出了根据本发明实施例的调用系统调用的指令序列;
图7示出了根据本发明实施例的open()系统调用的处理;
图8示出了在编译前的本地指令序列的示例;
图9示出了根据本发明实施例的在图4中编译代码之后生成的安全本地指令;
图10A示出了用于多个资源仲裁的实施例;
图10B示出了用于设备诊断的实施例;
图10C示出了用于家庭网关的安全控制的实施例;并且
图11示出了可用于实现本发明实施例的计算机系统。
具体实施方式
如上简要所述,本发明的实施例允许遗产应用共享资源,而不必修改,并且允许可包含非置信的和恶意的代码的应用执行,而不会影响系统安全性或保密性。
另外,可实现用户空间虚拟化程序的实施例,而不必修改OS内核。尤其是,这可避免可造成系统维护困难的对内核的复杂修改。此外,以本地代码形式执行应用。因此,在用户空间虚拟化程序中可将开销减小到最低水平。另外,因为由于本地代码是相同的,可不管操作系统的类型而使用本发明的用户空间虚拟化程序,所以它可在具有相同CPU的平台中利用,而不管操作系统的类型。可需要修改,但是它将是最小的量。如下参考附图描述示例实施例。
图1是兼为硬件和软件的嵌入式系统100的配置的示意图。操作系统(OS)102在CPU 101和安全管理器105上实现。本地指令处理器106和动态编译器107由操作系统102利用。应用111存储在非置信区域110中并且在由安全管理器105、本地指令处理器106和动态编译器107虚拟的用户空间中执行。
参考图1,功能块OS 102、安全管理器105、本地指令处理器106、动态编译器107和应用111实现为软件。结果,这些功能块通过由CPU101执行它的相应软件程序来实现。
本发明的实施例(尤其是CPU 101)根据ARM处理器体系结构和ARM指令集来描述。然而,根据本发明实施例的CPU 101不限于ARM。所有软件程序存储在连接到CPU 101的存储器103(ROM/RAM)中。存储器113按需由CPU 101访问。
OS 102嵌入在诸如Linux、WinCE或Symbian之类的操作系统中。本发明的实施例基于OS 102具有以下或基本上等同的下述功能的前提。换言之,具有以下或基本上等同的功能的OS可根据本发明的实施例来使用,即使OS是除了本文档中描述的之外的OS。OS的功能,根据本发明的实施例,描述为如下:
用户模式:OS 102可在用户模式运行安全管理器105、本地指令处理器106、动态编译器107和应用111的相应程序,以便阻止这些程序直接执行特权指令,例如MMU寄存器修改指令。
存储器保护:应用111的存储器空间与例如在内核中的其它应用分离。
I/O保护:I/O操作必须在监控模式中执行,并且不能直接由应用111执行(除了用户模式的存储器映射I/O外)。
良好定义的系统调用接口:OS 102必须使用良好定义的接口以供应用发出系统调用。在ARM体系结构中,系统调用通常由SWI指令调用或者由到未具体映射的地址的分支指令调用。
页保护修改API:OS 102必须提供API,以供用户模式的应用修改其被允许访问的存储器页面的保护模式。
OS 102的上述功能允许用户模式中的应用仅经由系统调用在用户空间外交互。
通过检测和管理系统调用,可能精确地监视和控制应用对系统资源的使用。这帮助防止系统安全和秘密暴露于可能的风险。
检测系统调用以管理所检测系统调用的一个方法是通过修改OS内核的源代码“钩住(hook)”并且控制系统调用,以便在执行前认定系统调用的资格并且检查系统调用的安全性。然而,在嵌入式系统中“钩住”系统调用可显著地降低应用的性能,例如执行速度或响应速度。另外,修改内核以引入挂钩机制增加了将程序缺陷引入系统的风险。
因此,与如上所述利用系统调用挂钩相反,本发明的实施例通过用户空间虚拟化(USV)确保系统安全性。构成USV核心的思想是“本地仿真”。当涉及执行用本地指令编译的应用程序时,USV的应用与现有系统相同。然而,在该情况下,参考图1,应用111的本地指令由在USV虚拟的系统中执行,而不是直接由CPU 101执行,这显著地不同于现有系统。
除了嵌入式系统的虚拟化,USV具有以下两个重要功能:捕获系统调用以验证安全性和资源共享,以及动态地编译要直接由CPU执行的热点。
下面说明了作为USV发明的实施例的每个软件功能。在某些实施例中,在用户空间中执行所有软件。
参考图2,当在用户空间中执行应用111时,使用本地指令处理器106。本地指令处理器106取回或读取应用111中的本地指令序列。如果检测到指令序列当执行时能够影响安全性,动态编译器107编译指令序列并且CPU 101执行所编译代码。
另一方面,未被检测到能够影响安全性的其它本地指令序列将直接由CPU 101执行。例如,用于执行可影响安全性的处理的指令序列可以是包括用于执行系统调用的SWI命令的指令序列,或执行系统调用的代码,如图6中示出的代码中。
参考图2和4,在402中动态编译器107将由本地指令处理器106检测的指令序列编译为安全本地指令。尽管我们称为“编译”,实际的处理是生成相同本地指令的另一序列,其中从CPU 101的本地指令序列添加了安全检查处理408。
参考图2、图8和图9,示出了根据本发明实施例的由动态编译器107进行编译的效果。图8示出了编译前的代码。图9示出了分别在记忆码(即因为代码类似原始词所以容易记得的编程码)中编译后的安全本地指令。图9中的“intercept_open()”指令是保存“系统调用open()”的虚拟记忆码,并且调用例程以执行安全检查。如果安全检查产生满意的结果,那么调用“系统调用open()”。
如该实施例示出,从预编译码重写安全本地指令,以在检查安全性之后执行等同于预编译码的处理。通过比较图8和图9中的代码,示出了动态编译器107把将调用系统调用的指令序列编译为在调用系统调用之前检查安全性的指令序列。因此,可影响安全性的指令序列决不总是在执行前经历安全检查。通过这种编译生成的“安全本地指令”在与存储应用111的原始代码的存储器分离的指定存储区域中存储。
与根据高级语言的源代码生成本地代码的传统编译器相比,动态编译器107进行简单的处理并且不执行复杂的优化处理。
因此,动态编译器107的复杂性小于通常的编译器,这可减少由于编译而影响系统的开销。因此,它适用于资源受限的嵌入式系统。
如果本地指令处理器106在执行应用111期间检测到不安全的指令序列,应用111被挂起并且动态编译器107编译指令序列以生成安全本地指令序列。所生成的安全指令序列存储在指定的存储器地址中,随后,CPU101执行所生成的安全本地指令序列并且应用111的执行再继续。因此,当所生成的安全本地指令序列的执行完成时502,在506用CPU 101执行应用111的本地指令序列,同时由本地指令处理器106检查随后的指令序列。
安全管理器105具有安全配置文件,该安全配置文件包括非置信区域110中存储的应用111的指令序列的信息,该信息用于确定由于应用111指令序列的执行将影响安全性的可能性,如上所述。安全配置文件中包含的信息可帮助确定是否授权或许可指令序列的执行。安全配置文件的格式例如可以是XML格式。然而,可使用其它格式。此外,安全配置文件可配置为包含涉及用于每个应用的可访问地址范围、文件类型或硬件资源的信息。而且,安全配置文件可用于确定根据指定的地址范围、文件类型或硬件资源是否可许可访问。
下面描述根据本发明实施例的由用户空间虚拟化执行的用户模式中本地指令处理器106和动态编译器107的操作。特定地,当本地指令处理器106和动态编译器107执行时的操作,根据本发明实施例通过经由用户空间虚拟化与安全管理器105交互,执行应用111。图2示出了图1中示出的软件模块的交互。图3示出了示出各个软件模块执行的那些操作的流程图。
首先,本地指令处理器106从加载到用户空间的应用111的程序代码中取回要执行的本地指令(ST 101)。可单独或共同地取出本地指令。
然后,本地指令处理器106确定所取回的本地指令当执行时是否执行可影响安全性的处理(ST 102)。参考图4,编译器402将检测可指示本地指令内的可能的安全风险的模式404。该判定基于任何本地指令或序列是否已注册在安全配置文件中作为当执行时执行可影响安全性的处理并且包括在所取回的本地指令中的一个。
如果在ST102中判定取出的本地指令不执行任何可影响安全性的处理,那么本地处理器106取回的本地指令直接用CPU 101执行(ST103)。
相反,如果在ST102中,判定所取回本地指令执行可影响安全性的处理,动态编译器107编译所取回本地指令以生成安全本地指令109并且将它存储在指定的地址(ST104),所述安全本地指令109当执行时完成等同于编译前的本地指令的处理。
随后,在ST104中生成的安全本地指令109用CPU 101来执行。结果,首先,向安全管理器105生成查询,以检查应用111是否具有权限执行能够影响安全性的处理(ST105)。响应于该查询,安全管理器105参考安全配置文件108,其包含指令序列授权,或未授权应用111的信息(ST106)。
在ST106中,如果安全管理器105确定应用111具有执行权限,那么与在ST101中从应用111取回的本地指令相对应的代码用CPU 101来执行(ST107)。另外参考图2,向OS内核103发出系统调用,其访问内核空间中的资源104。另一方面,当确定应用111不具有权限时,对应于所取回本地指令的处理不被执行(ST108)。图2还示出了当拒绝系统调用时的示例。
在如上所述执行从应用111取回的本地指令之后,通过重复从ST101开始的处理来处理接着要执行的本地指令。注意,如果在ST108中不执行所取回本地指令,在向应用111通知由于违反权限出现错误之后,可取消应用111的执行。在其它情况下,如果可能,可用对于其应用111具有权限的替代处理来继续应用111的执行。
上述的处理允许对由本地指令组成的应用111的程序进行顺序安全检查,这使得遗产应用能够共享资源而不必修改。另外,还可执行可包含非置信的和恶意的代码的应用,而不影响系统安全性或保密性。
此外,顺序安全检查与在执行前的批量安全检查相比允许可能的开销被更有效地分散。而且,安全检查仅针对要实际执行的代码,所以可将由于安全检查造成的系统负载减小到最低。
此外,可实现本发明的实施例而不必修改OS内核,这减少了引入程序缺陷的风险。另外,因为程序111以本地代码形式执行,应用执行的性能是足够高的,而不管本地指令处理器106或动态编译器107造成的系统负载。此外,因为本发明的基本体系结构是独立于操作系统或CPU的,因此本发明的实施例可应用于多种平台。
已为示出和描述目的给出了对本发明的优选实施例的前述描述。它不旨在是穷尽的或将本发明限于所公开的精确形式。根据上面的教导许多修改和变化是可能的。例如,还可能由本地处理器106解释和执行本地指令,并且省略动态编译器。另外,缓存和重用由动态编译器107生成的安全本地指令109是可能的。此外,当安全地执行安全检查至少一次时,可能修改以向指令添加删除/简化等,以执行安全检查。可保存修改的安全本地指令109。作为候选,可由CPU 101原样执行应用111的本地指令。
此外,除了确认应用权限的功能之外,通过应用控制资源使用的功能可被提供给安全管理器105。因此,当要对由在嵌入式系统中共享资源造成的问题进行仲裁时(即,当多个应用同时使用相同的资源时),根据每个应用的目的和系统的设置实现分配资源使用的权限。
而且,如图10A中所示,除了检查应用权限的功能,可能设置功能以控制安全管理器105中应用的资源使用。这允许当多个应用同时试图使用相同资源时,根据应用属性或系统设置来分配资源的用户权限。尤其是,所谓的资源调节在嵌入式系统中的资源共享中成为了问题。通过使用多任务方法,你能有效地开发复杂的嵌入式系统以运行多个应用。参考图10B,可能设置设备诊断系统,其中操作者可分析什么用户操作实际上造成了系统崩溃。登录(logging)将允许用户发现递送了哪个系统调用命令造成了对内核的损害。另外,参考图10C,还可能由可接收设置的用于家电的家庭网关实现安全控制系统,例如恒温器1008、微波1010、智能厨房系统1012和淋浴装置1014。
本领域技术人员将认识到,可视情况使用硬件、软件、固件或其组合来实现各种实施例的操作。例如,可使用处理器或其它数字电路在软件、固件或硬布线逻辑的控制下执行某些处理。(这里的术语“逻辑”指固定硬件、可编程逻辑和/或其适当组合,如本领域技术人员将会认识到以执行所述功能的。)软件和固件可存储在计算机可读媒体上。某些其它处理可使用模拟电路实现,如本领域技术人员所众所周知的。另外,存储器或其它存储装置,以及通信组件,可在本发明的实施例中使用。
图11示出了可用于执行本发明实施例中的处理功能的通常计算系统1100。相关领域技术人员还将认识到如何使用其它计算机系统或体系结构实现本发明。计算系统1100例如可表示桌面、膝上型或笔记本计算机、手持计算设备(PDA、移动电话、掌上型电脑等)、主机、超级计算机、服务器、客户端或任何其它类型的嵌入式系统或通用计算设备,如对于给定应用或环境是可期望的或适合的。计算系统1100可包括一个或多个处理器,例如处理器1104,其可以是CPU。处理器1104可使用通用或专用处理引擎,例如微处理器、控制器或其它控制逻辑来实现。在该示例中,处理器1104连接到总线1102或其它通信介质。
计算系统1100还可包括主存储器1108,优选为随机访问存储器(RAM)或其它动态存储器,用于存储信息和要由处理器1104执行的指令。主存储器1108还可用于存储在执行要由处理器1104执行的指令期间的临时变量或其它中间信息。计算系统1100可同样包括只读存储器(“ROM”)或其它连接到总线1102的静态存储设备,用于存储用于处理器1104的静态信息和指令。
计算设备1100还可包括信息存储机构1110,其例如可包括媒体驱动器1112和可移除存储接口1120。媒体驱动器1112可包括支持固定或可移除存储媒体的驱动器或其它机构,例如硬盘驱动器、软盘驱动器、磁带驱动器、光盘驱动器、CD或DVD驱动器(R或RW)或其它可移除或固定媒体驱动器。存储媒体1118例如可包括硬盘、软盘、磁带、光盘、CD或DVD或由媒体驱动器1114读和写的其它固定或可移除介质。如这些示例所示,存储媒体1118可包括其中存储有特定计算机软件或数据的计算机可读存储介质。
在候选实施例中,信息存储机构1110可包括其它类似的工具,用于允许计算机程序或其它指令或数据加载到计算系统1100内。这些工具例如可包括可移除存储单元1122和接口1120,例如程序模块和模块接口、可移除存储器(例如闪存或其他可移除存储模块)和存储器插槽、以及允许软件和数据从可移除存储单元1118传送到计算设备1100的其它可移除存储单元1122和接口1120。
计算系统1100还可包括通信接口1124。通信接口1124可用于允许软件和数据在计算系统1100和外部设备之间传送。通信接口1124的示例可包括调制解调器、网络接口(例如以太网或其它NIC卡)、通信端口(例如USB端口)、PCMCIA插槽和卡等。经由通信接口1124传送的软件和数据处于信号的形式,其可以是能够由通信接口1124接收的电、电磁、光或其它信号。这些信号经由通道1128提供到通信接口1124。该通道1128可运送信号并且可使用无线介质、有线或线缆、光纤或其它通信介质来实现。通道的某些示例包括电话线、移动电话连接、RF连接、网络接口、局域或广域网和其它通信通道。
在本文档中,术语“计算机程序产品”和“计算机可读介质”可一般地使用以指代媒体,例如存储器1108、存储设备1118、存储单元1122或通道1128上的信号。这些和其它形式的计算机可读媒体可涉及将一个或多个指令的一个或多个序列提供到处理器1104用于执行。这些指令,通常称为“计算机程序代码”(其可以计算机程序或其它分组的形式成组),当执行时,使得计算系统1100能够完成本发明实施例的特征或功能。这些指令可包括在用于在计算机系统1100中执行的应用中。
在其中使用软件实现元素的实施例中,软件可例如使用可移除存储驱动器1114、驱动器1112或通信接口1124存储在计算机可读介质中并且加载到计算系统1100内。控制逻辑(在本示例中,软件指令或计算机程序代码)当由处理器1104执行时,使得处理器1104执行如这里所述的本发明的功能。
将会理解,为了清楚的目的,上面的描述已参考不同的功能单元和处理器描述了本发明的实施例。然而,明显的是,可使用不同功能单元、处理器或区域之间的任何合适的功能分布,不会从本发明转移。例如,示出为由分离的处理器或控制器执行的功能可由相同处理器或控制器执行。因此,对特定功能单元的引用仅仅视为对用于提供所述功能的合适装置的引用,而不是表示严格的逻辑或物理结构或组织。
尽管已结合某些实施例描述了本发明,它不旨在限于这里阐述的精确形式。而是,本发明的范围仅由权利要求限制。另外,尽管特征可表现为结合特定实施例来描述,本领域技术人员将会意识到,可根据本发明组合所述实施例的各种特征。
此外,尽管被单独地列出,多个装置、元素或方法步骤可例如由单个单元或处理器实现。另外,尽管单独的特征可包括在不同权利要求中,这些可能是有利于组合的,并且不同权利要求中的包含不意味着特征的组合不是可行的和/或有利的。而且,在一类权利要求中的特征的包含不意味着对于该种类的限制,而是特征可视情况等同地应用于其它权利要求种类。

Claims (22)

1.一种计算机实现的方法,用于利用用户空间中的用户空间虚拟化程序来控制系统资源和系统安全性,所述方法包括:
取回应用的本地代码;
根据所述本地代码识别指令序列,其中识别所述指令序列包括:
(1):如果执行用于执行处理的所述指令序列是可能的安全风险,那么确认存在用于所述应用的执行权限;
(1-1):如果所述应用具有用于处理的所述执行权限,那么用处理器执行所述指令序列;
(1-2):如果所述应用没有用于处理的执行权限,那么不执行所述指令序列;和
(2):如果执行用于执行处理的所述指令序列不是可能的安全风险,那么用所述处理器执行所述指令序列。
2.根据权利要求1所述的方法,其中(1-2)还包括以下(1-3):如果所述应用没有用于处理的执行权限,那么提供错误指示。
3.根据权利要求1所述的方法,其中确认存在用于所述应用的执行权限包括将安全检查指令添加到所述指令序列以生成安全指令序列。
4.根据权利要求3所述的方法,其中所述安全指令序列在用户空间中执行。
5.根据权利要求3所述的方法,其中所述安全指令序列启动对所述应用的执行权限的确认。
6.根据权利要求1所述的方法,其中用于所述应用的执行权限由所述安全管理器确认。
7.根据权利要求1所述的方法,其中用于所述应用的执行权限由所述处理器确认。
8.根据权利要求1所述的方法,还包括:
从应用的所述本地代码中检测用于执行与安全性相关联的处理的指令序列;
在根据所检测到的指令序列的本地代码确认存在所述活动应用的执行权限之后,生成执行与安全性相关联的处理的所述指令序列的本地代码;和
用所述处理器执行所生成的代码。
9.根据权利要求8所述的方法,其中检测所述指令序列包括检查用于所述指令序列注册的安全配置文件。
10.一种用指令编码的计算机可读介质,所述指令通过用计算机执行而用于执行用于利用用户空间中的用户空间虚拟化程序的方法,所述方法包括:
取回应用的本地代码;
根据所述本地代码识别指令序列,其中识别所述指令序列包括:
(1):如果执行用于执行处理的所述指令序列是可能的安全风险,那么确认存在用于所述应用的执行权限;
(1-1):如果所述应用具有用于处理的所述执行权限,那么用处理器执行所述指令序列;
(1-2):如果所述应用没有用于处理的执行权限,那么不执行所述指令序列;和
(2):如果执行用于执行处理的所述指令序列不是可能的安全风险,那么用所述处理器执行所述指令序列。
11.根据权利要求10所述的计算机可读介质,其中所述(1-2)还包括以下(1-3):如果所述应用没有用于处理的执行权限,那么提供错误指示。
12.根据权利要求10所述的计算机可读介质,其中确认存在用于所述应用的执行权限包括将安全检查指令添加到所述指令序列以生成安全指令序列。
13.根据权利要求12所述的计算机可读介质,其中所述安全指令序列在用户空间中执行。
14.根据权利要求12所述的计算机可读介质,其中所述安全指令序列启动对所述应用的执行权限的确认。
15.根据权利要求10所述的计算机可读介质,其中用于所述应用的执行权限由所述安全管理器确认。
16.根据权利要求10所述的计算机可读介质,其中用于所述应用的执行权限由所述处理器确认。
17.根据权利要求10所述的计算机可读介质,其中所述方法还包括:
从应用的所述本地代码中检测用于执行与安全性相关联的处理的指令序列;
在根据所检测到的指令序列的本地代码确认存在所述活动应用的执行权限之后,生成执行与安全性相关联的处理的所述指令序列的本地代码;和
用所述处理器执行所生成的代码。
18.根据权利要求17所述的计算机可读介质,其中检测所述指令序列包括检查用于所述指令序列注册的安全配置文件。
19.一种用于利用用户空间中的用户空间虚拟化程序控制系统资源和系统安全性的装置,所述装置包括:
本地指令处理器,用于取回应用的本地代码并且根据关联于安全性的所述本地代码识别指令序列;
动态编译器,用于确定执行用于执行处理的所述指令序列是否为可能的安全风险;
安全管理器,用于确定所述应用是否具有用于执行指令序列的权限;和
处理器,用于执行所述指令序列。
20.根据权利要求19所述的装置,其中所述动态编译器还可操作用于生成执行所述处理的安全指令序列。
21.根据权利要求19所述的装置,其中所述动态编译器还可操作用于启动对具有所述安全指令序列的所述应用的执行权限的确认。
22.根据权利要求19所述的装置,其中识别关联于安全性的指令序列包括检查用于所述指令序列注册的安全配置文件。
CNA2007800354080A 2006-07-24 2007-07-24 用户空间虚拟化系统 Pending CN101578589A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP201037/2006 2006-07-24
JP2006201037A JP2008027306A (ja) 2006-07-24 2006-07-24 ユーザ空間仮想化システム
US60/859,673 2006-11-17

Publications (1)

Publication Number Publication Date
CN101578589A true CN101578589A (zh) 2009-11-11

Family

ID=38982036

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007800354080A Pending CN101578589A (zh) 2006-07-24 2007-07-24 用户空间虚拟化系统

Country Status (5)

Country Link
US (1) US8336095B2 (zh)
EP (1) EP2050004A4 (zh)
JP (1) JP2008027306A (zh)
CN (1) CN101578589A (zh)
WO (1) WO2008013826A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106462710A (zh) * 2014-03-31 2017-02-22 西门子公司 用于计算装置的操纵保护的方法和设备
CN110161978A (zh) * 2018-02-02 2019-08-23 深圳健康小厨智能餐饮科技有限公司 一种自动厨房多设备竞争资源仲裁方法

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070292136A1 (en) * 2006-06-16 2007-12-20 Michael Sauer Transponder for a radio-over-fiber optical fiber cable
US8572256B2 (en) * 2007-07-16 2013-10-29 Qualcomm Incorporated Method for supporting multiple diversified data applications with efficient use of network resources
US8635701B2 (en) * 2008-03-02 2014-01-21 Yahoo! Inc. Secure browser-based applications
US9058483B2 (en) * 2008-05-08 2015-06-16 Google Inc. Method for validating an untrusted native code module
US9176754B2 (en) 2008-07-16 2015-11-03 Google Inc. Method and system for executing applications using native code modules
US9449314B2 (en) 2008-10-02 2016-09-20 International Business Machines Corporation Virtualization of a central processing unit measurement facility
US7827321B2 (en) 2008-10-02 2010-11-02 International Business Machines Corporation Central processing unit measurement facility
US8122942B2 (en) 2009-05-29 2012-02-28 General Electric Company Casting processes and yttria-containing facecoat material therefor
KR101247259B1 (ko) * 2009-12-17 2013-04-01 한국전자통신연구원 가상화 장치 및 그 처리 방법
CN101854359B (zh) * 2010-05-19 2012-10-31 南京联创科技集团股份有限公司 基于虚拟化计算的权限控制方法
US9306933B2 (en) 2011-02-11 2016-04-05 Mocana Corporation Ensuring network connection security between a wrapped app and a remote server
US8990920B2 (en) 2011-02-11 2015-03-24 Mocana Corporation Creating a virtual private network (VPN) for a single app on an internet-enabled device or system
US9537869B2 (en) 2011-02-11 2017-01-03 Blue Cedar Networks, Inc. Geographical restrictions for application usage on a mobile device
US8549656B2 (en) 2011-02-11 2013-10-01 Mocana Corporation Securing and managing apps on a device
US8893298B2 (en) 2011-02-11 2014-11-18 Mocana Corporation Network linker for secure execution of unsecured apps on a device
US8782792B1 (en) * 2011-10-27 2014-07-15 Symantec Corporation Systems and methods for detecting malware on mobile platforms
RU2514141C1 (ru) 2012-09-28 2014-04-27 Закрытое акционерное общество "Лаборатория Касперского" Способ эмуляции вызовов системных функций для обхода средств противодействия эмуляции
US10032659B2 (en) * 2012-12-28 2018-07-24 Sunedison Semiconductor Limited (Uen201334164H) Methods and systems for preventing unsafe operations
US9343903B2 (en) 2013-03-14 2016-05-17 Mark Hauenstein Methods and systems architecture to virtualize energy functions and processes into a cloud based model
KR101462829B1 (ko) * 2014-01-29 2014-11-21 (주) 퓨전데이타 가상화 정보 가공장치 및 방법
US9672353B2 (en) 2014-04-28 2017-06-06 Blue Cedar Networks, Inc. Securing and managing apps on a device using policy gates
RU2634171C1 (ru) * 2016-12-12 2017-10-24 Акционерное общество "Лаборатория Касперского" Способ выполнения кода интерпретатором
WO2019063868A1 (en) * 2017-09-29 2019-04-04 Nokia Technologies Oy DATA COMMUNICATION BY MULTIPLE PATH
US11196817B1 (en) * 2020-06-03 2021-12-07 Dell Products L.P. Intelligently managing resource utilization in desktop virtualization environments

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6275938B1 (en) * 1997-08-28 2001-08-14 Microsoft Corporation Security enhancement for untrusted executable code
US6505300B2 (en) 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US7290266B2 (en) * 2001-06-14 2007-10-30 Cisco Technology, Inc. Access control by a real-time stateful reference monitor with a state collection training mode and a lockdown mode for detecting predetermined patterns of events indicative of requests for operating system resources resulting in a decision to allow or block activity identified in a sequence of events based on a rule set defining a processing policy
US7437766B2 (en) 2002-10-03 2008-10-14 Sandia National Laboratories Method and apparatus providing deception and/or altered operation in an information system operating system
JP2006190050A (ja) * 2005-01-05 2006-07-20 Ntt Docomo Inc マルチタスク実行システム及びマルチタスク実行方法
US8245270B2 (en) * 2005-09-01 2012-08-14 Microsoft Corporation Resource based dynamic security authorization

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106462710A (zh) * 2014-03-31 2017-02-22 西门子公司 用于计算装置的操纵保护的方法和设备
CN110161978A (zh) * 2018-02-02 2019-08-23 深圳健康小厨智能餐饮科技有限公司 一种自动厨房多设备竞争资源仲裁方法

Also Published As

Publication number Publication date
EP2050004A2 (en) 2009-04-22
EP2050004A4 (en) 2011-01-05
WO2008013826A2 (en) 2008-01-31
US20080047023A1 (en) 2008-02-21
JP2008027306A (ja) 2008-02-07
US8336095B2 (en) 2012-12-18
WO2008013826A3 (en) 2008-12-18

Similar Documents

Publication Publication Date Title
CN101578589A (zh) 用户空间虚拟化系统
JP6507435B2 (ja) 命令エミュレーションプロセッサ、方法、およびシステム
EP3210149B1 (en) Attack protection for valid gadget control transfers
US9454676B2 (en) Technologies for preventing hook-skipping attacks using processor virtualization features
JP5905586B2 (ja) 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ
EP3022648B1 (en) Page fault injection in virtual machines to cause mapping of swapped-out memory pages into vm virtualized memory
US10055357B2 (en) Systems and methods for secure multi-access of system firmware during pre-boot
CN101273364B (zh) 用于计算平台数据保护的方法
EP4020168A1 (en) Apparatus and method for secure instruction set execution, emulation, monitoring, and prevention
US10360386B2 (en) Hardware enforcement of providing separate operating system environments for mobile devices
KR20130036189A (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
US10552345B2 (en) Virtual machine memory lock-down
JP2006012170A (ja) ユーザ・モード・プロセスが特権実行モードで動作することを可能にする方法
US10257166B2 (en) Guest netfilter protection by virtual machine function
KR20100102666A (ko) 온칩 디바이스 관리를 위한 알려진 제품 코드
EP2817755B1 (en) Directed wakeup into a secured system environment
US11531760B1 (en) Baseboard management controller (BMC)-based security processor
Li et al. Iso-UniK: lightweight multi-process unikernel through memory protection keys
US10691471B2 (en) Conflict resolution for strong symbols
US11669620B2 (en) System platform initializer for mixed-critical systems
Farrall et al. Hardware and software support for mixed-criticality multicore systems
US11144329B2 (en) Processor microcode with embedded jump table
JP6304837B2 (ja) 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ
GB2515145A (en) Instruction for performing an overload check
US11847226B1 (en) Baseboard Management Controller (BMC)-based security processor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20091111