【技术实现步骤摘要】
【国外来华专利技术】面向返回的编程防护
本专利技术总体上涉及安全设备领域,更具体地,涉及一种用于防御面向返回的编程(ROP)攻击的系统和方法。
技术介绍
ROP是一种计算机安全利用技术,即使在存在诸如可执行空间防护和代码签名之类的安全防御措施的情况下,该技术使得攻击者也可以执行恶意代码。通过ROP,攻击者可以控制调用堆栈并劫持程序控制流。然后,攻击者能够执行设备存储器中已经存在的精心选择的机器指令序列。这些序列称为“指令片段”。每个指令片段通常以返回指令结尾,并位于现有程序的子例程中和/或共享的库代码中。这些指令片段链接在一起,即使在采用可以阻止更简单攻击的防御的设备中,攻击者也可以执行任意操作。一种防御ROP攻击的方法是地址空间布局随机化(ASLR)。在ASLR中,每次运行程序时,组件都会随机被移动到虚拟存储器中的不同地址。在车辆系统中,存在随机存取存储器(RAM)的大小受到限制,结果没有足够的RAM来运行来自RAM的二进制文件的情况。因此,在这种情况下,二进制文件将在闪存中运行。闪存对其可被改写的次数有限制。因此,ASLR只能执行有限的次数,因此不是一个好的解决方案。此外,写入闪存需要花费时间,因此在启动时将程序重新写入随机存储器单元将会增加不希望的延迟。所期望的是一种无需执行ASLR即可防御ROP攻击的方法,并且现有技术还没有提供这样一种方法。
技术实现思路
因此,本专利技术的主要目的是克服现有技术ROP攻击防护的至少一些缺点。在一个实施方式中,这是由ROP攻击防护装置提供的,该装置包括:在其中 ...
【技术保护点】
1.一种面向返回的编程(ROP)攻击防护装置,包括:/n在其中存储有防护函数的第一存储器区域,所述第一存储器区域被设置为可执行;以及/n在其中存储有多个操作函数的第二存储器区域,所述第二存储器区域被设置为不可执行,/n其中所述防护函数被设置为:/n响应于对所述多个操作函数之一的调用,并且进一步响应于至少一个预定规则,允许所述被调用操作函数的执行;并且/n在接收到来自所述被执行的操作函数的返回之后,将所述被执行的操作函数设置为不可执行。/n
【技术特征摘要】
【国外来华专利技术】20181107 US 62/756,5951.一种面向返回的编程(ROP)攻击防护装置,包括:
在其中存储有防护函数的第一存储器区域,所述第一存储器区域被设置为可执行;以及
在其中存储有多个操作函数的第二存储器区域,所述第二存储器区域被设置为不可执行,
其中所述防护函数被设置为:
响应于对所述多个操作函数之一的调用,并且进一步响应于至少一个预定规则,允许所述被调用操作函数的执行;并且
在接收到来自所述被执行的操作函数的返回之后,将所述被执行的操作函数设置为不可执行。
2.根据权利要求1所述的ROP攻击防护装置,其中,所述多个操作函数包括:所述被调用函数和调用方函数,从所述调用方函数接收对所述被调用函数的所述调用;并且
其中所述防护函数还被设置为:
响应于所述调用,将所述调用方函数设置为不可执行;
响应于所述接收到的返回,允许所述调用方函数的执行。
3.根据权利要求1所述的ROP攻击防护装置,其中,响应于所述至少一个预定规则,所述防护函数还被设置为确定所述调用的返回地址是否有效,
其中,所述被调用操作函数的所述执行的所述允许响应于所述调用的所述返回地址被确定为有效,并且
其中,响应于所述调用的所述返回地址被确定为无效,所述防护函数还被设置为:
不允许所述被调用操作函数的所述执行;并且
输出关于无效返回地址的通知。
4.根据权利要求3所述的ROP攻击防护装置,其中,所述确定返回地址有效包括确定返回地址不在所述防护函数的地址范围内;并且
其中,所述确定返回地址无效包括确定返回地址在所述防护函数的地址范围内。
5.根据权利要求1所述的ROP攻击防护装置,其中,对所述多个操作函数之一的所述调用包括:
对所述防护函数的调用;和
关于所述被调用函数的地址的信息。
6.根据权利要求1-5中任一项所述的ROP攻击防护装置,其中,所述执行的所述允许包括将所述第二存储器区域的部分定义为可执行;并且
其中,所述将所述被执行的操作函数设置为不可执行包括将所述第二存储器区域的所述部分定义为不可执行。
7.根据权利要求6所述的ROP攻击防护装置,其中,所述将所述第二存储器区域的所述部分定义为可执行包括:以被允许执行的所述操作函数的地址范围的第一边界改写第一寄存器的值,并以被允许执行的所述操作函数的地址范围的第二边界改写第二寄存器的值,并且
其中,所述将所述第二存储器区域的所述部分定义为不可执行是通过所述改写执行的。
8.根据权利要求1-5中任一项所述的ROP攻击防护装置,其中,所述执行的所述允许包括将所述被调用操作函数复制到所述第一存储器区域,并且
其中所述将所述被执行的操作函数设置为不可执行包括从所述第一存储器区域中删除所述被执行的操作函数。
9.一种面向返回的编程(ROP)攻击防护方法,所述方法包括:
提供其中存储有多个操作函数的存储器区域,所述存储器区域被设置为不可执行;
响应于对所述多个操作函数之一的调用,并且进一步响应于至少一个预定规则,允许所述被调用操作函数的执行;并且
在接收到来自所述被执行的操作函数的返回之后,将所述被执行的操作函数设置为不可执行。
10.根据权利要求9所述的ROP攻击防护方法,其中,所述多个操作函数包括所述被调用函数和调用方函数,从所述调用方函数接收对所述被调用函数的调用,并且,
其中,该方法还包括:
响应于所述调用,将所述调用方函数设置为不可执行;和
响应于所述接收到的返回,允许所述调用方函数的执行。
11.根据权利要求9所述的ROP攻击防护方法,其中,响应于所述至少一个预定规则,所述方法还包括:
确定所述调用的返回地址是否有效,所述被调用操作函数的所述执行的所述允许响应于所述调用的所述返回地址被确定为有效;
响应于所述调用的所述返回地址被确定为无效,不允许所述被调用操作函数的所述执行并输出关于无效返回地址的通知。
1...
【专利技术属性】
技术研发人员:Y·达维多维克,Y·福克斯,N·布拉克哈,
申请(专利权)人:C二A安全有限公司,
类型:发明
国别省市:以色列;IL
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。