面向返回编程防护

文档序号:144477 发布日期:2021-10-22 浏览:32次 >En<

阅读说明:本技术 面向返回编程防护 (Return-oriented programming protection ) 是由 Y·达维多维克 Y·福克斯 N·布拉克哈 于 2020-03-05 设计创作,主要内容包括:一种用于多个ECU的ROP攻击防护方法,该方法包括:接收发往多个ECU中的一个ECU的数据;确定已接收数据是发往所述多个ECU中的哪个;响应于与已确定的ECU相关联的唯一模型,对已接收数据进行分析以识别寻址于一个或多个预定地址的控制流指令;响应于分析,生成已识别控制流指令的统计分析;并且响应于已生成的统计分析,输出指示攻击可能性的信号。(A ROP attack prevention method for a plurality of ECUs, the method comprising: receiving data destined for one of a plurality of ECUs; determining to which of the plurality of ECUs the received data is directed; analyzing the received data to identify control flow instructions addressed to one or more predetermined addresses in response to the unique model associated with the determined ECU; generating a statistical analysis of the identified control flow instructions in response to the analysis; and in response to the generated statistical analysis, outputting a signal indicative of the likelihood of attack.)

面向返回编程防护

相关申请的交叉引用

本申请要求于2019年3月5日提交的、名称为“RETURN-ORIENTED PROGRAMMINGPROTECTION(面向返回编程防护)”的美国临时专利申请S/N 62/814,009的优先权,该美国临时专利申请的全部内容通过参引并入本文中。

技术领域

本发明总体上涉及安全设备领域,并且更具体地涉及用于防护面向返回编程(ROP)攻击的系统和方法。

背景技术

ROP是一种计算机安全利用技术,即使在存在诸如可执行空间防护和代码签名之类的安全防御措施的情况下,该计算机安全利用技术也允许攻击者执行恶意代码。通过ROP,攻击者获得对控制流指令堆栈的控制并劫持程序控制流。然后,攻击者能够执行已经存在于设备存储器中的精心选择的机器指令序列。这些序列被称为“指令片段(gadget)”。每个指令片段通常以返回指令结束,并且位于现有程序的子例程中和/或位于共享库代码中。这些指令片段链接在一起允许攻击者执行任意操作,即使在采用可以阻止较简单攻击的防御的设备中亦是如此。

防御ROP攻击的方法的一个示例是地址空间布局随机化(ASLR)。在ASLR中,每次程序运行时,组件随机移动至虚拟存储器中的不同地址。防护ROP攻击的许多方法需要通过修改二进制文件内的不同操作码来调整二进制文件。不幸的是,在一些情况下,由于安全或保修问题,二进制文件不可用于修改。

发明内容

因此,本发明的主要目的是克服现有技术中的至少一些缺点。在某些实施方式中,这由用于多个电子控制单元(ECU)的面向返回编程(ROP)攻击防护方法提供,该方法包括:接收发往多个ECU中的一个ECU的数据;确定已接收数据是发往多个ECU中的哪个;响应于与已确定的ECU相关联的唯一模型;对已接收数据进行分析以识别寻址于一个或多个预定地址的控制流指令;响应于分析,生成已识别控制流指令的统计分析;响应于已生成的统计分析,对ROP攻击的存在进行检测;以及输出信号,所述信号指示检测到的ROP攻击的存在。

在一个实施方式中,其中,一个或多个预定地址中的每个预定地址包含相应指令片段的代码。在另一实施方式中,已生成的统计分析包括已接收数据内的预定窗口内的已识别控制流指令的数量,响应于预定窗口内的已识别控制流指令的数量超过预定窗口值,对ROP攻击的存在进行检测。

在一个实施方式中,检测ROP攻击的存在进一步响应于相应唯一模型。在另一实施方式中,已生成的统计分析包括已识别控制流指令链内的已识别控制流指令的数量,响应于已识别控制流指令的链内的已识别控制流指令的数量超过预定链值,对ROP攻击的存在进行检测。

在一个实施方式中,输出信号控制域控制单元(DCU)以阻止将额外数据传送至多个ECU。

在一个独立实施方式中,提供了一种面向返回编程(ROP)攻击防护系统,该系统包括:处理器;以及存储器,该存储器中存储有多个唯一模型,每个唯一模型与多个电子控制单元(ECU)中的相应一个电子控制单元相关联,其中,处理器被设置成:接收发往多个电子控制单元(ECU)中的一个电子控制单元的数据;确定已接收数据是发往多个ECU中的哪个;响应于与已确定的ECU相关联的相应唯一模型,对已接收数据进行分析以识别寻址于一个或多个预定地址的控制流指令;响应于分析,生成已识别控制流指令的统计分析;响应于已生成的统计分析,对ROP攻击的存在进行检测;以及输出信号,所述信号指示检测到的ROP攻击的存在。

在一个实施方式中,一个或多个预定地址中的每个预定地址都包含相应指令片段的代码。在另一实施方式中,已生成的统计分析包括已接收数据内的预定窗口内的已识别控制流指令的数量,响应于预定窗口内的已识别控制流指令的数量超过预定窗口值,对ROP攻击的存在进行检测。

在一个实施方式中,对ROP攻击的存在进行的检测进一步响应于相应唯一模型。在另一实施方式中,已生成的统计分析包括已识别控制流指令链内的已识别控制流指令的数量,响应于已识别控制流指令链内的已识别控制流指令的数量超过预定链值,对ROP攻击的存在进行检测。

在一个实施方式中,输出信号控制域控制单元(DCU)以阻止将额外数据传送至多个ECU。

根据以下附图和描述,本发明的附加特征和优点将变得明显。

附图说明

为了更好地理解本发明的各种实施方式并示出各种实施方式可以如何实现,现在将仅通过示例的方式参照附图,在附图中,相同的附图标记始终表示对应的元件或部段。

现在详细地具体参照附图,要强调的是,示出的细节仅是示例性的并且仅出于对本发明的优选实施方式进行说明性讨论的目的,并且为了提供被认为对本发明的原理和概念方面的最有用且最容易理解的描述而呈现。在这一点上,没有试图比对本发明的基本理解所必须的更详细地示出本发明的结构细节,结合附图进行的描述对于本领域技术人员而言明显的是:本发明的几种形式在实践中可以如何实施。在附图中:

图1A至图1D图示了根据某些实施方式的ROP攻击防护装置的各种高级示意图;

图1E图示了根据某些实施方式的检查程序的操作方法的高级流程图;

图2示出了将ECU模型添加至AUTOSAR项目的方法的第一实施方式的高级流程图;

图3示出了将ECU模型添加至AUTOSAR项目的方法的第二实施方式的高级流程图;

图4示出了将ECU模型添加至LINUX项目的方法的高级流程图;以及

图5示出了根据某些实施方式的ROP攻击防护方法的高级流程图。

具体实施方式

在详细说明本发明的至少一个实施方式之前,应当理解的是,本发明的应用不限于在以下描述中阐述或在附图中图示的组件的构造和设置的细节。本发明可应用于以各种方式被实践或执行的其他实施方式。并且,应当理解的是,本文采用的措词和术语是出于描述的目的,而不应当被认为是限制性的。

图1A图示了包括ROP攻击防护系统20的汽车通信网络10的高级示意图。图1B图示了ROP攻击防护系统20的高级示意图,并且图1C图示了ROP攻击防护系统20的处理器30的实施方式的高级示意图。汽车通信网络10包括:ROP攻击防护系统20;域控制器单元(DCU)40;以及多个控制器区域网(CAN)总线网络50。每个CAN总线网络50包括:CAN总线60;以及耦合至CAN总线60的多个ECU 70。在一个实施方式中,ROP攻击防护系统20被实现为DCU 40的一部分。ROP攻击防护系统20包括:处理器30;以及存储器80。处理器30包括检查程序35。检查程序35包括:数据接收功能90;ECU确定功能100;控制流指令识别功能110;分析功能120;攻击检测功能130;以及输出功能140。存储器80中存储有多个ECU模型150。在一个非限制性实施方式中,处理器30设置成响应于存储在存储器80上的计算机可读指令而操作。在一个实施方式中,DCU 40和ECU 70根据汽车开放系统架构(AUTOSAR)运行。在另一实施方式中,DCU40和ECU 70在Linux系统中操作。每个CAN总线网络50与DCU 40的相应输出通信并且DCU 40的输入与以太网网络通信。在一个实施方式中,存储器80包括系统存储器的一部分。

如本文中使用的术语“控制流指令”是指控制程序流以访问某个存储器地址的指令。在一个非限制性实施方式中,控制流指令包括以下各项中的任一项:调用;分支;或者跳转。

图1D图示了用于ECU 70中的特定一个ECU的ECU模型150的示例。特别地,对于预定数据大小的每个地址指示符,与地址指示符相关联的数据被标记有指示目标地址空间内存在或不存在指令片段的标志。优选地,预定数据大小是4字节,即双字(DWORD)。具体地,在一个图示实施方式中,在由地址指示符反映的目标地址空间包含指令片段的情况下,则与地址指示符相关联地存储“1”,并且在由地址指示符反映的目标地址空间不包含指令片段的情况下,则与地址指示符相关联地存储“0”。如本文中所使用的术语指令片段意在指以返回指令结束并且包括不超过预定数量的指令的指令序列,如本领域技术人员已知的。在一个非限制性实施方式中,预定指令数量是5。在另一实施方式中,ECU模型150一起组合在单个数组中。ECU模型150通过扫描相应二进制文件并识别二进制文件中的每个指令片段以及包含指令片段代码的系统存储器中的相应地址而预先生成,如本领域技术人员在本发明时已知的。

在一个实施方式中,每个ECU模型150包括与用于相应ECU 70的可接受指令片段链有关的信息。特别地,指令片段链是多个指令片段,其中,链中的每个指令片段都向链中的另一指令片段的地址发起控制流指令。替代性地,链内的指令片段可以向与链中的另一指令片段的地址相距预定距离内的地址发起控制流指令。可允许的指令片段链由相应ECU 70的二进制文件确定。

在AUTOSAR配置中,ECU 70在没有ASLR的情况下操作,因此除非ECU 70被更新,否则指令片段的地址不会改变。在ECU 70与ASLR一起操作的系统的情况下,根据ASLR的新地址更新每个ECU模型150的地址。

在一个实施方式中,数据接收功能90、ECU确定功能100、控制流指令识别功能110、分析功能120、攻击检测功能130和输出功能140各自包括检查程序35中的相应代码段。

在操作中,由DCU 40接收以太网数据包并且数据接收功能90在ROP攻击防护系统20的处理器30中接收数据包的数据。在其中DCU 40根据AUTOSAR操作的一个实施方式中,检查程序35被实现为回调函数,该回调函数被配置为在DCU 40的驱动器完成接收数据包时被调用。特别地,在一个实施方式中,回调是在设置驱动器的接收器标志时实现的。在其中DCU40在Linux系统中操作并且检查程序35是如下所述的共享对象的另一实施方式中,利用LD-PRELOAD命令调用共享检查程序35。在完成其操作后,检查程序35调用原代码继续正常操作。

ECU确定功能100对已接收数据包数据进行分析以确定已接收数据包是否发往ECU70中的一个。另外,ECU确定功能确定哪个ECU 70是数据包的目的地。在一个实施方式中,ECU确定功能100响应于预定路由模型确定数据包的目的地。响应于DCU 40的配置文件生成预定路由模型。特别地,DCU 40的配置文件定义接收信号的路由策略,即,每个信号将被路由至哪里。因此,路由模型包含用于每个ECU 70的唯一标识符,并且ECU确定功能100识别数据包中包含哪个唯一标识符,即,哪个ECU 70是数据包的目的地。在一个实施方式中,响应于数据包的CAN ID来确定数据包的目的地。在另一实施方式中,响应于数据包的以太网IP来确定数据包的目的地。在一个实施方式中,仅对以特定ECU 70为目的地的数据包进行分析。

控制流指令识别功能110响应于作为数据包的目的地的ECU 70的ECU模型150对数据包的有效负载中的数据进行分析,以识别到包含指令片段的存储器地址的控制流指令。特别地,如上所述,在一个实施方式中,每个ECU模型150为每个DWORD设置指示该DWORD是否包含指令片段的标志。在一个实施方式中,控制流指令识别功能110将有效负载中的每个控制流指令的目的地与相应ECU模型150的地址进行比较,以确定相应地址空间的标志被设置为1还是0。在另一实施方式中,控制流指令识别功能110搜索控制流指令的有效负载,以寻址包含指令片段的空间。要注意的是,由于使用不同的存储器,不同的ECU 70可能使用相同的地址编号。因此,包含地址的指令片段由地址编号和对ECU 70的目的地进行的识别两者识别。

分析功能120生成至由识别功能110识别的指令片段的控制流指令的统计分析。特别地,在一个实施方式中,分析功能120跟踪寻址于数据包中的预定窗口中的指令片段的控制流指令的数量。特别地,预定大小的窗口被定义并且使用该窗口来扫描数据包以确定在整个数据包数据中寻址于该窗口中的指令片段的控制流指令的量。在又一实施方式中,该窗口是移动窗口,即,该窗口从数据的开头开始并以预定步长递增。任选地,预定步长为1字节。在一个非限制性实施方式中,窗口大小是20字节。

在另一实施方式中,在检测到寻址于指令片段的控制流指令时对窗口进行初始化。特别地,在检测到寻址于指令片段的控制流指令时,窗口被设置成使得窗口在检测到的寻址于指令片段的控制流指令处开始,并且对寻址于窗口内的指令片段的附加控制流指令的数量进行计数。在窗口完成之后,在检测到寻址于指令片段的下一个控制流指令时设置下一个窗口。

在一个实施方式中,已生成的统计分析包括寻址于指令片段的控制流指令链内的寻址于指令片段的控制流指令的数量。如上所述,指令片段链是若干指令片段,其中,链中的每个指令片段向链中的另一指令片段的地址或链中的另一指令片段的地址的预定距离内的地址发起控制流指令地址。在另一实施方式中,已生成的统计分析包括下述两者:寻址于指令片段的控制流指令链内的寻址于指令片段的控制流指令的数量;以及寻址于预定窗口内的指令片段的控制流指令的数量。

攻击检测功能130响应于由分析功能120生成的统计分析来对ROP攻击的存在进行检测。特别地,在其中统计分析包括预定窗口内调用的指令片段的数量的实施方式中,攻击检测功能130将调用的指令片段的数量与预定窗口值进行比较。在调用的指令片段的数量超过预定窗口值的情况下,识别出ROP攻击。

在其中统计分析包括寻址于指令片段的控制流指令链内的寻址于指令片段的控制流指令的数量的实施方式中,攻击检测功能130将链内的控制流指令的数量与预定链值进行比较。在链内调用的指令片段的数量超过预定链值的情况下,识别出ROP攻击。在一个实施方式中,响应于相应ECU模型150来确定预定链值,即,对于每个ECU 70存在相应的预定链值。在另一实施方式中,将寻址于指令片段的控制流指令链与关于存储在相应ECU模型150中的可允许指令片段链的信息进行比较,并且仅对于检测到的未作为可允许链存储的链执行与预定链值的比较。因此,在这样的实施方式中,对ROP攻击的存在进行的检测是响应于相应唯一ECU模型150的。

在一个实施方式中,攻击检测功能130响应于寻址于预定窗口内的指令片段的控制流指令的数量和一个或多个指令片段链内的控制流指令的数量两者的预定函数来检测ROP攻击的存在。在另一实施方式中,在每个独特的ECU模型150中提供不同的预定功能。任选地,响应于与相应ECU 70中的可允许指令片段链相关的信息来确定每个预定功能。任选地,响应于相应ECU 70的类型来确定每个预定功能,使得第一类型的ECU 70具有与其相关联的第一预定功能以减少误报的数量,并且第二类型的ECU 70具有与其相关联的第二预定功能以在允许较多误报的同时减少未检测到的ROP攻击的数量。因此,在这样的实施方式中,对ROP攻击的存在进行的检测响应于相应唯一ECU模型150。类似地,在一个实施方式中,每个相应预定窗口值和每个相应预定链值响应于相应ECU 70的类型。

响应于识别的ROP攻击,输出功能140输出指示ROP攻击的存在的信号。在一个实施方式中,响应于输出信号,DCU 40阻止进一步向CAN总线网络50传输数据。在另一实施方式中,每个数据包仅在分析数据包之后并且仅在不存在表示ROP攻击的存在的信号的情况下传输至适当的CAN总线网络。在另一实施方式中,与由DCU 40向目的地ECU 70传送数据包并行地执行对数据包的上述分析。在另一实施方式中,输出信号传输至控制器。

检查程序35的操作方法的高级流程图在图1E中示出。在阶段1000中,对接收数据包的数据内的窗口进行初始化。在阶段1010中,对窗口内的控制流指令进行分析以确定控制流指令是否寻址于包含指令片段的地址。在识别出寻址于指令片段的控制流指令的情况下,在阶段1020中,检查标志以确定该控制流指令是否是当前窗口中要识别的第一指令片段。在确定该控制流指令是识别的第一指令片段的情况下,在阶段1030中启动计数器并且在阶段1040中推进计数器。在确定该控制流指令不是当前窗口中识别的第一指令片段的情况下,执行阶段1040并且推进计数器。

在阶段1050中,对阶段1000的窗口进行分析以确定该窗口是否已经过去,即,是否已经到达窗口的末端。在预定窗口已经过去的情况下,在阶段1060中将阶段1030的计数器中的值与预定窗口值进行比较。在计数器中的值大于预定窗口值的情况下,在阶段1070中输出指示ROP攻击的存在的信号。在阶段1060中确定计数器中的值不大于预定窗口值的情况下,则再次执行上述阶段1000,同时使窗口以预定步长移动,任选地超过1个字节。任选地,在检测到攻击并且阶段1070的信号被输出的情况下,还再次执行阶段1000。

在阶段1050中确定阶段1000的窗口还没有过去的情况下,再次执行阶段1010。重复执行阶段1000至1070,直到到达数据包的末端为止。在一个实施方式中,重复执行阶段1000至1070,直到到达数据包的末端为止或直到检测到ROP攻击为止。

有利地,任选地位于DCU 40内的ROP攻击防护系统20可以验证以远程ECU 70为目标的数据包,而不需要每个ECU 70的单独防护系统。如上所述,在基于指令片段的利用来检测ROP攻击的一个实施方式中执行该验证,然而上文和下文描述的系统和方法不限于仅识别指令片段。

图2图示了将ECU模型150添加至AUTOSAR项目的方法的第一实施方式的高级流程图。在阶段2000中,使用链接脚本将ROP攻击防护系统20的检查程序35链接至AUTOSAR项目的末端。在阶段2010中,扫描ECU的二进制文件以识别指令片段。在阶段2020中,响应于阶段2010的指令片段识别,生成结构的数组,数组的每个结构包含用于相应ECU 70的ECU模型150。在阶段2030中,将指令片段结构数组添加至检查程序35的源代码。在指令片段结构数组已经存在于检查程序35的源代码中的情况下,利用阶段2010的新结构数组来更新结构数组。在阶段2040中,对检查程序35的包括更新的指令片段结构数组的源代码进行编译和链接。由于检查程序35链接至AUTOSAR项目的末端,更新的指令片段结构数组现在将是项目的一部分。

图3图示了将ECU模型150添加至AUTOSAR项目的方法的第二实施方式的高级流程图。在阶段2100中,使用链接脚本将ROP攻击防护系统20的检查程序35链接至AUTOSAR项目。在阶段2110中,扫描ECU的二进制文件以识别指令片段。在阶段2120中,响应于阶段2110的指令片段识别,生成结构的数组,数组的每个结构包含用于相应ECU 70的ECU模型150。在阶段2130中,将阶段2120的结构数组添加至检查程序35的数据部分。在指令片段结构数组已经包含在检查程序35的数据部分中的情况下,利用新的结构数组来更新指令片段结构数组。

图4图示了将ECU模型150添加至LINUX项目的方法的高级流程图。在阶段3000中,扫描ECU的二进制文件以识别指令片段。在阶段3010中,响应于阶段3000的指令片段标识,生成结构的数组,数组的每个结构包含用于相应ECU 70的ECU模型150。在阶段3020中,将指令片段结构数组添加至ROP攻击防护系统20的源代码。在指令片段结构数组已经存在于ROP攻击防护系统20的源代码中的情况下,利用阶段3010的新结构数组来更新结构数组。在阶段3030中,对ROP攻击防护系统20的包括更新的指令片段结构数组的源代码进行编译以创建共享对象。在阶段3040中,将阶段3030的共享对象加载到LINUX项目中。在一个替代性实施方式中,ROP攻击防护系统20单独运行,而不被加载到LINUX项目中。特别地,LINUX系统提供了允许查看网络数据流量的库。

图5示出了根据某些实施方式的ROP攻击防护方法的高级流程图。在阶段4000中,接收发往多个ECU中的一个ECU的数据。在阶段4010中,确定阶段4000的数据的目的地,即,数据是发往多个ECU中的哪一个。在阶段4020中,响应于与阶段4010的目的地ECU相关联的唯一模型,对已接收数据进行分析以识别到系统存储器的预定地址的一个或多个控制流指令。在一个实施方式中,如上所述,系统存储器中的预定地址中的每个预定地址包含指令片段,然而这并不意味着以任何方式进行限制。在另一实施方式中,系统存储器中的预定地址中的每个预定地址包含除指令片段之外的预定类型的代码。

在阶段4030中,响应于阶段4020的已识别控制流指令,生成已识别控制流指令的统计分析。在一个实施方式中,统计分析包括到已接收数据内的预定窗口上的预定地址的已识别控制流指令的数量。在另一实施方式中,统计分析包括已识别控制流指令链内的已识别控制流指令的数量。在阶段4040中,响应于阶段4030的统计分析,对ROP攻击的存在进行检测。在一个实施方式中,响应于所识别的到预定窗口内的预定地址的控制流指令的数量大于预定窗口值而检测到ROP攻击。在另一实施方式中,响应于已识别控制流指令链内的已识别控制流指令的数量大于预定链值而检测到ROP攻击。在一个实施方式中,ROP攻击的检测进一步响应于相应ECU的唯一模型。在如上所述的另一实施方式中,预定链值、预定窗口值和/或窗口内的已识别控制流指令的数量和链内的已识别控制流指令的数量两者的预定函数响应于相应ECU的唯一模型中的信息。

在阶段4050中,响应于阶段4040的检测到的攻击,输出指示ROP攻击的存在的信号。在任选阶段4060中,响应于阶段4050的输出信号,控制DCU以阻止将数据传送至阶段4000的多个ECU。

应当理解的是,为清楚起见,在单独实施方式的上下文中描述的本发明的某些特征也可以在单个实施方式中组合提供。相反,为了简洁起见,在单个实施方式的上下文中描述的本发明的各个特征也可以单独提供或以任何合适的子组合提供。

除非另有限定,否则本文中使用的所有技术和科学术语具有与本发明所属领域的普通技术人员通常理解的含义相同的含义。尽管在本发明的实践或测试中可以使用与本文所描述的那些方法相似或等效的方法,但本文描述了合适的方法。

本文提及的所有出版物、专利申请、专利和其他参考文献均通过引用整体并入。在有冲突的情况下,以包括定义的专利说明书为准。此外,材料、方法和示例仅是说明性的而不是限制性的。

本领域技术人员将理解的是,本发明不限于上文具体示出和描述的内容。相反,本发明的范围由所附权利要求限定,并且包括上文描述的各个特征的组合和子组合以及本领域技术人员在阅读前述描述后将会想到的变型和改型。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:安全虚拟机环境中的客户机指令的透明解释

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类