【技术实现步骤摘要】
控制流完整性保护方法、装置、设备及存储介质
本专利技术涉及通信领域,尤其涉及一种控制流完整性保护方法、装置、设备及存储介质。
技术介绍
由于冯诺依曼结构将指令作为数据存在内存中执行,所以早期攻击者会将恶意代码作为数据注入内存,然后劫持控制流执行注入的恶意代码。现在的操作系统普遍采用了不可执行位技术,即标记每个内存页是可读,可写还是可执行。程序的代码段会被标记为可执行但不可写,而数据段则会被标记为不可执行。这样攻击者的恶意代码由于是作为数据注入内存的,所以被标记为不可执行,当攻击者试图执行恶意代码时则会因违法内存页标记报错。为了绕过不可执行位保护技术,研究者提出了代码重用攻击,即利用程序自身的代码片段实现各个小功能,再利用间接分支指令将代码片段链接起来实现完整的攻击,因为代码片段本身是程序自己的代码,都标记为可执行,所以可以绕过不可执行位保护。现有的控制流完整性保护方法(Control-flowIntegrity,CFI)可以有效防御代码重用攻击。控制流完整性保护方法通过静态或者动态分析获取程序的合法控制流图,在程序运 ...
【技术保护点】
1.一种控制流完整性保护方法,其特征在于,包括:/n将待保护程序的控制流中的当前间接分支指令的所有合法目标地址的预设位更改至相同;/n将所述当前间接分支指令的当前目标地址的预设位改写为与所述合法目标地址的预设位相同,以使所述待保护程序在所述当前目标地址被篡改时终止执行。/n
【技术特征摘要】
1.一种控制流完整性保护方法,其特征在于,包括:
将待保护程序的控制流中的当前间接分支指令的所有合法目标地址的预设位更改至相同;
将所述当前间接分支指令的当前目标地址的预设位改写为与所述合法目标地址的预设位相同,以使所述待保护程序在所述当前目标地址被篡改时终止执行。
2.根据权利要求1所述的控制流完整性保护方法,其特征在于,所述将所述当前间接分支指令的当前目标地址的预设位改写为与所述合法目标地址的预设位相同,以使所述待保护程序在所述当前目标地址被篡改时终止执行,具体包括:
将所述当前目标地址的预设位改写至与所述当前间接分支指令的标签相同,以使所述待保护程序在所述当前目标地址被篡改时,所述当前间接分支无法跳转至所述合法目标地址,所述待保护程序终止执行;
其中,所述标签为所述当前间接分支指令的合法目标地址的预设位。
3.根据权利要求2所述的控制流完整性保护方法,其特征在于,所述将所述当前目标地址的预设位改写至与所述当前间接分支指令的标签相同,具体包括:
在所述当前间接分支指令处进行代码插桩操作;
其中,所述代码用于将所述当前目标地址的预设位改写至与所述标签相同。
4.根据权利要求1所述的控制流完整性保护方法,其特征在于,所述将待保护程序的控制流中的当前间接分支指令的所有合法目标地址的预设位更改至相同,具体包括:
对所述所有合法目标地址分别进行空指令填充操作,以使所述所有合法目标地址预设位变大,直至与所述当前间接分支指令的标...
【专利技术属性】
技术研发人员:孟丹,陈李维,李锦峰,佘才睿,史岗,
申请(专利权)人:中国科学院信息工程研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。