发明名称 |
Native code module security for 64-bit instruction set architectures |
摘要 |
Some embodiments provide a system that executes a native code module. During operation, the system obtains the native code module. Next, the system loads the native code module into a secure runtime environment. Finally, the system safely executes the native code module in the secure runtime environment by using a set of software fault isolation (SFI) mechanisms that maintain control flow integrity for the native code module and constrain store instructions in the native code module by bounding a valid memory region of the native code module with one or more guard regions. |
申请公布号 |
US8935776(B1) |
申请公布日期 |
2015.01.13 |
申请号 |
US201313904490 |
申请日期 |
2013.05.29 |
申请人 |
Google Inc. |
发明人 |
Sehr David C.;Yee Bennet S.;Chen J. Bradley;Khimenko Victor |
分类号 |
G06F21/00;G06F21/53 |
主分类号 |
G06F21/00 |
代理机构 |
Fish & Richardson P.C. |
代理人 |
Fish & Richardson P.C. |
主权项 |
1. A method comprising:
receiving, by a computing device, a native code module, wherein the computing device includes a processor implementing an instruction set architecture that has a particular addressing mode that derives store addresses from (i) respective values of a stack pointer of the processor or a base pointer of the processor, (ii) a 32-bit displacement, and (iii) a scaled 32-bit index, and wherein the native code module includes one or more store instructions that each use the particular addressing mode to compute respective store addresses; loading, by the computing device, the native code module into a memory of the computing device, including loading the native code module in a valid memory region for the native code module; executing the native code module in a secure runtime environment in the computing device, including:
bounding the valid memory region with one or more guard regions;enforcing storage of valid data addresses in a stack pointer and a base pointer;masking the scaled 32-bit index; andafter masking the scaled 32-bit index, executing the one or more store instructions without performing any additional masking operations on the stack pointer, the base pointer or the scaled 32-bit index. |
地址 |
Mountain View CA US |