一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于防止对车辆的网络攻击的方法及相应装置与流程

2022-12-08 06:40:35 来源:中国专利 TAG:


1.本发明涉及防止车辆的通信网络(特别是can(控制器局域网络))中的网络攻击的技术,通信网络包括总线(特别是can总线)以及多个节点,该节点以信号交换关系关联到所述总线并且至少部分地关联到用于控制车辆功能的控制单元。


背景技术:

2.can总线(在机动车辆中作为通信总线)是一种串行、多主机类型的通信方式,其中连接到总线上的每个主机(也称为节点)能够发送、接收和解决若干节点同时进入发送的冲突。
3.图1中示意性地示出了can总线10,其包括多个节点11。图1中示出了三个节点111、...、113。如图1中所示,能够在can总线10上进行通信的节点11通常包括:
[0004]-can收发器12,其通过发送线tt和接收线tr关联到can总线10,并且被配置为用于管理can总线所特有的电平(osi模型的物理层);
[0005]-can控制器13,其通过发送线ct和接收线cr连接到can收发器12,并且被配置为用于管理can总线10的逻辑电平和串行化(osi模型的数据链路层);
[0006]-微控制器14,其包含消息的发送和接收逻辑(管理比数据链路层更高的osi层)。
[0007]
总线10包括两条线。10h表示can总线10的高线或can-高,而10l表示低线或can-低。在总线10的两端,10h和10l这两条线由终端电阻10r端接。在图1中,发送线tt联接到高线10h,而接收线tr联接到低线10l。
[0008]
因此,can总线10是差分总线,因此具有两条线的结构,这两条线称为“can-高”10h和“can-低”10l。
[0009]
识别连接多个节点(例如电子控制单元(ecu))的can总线中的恶意消息的方法旨在确定什么消息是恶意的,但最重要的是它来自哪个节点或ecu,以便能够追踪攻击的来源本身并采取必要的措施。目前在车辆上实施的入侵检测系统设法确定网络攻击的存在,但未配备攻击者识别系统。
[0010]
表1中提供了根据can协议的消息的结构;特别是,下述数据类型的消息,其由连续位的多个段s构成,如下所示。
[0011][0012]
表1
[0013]
can协议是一种多主机协议。这意味着每个网络节点都可以在总线空闲时在其上写入。如果若干节点希望同时通信,则具有最高优先级的消息获胜并写入。
[0014]
感兴趣的消息字段主要是仲裁字段s2和ack(应答)字段s6。仲裁字段由消息id(标识符)构成,消息id(标识符)确定其中的优先级并识别消息。二进制值越小,优先级越高。最初为隐性(因此为1)的ack位被正确接收消息的ecu或节点11用显性位覆写。这样,每个节点都会确认消息的完整性。
[0015]
通过对id字段进行逐位仲裁来解决冲突。can指定了两种逻辑状态:“显性”和“隐性”,其中显性为逻辑0,隐性为逻辑1。如果一个ecu发送显性位而另一个ecu发送隐性位,则发生冲突,发送了显性位的一方获胜。此时,另一个节点输了仲裁并排队等待重发。这样,高优先级的消息不用等待发送,低优先级的消息在占优势的消息发送完成后尝试再次在总线上写入。这就是使can适合作为优先实时通信系统的原因。
[0016]
图2a中所示的图显示了can总线10上的物理电压电平vl作为时间t的函数。
[0017]
如图1中所示,每个节点11包括一个带有can控制器13的微控制器14,其负责在ecu或节点11之间共享的总线10上正确写入和读取消息。它执行位填充(bit stuffing),该过程包括在值相同的五个连续位之后插入具有相反值的位,以及插入校验和,并且在发送消息后等待来自接收器的确认。can收发器12将数据流从can总线10的电压电平转换为can控制器13所使用的电平,反之亦然。
[0018]
can总线10是差分总线,因此具有两条线的结构,这两条线为can-高10h和can-低10l,如图1中所示。当要发送0位时,can收发器12在can-高线10h上产生约3.5v的电压电平,在can-低线10l上产生约1.5v的电压电平,使得在两条线之间的电位差vd电压约为2v。此0位被称为“显性”。同样地,当要发送1位时,收发器12在can-高线10h和can-低线10l上的输出均为约2.5v,从而产生0v的电位差vd。在这种情况下,相应的位被称为“隐性”。
[0019]
图2b以示例的方式示意性地示出了收发器12,其包括用作在电源电压vcc和can-高线10h之间的开关的mos晶体管12h和用作在can-低线10l和地gnd之间的开关的mos晶体管12l。为此,can收发器12必须同时开通/关断构成它们的晶体管10h、10l。当发送显性位时,mos晶体管12h、12l被接通;当发送隐性位时,它们被关断并设置为高阻抗状态。
[0020]
下文介绍的是一些典型的攻击场景。
[0021]
一种类型的攻击被称为“伪造攻击(fabrication attack)”。通过被入侵成为强大攻击者的车载ecu,对手伪造并注入带有假冒id(标识符)、dlc(数据长度码)和数据的消息。这种攻击的目的是覆盖由合法的安全攸关的ecu发送的任何周期性消息,从而使它们的接收者ecu错乱或变得无法操作。例如,攻击者以给定的id(例如0xb0)以高频率注入各种恶意消息,这些消息通常由合法的ecu发送。因此,正常接收消息0xb0的其他节点被迫接收比合法的那些更频繁的伪造的攻击消息。在这种情况下,攻击者ecu正在对消息0xb0及其原始发送者(即合法ecu)进行伪造攻击。
[0022]
另一种类型的攻击称为“暂停攻击(suspension attack)”。要进行暂停攻击,攻击者只需要一个被弱入侵的ecu。与拒绝服务(dos)攻击的情况一样,这种攻击的目的是停止/暂停被弱入侵的ecu的发送,从而阻止其他ecu在can上所获取的信息的传递/传播,原因在于某些ecu必须从其他ecu接收特定信息才能正常运行。因此,暂停攻击不仅会损坏被弱入侵的ecu,还会损坏其他接收者ecu。
[0023]
另一种类型的攻击称为“伪装攻击(masquerade attack)”。要发起伪装攻击,攻击者需要入侵两个ecu,一个作为强攻击者,另一个作为弱攻击者。这种攻击的目的是操纵ecu,同时掩盖该ecu被入侵的状况。在给定的伪装瞬间,对手监视并学习其较弱的攻击者发送了哪些消息以及以什么样的频率发送;例如,弱攻击者每20ms发送一次消息0xb0。由于大多数网络消息是周期性和广播的(例如通过can),因此很容易学习到它们的标识符(id)和发送间隔。一旦攻击者掌握了消息的id和频率,攻击者在伪装瞬间停止其弱攻击者的发送并利用其强攻击者伪造并以id=0xb0注入攻击消息。阻止弱攻击者的发送并利用强攻击者发送恶意消息的目的是克服弱攻击者无法注入消息的问题。在伪装瞬间之后,0xb0的原始发送者(即弱攻击者)不发送该消息,而强攻击者则以其原始频率发送该消息。因此,当观察总线(例如can总线)的流量时,消息0xb0的频率保持不变,而其发送者发生了变化。
[0024]
从上面的例子可以看出,设法区分攻击真正来自哪个ecu是多么重要,尤其是在伪装攻击的情况下。
[0025]
专利wo2018/013171a1描述了一种ecu指纹识别技术,该技术涉及使用架构中存在的ids(入侵检测系统)来设法确定攻击的存在。


技术实现要素:

[0026]
本发明的目的是提供一种监控方法,该方法使得可能自主地识别出攻击的存在并识别恶意消息来自哪个节点。
[0027]
根据本发明,由于一种防止方法以及由于一种相应的防止装置,上述目的得以实现,该防止方法和防止装置具有所附权利要求中具体提及的特性。
附图说明
[0028]
将参考附图对本发明进行描述,这些附图仅以非限制性示例的方式提供,并且其中:
[0029]-图1、图2a和图2b已经在上文中描述过;
[0030]-图3示出了本文所述方法的总体视图;
[0031]-图4a和图4b示出了通过本文所述方法评估的量的图;
[0032]-图4c示出了表示该方法的操作的第一步骤的流程图;
[0033]-图5示出了表示本文所述方法的操作的第二步骤的流程图;
[0034]-图6a和图6b是时间曲线图,其表示使用本文所述方法获得的量;
[0035]-图7示出了示意性地表示本文所述方法的进一步步骤的流程图;
[0036]-图8示出了示意性地表示本文所述方法的最终步骤的流程图;
[0037]-图9a和图9b是时间曲线图,其表示通过本文所述方法的所述最终步骤评估的量;以及
[0038]-图10是用于实施本文所述方法的电路布置的示意图。
具体实施方式
[0039]
根据本文所述的解决方案,考虑到由同一制造商使用相同组件生产的两个ecu在存在于总线高线和总线低线上的电压电平vl的测量值方面永远不会完全相同,每个电子控制单元(ecu)或节点的特征在于其硬件和结构特性或存在于物理层(电压信号)的不一致性。
[0040]
图3中示意性地示出了用于防止车辆通信can(控制器局域网络)中的网络攻击的方法,该can包括can总线和关联到所述can总线的多个节点或ecu。
[0041]
由附图标记100整体表示的上述方法包括建立显性测量值的第一步骤130和生成电压廓形(voltage profile)的第二步骤170,它们形成所谓的指纹识别程序110的一部分,指纹识别程序110即用于检测发送消息m的ecu 11的指纹的程序。在ecu 11发送消息m的时刻,该指纹识别程序110利用在can总线10的两条线can-高10h和can-低10l上读取的电压测量值,获得每个ecu 11的唯一指纹或签名。
[0042]
具体而言,在这方面,图3中以示例的方式示出了第一ecu 111,其生成两条消息m1和m2,由各自的消息标识符id1和id2区分,以及示出了第二ecu 112,其生成第三条消息m3,由消息标识符id3区分。下标i表示的是通用的第i个消息mi,对应于消息标识符idi。
[0043]
重要的是,上述前两个步骤130和170设法区分在can总线10上读取的哪些电压测量值实际上来自正在发送消息m的ecu 11。
[0044]
所描述的方法被设计为能够容易地作为低成本的软件应用程序集成,因此不需要对can进行任何修改,从而使电压测量值的采样率保持相对较低。这意味着不知道电压值是在消息的哪个间隙(slot)中测量的,而只已知它们的值。此外,该方法仅考虑显性测量值,因为它们是有效代表ecu 11的那些测量值,因为它们涉及相应收发器12的mosfet 12h、12l的接通。
[0045]
因此,同样参考图4c的流程图,其详细描述了操作130,最初对给定消息mi测量132在高线can-高10h和低线can-低10l上的电压vli。如果i是消息的索引,则j可以表示测量值序列中的电压测量值的索引,因此其更具体地为vl
i,j
,其中j是范围从1到j的整数。
[0046]
然后,设想到执行过滤134消息的电压测量值vli的操作,以获得仅对应于该消息的显性位的测量值dvi。
[0047]
在这种情况下,丢弃了所有在总线高线can-高10h上的低于2.75v并在总线低线can-低10l上高于的2.25v的测量值vl
i,j
,以针对给定消息mi获得一组仅显性测量值dv
i,k
,其中,k是范围从1至k小于或等于j的整数。继续进行电压测量操作,直到消息mi被完全接收并表示在收发器12的缓冲区中,其中,通过读取消息mi各自的标识符idi,可以确定上述显性电压测量值dv
i,k
属于哪个消息。
[0048]
然而,由于可能发生多个ecu 11同时通信(例如在仲裁阶段或在ack位期间),设法丢弃不识别合法ecu的测量值是有益的。
[0049]
因此,过滤操作134可额外包括去除对应于ack位的测量值的程序136。这是通过设置上阈值γh(总线的线can-高10h上高于该上阈值γh的测量值被丢弃)和下阈值γ
l
(总线的线can-低10l上低于该下阈值γ
l
的测量值被丢弃)而获得的。这些阈值是每个ecu 11的特性并且是在该方法的第一步骤130中创建的。
[0050]
例如,为了定义上述阈值,考虑到对总线高线can-高10h的测量值(特别是显性电压值dv
i,k
)的分布,计算核密度(kernel density),并且上丢弃阈值γh设置在最频繁值分布的核密度变为零的位置,如图4a的图中所示,该图示出了can-高10h上最频繁值(实线)的和最大值(虚线)的显性电压值dv
i,k
的核密度。对can-低10l,计算核密度,并且下丢弃阈值γ
l
设置在最频繁值分布的核密度变为零的位置,如图4b的图中所示,该图示出了can-低10l上最频繁值(实线)的和最小值(虚线)的显性电压值dv
i,k
的核密度。
[0051]
对于应答位ack,其在接收到具有显性位的消息之后被重写,测得更高的电压(例如约4v的vh和约0.5v的vl),这样它们落在丢弃阈值之外。ack的不同电压电平缘于下述事实:在应答间隙(ack slot)期间,除了正在发送的节点之外的所有节点都执行确认,发送显性位并且与此同时开通它们自己的mosfet。这会降低在vcc-10h和10l-gnd之间的电阻,进而降低相应的电压降。因此,在接收ack期间测得的电压分别高于和低于对应于非ack显性位的电压,并且可以使用基于最频繁值分布的阈值定义程序来进行区分。
[0052]
因此,通过上述操作,仅考虑以下值:
[0053]
2.75v《dv《γh[0054]
其中,显性电压值dv对应于can-高线10h,并且:
[0055]
γ
l
《dv《2.25v
[0056]
其中,显性电压值dv对应于can-低线10l。
[0057]
换言之,通常设想在操作130中测量值总线的线上的电压并排除与隐性位和应答位ack相关联的值。这些值对应于对消息mi的非ack显性电压测量值nv
i,k
,其中,索引k的范围为1到nk,其小于或等于整数k。因此,去除对应于ack位的测量值的操作136包括对总线高线和总线低线分别固定相应的隐性位的下阈值和上阈值,以及用于去除应答位ack的相应上阈值和下阈值。
[0058]
应当注意,块130的操作使得能够对消息mi采集非ack显性电压测量值nv
i,k
,在块130的操作的实施中设想到消息mi的非ack显性电压测量值nv
i,k
暂时存储在存储器中,然而,只有当消息mi已被完全接收时才可以说哪个消息标识符idi可用作节点能够使用的信息。
[0059]
还应注意,在某些实施例中,一旦总线高线can-高10h上的电压测量值vl在给定时间段(其中总线空闲)之后超过相应阈值,方法100(以及因此操作130)就可以开始,因为这种情况代表ecu在总线上发送0位(iso 11898-2)。该阈值例如是2.75v。因此,同样参考上文详述的内容,可以不停地执行电压值vl的采样,从采样值中丢弃隐性值,而将非ack显性电压测量值nv
i,k
暂时存储在存储器中。通常,此时无法说出它们所指的是哪个第i个消息标识符idi,因为只有当消息mi已被完全接收时才可以将该信息用作节点能够使用的信息。即使实际上定义第i个消息标识符idi的电压值是最先在总线10上发送的,这也适用。
[0060]
然后,在生成电压廓形的步骤170中,针对每个消息标识符idi存储非ack显性电压测量值nv
i,k
,以便在数量上足以有效地表示ecu 11的行为并用于获得关于电压概率分布的特征,从而表征ecu 11的物理行为,包括瞬时行为和随时间推移的行为。
[0061]
图5中示出了更详细地表示生成电压廓形的步骤170的流程图,在步骤171中,将针对给定的第i个消息标识符idi以给定数量的连续瞬间获取的给定整数个非ack显性电压测量值nv
i,k
存储成相应的存储测量值集合ai中。
[0062]
在步骤172中,计算上述存储测量值集合ai的电压分布vd(特别是百分数分布)。步骤172包括:计算存储测量值集合ai中的非ack显性电压值nv
i,k
的分布,之后计算上述分布的一些特定特征,例如高线10h上的最频繁值(特征f1),以及低线10l上的最频繁值(特征f2),以及一定数量的百分位数,例如高线10h上的第75个和第90个百分位(f3、f4)和低线10l上的第25个和第10个百分位(f5、f6)。
[0063]
在步骤173中,基于上述电压分布vd,即高线和低线的最频繁值和百分位数,计算累积电压偏差dc的总和。
[0064]
特别是,在步骤173中,对于从在步骤172中获得的特征f1、...、f6中选定的特征,计算相对于预期理想值的cvd(累积电压偏差)。例如,在给定迭代(即在给定组上执行步骤171、172)下,特征f1的cvd对应于在先前迭代计算的cvd加上距先前迭代所经过的时间和以下项的乘积:1减去测得的特征f1的值v(f1)与期望值v*(f1)之比,即,(1-v(f1))/v*(f1)。然后,如果v(f1)在每次迭代(即在包含给定数量的测量值的组中)总是与期望值v*(f1)相差相同的量,则cvd线性增加。
[0065]
因此,优选地,在步骤173中,将从各种特征f1、...、f6中取得的特征的cvd值加在一起。
[0066]
因此,在步骤171和步骤172中,当收到电压测量值nv
i,k
后,将它们组成给定数量的
电压测量值nv
i,k
的组,其构成测量值集合ai。对于每个测量值集合ai,例如,计算了针对低线10l和高线10h的均值或最频繁值以及电压测量值nv
i,k
的组中的电压测量值的一个或多个百分位数。然后计算电压测量值的均值或最频繁值的累积偏差,以及电压测量值nv
i,k
的每个百分位数的累积偏差。然后可以通过将电压测量值nv
i,k
的均值的累积偏差和电压测量值nv
i,k
的一个或多个百分位数的累积偏差相加以获得总和dc的值。
[0067]
应该注意的是,根据所描述的解决方案的一个方面,在一些实施例中,测量值集合ai可以包括通过使用样本的滑动窗口而获得的n组z个测量值。对于每个消息标识符idi,由于包含z个测量值的一个新组一旦形成,样本(即电压测量值nv
i,k
)即被存储,所以n个组中最旧的组就被丢弃,而刚刚形成的组成为待处理的数据集(即测量值集合ai)的一部分。因此,可以通过设置组成它的组数n和组成一个组的测量值数量z来定义滑动窗口的特性。因此,通过使用滑动窗口,产生各自的廓形dc,它们在操作174中被加在一起。这使得该方法具有自适应性,即能够适应运行条件的变化,这些变化通常可以源自温度或源自对电压的影响。
[0068]
存储每组测量值或滑动窗口的总和dc的值,其用于步骤171、172、173的迭代。因此,一般而言,随着后续迭代,存储了许多值dc,这些值遵循基本线性模式增加,其可以描述为:
[0069]
ψ[n]=γ[n]t[n] e[n]
[0070]
其中,n是迭代的索引,即在步骤172中cvd值的计算值,特别是在步骤173中的总和dc。
[0071]
因此,基于ψ[n]的值,可以在步骤174中计算作为时间函数的电压廓形vp。为了获得电压廓形vp,在步骤174中,基于在给定瞬间可获得的值dc,例如通过rls(递归最小二乘法)算法执行拟合,作为时间t的函数。
[0072]
因此,通过程序170,由同一个ecu 11发送的消息由以下直线束表示,这些直线具有基本相同的角系数m(即角系数在给定区间内或对应于给定值但有公差)以及相同的常数值或y-截距q(其表示指纹或签名),该直线束被称为总电压廓形vp。
[0073]
特别是,在每个步骤中使用自适应信号处理技术确定角系数m,该技术还能够计算线性参数识别问题的识别误差e[n]:
[0074]
ψ[n]=γ[n]t[n] e[n]
[0075]
其可以重写为直线方程:
[0076]
y(xk)=mxk q
[0077]
其中,xk是与测得的第k个样本nv
i,k
相关联的时间横坐标的值,这可能是采集集合ai的最后一个样本的时间。
[0078]
更具体地说,直线y(xk)是基于以这种方式存储的值构建的:获取属于一个组的最后z个样本,并且使用这z个样本更新与第i个消息标识符idi相关联存储值,并且,z个样本中的最后一个样本xk被获取的时间(作为时间)与这个新存储的值相关联。获得通过拟合近似为一条直线的分布,从其中提取斜率m和常数值q。
[0079]
因此xk是与最后一个集合或一组z个样本的形成相关的横坐标值。
[0080]
在这点上,例如在图6a中示出了针对每个消息标识符id的直线(即电压廓形vp)的构造。对于从8个ecu 111、...、118接收的每条消息mi,表示了作为时间t的函数的累积电压
偏差值的直线。可以看出,对应于ecu 111、...、118的每个束的直线的角系数位于不同的区间,这些区间通常没有共同的值。在图6b中,再次被表示为时间t的函数的是角系数m的图。图6a-6b的数据涉及的是,针对八个ecu的子网络和七十个不同消息标识符id的通信量,在机动车辆上所执行的持续六十秒的采集。
[0081]
如上所述,根据本文所述解决方案的一个重要方面,通过使用样本的滑动窗口(该滑动窗口包括给定数量的样本或非ack显性电压测量值nv)及时更新ecu的指纹vp,但在每个瞬间t丢弃较旧的测量值,引入最近的非ack显性电压测量值nv
i,k
。这使得该方法具有自适应性,即能够适应运行条件的变化,这些变化通常可以源自温度或对电压的影响。
[0082]
在每个测量瞬间的上述更新被用于后续检测步骤200和对攻击者的识别步骤300利用。特别地,在识别到攻击者(例如恶意节点)之后,跟踪攻击的来源本身,采取相应的措施。特别是,这样的措施可包括取证、隔离、安全补丁中的一项或多项。
[0083]
图7中所示的是详细表示检测步骤200的框图。
[0084]
在步骤210中,对于给定的ecu 11,使用滑动窗口对每z个测量值nv获取角系数m的值。优选地,排除掉ni个初始测量值,以便不将初始瞬变考虑在内,该初始瞬变期间直线斜率之间的差异很大,后续具有误报风险。
[0085]
在步骤220中,评估相对于在z个测量值的间隔中获取的(特别是当前获取的)值,在步骤210中获取的角系数m的值的差是否超过固定的变化阈值ath。特别地,每z个测量值nv获取210一次角系数m的值,并且计算每z个测量值nv所获取的角系数的值之间(特别是在前一个z个测量值的间隔和随后的z个测量值的间隔之间)的差。如果对于给定数量的z个测量值nv
i,k
的连续间隔,超过了上述变化阈值,则确定有攻击在进行。步骤220返回攻击发生的时间(即满足步骤210的条件的时间),以及对应的消息标识符id,其因此对应于受损消息。
[0086]
由于在攻击开始之后,与直线的角系数或斜率m的变化相关联的电压廓形vp稳定在实际上正在发送被入侵的消息的被入侵的ecu 11的电压廓形上,因此在步骤230中,设想提供上述稳定时间k
st
,其被计算为在z个测量值nv的连续间隔上计算的两个斜率值m之间的差值超过变化阈值ath时的最后瞬间。稳定时间k
st
表示识别到被入侵的ecu的时间,并且在步骤230中还提供了所达到的新廓形(profile)vp*(即被入侵的ecu 11的电压廓形vp),特别是其新斜率m*。
[0087]
需要注意的是,在变体实施例中,可以使用直线的常数值q(而不使用斜率m),即识别误差e[n],在攻击正在进行的那一刻,其本身也有很大的变化。在这种情况下,可能需要更改可配置参数,例如下文所述的参数limsup、liminf、z。
[0088]
因此,一般而言,本文描述的方法设想,一旦获得表示电压廓形的直线,作为直线参数之一(斜率m或常数值(或y-截距)q)的函数,执行检测步骤200和随后的识别ecu 11的步骤300。
[0089]
在检测步骤200结束时,因此可以前进到识别攻击者ecu 11的步骤300。将在稳定时间k
st
的新电压廓形vp*的参数与截至该时刻计算的消息id的所有其他廓形的参数进行比较,特别是对应于截至该时刻计算的相应消息标识符id(其具体可以对应于稳定时间k
st
)的所有其他廓形mi的参数进行比较。优选地,从该分析中排除过去电压廓形vp的数量低于给定值(例如2z)的消息标识符id,以便不将那些尚未稳定的消息标识符id考虑在内。
[0090]
为此目的,正如示意性地表示步骤300的图8所示,首先设想在步骤310中针对每个消息标识符id定义具有上限limsup和下限liminf的变化范围:
[0091]
limsup=mi(k
st
) σ(mi(k
st-k
past
),mi(k
st-k
past
1),...,mi(k
st
))
[0092]
liminf=mi(k
st
)-σ(mi(k
st-k
past
),mi(k
st-k
past
1),...,mi(k
st
))
[0093]
其中mi是参数,具体来说,所考虑的第i个消息标识符id的电压廓形的斜率,k
st
是稳定时间(由其索引k表示,特别是对应于电压测量值nv
i,k
,或样本),k
past
表示斜率的过去样本,并且σ是标准偏差。因此,示例中的上限limsup对应于在稳定时间k
st
计算的第i个消息标识符的电压廓形的斜率mi再加上根据在稳定时间k
st
之前的k
past
个样本计算的相同斜率mi值的标准偏差。下限liminf对应于在稳定时间k
st
的第i个消息标识符的电压廓形的斜率mi再减去根据在稳定时间k
st
之前的k
past
个样本计算的相同斜率mi值的标准偏差。
[0094]
对于每个第i个标识符idi,在前面针对步骤171-174解释的时间和模式中,第i个廓形的r 1个连续值mi,即,mi(0)、mi(1)、...、mi(r)、mi(r 1)被计算和收集。对每r个廓形的值mi,检查一次廓形的值mi相对于之前r个样本廓形的值的差。即,检查mi(r)和mi(0)之间的差的绝对值,然后检查mi(2
·
r)和mi(r 1)之间的差,即在样本长度r的下一个间隔上检查,以此类推。如果此差在若干次连续检查中超过阈值t,则宣布消息标识符idi受到攻击。
[0095]
随后,预计该消息标识符idi的廓形mi在变化后会稳定在新的值上,因此预计差|mi(r
·
i)-mi(r
·
(i-1))|将返回至低于阈值t。
[0096]
稳定时间k
st
被确定为对应于在其返回至低于阈值之前超过阈值t的廓形mi的最后一个样本。
[0097]
一旦稳定时间k
st
是已知的,例如对应于样本s*r,则根据在s*r之前的最后r个样本廓形mi,即,mi(s*r-r),、mi(s*r-r 1)、...,、mi(s*r)计算标准偏差σ。然后,确定廓形值mi周围的间隔,其由下式定义:
[0098]
liminf=mi(s
·
r)-σ
[0099]
limsup=mi(s
·
r) σ
[0100]
然后,在步骤320中,评估在检测步骤200中确定的攻击者的廓形m*落在与相应消息标识符id相关联的哪个范围内。
[0101]
如果经评估321得出,攻击者的廓形(在示例中为斜率m*)落在与消息标识符id相关联的范围内(即在对应的上限limsup和对应的下限liminf之间),则在随后的步骤324中,对应的ecu的名称被返回作为攻击者的名称,特别是连同相关联的邻近系数pc一起,邻近系数pc根据攻击者节点的斜率m*的标准偏差σ的值接近于确定的值的次数:
[0102]
pc=|m*(k
st
)-mi(k
st
)|/σ(mi(k
st-k
past
),mi(k
st-k
past
1),...,mi(k
st
))
[0103]
即,邻近系数等于在稳定时间k
st
计算的攻击者节点的斜率m*与第i个消息标识符的电压廓形的斜率mi之间的差的绝对值,再除以根据在稳定时间k
st
之前的k
past
个样本计算的相同斜率mi的值的标准偏差。
[0104]
由于在步骤230中获得的攻击者的廓形m*可能落在一个以上的范围内,在这种情况下,在步骤322中,所有识别到的ecu的名称都与对应的邻近系数pc一起存储,并且显示警告信号。在随后的步骤325中,名称与最低邻近系数pc相关联的ecu被选定为攻击者ecu。
[0105]
如果在步骤323中经评估得出,廓形m*不在任何范围内,则在步骤326中将攻击者识别为“外部”攻击者;即,攻击者ecu在车辆网络外部。
[0106]
因此,所提出的方法通过滑动窗口继续更新每个消息标识符id的廓形,即使标识符已被入侵。这样,如果对应的消息是由另一个(被攻击的)ecu发送的,则可能会注意到电压廓形的变化,而这种廓形的变化决定了攻击开始的瞬间。
[0107]
上述行为在图9a和9b中清晰可见,图9a和图9b示出了类似于图6a和图6b的图,在通过网络外部装置进行伪装攻击的情况下,该网络外部装置在两个不同的时间发送ecu 117和118的标识符id五秒钟。在图6a中可以注意到,直线在针对上述两个ecu的攻击开始时如何大幅改变它们自身的斜率m,然后稳定在被攻击ecu的特性值上。该算法在这个精确的瞬间(即在稳定时间k
st
)进行识别ecu。接下来,一旦攻击终止并且合法ecu恢复正常通信,廓形将返回其特性值。
[0108]
图9b示出了斜率m,从中可以注意到两个ecu 117和118的斜率m在攻击发生的时刻如何得到一个相同的值,这正是因为对于这两个ecu来说攻击者装置都是相同的。
[0109]
所描述的方法可以安装在标准ecu中,以便容易地集成到车辆网络中而无需对其进行修改。
[0110]
图10是可能的实施架构的示意图。
[0111]
除了图1中所示的块之外,ecu或节点11还包括特征提取块111,该特征提取块111在输入处通过数字数据接口ddi接收数字数据并通过物理接口pi从can总线10接收物理电平vl,并且被配置为用于计算后续处理操作所需的特征,即非显性测量值。
[0112]
ecu 11还包括特征处理块112,该特征处理块112被配置为用于设置块111的一些参数(例如程序130的丢弃阈值),以及用于计算电压廓形,以及识别恶意消息和对应的ecu。还提供了用于接收配置信息的配置接口ci。基本上,块112被配置为用于执行程序170、200、300,在输出处提供恶意消息m*i的标识符和恶意节点cn的名称。
[0113]
然后,设想警报块114,该警报块114可以是简单的开关,例如实施“与”逻辑功能,其由ecu 11的控制接口执行并由特征处理块112激活,并且该警报块114被配置为产生一个警告警报alw,该警告警报alw包括恶意消息的标识符和它所来自的ecu的名称cn,优选地,还有时间,例如稳定时间k
st

[0114]
块111和块112包括各自的ram,该ram用于保存它们所需的所有测量值。
[0115]
因此,一般而言,本文描述的是节点11或ecu,该节点11或ecu包括:
[0116]
特征提取块111,该特征提取块111被配置为获取130显性电压测量值nv
i,k
;以及
[0117]
特征处理块112,该特征处理块112被配置为获得170发送消息m的节点的电特性vp(特别是电压廓形vp),并执行所述恶意节点检测程序200和所述恶意节点识别程序300,特别通过以下步骤获得170发送消息m的节点的电特性vp:
[0118]
在接收节点处接收消息(m)期间,获取171总线高线10h和总线低线10l上的电压测量值vl的连续组,并计算其分布;
[0119]
计算172分布统计值;
[0120]
计算173每个统计值的累积电压偏差;以及
[0121]
通过添加每个统计的累积电压偏差获得电压廓形vp。
[0122]
节点11进一步包括警报块114,该警报块114由ecu 11的控制接口(例如微控制器14)执行,并由特征处理块112激活,并且被配置为产生警告警报alw,该警告警报alw包括恶意消息的标识符和它所来自的节点11的名称cn,以及优选地还包括时间,例如稳定时间k
st

[0123]
此外,ecu包括状态存储器113,其被配置为在每个步骤存储系统的状态,即电压廓形。该状态存储器113由特征处理块112更新(其中特征为电压廓形),该特征处理块112在其中存储最近更新的电压廓形并且可以从其下载存储在其中的电压廓形。
[0124]
此外,存在一个非易失性存储器(图10中未示出),其中存储有上次车辆发动(点火)时计算的标识符id和对应的电压廓形的映射,以便这些值能被视作下一次点火的起始点。这是因为该方法执行实时更新,以免具有会危及攻击者识别结果的过时配置文件。所考虑的模型始终是最新的模型。
[0125]
因此,本文描述的防止网络攻击的方法基本上对应于,监视在执行异常检测操作(例如200)和执行发送节点识别操作(例如300)的网络节点之间交换的消息的程序。跟踪恶意消息的来源本身确实是一种防止程序,因为上述异常检测和恶意节点识别操作的输出本身可能已经被解释为警报或警示。此外,防止方法可以包括特定警报,如使用块114。对应于所识别的攻击,还可以使用其他形式的对抗攻击的措施,如上所述,这样的措施可以包括取证、隔离、安全补丁操作中的一个或多个。
[0126]
因此,从上文的描述可以清楚地看出所提出的解决方案的优点。
[0127]
本文介绍的解决方案使ecu指纹识别技术能够自主识别出攻击的存在,并简单地通过利用电压廓形的持续更新及其在攻击期间可见的变化来识别恶意消息来自哪个ecu。因此,与wo2018013171a1的现有技术相比,所提出的解决方案能够独立实施外部ids(入侵检测系统),因此更易于在嵌入式汽车系统上实施。
[0128]
与设想使用底层ids检测攻击的存在然后识别受攻击的ecu或基于机器学习技术对其进行分类的其他技术不同,本文介绍的算法设法以一种简单的方法做到这两件事情,并且在计算方面成本较低,并且对电压廓形进行连续和不断更新的监控。它同样设法返回检测到攻击的时间(对应于算法开始的时间,因此也是在发动车辆且攻击者ecu已被识别时),这是对评估系统的性能和可靠性而言的有用信息。
[0129]
攻击检测技术基于电压廓形的持续更新,无需进一步的ids(入侵检测系统)即可确定攻击的存在,从而保证指纹识别过程的自主性。此外,除了恶意消息的标识符之外,它还返回对应的时间(对应于该方法的开始,因此对应于在攻击开始时发动车辆)。
[0130]
攻击者识别技术能够通过利用can的每个ecu的唯一指纹知识,在短时间内确定攻击来自哪个ecu。得益于专用逻辑,它能够区分网络外部ecu或网络内部ecu受攻击的情况,在每种情况下都提供表明确定该特定ecu已受到攻击的置信度的邻近度测量值。
[0131]
所提出的技术(攻击检测和攻击者识别的组合)无需知道测得的电压值所属的消息的字段。
[0132]
所提出的技术(攻击检测和攻击者识别的组合)无需修改网络或包含它的系统中使用的协议。
[0133]
所提出的技术(攻击检测和攻击者识别的组合)可以使用标准或扩展格式的can消息以及在can的任何通信速率进行操作。
[0134]
所提出的技术(攻击检测和攻击者识别的组合)也可以应用于can协议之外的协议。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献