[发明专利]一种完全上下文敏感的程序控制流完整性保护方法和系统有效
申请号: | 201710321054.1 | 申请日: | 2017-05-09 |
公开(公告)号: | CN107194252B | 公开(公告)日: | 2019-11-22 |
发明(设计)人: | 金海;羌卫中;黄莹达;邹德清 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/16;G06F21/52 |
代理公司: | 42201 华中科技大学专利中心 | 代理人: | 廖盈春;李智<国际申请>=<国际公布>= |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 完全 上下文 敏感 程序控制 完整性 保护 方法 系统 | ||
本发明公开了一种完全上下文敏感的程序控制流完整性保护方法和系统。本发明方法在离线分析阶段通过模拟执行收集程序的控制流信息,在运行时跟踪执行路径,跟踪进程到达同一间接分支的执行路径,与控制流信息进行匹配,匹配成功,则表示离线分析时模拟执行的路径和运行时真实执行的路径相同,则根据离线分析的控制流信息可判断随后的合法目标地址,若运行时的目标地址不同于合法目标地址,则判断受到控制流劫持攻击,从而由控制流检查模块通知进程跟踪模块以终止进程。本发明还实现了一种完全上下文敏感的程序控制流完整性保护系统。本发明通过对执行路径信息的跟踪和检查来实现完整性保护,保证程序免受控制流劫持攻击的威胁。
技术领域
本发明属于软件完整性保护领域,更具体地,涉及一种完全上下文敏感的程序控制流完整性保护方法和系统。
背景技术
现在的软件普遍存在缓冲区溢出漏洞。通过利用缓冲区溢出漏洞,攻击者能对内存任意读写,从而修改代码指针,最终劫持控制流以完成攻击意图。为了保护内存安全,学术和工业界不断研究并部署有效的保护措施。但仍有多项攻击技术,可以绕过以上已有的保护措施。为此,控制流完整性的概念被提出。控制流完整性保护不直接保护内存安全,而是检查控制流是否被劫持,从而判断是否受到攻击。控制流完整性保护方案通常会在程序运行之前为程序生成一个控制流图,在程序运行时利用已生成的控制流图来监控程序的行为,以确保程序控制流符合控制流图。当发现程序控制流不符合控制流图时,通常的做法就是发出警告并终止程序。
现有的针对二进制程序的控制流完整性保护方法中,大体上可以分为两种。一种是上下文不敏感的控制流完整性保护方法,即通过人为地建立规则,对执行路径中单个控制流边或部分控制流边进行相对独立的检查。另一种是部分上下文敏感的控制流完整性保护方法,即对执行路径中部分控制流边进行相互关联的检查。
然而,上述两种方法都存在一定的不足和局限性。上下文不敏感的控制流完整性保护方法通常采用人为指定的规则,有可能会忽略特殊的控制流转移,导致保护方法不兼容这些特殊的控制流转移,因此难以适用于复杂的大型项目。其次,上下文不敏感的控制流完整性保护方法仅独立地检查执行路径中单个控制流边或部分控制流边,没有考虑执行路径中所有边的相关性,因此不能生成精确性高的控制流图,导致控制流图中包含许多不合法的边,这会被攻击者利用从而绕过检查以实现最终的攻击。另一方面,部分上下文敏感的控制流完整性保护方法对控制流上下文的考虑仅局限于执行路径中所检查的控制流边的个数。而执行路径中某条控制流边的合法性是与该执行路径中的所有边都相关。因此,部分上下文敏感的控制流完整性保护方法生成的控制流图仍然包含许多不合法的边能被攻击者利用。此外,这两种控制流完整性保护方法在运行时都采用插桩技术插入检查代码,这破坏了保护方法的透明性,因此攻击者能够感知保护方案的存在,然后利用被保护程序的漏洞篡改检查逻辑,从而绕过检查。
综上所述,现有的针对二进制程序的控制流完整性保护方法存在以下不足:
现在的控制流完整性保护方法没有考虑上下文敏感性或只考虑了部分上下文敏感性,导致生成的控制流图包含了许多不合法的控制流边,能够被攻击者利用从而绕过检查。现在的控制流完整性保护方法在运行时都采用了插桩技术插入检查代码,破坏了保护方法的透明性,导致攻击者能够感知到保护方法的存在,并且利用被保护程序的漏洞来篡改检查逻辑。有些控制流完整性保护方法不兼容特殊的控制流转移,因此不适用于复杂的大型项目。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种完全上下文敏感的程序控制流完整性保护方法和系统,其目的是在离线分析阶段通过模拟执行和污点分析收集程序的控制流信息,然后在运行时跟踪执行路径,控制流检查模块将控制流信息和进程跟踪信息进行匹配,匹配成功后,检查目标地址是否合法,如果发现不合法,就表示遇到控制流劫持攻击,进而终止进程执行。由此解决现有针对二进制程序的控制流保护方法中出现的上述局限和不足,保证保护方法的透明性、兼容性和模块化支持,并且能实现完全上下文敏感的控制流完整性检查。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710321054.1/2.html,转载请声明来源钻瓜专利网。