[发明专利]引导固件沙箱化在审
| 申请号: | 201980061975.6 | 申请日: | 2019-09-16 |
| 公开(公告)号: | CN112740211A | 公开(公告)日: | 2021-04-30 |
| 发明(设计)人: | C·T·卡伦贝格;R·沃杰茨祖科;X·S·科瓦;A·J·菲什 | 申请(专利权)人: | 苹果公司 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/53;G06F9/4401;G06F12/14 |
| 代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 黄倩 |
| 地址: | 美国加利*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 引导 固件沙箱化 | ||
1.一种具有存储于其中的程序指令的非暂态计算机可读介质,所述程序指令能够由计算设备执行以使所述计算设备执行包括以下项的操作:
由引导加载程序启动引导序列以加载所述计算设备的操作系统;
由所述引导加载程序检测将在所述引导序列期间执行的外围设备的固件以初始化所述外围设备以供所述计算设备使用;以及
响应于所述检测,由所述引导加载程序实例化将所述固件与所述引导加载程序隔离的沙箱。
2.根据权利要求1所述的计算机可读介质,其中所述操作包括:
从包括在所述外围设备中的选项只读存储器(OROM)加载所述固件;以及
在所述引导序列期间执行所述固件以初始化所述外围设备。
3.根据权利要求1所述的计算机可读介质,其中所述操作包括:
由所述引导加载程序将一个或多个存储器地址范围分配给所述固件;以及
通过所述沙箱限制所述固件访问未包括在所分配的一个或多个存储器地址范围中的存储器地址。
4.根据权利要求3所述的计算机可读介质,其中所述操作包括:
由所述引导加载程序将存储器的一个或多个页面分配给所述固件,其中所述一个或多个存储器地址范围包括对应于所述一个或多个页面的范围。
5.根据权利要求3所述的计算机可读介质,其中所述分配包括将所述外围设备的存储器映射的输入/输出(MMIO)地址范围分配给所述固件;并且
其中所述限制包括防止所述固件访问所述计算设备的另一外围设备的MMIO地址。
6.根据权利要求3所述的计算机可读介质,其中所述操作包括:
服务来自所述外围设备的指定所述一个或多个存储器地址范围内的地址的直接存储器访问(DMA)请求;以及
阻止来自所述外围设备的指定所述一个或多个地址范围之外的地址的直接存储器访问(DMA)请求。
7.根据权利要求1所述的计算机可读介质,其中所述操作包括:
在内核模式下执行所述引导加载程序,在所述内核模式下,所述引导加载程序以一组不受限制的权限来执行;并且
其中所述实例化包括使得所述固件在应用程序模式下执行,使得所述固件以一组受限的权限执行。
8.根据权利要求7所述的计算机可读介质,其中所述操作包括:
由所述沙箱接收来自所述固件的使所述引导加载程序执行操作的请求;
响应于接收到所述请求,由所述沙箱调用系统调用,以使所述计算设备的处理器转变为在所述内核模式下执行所述引导加载程序;以及
响应于确定允许所述固件请求所述操作,由所述引导加载程序执行所述操作。
9.根据权利要求7所述的计算机可读介质,其中所述操作包括:
由所述沙箱接收来自所述引导加载程序的使所述固件执行操作的请求;以及
响应于接收到所述请求,由所述沙箱调用系统返回,以使所述计算设备的处理器转变为在所述应用程序模式下执行所述固件。
10.根据权利要求1所述的计算机可读介质,其中所述引导加载程序支持能够用于传送数据的多个统一可扩展固件接口(UEFI)协议;并且
其中所述操作包括:
由所述沙箱将所述固件限制为仅使用所支持的多个UEFI协议的子集。
11.一种方法,包括:
由引导加载程序执行引导序列以初始化计算设备的操作系统;
在所述引导序列期间:
由所述引导加载程序检测加载到所述计算设备的外围设备的存储器中的设备驱动程序;以及
由所述引导加载程序实例化沙箱以将所述设备驱动程序的执行与所述引导加载程序的执行隔离。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苹果公司,未经苹果公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201980061975.6/1.html,转载请声明来源钻瓜专利网。





