【技术实现步骤摘要】
用于采用处理器沙箱支持的不可信代码执行的技术
技术介绍
典型的计算设备可执行许多小的、不可信代码组件。例如,计算设备可执行从因特网下载的插件、小应用程序、应用程序或其它第三方代码组件。在当前的计算设备中,不可信代码可通过进程边界或环边界而与可信代码分离。Intel®页面保护密钥可保护进程地址空间的少量(例如16个)域免于意外读取或写入存储器访问,例如由编程错误引起。页面保护密钥可能无法防止操纵保护密钥本身的恶意攻击者。典型的计算设备还可实现基于软件的隔离以在用户进程内执行不可信代码。例如,Google®NativeClient(NaCl)实现自定义工具链,以确保除了通过特定的蹦床(trampoline)例程之外,在基于软件的沙箱内执行的代码不可以跳出沙箱。附图说明本文所述的概念在附图中通过示例的方式而不是通过限制的方式来图示。为了说明的简单和清楚,图中图示的元件不一定按比例绘制。在认为合适的情况下,已经在附图中重复参考标记以指示对应的或类似的元件。图1是用于不可信代码执行的计算设备的至少一个实施例的简化框图;图2是可由图1的计算设备建立的环境的至少一个实施例的简化框图;图3A和图3B是可由图1至图2的计算设备执行的用于不可信代码执行的方法的至少一个实施例的简化流程图;以及图4是可由图1至图2的计算设备执行的用于异常处理的方法的至少一个实施例的简化流程图。具体实施方式尽管本公开的概念易于进行各种修改和替代形式,但是已经在图中通过示例的方式示出并且将在本文中详细描述其具体实施例。然而,应当理解的是:并不意图将本公开的概念限于公开的特定形式,而是相反,意图是覆盖与本公 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。