[发明专利]一种细粒度控制流完整性保护实现方法及系统在审
申请号: | 202010600005.3 | 申请日: | 2020-06-28 |
公开(公告)号: | CN111898130A | 公开(公告)日: | 2020-11-06 |
发明(设计)人: | 陈李维;李锦峰;史岗;孟丹 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 陈新生 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 细粒度 控制 完整性 保护 实现 方法 系统 | ||
本发明实施例提供一种细粒度控制流完整性保护实现方法及系统。该方法包括:获取目标程序中若干代码片段的合法间接控制流;基于所述合法间接控制流,将对应于每一个代码片段的跳转地址替换为控制流指令地址的预设低位编码;为每一个代码片段添加预设空指令作为间接控制流的合法跳转目的标记。本发明实施例通过将程序运行中的代码片段之间的跳转地址标签替换为跳转指令自身地址的低位编码,使得内存运行的硬件开销大幅降低,同时提升了安全性。
技术领域
本发明涉及网络安全技术领域,尤其涉及一种细粒度控制流完整性保护实现方法及系统。
背景技术
在程序开发中,通常存在内存漏洞,内存漏洞是指程序员在软件编写的过程中,对内存的操作上有时间上或者空间上的设计失误,产生使得程序可能做出违反程序本身设计的行为的问题。攻击者利用程序的内存漏洞,可以构造出各种攻击,执行恶意行为。
在漏洞的利用过程中,经常需要绕过一个广泛被使用的防御:NX保护,即可写数据是不可执行的。这使得攻击者无法直接注入攻击代码,而是需要将被攻击程序本身的代码片段组织起来完成攻击行为。因此,这种攻击被称为代码重用攻击。代码重用攻击的关键在于按照攻击者的设计组织代码片段。为了实现代码片段的任意连接,一般需要使用间接分支指令。间接分支指令指一些使用寄存器或者内存内的指针作为目标地址,而不是在代码中固定的代码地址作为目标地址的一系列分支指令。间接分支指令一般包括间接调用,间接跳转和返回指令。例如,攻击者可以确定地执行一条指令jmp RAX,这是一条间接跳转指令。如果攻击者可以控制RAX的值,就可以跳转到任意地址的指令序列。如果下一条指令序列以另一个间接分支结尾,还可以用同样的方法继续跳转到其他任意地址序列。每一条间接分支都可以是不同的种类或者单一种类:间接调用(例如call RAX)间接跳转(例如jmpRAX)返回指令(return,从栈上弹出一个地址并跳转)。
为了防御代码复用攻击,提出了控制流完整性保护(CFI:Control-FlowRestrictor)的概念。控制流完整性保护是指在程序运行前对程序进行分析,得出程序合法的控制流。在程序运行时检查控制流是否符合分析的结果。CFI可以大致分为粗粒度和细粒度:细粒度指每个(间接)的控制流的源和目的地址都使用标记,例如a到b,c到d,做出细致的区分。而粗粒度一般指只标记一个代码片段可以被作为间接控制流转移的目的地址。如果a到b,c到d是合法的,那么b和d会被标记为合法的目的。而a到d和c到b在粗粒度CFI中也是合法的。因此可见,细粒度的CFI是更加安全的,而粗粒度的CFI实现更加简单。
目前CPU只有粗粒度的硬件设计,一般引入一个特殊的空指令来标记合法的目的地址。例如Intel CET中的IBT中添加了ENDBRANCH指令。这个指令被放置在所有的合法的跳转目标的入口。当一个间接转移发生时,CPU会检查转移的目的地址是否是ENDBRANCH指令,如果不是,则认为发生了攻击。ARM的BTI也是类似的设计。
因此,需要提出一种基于细粒度的控制流完整性保护的实现方法,解决上述不足。
发明内容
本发明实施例提供一种细粒度控制流完整性保护实现方法及系统,用以解决上述问题或者至少部分地解决上述问题。
第一方面,本发明实施例提供一种细粒度控制流完整性保护实现方法,包括:
获取目标程序中若干代码片段的合法间接控制流;
基于所述合法间接控制流,将对应于每一个代码片段的跳转地址的预设低位地址替换为控制流指令地址的预设低位编码;
为每一个代码片段添加预设空指令作为间接控制流的合法跳转目的标记。
进一步地,所述获取目标程序中若干代码片段的合法间接控制流,具体包括:
将所述目标程序分解成若干代码片段;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010600005.3/2.html,转载请声明来源钻瓜专利网。