[发明专利]一种基于LLVM的抵御内存泄露的系统及方法有效
申请号: | 201911198838.5 | 申请日: | 2019-11-29 |
公开(公告)号: | CN111027059B | 公开(公告)日: | 2022-07-19 |
发明(设计)人: | 傅建明;金睿 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F21/55 | 分类号: | G06F21/55 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 严彦 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 llvm 抵御 内存 泄露 系统 方法 | ||
本发明提供一种基于LLVM的抵御内存泄漏的系统及方法,系统包括代码蜜罐装置和数据蜜罐装置,代码蜜罐装置用于抵御基于代码指针的内存泄露攻击,包括在LLVM源文件编译为IR层代码后,识别代码中的跨函数转移指令,插入条件判断指令,真实端指向该跳转指令,而后在创建跳转指令指向的函数或代码片段的副本,在条件判断虚假端创建指向该副本的蜜罐跳转指令,最后将该副本转移到受监控或不可执行的蜜罐区域;所述数据蜜罐装置,用于识别易造成代码位置泄露的指令,包括程序的返回地址指令、函数指针生成指令、虚函数指针生成指令和异常处理指针生成指令,插入对应的蜜罐函数或代码生成指令。本发明能够抵御基于代码和数据的指针泄漏的内存泄露攻击。
技术领域
本发明属于计算机软件安全领域,涉及一种基于LLVM的抵御内存泄露技术方案。
背景技术
代码复用攻击的攻防为软件安全的重要研究方向之一。代码复用攻击通过重用已经存在程序中的代码,通过将控制流劫持到目标重用代码完成攻击。当前的随机化方法使得目标程序的熵值增大,攻击者无法直接根据离线分析得到的目标片段位置直接构造攻击。所以,攻击者采用内存泄漏得到随机化后真实的代码位置,从而修正片段的位置或直接搜索内存中的片段。
一些经典的方法通过内存泄漏定位gadget辅助代码复用攻击。JIT-ROP通过内存信息泄露漏洞在栈中寻找部分程序返回地址等信息定位代码页。而后其通过读取代码页中的内容,根据其中的跨页的函数调用等控制流转移指令来定位新的代码页。最后使用这些代码页中的代码来构造代码复用攻击。BlindROP则通过利用一些服务线程崩溃时会自动重启的特点,绕过ASLR、DEP、canary等防护方案,能够更隐蔽的进行内存泄露。
当今内存泄露辅助代码复用攻击的方案已经日趋完善,学者们对方案提出了诸多防御方法。XnR(Excute-no-Read)机制将程序存放在不可执行的代码段中,若在线的内存信息泄露访问到这些不可执行的位置,则会发生页访问错误而造成异常。Readactor++一文使用XnR机制将虚函数表存放入不可读的区域,并在虚函数表中插入了大量的虚假的虚函数指针作为蜜饵引诱攻击者。一旦攻击者执行了这些虚假的指针指向的位置,那么其则会落入陷阱中。Codearmor一文提出将代码片段错位存储,并将原位置替换为引诱gadget来吸引攻击者,攻击者对这些gadget的执行会触发警报被防御者捕获。这两种方法都能够在一定程度上缓解基于执行的内存泄露攻击,但大多因为开销大、部署不便等问题无法在实际工业化场景中使用。
发明内容
本发明针对现有防御技术存在的上述问题,提出一种基于LLVM的抵御内存泄露的系统和方法。其目的在于,通过代码和数据蜜罐诱使攻击者使用这些代码来完成攻击,达到主动防御内存泄露的效果。
本发明采用的技术方案是一种基于LLVM的抵御内存泄漏的系统,包括代码蜜罐装置和数据蜜罐装置,
所述代码蜜罐装置,用于抵御基于代码指针的内存泄露攻击,包括在LLVM源文件编译为IR层代码后,识别出跨函数的跳转指令,在指令前插入条件判断指令,真实端指向该跳转指令,而后再创建跳转指令指向的函数或代码片段的副本,在条件判断虚假端创建指向该副本的蜜罐跳转指令,最后将该副本转移到受监控或不可执行的蜜罐区域;
所述数据蜜罐装置,用于识别易造成代码位置泄露的指令,包括程序的返回地址指令、函数指针生成指令、虚函数指针生成指令和异常处理指针生成指令,在这些指令前后插入对应的蜜罐函数或代码生成指令。
而且,所述代码蜜罐装置包括以下模块,
敏感点识别模块,用于在LLVM源文件编译为IR层代码后,识别跨函数的跳转指令,并记录指令;
蜜罐条件判断模块,用于根据敏感点识别模块所得结果,在每个敏感点前插入条件判断语句,将判断语句的的真实端指向敏感点,虚假端将用来构造蜜罐陷阱;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911198838.5/2.html,转载请声明来源钻瓜专利网。