首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于动态影子栈的栈缓冲区溢出攻击防御方法及系统 

申请/专利权人:中国人民解放军战略支援部队信息工程大学

申请日:2021-12-27

公开(公告)日:2024-05-03

公开(公告)号:CN114254400B

主分类号:G06F21/64

分类号:G06F21/64;H04L9/08;G06F3/06

优先权:

专利状态码:有效-授权

法律状态:2024.05.03#授权;2022.04.15#实质审查的生效;2022.03.29#公开

摘要:本发明属于栈缓冲区溢出攻击防御技术领域,特别涉及一种基于动态影子栈的栈缓冲区溢出攻击防御方法及系统,该方法包括在进程地址空间,申请足够大的存储空间,用来存放影子栈内容;采用秘密共享的方法,将影子栈的内容分割成若干份额分散存储;基于软件自身产生的随机因子,并基于移位反馈寄存器生成随机数流,在每次函数调用的时候,生成随机变化的影子栈的存储地址,即生成随机变化的影子栈份额的存储地址,将各份额分散存储到存储空间的指定位置。本发明主要是通过影子栈内容分散存储和影子栈地址随机化,实现对影子栈的双重保护,大大增加了攻击难度,从而提高影子栈的安全性。

主权项:1.一种基于动态影子栈的栈缓冲区溢出攻击防御方法,其特征在于,包含以下步骤:步骤1、在进程地址空间,申请足够大的存储空间,用来存放影子栈内容;步骤2、采用秘密共享的方法,将影子栈的内容分割成若干份额分散存储,包括:将影子栈作为秘密,采用k,n门限方案,将影子栈的内容秘密分割成若干份额,影子栈的内容即是函数调用的返回地址,将返回地址拆分成若干份额;步骤3、基于软件自身产生的随机因子,并基于移位反馈寄存器生成随机数流,在每次函数调用的时候,生成随机变化的影子栈的存储地址,即生成随机变化的影子栈份额的存储地址,将各份额分散存储到存储空间的指定位置,包括:步骤3.1、采用依赖软件自身产生随机因子;步骤3.2、将随机因子作为移位反馈寄存器LFSR的初始值,由LFSR产生一序列随机数;所述随机数生成的方法为:选择一个异或门外接移位反馈寄存器,即IE型的LFSR;一个n阶的LFSR由n个触发器D和若干个异或门组成,LFSR中的初始值为上述随机因子,在随机因子中随机抽取n个连续的序列作为种子,LFSR下一刻输出为Qn,下一刻输入是由整个移位反馈寄存器值的某些位做异或运算的结果,即Qn=Q1g1㊉Q2g2㊉Q3g3㊉...㊉Qn-1gn-1,其中gn为反馈系数,取值为0或1,取为0时表明不存在反馈之路,取为1时表明存在该反馈之路;步骤3.3、将随机数映射为存储空间内有效地址,这将是份额的存储地址;步骤3.4、在存储空间中分配一处独立存储空间,将LFSR种子作为有效地址的索引存储在此空间中,该空间称之为种子空间;所述种子空间包括环形存储空间和独立存储空间,所述环形存储空间用于缓存每个函数调用所对应LFSR使用的LFSR种子,所述独立存储空间用于存储LFSR最新的LFSR种子;所述种子空间的使用过程如下:当函数调用时,将当前LFSR的状态作为种子从独立存储空间取出导入LFSR,LFSR产生随机数,并将该种子存储于环形存储空间;当函数返回时,将当前LFSR的状态作为种子存储于独立存储空间,并从环形存储空间检索到对应的种子,导入LFSR用于恢复存储地址;当继续函数返回时,将不再备份LFSR种子,直接从环形存储空间检索对应的种子,导入LFSR用于恢复存储地址;当后续操作是函数调用时,从独立存储空间取出种子,LFSR继续产生随机数。

全文数据:

权利要求:

百度查询: 中国人民解放军战略支援部队信息工程大学 基于动态影子栈的栈缓冲区溢出攻击防御方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。