[发明专利]一种完全上下文敏感的程序控制流完整性保护方法和系统有效
申请号: | 201710321054.1 | 申请日: | 2017-05-09 |
公开(公告)号: | CN107194252B | 公开(公告)日: | 2019-11-22 |
发明(设计)人: | 金海;羌卫中;黄莹达;邹德清 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/16;G06F21/52 |
代理公司: | 42201 华中科技大学专利中心 | 代理人: | 廖盈春;李智<国际申请>=<国际公布>= |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种完全上下文敏感的程序控制流完整性保护方法和系统。本发明方法在离线分析阶段通过模拟执行收集程序的控制流信息,在运行时跟踪执行路径,跟踪进程到达同一间接分支的执行路径,与控制流信息进行匹配,匹配成功,则表示离线分析时模拟执行的路径和运行时真实执行的路径相同,则根据离线分析的控制流信息可判断随后的合法目标地址,若运行时的目标地址不同于合法目标地址,则判断受到控制流劫持攻击,从而由控制流检查模块通知进程跟踪模块以终止进程。本发明还实现了一种完全上下文敏感的程序控制流完整性保护系统。本发明通过对执行路径信息的跟踪和检查来实现完整性保护,保证程序免受控制流劫持攻击的威胁。 | ||
搜索关键词: | 一种 完全 上下文 敏感 程序控制 完整性 保护 方法 系统 | ||
【主权项】:
1.一种完全上下文敏感的程序控制流完整性保护方法,其特征在于,所述方法包括以下步骤:/n(1)模拟执行:输入预设的测试用例到目标程序,模拟执行目标程序,获取目标程序的控制流信息;/n(2)基本块信息收集:对目标程序进行文件格式分析和反汇编,识别并保存目标程序二进制文件中的基本块信息;/n(3)进程跟踪:启动目标程序进程,跟踪目标程序进程的执行路径,并获取进程跟踪信息;/n(4)控制流检查:根据进程跟踪信息查找基本块,由基本块信息生成路径信息,通过匹配控制流信息和路径信息,实现完整指令路径的合法性检查;/n所述步骤(1)包括以下子步骤:/n(11)对目标程序指令进行插桩,输入预设的测试用例,启动程序;/n(12)判断当前插桩点指令是否为目标程序主函数返回指令或结束进程相关的系统调用,若是则结束模拟执行;否则进行污点传播分析,根据指令表达式标记或清除污点数据;/n(13)判断插桩点指令类型,若是预定义的敏感系统调用的入口,则将敏感系统调用的返回值或被敏感系统调用修改的数据标记为污点数据,运行到下一个插桩点,回到步骤(12);若是分支指令,则进入下一步骤;/n(14)判断分支指令类型,若是直接无条件分支,则运行到下一个插桩点,回到步骤(12);若是间接分支,则进入步骤(16);若是直接条件分支,则进入步骤(15);/n(15)计算条件分支指令的目标地址,生成执行路径信息,计算其哈希值作为控制流信息并保存;运行到下一个插桩点,回到步骤(12);/n(16)判断间接分支指令的目标地址变量是否为污点数据,若是,则丢弃本次模拟执行获取的信息,结束模拟执行;否则,进入步骤(15)。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710321054.1/,转载请声明来源钻瓜专利网。