[发明专利]防御控制流攻击的装置、方法、处理器、设备及存储介质在审
申请号: | 202111561806.4 | 申请日: | 2021-12-16 |
公开(公告)号: | CN114266082A | 公开(公告)日: | 2022-04-01 |
发明(设计)人: | 陈伟杰 | 申请(专利权)人: | 北京奕斯伟计算技术有限公司 |
主分类号: | G06F21/73 | 分类号: | G06F21/73;G06F21/72;G06F21/54 |
代理公司: | 北京市立方律师事务所 11330 | 代理人: | 张筱宁 |
地址: | 100176 北京市北京经济技*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 防御 控制 攻击 装置 方法 处理器 设备 存储 介质 | ||
本申请提供一种防御控制流攻击的装置、方法、处理器、设备及存储介质,涉及处理器技术领域。装置包括:密钥获取模块,用于获取物理不可克隆函数PUF模块对输入激励所输出的响应数据,并将该响应数据作为待的使用的密钥数据存储至寄存器中;加密模块,用于在处理器执行程序控制流过程中,基于该密钥数据对该程序控制流中的目标执行数据进行加密,该目标执行数据包括间接跳转目标地址处的目标指令或者函数调用返回地址中的至少一项;解密模块,用于当处理器执行该目标执行数据时,对加密后的目标执行数据进行解密;执行模块,用于基于解密后的目标执行数据,继续执行该程序控制流。增强处理器的安全能力,从而在处理器级有效防御控制流攻击。
技术领域
本申请涉及处理器技术领域,本申请涉及一种防御控制流攻击的装置、方法、处理器、设备及存储介质。
背景技术
控制流攻击是一种严重威胁计算机系统安全的攻击方式。其中,控制流攻击通过改变程序的控制流,使程序根据攻击者预期的行为执行,具有攻击过程隐蔽、攻击效果明显和实现简单的特点,已成为威胁计算机系统安全的重要因素和其他攻击的辅助手段。代码注入攻击通过将恶意代码注入到程序栈中,并将程序控制流引导到程序栈中执行恶意代码来实施攻击,是一种广泛研究的攻击方法。
现有的防御方法一般会带来比较大的性能损失或不能有效防御控制流攻击,例如基于代码注入攻击的控制流攻击。因此,目前亟需一种防御控制流攻击的方法,有效防御对程序控制流的攻击。
发明内容
本申请提供了一种防御控制流攻击的装置、方法、处理器、设备及存储介质。所述技术方案如下:
一方面,提供了一种防御控制流攻击的装置,所述装置包括:
密钥获取模块,用于获取物理不可克隆函数PUF(Physical UnclonableFunction)模块对输入激励所输出的响应数据,并将所述响应数据作为待使用的密钥数据存储至寄存器中;
加密模块,用于在处理器执行程序控制流过程中,基于所述密钥数据对所述程序控制流中的目标执行数据进行加密,所述目标执行数据包括间接跳转目标地址处的目标指令或者函数调用返回地址中的至少一项;
解密模块,用于当处理器执行所述目标执行数据时,对加密后的目标执行数据进行解密;
执行模块,用于基于解密后的目标执行数据,继续执行所述程序控制流。
在一个可能实现方式中,所述目标执行数据为函数调用返回地址;
相应的,所述加密模块,用于在处理器执行程序控制流过程中,当所述程序控制流包括函数调用指令时,通过硬件引擎从所述寄存器中读取密钥数据;基于所述密钥数据对所述函数调用返回地址进行加密,并将加密后的函数调用返回地址压入到程序栈中;
相应的,所述解密模块,用于当所述函数调用指令的被调函数执行结束时,通过所述硬件引擎从所述程序栈中取出所述加密后的函数调用返回地址,并基于所述密钥数据对所取出的函数调用返回地址进行解密。
在一个可能实现方式中,所述执行模块,用于通过所述硬件引擎将解密后的函数调用返回地址发送至寄存器;通过所述处理器将程序控制流跳转至解密后的函数调用返回地址处,以继续执行所述程序控制流。
在一个可能实现方式中,所述目标执行数据为间接跳转目标地址处的目标指令;
相应的,所述加密模块,用于在处理器执行程序控制流过程中,当所述程序控制流包括间接跳转指令时,通过硬件引擎从所述寄存器中读取密钥数据;在将所述间接跳转指令加载到内存过程中,通过所述硬件引擎基于所述密钥数据对所述间接跳转目标地址处的目标指令进行加密,并将加密后的目标指令加载到内存中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奕斯伟计算技术有限公司,未经北京奕斯伟计算技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111561806.4/2.html,转载请声明来源钻瓜专利网。