用户空间虚拟化系统的制作方法

文档序号:6455969阅读:141来源:国知局
专利名称:用户空间虚拟化系统的制作方法
用户空间虚拟化系统
相关申请的交叉引用
本申请是美国非临时申请,其要求于2006年11月17日提交的编号为 60/859,673的美国临时专利申请的优先权,并且还要求对于2006年7月24 日提交的编号为2006-201037的日本专利申请的优先权,这两者通过引用 整体结合于此。
背景技术
本发明涉及用于创建用户空间虚拟化程序的仿真和动态编译技术。
用于嵌入式系统的最新平台要求资源管理系统来仲裁和保护系统资 源。这些资源管理系统通常提供应用编程接口 (API),用于仲裁或保护 系统资源。然而,为了最大化嵌入系统的功能性,有时候期望执行非置信 (imtrusted)应用,或遗产(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/platf orm—security—a—technical—overview.pdf
QEMU Internals, Fabrice Bellard, http:〃fabrice.bellard.free.fr/qemu/qemu-tech.html
6The Xen Virtual Machine Monitor,
http:〃www.c1.cam.ac.uk/Research/SRG/netos/xen/
VMWare, http:〃vmware.com/User-Mode Li叫 http:〃user-mode-linux.sourceforge.net/

发明内容
本发明的实施例共享资源,而不必在如用户空间虚拟化(usv)的嵌
入式系统中进行修改,例如用于移动电话和个人数字助理。本发明的实施 例也允许可包含非置信的和恶意的代码的应用执行而不会影响系统安全性 或保密性。此外,发明实施例使用仿真和动态编译技术来严格地控制应用
对资源的使用并且实现执行速度接近于执行原始本地(native)代码的速 度的高性能。用户空间虚拟化是用于嵌入式平台上的资源仲裁和保护的新 颖方法。它在用户空间中实现并且可灵活地根据操作者/OEM资源管理策 略来定制。它需要很少的操作系统支持,所以它可运行在许多流行的智能 手机平台上。同时,它使用动态编译技术来获得与候选技术(例如修改 QS内核)相同的性能水平。
本发明的实施例提供了用户空间虚拟化(USV)程序以允许遗产应用 共享资源,而不必在嵌入式系统中进行修改。计算机实现的USV程序可 以用户空间中的方法为特征,所述方法包括取回应用的本地代码,并且识 别指令序列。识别指令序列包括首先确定执行指令序列以执行处理是否可 能为安全风险。如果它是安全风险,那么用安全管理器或处理器确认存在 用于活动应用的执行权限。如果确认活动应用具有用于处理的执行权限, 那么用处理器执行指令序列。如果活动应用没有用于处理的执行权限,那 么不执行指令序列。另一方面,如果执行指令序列以执行处理不是可能的 安全风险,那么用处理器执行指令序列。
此外,在如果活动应用不具有用于处理的执行权限那么不执行指令序 列之后,方法可包括在活动应用不具有用于处理的执行权限的情况下执行 错误。另外,在如果活动应用不具有用于处理的执行权限那么不执行指令 序列之后,方法可还包括执行用执行处理的指令序列来代替指令序列。执行权限关联于活动应用,并且用处理器执行所代替的指令序列。还可能允 许这样的配置,其中如果安全管理器确认活动应用具有用于处理的执行权 限,己为应用的执行权限确认了本地代码,那么上面用处理器执行指令序 列下一次直接用处理器执行,不必用安全管理器确认。在该情况下,可能 减少用安全管理器为相同命令确认权限多次而引起的开销。
此外,在其它实施例中,可能允许检测执行可影响应用的本地代码安 全性的处理的指令序列。另外,可能生成指令序列的本地代码,以在根据 所检测指令序列的本地代码确认应用的执行权限之后,执行可影响安全性 的处理,并且用CPU执行所生成代码。


图1示出了示出根据本发明实施例的嵌入式系统的配置的示意图; 图2示出了根据本发明实施例的每个软件模块的交互的框图; 图3示出了根据本发明实施例的每个模块的行为的流程图; 图4示出了安全检查指令的生成的实施例;
图5示出了根据本发明实施例的在先前已生成安全检查指令之后执行 指令序列;
图6示出了根据本发明实施例的调用系统调用的指令序列;
图7示出了根据本发明实施例的open ()系统调用的处理;
图8示出了在编译前的本地指令序列的示例;
图9示出了根据本发明实施例的在图4中编译代码之后生成的安全本 地指令;
图IOA示出了用于多个资源仲裁的实施例; 图IOB示出了用于设备诊断的实施例;
图IOC示出了用于家庭网关的安全控制的实施例;并且
图ll示出了可用于实现本发明实施例的计算机系统。
具体实施例方式
如上简要所述,本发明的实施例允许遗产应用共享资源,而不必修
8改,并且允许可包含非置信的和恶意的代码的应用执行,而不会影响系统 安全性或保密性。
另外,可实现用户空间虚拟化程序的实施例,而不必修改OS内核。 尤其是,这可避免可造成系统维护困难的对内核的复杂修改。此外,以本 地代码形式执行应用。因此,在用户空间虚拟化程序中可将开销减小到最 低水平。另外,因为由于本地代码是相同的,可不管操作系统的类型而使 用本发明的用户空间虚拟化程序,所以它可在具有相同CPU的平台中利 用,而不管操作系统的类型。可需要修改,但是它将是最小的量。如下参 考附图描述示例实施例。
图1是兼为硬件和软件的嵌入式系统100的配置的示意图。操作系统
(OS) 102在CPU 101和安全管理器105上实现。本地指令处理器106和 动态编译器107由操作系统102利用。应用111存储在非置信区域110中 并且在由安全管理器105、本地指令处理器106和动态编译器107虚拟的 用户空间中执行。
参考图1,功能块OS 102、安全管理器105、本地指令处理器106、 动态编译器107和应用111实现为软件。结果,这些功能块通过由CPU 101执行它的相应软件程序来实现。
本发明的实施例(尤其是CPU 101)根据ARM处理器体系结构和 ARM指令集来描述。然而,根据本发明实施例的CPU 101不限于ARM。 所有软件程序存储在连接到CPU 101的存储器103 (ROM/RAM)中。存 储器113按需由CPU101访问。
OS 102嵌入在诸如Linux、 WinCE或Symbian之类的操作系统中。本 发明的实施例基于OS 102具有以下或基本上等同的下述功能的前提。换 言之,具有以下或基本上等同的功能的OS可根据本发明的实施例来使 用,即使OS是除了本文档中描述的之外的OS。 OS的功能,根据本发明 的实施例,描述为如下
用户模式OS 102可在用户模式运行安全管理器105、本地指令处理 器106、动态编译器107和应用111的相应程序,以便阻止这些程序直接 执行特权指令,例如MMU寄存器修改指令。存储器保护应用111的存储器空间与例如在内核中的其它应用分离。
1/0保护I/O操作必须在监控模式中执行,并且不能直接由应用111 执行(除了用户模式的存储器映射I/0外)。
良好定义的系统调用接口 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时,使用本地指令处理器
10106。本地指令处理器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编译指令序列以生成安全本地指令序列。所生成的安全指令序列存储在指定的存储器地址中,随后,CPU 101执行所生成的安全本地指令序列并且应用111的执行再继续。因此,
当所生成的安全本地指令序列的执行完成时502,在506用CPU 101执行 应用111的本地指令序列,同时由本地指令处理器106检査随后的指令序 列。
安全管理器105具有安全配置文件,该安全配置文件包括非置信区域 110中存储的应用111的指令序列的信息,该信息用于确定由于应用111 指令序列的执行将影响安全性的可能性,如上所述。安全配置文件中包含 的信息可帮助确定是否授权或许可指令序列的执行。安全配置文件的格式 例如可以是XML格式。然而,可使用其它格式。此外,安全配置文件可 配置为包含涉及用于每个应用的可访问地址范围、文件类型或硬件资源的 信息。而且,安全配置文件可用于确定根据指定的地址范围、文件类型或 硬件资源是否可许可访问。
下面描述根据本发明实施例的由用户空间虚拟化执行的用户模式中本 地指令处理器106和动态编译器107的操作。特定地,当本地指令处理器 106和动态编译器107执行时的操作,根据本发明实施例通过经由用户空 间虚拟化与安全管理器105交互,执行应用111。图2示出了图1中示出 的软件模块的交互。图3示出了示出各个软件模块执行的那些操作的流程 图。
首先,本地指令处理器106从加载到用户空间的应用111的程序代码 中取回要执行的本地指令(ST101)。可单独或共同地取出本地指令。
然后,本地指令处理器106确定所取回的本地指令当执行时是否执行 可影响安全性的处理(ST 102)。参考图4,编译器402将检测可指示本 地指令内的可能的安全风险的模式404。该判定基于任何本地指令或序列 是否已注册在安全配置文件中作为当执行时执行可影响安全性的处理并且 包括在所取回的本地指令中的一个。
如果在ST102中判定取出的本地指令不执行任何可影响安全性的处 理,那么本地处理器106取回的本地指令直接用CPU 101执行(ST 103)。
12相反,如果在ST102中,判定所取回本地指令执行可影响安全性的处
理,动态编译器107编译所取回本地指令以生成安全本地指令109并且将 它存储在指定的地址(ST104),所述安全本地指令109当执行时完成等 同于编译前的本地指令的处理。
随后,在ST104中生成的安全本地指令109用CPU 101来执行。结 果,首先,向安全管理器105生成査询,以检査应用lll是否具有权限执 行能够影响安全性的处理(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。因此,当要对由在嵌入式系统中共享资源造 成的问题进行仲裁时(即,当多个应用同时使用相同的资源时),根据每 个应用的目的和系统的设置实现分配资源使用的权限。
而且,如图IOA中所示,除了检查应用权限的功能,可能设置功能以 控制安全管理器105中应用的资源使用。这允许当多个应用同时试图使用 相同资源时,根据应用属性或系统设置来分配资源的用户权限。尤其是, 所谓的资源调节在嵌入式系统中的资源共享中成为了问题。通过使用多任 务方法,你能有效地开发复杂的嵌入式系统以运行多个应用。参考图 IOB,可能设置设备诊断系统,其中操作者可分析什么用户操作实际上造 成了系统崩溃。登录(logging)将允许用户发现递送了哪个系统调用命令 造成了对内核的损害。另外,参考图IOC,还可能由可接收设置的用于家 电的家庭网关实现安全控制系统,例如恒温器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的其它可移除
15存储单元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执行如这里所述的本发 明的功能。
将会理解,为了清楚的目的,上面的描述已参考不同的功能单元和处 理器描述了本发明的实施例。然而,明显的是,可使用不同功能单元、处 理器或区域之间的任何合适的功能分布,不会从本发明转移。例如,示出 为由分离的处理器或控制器执行的功能可由相同处理器或控制器执行。因 此,对特定功能单元的引用仅仅视为对用于提供所述功能的合适装置的引 用,而不是表示严格的逻辑或物理结构或组织。
尽管己结合某些实施例描述了本发明,它不旨在限于这里阐述的精确形式。而是,本发明的范围仅由权利要求限制。另外,尽管特征可表现为 结合特定实施例来描述,本领域技术人员将会意识到,可根据本发明组合 所述实施例的各种特征。
此外,尽管被单独地列出,多个装置、元素或方法步骤可例如由单个 单元或处理器实现。另外,尽管单独的特征可包括在不同权利要求中,这 些可能是有利于组合的,并且不同权利要求中的包含不意味着特征的组合 不是可行的和/或有利的。而且,在一类权利要求中的特征的包含不意味着 对于该种类的限制,而是特征可视情况等同地应用于其它权利要求种类。
权利要求
1.一种计算机实现的方法,用于利用用户空间中的用户空间虚拟化程序来控制系统资源和系统安全性,所述方法包括取回应用的本地代码;根据所述本地代码识别指令序列,其中识别所述指令序列包括(1)如果执行用于执行处理的所述指令序列是可能的安全风险,那么确认存在用于所述应用的执行权限;(1-1)如果所述应用具有用于处理的所述执行权限,那么用处理器执行所述指令序列;(1-2)如果所述应用没有用于处理的执行权限,那么不执行所述指令序列;和(2)如果执行用于执行处理的所述指令序列不是可能的安全风险,那么用所述处理器执行所述指令序列。
2. 根据权利要求l所述的方法,其中(1-2)还包括以下(1-3):如果所述应用没有用于处理的执行权限,那么提供错误指示。
3. 根据权利要求1所述的方法,其中确认存在用于所述应用的执行 权限包括将安全检查指令添加到所述指令序列以生成安全指令序列。
4. 根据权利要求3所述的方法,其中所述安全指令序列在用户空间 中执行。
5. 根据权利要求3所述的方法,其中所述安全指令序列启动对所述 应用的执行权限的确认。
6. 根据权利要求1所述的方法,其中用于所述应用的执行权限由所 述安全管理器确认。
7. 根据权利要求1所述的方法,其中用于所述应用的执行权限由所 述处理器确认。
8. 根据权利要求l所述的方法,还包括从应用的所述本地代码中检测用于执行与安全性相关联的处理的指令 序列;在根据所检测到的指令序列的本地代码确认存在所述活动应用的执行 权限之后,生成执行与安全性相关联的处理的所述指令序列的本地代码; 禾口用所述处理器执行所生成的代码。
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所述的装置,其中识别关联于安全性的指令序 列包括检查用于所述指令序列注册的安全配置文件。
全文摘要
提供了用户空间虚拟化(USV)程序以允许嵌入式系统中的遗产应用共享资源而不必修改,不会损害安全性。计算机实现的USV程序可以用户空间中的方法为特征,所述方法包括取回应用的本地代码(ST101),并且识别指令序列。此外,识别指令序列包括首先确定执行用于执行处理的指令序列是否可能为安全风险(ST102)。如果它是可能的安全风险,那么确认存在用于活动应用的执行权限。执行权限可由安全管理器或处理器确认(ST104)。如果安全管理器确认活动应用具有用于处理的执行权限,那么用处理器执行指令序列(ST103)。如果活动应用没有用于处理的执行权限,那么不执行指令序列(ST108)。另一方面,如果执行用于执行处理的指令序列不是可能的安全风险,那么用处理器执行指令序列(ST107)。
文档编号G06F15/00GK101578589SQ200780035408
公开日2009年11月11日 申请日期2007年7月24日 优先权日2006年7月24日
发明者艾奥伊·拉姆, 门真淳一 申请人:阿普里克斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1