[发明专利]一种数据流完整性检测方法、装置、设备及介质在审
申请号: | 202211699802.7 | 申请日: | 2022-12-28 |
公开(公告)号: | CN115982028A | 公开(公告)日: | 2023-04-18 |
发明(设计)人: | 陈李维;聂晓帆;史岗;孟丹 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/34 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 张正秋 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据流 完整性 检测 方法 装置 设备 介质 | ||
本发明涉及一种数据流完整性检测方法、装置、设备及介质,其方法包括:接收用户输入的待检测源代码生成带有行号信息的原汇编文件;根据原汇编文件中的读指令和写指令,利用预设数据的EUI属性,定义为sdDFIx指令和ldDFIx指令;再对原汇编文件进行代码插桩,生成新汇编文件;利用原指令集架构,扩展执行编译后含有所述sdDFIx指令和ldDFIx指令的所述新汇编文件的所述新指令集架构;利用扩展后的所述新指令集架构,执行编译和链接后的所述新汇编文件,得出对待检查代码的检查结果;本发明的目的是解决现有技术中性能开销很大,不能更加高效地监测程序异常行为的缺陷,无法实现对程序运行时进行有效的保护的问题。
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种数据流完整性检测方法、装置、设备及介质。
背景技术
C/C++语言编写的程序,会存在各种内存漏洞。内存漏洞是指程序员在软件编写的过程中,对内存的操作有时间或空间上的失误,产生使得程序可能做出违反程序本身设计的行为的安全问题。攻击者通常利用这些漏洞,修改内存数据,实施攻击,严重威胁计算机系统的运行时安全。
攻击者进行攻击的关键点是在程序运行时损坏内存数据,对其进行任意读写。目前主流的防御技术是数据流完整性DFI(Data Flow Integrity)保护,其可以在程序运行时保护内存数据,发现程序的异常行为,阻止此类攻击。它通过静态分析获取数据的合法写集合。之后其采用标签检查机制对程序进行运行时行为检测。具体地,DFI首先使用静态分析来生成数据流图(DFG)去表达变量的定义-使用关系,给每条内存写指令(store)分配唯一标签,进而得到数据合法的标签集合。之后,其采用代码插桩的方式对数据的内存读写指令进行指令插桩,得到可执行文件。在程序运行时,实时计算内存写指令(store)的标签;遇到内存读指令(load)时,进行标签检查,即检查最新一次写此数据的内存写指令(store)的标签值是否在静态分析得到的合法写集合中,若在,则继续执行;若不在,说明数据被非法损坏,产生异常行为,则终止程序执行。
目前,软件DFI给被检测程序的虚拟内存分为1GB,额外的1GB/2的内存分配给数据的标签RDT。每32bit分配16bit的标签,即每条store指令都会分配唯一的16bit的标签,每个数据也会分配一个16bit的标签。DFI执行会产生超过100%的性能开销以及50%的内存开销,使其不能在实践中应用。目前,采用硬件支持来简化和加速DFI。例如,现有技术采用硬件辅助的TMDFI为被检测程序的虚拟内存每64bit,分配8bit的标签,即每条store指令都会分配唯一的8bit的标签,每个数据也会分配一个8bit的标签。硬件辅助的TMDFI通过基于标签的方法执行DFI,性能开销为39%,内存开销为12.5%。硬件辅助的PIM-DFI和软件DFI一致,每32bit内存空间分配16bit的标签。硬件辅助的PIM-DFI也是一种引入硬件支持加速DFI的方案,其性能开销约为37%,内存开销为25%。同时,现有的RVDFI也是一种引入硬件支持来加速DFI的方案,其性能开销约为18%,内存开销为25%。性能开销来源于代码膨胀导致的缓存未命中和频繁的内存访问。现有的性能开销仍然很大,不能更加高效地监测程序异常行为,难以对程序运行时进行有效的保护。
发明内容
本发明提供一种数据流完整性检测方法、装置、设备及介质。用以解决现有技术中性能开销很大,不能更加高效地监测程序异常行为的缺陷,无法实现对程序运行时进行有效的保护的问题。
本发明提供一种数据流完整性检测方法,包括:
接收用户输入的待检测源代码,利用交叉编译器生成带有行号信息的原汇编文件;
根据所述原汇编文件中的读指令和写指令,利用预设数据的EUI属性,定义为sdDFIx指令和ldDFIx指令;
根据所述sdDFIx指令和ldDFIx指令对原汇编文件进行代码插桩,生成新汇编文件;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211699802.7/2.html,转载请声明来源钻瓜专利网。