【技术实现步骤摘要】
控制流完整性检测方法、装置及系统
本专利技术涉及计算机领域,尤其涉及一种控制流完整性检测方法、装置及系统。
技术介绍
控制流劫持是一种能够改变程序正常执行流程的攻击方式,由于程序普遍存在缓冲区溢出等漏洞,攻击者可以通过栈溢出等漏洞改写程序中的返回地址,劫持控制流并破坏控制流完整性(controlflowintegrity,CFI),实现攻击的意图。目前,为了抵御劫持控制流的攻击,主要的防御机制是监视程序运行时的控制流,若控制流被改变,则说明程序运行时受到攻击,此时会终止程序并进行警告。
技术实现思路
本专利技术实施例公开了一种控制流完整性检测方法、装置及系统,通过增加应用软件不可读写的比特位传输和存储标签,并验证调用子程序时以及子程序执行完时标签是否相同,从而能够确定控制流是否被劫持,保护控制流完整性。第一方面,本申请提供一种控制流完整性检测系统,所述检测系统包括随机存取存储器RAM以及检测模块,其中,所述RAM,用于接收第一返回地址和与所述第一返回地址对应的第一标签,将所述第一标签与所述第一返回地址分别存储到所述RAM中第一存储区域中第一地址对应的区域和第二存储区域中第二地址对应的区域,其中,所述第一存储区域的访问权限为应用软件不可读写;所述检测模块,用于:接收第二标签,其中,所述第二标签来自所述第一存储区域中所述第一地址对应的区域;验证所述第二标签的值是否等于预设值;当所述第二标签的值不等于预设值时,所述检测模块生成告警信号。通过将第一返回地址对应的第一标签以及第一返回地址分别存储到存储器第一存储区域中第一地址对应的区域和第二存储区域中第二地址对应的区域, ...
【技术保护点】
1.一种控制流完整性检测系统,其特征在于,所述检测系统包括存储器以及检测模块,其中,所述存储器,用于接收第一返回地址和与所述第一返回地址对应的第一标签,将所述第一标签与所述第一返回地址分别存储到所述存储器中第一存储区域中第一地址对应的区域和第二存储区域中第二地址对应的区域,其中,所述第一存储区域的访问权限为应用软件不可读写;所述检测模块,用于:接收第二标签,其中,所述第二标签来自所述第一存储区域中所述第一地址对应的区域;验证所述第二标签的值是否等于预设值;当所述第二标签的值不等于预设值时,所述检测模块生成告警信号。
【技术特征摘要】
1.一种控制流完整性检测系统,其特征在于,所述检测系统包括存储器以及检测模块,其中,所述存储器,用于接收第一返回地址和与所述第一返回地址对应的第一标签,将所述第一标签与所述第一返回地址分别存储到所述存储器中第一存储区域中第一地址对应的区域和第二存储区域中第二地址对应的区域,其中,所述第一存储区域的访问权限为应用软件不可读写;所述检测模块,用于:接收第二标签,其中,所述第二标签来自所述第一存储区域中所述第一地址对应的区域;验证所述第二标签的值是否等于预设值;当所述第二标签的值不等于预设值时,所述检测模块生成告警信号。2.根据权利要求1所述的系统,其特征在于,所述存储器还用于:在确定所述第一返回地址被更新时,更新存储于所述第一存储区域中第一地址对应的区域的第一标签,其中,更新后的第一标签的值不等于所述预设值。3.根据权利要求1或2所述的系统,其特征在于,所述系统还包括:第一寄存器,用于将所述第一返回地址和所述第一标签发送给所述存储器;第二寄存器,用于生成所述第一标签,并向所述第一寄存器发送所述第一标签以及所述第一返回地址。4.根据权利要求1或2所述的系统,其特征在于,所述系统还包括:第一寄存器,用于将所述第一返回地址和所述第一标签发送给所述存储器;第二寄存器,用于将所述第一返回地址发送给标签生成模块;标签生成模块,用于在接收到所述第一返回地址之后,生成所述第一标签,并向所述第一寄存器发送所述第一标签和所述第一返回地址。5.根据权利要求3或4所述的系统,其特征在于,所述第一寄存器,还用于接收所述第二标签与第二返回地址,其中,所述第二返回地址来自所述第二存储区域中第二地址对应的区域;在验证所述第二标签的值是否等于预设值之前,所述检测模块还用于:在所述第一寄存器接收所述第二标签和所述第二返回地址时,接收所述存储器发送的所述第二标签;或者,在所述第一寄存器接收所述第二标签和所述第二返回地址之后,接收所述第一寄存器发送的所述第二标签。6.根据权利要求2-5任一项所述的系统,其特征在于,所述第一寄存器是连接寄存器,所述第二寄存器是程序计数器寄存器。7.一种控制流完整性检测方法,其特征在于,所述方法应用于处理器,所述处理器包括检测模块和第一寄存器,所述处理器与存储器连接,所述方法包括:所述第一寄存器将第一返回地址和与所述第一返回地址对应的第一标签发送给所述存储器,其中,所述第一标签与所述第一返回地址分别存储到所述存储器中第一存储区域中第一地址对应的区域和第二存储区域中第二地址对应的区域,所述第一存储区域的访问权限为应用软件不可读写;所述检测模块接收第二标签,其中,所述第二标签来自所述第一存储区域中第一地址对应的区域;所述检测模块验证所述第二标签的值是否等于预设值,当所述第二标签的值不等于预设值时,所述检测模块生成告警信号。8.根据权利要求7所述的方法,其特征在于,所述处理器还包括第二寄存器,所述方法还包括:在所述第一寄存器将第一返回地址和与所述第一返回地址对应的第一标签发送给所述存储器之前,所述第二寄存器生成所述第...
【专利技术属性】
技术研发人员:钱雅超,章庆隆,汤倩莹,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。