使用经认证指针来进行经动态生成的代码处理沙盒化制造技术

技术编号:24019812 阅读:61 留言:0更新日期:2020-05-02 04:52
提供了一种用于安全地执行经动态生成的代码以避免不受保护的存储器空间中的攻击的可能性的方法。在查明将要执行经动态生成的代码之际,处理电路和/或操作系统内核将该经动态生成的代码限制成使用不受保护的存储器空间内的第一存储器区域,其中第一存储器区域不同于由该处理电路执行的其他进程所使用的其他存储器区域(例如,第一存储器区域是被保留的)。第一处理栈被维护以用于第一存储器区域内的该经动态生成的代码。第一处理栈与由该处理电路执行的其他进程所使用的通用处理栈分开。当该经动态生成的代码被执行时栈指针被切换至/指向第一处理栈,而当该经动态生成的代码结束时该栈指针被切换至/指向该通用处理栈。

Sandboxing dynamically generated code processing using certified pointers

【技术实现步骤摘要】
【国外来华专利技术】使用经认证指针来进行经动态生成的代码处理沙盒化相关申请的交叉引用本申请要求于2018年9月26日在美国专利商标局提交的非临时专利申请No.16/142,611以及于2017年9月29日在美国专利商标局提交的临时专利申请No.62/566,213的优先权和权益,这些申请的全部内容通过援引如同在下文全面阐述那样且出于所有适用目的而被纳入于此。领域本公开一般涉及处理器安全性,并且更具体地涉及防止经动态生成的执行代码触发存储器损坏攻击。背景随着高级RISC机器v8.3(ARMv8.3)指针认证(PA)扩展的引入,有可能保护代码和数据指针免受存储器损坏攻击。在指针认证的一个示例中,密码签名被附加到指针值以使得可以在使用指针之前验证该密码签名。缺少用于创建密码签名的密钥的攻击者不太可能能够创建供漏洞使用的有效指针。PA指令可以帮助实施代码和数据流完整性,但是如果存在攻击者可注入和运行代码的可写且可执行存储器区域,则这些PA指令将失败。一种类型的动态代码生成包括即时编译(有时被称为动态翻译和/或运行时编译),其在程序的运行时或执行期间发生,而非在执行之本文档来自技高网...

【技术保护点】
1.一种在处理电路处操作的方法,包括:/n查明何时将要执行经动态生成的代码;/n将所述经动态生成的代码限制成使用不受保护的存储器空间内的第一存储器区域,其中所述第一存储器区域不同于由所述处理电路执行的其他进程所使用的其他存储器区域;/n维护与由所述处理电路执行的其他进程所使用的通用处理栈分开的第一处理栈以用于所述第一存储器区域内的所述经动态生成的代码,其中在执行所述经动态生成的代码时栈指针被切换至所述第一处理栈,并且在所述经动态生成的代码结束时所述栈指针被切换至所述通用处理栈;以及/n将从所述第一存储器区域到其他存储器区域的所有存储器访问和对控制的转移实施成通过经认证的指针来发生,从而忽略/禁...

【技术特征摘要】
【国外来华专利技术】20170929 US 62/566,213;20180926 US 16/142,6111.一种在处理电路处操作的方法,包括:
查明何时将要执行经动态生成的代码;
将所述经动态生成的代码限制成使用不受保护的存储器空间内的第一存储器区域,其中所述第一存储器区域不同于由所述处理电路执行的其他进程所使用的其他存储器区域;
维护与由所述处理电路执行的其他进程所使用的通用处理栈分开的第一处理栈以用于所述第一存储器区域内的所述经动态生成的代码,其中在执行所述经动态生成的代码时栈指针被切换至所述第一处理栈,并且在所述经动态生成的代码结束时所述栈指针被切换至所述通用处理栈;以及
将从所述第一存储器区域到其他存储器区域的所有存储器访问和对控制的转移实施成通过经认证的指针来发生,从而忽略/禁用与其他指针认证相关的所有指令。


2.如权利要求1所述的方法,其特征在于,进一步包括:
将所述经动态生成的代码所使用的计算指令限制成在所述第一存储器区域内操作。


3.如权利要求1所述的方法,其特征在于,进一步包括:
如果所述经动态生成的代码内的加载、存储、和/或分支指令调用所述第一存储器区域之外的地址,则触发页面故障指示符。


4.如权利要求1所述的方法,其特征在于,进一步包括:
如果所述经动态生成的代码内的特殊或系统指令调用所述第一存储器区域之外的地址,则触发页面故障指示符。


5.如权利要求1所述的方法,其特征在于,限制所述经动态生成的代码是由所述处理电路和/或在其上操作的操作系统内核来执行的。


6.如权利要求1所述的方法,其特征在于,返回和调用指令是将控制转移到所述第一存储器区域的唯一方式。


7.如权利要求1所述的方法,其特征在于,所述处理电路是高级精简指令集计算机(RISC)机器(ARM)处理器。


8.如权利要求1所述的方法,其特征在于,一个或多个寄存器定义能由所述经动态生成的代码利用的一个或多个存储器范围。


9.如权利要求1所述的方法,其特征在于,所述第一存储器区域是从耦合到所述处理电路或集成在所述处理电路内的存储器设备的可写的执行存储器区域内定义的。


10.如权利要求1所述的方法,其特征在于,存储器页表中的标志被用于标记起源于所述第一存储器区域的所有存储器页面。


11.如权利要求1所述的方法,其特征在于,所述经动态生成的代码在由所述处理电路生成之际被立即置于所述第一存储器区域中。


12.一种处理设备,包括:
存储器设备;
耦合至所述存储器设备的处理电路,所述处理电路被配置成:
查明何时将要执行经动态生成的代码;
将所述经动态生成的代码限制成使用所述存储器设备的不受保护的存储器空间内的第一存储器区域,其中所述第一存储器区域不同于由所述处理电路执行的其他进程所使用的其他存储器区域;
维护与由所述处理电路执行的其他进程所使用的通用处理栈分开的第一处理栈以用于所述第一存储器区域内的所述经动态生成的代码,其中在执行所述经动态生成的代码时栈指针被切换至所述第一处理栈,并且在所述经动态生成的代码结束时所述...

【专利技术属性】
技术研发人员:C·阿卡R·特纳A·甘特曼
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国;US

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

1