当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于采用处理器沙箱支持的不可信代码执行的技术制造技术

技术编号:21060637 阅读:25 留言:0更新日期:2019-05-08 07:13
本申请涉及用于采用处理器沙箱支持的不可信代码执行的技术。用于不可信代码执行的技术包括具有带沙箱支持的处理器的计算设备。计算设备在非特权本地处理器模式下执行包括在本地域中的代码。计算设备可在本地域中的代码执行期间调用沙箱跳转处理器指令以进入沙箱域。计算设备响应于调用沙箱跳转指令而在非特权沙箱处理器模式下执行沙箱域中的代码。在沙箱处理器模式下执行的同时,处理器拒绝对沙箱域外部的存储器的访问,并可拒绝一个或多个禁止的指令的执行。从沙箱域中,计算设备可执行沙箱退出指令以退出沙箱域并恢复本地域中的执行。计算设备可执行处理器指令以配置沙箱域。描述并要求保护其它实施例。

【技术实现步骤摘要】
用于采用处理器沙箱支持的不可信代码执行的技术
技术介绍
典型的计算设备可执行许多小的、不可信代码组件。例如,计算设备可执行从因特网下载的插件、小应用程序、应用程序或其它第三方代码组件。在当前的计算设备中,不可信代码可通过进程边界或环边界而与可信代码分离。Intel®页面保护密钥可保护进程地址空间的少量(例如16个)域免于意外读取或写入存储器访问,例如由编程错误引起。页面保护密钥可能无法防止操纵保护密钥本身的恶意攻击者。典型的计算设备还可实现基于软件的隔离以在用户进程内执行不可信代码。例如,Google®NativeClient(NaCl)实现自定义工具链,以确保除了通过特定的蹦床(trampoline)例程之外,在基于软件的沙箱内执行的代码不可以跳出沙箱。附图说明本文所述的概念在附图中通过示例的方式而不是通过限制的方式来图示。为了说明的简单和清楚,图中图示的元件不一定按比例绘制。在认为合适的情况下,已经在附图中重复参考标记以指示对应的或类似的元件。图1是用于不可信代码执行的计算设备的至少一个实施例的简化框图;图2是可由图1的计算设备建立的环境的至少一个实施例的简化框图;图3A和图3B是可由图1至图2的计算设备执行的用于不可信代码执行的方法的至少一个实施例的简化流程图;以及图4是可由图1至图2的计算设备执行的用于异常处理的方法的至少一个实施例的简化流程图。具体实施方式尽管本公开的概念易于进行各种修改和替代形式,但是已经在图中通过示例的方式示出并且将在本文中详细描述其具体实施例。然而,应当理解的是:并不意图将本公开的概念限于公开的特定形式,而是相反,意图是覆盖与本公开和所附权利要求一致的所有修改、等同物和替代方案。说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所述的实施例可包括特定特征、结构或特性,但是每个实施例可能一定或可能不一定包括该特定特征、结构或特性。而且,这样的短语不一定指相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,要主张的是:结合其它实施例(无论是否被明确描述)实现这样的特征、结构或特性在本领域技术人员的知识范围内。另外,应当理解:以“A、B和C中的至少一个”的形式包括在列表中的项可以意味着(A);(B);(C);(A和B);(A和C);(B和C);或者(A、B和C)。类似地,以“A、B或C中的至少一个”的形式列出的项可以意味着(A);(B);(C);(A和B);(A和C);(B和C);或者(A,B和C)。在一些情况下,公开的实施例可以按硬件、固件、软件或其任何组合来实现。公开的实施例还可被实现为由一个或多个暂时性或非暂时性机器可读(例如,计算机可读)存储介质承载或在其上存储的指令,该指令可由一个或多个处理器读取并且执行。机器可读存储介质可被体现为用于以由机器可读的形式(例如,易失性或非易失性存储器、媒体盘或其它媒体设备)存储或发送信息的任何存储设备、机制或其它物理结构。在图中,可以按具体布置和/或排序示出一些结构或方法特征。然而,应当理解:可能不需要这样的具体布置和/或排序。而是,在一些实施例中,可以按不同于说明性图中所示的方式和/或次序来布置这样的特征。另外,在特定图中包括结构或方法特征不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可不包括这样的特征或者这样的特征可与其它特征组合。现在参考图1,在说明性实施例中,示出用于不可信代码执行的计算设备100。如所示的,计算设备100包括处理器120,该处理器120包括沙箱支持122。在使用中,如以下更详细地描述的,计算设备100在本地处理器模式下执行来自本地域的非特权代码(例如,用户级代码)。计算设备100可将存储器页面添加到一个或多个沙箱域,并且然后使用沙箱支持122跳转到沙箱域内的进入点。计算设备100在沙箱处理器模式下执行沙箱域内的代码,其中不允许在沙箱域外部的存储器访问以及某些处理器指令。计算设备100可使用沙箱支持122跳回到本地域。本地域和沙箱域可被包括在相同的虚拟地址空间中。因此,计算设备100可使能多个不可信沙箱域的用户级配置和管理。计算设备100可为相同地址空间中的不同域提供存储器保护,而不需要可能昂贵的上下文切换或许可级别改变(例如,环级别改变、超级调用或其它安全性边界交叉)。因此,计算设备100可为某些应用程序改善性能,特别是为执行频繁跨边界交互的工作负载。另外,计算设备100可执行沙箱隔离而无需大量的专用工具链支持(例如,无需对编译器、链接器或其它工具链组件进行大量改变),并且通过移除软件开销,可提供比仅仅软件隔离技术改善的性能。计算设备100可被体现为能够执行本文所述的功能的任何类型的计算或计算机设备,包括而不限于计算机、多处理器系统、服务器、机架式服务器、刀片服务器、膝上型电脑、笔记本电脑、平板电脑、可穿戴计算设备、网络器具、web器具、嵌入式系统、分布式计算系统、基于处理器的系统和/或消费电子设备。如图1中所示,计算设备100说明性地包括处理器120、输入/输出子系统124、存储器126、数据存储设备128和通信子系统130。当然,在其它实施例中,计算设备100可包括其它或附加组件,诸如在服务器中常见的组件(例如,各种输入/输出设备)。另外,在一些实施例中,说明性组件中的一个或多个可并入另一个组件中,或者以其它方式形成另一组件的一部分。例如,在一些实施例中,存储器126或其部分可并入在处理器120中。处理器120可被体现为能够执行本文所述的功能的任何类型的处理器。处理器120可被体现为单核或多核处理器、数字信号处理器、微控制器或者其它处理器或处理/控制电路。正如所示的,处理器120包括沙箱支持122。沙箱支持122可被体现为任何硬件、固件、微代码、处理器120的如下进一步所述地提供沙箱保护的其它资源。例如,沙箱支持122可包括指令集架构(ISA)扩展、模型特定寄存器和/或其它处理器特征,以支持沙箱域的配置、进入和退出沙箱域并实施沙箱保护。类似地,存储器126可被体现为能够执行本文所述的功能的任何类型的易失性或非易失性存储器或数据存储。在操作中,存储器126可存储在计算设备100的操作期间使用的各种数据和软件,诸如操作系统、应用程序、程序、库和驱动程序。存储器126经由I/O子系统124通信地耦合到处理器120,I/O子系统124可被体现为便于与处理器120、存储器126和计算设备100的其它组件的输入/输出操作的线路和/或组件。例如,I/O子系统124可被体现为或以其它方式包括存储器控制器集线器、输入/输出控制集线器、固件设备,通信链路(即,点对点链路、总线链路、电线、电缆、光导、印刷电路板迹线等)和/或其它组件和子系统,以便于输入/输出操作。在一些实施例中,I/O子系统124可形成片上系统(SoC)的一部分,并且与处理器120、存储器126以及计算设备100的其它组件一起被并入在单个集成电路芯片上。数据存储设备128可被体现为被配置用于数据的短期或长期存储的任何类型的一个或多个设备,诸如例如存储器设备和电路、存储卡、硬盘驱动器、固态驱动器或其它数据存储设备。计算设备100的通信子系统130可被体现为能够通过网络在计算设备100与其它远程设备之间实现通本文档来自技高网...

【技术保护点】
1.一种用于不可信代码执行的计算设备,该计算设备包括可信域管理器以:在非特权本地处理器模式下执行包括在第一虚拟地址空间的本地域中的代码;在本地处理器模式下的代码的执行期间,调用第一处理器指令以将存储器页面添加到第一虚拟地址空间的第一沙箱域,其中存储器页面未被包括在本地域中;在本地处理器模式下的代码的执行期间,调用第二处理器指令以响应于第一处理器指令的调用而进入第一沙箱域;以及响应于第二处理器指令的调用,在非特权沙箱处理器模式下执行包括在第一沙箱域中的代码。

【技术特征摘要】
2017.09.29 US 15/7200831.一种用于不可信代码执行的计算设备,该计算设备包括可信域管理器以:在非特权本地处理器模式下执行包括在第一虚拟地址空间的本地域中的代码;在本地处理器模式下的代码的执行期间,调用第一处理器指令以将存储器页面添加到第一虚拟地址空间的第一沙箱域,其中存储器页面未被包括在本地域中;在本地处理器模式下的代码的执行期间,调用第二处理器指令以响应于第一处理器指令的调用而进入第一沙箱域;以及响应于第二处理器指令的调用,在非特权沙箱处理器模式下执行包括在第一沙箱域中的代码。2.根据权利要求1所述的计算设备,其中在非特权沙箱处理器模式下执行包括在第一沙箱域中的代码包括:由计算设备的处理器允许对包括在第一沙箱域中的存储器的访问;以及由计算设备的处理器拒绝对未被包括在第一沙箱域中的存储器的访问。3.根据权利要求2所述的计算设备,其中拒绝对存储器的访问包括:拒绝对未被包括在第一沙箱域中的存储器的读取访问、写入访问和执行访问。4.根据权利要求1所述的计算设备,其中在非特权沙箱处理器模式下执行包括在第一沙箱域中的代码包括:由计算设备的处理器拒绝禁止的指令的执行。5.根据权利要求1所述的计算设备,其中可信域管理器进一步:在本地处理器模式下的用户模式代码的执行期间,为第一沙箱域配置沙箱状态;以及响应于沙箱状态的配置,调用第三处理器指令以为第一沙箱域设置沙箱状态;其中调用第二处理器指令包括:响应于第三处理器指令的调用,调用第二处理器指令。6.根据权利要求1所述的计算设备,进一步包括处理器,其中处理器包括沙箱跳转引擎以:响应于第二处理器指令的调用,在计算设备的存储器中设置沙箱位;响应于第二处理器指令的调用,在计算设备的存储器中存储返回地址;响应于第二处理器指令的调用,从计算设备的存储器加载执行状态;以及响应于第二处理器指令的调用,跳转到第一沙箱域内的进入点。7.根据权利要求6所述的计算设备,其中加载执行状态包括:将堆栈指针从存储器加载到处理器的堆栈指针寄存器;以及将进入点从存储器加载到处理器的指令指针寄存器。8.根据权利要求1所述的计算设备,其中:在沙箱处理器模式下执行代码包括:调用第三处理器指令以退出第一沙箱域;以及可信域管理器进一步响应于第三处理器指令的调用,在非特权本地处理器模式下执行包括在第一虚拟地址空间的本地域中的代码。9.根据权利要求8所述的计算设备,进一步包括处理器,其中:处理器包括沙箱跳转引擎,以响应于第二处理器指令的调用而在计算设备的存储器中设置沙箱位;以及处理器包括沙箱退出引擎,以响应于第三处理器指令的调用而清除存储器中的沙箱位。10.根据权利要求1所述的计算设备,进一步包括:处理器,其包括沙箱强制执行引擎以在非特权沙箱处理器模式下执行包括在第一沙箱域中的代码期间生成异常;以及系统管理器,以(i)响应于异常的生成,在特权处理器模式下执行内核异常处理程序,以及(ii)响应于内核异常处理程序的执行,在非特权本地处理器模式下调用非特权异常处理程序;其中可信域管理器进一步:(i)响应于非特权异常处理程序的执行,读取处理器的沙箱状态寄存器,以及(ii)响应于沙箱状态寄存器的读取,确定异常是否源于非特权沙箱处理器模式。11.根据权利要求10所述的计算设备,其中可信域管理器进一步在本地处理器模式下的非特权异常处理程序的执行期间调用第二处理器指令以进入非特权沙箱处理器模式。12.一种用于不可信代码执行的方法,该方法包括:由计算设备在非特权本地处理器模式下执行包括在第一虚拟地址空间的本地域中的代码;在本地处理器模式下执行代码的同时,由计算设备调用第一处理器指令以将存储器页面添加到第一虚拟地址空间的第一沙箱域,其中存储器页面未被包括在本地域中;在本地处理器模式下执行代码的同时,由计算设备调用第二处理器指令以响应于调用第一处理器指令而进入第一沙箱域;以及响应于调用第二处理器指令,由计算设备在非特权沙箱处理器模式下执行包括在第一沙箱域中的代码。13.根据权利要求12所述的方法,其中在非特权沙箱处理器模式下执行包括在第一沙箱域中的代码包括:由计算设备的处理器允许对包括在第一沙箱域中的存储器的访问;以及由计算设备的处理器拒绝对未被包括在第一沙箱域中的存储器的访问。14.根据权利要求12所述的方法,其中在非特权沙箱处理器...

【专利技术属性】
技术研发人员:张明威孙鸣秋RL萨希塔张春晖李晓宁
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1