[发明专利]一种用于微处理器缓冲区溢出的硬件检测与防御机制在审
申请号: | 202210632988.8 | 申请日: | 2022-06-07 |
公开(公告)号: | CN115033411A | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 李磊;袁世伟;周婉婷 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F9/22 |
代理公司: | 成都虹盛汇泉专利代理有限公司 51268 | 代理人: | 王伟 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 微处理器 缓冲区 溢出 硬件 检测 防御 机制 | ||
1.一种用于微处理器缓冲区溢出的硬件检测与防御机制,其特征在于,包括:缓冲区溢出检测电路一、缓冲区溢出检测电路二、以及缓冲区溢出防御电路;
缓冲区溢出检测电路一基于微处理器指令的自定义扩展实现缓冲区溢出的预先检测;缓冲区溢出检测电路二基于微处理器中程序控制流图实现返回地址篡改攻击的预先检测;
缓冲区溢出防御电路根据缓冲区溢出检测电路一或缓冲区溢出检测电路二的检测结果,完成对当前处理器执行指令访存缓冲区权限的恢复或屏蔽。
2.根据权利要求1所述的一种用于微处理器缓冲区溢出的硬件检测与防御机制,其特征在于,缓冲区溢出检测电路一包括:自定义扩展指令、Store指令信息译码模块、缓冲区边界检查模块以及安全寄存器;
在编写C代码时,将自定义扩展指令添加到可能发生缓冲区溢出的函数前;
Store指令信息译码模块实时分析当前采集的有效指令是否同时满足以下条件:
是否为Store指令类型、指令所携带的立即数imm是否大于或等于0、当前Store指令所携带立即数相较于上一个Store指令所携带立即数的增量△imm是否为0/1/2/4;
若同时满足,则根据指令的funct3编码产生当前Store指令即将消耗缓冲区空间的大小值Yi,反之则将Yi置为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进行状态跳转至空闲状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210632988.8/1.html,转载请声明来源钻瓜专利网。