车用can总线注入攻击异常检测方法及系统
技术领域
1.本发明涉及异常检测技术领域,具体地,涉及一种基于加权多重图的车用can总线注入攻击异常检测方法及系统,同时提供了一种相应的终端及计算机可读存储介质。
背景技术:2.近年来,自动驾驶和智能车辆的研究热度持续上升,研究内容也日臻完善。国内的相关公司如百度、腾讯和华为等,国外如谷歌和特斯拉等,在这些方面都投入了巨大的努力,也取得了优秀的成果。而越来越先进的车辆系统也使得人们的生活在智慧化的道路上迈出了巨大的步伐。
3.随着车辆智能化和驾驶自动化,其中包含的安全问题也逐渐被研究者所重视。从系统的防护、用户的认证、隐私的保护到车联网信息的交互、车辆间通信的安全,都亟待研究者对其的投入和完善。在这些安全问题中,最普遍也是最容易遭受到的安全威胁即是对车内底层通信总线的入侵。当前几乎所有车辆都采用了控制器局域网络(controller area network,简称为can)总线的结构来进行内部智能元件的沟通和协同。但是由于can总线为了传输的高效,通常采用明文进行消息的传递,且期中缺乏必要的认证和安全字段,使得攻击者可以采用无线或是物理直连的方式对can总线进行恶意信息的注入,干扰或是欺骗车内的通信流量,从而达到关停特定服务,干扰信息传递甚至代替车主发出控制指令的目的,对车辆本身和车主人身安全及道路安全都有着巨大的威胁。其攻击方式简单,效果明显,是对车辆底层架构威胁较大的攻击方式之一。
4.传统的can总线入侵异常检测方式,分为基于协议内容的异常检测和基于正负样本训练的检测。在实际应用场景的检测中,基于协议内容的异常检测方法常由于各个厂商所规定的协议内容复杂多变且多半保密而导致成本较高且不具备通用性。而基于正负样本训练的检测方案虽然有效但是在实际应用场景中无法预先采集到大量有效负样本,导致训练数据的缺乏,不利于检测方案的实施。
技术实现要素:5.本发明针对现有技术中存在的上述不足,提供了一种基于加权多重图的车用can总线注入攻击异常检测方法及系统,同时提供了一种相应的终端及计算机可读存储介质,能够在车用can总线运行过程中及时发现并处理攻击者带来的入侵攻击导致的异常流量,从而降低或去除异常带来的风险和危害。
6.根据本发明的一个方面,提供了一种车用can总线注入攻击异常检测方法,包括:
7.获取目标车辆中的can总线消息日志数据;
8.按照固定时间段对所述日志数据进行划分,构建加权多重图结构;
9.对所述加权多重图结构中各个节点的优先级进行计算,获得节点的优先级权重向量,得到待检测数据;
10.获取训练数据集,利用所述训练数据集对变分自动编码器进行训练,获得训练样
本的度量阈值;
11.将所述待检测数据输入至训练后的变分自动编码器获得所述待检测数据的度量值,将所述度量值与所述度量阈值进行比较,得到车用can总线注入攻击异常检测结果。
12.可选地,按照固定时间段对所述日志数据进行划分,包括:
13.定义获取的can总线消息日志数据为一个由时间戳、标识符、数据长度和消息组成的日志序列l,则:
14.l={(t,id,dlc,msg)}
15.其中,t为时间戳,id为标识符,dlc为数据长度,msg为消息;
16.按照自定义的时间间隔δt和初始时间t0,获取所述日志序列l中的时间戳和标识符字段,将每次获取的一个完整日志序列l划分为多个长度固定的字段si:
17.si={(t,id)}
18.其中,t∈(t0+iδt,t0+(i+1)δt),i∈ν,表示时间间隔内的时间戳和标识符的集合。
19.可选地,所述构建加权多重图结构,包括:
20.以所述日志数据中的标识符字段为顶点,相邻标识符顺序为有向边,以时序值为权值,构建加权多重图结构;其中:
21.对于每一个日志数据中划分得到的字段序列s,令所述日志数据中的标识符集合id={idi}为顶点集合v,前后顺序相邻的两个标识符idj与id
j+1
为有向边,以所述有向边在字段序列s中的时序序号orderj作为权值构成边ej,则:
22.ej=(idj,id
j+1
,orderj)
23.令加权有向边集合e={ej}形成边集合,将所述顶点集合v与所述边集合e构成加权多重图结构g
t
,则:
24.g
t
=(v,e)=({idi},{ej})
25.其中,j为由时间戳和标识符构成的字段si中的标识符的序号。
26.可选地,所述对所述加权多重图结构中各个节点的优先级进行计算,获得节点的优先级权重向量,包括:
27.对于已经得到的加权多重图结构g
t
,采用能够对加权有向多重图进行节点优先级权值计算的佩奇排名算法,针对加权有向多重图,以边总数与从该节点出发的有向边权值占总权值占比的乘积作为依据来计算所述加权多重图结构g
t
中各个节点在当前序列中的优先程度;其中:
28.在所述能够对加权有向多重图进行节点优先级权值计算的佩奇排名算法中,节点i在所述加权多重图结构g
t
中的优先级权重wi表示为:
[0029][0030]
其中,n表示结点总数,q为防止孤立结点的存在而设置的修正量阻尼系数,c
jt
表示以节点j为起点的第t条有向边的权值关于权值总和占比与边总数的乘积,c
jt
的具体公式为:
[0031][0032]
其中,表示以节点j为起点的第t条有向边的权值,∑korderk表示权值总
和,n表示边总数。基于所述wi和的表述,采用所述能够对加权有向多重图进行节点优先级权值计算的佩奇排名算法对所述加权多重图结构g
t
中的各个节点进行迭代,计算出每个节点最终的权重序列,构成用于表示图中各个节点的优先级权重的向量x
t
,则:
[0033]
x
t
=(w0,w1,...,wn)
[0034]
其中,wi表示第i个can标识符idi对应的节点在整个加权多重图结构g
t
中的优先级度量。
[0035]
可选地,所述获取训练数据集,利用所述训练数据集对变分自动编码器进行训练,获得训练样本的度量阈值,包括:
[0036]
获取同一型号车辆的正常样本作为训练样本构建训练数据集,并计算所述训练样本的优先级权重向量;
[0037]
将所述训练样本的优先级权重向量输入到变分自动编码器中,利用变分自动编码器的特性使其学习正样本的隐藏分布,并通过生成的编码器对输入向量x
t
进行编码到隐藏层,再通过生成的解码器重构得到输出向量计算所述输出向量与输入向量x
t
之间表示前后变化程度的重构误差losst:
[0038][0039]
其中,与分别表示输入向量x
t
与输出向量的均值,1e-10为安全因子,用于防止对数函数内部为0的情况发生;通过获取训练样本的重构误差loss
t
,得到重构误差区间的上界tu和下界t
l
并圈定可调参数误差范围θ作为阈值的偏差量,定为训练样本的度量阈值t为:
[0040]
t=(t
l
,tu,θ)
[0041]
当经过编码器和解码器得到的输出向量与输入向量之间的重构误差处于所述度量阈值t所规定的范围以内时,确认为车用can总线无异常注入情况,反之,则确认为车用can总线遭受了注入攻击产生了异常。
[0042]
根据本发明的另一个方面,提供了一种车用can总线注入攻击异常检测系统,包括:
[0043]
日志数据获取模块,该模块用于获取目标车辆中的can总线消息日志数据;
[0044]
加权多重图构建模块,该模块用于按照固定时间段对所述日志数据进行划分,构建加权多重图结构;
[0045]
优先级权重向量获取模块,该模块用于对所述加权多重图结构中各个节点的优先级进行计算,获得节点的优先级权重向量,得到待检测数据;
[0046]
度量阈值获取模块,该模块利用获取的训练数据集对变分自动编码器进行训练,获得训练样本的度量阈值;
[0047]
注入攻击异常检测模块,该模块用于将待检测数据输入至训练后的变分自动编码器获得所述待检测数据的度量值,通过与所述度量阈值进行比较,得到车用can总线注入攻击异常检测结果。
[0048]
可选地,所述日志数据获取模块采用can总线分析仪采集目标车辆中的can总线消息日志数据。
[0049]
根据本发明的第三个方面,提供了一种终端,包括存储器、处理器及存储在存储器
上并可在处理器上运行的计算机程序,所述处理器执行所述程序时可用于执行上述任一项所述的方法,或,运行上述任一项所述的系统。
[0050]
根据本发明的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可用于执行上述任一项所述的方法,或,运行上述任一项所述的系统。
[0051]
由于采用了上述技术方案,本发明与现有技术相比,具有如下至少一项的有益效果:
[0052]
本发明采用加权图结构,可以有效记录节点之间的时间顺序情况,从而防止图形成环路后无法辨析顺序导致错分类的情况发生。通过给图中的有向边进行加权的行为,实现了较细粒度的恶意样本检出,从而保证can总线异常检测的可靠性。
[0053]
本发明采用多重图结构,可以有效解决相同起点和终点的有向边多次出现的情况,从而防止简单图中多次重现的相同起点和终点的有向边多次出现但只被记录一次的情况,从而防止简单图中恶意消息被隐藏在正常消息中无法辨认的情况发生。通过将传统简单图强化为多重图的行为,实现了更细粒度的恶意样本检出,从而保证can总线异常检测的可靠性。
[0054]
本发明应用在can总线异常检测场景中,考虑的方案更加全面,不仅针对注入无意义阻塞信息的分布式拒绝服务攻击、劫持电子控制元件发送错误信息的劫持攻击和注入重复字段的重放攻击等几类典型的攻击机制可以在日志序列中检测出异常信息更提出了基于变分自动编码器的重构误差比较检测方案,扩大了检测面,使得本发明对于出现的新型注入攻击也可以进行统一的检测,具有很好的泛用性。
[0055]
本发明具有低能耗,高有效性的优势。增加了对于部署开销的考量,为了降低检测和判断的消耗,本发明提取预先训练模型(变分自动编码器)确定阈值的方法,针对同一型号的车辆,提前进行利用大量正常样本进行编码器和解码器的训练以及阈值的确定,提前部署在该型号的车辆中,对行车过程中产生的日志样本进行全面高效的检查,提高了检出恶意样本的可能性,同时也降低了对于所有流量检查的成本,具有高可靠、低能耗的特点,保证了本发明的优越性。
附图说明
[0056]
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0057]
图1为本发明一实施例中车用can总线注入攻击异常检测方法的工作流程图。
[0058]
图2为本发明一优选实施例中车用can总线注入攻击异常检测方法的工作示意图。
[0059]
图3为本发明一实施例中车用can总线注入攻击异常检测系统的组成模块示意图。
具体实施方式
[0060]
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
[0061]
本发明一实施例提供了一种车用can总线注入攻击异常检测方法,该方法从can总线中提取出消息日志数据,接着将每个时间间隔内的日志,以标识符字段为顶点,相邻标识符顺序为有向边,构成加权多重图结构,并通过改进的佩奇排名算法得到该加权多重图结构的优先级度量值生成优先级权重向量,将生成的优先级权重向量输入变分自动编码器中,计算输出向量与输入向量的重构误差判断是否超出阈值以判断用户是否正在遭受注入攻击。
[0062]
如图1所示,该实施例提供的车用can总线注入攻击异常检测方法,可以包括如下步骤:
[0063]
s100,获取目标车辆中的can总线消息日志数据;
[0064]
s200,按照固定时间段对日志数据进行划分,构建加权多重图结构;
[0065]
s300,对加权多重图结构中各个节点的优先级进行计算,获得节点的优先级权重向量,得到待检测数据;
[0066]
s400,获取训练数据集,利用训练数据集对变分自动编码器进行训练,获得训练样本的度量阈值;
[0067]
s500,将待检测数据输入至训练后的变分自动编码器获得待检测数据的度量值,将度量值与度量阈值进行比较,得到车用can总线注入攻击异常检测结果。
[0068]
在s100的一优选实施例中,通过can分析仪从车用can总线上提取流量日志并定义为l,具体定义为:
[0069]
l={(t,id,dlc,msg)}
[0070]
can总线流量日志l可以基本表示为由时间戳t,标识符id,数据长度dlc和消息msg组成的日志序列。按照一个自定义的时间间隔δt和初始时间t0,取其中的时间戳和标识符字段,将每次获取的一个完整日志序列l划分成为多个长度固定的字段si:
[0071]
si={(t,id)}
[0072]
其中,t∈(t0+iδt,t0+(i+1)δt),i∈n,表示时间间隔内的时间戳t和标识符id的集合。
[0073]
在s200的一优选实施例中,通过所得的流量日志进行加权多重图的构建,具体包括:
[0074]
对于每一个日志中划分得到的字段序列s,令日志中的标识符集合id={idi}为顶点集合v,前后顺序相邻的两个标识符idj与id
j+1
为有向边,以该有向边在序列中的时序序号orderj作为权值构成边ej:
[0075]ej
=(idj,id
j+1
,orderj)
[0076]
令加权有向边集合e={ej}形成边集合,将顶点集合v与边集合e构成加权多重图g
t
:
[0077]gt
=(v,e)=({idi},{ej})
[0078]
其中,j为由时间戳和标识符构成的字段si中的标识符id的序号。
[0079]
在s300的一优选实施例中,对于己知的加权多重图g
t
,利用改进的佩奇排名算法进行节点赋权的具体步骤如下:
[0080]
对于已经得到的加权多重图g
t
,采用改进的可以对加权有向多重图进行节点优先级权值计算的佩奇排名算法,针对加权有向多重图,以边总数与从该节点出发的有向边权
值占总权值占比的乘积作为依据来计算加权多重图g
t
中各个节点在当前序列中的优先程度。其中:
[0081]
在改进的佩奇排名算法中,节点i在图中的优先级权重wi具体可以表示为:
[0082]
其中,n表示结点总数,q为防止孤立节点的存在而设置的修正量阻尼系数,表示以节点j为起点的第t条有向边的权值关于权值总和占比与边总数的乘积,具体公式为:
[0083][0084]
其中,表示以节点j为起点的第t条有向边的权值,∑korderk表示权值总和,n表示边总数。基于所述wi和的表述,采用所述能够对加权有向多重图进行节点优先级权值计算的佩奇排名算法对所述加权多重图结构g
t
中的各个节点进行迭代,计算出每个节点最终的权重序列,构成用于表示图中各个节点的优先级权重的向量x
t
,则:
[0085]
x
t
=(w0,w1,...,wn)
[0086]
其中,wi表示第i个can标识符idi对应的节点在整个图中的优先级度量。
[0087]
佩奇排名算法在s400的一优选实施例中,利用训练样本输入变分自动编码器中进行阈值计算,其具体步骤如下:
[0088]
获取同一型号车辆的正常样本作为训练样本构建训练数据集,并计算训练样本的优先级权重向量;该计算优先级权重向量的方法与前面的计算方法可采用同一种方法,此处不再赘述;
[0089]
利用训练样本得到的优先级权重向量x
t
,输入到变分自动编码器中,利用变分自动编码器的特性使模型学习正样本的隐藏分布,并通过生成的编码器和解码器分别对输入向量x
t
进行编码到隐藏层,再重构得到新的输出向量计算输出向量与输入向量x
t
间表示前后变化程度的重构误差losst:
[0090][0091]
其中,与分别表示输入向量x
t
与输出向量的均值,1e-10为安全因子,用于防止对数函数内部为0的情况发生。通过收集训练岩本的loss
t
,得到重构误差区间的上界tu和下界t
l
并圈定可调参数误差范围θ作为阈值的偏差量,定为阈值t:
[0092]
t=(t1,tu,θ)
[0093]
所有经过编码和解码得到的输出向量与输入向量的重构误差在阈值所规定的范围内(包括端值)则规定为无异常注入情况,反之若超出所规定的阈值范围则判定为遭受了注入攻击产生了异常。
[0094]
在s500的一优选实施例中,在取得阈值后,对待检测数据进行线上检测,其具体步骤如下:
[0095]
获取与目标车辆为同一型号车辆的正常样本作为训练样本预先训练得到编码器、解码器和阈值后,在检测阶段按照固定时间间隔实时对目标车辆can总线流量采样得到待检测日志序列l
t
,构成对应的多重图g
t
,接着通用改进的佩奇排名算法获得各个节点的权值对应的向量x
t
,在通过变分自动编码器进行自动化编码和解码后获得重构输出向量,接着计算重构误差loss
t
,判断其是否在规定的阈值范围内,若在范围内,则认为未遭受注入
攻击,反之则认为在这段时间内遭受了注入攻击。
[0096]
在本发明部分实施例中:
[0097]
针对车用can总线的入侵实时检测场景,定义了流量日志数据构成的加权多重图结构,这一结构可以聚合日志中的关键信息,将标识符进行链接,将日志中标识符的时间顺序和逻辑顺序进行统一管理和收集,通过对整体关键信息的对比,可以实现对恶意行为的检查。
[0098]
在检测阶段,使用改进的佩奇排名算法给节点赋值生成权值向量,再利用变分自动编码器来进行重构前后的权值向量误差比对来达成恶意行为的检测。
[0099]
通过针对某一车型已经提前训练得到的阈值、编码器和解码器来部署在该型号的车辆上,以此降低时间开销以及检查的消耗。采用了基于加权多重图和变分自动编码器的策略,保证了所提出检测方案在车联网场景下的可用性和可行性。
[0100]
阈值是通过训练数据使用如上方法进行多重图构建及向量生成后预先训练使用变分自动编码器获得,表示为重构误差的最后将待检测数据输入变分自动编码器获得度量值,包括上界tu、下界t
l
和可调参数误差范围θ作为阈值的偏差量。对于任意给定日志划分得到的固定时间切片,整合后以同样方法进行重构误差分析,通过与阈值比较确定是否遭到注入攻击。若是,则弹出警告并记录出现异常的具体时间段和日志片段,反之则不作警告。
[0101]
下面对本发明上述实施例提供的技术方案进一步详细说明。
[0102]
本发明上述实施例提供的是一种基于加权多重图的车用can总线注入攻击异常检测方法,可以在车联网场景中部署使用,其工作示意图如图2所示,包括如下步骤:
[0103]
步骤一,数据采集和预处理,车辆各个电子控制元件在依靠can总线进行信息交互时,通过分析仪从can总线中提取can总线消息日志,从日志中预处理提取出时间戳字段和标识符字段,并按照固定时间间隔划分,划分后得到的每个序列称为标识符序列。
[0104]
步骤二,加权多重图构建,使用标识符序列,按照前后关系和时间顺序构建加权多重图,将提取出来的数据转化成为图结构上传至模型内部进行重构误差的计算。
[0105]
步骤三,模型训练和阈值划分,将收集到的图结构输入变分自动编码器中进行训练,得到编码器和解码器以及确定的阈值范围,部署到目标车型上,可以实现对各种不同的恶意注入攻击的快速检测。
[0106]
步骤四,线上攻击检测,在目标车辆运行时,实时提取can总线中的流量日志进行步骤一、二的过程,利用已经训练好的编码器、解码器和阈值进行重构误差的计算和判定,实现高效率、高可靠、低消耗的检测过程。
[0107]
步骤一中,通过can分析仪从车用can总线上提取的流量日志定义为l,具体定义为:
[0108]
l={(t,id,dlc,msg)}
[0109]
can总线流量日志l可以基本表示为由时间戳t,标识符id,数据长度dlc和消息msg组成的日志序列。按照一个自定义的时间间隔δt和初始时间t0,取其中的时间戳和标识符字段,将l划分成为长度固定的字段si:
[0110]
si={(t,id)}
[0111]
其中t∈(t0+iδt,t0+(i+1)δt),i∈n,表示时间间隔内的时间戳和标识符id的集合。
[0112]
步骤二中,通过所得的流量日志进行多重图的构建:
[0113]
对于每一个日志中划分得到的序列s,令日志中的标识符集合id={idi}为顶点集合v,前后顺序相邻的两个标识符idj与id
j+1
为有向边,以该边在序列中的时序序号orderj作为权值构成边ej:
[0114]ej
=(idj,id
j+1
,orderj)
[0115]
令加权有向边集合e={ej}形成边集合,令顶点集合v与边集合e构成加权多重图g
t
:
[0116]gt
=(v,e)=({idi},{ej})
[0117]
其中j为由时间戳和标识符构成的序列si中的标识符id的序号。
[0118]
步骤三中,对于已经得到的加权多重图g
t
,采用改进的可以对加权有向多重图进行节点优先级权值计算的佩奇排名算法,针对加权有向多重图图,以边总数与从该节点出发的有向边权值占总权值占比的乘积作为依据来计算加权多重图g
t
中各个节点在当前序列中的优先程度。其中:
[0119]
在改进的佩奇排名算法中,节点i在图中的优先级权重wi具体可以表示为:
[0120][0121]
其中,n表示结点总数,q为防止孤立节点的存在而设置的修正量阻尼系数,表示以节点j为起点的第t条有向边的权值关于权值总和占比与边总数的乘积,具体公式为:
[0122][0123]
其中,表示以节点j为起点的第t条有向边的权值,∑korderk表示权值总和,n表示边总数。基于所述wi和的表述,采用所述能够对加权有向多重图进行节点优先级权值计算的佩奇排名算法对所述加权多重图结构g
t
中的各个节点进行迭代,计算出每个节点最终的权重序列,构成用于表示图中各个节点的优先级权重的向量x
t
,则:
[0124]
x
t
=(w0,w1,...,wn)
[0125]
其中,wi表示第i个can标识符idi对应的节点在整个图中的优先级度量。
[0126]
步骤四中,利用训练样本输入变分自动编码器中进行阈值计算,其具体步骤如下:
[0127]
利用训练样本得到的优先级权重向量x
t
,输入到变分自动编码器中,使模型学习正样本的隐藏分布,通过生成的编码器和解码器分别对输入向量x
t
进行编码到隐藏层,再重构得到新的输出向量计算输出向量与输入向量x
t
间表示前后变化程度的重构误差loss
t
:
[0128][0129]
其中与分别表示输入向量x
t
与输出向量的均值,1e-10为安全因子,用于防止对数函数内部为0的情况发生。通过收集训练岩本的loss
t
,得到重构误差区间的上界tu和下界t
l
并圈定可调参数误差范围θ作为阈值的偏差量,定为阈值t:
[0130]
t=(t
l
,tu,θ)
[0131]
所有经过编码和解码得到的输出向量与对应的输入向量计算得到的重构误差在阈值所规定的范围内则规定为无异常注入情况,反之若超出所规定的阈值范围则判定为遭受了注入攻击产生了异常。
[0132]
步骤五中,取得阈值后,进行线上检测,其具体步骤如下:
[0133]
获取与目标车辆同一型号车辆的正常样本预先训练得到编码器、解码器和阈值后,在检测阶段按照固定时间间隔实时对目标车辆的can总线流量采样得到待检测日志序列l
t
,构成对应的多重图g
t
,接着通用改进的佩奇排名算法获得各个节点的权值对应的向量x
t
,在通过变分自动编码器进行自动化编码和解码后获得重构输出向量接着计算重构误差loss
t
,判断其是否在规定的阈值范围内,若在范围内,则认为未遭受注入攻击,反而则认为在这段时间内遭受了注入攻击。
[0134]
本发明一实施例提供了一种车用can总线注入攻击异常检测系统。
[0135]
如图3所示,该实施例提供的车用can总线注入攻击异常检测系统,可以包括如下模块:
[0136]
日志数据获取模块,该模块用于获取目标车辆中的can总线消息日志数据;
[0137]
加权多重图构建模块,该模块用于按照固定时间段对日志数据进行划分,构建加权多重图结构;
[0138]
优先级权重向量获取模块,该模块用于对加权多重图结构中各个节点的优先级进行计算,获得节点的优先级权重向量,得到待检测数据;
[0139]
度量阈值获取模块,该模块利用获取的训练数据集对变分自动编码器进行训练,获得训练样本的度量阈值;
[0140]
注入攻击异常检测模块,该模块用于将待检测数据输入至训练后的变分自动编码器获得待检测数据的度量值,通过与度量阈值进行比较,得到车用can总线注入攻击异常检测结果。
[0141]
在一优选实施例中,日志数据获取模块采用can总线分析仪采集目标车辆中的can总线消息日志数据。
[0142]
需要说明的是,本发明提供的方法中的步骤,可以利用系统中对应的模块、装置、单元等予以实现,本领域技术人员可以参照方法的技术方案实现系统的组成,即,方法中的实施例可理解为构建系统的优选例,在此不予赘述。
[0143]
根据本发明的第三个方面,提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时可用于执行上述任一项的方法,或,运行上述任一项的系统。
[0144]
可选地,存储器,用于存储程序;存储器,可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:ram),如静态随机存取存储器(英文:static random-access memory,缩写:sram),双倍数据率同步动态随机存取存储器(英文:double data rate synchronous dynamic random access memory,缩写:ddr sdram)等;存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory)。存储器用于存储计算机程序(如实现上述方法的应用程序、功能模块等)、计算机指令等,上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。
[0145]
上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。
[0146]
处理器,用于执行存储器存储的计算机程序,以实现上述实施例涉及的方法中的
各个步骤。具体可以参见前面方法实施例中的相关描述。
[0147]
处理器和存储器可以是独立结构,也可以是集成在一起的集成结构。当处理器和存储器是独立结构时,存储器、处理器可以通过总线耦合连接。
[0148]
根据本发明的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可用于执行上述任一项的方法,或,运行上述任一项的系统。
[0149]
本发明上述实施例提供的车用can总线注入攻击异常检测方法及系统,可以有效解决车用can总线注入攻击的异常检测中总线协议不同和实际场景缺乏负样本数据不对等等情况。其主要原理是包含恶意样本的日志与正常日志在标识符序列结构上的差异:一些包含恶意样本的日志与正常日志内容差异较大,注入攻击会让序列产生不符合规律的新的标识符,使得整体结构产生变化。目前,一些基于图的检测方案已经被提出,但仍存在着众多的缺陷与不足,难以实现现实场景下对于车用can总线注入攻击异常检测的需要。部分检测方法使用图的相似性进行异常检测,但是由于图结构的简单性,对攻击的泛用性不高,无法检测出所有的注入攻击,部分检测方案使用手动确定阈值等方法保证检测的有效性,但不具备现实场景中的通用性。部分方法依靠机器学习的方法对恶意节点进行检测,但额外的开销较大且同时也不具备通用性。因此,这些方案都难以部署在许多实际场景中。而本发明上述实施例提供的车用can总线注入攻击异常检测方法及系统,有效解决了上述问题,并具有如下优点:泛用性强:对于各种注入攻击行为都能起到比较好的检测效果;低能耗:带来的额外计算开销小;高灵敏度:对于实际场景中日志流量产生的异常变化有较短的反应时间。因此,本发明上述实施例提供的车用can总线注入攻击异常检测方法及系统具有很大的潜力。
[0150]
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0151]
本发明上述实施例中未尽事宜均为本领域公知技术。
[0152]
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
技术特征:1.一种车用can总线注入攻击异常检测方法,其特征在于,包括:获取目标车辆中的can总线消息日志数据;按照固定时间段对所述日志数据进行划分,构建加权多重图结构;对所述加权多重图结构中各个节点的优先级进行计算,获得节点的优先级权重向量,得到待检测数据;获取训练数据集,利用所述训练数据集对变分自动编码器进行训练,获得训练样本的度量阈值;将所述待检测数据输入至训练后的变分自动编码器获得所述待检测数据的度量值,将所述度量值与所述度量阈值进行比较,得到车用can总线注入攻击异常检测结果。2.根据权利要求1所述的车用can总线注入攻击异常检测方法,其特征在于,按照固定时间段对所述日志数据进行划分,包括:定义获取的can总线消息日志数据为一个由时间戳、标识符、数据长度和消息组成的日志序列l,则:l={(t,id,dlc,msg)}其中,t为时间戳,id为标识符,dlc为数据长度,msg为消息;按照自定义的时间间隔δt和初始时间t0,获取所述日志序列l中的时间戳和标识符字段,将每次获取的一个完整日志序列l划分为多个长度固定的字段s
i
:s
i
={(t,id)}其中,t∈(t0+iδt,t0+(i+1)δt),i∈ν,表示时间间隔内的时间戳和标识符的集合。3.根据权利要求1所述的车用can总线注入攻击异常检测方法,其特征在于,所述构建加权多重图结构,包括:以所述日志数据中的标识符字段为顶点,相邻标识符顺序为有向边,以时序值为权值,构建加权多重图结构;其中:对于每一个日志数据中划分得到的字段序列s,令所述日志数据中的标识符集合id={id
i
}为顶点集合v,前后顺序相邻的两个标识符id
j
与id
j+1
为有向边,以所述有向边在字段序列s中的时序序号order
j
作为权值构成边e
j
,则:e
j
=(id
j
,id
j+1
,order
j
)令加权有向边集合e={e
j
}形成边集合,将所述顶点集合v与所述边集合e构成加权多重图结构g
t
,则:g
t
=(v,e)=({id
i
},{e
j
})其中,j为由时间戳和标识符构成的字段s
i
中的标识符的序号。4.根据权利要求1所述的车用can总线注入攻击异常检测方法,其特征在于,所述对所述加权多重图结构中各个节点的优先级进行计算,获得节点的优先级权重向量,包括:对于已经得到的加权多重图结构g
t
,采用能够对加权有向多重图进行节点优先级权值计算的佩奇排名算法,针对加权有向多重图,以边总数与从该节点出发的有向边权值占总权值占比的乘积作为依据来计算所述加权多重图结构g
t
中各个节点在当前序列中的优先程度;其中:在所述能够对加权有向多重图进行节点优先级权值计算的佩奇排名算法中,节点i在所述加权多重图结构g
t
中的优先级权重w
i
表示为:
其中,n表示结点总数,q为防止孤立结点的存在而设置的修正量阻尼系数,c
jt
表示以节点j为起点的第t条有向边的权值关于权值总和占比与边总数的乘积,c
jt
为:其中,表示以节点j为起点的第t条有向边的权值,∑
k
order
k
表示权值总和,n表示边总数;基于所述w
i
和的表述,采用所述能够对加权有向多重图进行节点优先级权值计算的佩奇排名算法对所述加权多重图结构g
t
中的各个节点进行迭代,计算出每个节点最终的权重序列,构成用于表示图中各个节点的优先级权重的向量x
t
,则:x
t
=(w0,w1,
…
,w
n
)其中,w
i
表示第i个can标识符id
i
对应的节点在整个加权多重图结构g
t
中的优先级度量。5.根据权利要求1所述的车用can总线注入攻击异常检测方法,其特征在于,所述获取训练数据集,利用所述训练数据集对变分自动编码器进行训练,获得训练样本的度量阈值,包括:获取同一型号车辆的正常样本作为训练样本构建训练数据集,并计算所述训练样本的优先级权重向量;将所述训练样本的优先级权重向量输入到变分自动编码器中,利用变分自动编码器的特性使其学习正样本的隐藏分布,并通过生成的编码器对输入向量x
t
进行编码到隐藏层,再通过生成的解码器重构得到输出向量计算所述输出向量与输入向量x
t
之间表示前后变化程度的重构误差loss
t
:其中,与分别表示输入向量x
t
与输出向量的均值,1e-10为安全因子;通过获取训练样本的重构误差loss
t
,得到重构误差区间的上界t
u
和下界t
l
并圈定可调参数误差范围θ作为阈值的偏差量,定为训练样本的度量阈值t为:t=(t
l
,t
u
,θ)当经过编码器和解码器得到的输出向量与输入向量之间的重构误差处于所述度量阈值t所规定的范围以内时,确认为车用can总线无异常注入情况,反之,则确认为车用can总线遭受了注入攻击产生了异常。6.一种车用can总线注入攻击异常检测系统,其特征在于,包括:日志数据获取模块,该模块用于获取目标车辆中的can总线消息日志数据;加权多重图构建模块,该模块用于按照固定时间段对所述日志数据进行划分,构建加权多重图结构;优先级权重向量获取模块,该模块用于对所述加权多重图结构中各个节点的优先级进行计算,获得节点的优先级权重向量,得到待检测数据;度量阈值获取模块,该模块利用获取的训练数据集对变分自动编码器进行训练,获得训练样本的度量阈值;
注入攻击异常检测模块,该模块用于将待检测数据输入至训练后的变分自动编码器获得所述待检测数据的度量值,通过与所述度量阈值进行比较,得到车用can总线注入攻击异常检测结果。7.根据权利要求6所述的车用can总线注入攻击异常检测系统,其特征在于,所述日志数据获取模块采用can总线分析仪采集目标车辆中的can总线消息日志数据。8.一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时可用于执行权利要求1-5中任一项所述的方法,或,运行权利要求6-7中任一项所述的系统。9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时可用于执行权利要求1-5中任一项所述的方法,或,运行权利要求6-7中任一项所述的系统。
技术总结本发明提供了一种车用CAN总线注入攻击异常检测方法及系统,获取目标车辆中的CAN总线消息日志数据,按照固定时间段划分后,以日志中标识符字段为顶点,相邻标识符顺序为有向边,以时序值为权值,构成加权多重图结构,然后利用改进的佩奇排名算法对加权多重图的每个节点的优先级进行计算,形成优先级权重向量,接着利用预训练的变分自动编码器获得度量阈值,最后将待检测数据输入变分自动编码器获得度量值,通过与阈值比较确定是否遭到注入攻击出现了异常。本发明在可以接受的时间开销范围内,准确检测出各种注入攻击下的CAN总线异常情况,消除了其对于CAN总线通信安全的影响,从而保证车联网底层流量的安全可靠。而保证车联网底层流量的安全可靠。而保证车联网底层流量的安全可靠。
技术研发人员:朱浩瑾 胡浩天 孟岩
受保护的技术使用者:上海交通大学
技术研发日:2022.07.12
技术公布日:2022/11/1