[发明专利]一种基于ARM指针验证的内核代码指针完整性保护方法有效
| 申请号: | 202010885933.9 | 申请日: | 2020-08-28 |
| 公开(公告)号: | CN112100686B | 公开(公告)日: | 2022-04-08 |
| 发明(设计)人: | 杨昱天;朱凇伯;申文博;周亚金;任奎;王文海 | 申请(专利权)人: | 浙江大学 |
| 主分类号: | G06F21/64 | 分类号: | G06F21/64;G06F21/12 |
| 代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 应孔月 |
| 地址: | 310058 浙江*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 arm 指针 验证 内核 代码 完整性 保护 方法 | ||
本发明公开了一种基于ARM指针验证的内核代码指针完整性保护方法,利用指针验证码对内核中所有的敏感指针提供完整性保护。此方法包括如下步骤:(1)定位内核代码中所有的敏感指针;(2)插入指针验证指令使得:向内存写入敏感指针前生成并嵌入指针验证码,从内存读入敏感指针后检查指针验证码;(3)修改内核启动代码,在启动早期初始化指针验证特性,随后初始化全局敏感指针的指针验证码。本发明不仅保护了内核的控制流完整性,也能防止攻击者通过篡改数据指针间接篡改代码指针,在内核中全面保护了代码指针完整性。
技术领域
本发明涉及计算机系统安全领域,尤其涉及一种基于ARM指针验证(PointerAuthentication,PA)的内核代码指针完整性(Code Pointer Integrity,CPI)的保护方法。
背景技术
操作系统是计算机系统运行的基础,其上任何安全问题会直接危害系统整体安全。近年来,针对操作系统的攻击层出不穷,如2017到2019年的WannaCry蠕虫式勒索病毒。根据攻击手段的演化,对操作系统的攻击主要分为三类:代码注入攻击、代码重用攻击以及非控制数据攻击。与此同时,操作系统安全在攻击者和防护者的不断对抗中得到很大提升,随着抗代码注入攻击硬件安全特性的大规模部署,主流操作系统均已实现基于硬件的抗代码注入攻击防护。攻击者无法注入新的代码,转而篡改系统中的代码指针,控制系统控制流重用已有代码片段构造攻击载荷,被称为代码重用攻击。篡改返回地址的ROP攻击和篡改函数指针的JOP攻击都是常见的代码重用攻击技术。非控制数据攻击由于限制条件多、攻击载荷复杂以及通用性较低等特点,目前并未被攻击者广泛采用。抵御代码重用攻击成为当下操作系统防护的重点问题。
已有的针对代码重用攻击的保护技术主要可以分为基于控制流完整性(Control-Flow Integrity,CFI)和基于内存完整性的两类保护方法。基于控制流完整性的保护只对控制数据的跳转进行限制,不对控制数据(即代码指针)本身进行保护。这类保护方案通常需要事先对程序进行分析,创建精准的控制流图(Control-Flow Graph,CFG),对于每一个控制数据构建允许跳转目标的集合;然后在运行时根据事先建立的控制流图对程序跳转进行检查,不允许控制流图以外的任何跳转。但令人遗憾的是,大规模代码上静态分析得到的控制流图精确性往往受限,导致保护精度也受限。例如J.Li等在2018年发表的工作中(LiJ,Tong X,Zhang F,et al.Fine-CFI:Fine-grained control-flow integrity foroperating system kernels[J].IEEE Transactions on Information Forensics andSecurity,2018,13(6):1535-1550.)同时使用了基于指向(points-to) 分析和基于类型分析的方法构建控制流图后,平均每个间接跳转依然有57个合法的跳转目标。另外运行时在跳转处(call-site)的检查也会引入无法忽视的运行时性能开销,严重影响被保护程序性能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010885933.9/2.html,转载请声明来源钻瓜专利网。





