一种用于微处理器缓冲区溢出的硬件检测与防御机制

文档序号:31469201发布日期:2022-09-09 22:36阅读:来源:国知局

技术特征:
1.一种用于微处理器缓冲区溢出的硬件检测与防御机制,其特征在于,包括:缓冲区溢出检测电路一、缓冲区溢出检测电路二、以及缓冲区溢出防御电路;缓冲区溢出检测电路一基于微处理器指令的自定义扩展实现缓冲区溢出的预先检测;缓冲区溢出检测电路二基于微处理器中程序控制流图实现返回地址篡改攻击的预先检测;缓冲区溢出防御电路根据缓冲区溢出检测电路一或缓冲区溢出检测电路二的检测结果,完成对当前处理器执行指令访存缓冲区权限的恢复或屏蔽。2.根据权利要求1所述的一种用于微处理器缓冲区溢出的硬件检测与防御机制,其特征在于,缓冲区溢出检测电路一包括:自定义扩展指令、store指令信息译码模块、缓冲区边界检查模块以及安全寄存器;在编写c代码时,将自定义扩展指令添加到可能发生缓冲区溢出的函数前;store指令信息译码模块实时分析当前采集的有效指令是否同时满足以下条件:是否为store指令类型、指令所携带的立即数imm是否大于或等于0、当前store指令所携带立即数相较于上一个store指令所携带立即数的增量

imm是否为0/1/2/4;若同时满足,则根据指令的funct3编码产生当前store指令即将消耗缓冲区空间的大小值y
i
,反之则将y
i
置为0,其中i为1到n,n表示连续检测到符合条件的有效指令的最大计数值;缓冲区边界检查模块实时计算在当前函数段中缓冲区空间消耗大小值rt_bs,其中同时读取存储在安全寄存器中的函数所申请缓冲区空间大小值ref_bs,实时与rt_bs进行比较,若ref_bs-rt_bs≥0则在当前函数段不存在缓冲区溢出攻击,反之则存在缓冲区溢出攻击。3.根据权利要求1所述的一种用于微处理器缓冲区溢出的硬件检测与防御机制,其特征在于,缓冲区溢出检测电路二包括:程序控制流图实时构建模块、缓冲区可访存上限地址产生模块、以及上限地址检查;缓冲区可访存上限地址产生模块根据程序控制流图实时构建模块处于入栈操作或出栈操作,得到缓冲区实时可访存上限地址;上限地址检查模块实时采集处理器回写阶段访存缓冲区的数据地址rt_a,并实时与缓冲区可访存上限地址max_a进行比较,若|max_a-rt_a|>4,则在处理器运行的当前函数段不存在对存储缓冲区的返回地址的溢出覆盖攻击,反之则存在对返回地址的溢出覆盖攻击。4.根据权利要求3所述的一种用于微处理器缓冲区溢出的硬件检测与防御机制,其特征在于,当程序控制流图实时构建模块处于push操作时,缓冲区实时可访存上限地址为将当前返回地址存入缓冲区所对应的数据地址;当程序控制流图实时构建模块处于pop操作时,缓冲区实时可访存上限地址为pcfg栈pop出的数据地址。5.根据权利要求1所述的一种用于微处理器缓冲区溢出的硬件检测与防御机制,其特征在于,缓冲区溢出防御电路包括:有限状态机fsm与store指令访存缓冲区权限控制逻辑,缓冲区溢出防御电路的实现过程为:a1、在有限状态机fsm的空闲状态时,等待两个缓冲区溢出检测电路的实时检测结果,当存在缓冲区溢出攻击时,执行步骤a2,反之维持store指令访存缓冲区的权限;a2、有限状态机fsm进行状态跳转,完成对微处理器所有流水进行暂停处理;
a3、有限状态机fsm进行状态跳转,完成对处理器当前函数段所执行的store类型指令访存缓冲区权限的屏蔽;a4、有限状态机fsm进行状态跳转,完成对微处理器所有先前暂停的流水的恢复处理,同时有限状态机fsm进行状态跳转至空闲状态。

技术总结
本发明公开一种用于微处理器缓冲区溢出的硬件检测与防御机制,应用于处理器硬件安全与大规模数字集成电路领域;针对现有技术存在的:(1)无法实现缓冲区数组越界这一溢出行为的检测;(2)防御措施会导致处理器停止运行、崩溃、跑飞;(3)对处理器运行性能影响较为严重;(4)部署在软件层面的检测与防御机制易被绕过等问题;本发明基于微处理器指令的自定义扩展与微处理器中程序控制流图的实时构建,实现在微处理器的硬件层面完成缓冲区溢出行为的实时检测与返回地址的实时保护,根据实时检测结果屏蔽处理器当前执行指令访存缓冲区的权限,无效化微处理器遭受到的缓冲区溢出攻击,在一定程度上保证了微处理器硬件层面的安全性与可靠性。可靠性。可靠性。


技术研发人员:李磊 袁世伟 周婉婷
受保护的技术使用者:电子科技大学
技术研发日:2022.06.07
技术公布日:2022/9/8
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1