一种车辆报文数据模型的评估方法及装置与流程

文档序号:16198667发布日期:2018-12-08 06:23阅读:324来源:国知局
一种车辆报文数据模型的评估方法及装置与流程

本发明涉及汽车领域,具体地,涉及一种车辆报文数据模型的评估方法及装置。

背景技术

随着移动互联、大数据及云计算等技术的发展,汽车产业向智能化、网联化发展的速度快速增加。而伴随汽车智能化程度的不断提高,汽车网络安全问题也逐渐显现。近些年汽车黑客攻击事件频发,造成的汽车召回事件给车企带来了巨大经济损失;个人隐私泄露、汽车被控后存在的威胁等也给汽车用户带来了严重的人身安全问题。

控制器局域网络(controllerareanetwork,can)协议是一种现在汽车广泛使用的串行通信协议。电子控制单元(electroniccontrolunit,ecu)之间的信息以数据帧的形式通过can总线来实现传输。一个ecu向can网络广播带有特定id的数据报文,同在can上连接的ecu根据id来选择是否接受并响应信息,据此来控制汽车执行相应动作。目前的can总线普遍缺少安全,有些黑客通过物理接触汽车通信通路,向can下发异常报文,可以迅速而方便的实现对车辆的监听和控制。

传统的can网络保护方法主要包括基于数据加密和网关认证、基于can消息时间间隔分析、基于概率模型的汽车安全架构分析等方法。对can报文数据的学习都需要通过逆向破解来分析。然而实际上,每一款车都有各自不同的报文数据标准,因此逆向分析数据带来了大量工作量。



技术实现要素:

有鉴于此,本发明的目的在于提供一种车辆报文数据模型的评估方法及装置,已解决上述提及的至少一个问题。

根据本发明的一个方面,提供了一种车辆报文数据模型的评估方法,该方法包括:采集预定时长的车辆报文数据,并将车辆报文数据分成不同的数据集;对于每个数据集中的数据,将一部分数据设置为训练数据,将一部分数据设置为测试数据,将剩余数据设置为验证数据,其中,测试数据中的部分数据被修改为模拟异常数据;将训练数据输入长短时记忆(longshort-termmemory,简称为lstm)网络以建立报文预测模型;根据报文预测模型对测试数据进行测试,以获得模拟异常数据的检测率和误报率;以及根据检测率和误报率来评估报文预测模型。

根据本发明的另一个方面,提供了一种车辆报文数据模型的评估装置,该装置包括:采集单元,用于采集预定时长的车辆报文数据,并将车辆报文数据分成不同的数据集;数据设置单元,用于对于每个数据集中的数据,将一部分数据设置为训练数据,将一部分数据设置为测试数据,将剩余数据设置为验证数据,其中,测试数据中的部分数据被修改为模拟异常数据;模型建立单元,用于将训练数据输入长短时记忆网络以建立报文预测模型;测试单元,用于根据报文预测模型对测试数据进行测试,以获得模拟异常数据的检测率和误报率;以及评估单元,用于根据检测率和误报率来评估报文预测模型。

根据本发明的还有一个方面,提供了计算机可读存储介质,该计算机可读存储介质存储有执行上述方法的计算机程序。

通过根据采集的车辆报文数据,基于长短时记忆网络建立报文预测模型,并根据该模型测试车辆报文数据,以获得车辆报文数据中的异常数据检测率和误报率,相比于现有技术中的逆向分析车辆报文数据来检测异常数据的方法,本发明由于无需逆向分析环节,从而减小了车辆异常数据检测的工作量。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1是根据本发明实施例的车辆报文数据模型评估方法的流程图;

图2是根据本发明实施例的基于can网络协议的车辆报文数据模型评估方法的流程图;

图3是根据本发明实施例的长短时记忆网络单元结构示意图;

图4是根据本发明实施例的基于长短时记忆网络的异常检测示意图;

图5是根据本发明实施例的车辆报文数据模型评估装置的结构框图;

图6是根据本发明实施例的车辆报文数据模型评估装置的具体结构框图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。

图1是根据本发明实施例的车辆报文数据模型评估方法的流程图,如图1所示,该方法包括:

步骤101,采集预定时长的车辆报文数据,并将车辆报文数据分成不同的数据集;

步骤102,对于每个数据集中的数据,将一部分数据设置为训练数据,将一部分数据设置为测试数据,将剩余数据设置为验证数据,其中,测试数据中的部分数据被修改为模拟异常数据;

步骤103,将训练数据输入长短时记忆网络(lstm)以建立报文预测模型;

步骤104,根据报文预测模型对测试数据进行测试,以获得模拟异常数据的检测率和误报率;以及

步骤105,根据检测率和误报率来评估报文预测模型。

通过根据采集的车辆报文数据,基于长短时记忆网络建立报文预测模型,并根据该模型测试车辆报文数据,以获得车辆报文数据中的异常数据检测率和误报率,相比于现有技术中的逆向分析车辆报文数据来检测异常数据的方法,本发明实施例由于无需逆向分析环节,从而减小了车辆异常数据检测的工作量。

具体地,步骤101中将车辆报文数据分成不同的数据集包括:根据预定规则对车辆报文数据进行删选;根据id将删选后的车辆报文数据分成不同的数据集。这里的预定规则可以是根据数据流的变化与否,来确定是否删除相应的数据。

在步骤104中,根据报文预测模型对测试数据进行测试,以获得模拟异常数据的检测率和误报率具体包括:根据报文预测模型对测试数据中的模拟异常数据进行测试;根据测试结果绘制roc(receiveroperatingcharacteristic,受试者工作特征)曲线并计算auc(areaunderthecurve,曲线下面积);根据roc曲线和auc获得模拟异常数据的检测率和误报率。

之后,在步骤105中,根据检测率和误报率设置模拟异常数据的异常阈值;并根据异常阈值来评估报文预测模型。

本文中的lstm网络可以有效解决循环神经网络的梯度消失问题,实现记忆长距离的数据信息,由于采用can报文原始数据作为输入,因而无需理解报文信息的内容,从而省去传统can异常检测中的逆向破解环节。

图2是根据本发明实施例的基于can网络协议的车辆报文数据模型评估方法的流程图,该方法包括以下步骤:

s1:采集汽车can总线报文数据;

s2:观察id中报文数据流的变化,删除无变化或变化不明显的id,剩余数据根据id分成不同数据集;

s3:单独分割每个id数据集中数据为训练集、测试集与验证集;

s4:从测试集中摘取部分数据修改为模拟异常数据;

s5:建立基于lstm网络的报文预测模型:将训练集中can报文数据作为网络输入,因报文数据是高维的二进制向量,通过线性嵌入层将二进制输入投影到实值状态空间中,输入序列{x1,x2,x3,……xn,},其中xi,是一个64位的向量;每一时间步的训练中,网络以报文数据xi为输入,以随后的报文序列yi=xi+1作为训练目标;通过试验采取不同的网络层数、隐藏单元、激活函数以及其他参数来测试测试集数据,选择最佳的参数;

s6:应用逻辑斯特回归的损失函数作为模型评价的损失函数;

s7:通过roc曲线与auc计算评估每种异常行为的检测率和误报率;

s8:为每个id中数据单独训练一个网络,并进行测试和评估;

s9:设置评价阈值,评估检测方法。

其中,在s1中采集数据包括:通过车载诊断系统(on-boarddiagnostic,简称为obd)接口与汽车的can总线相连,连接报文收发器,可以获取到can总线上广播的数据包。运用vehiclespy软件可以实时观察并采集数据包。

在s3中,一个数据集中依次截取其中70%数据量为作为训练集,10%作为验证集,剩余20%作为测试集。

在s4中,由于实际应用中很难得到大量的实际攻击数据,因此需要通过修改获取到的报文数据来模拟异常情况;同时由于本方法中所用数据信息不涉及时间信息,因此只通过修改数据的序列信息实现模拟,并且所应用的模拟数据包含实际物理情景。将上述测试集分成均等的五份,一份为正常数据,其余四份分别修改为以下攻击形式。本发明实施例模拟的异常情况包括:

1、交织子序列:通过交织来自不同时间点的两个正常子序列而构建。这种情况模拟两个发送者以相同速率在总线上竞相发送命令的情况,大多数的攻击都属于此类型。

2、丢失:一个正常的子序列中间有数个词被删除。这模拟了ecu受抑制后又迅速由发送正常数据包的模拟器替代的攻击。

3、不连续:子序列是通过从一个时间段抽取前半部分,而从另一个时间点抽出后半部分来构造的。这种跳转模拟了受攻击的ecu突然从发送正常流量切换到某种情况下的合法流量的攻击。

4、数据异样:大多数id不使用全部的64位。在不寻常的情况下,例如,通常未使用的位中的有两位从0变为1。这种情况模拟了正常流量中嵌入的隐藏命令和控制通道的使用。

在s5的网络结构中位序列首先由两层非递归隐藏层进行转换,每一层包含128个单元,激活函数选择tanh激活函数。线性层的输出作为两层长短时记忆网络的输入,每一层包含512个单元,由tanh函数作为激活函数。最后的线性输出层包含64个单元,用sigmoid函数作为激活函数使输出值归一化于0到1之间。

图3是根据本发明实施例的lstm网络单元结构示意图,如图3所示,lstm网络第一步是决定上一状态的什么信息可以进入新单元,这个决定由“遗忘门”通过sigmoid函数来控制,根据上一时刻的输出ht-1和当前输入xt产生一个0到1的ft值,决定是否让上一时刻学到的信息ct-1通过或部分通过,其中,

ft=σ(wf×[ht-1,xt]+bf)(1)

第二步产生需要更新的新信息,首先经过“输入门”由sigmoid决定哪些信息用来更新,接着由tanh来生成新的候选值添加到新单元状态中,其中,

it=σ(wi×[ht-1,xt]+bi)(2)

将第一、第二步结合,对前一单元状态进行更新:首先通过将旧单元状态与ft相乘遗弃不需要的信息,再与相加,得到候选值如下,

最后一步决定模型的输出,首先通过sigmoid函数得到一个初始输出,再经由tanh将ct值控制在-1到1之间,再与sigmoid得到的输出相乘,得到模型输出,

ot=σ(wo[ht-1,xt]+bo)(5)

ht=ot×tanh(ct)(6)

其中,ht-1表示上一时刻输出,xt表示当前输入,w表示权重系数,b表示偏差,σ表示sigmoid激活函数,tanh表示tanh激活函数。

以下结合图4所示的基于lstm神经网络的异常检测示意图,给出如下实例。

步骤一:通过obd接口连接收发器,使用vehiclespy软件采集某款汽车can总线报文数据共19小时的数据。

步骤二:所采集到数据包含id数20个,观察其中报文数据流的变化,删除无变化或变化不明显的id共3个,剩余数据根据id分成17个数据集。

步骤三:单独分割每个id数据集中数据,其中13小时的数据为训练集、4小时数据用于测试集,2小时数据用作验证集。

步骤四:将4小时测试集分成均等的五份,一份为正常数据,其余数据分别修改为:交织子序列、丢失、不连续、数据异样四种异常形式。

步骤五:如图4所示,将一个id数据集中训练集序列输入网络,训练数据由20个字长的子序列组成,以128个批次呈现。损失函数使用对数损失函数计算,是序列中输出和下一个数据字之间的二进制对数损失;若训练数据经过连续迭代5次后验证性能未能改善则停止训练。

步骤六:对每一种模拟异常数据绘制roc曲线并计算auc,测试模型对每种异常行为的检测率和误报率。

步骤七:为其余每个id中数据都单独训练一个网络,并分别进行测试和评估。

步骤八:根据auc数据,设置对每种异常的异常阈值,评估检测方法。

与现有技术相比,本发明实施例可以利用lstm神经网络检测汽车can总线上的序列数据异常,lstm神经网络方法具有不需要知道特定协议知识的优点,在检测与can总线上的已知攻击相对应的一系列异常情况中表现出有效的性能。

基于相似地发明构思,本发明实施例还提供了一种车辆报文数据模型的评估装置,优选地可以应用上述方法。

图5是根据本发明实施例的车辆报文数据模型评估装置的结构框图,如图5所示,该装置包括:采集单元501、数据设置单元502、模型建立单元503、测试单元504和评估单元505,其中:

采集单元501,用于采集预定时长的车辆报文数据,并将车辆报文数据分成不同的数据集;

数据设置单元502,用于对于每个数据集中的数据,将一部分数据设置为训练数据,将一部分数据设置为测试数据,将剩余数据设置为验证数据,其中,测试数据中的部分数据被修改为模拟异常数据;

模型建立单元503,用于将训练数据输入lstm网络以建立报文预测模型;

测试单元504,用于根据报文预测模型对测试数据进行测试,以获得模拟异常数据的检测率和误报率;以及

评估单元505,用于根据检测率和误报率来评估报文预测模型。

通过模型建立单元503根据采集单元501采集的车辆报文数据,基于lstm网络建立报文预测模型,之后测试单元504根据该模型测试车辆报文数据,以获得车辆报文数据中的异常数据检测率和误报率,相比于现有技术中的逆向分析车辆报文数据来检测异常数据的方法,本发明实施例由于无需逆向分析环节,从而减小了车辆异常数据检测的工作量。

具体地,图6示出了车辆报文数据模型的评估装置的具体结构框图,以下结合图6详细描述上述各单元。

如图6所示,上述采集单元501包括:采集模块5011、删选模块5012和分类模块5013,其中:采集模块5011,用于采集预定时长的车辆报文数据;删选模块5012,用于根据预定规则对车辆报文数据进行删选;分类模块5013,用于根据id将删选后的车辆报文数据分成不同的数据集。这里的预定规则可以是根据数据流的变化与否,来确定是否删除相应的数据。

上述测试单元504包括:测试模块5041、曲线绘制模块5042和测试结果获得模块5043,其中:测试模块5041,用于根据报文预测模型对测试数据中的模拟异常数据进行测试;曲线绘制模块5042,用于根据测试结果绘制roc曲线并计算auc;测试结果获得模块5043,用于根据roc和auc获得模拟异常数据的检测率和误报率。这里的模拟异常数据可以是:交织子序列、丢失、不连续、数据异样等异常形式。

上述评估单元505包括:异常阈值设置模块5051和评估模块5052,其中:异常阈值设置模块5051,用于根据检测率和误报率设置模拟异常数据的异常阈值;评估模块5052,用于根据异常阈值来评估报文预测模型。

由于该装置解决问题的原理与上述方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有执行上述方法的计算机程序。

综上所述,lstm网络有效解决了循环神经网络的梯度消失问题,实现记忆长距离的数据信息,同时采用can报文原始数据作为输入,无需理解报文信息的内容,因此省去传统can异常检测中的逆向破解环节,并且本发明实施例可以方便的移植应用于任何一款以can网络为协议的汽车。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1