王理冬
(1.安徽省电子产品监督检验所,安徽 合肥 230061;2.安徽省信息安全测评中心,安徽 合肥 230061)
近年来,随着车联网技术的飞速发展,现代汽车已经由传统的人工控制向网络控制的方向迈进。车联网的概念源自物联网,即车辆物联网,在这种模式下,车辆充当了信息感知对象的角色,借助新一代的信息通信技术,实现了车辆内部设备之间、车辆与车辆、车辆与人以及车辆与平台之间的网络连接。文中讨论的车载网络,指由车载控制单元组成的局域通信网络,主要用于车内网络。
针对车载网络,大量的学者进行了研究,涉及了如车载网络通信[1]、车辆隐私保护[2]等方面。然而,随着车载网络的连接性和可及性不断地提高,导致目前车载网络的受攻击面越来越广,网络数据可以通过多种途径进入车载网络内部,因此车辆会面临大量外来数据入侵的威胁。如果缺乏基本的安全措施,网络攻击者能轻易地对这些车载网络发起攻击并导致系统崩溃。为车载网络提供保护已成为目前亟待解决的问题。
生成对抗网络是一种深度学习模型,由生成器和判别器两个组件组成,在实际的应用中,生成器和判别器可以有多个。生成对抗网络的目标在于通过训练生成器和判别器之间的对抗博弈来生成具有逼真度的数据样本[3]。
首先,生成器通过神经网络模型学习真实数据的分布,生成虚假数据;然后判别器学习真数据和假数据的分布,对数据进行判别,并将反馈传递给生成器,激励生成器生成的数据更接近真实数据。生成对抗网络的核心思想是通过两个相互对抗的模型之间的竞争,交替训练生成器和判别器,逐渐提升生成器生成样本的逼真度,使其尽可能地与真实数据相似,同时让判别器更加准确地区分真假样本。
车载网络是汽车内部传感器、控制器和执行器之间进行点对点信号传递从而形成复杂的网状结构。控制器区域网(Controller Area Network,CAN)总线作为车载网络中的标准总线,被广泛用于车载网络的通信,支持所有电子控制单元(Electronic Control Unit,ECU)之间的高效通信。
入侵检测系统(Intrusion Detection System,IDS)用于对网络上的数据流进行收集,并分析其中的信息,以检测网络中是否存在违背安全策略和进行攻击的流量,为系统提供实时有效的保护。它可以实时监控车内系统,实时检测ECU 产生的可疑网络事件[4]。当前IDS 已经成为许多专家学者研究的热点。Song 等人提出了一种基于CAN 数据时间间隔分析的检测模型,Lee 等人提出了一种通过监测CAN 数据的请求和响应的时间间隔来检测入侵的方法。
本系统可应用于容易受到攻击的车载网络中,对车载网络接收的流量进行分析,识别出恶意流量。由于本系统部署在轻量级的设备上,所占用的车内体积极小,也可以直接集成在资源有所剩余的车载网络当中,从而大大节省车辆空间和成本。
CAN 总线支持电子控制单元之间的通信。在CAN 总线中,消息频繁传输,CAN 总线每秒大约接受2000 个CAN 数据,入侵检测系统必须能够处理由电子控制单元生成的大量实时CAN 数据。因此,将连续27 个CAN 数据合成一张彩色图,用于快速检测数据。
首先,把正常的数据和恶意的数据一起放入判别器D1 进行判别,以区分恶意数据和正常数据,然后把随机的数据放入生成器中,生成假的数据,判别器D2 只接收正常的数据和生成的数据。通过不断的训练,可以得到性能良好的判别器,以用于车载网络的攻击检测。其框架流程如图1 所示。
图1 框架流程图
本系统还融入了深度学习技术。GAN 是一种深度学习模型,通常被用来生成与真实图像相似的假图像,将其应用于设计IDS。对车载网络的攻击检测过程如图2 所示。
图2 检测过程图
其中,判别器D1 的输入是CAN 数据,用来检测已知攻击,若输出结果小于阈值则认为存在已知的恶意数据;若输出结果不小于阈值,则放入判别器D2 中检测未知攻击,如果判别器D2 的输出结果小于阈值,则认为存在未知的恶意数据,不小于阈值则认为数据正常。一般将判别器D1 和判别器D2的阈值定义为0.1。
原始数据集选用韩国HCRL 实验室的Car-Hacking 数据集,其中既包含文本文件,也包含表格文本。为了方便观察,统一把文本文件转换成表格文件,在对表格文件观察时,发现数据中存在一些“脏数据”,即一些十六进制数据位置发生了移位,同时,还有一些数据存在空值,通过使用python中的pandas 扩展程序库,对数据位置异常的原始样本进行归位,但有些数据中某几项为空值,从而导致了数据的格式异常,删除格式异常的数据样本。形成如表1 所示的干净数据集。
表1 干净数据集
其中,Label 为0,代表的是正常的数据;Label为1,代表的是每分钟转数(RPM)欺骗攻击;Label为2,代表的是齿轮(Gear)欺骗攻击;Label 为3,代表的是拒绝服务(Dos)攻击;Label 为4,代表的是模糊(Fuzzy)攻击。
每分钟转数欺骗攻击是通过干扰车辆的车速传感器和控制系统来误导或欺骗车辆的计算机系统,使其错误地显示或记录转速信息。齿轮欺骗攻击是通过欺骗车辆或机械设备的传动系统,误导其显示或传输错误的齿轮信息。拒绝服务攻击是通过不断向目标服务器或网络发送大量请求或恶意数据流量,耗尽其资源,导致系统过载或崩溃,从而使合法用户无法访问该系统或网络。模糊攻击通常用于发现软件或系统中潜在的漏洞和错误。
由于卷积神经网络在图像分类上具有突出的优势,因此把原始数据集转化为图像数据,利用卷积神经网络进行数据处理。首先,将表1 中ID 和Data 数据(D0~D7)转换成9 个重要特征,然后把重要特征中的十六进制数据转换为十进制数据,最后对数据进行归一化,结果如表2 所示。
表2 归一化后的数据集
数据归一化后,根据干净数据集中的Timestamp(时间戳)和特征大小,将数据样本转换为块状。由于归一化后的数据有9 个重要的特征,为了将数据样本转换为块状数据,就选取27 个连续时间戳的样本(27×9=9×9×3),转换成形状大小为9×9×3 的方形彩色图像。因此,每个转换后的图像是一个具有三通道(红、绿、蓝)的方形彩色图像。由于这些彩色图像是根据连续的时间戳生成的数据样本,因此能够保留数据的时序完整性。
在把CSV 文件进行处理并转换成RGB 图像后,下一步将对生成对抗网络进行设计和训练。判别器由三层的卷积神经网络组成,生成器由五层的反卷积神经网络组成,将图片数据通过反卷积减少通道数、扩展维数,使得与判别器的输入数据大小相同,从而形成一幅图像。生成器和判别器通过反向传播计算损失,从而减少模型实际值和输出之间的误差。
判别器D1 接收从车辆中提取的正常CAN 图像和异常CAN 图像。判别器D1 在训练过程中使用了已知的攻击数据,所以只能对已知的攻击进行检测。生成器和判别器D2 通过一个对抗博弈的过程进行训练,生成器通过使用随机噪声来生成假图像,判别器D2 接收正常的CAN 图像和生成器生成的图像,并计算接收到的图像是真实CAN 图像的概率。也就是说,判别器D2 鉴别输入的图像是真实的CAN 图像还是由生成器生成的假图像。生成器和判别器D2 相互竞争,提高了它们的性能。在训练的过程中,判别器D2 最终取胜,因此判别器D2 可以检测到与真实CAN 图像相似的假图像。
由于数据集中存在攻击数据和正常数据,因此对公式中相关符号的定义如表3 所示。
表3 相关符号的定义
对准确率、精准度和召回率的具体计算方法作如下定义。
公式(1)中Accuracy 是模型的准确率,如果模型能把攻击流量和正常流量准确识别,那么模型准确率为100%。
公式(2)中Precison 是模型的精准度,如果模型不把正常流量识别为攻击流量,那么模型的精准度为100%。
公式(3)中Recall 是模型的召回率,如果模型能识别所有的攻击流量,那么模型的召回率为100%。
首先,我们测试了判别器D1 的性能。根据表4 中判别器D1 对每个已知攻击的精准度分析,判别器D1对使用的攻击数据表现出了很好的检测能力。然而,实验结果也表明,未用于训练的攻击数据很难被判别器D1 检测出来,例如“Fuzzy”行与“RPM精准度”列交叉处代表的是用Fuzzy数据训练的判别器D1 对RPM攻击检测的精准度为32.6%。因此,我们使用正常数据和生成的数据训练了判别器D2。这样,判别器D2将能够更好地应对未知攻击数据的检测需求。
表4 判别器D1 的性能
其次,我们通过准确率、精准度和召回率对判别器D2 进行性能评估。评估情况如表5 所示。
表5 判别器D2 的性能
判别器D2 在训练过程中没有使用任何攻击数据。实验结果表明,判别器D2 对四种攻击的平均准确率为98%。虽然精准度低于99%,但我们可以通过将判别器D2 与使用攻击数据进行训练的判别器D1 相结合,来提高模型的精准度。
当前的研究与实践中,将生成对抗网络应用于入侵检测系统的方法并不多见,文章提出的技术路线,为构建入侵检测系统提供了新的思路。考虑到车载网络的实际情况,我们选择在资源量较少的树莓派中运行,以更好地符合实际工况。在某些特殊情况下,也可以直接把体积较小的树莓派植入汽车系统,集成在车载网络中,以确保入侵检测系统的有效部署。