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

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

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


技术实现要素:

[0028]
本发明的目的是提供一种监控方法,该方法使得可能自主地识别出攻击的存在并识别恶意消息来自哪个节点。
[0029]
根据本发明,由于一种防止方法以及由于一种相应的防止装置,上述目的得以实现,该防止方法和防止装置具有所附权利要求中具体提及的特性。
附图说明
[0030]
将参考附图对本发明进行描述,这些附图仅以非限制性示例的方式提供,并且其中:
[0031]-图1、图2a和图2b已经在上文中描述过;
[0032]-图3示出了本文所述方法的总体视图;
[0033]-图4a和图4b示出了通过本文所述方法评估的量的图;
[0034]-图4c示出了表示该方法的操作的第一步骤的流程图;
[0035]-图5是本文所述方法所使用的神经网络层的示例的示意图;
[0036]-图6a和图6b是根据本文所述方法运行的系统的神经网络的示意图;以及
[0037]-图7示出了示意性地表示本文所述方法的进一步步骤的流程图。
具体实施方式
[0038]
根据本文所述的解决方案,设想的是以消息的物理信息工作。从can-高和can-低的电压电平出发,计算一些特征,其代表神经网络的输入数据集。然后,将神经网络的预测提供至异常检测程序。
[0039]
图3中示意性地示出了用于防止车辆通信can(控制器局域网络)中的网络攻击的方法,can包括can总线和关联到所述can总线的多个节点或ecu,如图1中所示的那个。
[0040]
由附图标记100整体表示的上述方法包括第一步骤130:针对每个消息标识符id建立显性测量值nv
i,k
,从而获取给定数量的显性测量值,例如150个显性测量值。
[0041]
来自ecu 111、...、113的是带有各自的消息标识符idi的消息mi,例如来自111的m1、m2、来自112的m3、m4以及来自113的m5、m6。
[0042]
因此,同样参考图4c的流程图,其详细描述了操作110,该操作110最初包括以下步骤,即关于给定消息mi对在高线can-高10h上的和在低线can-低10l上的电压vli进行测量112。如果i是消息的索引,则j可以表示测量值序列中的电压测量值的索引,因此其更具体地为vl
i,j
,其中j是范围从1到j的整数。
[0043]
然后,设想到过滤操作114,用于过滤消息的电压测量值vli以获得仅对应于该消息的显性位的测量值dvi。
[0044]
在这种情况下,丢弃了所有低于总线高线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
属于哪个消息并将它们与上述各自的标识符idi相关联。
[0045]
然而,由于可能发生多个ecu 11同时通信(例如在仲裁阶段或在ack位期间),设法丢弃不识别合法ecu的测量值是有益的。
[0046]
因此,过滤操作114可额外包括去除对应于ack位的测量值的程序116。这是通过设置上阈值γh(总线的线can-高10h上高于该上阈值γh的测量值被丢弃)和下阈值γ
l
(总线的线can-低10l上低于该下阈值γ
l
的测量值被丢弃)而获得的。这些阈值是每个ecu 11的特性并且是在该方法的第一步骤130中创建的。
[0047]
例如,为了定义上述阈值,考虑到对总线高线can-高10h的测量值(特别是显性电压值dv
i,k
)的分布,计算核密度(kernel density),并且上丢弃阈值γh设置在最频繁值分布的核密度变为零的位置,如图4a的图中所示,该图示出了can-高10h上最频繁值(实线)的和最大值(虚线)的显性电压值dv
i,k
的核密度。对can-低10l计算核密度,并且下丢弃阈值γ
l
设置在最频繁值分布的核密度变为零的位置,如图4b的图中所示,该图示出了can-低10l上最频繁值(实线)的和最小值(虚线)的显性电压值dv
i,k
的核密度。
[0048]
对于应答位ack,其在接收到具有显性位的消息之后被重写,测得更高的电压(例如约4v的vh和约0.5v的vl),这样它们落在丢弃阈值之外。ack的不同电压电平缘于下述事实:在应答间隙(ack slot)期间,除了正在发送的节点之外的所有节点都执行确认,发送显性位并且与此同时开通它们自己的mosfet。这会降低在vcc-10h和10l-gnd之间的电阻,进而降低相应的电压降。因此,在接收ack期间测得的电压分别高于和低于对应于非ack显性位的电压,并且可以使用基于最频繁值分布的阈值定义程序来进行区分。
[0049]
因此,通过所述操作,仅考虑以下值:
[0050]
2.75v《dv《γh[0051]
γ
l
《dv《2.25v
[0052]
换言之,通常设想在操作110中测量总线的线上的电压并排除与隐性位和应答位ack相关联的值。这些值对应于对消息mi的非ack显性电压测量值nv
i,k
,其中,索引k的范围为1到nk,其小于或等于整数k。因此,去除对应于ack位的测量值的操作116包括对总线高线和总线低线分别固定相应的隐性位的下阈值和上阈值,以及用于去除应答位ack的相应上阈值和下阈值。
[0053]
然后,在随后的特征提取操作120中,非ack显性电压测量值nv
i,k
被存储在针对每个消息标识符idi的相应非ack显性电压测量值nv
i,k
的集合smi中,并且被用于基于非ack显性电压测量值nv
i,k
的集合smi中的数据获取统计特征,从而表征它们所来自的ecu 11的物理行为。
[0054]
因此,在操作110之后,执行操作120从集合smi提取统计特征fi。
[0055]
对于每个消息标识符idi,从针对每个消息标识符idi的在can-高上的和can-低上的非ack显性电压测量值nv
i,k
的电压电平出发,特别地,计算了以下统计特征,如表2中所概
max。
[0063]
如果f
i,l
是在训练或推断阶段测得的通用统计特征——其中l是给定消息索引l的数据集中的特性的索引,例如,f
1,1
是高线10h上的第一消息的最大值m,f
2,2
是高线10h上的第二消息的最小值m,f
1,7
是低线10l上的第一消息的最大值m,并且l=1,...,l,其中在此示例中,l=12,如果高线有六个特性m、m、μ、σ、s、c,并且低线10l具有同样多的特性——并且,如果f
i,l,1
、...、f
i,l,t
是在对整个数据集进行训练期间获得的特征f
i,l
的值的集合,并且如果a
i,l
=min(f
i,l,1
,...,f
i,l,t
)且b
i,l
=max(f
i,l,1
,...,f
i,l,t
),其中t是在对整个数据集进行训练期间获得的特征f
1,1
的值的集合,则归一化设想根据min-max关系计算归一化的值f
*i,l

[0064]f*i,l
=(f
i,l-a
i,l
)/(b
i,l-a
i,l
)
[0065]
因此,在一些实施例中,可在对整个数据集进行训练的期间计算每个统计特征f
i,l
的最小值a
i,l
和最大值b
i,l
,以分别获得上述值a
i,l
和b
i,l
。在推理阶段,值a
i,l
和b
i,l
用于对特征f
i,l
进行归一化以获得归一化的特征f
*i,l

[0066]
在这种类型的归一化中,针对不同的消息标识符idi的整个统计特征f
i,l
的集合在固定间隔内重新调整大小,通常为从0到1。当数据的分布未知并且数据的分布肯定是非高斯分布时,建议采用这种方法。
[0067]
在任何情况下,下文中为了简化表示,归一化的特征也用f
i,l
表示,而非f
*i,l
,无论它们是否已归一化。
[0068]
然后,在步骤130中,在模式识别类型的神经网络的输入处,提供在每个瞬间t
idi
可获得的、关于每个消息标识符idi的统计特征fi;即,这是一个用监督学习运行的神经网络,其中神经网络必须能够将数据分类到多个类别中。监督学习是一种自动学习,其中,向网络提供的是示例输入和相应的期望输出,目的在于学习能够将输入映射到输出的一般规则。
[0069]
从架构的角度来看,步骤130的神经网络如图5中所示,其整体以30表示,并且其在示例中是前馈类型的网络,其中,信息流在单个方向上移动,不存在回路(loop)或循环(cycle)。
[0070]
如图5所示,上述神经网络30包括输入神经元层il,其耦合到隐藏层hl,在其下游提供输出层ol。上述神经网络30不包括属于同一层的神经元之间的连接,而仅包括属于随后层即隐藏层hl的神经元之间的连接。特别地,优选地,所实施的神经网络的特征在于仅一个具有固定数量的神经元的隐藏层。
[0071]
由于在输入处的统计特征fi的数据集,神经网络30必须能够识别出在总线上通信的ecu 11。统计特征fi的数据集包含关于相应消息标识符idi的特征fi的集合。在训练阶段,已经通过接收对应于所有可接收消息标识符idi的统计特征fi的数据集来对神经网络30进行训练,其中索引i的范围为从1到n,n即待分析的消息的数量。神经网络30的输出代表属籍类别(即从1到n的数字),其中n是属于网络(即在总线上通信)的ecu 11的最大数量。
[0072]
图6a中所示的是神经网络30,该神经网络30在步骤130中接收数据集[fi(idi,t
idi
)]——即,该数据集包含在步骤120中针对给定的消息标识符idi并且在给定的瞬间t
idi
所计算的统计特征fi的集合——以执行分类或模式识别的操作140,提供n个预测值y1、...、yn,其表示在输入处的数据集[fi(idi,t
idi
)]关于对应给定ecu 111、...、11n的各个类别的相应属籍得分,即n个介于0和1之间的值,其表示数据集[fi(idi,t
idi
)]所对应的消息
标识符idi的属籍得分,其在示例中包含关于n个类中的每一个的统计特征的十二个值。图6b中表明,神经网络30优选地包括神经网络30a,该神经网络30a具有实施前馈网络的一组层,该前馈网络针对由神经前馈网络30a加权的各个类别产生值层,该前馈网络针对由神经前馈网络30a加权的各个类别产生值而包括置信度值(即概率分)的得分向量y1,...,yn通过随后施用softmax型层30b来获得的。应该注意的是,在推理期间,瞬间t
idi
可能不会形成在输入处的数据集的一部分;即,输入只有[fi(idi)])],如果上述瞬间t
idi
只能在测试阶段使用,以评估对无效消息识别的延迟。
[0073]
给定n个输出y1、...、yn,然后,设想在异常检测步骤150中评估具有成员阈值最得分(例如75%)的输出y
p
是否允许当前的标识符idi(即输入处的标识符idi)作为可接受消息标识符ida,其中成员阈值最高得分由神经网络30针对在输入处的某个数据集[fi(idi,t
idi
)]确定,该输出y
p
对应于某个预测的ecu11
p
,其中p是从1到n的值之一。该评估是通过访问can总线10的dbc(database can)文件进行的,该dbc文件包含关于ecu 11的名称的信息以及它们的可接受消息标识符ida的列表。因而,对于每个ecu 11(从111到11n),所有合法的消息标识符ida是已知的。因此,使用预测的输出y
p
或预测的ecu 11
p
作为输入访问dbc文件,并作为响应,获得了存储于dbc文件中的对于预测的ecu 11
p
的相应可接受消息标识符ida。然后,进行检查,判断由网络30预测的ecu 11
p
是否可以有效地以当前标识符idi作为可接受的合法消息标识符ida。如果由网络30预测的ecu 11
p
可以有效地以当前标识符作为可接受的合法消息标识符ida,则在步骤150中得出的结论为没有异常。该评估步骤150可以用给定逻辑值(例如逻辑0)存储在具有向量类型的变量flg中。这意味着,神经网络30已经识别出该给定消息标识符idi的特征fi有效地属于合法的ecu。相反,如果对应于ecu 11
p
的预测的输出y
p
的可接受消息标识符ida中不包含当前消息标识符idi,则存在异常。这可以用否定逻辑值(例如逻辑1)存储在变量flg中。
[0074]
由于神经网络30可能产生分类错误或错误分类,为了能够从警报(警报由于恶意消息或更加普遍地由于攻击而导致)中识别出错误分类,因此设想了攻击识别程序160。
[0075]
对于每个消息标识符idi,上述程序可以使用以下例如存储在相应的存储寄存器中的向量(即向量变量),其预设长度为m:
[0076]
标志异常向量flg:如上所述,在步骤150中,在这个长度为m的向量中写入逻辑值,例如0和1;逻辑值0表示不存在异常,由于神经网络30已正确预测对应于消息标识符idi的特征fi的属籍类别;相反,逻辑值1表示存在异常,由于网络30做出了错误预测;
[0077]
类别存储向量nn:无论分类正确与否,该向量均会存储由网络30预测的类别y
p
;以及
[0078]
置信向量acc:该向量保存了对类别y
p
的预测的置信度值,即属籍得分,类别y
p
被识别为具有最高置信度值的类别。
[0079]
本文描述的程序可进一步包括时间向量tm:它存储进行预测的当前时间t
pi
。在这方面,t
idi
是消息标识符idi已被接收的瞬间。为了示意异常,如下所述,有必要收集一组消息标识符idi的错误分类,其由此对应于多个瞬间t
idi
。在这种情况下,进行预测的当前时间t
pi
可以定义为最后一个错误分类的标识符的t
idi
。在变体实施例中,当前时间t
pi
可以对应于所描述的方法检测到异常的瞬间,这通常继错误分类的标识符的最后的t
idi
之后。出于该方法的目的,在正常步骤(即推理步骤,而非训练步骤)期间,当前时间t
pi
的值未使用;它具有提供关于攻击发生时间(例如在训练步骤期间)的信息的功能。
[0080]
如图7中所示,过程160设想了步骤162,该步骤162对已被网络30分类的给定消息标识符idi,验证向量flg中连续逻辑1(即指示异常的值)的数量。如果有m个连续的逻辑1,这意味着神经网络30对相应消息标识符idi的特征fi的属籍类别做出了m次错误预测。长度m的选择必须考虑到更小的长度可能导致对实际上没有被入侵的消息标识符发出警报,但它们实际上是神经网络30的错误。相反,更大的长度可能会影响识别攻击的性能,因为在预测损坏特征时可能存在某种延迟。在本文描述的示例中,长度m为20。
[0081]
因此,在步骤162中,如果标志异常向量flg中有m个连续的1,则可以指示被入侵的消息标识符idi。
[0082]
然后,在步骤164中,执行操作以了解攻击来自哪个装置,是内部ecu还是外部装置。在训练阶段,神经网络对在总线内通信的n个ecu 11进行分类。因此,在训练阶段没有外部装置的知识。鉴于神经网络30因其被训练的方式而没有关于外部装置的信息,因此需要理解如何能够将攻击归类为外部攻击。
[0083]
因此,当在步骤162中由于标志异常向量flg中存在m个连续的1而示意攻击时,在步骤164中对存储在置信向量acc中的与已生成攻击标志的预测有关的值进行评估。仅考虑小于75%的准确度,以免将错误分类与明确的预测错误混淆。因此,在步骤164中,如果评估得出对类别的预测准确度低于75%,则在步骤166中保存相应的类别,例如保存在保存类别向量中,用于后续评估以便识别攻击所来自的ecu。否则,在步骤165中丢弃该类别。可能会发生这样的情况,在保存类别向量中,一个相同的类别重复出现。在步骤166中保存的类别是关联于小于75%的准确度的类别。对于攻击所来自的每一类别的准确度的总体计算,平均准确度是例如直接计算的,因为保存的一个相同类别可能重复多次。
[0084]
然后,在步骤169中进行检查以查看在步骤166中存储了多少不同的类别。对于一个相同的损坏消息标识符idi(即,m个1与该消息标识符idi关联),如果神经网络30生成一个相同的属籍类别作为预测输出,则可以断定内部攻击正在进行中(状态ia)。这意味着恶意消息的特征将被归类为属于非法但在网络内部的ecu(即在can总线10上通信的ecu 11)。否则,对于一个相同的消息标识符idi(无论是损坏的还是恶意的),如果神经网络30生成若干属籍类别作为输出,则可以将攻击归类为外部攻击(状态ea)。在这种情况下,具有相同消息标识符idi的特征被解释为属于can总线10内部的若干非法ecu 11。
[0085]
在测试阶段,除了将攻击归类为内部攻击和外部攻击之外,异常检测程序160还可以可选地设想,为每个损坏的消息标识符idi提供攻击的开始时间tb和结束时间tf,以便能够将它们与事先知道的攻击实际发生的真实时间进行比较。攻击开始时间tb是针对消息标识符idi,向量flg中第一次收集到m个连续的1的时间。攻击结束时间tf是最后一次将m个连续的1存储在向量flg中的时间。因此,攻击的持续时间仅仅是攻击结束时间和攻击开始时间之间的时间差。
[0086]
因此,本文描述的网络攻击的防止方法基本上对应于监视在执行异常检测操作(例如150)的网络节点和执行攻击识别操作(例如160)的网络节点之间交换的消息的程序。跟踪恶意消息的来源本身确实是一种防止程序,因为上述异常检测和攻击识别操作的输出本身可能已经被解释为警报或警示。此外,防止方法可以包括例如在步骤169之后的特定警报。对应于所识别的攻击,还可以使用其他形式的反抗攻击的措施,如上所述,这样的措施可以包括取证、隔离、安全补丁操作中的一个或多个。
[0087]
现在描述对神经网络30进行训练的阶段。
[0088]
上述训练阶段基本上对应于步骤130;即,神经网络30接收数据集[idi,fi,t
idi
](即不同值i的数据集),其包含消息标识符idi、针对消息标识符idi通过步骤120计算的在给定瞬间t
idi
的统计特征fi的集合以及所述给定瞬间t
idi
,以执行分类或模式识别的操作140,以提供对应于给定ecu 111、...、11n的属籍类别的预测y
p

[0089]
当然,因为是训练阶段,提供了数据集[fi(idi,t
idi
)]以及针对各个数据集(即ecu 11)的相应期望输出。
[0090]
在训练步骤中,神经网络的任务是将输入数据集fi归至若干类别中,这些类别代表在总线上通信的ecu。理想情况下,目标是获得平衡的数据集,即其中的每个ecu以相同的方式并以相同的周期进行通信的数据集。这样,对于每个ecu,都有或多或少相同大小的特征数据集。实际上,ecu并不总是以相同的周期进行通信,但重要的是,对于每个ecu都应该有显著特征数据集,以便网络本身具有良好的学习能力。在训练阶段,消息的及时排序并不重要,因为不需要实时使用神经网络30。不期望神经网络在消息到达时做出预测。
[0091]
假定dbc文件是事先已知的并且表示一种真实映射(其对每个相关的ecu 11关连合法的消息标识符id的数量),则对于每个ecu 11,可以将对应于每个合法标识符的各种特征压缩在单个矩阵中。以这种方式,在监督学习期间在输入处提供的期望或目标输出精确地表示与其合法消息标识符id的特征相关联的ecu。此外,处理在相同操作条件下进行的采集是有利的。在实施阶段,已经注意到温度的变化能对学习性能有何种影响。为了获得丰富的数据集,可在设计阶段例如将若干具有相似特性(例如温度)的采集组合起来。
[0092]
神经网络30被配置为获得真实输出,其尽可能接近于在输入处提供的期望输出。用数学术语来说,这相当于将预测输出和真实输出之间的误差最小化,优化连接的权重。例如,反向传播算法寻找与梯度相反的方向以将误差最小化。也可以使用二阶最小化技术,这可以实现更快的收敛。后者一般应用于中小型网络。在本文描述的示例中,神经网络30使用的算法是缩放共轭梯度反向传播(scaled-conjugate-gradient back-propagation)算法。这是一种二阶算法,其中在共轭方向上执行误差的最小化。此外,该算法能够实现较低的计算成本,因为它需要与o(kp)成正比的存储器,其中kp是表征网络的权重的数量。
[0093]
每当进行训练时,最好将输入数据集分为三个部分:训练、测试和验证。训练集表示网络能够从中学习的数据的集合。测试集的特点在于训练集中不存在的数据,因为测试集的目的是用网络在训练阶段没有看到过的数据来测试网络的学习能力。最后,验证集的目的是优化超参数,例如神经元的数量或损失函数的类型。
[0094]
在测试阶段,设想在输入处向网络30提供其中存在攻击的数据集。神经网络30必须能够识别被入侵的特征、攻击的性质(是内部的还是外部的)以及攻击的开始时间和结束时间。为此,可以使用已经描述的步骤150和步骤160。
[0095]
例如,在测试阶段,其中存在攻击的所有采集都来自相同的设置:攻击由外部装置进行,并且从某个点开始网络内部的给定消息标识符idi的传输暂停。因为标识符idi的通信从某个瞬间开始暂停,故发生了暂停攻击。由于目的在于使用以先前用未受到攻击的数据集训练的神经网络,因此以与训练阶段使用的方式相同的方式处理带有攻击的采集是有利的。
[0096]
因此,在测试阶段,因为应用了先前描述的电压阈值学习方法(步骤110),也可以
等待固定数量的显性值对每个消息标识符的特征fi进行计算。
[0097]
在测试阶段,时间顺序很重要,因为目标在于在正常操作期间进行实时操作。正如在步骤140中,在每个瞬间,具有大小为[1
×
12](即低线6个,高线6个)的特征向量fi以及对应的标识符idi(消息标识符idi构成can数据包的内在信息)。神经网络30(经离线训练)在每个瞬间做出预测;即,它产生作为输出的类别属籍得分,即n个介于0和1之间的值,其中,n是在总线上进行内部通信的ecu的最大数量。
[0098]
本文描述的解决方案还涉及一种用于防止车辆通信can(控制器局域网络)20中的网络攻击的装置,该can 20包括can总线10和多个节点11,所述多个节点11以信号交换关系关联到所述can总线10并且至少部分地关联到用于控制车辆功能的控制单元,其中,该装置被配置为根据本文描述的方法进行操作。
[0099]
上述防止装置可以包括在ecu 11,例如在微控制器14中,其可以实施神经网络30和软件或硬件模块,其被配置为用于执行根据该方法的操作。然而,防止装置甚至可以是连接在网络20上的附加装置。
[0100]
因此,从上文的描述可以清楚地看出所提出的解决方案的优点。
[0101]
通过异常检测和攻击识别步骤描述的解决方案使神经网络成为一种反应性的工具,因为除了准确识别损坏的特征外,它还能够将攻击的性质归类为内部和外部。
[0102]
基于机器学习概念描述的解决方案是用于对在车载网络(即,例如can)内部的ecu进行分类的有效工具。神经网络的架构适合为小尺寸,以保证移植在嵌入式系统上。从计算的角度来看,神经网络通常非常昂贵。在这种情况下,由于架构简单,并且特征在于只有一个隐藏层,并且没有图像数据集而是具有特征数据集,因此降低了复杂性。
再多了解一些

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

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

相关文献