[发明专利]一种并发应用运行时加固方法与装置在审
申请号: | 202110677805.X | 申请日: | 2021-06-18 |
公开(公告)号: | CN113885887A | 公开(公告)日: | 2022-01-04 |
发明(设计)人: | 陈恺;卢垚松;梁瑞刚 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F8/60 | 分类号: | G06F8/60;G06F8/41;G06F21/57 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 邱晓锋 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 并发 应用 运行 加固 方法 装置 | ||
本发明涉及一种并发应用运行时加固方法与装置。该方法为应用执行提供事务区间,在事务区间的指令执行模式称为事务模式,事务执行期间不可被其它任务抢占;事务执行失败后,将应用回滚至事务执行前的状态,并记录回滚次数和失败原因;为无法在事务模式下执行的指令提供暂时退出事务区间的隔离区模式。本发明能够被自动化部署于软件编译器中,有较为广泛的兼容性,能够为并发应用提供抵御抢占式攻击的保护,能够抵御大多数基于抢占执行的攻击,包括多种侧信道攻击和资源竞争漏洞等。
技术领域
本发明属于软件技术、信息安全技术领域,涉及面向并发应用的安全保护技术,具体涉及一种并发应用运行时加固方法与装置。
背景技术
并发是现代操作系统完成多任务响应的一种常见表现形式。一般来说,操作系统会允许不同应用之间进行抢占式执行,以完成多应用间的并发执行。应用被抢占的原因是多样的,包括应用的优先级较低、长时间占用资源、等待输入输出设备响应等。应用被抢占后,其执行上下文被保存,同时其执行资源会被让渡于其它任务使用。
在多任务并发场景下,被抢占的对象可能是进程或线程的某一段代码。虽然操作系统和处理器会保护代码执行的大部分上下文,如寄存器、指令地址、栈空间等。但一些内容还是会不可避免地泄露给其他任务,如缓存等。当恶意进程或线程通过某些方式成功抢占受害者任务后,利用被泄露的上下文,即可能窃取受害者的秘密数据。
一般来说,攻击者既可能直接窃取受害者留存在上下文的信息,也可以通过篡改上下文并探查受害者执行痕迹窃取秘密信息。利用抢占执行对并发应用实施攻击的种类也是多样的,包括资源竞争漏洞利用、缓存和中断侧信道攻击、幽灵和熔断漏洞等。
Intel TSX全称为Transactional Synchronization eXtension。本发明基于Intel TSX扩展指令集实现。TSX指令集能够使指令执行处于事务模式中,防止应用执行被抢占。
发明内容
本发明的目的在于提供一种并发应用运行时加固方法,能够为并发应用提供抵御抢占式攻击的保护。
本发明采用的技术方案如下:
一种并发应用运行时加固方法,包括以下步骤:
为应用执行提供事务区间,在事务区间的指令执行模式称为事务模式,事务执行期间不可被其它任务抢占;
事务执行失败后,将应用回滚至事务执行前的状态,并记录回滚次数和失败原因;
为无法在事务模式下执行的指令提供暂时退出事务区间的隔离区模式。
进一步地,基于Intel TSX指令集使指令执行处于所述事务模式中,防止应用执行被抢占。
进一步地,处于所述事务模式状态的指令的数量不大于一个基本代码块中指令的数量。
进一步地,指令执行进入所述事务模式以及处于所述事务模式的操作步骤包括:
1)保存RAX寄存器和标志位寄存器;
2)执行xbegin指令,开启事务模式并指定事务执行失败时的处理代码地址;
3)恢复RAX寄存器和标志位寄存器;
4)顺序执行原应用指令;
5)判断待执行指令是否为分支指令,是则执行步骤6),否则执行步骤8);
6)执行分支指令,完成跳转;
7)执行xend指令,退出事务模式,执行步骤1);
8)判断是否需要进入隔离区,若是则执行隔离区操作,否则执行步骤9);
9)判断是否结束事务模式执行,若是则执行步骤10),否则执行步骤4);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110677805.X/2.html,转载请声明来源钻瓜专利网。