面向返回的编程防护制造技术

技术编号:28850371 阅读:18 留言:0更新日期:2021-06-11 23:55
一种ROP攻击防护装置,由以下部分构成:在其中存储有防护函数的第一存储器区域,所述第一存储器区域被设置为可执行;以及在其中存储有多个操作函数的第二存储器区域,所述第二存储器区域被设置为不可执行,其中所述防护函数被设置为:响应于对所述多个操作函数之一的调用,并且进一步响应于至少一个预定规则,允许被调用操作函数的执行;并且在接收到来自所述被执行的操作函数的返回之后,将所述被执行的操作函数设置为不可执行。

【技术实现步骤摘要】
【国外来华专利技术】面向返回的编程防护
本专利技术总体上涉及安全设备领域,更具体地,涉及一种用于防御面向返回的编程(ROP)攻击的系统和方法。
技术介绍
ROP是一种计算机安全利用技术,即使在存在诸如可执行空间防护和代码签名之类的安全防御措施的情况下,该技术使得攻击者也可以执行恶意代码。通过ROP,攻击者可以控制调用堆栈并劫持程序控制流。然后,攻击者能够执行设备存储器中已经存在的精心选择的机器指令序列。这些序列称为“指令片段”。每个指令片段通常以返回指令结尾,并位于现有程序的子例程中和/或共享的库代码中。这些指令片段链接在一起,即使在采用可以阻止更简单攻击的防御的设备中,攻击者也可以执行任意操作。一种防御ROP攻击的方法是地址空间布局随机化(ASLR)。在ASLR中,每次运行程序时,组件都会随机被移动到虚拟存储器中的不同地址。在车辆系统中,存在随机存取存储器(RAM)的大小受到限制,结果没有足够的RAM来运行来自RAM的二进制文件的情况。因此,在这种情况下,二进制文件将在闪存中运行。闪存对其可被改写的次数有限制。因此,ASLR只能执行有限的次数,因此不是一个好的解决方案。此外,写入闪存需要花费时间,因此在启动时将程序重新写入随机存储器单元将会增加不希望的延迟。所期望的是一种无需执行ASLR即可防御ROP攻击的方法,并且现有技术还没有提供这样一种方法。
技术实现思路
因此,本专利技术的主要目的是克服现有技术ROP攻击防护的至少一些缺点。在一个实施方式中,这是由ROP攻击防护装置提供的,该装置包括:在其中存储有防护函数的第一存储器区域,该第一存储器区域被设置为可执行;以及在其中存储有多个操作函数的第二存储器区域,所述第二存储器区域被设置为不可执行,其中所述防护函数被设置为:响应于对所述多个操作函数之一的调用,并且进一步响应于至少一个预定规则,允许所述被调用操作函数的执行;并且在接收到来自所述被执行的操作函数的返回之后,将所述被执行的操作函数设置为不可执行。在一个实施方式中,多个操作函数包括被调用函数和调用方函数,从调用方函数接收对被调用函数的调用,并且其中防护函数还被设置为:响应于调用,将调用方函数设置为不可执行;响应收到的返回,允许调用方函数的执行。在另一实施方式中,响应于至少一个预定规则,防护函数还被设置为确定调用的返回地址是否有效,其中,允许被调用操作函数的执行响应于调用的返回地址被确定为有效,并且其中,响应于调用的返回地址被确定为无效,所述防护函数还被设置为:不允许被调用操作函数的执行;并输出关于无效返回地址的通知。在另一实施方式中,确定返回地址有效包括确定返回地址不在防护函数的地址范围内,并且其中,确定返回地址无效包括确定返回地址在防护函数的地址范围内。在一个实施方式中,对多个操作函数之一的调用包括:对防护函数的调用;以及关于被调用函数的地址的信息。在另一个实施方式中,执行的允许包括将第二存储器区域的部分定义为可执行,其中,将被执行的操作函数设置为不可执行包括将第二存储器区域的该部分定义为不可执行。在另一个实施方式中,将第二存储器区域的部分定义为可执行包括:以被允许执行的操作函数的地址范围的第一边界改写第一寄存器的值,并且以被允许执行的操作函数的地址范围的第二边界改写第二寄存器的值,其中将第二存储器区域的该部分定义为不可执行通过改写来执行。在一个实施方式中,执行的允许包括将被调用操作函数复制到第一存储器区域,其中将被执行的操作函数设置为不可执行包括从第一存储器区域删除被执行的操作函数。独立地,提供了一种面向返回的编程(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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1