[发明专利]用于采用处理器沙箱支持的不可信代码执行的技术在审
申请号: | 201811131137.5 | 申请日: | 2018-09-27 |
公开(公告)号: | CN109726549A | 公开(公告)日: | 2019-05-07 |
发明(设计)人: | 张明威;孙鸣秋;R.L.萨希塔;张春晖;李晓宁 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F21/53 | 分类号: | G06F21/53 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 王健;闫小龙 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 沙箱 计算设备 处理器 处理器模式 处理器指令 代码执行 可信代码 非特权 可执行 地域 调用 指令 跳转指令 存储器 退出 跳转 响应 配置 申请 外部 恢复 访问 | ||
1.一种用于不可信代码执行的计算设备,该计算设备包括可信域管理器以:
在非特权本地处理器模式下执行包括在第一虚拟地址空间的本地域中的代码;
在本地处理器模式下的代码的执行期间,调用第一处理器指令以将存储器页面添加到第一虚拟地址空间的第一沙箱域,其中存储器页面未被包括在本地域中;
在本地处理器模式下的代码的执行期间,调用第二处理器指令以响应于第一处理器指令的调用而进入第一沙箱域;以及
响应于第二处理器指令的调用,在非特权沙箱处理器模式下执行包括在第一沙箱域中的代码。
2.根据权利要求1所述的计算设备,其中在非特权沙箱处理器模式下执行包括在第一沙箱域中的代码包括:
由计算设备的处理器允许对包括在第一沙箱域中的存储器的访问;以及
由计算设备的处理器拒绝对未被包括在第一沙箱域中的存储器的访问。
3.根据权利要求2所述的计算设备,其中拒绝对存储器的访问包括:拒绝对未被包括在第一沙箱域中的存储器的读取访问、写入访问和执行访问。
4.根据权利要求1所述的计算设备,其中在非特权沙箱处理器模式下执行包括在第一沙箱域中的代码包括:由计算设备的处理器拒绝禁止的指令的执行。
5.根据权利要求1所述的计算设备,其中可信域管理器进一步:
在本地处理器模式下的用户模式代码的执行期间,为第一沙箱域配置沙箱状态;以及
响应于沙箱状态的配置,调用第三处理器指令以为第一沙箱域设置沙箱状态;
其中调用第二处理器指令包括:响应于第三处理器指令的调用,调用第二处理器指令。
6.根据权利要求1所述的计算设备,进一步包括处理器,其中处理器包括沙箱跳转引擎以:
响应于第二处理器指令的调用,在计算设备的存储器中设置沙箱位;
响应于第二处理器指令的调用,在计算设备的存储器中存储返回地址;
响应于第二处理器指令的调用,从计算设备的存储器加载执行状态;以及
响应于第二处理器指令的调用,跳转到第一沙箱域内的进入点。
7.根据权利要求6所述的计算设备,其中加载执行状态包括:
将堆栈指针从存储器加载到处理器的堆栈指针寄存器;以及
将进入点从存储器加载到处理器的指令指针寄存器。
8.根据权利要求1所述的计算设备,其中:
在沙箱处理器模式下执行代码包括:调用第三处理器指令以退出第一沙箱域;以及
可信域管理器进一步响应于第三处理器指令的调用,在非特权本地处理器模式下执行包括在第一虚拟地址空间的本地域中的代码。
9.根据权利要求8所述的计算设备,进一步包括处理器,其中:
处理器包括沙箱跳转引擎,以响应于第二处理器指令的调用而在计算设备的存储器中设置沙箱位;以及
处理器包括沙箱退出引擎,以响应于第三处理器指令的调用而清除存储器中的沙箱位。
10.根据权利要求1所述的计算设备,进一步包括:
处理器,其包括沙箱强制执行引擎以在非特权沙箱处理器模式下执行包括在第一沙箱域中的代码期间生成异常;以及
系统管理器,以(i)响应于异常的生成,在特权处理器模式下执行内核异常处理程序,以及(ii)响应于内核异常处理程序的执行,在非特权本地处理器模式下调用非特权异常处理程序;
其中可信域管理器进一步:(i)响应于非特权异常处理程序的执行,读取处理器的沙箱状态寄存器,以及(ii)响应于沙箱状态寄存器的读取,确定异常是否源于非特权沙箱处理器模式。
11.根据权利要求10所述的计算设备,其中可信域管理器进一步在本地处理器模式下的非特权异常处理程序的执行期间调用第二处理器指令以进入非特权沙箱处理器模式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811131137.5/1.html,转载请声明来源钻瓜专利网。