[发明专利]基于LBR的栈缓冲区溢出攻击防御方法有效
申请号: | 201910015121.6 | 申请日: | 2019-01-08 |
公开(公告)号: | CN109858253B | 公开(公告)日: | 2021-04-20 |
发明(设计)人: | 周洪伟;原锦辉;朱旭华;张玉臣;孙怡峰;吴彊 | 申请(专利权)人: | 中国人民解放军战略支援部队信息工程大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/56 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 陈勇 |
地址: | 450000 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 lbr 缓冲区 溢出 攻击 防御 方法 | ||
本发明提供一种基于LBR的栈缓冲区溢出攻击防御方法。通过使用设定的指令集替代原来的call指令和ret指令,将硬件因素引入到栈中返回地址的保护,存放到栈中的“地址”实际上是生成真正返回地址的软件因子,只有与处理器LBR所提供的硬件因子相结合以后,才能得到真正的返回地址,使得攻击者直接攻击栈中数据的方法失效。由于攻击者不具备直接攻击物理系统的能力,本发明可以合理的假设硬因子是无法被攻击篡改的。基于硬因子的可信性,结合随机因子防重放的设计,使得本发明所提出的栈数据保护方案的有效。不同于影子栈或者加密返回地址的方法,本发明不依赖过多的计算复杂性和冗余空间,只是增加若干条指令,运行效率得到了保证。
技术领域
本发明涉及计算机操作系统技术领域,尤其涉及一种基于LBR的栈缓冲区溢出攻击防御方法。
背景技术
栈缓冲区溢出漏洞是软件系统十分普遍的一种安全漏洞,它通过向栈不断注入数据覆盖函数返回地址来达到控制软件控制流的目的。利用栈缓冲区溢出漏洞,攻击者可以绕开防病毒之类的安全措施,进入操作系统窃取用户隐私。
对于栈缓冲区溢出攻击,最为经典的防御方法是Stack Guard。简单来说,StackGuard是在栈中插入一个标志字作为“哨兵”,当攻击者通过持续注入非法地址篡改返回地址时,会覆盖“哨兵”。这样,当程序从子函数中返回时,会首先检查“哨兵”是否正常,如果“哨兵”被覆盖,那么就意味着发生攻击。为了防止“哨兵”被攻击者猜测,还需要对“哨兵”进行必要的处理,典型的方法是随机化。由于非法输入的数据通常都是字符串,那么也可以使“哨兵”包含字符串结束字符,使其无法覆盖“哨兵”。
Stack Shield采用的是备份的方法来保护栈中的返回地址。每次产生返回地址时,Stack Shield会将返回地址存储到其它地方。当程序从子函数中返回时,会首先读取备份的返回地址,是否栈中的返回地址一致。如果不匹配,则意味着出现了溢出攻击行为。这一类方法有时也称为“影子栈”。此类防御方法的重点是如何保证“影子栈”不被攻击者所破坏。
Point Guard采用加密方法保护返回地址,在栈中存放的是返回地址的密文。这样攻击者即使以非法地址篡改了返回地址,系统也会对非法地址进行解密,返回的是攻击者未知的地址。攻击者即使溢出成功,也无法达到劫持软件控制流的目的。这种防御方法是利用加密算法改变返回地址的形态。改变返回地址形态的方法有多种,Point Guard所采用的加密算法是常见的一种。
采用加密算法改变栈中返回地址的方法主要面临着效率问题。虽然待加密的内容很短少(只有一个地址),但是仍然需要处理器读取密钥、实施加解密运算等耗费处理器资源的操作。在程序执行过程中,引入加解密运算,还可能破坏局部性原理,导致TLB(Translation Look aside Buffer;转换检测缓冲区)命中率降低,分支预测准确率下降等问题,再次影响到系统整体性能。
除了性能开销问题外,Point Guard仍然面临着密钥保护问题。Point Guard 防御方法成立的前提是:攻击者不能获知密钥。如果攻击者获知密钥,可以用非法地址的密文覆盖返回地址的密文,栈溢出攻击有效。如果密钥存储位置是安全的,那么可以直接将返回地址备份到密钥所在存储空间,采用“影子栈”的方法实施保护,同时还避免加解密运算所带来的性能开销。
发明内容
为解决现有技术中存在的上述不足,本发明提供一种基于LBR的栈缓冲区溢出攻击防御方法,通过硬件信息和软件信息共同协作得到真正的返回地址。这样,攻击者即使通过溢出篡改栈中的数据,也无法改变成功劫持软件控制流。
一方面,本发明提供一种基于LBR的栈缓冲区溢出攻击防御方法,主要包括以下步骤:
步骤11、在进程初始化时随机生成随机参数,将所述随机参数作为所述进程当前整个生命周期的随机因子;
步骤12、当父函数调用子函数时,获取返回地址;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军战略支援部队信息工程大学,未经中国人民解放军战略支援部队信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910015121.6/2.html,转载请声明来源钻瓜专利网。