Processing math: 1%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

一种车载控制器局域网络入侵检测算法及硬件加速

许鹤, 吴迪, 卢继武, 李仁发

许鹤, 吴迪, 卢继武, 李仁发. 一种车载控制器局域网络入侵检测算法及硬件加速[J]. 计算机研究与发展, 2023, 60(12): 2783-2796. DOI: 10.7544/issn1000-1239.202220035
引用本文: 许鹤, 吴迪, 卢继武, 李仁发. 一种车载控制器局域网络入侵检测算法及硬件加速[J]. 计算机研究与发展, 2023, 60(12): 2783-2796. DOI: 10.7544/issn1000-1239.202220035
Xu He, Wu Di, Lu Jiwu, Li Renfa. An Intrusion Detection Algorithm and Its Hardware Acceleration for CAN in Vehicles[J]. Journal of Computer Research and Development, 2023, 60(12): 2783-2796. DOI: 10.7544/issn1000-1239.202220035
Citation: Xu He, Wu Di, Lu Jiwu, Li Renfa. An Intrusion Detection Algorithm and Its Hardware Acceleration for CAN in Vehicles[J]. Journal of Computer Research and Development, 2023, 60(12): 2783-2796. DOI: 10.7544/issn1000-1239.202220035
许鹤, 吴迪, 卢继武, 李仁发. 一种车载控制器局域网络入侵检测算法及硬件加速[J]. 计算机研究与发展, 2023, 60(12): 2783-2796. CSTR: 32373.14.issn1000-1239.202220035
引用本文: 许鹤, 吴迪, 卢继武, 李仁发. 一种车载控制器局域网络入侵检测算法及硬件加速[J]. 计算机研究与发展, 2023, 60(12): 2783-2796. CSTR: 32373.14.issn1000-1239.202220035
Xu He, Wu Di, Lu Jiwu, Li Renfa. An Intrusion Detection Algorithm and Its Hardware Acceleration for CAN in Vehicles[J]. Journal of Computer Research and Development, 2023, 60(12): 2783-2796. CSTR: 32373.14.issn1000-1239.202220035
Citation: Xu He, Wu Di, Lu Jiwu, Li Renfa. An Intrusion Detection Algorithm and Its Hardware Acceleration for CAN in Vehicles[J]. Journal of Computer Research and Development, 2023, 60(12): 2783-2796. CSTR: 32373.14.issn1000-1239.202220035

一种车载控制器局域网络入侵检测算法及硬件加速

基金项目: 国家自然科学基金项目(61932010, 61972145);湖南省自然科学基金项目(2023JJ30146)
详细信息
    作者简介:

    许鹤: 1996年生. 硕士研究生. 主要研究方向为数据异常检测、机器学习

    吴迪: 1982年生. 博士,教授. IEEE会员. 主要研究方向为物联网、城市计算、智能交通

    卢继武: 1977年生. 博士,教授. IEEE会员. 主要研究方向为物联网中的边缘计算、功率半导体器件

    李仁发: 1957年生. 博士,教授. IEEE高级会员. 主要研究方向为计算机体系结构、嵌入式计算、CPS、物联网

    通讯作者:

    卢继武(jiwu_lu@hnu.edu.cn

  • 中图分类号: TP181

An Intrusion Detection Algorithm and Its Hardware Acceleration for CAN in Vehicles

Funds: This work was supported by the National Natural Science Foundation of China (61932010, 61972145) and the National Natural Science Foundation of Hunan Province (2023JJ30146)
More Information
    Author Bio:

    Xu He: born in 1996. Master candidate. His main research interests include data anomaly detection and machine learning

    Wu Di: born in 1982. PhD, professor. Member of IEEE. His main research interests include IoT, urban computing, and intelligent transportation

    Lu Jiwu: born in 1977. PhD, professor. Member of IEEE. His main research interests include edge computing in IoT and power semiconductor devices

    Li Renfa: born in 1957. PhD, professor. Senior member of IEEE. His main research interests include computer architecture, embedded computing, CPS, and IoT

  • 摘要:

    控制器局域网(controller area network, CAN)总线协议广泛应用于车辆系统,是一种高效的标准总线,可实现所有电子控制单元(electronic control units, ECUs)之间的通信. 然而,CAN总线由于缺乏安全防御功能,很容易受到攻击. 针对车载入侵检测提出一种自注意力机制(self-attention mechanism, SAM)增强的网格型长短时记忆(grid long short-term memory, Grid LSTM)网络,称为SALVID.SAM可以增强针对CAN总线的攻击行为特征,Grid LSTM可以有效提取时序数据的深度特征. 通过从实际汽车中提取的正常CAN数据生成5个攻击数据集,包括拒绝服务(denial of service,DoS)攻击、模糊攻击、欺骗攻击、重放攻击和删除攻击,比较了具有不同模型深度的各种模型的性能,结果表明,在检测CAN总线攻击方面,SALVID具有最佳性能. 该模型可以识别带有小批量特征的攻击,整体检测准确率为98.98%,这在以往的研究中是很难做到的. 还设计并实现了基于现场可编程门阵列(field programmable gate array, FPGA)嵌入式平台的SALVID 模型,并基于训练好的模型使用并行优化和量化来加速计算. 实验结果表明,即使有一定程度的量化,SALVID仍然表现出98.81%的高检测准确率和1.88 ms的低时延. 该研究为设计高性能实时车载入侵检测系统提供了一种新思路.

    Abstract:

    A controller area network (CAN) bus protocol is widely used in the vehicular system and is an efficient standard bus enabling communication between all electronic control units (ECUs). However, the CAN bus is easy to be attacked because of a lack of security defense features. We propose self-attention mechanism (SAM) enhanced grid long short-term memory (Grid LSTM) for vehicular intrusion detection, namely SALVID. The SAM can enhance the characteristics of CAN bus-oriented attack behavior, and the Grid LSTM can effectively extract the depth features of time series data. We generate five attack datasets by extracting benign CAN data from the actual car, including denial of service (DoS), fuzzy, spoofing, replay, and delete attacks. We compare the performance of various models with different model depths, and the results demonstrate that SALVID has the best performance in detecting the attacks on CAN bus. SALVID can identify attacks with small-batch features according to an overall detection accuracy of 98.98%, which is hard to be done in previous studies. We also design and implement SALVID based on field programmable gate array (FPGA) embedded platform and use parallel optimization and quantification to accelerate the model based on previous experiments. Even with a certain degree of quantification, SALVID still displays high detection accuracy of 98.81% and a latency of 1.88 ms. The investigation provides a new idea for designing high-performance and real-time vehicular intrusion detection systems.

  • 控制器局域网(controller area network, CAN)总线协议由于其低成本、高可靠性、实时性、抗干扰能力强的特点,已广泛应用于工业自动化控制系统中[1]. 在汽车电子领域,CAN总线协议已经成为实质上的通信标准. 随着汽车智能化的程度不断提升,车载电子控制单元(electronic control unit,ECU)的数量也在不断增加,车载系统的功能愈加复杂化[2].

    任何产业在网络化的发展过程中都会面临信息安全问题,车联网的发展也不例外[3]. 2017年,Mccluskey[4]通过无线信号欺骗手段远程入侵了Jeep Cherokee的车载娱乐系统,进一步向引擎、变速箱、转向等控制系统发送恶意指令,致使车辆冲下路边斜坡. 2017年,腾讯科恩实验室通过特斯拉Model S车内网络浏览器,让用户访问一个可疑的网站,借此进入到车载网关,控制了Model S的方向盘和刹车[5]. 在“2020中国5G+工业互联网大会”上,入侵者借助5G无线技术连接上车载电脑,轻松打开一辆智能网联汽车车门,并随后启动引擎. 随着智能网联汽车的不断涌现,恶意攻击、非法控制、隐私泄露等威胁也日益增加.

    自动驾驶辅助系统和新一代电子信息技术在汽车上的应用,使得汽车越来越智能化,可以很大程度保障行车安全,但与此同时,智能辅助功能一旦在某种状况下突然失效或出现异常,将严重威胁行车安全. 如图1所示,车联网、移动网络、GPS导航以及智能传感器等对外暴露的接口给车辆安全带来了诸多不可预知的威胁[6].CAN协议的安全机制主要是为了保证通信的可靠性,无法防止入侵攻击或者检测CAN网络是否受到入侵攻击[7]. 攻击者可以通过安全漏洞入侵CAN网络,挟持车载ECU,对车辆进行恶意攻击以及非法控制.CAN网络一旦遭受入侵攻击,一方面有可能造成车载网络通信瘫痪、阻塞、数据被篡改,最终导致车辆行驶状态异常,危及车辆与人员安全;另一方面,还可能涉及个人隐私数据泄露及相应的财产损失[8]. 安全事故往往发生在极短时间内,因此车载入侵检测具有高实时性、高精度的要求.

    图  1  车载通信网络架构
    Figure  1.  The architecture of vehicular communication network

    近些年来,基于深度学习的入侵检测系统研究是诸多研究者关注的热点,但是对于小批量特征攻击的相关研究较少,并且大部分研究都以高性能的CPU和GPU为基础,受限于车系统硬件性能的限制. 深度学习模型在车载系统上部署,其实时性较差,因此研究基于深度学习的入侵检测模型在实际车载环境下的加速部署方法具有很大的实际意义. 本文提出了一种结合网格型长短时记忆(grid long short-term memory, Grid LSTM)[9] 网络与自注意力机制(self-attention mechanism, SAM)[10]的入侵检测模型SALVID(SAM enhanced Grid LSTM for vehicular intrusion detection,),并基于现场可编程门阵列(field programmable gate array,FPGA)器件,实现了模型加速设计. 该模型利用SAM增强CAN网络攻击数据的特征,进一步基于Grid LSTM提取时序数据在不同维度上的相关性特征. 同时,FPGA器件具有硬件算法定制能力和并行处理的优势,非常适合对实时性要求高的应用场景. 研究的主要贡献总结为3点:

    1) 通过分析常见攻击类型的 CAN ID 分布特征,包括拒绝服务(denial of service, DoS)、模糊(fuzzy)、欺骗(spoofing)、重放(replay)和删除(delete)等攻击,设计了一种模拟攻击系统,利用真实汽车采集的无攻击数据集模拟生成多种攻击类型的数据集.

    2) 为了能够分析大量的实时CAN数据并优化模型的性能,本文采用多维度以及SAM的思路,设计并实现了SALVID模型. 多维度的设计有利于在FPGA上实现不同维度的并行化并提取更深层次的特征信息,SAM的引入可以进一步增强攻击数据的特征,使得Grid LSTM网络更容易区分不同类型的数据. 多种基准对比模型的性能评估实验表明,SALVID具有最佳的性能表现.

    3) 基于FPGA嵌入式平台设计并实现了堆叠型长短时记忆(stacked long short-term memory, Stacked LSTM)网络、Grid LSTM、SALVID 这3种模型,实验表明SALVID具有更高检测精度以及低延时. 传统的矩阵乘法运算具有静态特性,而自注意力机制网络层内部矩阵具有动态生成的特性,如果遵循传统设计思路,则需要等待内部矩阵完全计算完后才能进行矩阵乘法. 为了提高SALVID的数据吞吐量,本文设计了一种基于动态矩阵的矩阵乘法运算优化方法. 实验表明,该方法有效地提升了SALVID的时延性能.

    CAN总线安全防护手段一般可以分成2种:一种是基于加密和认证的防护手段;另一种是基于入侵检测的防护手段. 基于加密和认证的防护手段主要是对帧数据和ECU进行认证或者使用安全密钥对消息进行加密处理,由于CAN数据帧格式的有效载荷位数只有64 b,加密势必会增加CAN总线的网络负载负担,导致通信效率降低,而且加密手段升级需要对现有固件进行升级. 基于入侵检测的防护手段是通过分析数据帧的物理特征、统计学特征等建立一个检测模型,这种方法的优势在于不会增加CAN总线的通信负担,并且不需要更新现有的固件程序.

    由于通信效率和实时性的要求,基于入侵检测的防护手段是车载安全研究的热点,大部分研究可以归纳为基于规则判断方法和基于机器学习方法.

    在早期的研究中,基于规则判断方法较为常见,通过设置一些逻辑判断规则,对CAN数据内部存在的逻辑关系进行决策,达到异常分类的目的. 例如,Vuong等人[11]设计了一种基于决策树的攻击检测方法,该模型使用网络和物理特征,在DoS、命令注入和2种恶意软件攻击场景下进行了离线实验评估. 实验表明,考虑物理特征显著提高了检测精度并减少了所有攻击类型的检测延迟,然而该方法具有大约1s的高检测延迟,无法满足车载安全对实时性的需求.Cho等人[12]将车载ECU所特有的时钟偏差作为指纹特征,提出了一种新型入侵检测系统CIDS(clock-based intrusion detection system),CIDS通过最小二乘算法,实现了0.055%的误报率(false positive rate, FPR). 然而,CIDS只能检测周期性消息的攻击,并且攻击者可以操纵帧数据绕过CIDS.

    基于机器学习的入侵检测系统能够处理具有多维复杂特征的数据,但同时也更加难以被训练,并且对硬件性能要求也更高. 一些研究人员尝试使用CAN总线的物理特征对车载ECU的状态进行分类,Zhou等人[13]提出了一种基于CAN总线数据比特位宽时间的新型入侵检测系统BTMonitor(bit-time-based monitor),该方法提取了时域和频域中9个基本特征作为 ECU 的指纹特征,采用多层感知器 (multilayer perceptron, MLP) 训练完成识别异常 ECU 的分类任务,并在实际汽车CAN网络上进行了测试,成功识别率为99.76%. 然而,这种方法容易受到温度和电磁环境的影响.Choi等人[14]提出了一种基于CAN总线电压的入侵检测系统,该方法通过检查CAN报文对应的电信号的特性,使用多类分类器来识别报文的发送方ECU. 然而,与BTMonitor一样,车内的电磁环境和温度会影响CAN总线信号的电气特性. Hanselmann等人[15]提出了一种称为CANet的新型无监督学习方法,该方法结合了LSTM和自动编码器,其稳定性优于其他基于物理特征的检测方法. 但是CANet需要为每个CAN ID对应的消息时间序列引入了一个独立的LSTM输入模型,这会导致模型复杂且难以实际部署.Hossain等人[16]提出了一种基于 LSTM 的入侵检测算法,研究了不同超参数设置对性能的影响并选择了最佳参数值,该方法基于真实车辆采集的CAN数据模拟生成的3个攻击数据集,包括DoS、模糊、欺骗等攻击,实现了高效的检测准确率. 然而,该方法并未考虑小批量注入攻击类型. 基于车辆原始设备制造商(OEM)提供的CAN通信矩阵,Xie等人[17]设计了特殊的CAN消息块,并利用生成对抗网络(generative adversarial networks, GAN)检测CAN数据是否被篡改. 然而,GAN网络无法识别具体的攻击类型并且模型难以训练.

    从目前的研究现状分析,大部分基于机器学习的入侵检测算法优于其他方法,常见的模型算法包括MLP, LSTM, GAN等. 尽管如此,对于小批量特征类型的攻击以及如何在嵌入式系统实现模型部署的相关研究工作还鲜有深入研究,其主要原因在于小批量特征攻击的识别难度较大,并且机器学习算法对硬件性能要求较高. 针对这2个关键问题,提出了一种将SAM与Grid LSTM网络相结合的入侵检测算法,用于高效地识别车载CAN总线是否受到攻击,本文还进行了基于FPGA嵌入式设备的入侵检测模型加速设计与性能评估,为深度学习入侵检测模型的实时在线部署提供一种新思路.

    由于车载系统的特点,很难获取到带有攻击特征的数据集,因此需要从攻击类型本身的特征出发,设计模拟攻击系统. 基于真实车辆所采集的无攻击数据样本,利用模拟攻击系统生成5种类型的攻击数据集,包括DoS、模糊、欺骗、重放以及删除等攻击,其中DoS、模糊和欺骗等攻击具有泛洪特性,重放以及删除等攻击具有小批量特性. 每种攻击的具体特征有:

    1) DoS攻击. 攻击者一旦入侵到CAN总线网络,会不断向CAN网络发送优先级最高(CAN ID为0)的CAN数据帧,占用CAN总线网络数据传输时间窗口,导致其他正常ECU无法发送数据.

    2) 模糊攻击. 攻击者可以在不清楚CAN网络中ECU具体功能的情况下,向CAN网络注入随机性数据. 由于CAN ID的随机性和大量注入的特点,其会导致CAN网络通信紊乱.

    3) 欺骗攻击. 在欺骗攻击中,攻击者通过监听CAN总线. 记录历史消息,并重新大量注入到CAN网络中,企图欺骗车载系统接收过时消息更新数据,导致状态出现错误.

    4) 重放攻击. 重放攻击具有小批量的特征,其识别难度相比上述攻击要更大,攻击者通过周期性注入某一个CAN ID的CAN消息,伪装成正常的ECU实现重放攻击.

    5) 删除攻击. 当攻击者入侵CAN网络并挟持车载ECU之后,往往会导致正常的ECU丧失其原本的功能,在这种情况下,CAN总线上特定的CAN消息将不再出现,有可能导致车辆某些功能失效.

    本文采用荷兰4TU联盟ResearchData开源的CAN 总线数据集[18],该数据集包含来自3个系统的汽车CAN总线数据:2辆汽车(欧宝 Astra 和雷诺 Clio)以及自行搭建的 CAN 总线原型. 本文选取了欧宝Astra的数据集作为实验数据集,利用模拟攻击方法生成了上述5种攻击类型的数据.

    对于所有攻击类型而言,都需要按顺序从原始数据集中读取每一个记录,再提取采集时间戳和CAN ID,以数据集第1行数据的时间戳作为起始时间,通过攻击间隔时间确定每次发起攻击的时间点,择机发起攻击. 如图2(a) 所示,对于DoS、模糊、欺骗、重放等攻击而言,通过比较每一个CAN消息的采集时间与攻击时间,确定是否发起攻击,并在数据集添加一列相应的标志值,发起攻击时,注入对应的攻击标志值,其中0, 1, 2, 3, 4分别表示正常状态、DoS攻击、模糊攻击、欺骗攻击以及重放攻击的标志值. 对于删除攻击而言,如图2 (b)所示,通过判断当前读取的CAN ID是否为攻击目标,如果是,则删除该CAN消息,并标记下一个消息状态为删除攻击标记值为5.

    图  2  模拟攻击生成方法
    Figure  2.  Generation methods of simulation attacks

    生成的数据集大小如表1所示,其中正常状态的CAN消息占比最大,3种泛洪特性的攻击各自占比约10%,2种小批量特性的攻击各自占比约为2%. 数据集按照8∶1∶1的比例分别划分为训练、验证、测试数据集. 本文已将实验所用的数据集开源.

    表  1  生成的数据集大小
    Table  1.  The Size of Generated Datasets
    CAN消息状态数据条数占比/%
    正常状态185043165.77
    DoS攻击28338110.07
    模糊攻击28338110.07
    欺骗攻击28338010.07
    重放攻击650922.31
    删除攻击477491.70
    下载: 导出CSV 
    | 显示表格

    通过分析车载CAN总线的攻击类型特点,发现几乎所有攻击都需要注入或者截断CAN消息数据帧,这势必会导致CAN总线上数据帧特征分布发生变化. 因此本文通过提取正常情况和攻击状态下的CAN ID时序数据作为实验模型的输入数据.图3显示了正常状态与5种攻击状态下CAN消息中CAN ID的分布特征. 从图3中可以看出,DoS、模糊和欺骗等攻击的特征数据与正常状态数据具有比较明显的区别,具有小批量特征的重放攻击和删除攻击的特征并不显著,与正常状态下的分布特征类似,这意味着小批量特征攻击更难被区分,更具有迷惑性.

    图  3  各状态下CAN消息中CAN ID的分布特征
    Figure  3.  The distribution features of CAN ID in CAN messages of different statuses

    如果直接将CAN ID 作为输入特征,由于CAN ID在CAN协议中占有11 b,其十进制范围在0~2 047.通常为了加快深度学习模型训练收敛速度,模型训练时会将输入数据进行归一化处理,这对浮点数计算没有影响,但如果将归一化后的数据作为FPGA的输入,由于需要进行定点数量化处理,会导致输入特征的精度下降,因此需要针对FPGA的特点对输入数据进行特殊处理.

    xi={0, CAN_ID&(1i)=0,1, CAN_ID&(1i)>0, i{0,1,,10}, (1)

    通过式(1)提取CAN ID 的11 b特征作为输入,一方面可以解决归一化带来的精度问题,另一方面,由于只有0和1这2种输入,在FPGA中可以只用1 b进行运算,能够降低资源开销.CAN ID的比特特征如图4所示. 其中横向坐标代表时间步长,纵向坐标代表11 b特征信息.

    图  4  CAN ID的比特特征分布
    Figure  4.  The bit distribution features of CAN ID

    本文结合自注意力机制与Grid LSTM设计了SALVID模型,其模型结构如图5所示.

    图  5  结合SAM与Grid LSTM的SALVID模型架构
    Figure  5.  The architecture of SALVID model combining SAM and Grid LSTM

    自注意力机制是Transformer模型的重要组成部分,其优势在于减少了外部信息的时间依赖性,可以更快地捕获数据特征的内部相关性[9]. 本文针对FPGA的并行计算模式,对自注意力机制进行改进. 自注意力机制的作用可以理解为通过分配不同的权重比例,对输入数据进行预处理,典型的自注意力机制如图6所示,其内部矩阵QKV是通过全连接网络实现,其中Q为计算模块, K为激活函数计算模块, V为卷积层输出模块,所用到的激活函数为softmax函数,为了简化自注意力机制的内部计算以及降低参数量,本文将全连接网络使用卷积网络代替. 对于softmax激活函数,其作用在于将输出结果归一化至0~1,并且总和为1,这个过程需要等待所有输出结果值计算完成,不利于在FPGA上实现. 而sigmoid函数的激活值范围也在0~1,激活结果不依赖于外部信息,并且不会改变输入数据之间的大小关系,同样能够作为注意力权重. 其他常用的激活函数,例如ReLU函数与tanh函数的激活值范围不在0~1,过大的区间范围需要更多的片上硬件资源用于保存激活值,因此我们采用sigmoid函数替换softmax函数. 改进后的自注意力机制网络[19]图6所示.

    图  6  自注意力机制网络结构的改进
    Figure  6.  Improvement of network structure of SAM

    首先,将输入数据定义为:

    {\boldsymbol{X}} = ({{\boldsymbol{X}}_0},{{\boldsymbol{X}}_1},…,{{\boldsymbol{X}}_t},…,{{\boldsymbol{X}}_n}), (2)

    其中Xn×m的矩阵,m为输入的特征维度,n为一次输入的总时间步长.

    改进后的自注意力机制的定义如式(3)~(5)所示:

    ({\boldsymbol{Q}},{\boldsymbol{K}},{\boldsymbol{V}}) = {Conv} 2D({\boldsymbol{X}},(1,1),F\times3), (3)
    \tilde {\boldsymbol{A}} = \sigma ({\boldsymbol{Q}}{{\boldsymbol{K}}^{\text{T}}}), (4)
    {{SA}}({\tilde {\boldsymbol{A}}},{\boldsymbol{V}}) = {Conv} 2D({\tilde {\boldsymbol{A}}}{\boldsymbol{V}},(1,1),D). (5)

    根据式(3)计算得到矩阵QKV;其中(1,1)表示卷积核为1×1;F对应一个特征矩阵卷积层的输出通道数, F*3 表示卷积层总的输出通道数; {Conv} 2D()表示2维卷积函数,其输出值平均切分为3个部分,分别为QKV;再根据式(4)计算得到自注意力机制网络层权重矩阵\tilde {\boldsymbol{A}},将矩阵\tilde {\boldsymbol{A }}V相乘,得到的结果作为式(5)的输入,最终得到自注意力机制网络层的输出结果;D表示最终输出的通道数,将其设置为1,即表示输出值的大小与输入数据的大小一致.

    LSTM通过引入若干门控信号解决了RNN梯度消失和爆炸的问题,被广泛应用于文本识别、语音识别、时序数据处理、自然语言处理等领域[20]. 而Grid LSTM能够基于不同维度提取时序数据中更深层次的特征. 本文采用的Grid LSTM模型包括时间和深度2个维度,不同维度的LSTM内部权重参数可以相互独立或共享[21]. 当不同维度之间的参数相互独立时,时间维度与深度维度互不干扰,有利于缓解梯度消失问题并提取深层次的特征,并且每个维度在FPGA上可以并行执行,因此,本文在Grid LSTM的不同维度上采用相互独立的设计.

    Grid LSTM内部的基本计算单元可以拆分为2个LSTM 单元,LSTM 单元通过记忆单元的3个门控信号,即输入门、遗忘门和输出门,避免了RNN存在的梯度消失和梯度爆炸的问题,LSTM 单元的每一个时间步计算如式(6)所示:

    \begin{gathered} {{{\boldsymbol{g}}}_{t}} = {\text{tanh}}({{{\boldsymbol{W}}}_{{{gx}}}}{{{\boldsymbol{x}}}_t} + {{{\boldsymbol{W}}}_{{{gh}}}}{{{\boldsymbol{h}}}_{t - 1}} + {{{\boldsymbol{b}}}_{{g}}}), \\ {{{\boldsymbol{i}}}_{t}} = \sigma ({{{\boldsymbol{W}}}_{{{ix}}}}{{{\boldsymbol{x}}}_{t}}{ + }{{{\boldsymbol{W}}}_{{{ih}}}}{{{\boldsymbol{h}}}_{t - 1}}{ + }{{{\boldsymbol{b}}}_{{i}}}){,} \\ {{{\boldsymbol{f}}}_{t}} = \sigma ({{{\boldsymbol{W}}}_{{{fx}}}}{{{\boldsymbol{x}}}_t} + {{{\boldsymbol{W}}}_{{{fh}}}}{{{\boldsymbol{h}}}_{t - 1}} + {{{\boldsymbol{b}}}_{{f}}}), \\ {{{\boldsymbol{o}}}_{t}} = \sigma ({{{\boldsymbol{W}}}_{{{ox}}}}{{{\boldsymbol{x}}}_t} + {{{\boldsymbol{W}}}_{{{oh}}}}{{{\boldsymbol{h}}}_{t - 1}} + {{{\boldsymbol{b}}}_{{o}}}), \\ {{{\boldsymbol{c}}}_{t}} = {{{\boldsymbol{g}}}_{t}} \odot {{{\boldsymbol{i}}}_{t}} + {{{\boldsymbol{c}}}_{t - 1}} \odot {{{\boldsymbol{f}}}_{t}}, \\ {{{\boldsymbol{h}}}_t} = {\text{tanh}}({{{\boldsymbol{c}}}_{t}}) \odot {{{\boldsymbol{o}}}_{t}}, \\ \end{gathered} (6)

    其中\sigma表示sigmoid函数, \odot 表示按元素相乘,{{{\boldsymbol{W}}}_{{{ix}}}}, {{{\boldsymbol{W}}}_{{{fx}}}}, {{{\boldsymbol{W}}}_{{{gx}}}},{{{\boldsymbol{W}}}_{{{ox}}}}为输入向量的权重矩阵,{{{\boldsymbol{W}}}_{{{ih}}}},{{{\boldsymbol{W}}}_{{{fh}}}},{{{\boldsymbol{W}}}_{{{gh}}}}, {{{\boldsymbol{W}}}_{{{oh}}}}为上一时刻隐藏层单元输出向量的权重矩阵. 将式(6)的LSTM 单元计算过程表示为lstm(), 如式(7)所示:

    {\text{(}}{{\boldsymbol{h}}_{t}},{{\boldsymbol{c}}_{t}}{\text{)}} = {lstm} {\text{(}}{{\boldsymbol{x}}_{t}},{{\boldsymbol{h}}_{{t} - 1}},{{\boldsymbol{c}}_{{t} - 1}},{{\boldsymbol{W}}_{{i}}},{{\boldsymbol{W}}_{{h}}}{\text{)}}, (7)

    与LSTM 单元的计算所不同的是,本文所设计的Grid LSTM 单元具有深度维度与时间维度的2个隐藏层单元输入向量和2个记忆单元向量,其计算可独立拆分如式(8)所示:

    \begin{gathered} {\text{(}}{{\boldsymbol{h}}_{t}},{{\boldsymbol{c}}_{t}}{\text{)}} = lstm{\text{(}}{{\boldsymbol{x}}_{t}},{{\boldsymbol{h}}_{{t} - 1}},{{\boldsymbol{c}}_{{t} - 1}},{{\boldsymbol{W}}_{\boldsymbol{i}}},{{\boldsymbol{W}}_{\boldsymbol{h}}}{\text{)}}, \\ {\text{(}}{{\boldsymbol{h}}_{t}}' ,{{\boldsymbol{c}}_{t}}' {\text{)}} = lstm{\text{(}}{{\boldsymbol{x}}_{t}},{{{\boldsymbol{h'}}}_{{t} - 1}},{{{\boldsymbol{c'}}}_{{t} - 1}},{{{\boldsymbol{W'}}}_{{i}}},{{{{\boldsymbol{W}}'}}_{{h}}} {\text{)}}. \\ \end{gathered} (8)

    对应于标准的LSTM 单元,Grid LSTM 单元具有2个维度的独立参数,本文将2个不同维度的最后一步隐藏层输出进行拼接,如式(9)所示,最终得到Grid LSTM的输入向量.

    {{{\boldsymbol{H}}}} = \left( \begin{gathered} {{{{\boldsymbol{h}}}}_{n}} \\ {{{{{\boldsymbol{h}}' }}}_{n}} \\ \end{gathered} \right), (9)

    其中n表示一次输入的总时间步长.

    为了在边缘嵌入式设备上进行部署,基于FPGA架构,本文对所提出的SALVID模型进行加速设计,利用高层次综合(high-level synthesis, HLS)语言将模型算法综合为硬件电路[22].

    SALVID模型的加速设计可分成2部分,包括自注意力层与Grid LSTM层. 为了降低推断时延和提高开发效率,本文基于模块化设计与流水线设计思路,将自注意力层进一步分解为QKV,将Grid LSTM层拆分为2个维度,这2个维度并行计算,单个维度的LSTM计算单元模块可以复用. 基于模块化设计思路,重新设计模型的数据流管道,每个计算模块之间通过FIFO队列资源进行连接,可以实现整个计算过程的流水化.

    自注意力机制网络内部的矩阵QKV卷积计算不具有时间上的相互依赖性,因此无论是在CPU, GPU或者FPGA都可以并行计算. 但对于CPU或者GPU而言,需要完整计算出矩阵QKV的所有值才能进行下一步计算,整个计算过程会处于阻塞状态. 相比之下,FPGA具有并行流水线处理的优势,由于卷积函数卷积核是训练后的固定值,此过程可以很容易实现流水化设计,其计算过程如图7所示.

    图  7  QKV 卷积模块单步计算过程
    Figure  7.  A single step calculation process of QKV convolution modules

    QKV的内部计算独立为一个模块,其输入流为一个CAN ID 的时序比特流数据,输出流为QKV的流数据. 假设当前输入为{x_{(t,i)}},代表第t个时间步第i个维度的比特值,由于QKV卷积函数卷积核已知,因此根据式(3)可以得到所有通道对应位置的输出值q_{(t,i)}^d,k_{(t,i)}^d,v_{(t,i)}^dd表示输出通道序号. QKV的输出流FIFO队列将会依次输出所有通道计算后的值用于输入到下一模块的计算过程. 在此过程中, 矩阵QKV被完全展开成1维矩阵.

    激活模块的计算过程对应式(4),本质上整个计算过程是一个累加过程,如式(10)所示:

    {a_{i,m}} = \sum\limits_{j = 0}^{11n} {{q_{(i,j)}}{k_{(j,m)}}} , (10)

    其中i,m \in \left\{0,1,. ..,H - 1\right\}{a_{i,m}}表示矩阵A中对应位置的元素,由于矩阵QKV计算模块输出的矩阵QK是按照通道序号以数据流的形式串行传输,如果等接收到所有元素再开始计算A,将会导致很大的时延,因此,基于数据流传输的结构,本文设计了优化后的矩阵计算流程,当分别从QK队列读取{q_{(i,j)}}{k_{(i,j)}}时,{k_{i,j}}{{\boldsymbol{K}}^{\text{T}}}中为{k_{j,i}},可以将{q_{i,j}}{k_{j,i}}累加到元素{a_{i,i}}中,同时,当前的{q_{i,j}}{k_{j,i}}也需要和缓存的QK元素进行乘法计算,并累加到矩阵A对应位置的元素中,其计算过程如式(11)所示:

    \begin{gathered} {a_{i,z}} + = {q_{i,j}}{k_{j,z}}, \\ {a_{w,j}} + = {q_{w,j}}{k_{j,i}}, \\ \end{gathered} (11)

    其中{k_{j,z}}{q_{w,j}}分别为缓存的矩阵QK元素,z \in \left\{0,1,…, j - 1\right\}, w \in \left\{0,1,…,i - 1\right\}. 这种计算方法本质上是将式(10)(11)中乘累加的过程进行拆分,使其适合于QK的数据流模式,本文将此方法称为动态矩阵乘法计算. 由于矩阵QK的值是动态产生的,因此只能在QK 队列全部数据读取完成之后才能进行激活计算,否则无法得到一个完整的输出值.

    计算得到激活值后,将激活值串行输入到自注意力机制的卷积层输出模块,该模块对应于式(5). 由于此时V特征矩阵的值是完全已知的,这种情况的矩阵乘法运算比动态矩阵的计算要简单. 当输入矩阵\tilde {\boldsymbol{A}}的一行数据时,便可以计算出结果矩阵\tilde {\boldsymbol{A}}{\boldsymbol{V}}的一行数据,计算过程如图8所示.

    图  8  输出卷积模块单步计算
    Figure  8.  A single step calculation of output convolution module

    假设当前输入为\tilde {\boldsymbol{A}}的一个元素{a_{i,j}},将其与V的第j行元素{{\boldsymbol{v}}_j}相乘,再按位累加到结果矩阵\tilde {\boldsymbol{A}}{\boldsymbol{V}}i行元素{{\boldsymbol{r}}_i},其计算过程如式(12)所示:

    {r_{i,m}} + = {a_{i,j}}{v_{j,m}}, (12)

    其中m \in \left\{0,1,. ..,11n\right\},11表示CAN ID的11 b,n为一次输入的序列长度.

    当计算得到\tilde{\boldsymbol{ A}}{\boldsymbol{V}}的所有输出值后,去按行进行累加计算,再做卷积函数计算,如式(13)所示:

    s{a_{d,j}} = {{\boldsymbol{W}}_d}\sum\limits_{i = 0}^{F - 1} {{r_{i,j}}} , (13)

    其中j \in \left\{0,1,. ..,11n\right\} s{a_{d,j}} 表示第d个输出通道的第j个元素, {{\boldsymbol{W}}_d} 表示输出卷积函数的第d个卷积核. 为了保持自注意力层的输入输出维度一致,将输出卷积函数的输出通道设置为1.

    LSTM计算单元的设计遵循与自注意力机制网络设计相同的设计原理,采用FIFO队列以及数据流的设计思想,对输入值、中间结果以及输出值进行串行传输以实现整个计算过程流水化. 首先对LSTM单元单个时间步的计算过程进行分析,由于LSTM内部的全连接层权重矩阵与偏置向量完全已知,因此其优化方法与自注意力机制网络的输出层乘累加计算过程的优化方法相同,为了最大化降低时延,不需要等待矩阵乘法完全计算结束得到完整的输出结果,可以在计算得到一行输出之后,便开始下一步激活函数的计算以及其他模块的计算.LSTM网络单个时间步的计算过程如图9所示.

    图  9  LSTM cell内部计算架构
    Figure  9.  The internal computing architecture of LSTM cell

    图9中,MVM模块表示LSTM单元内的矩阵向量乘法.LSTM单元的计算过程包括LSTM内部的全连接网络LSTM-MLP、激活(activation)函数和记忆单元和隐藏层单元状态计算LSTM-Tail[23].LSTM-MLP用于并行处理内部矩阵向量乘法.LSTM-Tail以流水线模式计算最终隐藏层单元和记忆单元的输出值.

    本节描述实验的相关硬件与软件环境以及模型评估标准. 实验的软件环境为PyCharm 2021.2.1 专业版以及Xilinx Vivado 2019.2集成开发环境(包括Vivado和HLS),数据特征提取实验所采用的是Python 3.7,通过提取原始数据集中的CAN ID字段,注入攻击数据之后,保存为二进制文件,以提高训练时内存I/O读取速度. 基于PyTorch 1.9.0构建了各类深度学习实验模型,包括本文提出的SALVID模型,采用Scikit-learn 0.24.1机器学习库用于构建SVM对比模型,模型加速实验均基于Vivado HLS高层次综合设计. 所有PC端实验都在同一台安装了Windows 10系统的台式电脑进行,该电脑CPU配置为Intel i9-10850K CPU @ 3.6GHz × 10,配有8 GB 显存的NVIDIA Quadro RTX 4000 GPU. 加速模型部署测试基于Ultra96-v2开发板,配置有2 GB LPDDR4的内存和UltraScale+ MPSoC架构的FPGA芯片.

    为了衡量模型的检测性能,本文从3个方面对所提出的SALVID模型进行评估:

    1) 不同模型深度条件下的整体检测准确率(accuracy, ACC)比较.

    2) 7种不同模型之间的性能比较,如ACC、漏报率(false negative rate, FNR)、FPR.

    \begin{gathered} ACC = \frac{{TP + TN}}{{TP + FN + FP + TN}}, \\ FNR = \frac{{FN}}{{TP + FN}}, \\ FPR = \frac{{FP}}{{FP + TN}}. \\ \end{gathered} (14)

    其中TPFPTNFN分别代表被正确分类的正例、被错误分类的正例、被正确分类的负例以及被错误分类的负例.

    3) 基于FPGA平台的3种不同加速模型的平均推断时延以及整体检测准确率比较.

    在本节中,根据模拟攻击方法生成的攻击数据集以及原始的正常数据集,在不同的模型深度条件下,对3种基于LSTM的模型进行性能评估,包括Stacked LSTM、Grid LSTM和所提出的SALVID.模型深度范围为10~30,步长为2.为了避免Dropout层对模型精度造成的影响,本文在每一种模型深度条件下进行了20次训练实验,在测试数据集上测试得到ACC后取平均值. 实验结果如图10所示.

    图  10  不同模型深度之间的性能
    Figure  10.  The performance between different model depths

    图10可以看出,当模型深度不断增加时,3种模型的ACC都有上升的趋势,在模型深度达到一定值之后,模型的ACC很难继续提升,SALVID, Grid LSTM, Stacked LSTM模型分别在模型深度为22, 24, 24时达到最高的ACC,并且SALVID模型具有最佳的性能表现. 实验表明,多维度的特性以及自注意力机制能够有效提升模型的检测性能,特别是在网络模型深度很小的情况下,SALVID依旧具有很高的检测性能.

    为了评估模型的训练稳定性,本文选取了模型深度为16~24的ACC进行比较. 如图11所示, SALVID的ACC波动范围在2%~4%,而Stacked LSTM的ACC波动范围在2.4%~6%,Grid LSTM的ACC波动范围在2.4%~5%. 相比于SALVID,Stacked LSTM和Grid LSTM模型的ACC波动范围较大. 在模型深度较大时,SALVID模型的稳定性表现更佳. 实验结果表明, SALVID具有最佳的训练稳定性表现,这表明自注意力机制有助于降低模型检测性能对模型参数的敏感度,能够提高SALVID模型的训练稳定性.

    图  11  不同模型之间的训练稳定性
    Figure  11.  The training stability between different models

    为了进一步研究Stacked LSTM, Grid LSTM, SALVID在检测性能上的差异,本文选取了3种模型中具有最佳性能表现模型所对应的模型深度作为比较基础,通过其分类混淆矩阵进行分析对比,如图12所示,3种模型对具有泛洪特性的攻击都有较好的检测识别性能,主要原因在于其泛洪特征较为明显,易于识别.SALVID对正常状态的识别率最佳,这能够有效地降低正常状态下的FPR. 3种模型的主要差异体现在小批量特性的攻击类型检测识别效果上,对于重放攻击来说,这3种模型都存在将攻击识别为正常状态的误识别情况,然而,SALVID的错误识别次数仅为233,大约是Grid LSTM的1/2和Stacked LSTM的1/3. 这种差异表明多维度特性与自注意力机制有利于捕获更深层的攻击特征.

    图  12  3种模型的分类混淆矩阵
    Figure  12.  The classification confusion matrix of the three models

    将SALVID与其他基线对比模型的异常检测性能进行比较,评估指标包括ACCFNRFPR.

    本文采用交叉熵损失(crossentropy loss)函数{C} ({\boldsymbol{p}},{\boldsymbol{q}}) = - \sum\limits_{x} ^{} {{\boldsymbol{p}}(x){\text{lg}}{\boldsymbol{q}}(x)}作为所有深度学习模型的损失函数,其中{\boldsymbol{p}}为期望输出,{\boldsymbol{q}}为实际输出. 实验过程中,最大的训练轮数为100,学习率为1E−3,优化器类型为自适应矩估计优化器adam,一个批次训练的大小为128,输出层激活函数采用softmax函数,并且,当验证集上的损失值不再连续下降的次数超过所设定的中断阈值时,训练过程提前中断,本文设置中断阈值为5.具体超参数设置如表2所示.

    表  2  超参数设置
    Table  2.  Hyperparameter Configuration
    参数取值/名称
    训练最大轮数100
    提前中断阈值5
    输出激活函数softmax
    学习率1E−3
    优化器adam
    损失函数CrossEntropyLoss
    批次大小128
    下载: 导出CSV 
    | 显示表格

    本文模型包括支持向量机(support vector machines, SVM)、MLP、卷积神经网络(convolutional neural network, CNN)、Stacked LSTM、Grid LSTM以及SALVID模型.

    多种模型的性能对比结果如表3所示. 通过实验结果分析,基于LSTM的模型性能表现明显优于其他非循环神经网络模型SVM, MLP, CNN,其主要原因在于小批量注入攻击与正常状态的特征分布图很类似,非循环神经网络不具有捕获上下文时序相关性的能力,难以区分此类的差异. 此外,Stacked LSTM与Grid LSTM的实验结果表明,多维度特性加强了LSTM对具有复杂特征数据的分类能力. 对比SALVID与Grid LSTM的实验结果可以发现,自注意力机制有效地增强了原数据的攻击特征,提升了SALVID模型的检测分类性能.

    表  3  不同模型之间的性能
    Table  3.  The Performance Between Different Models %
    模型ACCFNRFPR
    SVM75.1424.794.95
    MLP80.0818.733.91
    CNN87.6411.682.46
    Stacked LSTM97.072.750.58
    Grid LSTM97.911.990.42
    SALVID (本文)98.980.990.20
    下载: 导出CSV 
    | 显示表格

    本节基于FPGA嵌入式平台,采用独立模块化设计方式实现了自注意力机制网络层和LSTM cell基本运算单元,通过将LSTM cell计算单元在时间维度上进行堆叠得到Stacked LSTM模型;然后将Stacked LSTM拼接组合得到具有深度和时间维度的Grid LSTM模型;最后将自注意力机制网络层作为前置部分与Grid LSTM网络层进行串联,得到SALVID模型. 基于PC端训练得到的模型参数,本文选取了3种表现最佳模型所对应的模型深度列表进行比较,如表4所示.

    表  4  模型深度选择及其准确率
    Table  4.  Model Depth Selection and Their Accuracy
    模型模型深度ACC/%
    Stacked LSTM2697.07
    Grid LSTM2697.91
    SALVID (本文)2498.98
    下载: 导出CSV 
    | 显示表格

    本节将会从参数量化分析、资源消耗以及性能表现3个方面对基于FPGA的加速模型设计进行评估.

    为了加速模型推断,本文利用定点数量化的方式对模型的参数进行压缩[24]. 对训练好的模型参数范围进行分析,模型参数包括卷积函数的卷积核、LSTM内部的全连接层以及输出层的权重矩阵与偏置向量,其分布特征如图13所示.

    图  13  各网络层参数分布直方图
    Figure  13.  Histogram of parameter distribution for each network layer

    可以看到自注意力机制参数范围大致在−2~2,LSTM内部的参数范围大致在−2~2,输出层的参数范围大致在-3~3,因此,针对模型参数的定点数量化整数部分,定义其为4 b位宽,16 b总位宽,同时,模型计算过程中有累加操作,为了避免溢出,对中间计算值采用32 b总位宽和16 b整数位进行量化,激活函数则采用16 b总位宽和8 b整数位进行量化. 由于输入值只有0和1这2种情况,故用1 b无符号整数保存,输出值以8 b无符号整数存储,便于在处理系统(PS)和FPGA器件上的可编程逻辑(PL)中传输. FPGA设计中具体参数位宽的定义如表5所示.

    表  5  模型参数量化位宽定义
    Table  5.  The Bit Width Definition of Model Parameter Quantization
    网络输入权重与偏置值中间结果激活值输出
    自注意力层〈1〉〈16,4〉〈32,16〉〈16,8〉〈32,16〉
    LSTM单元〈32,16〉〈16,4〉〈32,16〉〈16,8〉〈32,16〉
    输出层〈32,16〉〈16,4〉〈32,16〉〈8〉
    下载: 导出CSV 
    | 显示表格

    其中,在FPGA设计中,未实现输出层的softmax归一化函数,这对输出值的大小顺序并不会产生影响,但却能够有效减少资源开销以及降低推断时延.

    在FPGA设计中,传统的矩阵乘法通常是已知权重矩阵,计算输入矩阵与权重矩阵的矩阵乘法结果,而在自注意力机制网络层中内部矩阵的生成具有动态特性,传统设计思路会阻塞计算过程,需要等待内部矩阵计算完成,无法与其他计算过程实现流水线优化,因此针对该计算过程,本文设计了一种基于动态矩阵的矩阵乘法运算优化方法,并与传统设计思路在FPGA器件上进行板载测试对比. 如表6所示,优化后的设计方法相比传统的设计方法,在具有相同准确度的基础上,降低了0.1 ms的推断时延.

    表  6  不同设计方法的性能
    Table  6.  The Performance of Different Design Methods ms
    设计方法推断时延
    基于动态矩阵的优化设计方法1.88
    传统的阻塞型设计方法1.98
    下载: 导出CSV 
    | 显示表格

    有效利用资源对于嵌入式系统至关重要. 基于FPGA的加速器因其高性能和高能效而被应用于从嵌入式系统到云计算的各种系统[25]. 本文对加速模型硬件资源利用进行分析. 从图14可以看出,SALVID由于内部结构复杂,占用的硬件资源最多.Grid LSTM模型中的基本计算单元具有2个维度,包括深度和时间,因此,在相同模型深度条件下,Grid LSTM的资源开销要多于Stacked LSTM.

    图  14  FPGA模型设计的资源消耗比较
    Figure  14.  Comparison of resource cost in FPGA model design

    基于Ultra96-v2嵌入式FPGA设备,本文进行了模型板载测试实验,并对Stacked LSTM, Grid LSTM, SALVID进行了性能评估. 板载测试实验数据包括从测试数据集中随机抽取的1600个类型均匀分布的样本,实验结果如图15所示.

    图  15  模型在FPGA板上测试的性能比较
    Figure  15.  Performance comparison of model tested on FPGA board

    图15可以看到,参数量化对Stacked LSTM与SALVID模型的ACC影响不大,但对Grid LSTM的影响比较明显. 其主要原因在于Grid LSTM有2个维度,2个维度的计算互相对立,这种结构有利于在FPGA上进行并行设计,然而多维特性也导致模型对参数的敏感性增强. 由于增加了自注意力层,SALVID的时延大于Grid LSTM,但SALVID的ACC比Grid LSTM高约2%. 并且自注意力层也有助于降低模型对参数的敏感性. 并且实验中测试数据的总步长为32,对应CAN网络大约30 ms的采集时间. 因此,3种模型的时延远小于CAN数据的生成时间.

    本文提出了一种结合自注意力机制与Grid LSTM的车载CAN总线网络入侵检测系统,利用自注意力机制增强原数据时序相关性,再通过多维度的Grid LSTM模型提取深层次的特征,取得了较好的检测效果.

    通过将本文所提出的SALVID与深度算法MLP,CNN,Stacked LSTM,Grid LSTM以及传统的机器学习算法SVM进行实验对比,从整体的检测效果与不同类别样本的检测效果方面进行对比,实验结果表明SALVID模型有效地提高了检测准确率(98.98%)以及降低了误报率(0.20%). 进一步地,本文提供了基于FPGA平台的模型设计方案,并在FPGA嵌入式设备上进行加速模型板载测试,实验结果表明,参数量化对模型的准确率影响较小,并且对模型的推断时延影响很小,这为基于深度学习模型的入侵检测系统的实际部署提供了一种针对FPGA嵌入式设备的实践方案.

    作者贡献声明:许鹤负责完成实验设计、调研和论文主要内容的撰写;吴迪、卢继武参与了讨论并提出了修改意见和实验思路;李仁发对论文结构和内容提出指导意见.

  • 图  1   车载通信网络架构

    Figure  1.   The architecture of vehicular communication network

    图  2   模拟攻击生成方法

    Figure  2.   Generation methods of simulation attacks

    图  3   各状态下CAN消息中CAN ID的分布特征

    Figure  3.   The distribution features of CAN ID in CAN messages of different statuses

    图  4   CAN ID的比特特征分布

    Figure  4.   The bit distribution features of CAN ID

    图  5   结合SAM与Grid LSTM的SALVID模型架构

    Figure  5.   The architecture of SALVID model combining SAM and Grid LSTM

    图  6   自注意力机制网络结构的改进

    Figure  6.   Improvement of network structure of SAM

    图  7   QKV 卷积模块单步计算过程

    Figure  7.   A single step calculation process of QKV convolution modules

    图  8   输出卷积模块单步计算

    Figure  8.   A single step calculation of output convolution module

    图  9   LSTM cell内部计算架构

    Figure  9.   The internal computing architecture of LSTM cell

    图  10   不同模型深度之间的性能

    Figure  10.   The performance between different model depths

    图  11   不同模型之间的训练稳定性

    Figure  11.   The training stability between different models

    图  12   3种模型的分类混淆矩阵

    Figure  12.   The classification confusion matrix of the three models

    图  13   各网络层参数分布直方图

    Figure  13.   Histogram of parameter distribution for each network layer

    图  14   FPGA模型设计的资源消耗比较

    Figure  14.   Comparison of resource cost in FPGA model design

    图  15   模型在FPGA板上测试的性能比较

    Figure  15.   Performance comparison of model tested on FPGA board

    表  1   生成的数据集大小

    Table  1   The Size of Generated Datasets

    CAN消息状态数据条数占比/%
    正常状态185043165.77
    DoS攻击28338110.07
    模糊攻击28338110.07
    欺骗攻击28338010.07
    重放攻击650922.31
    删除攻击477491.70
    下载: 导出CSV

    表  2   超参数设置

    Table  2   Hyperparameter Configuration

    参数取值/名称
    训练最大轮数100
    提前中断阈值5
    输出激活函数softmax
    学习率1E−3
    优化器adam
    损失函数CrossEntropyLoss
    批次大小128
    下载: 导出CSV

    表  3   不同模型之间的性能

    Table  3   The Performance Between Different Models %

    模型ACCFNRFPR
    SVM75.1424.794.95
    MLP80.0818.733.91
    CNN87.6411.682.46
    Stacked LSTM97.072.750.58
    Grid LSTM97.911.990.42
    SALVID (本文)98.980.990.20
    下载: 导出CSV

    表  4   模型深度选择及其准确率

    Table  4   Model Depth Selection and Their Accuracy

    模型模型深度ACC/%
    Stacked LSTM2697.07
    Grid LSTM2697.91
    SALVID (本文)2498.98
    下载: 导出CSV

    表  5   模型参数量化位宽定义

    Table  5   The Bit Width Definition of Model Parameter Quantization

    网络输入权重与偏置值中间结果激活值输出
    自注意力层〈1〉〈16,4〉〈32,16〉〈16,8〉〈32,16〉
    LSTM单元〈32,16〉〈16,4〉〈32,16〉〈16,8〉〈32,16〉
    输出层〈32,16〉〈16,4〉〈32,16〉〈8〉
    下载: 导出CSV

    表  6   不同设计方法的性能

    Table  6   The Performance of Different Design Methods ms

    设计方法推断时延
    基于动态矩阵的优化设计方法1.88
    传统的阻塞型设计方法1.98
    下载: 导出CSV
  • [1] 季一木,焦志鹏,刘尚东,等. 基于通信特征的CAN总线泛洪攻击检测方法[J]. 网络与信息安全学报,2020,6(1):27−37 doi: 10.11959/j.issn.2096-109x.2020005

    Ji Yimu, Jiao Zhipeng, Liu Shangdong, et al. CAN bus flood attack detection based on communication characteristics[J]. Chinese Journal of Network and Information Security, 2020, 6(1): 27−37 (in Chinese) doi: 10.11959/j.issn.2096-109x.2020005

    [2]

    Hegde R, Mishra G, Gurumurthy K S. An insight into the hardware and software complexity of ECUs in vehicles[C] //Proc of Int Conf on Advances in Computing and Information Technology. Berlin: Springer, 2011: 99−106

    [3] 李中伟,谭凯,关亚东,等. 车载CAN总线脱离攻击及其入侵检测算法[J]. 计算机应用,2020,40(11):3224−3228

    Li Zhongwei, Tan Kai, Guan Yadong, et al. In-vehicle CAN bus-off attack and its intrusion detection algorithm[J]. Journal of Computer Applications, 2020, 40(11): 3224−3228 (in Chinese)

    [4]

    Mccluskey B. Connected cars – The security challenge [connected cars cyber security] [C] //Proc of Engineering & Technology. Piscataway, NJ: IEEE, 2017: 54−57

    [5]

    Li Yufeng, Lu Xiaoyuan, Cao Chenhong, et al. A survey of cybersecurity for intelligent connected-automated vehicle[J]. Telecommunications Science, 2020, 36(4: 36−45

    [6]

    Wu Di, Jiang Zhongkai, Xie Xiaofeng, et al. LSTM learning with Bayesian and Gaussian processing for anomaly detection in industrial IoT[J]. IEEE Transactions on Industrial Informatics, 2019, 16(8): 5244−5253

    [7] 于赫. 网联汽车信息安全问题及CAN总线异常检测技术研究[D]. 长春: 吉林大学, 2016

    Yu He. Research on connected vehicle cyber security and anomaly detection technology for in-vehicle CAN bus[D]. Changchun: Jilin University, 2016 (in Chinese)

    [8] 吴武飞,李仁发,曾刚,等. 智能网联车网络安全研究综述[J]. 通信学报,2020,41(6):161−174 doi: 10.11959/j.issn.1000-436x.2020130

    Wu Wufei, Li Renfa, Zeng Gang, et al. Survey of the intelligent and connected vehicle cybersecurity[J]. Journal on Communications, 2020, 41(6): 161−174 (in Chinese) doi: 10.11959/j.issn.1000-436x.2020130

    [9]

    Hsu W N, Zhang Yu, Glass J. A prioritized grid long short-term memory RNN for speech recognition[C] //Proc of Spoken Language Technology Workshop. Piscataway, NJ: IEEE, 2016: 467−473

    [10]

    Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C] //Proc of Advances in Neural Information Processing Systems. New York: ACM, 2017: 6000−6010

    [11]

    Vuong T P, Loukas G, Gan D. Performance evaluation of cyber-physical intrusion detection on a robotic vehicle[C] //Proc of Int Conf on Computer and Information Technology Ubiquitous Computing and Communications Dependable. Piscataway, NJ: IEEE, 2015: 2106−2113

    [12]

    Cho K T, Shin K G. Fingerprinting electronic control units for vehicle intrusion detection[C] //Proc of the 25th USENIX Security Symp. Berkeley, CA: USENIX Association, 2016: 911−927

    [13]

    Zhou Jia, Joshi P, Zeng Haibo, et al. Btmonitor: Bit-time-based intrusion detection and attacker identification in controller area network[J]. ACM Transactions on Embedded Computing Systems, 2019, 18(6): 1−23

    [14]

    Choi W, Joo K, Jo H J, et al. Voltageids: Low-level communication characteristics for automotive intrusion detection system[J]. IEEE Transactions on Information Forensics and Security, 2018, 13(8): 2114−2129 doi: 10.1109/TIFS.2018.2812149

    [15]

    Hanselmann M, Strauss T, Dormann K, et al. CANet: An unsupervised intrusion detection system for high dimensional CAN bus data[J]. IEEE Access, 2020, 8: 58194−58205 doi: 10.1109/ACCESS.2020.2982544

    [16]

    Hossain M D, Inoue H, Ochiai H, et al. LSTM-based intrusion detection system for in-vehicle CAN bus communications[J]. IEEE Access, 2020, 8: 185489−185502 doi: 10.1109/ACCESS.2020.3029307

    [17]

    Xie Guoqi, Yang L T, Yang Yuanda, et al. Threat analysis for automotive CAN networks: A GAN model-based intrusion detection technique[J]. IEEE Transactions on Intelligent Transportation Systems, 2021, 22(7): 4467−4477 doi: 10.1109/TITS.2021.3055351

    [18]

    Dupont G, Lekidis A, Den H J, at el. Automotive controller area network (CAN) bus intrusion dataset v2[DB/OL]. 2019[2022-01-02].https://data.4tu.nl/articles/dataset/Automotive_Controller_Area_Network_CAN_Bus_Intrusion_Dataset/12696950

    [19] 周飞燕,金林鹏,董军. 卷积神经网络研究综述[J]. 计算机学报,2017,40(6):1229−1251 doi: 10.11897/SP.J.1016.2017.01229

    Zhou Feiyan, Jin Linpeng, Dong Jun. Review of convolutional neural network[J]. Chinese Journal of Computer, 2017, 40(6): 1229−1251 (in Chinese) doi: 10.11897/SP.J.1016.2017.01229

    [20]

    Wu Di, Xu He, Jiang Zhongkai, et al. EdgeLSTM: Towards deep and sequential edge computing for IoT applications[J]. IEEE/ACM Transactions on Networking, 2021, 29(4): 1895−1908 doi: 10.1109/TNET.2021.3075468

    [21]

    Zhang Han, Goodfellow I, Metaxas D, et al. Self-attention generative adversarial networks[C] //Proc of the 36th Int Conf on Machine Learning. San Diego, CA: ICML, 2019: 7354−7363

    [22]

    Rybalkin V, Pappalardo A, Ghaffar M M, et al. FINN-L: Library extensions and design trade-off analysis for variable precision LSTM networks on FPGAs[C] //Proc of the 28th Int Conf on Field Programmable Logic and Applications. Piscataway, NJ: IEEE, 2018: 89−897

    [23]

    Que Zhiqiang, Wang Erwei, Marikar U, et al. Accelerating recurrent neural networks for gravitational wave experiments[C] //Proc of the 32nd Int Conf on Application Specific Systems, Architectures and Processors. Piscataway, NJ: IEEE, 2021: 117−124

    [24] 张奕玮. 基于FPGA的高能效比LSTM预测算法加速器的设计与实现[D]. 合肥: 中国科学技术大学, 2018

    Zhang Yiwei. FPGA-Based design and implementation of energy-efficient LSTM prediction accelerator[D]. Hefei: University of Science and Technology of China, 2018 (in Chinese)

    [25]

    Vaishnav A, Pham K D, Koch D. A survey on FPGA virtualization[C] //Proc of the 28th Int Conf on Field Programmable Logic and Applications. Piscataway, NJ: IEEE, 2018: 131−1317

  • 期刊类型引用(2)

    1. 周憧,金振,胡琳,顾仁龙,钟善君. 基于重引力搜索算法的大规模网络无界DoS入侵检测. 电子设计工程. 2025(03): 38-42 . 百度学术
    2. 覃纯,邱思维,王启斌. 新能源汽车CAN总线通信异常断点信号识别方法. 长江信息通信. 2024(08): 78-80+96 . 百度学术

    其他类型引用(1)

图(15)  /  表(6)
计量
  • 文章访问数:  191
  • HTML全文浏览量:  37
  • PDF下载量:  98
  • 被引次数: 3
出版历程
  • 收稿日期:  2022-01-08
  • 修回日期:  2023-01-29
  • 网络出版日期:  2023-09-19
  • 刊出日期:  2023-11-30

目录

/

返回文章
返回