[发明专利]控制流完整性保护方法、系统、装置及可读存储介质有效
申请号: | 202110300061.X | 申请日: | 2021-03-22 |
公开(公告)号: | CN112966258B | 公开(公告)日: | 2022-12-30 |
发明(设计)人: | 李金库;李睿;向昊;姚青松;马建峰 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 房鑫 |
地址: | 710071 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 控制 完整性 保护 方法 系统 装置 可读 存储 介质 | ||
本发明公开了控制流完整性保护方法、系统、设备及可读存储介质,包括获取待保护程序的控制流图,其中记录有函数指针的位置信息及源点信息;将控制流图导入待保护程序中;利用store指令插桩获取程序运行时的上下文信息,并存储在MPX表中;利用间接调用指令插桩查询MPX表,获取上下文信息,并验证程序实际运行的跳转目标合法性;本发明利用控制流图记录函数指针的位置信息及源点信息;通过store指令插桩验证控制流跳转目标的合法性;在程序的中间代码层中进行,无需修改程序源代码;store指令插桩有效提高了分析精度,能够处理复合类型中的函数指针的源点信息,处理利用全局变量中的函数指针进行间接跳转的指令,安全参数较小,安全性能较高。
技术领域
本发明属于网络空间安全技术领域,涉及恶意攻击的防护,特别涉及一种控制流完整性保护方法、系统、装置及可读存储介质。
背景技术
控制流完整性保护(CFI,Control-Flow Integrity)是一种防御控制流劫持攻击的技术,其通过分析程序源代码或者中间代码生成控制流图,使每条间接控制流转移指令或跳转指令(间接call/间接jmp/ret)对应一个有效的目标集合,程序运行时确保每条间接跳转指令的目标合法性;因此,控制流图越精确,CFI的保护效果越好;而采用上下文信息,能够有效提高控制流完整性保护的精确度。
目前,业界研究者提出了很多种上下文敏感的CFI技术;例如,PathArmor[V.vander Veen et al.,ACM CCS 2015]利用Intel处理器的LBR(Last Branch Record)功能记录程序最后执行的几个分支;PittyPat[R.Ding et al.,USENIX Security 2017]使用Intel处理器的跟踪PT功能记录程序执行路径;上述两种采用处理器硬件功能记录的上下文信息,可以对程序的执行路径进行区分;但间接控制流转移指令的有效目标,在当前执行路径上有效时才可以执行;另外,研究者提出了一种基于调用栈的上下文信息回溯调用栈上的返回地址,构建执行路径(CFI-LB)[M.Khandaker et al.,EuroSP 2019],根据回溯调用栈上不同个数的返回地址,可以构建不同粒度的执行路径作为上下文信息,对有效目标集合进行划分。
每条间接控制流转移指令的有效目标集合称为一个等价类(EC,EquivalenceClass),路径敏感的CFI可以减小EC的平均大小,但对于程序中较大的EC处理效果并不好;Origin-sensitive Control Flow Integrity(OS-CFI)[M.Khandaker et al.,USENIXSecurity 2019]使用源点信息作为上下文信息,源点指的是函数指针被写入或更新的位置;根据源点信息将目标集合进行划分,可以有效划分程序中某些间接跳转指令的比较大的目标集合,并且可以对利用了C++面向对象编程的特性,利用篡改类中的虚函数表来使一系列虚函数按照攻击者设定的顺序执行完成攻击目标(COOP攻击)进行防御;但是,OS-CFI仅对简单类型的函数指针初始化操作进行了记录,没有处理复合类型中的函数指针源点信息,并且无法处理利用全局变量中的函数指针进行间接跳转的指令。
发明内容
针对现有技术中存在的技术问题,本发明提供了一种控制流完整性保护方法、系统、装置及可读存储介质,以解决现有技术中使用源点信息作为上下文信息时,仅对简单类型的函数指针初始化操作进行记录,没有处理复合类型中的函数指针的源点信息,且无法处理利用全局变量中的函数指针进行间接跳转的指令。
为达到上述目的,本发明采用的技术方案为:
本发明提供了一种控制流完整性保护方法,包括以下步骤:
获取待保护程序的控制流图;其中,待保护程序的控制流图中,记录有函数指针的位置信息及函数指针的源点信息;
将待保护程序的控制流图导入待保护程序中;
利用store指令插桩获取待保护程序运行时的上下文信息,并将待保护程序运行时的上下文信息存储在MPX表中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110300061.X/2.html,转载请声明来源钻瓜专利网。