CN115865735A - 基于半监督学习的can异常检测方法、系统及存储介质 - Google Patents
基于半监督学习的can异常检测方法、系统及存储介质 Download PDFInfo
- Publication number
- CN115865735A CN115865735A CN202211555487.0A CN202211555487A CN115865735A CN 115865735 A CN115865735 A CN 115865735A CN 202211555487 A CN202211555487 A CN 202211555487A CN 115865735 A CN115865735 A CN 115865735A
- Authority
- CN
- China
- Prior art keywords
- data
- anomaly detection
- anomaly
- abnormal
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明涉及安全检测技术领域,具体涉及一种基于半监督学习的CAN异常检测方法、系统及存储介质,所述方法包括以下步骤:接收预先建立的数据异常检测模型、帧间隔异常检测模型和信号异常检测模型,数据异常检测模型检测CAN数据中的数据异常,帧间隔异常检测模型检测帧间隔异常,信号异常检测CAN的信号异常;获取预设时间长度内汽车的CAN数据包,提取CAN数据;将CAN数据分别输入数据异常检测模型、帧间隔异常检测模型和信号异常检测模型,获得数据异常结果、帧间隔异常结果和信号异常结果;生成CAN异常检测结果报告。本发明的有益技术效果包括:保障CAN总线通信的安全,降低了样本数据的需求量,提高异常预测的准确度。
Description
技术领域
本发明涉及安全检测技术领域,具体涉及一种基于半监督学习的CAN异常检测方法、系统及存储介质。
背景技术
车载网络总线作为智能汽车控制系统的中枢神经,对行车安全至关重要。CAN作为车载网络总线的最佳标准之一,应用范围最为广泛,CAN在设计之初缺乏防护措施以至于容易受到攻击。CAN总线的信息安全对于自动汽车驾驶或高级驾驶辅助系统的正常运行至关重要。为了保证车辆安全,近几十年来出现了各种异常检测技术。现有的CAN流量异常检测技术可以分为两类:基于规则的方法和数据驱动的机器学习方法。基于规则的方法是利用CAN消息数据的特征,例如频率,来识别模式并制定规则以分离正常和异常样本。通过分析消息速率的比例,能够用于检测 CAN 总线中的异常注入虚假消息。除了基于频率的方法之外,本领域还存在利用周期性车载消息的间隔来构建规则作为入侵检测的方案。但这些方案进行检测时,检测的效果与规则的质量存在高关联性。建立高质量的规则是十分困难的工作,且随着CAN总线承载的应用增多,建立全面的规则已成为不可能完成的任务。
近年来,随着机器学习算法和计算能力的发展,以及数据集的积累,异常检测领域已经采用了大量的机器学习方法。通常,数据驱动的机器学习方法以监督方式应用, 其中数据集中的每个实例都被标记为正常或异常。通过机器学习算法在标记数据上进行训练,以拟合模型以自动检测不同新输入数据上的异常。尽管各种数据驱动的机器学习方法已应用于车载 CAN 总线消息数据的异常检测问题,但很少有人采用无监督或半监督方法。一般来说,正常数据总是比异常数据多得多。此外,现实世界的 CAN 总线异常数据生成总是与安全隐患有关,收集足够的异常数据可能很危险。此外,标记数据集将是一项繁琐的工作。因此亟需研究一种对样本数据需求量少的,基于机器学习的异常检测技术。
发明内容
本发明所要解决的技术问题:目前缺乏有效进行CAN通信异常检测方案的技术问题。提出了一种基于半监督学习的CAN异常检测方法、系统及存储介质,实现低样本量下CAN通信的异常检测,有助于保障CAN通信的安全。
解决上述技术问题,本发明采用如下技术方案:基于半监督学习的CAN异常检测方法,包括以下步骤:
建立数据异常检测模型、帧间隔异常检测模型和信号异常检测模型,所述数据异常检测模型用于检测所述CAN数据中的数据异常,所述帧间隔异常检测模型用于检测帧间隔异常,所述信号异常检测模型用于检测用于CAN数据的信号异常;
使用半监督学习训练数据异常检测模型、帧间隔异常检测模型和信号异常检测模型;
获取预设时间长度内汽车的CAN数据包,提取获得待检测的CAN数据;
将所述待检测的CAN数据分别输入所述数据异常检测模型、所述帧间隔异常检测模型和所述信号异常检测模型,获得数据异常结果、帧间隔异常结果和信号异常结果;
根据数据所述异常结果、所述帧间隔异常结果和所述信号异常结果生成CAN异常检测结果报告。
作为优选,所述数据异常检测模型、所述帧间隔异常检测模型和所述信号异常检测模型均包括半监督神经网络模型,所述半监督神经网络模型包括输入层、编码器神经网络、特征层、解码器神经网络、复原层、隐藏层和输出层,所述输入层的神经元与所述CAN数据对应,所述特征层经编码器神经网络与所述输入层连接,所述特征层神经元数量小于所述输入层神经元数量,所述复原层经解码器神经网络与所述特征层连接,所述复原层神经元数量与所述输入层神经元数量匹配,所述输出层经所述隐藏层与所述特征层连接,所述输出层输出所述待检测的CAN数据存在的预设异常种类的分布概率。
作为优选,训练半监督神经网络模型的方法包括:
分别制作数据异常检测、帧间隔异常检测和信号异常检测的样本数据,所述样本数据包括数据向量和标签,所述标签包括若干个异常种类标签和无异常标签;
将若干个标签为无异常标签的样本数据输入所述输入层,求解半监督神经网络模型获得所述复原层的输出;
构建复原损失函数,所述复原损失函数为所述复原层的输出与所述输入层的输入的差距;
调整所述编码器神经网络和所述解码器神经网络的参数,直至复原损失函数的值小于预设第一阈值;
将若干个包含异常种类标签和无异常标签的样本数据输入至所述输入层;
构建预测损失函数,所述预测损失函数为所述输出层与标签的差值;
调整所述隐藏层和所述输出层的参数,直至所述预测损失函数的值小于预设第二阈值。
作为优选,训练半监督神经网络模型的方法还包括:
所述输出层包括分类神经元,所述分类神经元读取无异常标签的分布概率,将无异常标签的分布概率与预设概率阈值对比,若无异常标签的分布概率大于或等于预设概率阈值,则所述分类神经元输出无异常,反之,若无异常标签的分布概率小于预设概率阈值,则所述分类神经元输出有异常。
作为优选,设置预设概率阈值的方法包括:
建立包括若干个包含异常种类标签和无异常标签的样本数据的样本集;
输入所述样本集至所述输入层,获得分类神经元的输出;
调整预设概率阈值,使所述分类神经元的输出与样本集匹配度最高。
作为优选,制作数据异常检测的样本数据的方法包括:
读取所述CAN数据包中的通信数据;
截取预设长度的通信数据作为数据向量,所述数据向量的长度与数据异常检测模型的输入层神经元数量匹配;
将所述通信数据与已知的异常通信数据比对;
若存在与所述异常通信数据相符的通信数据,则将所述数据向量的标签标记为异常标签,反之,若不存在与所述异常通信数据相符的通信数据,则将所述数据向量的标签标记为正常标签;
或者,
制作帧间隔异常检测的样本数据的方法包括:
读取所述CAN数据包中的通信数据;
截取预设长度的通信数据作为数据向量,所述数据向量的长度与所述帧间隔异常检测模型的输入层神经元数量匹配;
将通信数据与CAN协议比对,若存在异常的帧间隔,则将所述数据向量的标签标记为异常标签,反之,若不存在异常的帧间隔,则将所述数据向量的标签标记为正常标签。
作为优选,
制作信号异常检测的样本数据的方法包括:
读取所述CAN数据包中的CAN总线的信号采样数据;
截取预设长度的所述信号采样数据作为数据向量,所述数据向量的长度与所述信号异常检测模型的输入层神经元数量匹配;
若所述信号采样数据中存在与标准电平差异超过预设阈值的信号,则将数据向量的标签标记为异常标签,反之,则将所述数据向量的标签标记为正常标签。
基于半监督学习的CAN异常检测系统,用于执行如前述的基于半监督学习的CAN异常检测方法,包括数据读取模块、数据异常检测模块、帧间隔异常检测模块、信号异常检测模块和输出模块,
所述数据读取模块获取汽车的CAN数据包,提取CAN数据,所述数据读取模块将CAN数据分别输入数据异常检测模块、帧间隔异常检测模块和信号异常检测模块,所述数据异常检测模块存储有预先建立的数据异常检测模型,所述数据异常检测模型输出CAN数据的数据异常检测结果,所述帧间隔异常检测模块存储有预先建立的帧间隔异常检测模型,所述帧间隔异常检测模型输出CAN数据的帧间隔异常检测结果,所述信号异常检测模块存储有预先建立的信号异常检测模型,所述信号异常检测模型输出所述CAN数据的信号异常检测结果,所述输出模块读取数据异常检测结果、帧间隔异常检测结果和信号异常检测结果,根据数据异常检测结果、帧间隔异常检测结果和信号异常检测结果生成CAN异常检测结果报告。
一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如前述的基于半监督学习的CAN异常检测方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如前述的基于半监督学习的CAN异常检测方法。
本发明的有益技术效果包括:借助数据异常检测模型、帧间隔异常检测模型和信号异常检测模型分别对CAN通信中的数据异常、帧间隔异常和信号异常进行检测,有助于及时发现并处置异常,保障CAN总线通信的安全,提高汽车的控制安全性和可靠性;通过半监督神经网络模型,降低了对带有异常标签的样本数据的需求量,同时能够保证足够的预测准确度,实现CAN通信异常检测,不需要设置复杂的检测规则,提高了CAN通信异常检测的效率;通过设置分类神经元能够得出CAN数据是否存在异常的准确判定结果,提高异常预测的准确度。
本发明的其他特点和优点将会在下面的具体实施方式、附图中详细的揭露。
附图说明
下面结合附图对本发明做进一步的说明:
图1为本发明实施例的CAN异常检测方法流程示意图。
图2为本发明实施例的半监督神经网络模型结构示意图。
图3为本发明实施例的训练半监督神经网络模型方法流程示意图。
图4为本发明实施例的设置预设概率阈值方法流程示意图。
图5为本发明实施例的制作数据异常检测样本数据方法流程示意图。
图6为本发明实施例的制作帧间隔异常检测样本数据方法流程示意图。
图7为本发明实施例的制作信号异常检测样本数据方法流程示意图。
图8为本发明实施例的CAN异常检测系统结构示意图。
图9为本发明实施例的计算机设备结构示意图。
其中:101、输入层,102、编码器神经网络,103、特征层,104、解码器神经网络,105、复原层,106、隐藏层,107、输出层,30、计算机设备,31、存储器,32、计算机程序,33、处理器。
具体实施方式
下面结合本发明实施例的附图对本发明实施例的技术方案进行解释和说明,但下述实施例仅为本发明的优选实施例,并非全部。基于实施方式中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得其他实施例,都属于本发明的保护范围。
在下文描述中,出现诸如术语“内”、“外”、“上”、“下”、“左”、“右”等指示方位或者位置关系仅是为了方便描述实施例和简化描述,而不是指示或暗示所指的装置或者元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在本申请中描述的“一个实施例”或“一些实施例”等语句意味着在本申请的一个或多个实施例中包括该实施例描述的特定特征、结构或特点。由此,在本申请中的不同之处出现的“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等语句不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。此外,术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在对本申请实施例进行详细地解释说明之前,先对本申请实施例的应用场景予以说明。
CAN是控制器域网 (Controller Area Network, CAN) 的简称,是由研发和生产汽车电子产品的公司开发的,并最终成为国际标准,ISO11898。是国际上应用最广泛的现场总线之一。在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。随着工业测控技术和生产自动化技术的不断进步 ,传统的 RS-232、 RS-485和 CCITTV. 24通信技术已不能适应现代化的工业控制需要 ,而现场总线 ( Fieldbus)以其低廉的价格、可靠的性能而逐步成为新型的工业测控领域的通信技术。现场总线是应用在生产现场 ,在微机化测量控制设备之间实现双向串行多节点数字通信的系统 ,是一种开放式、数字化、多点通信的底层控制网络。
CAN属于总线式串行通信网络。 由于采用了许多新技术和独特的设计思想 ,与同类产品相比 , CAN 总线在数据通信方面具有可靠、实时和灵活的优点。为使设计透明和执行灵活 ,遵循 ISO /OSI标准模型 , CAN 总线结构划分为三层:物理层、数据链层和传输层。保证了节点间无差错的数据传输。CAN 总线上用“显性”和“隐性”两个互补的逻辑值表示“0”和“1”,显性和隐性分别对应物理上的两个电压值的差值。具体的,VCAN-H和VCAN-L为CAN总线收发器与总线之间的两接口引脚,信号是以两线之间的“差分”电压形式出现。在隐性状态,VCNA-H和VCANL被固定在平均电压电平附近,Vdiff近似于0,此时表示隐性位。而显性位以大于最小阀值的差分电压Vdiff表示。
CAN技术的报文传输为多主方式工作,网络上任意节点均可在任意时刻主动地向网络上其它节点发送信息,而不分主从。CAN节点只需通过对报文的标示符滤波即可实现点对点、一点对多点及全局广播等几种方式发送、接收数据。CAN总线的数据传输采用帧格式。按帧格式的不同,分为含有11位标识符的标准帧和含有29位标识符的扩展帧。CAN总线的帧类型分为数据帧、远程帧、错误帧和过载帧。CAN技术采用仲裁机制抢夺总线资源,只要总线空闲,任何单元都可以开始发送报文。如果两个或两个以上节点同时开始传送报文,那么就会有总线访问冲突。通过使用标识符的逐位仲裁可以解决这个冲突。仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧。在仲裁期间, 每一个发送器都对总线进行监测,如果发送和接收电平相同,则该节点可以继续发送报文。比如发送的是一“隐性”电平,而监视到的是一“显性”电平, 那么这个节点就失去了仲裁,必须退出发送状态。
CAN总线通信技术以其时分多主、非破坏性总线仲裁和自动检错重发等灵活、可靠的通信技术,及低廉的价格,被广泛地应用于工业自动化生产线、汽车、传感器、医疗设备、智能化大厦、电梯控制、环境控制等分布式实时系统。但CAN总线通信技术缺乏安全机制,CAN总线的通信应用中,总是存在容易受到各种攻击的缺陷。随着智能汽车技术的快速发展,由大规模组成的车联网开始出现。智能汽车中,电子控制单元,即ECU,与各种接口集成在一个越来越复杂的沟通环境。CAN总线通信的安全问题,引起人们对车辆网络安全的密切关注。尽管具有不可替代的作用和悠久的应用历史,车载网络领域的CAN协议通信仍然存在不可接受的漏洞。因为CAN总线的通信协议设计为通过固定频率传输,无针对攻击的安全措施,CAN总线通信在面对恶意黑客攻击时很脆弱。
随着车辆自动化的巨大进步,CAN总线的信息安全性对自动驾驶汽车的正常运行至关重要。为确保智能车辆安全行驶,各种CAN总线通信异常检测技术不断出现。最近,随着深度神经网络算法的蓬勃发展,许多深度学习技术开始应用于CAN通信异常的诊断。尽管各种数据驱动的机器学习方法已经应用于车载CAN的异常检测问题。但目前仍然很少有人使用无监督或半监督方法进行机器学习的训练。一般来说,CAN通信数据中的正常数据远多于异常数据。此外,现实世界中收集CAN总线异常数据始终与安全有关,收集足够多的异常数据可能存在危险。因此有必要研究基于半监督学习的,能够降低机器学习对异常数据需求量的方案。
本实施例提供了一种基于半监督学习的CAN异常检测方法,能够借助板监督学习,实现在异常数据较少的情况下,仍然能够有效的机器学习分类模型,实现CAN总线的异常检测。下面对本申请实施例涉及的CAN异常检测方法的相关内容予以说明。
基于半监督学习的CAN异常检测方法,包括以下步骤:
步骤A01)建立数据异常检测模型、帧间隔异常检测模型和信号异常检测模型,数据异常检测模型检测CAN数据中的数据异常,帧间隔异常检测模型检测帧间隔异常,信号异常检测CAN的信号异常;
步骤A02)使用半监督学习训练数据异常检测模型、帧间隔异常检测模型和信号异常检测模型;
步骤A03)获取预设时间长度内汽车的CAN数据包,提取待检测的CAN数据;
步骤A04)将待检测的CAN数据分别输入数据异常检测模型、帧间隔异常检测模型和信号异常检测模型,获得数据异常结果、帧间隔异常结果和信号异常结果;
步骤A05)根据数据异常结果、帧间隔异常结果和信号异常结果生成CAN异常检测结果报告。
分别建立数据异常检测模型、帧间隔异常检测模型和信号异常检测模型,用于检测CAN数据中的数据异常、帧间隔异常和信号异常。数据异常通常由CAN通信数据中被恶意注入了攻击代码或者由攻击代码产生的数据造成。通过与已知的攻击代码或者攻击代码产生的异常数据的对比,能够将这部分异常进行人工识别和标注,形成样本数据。但带有异常的样本数据通常数量较少,因此大部分的样本数据的标签是正常的。CAN总线通信中帧间隔是有严格的规定的,符合CAN通信协议的通信过程中,帧间隔应当严格的符合CAN通信协议。那些不符合CAN通信协议的CAN数据,将被标记为异常。信号异常通常由物理层或者数据链层出现故障造成,即出现隐性和显性的电压差的差值不再符合预设阈值的情况,此时会导致通信过程中错码,降低通信的可靠性和可用性。CAN数据包中包含了CAN总线的电压沿时序变化的采样数据以及各个ECU进行通信的数据。通过对电压的检测能够检测出CAN总线上进行的通信内容以及用于信号异常检测的电压值。ECU进行通信的数据包括收发的数据以及对CAN总线的控制和监听记录。借助数据异常检测模型、帧间隔异常检测模型和信号异常检测模型分别对CAN通信中的数据异常、帧间隔异常和信号异常进行检测,有助于及时发现并处置异常,保障CAN总线通信的安全,提高汽车的控制安全性和可靠性。
数据异常检测模型、帧间隔异常检测模型和信号异常检测模型均包括半监督神经网络模型,请参阅附图2,半监督神经网络模型包括输入层101、编码器神经网络102、特征层103、解码器神经网络104、复原层105、若干个隐藏层106和输出层107,输入层101的神经元与CAN数据对应,特征层103经编码器神经网络102与输入层101连接,特征层103神经元数量小于输入层101神经元数量,复原层105经解码器神经网络104与特征层103连接,复原层105神经元数量与输入层101神经元数量匹配,输出层107经若干个隐藏层106与特征层103连接,输出层107输出CAN数据存在的预设异常种类的分布概率。使用特征层103能够提取出输入的CAN数据中最为重要和关键的特征,从而加快半监督神经网络模型的训练速度。同时减少对样本数据的需求量。编码器神经网络102和解码器神经网络104有若干个隐藏层106神经元构成。隐藏层106神经元的输入为与之连接的上一层神经元的输出,隐藏层106神经元的输出等于全部输入的加权和,再加上偏移值后,代入激活函数获得的值。即隐藏层106神经元的输入数据用向量 X 表示,隐藏层106神经元的输出 C = g(WX+b),W为权重向量,b为偏移量,g()为激活函数。通常使用的激活函数有Relu和Sigmoid。通过半监督神经网络模型,降低了对带有异常标签的样本数据的需求量,同时能够保证足够的预测准确度,实现CAN通信异常检测,不需要设置复杂的检测规则,提高了CAN通信异常检测的效率。
请参阅附图3,训练半监督神经网络模型的方法包括:
步骤B01)分别制作数据异常检测、帧间隔异常检测和信号异常检测的样本数据,样本数据包括数据向量和标签,标签包括若干个异常种类标签和无异常标签;
步骤B02)将若干个标签为无异常标签的样本数据输入输入层101,求解半监督神经网络模型获得复原层105的输出;
步骤B03)构建复原损失函数,复原损失函数为复原层105的输出与输入层101的输入的差距;
步骤B04)调整编码器神经网络102和解码器神经网络104的参数,直至复原损失函数的值小于预设第一阈值;
步骤B05)将若干个包含异常种类标签和无异常标签的样本数据输入至输入层101;
步骤B06)构建预测损失函数,预测损失函数为输出层107与标签的差值;
步骤B07)调整若干个隐藏层106和输出层107的参数,直至预测损失函数的值小于预设第二阈值。
本实施例中,编码器神经网络102和解码器神经网络104均采用一层神经元,记W为编码器神经网络102权重向量,W′为解码器神经网络104权重向量,则特征层103神经元的输出可以表示为C=g(WX+b),g()为编码器神经网络102的神经元采用的激活函数,解码器神经网络104的输出可以表示为X′= g′(W′C + b′),b′表示解码器神经网络104神经元的偏移量向量g′()为解码器神经网络104的神经元采用的激活函数。
复原损失函数值L可以计算如下:L=l(X,X ′),其中 l()表示所选的复原损失函数。通常可以使用向量X和向量X ′的向量差的模表示。也可以采用均方误差作为复原损失函数。
在训练阶段,将无异常的样本数据输入到自动编码器训练权重,最大限度地减少复原损失函数值L为目标,使用反向传播机制作为更新方法。然后在验证阶段,采用很少的异常数据样本来微调良好的预设概率阈值。
训练半监督神经网络模型的方法还包括:输出层107包括分类神经元,分类神经元读取无异常标签的分布概率,将无异常标签的分布概率与预设概率阈值对比,若无异常标签的分布概率大于或等于预设概率阈值,则分类神经元输出无异常,反之,若无异常标签的分布概率小于预设概率阈值,则分类神经元输出有异常。
请参阅附图4,设置预设概率阈值的方法包括:步骤C01)建立包括若干个包含异常种类标签和无异常标签的样本数据的样本集;
步骤C02)将样本集输入至输入层101,求解半监督神经网络模型获得分类神经元的输出;
步骤C03)调整预设概率阈值,使分类神经元的输出与样本集匹配度最高。
本实施例提供了用于评估整体所选模型的性能的指标。其中,真阳性 (TP),表示正确数检测到的异常,真阴性 (TN),表示正确检测到的正常值数,假阳性 (FP)表示错误检测到的数量异常,以及代表首先获得错误检测到的法线数。这些指标包括准确度、精度、召回率、F1值和ROC-AUC值。准确度𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦=(𝑇𝑃+𝑇𝑁)/( 𝑇𝑃+𝑇𝑁+𝐹𝑃+𝐹𝑁),精度𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛=𝑇𝑃/( 𝑇𝑃+ 𝐹𝑃),召回率𝑅𝑒𝑐𝑎ll= 𝑇𝑃/( 𝑇𝑃+ 𝐹N),F1值=2×(𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛×𝑅𝑒𝑐𝑎ll)/( 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑅𝑒𝑐𝑎ll)。通过设置分类神经元能够得出CAN数据是否存在异常的准确判定结果,提高异常预测的准确度。
由表1可见,使用全监督训练的模型具有更高的性能,但在半监督训练中,本实施例提供的半监督神经网络模型,与其他已公开的半监督神经网络模型相比,具有更好的综合性能。
表1 各类模型用于CAN异常检测的性能对比
请参阅附图5,制作数据异常检测的样本数据的方法包括:
步骤D01)读取CAN数据包中的通信数据;
步骤D02)截取预设长度的通信数据作为数据向量,数据向量的长度与数据异常检测模型的输入层101神经元数量匹配;
步骤D03)将通信数据与已知的异常通信数据比对;
步骤D04)若存在与异常通信数据相符的通信数据,则将数据向量的标签标记为异常标签,反之,若不存在与异常通信数据相符的通信数据,则将数据向量的标签标记为正常标签。
数据异常通常由CAN通信数据中被恶意注入了攻击代码或者由攻击代码产生的数据造成。通过与已知的攻击代码或者攻击代码产生的异常数据的对比,能够将这部分异常进行人工识别和标注,形成样本数据。
请参阅附图6,制作帧间隔异常检测的样本数据的方法包括:
步骤E01)读取CAN数据包中的通信数据;
步骤E02)截取预设长度的通信数据作为数据向量,数据向量的长度与帧间隔异常检测模型的输入层101神经元数量匹配;
步骤E03)将通信数据与CAN协议比对,若存在异常的帧间隔,则将数据向量的标签标记为异常标签,反之,若不存在异常的帧间隔,则将数据向量的标签标记为正常标签。CAN总线通信中帧间隔是有严格的规定的,符合CAN通信协议的通信过程中,帧间隔应当严格的符合CAN通信协议。那些不符合CAN通信协议的CAN数据,将被标记为异常。CAN总线通信中帧间隔包括正常帧间隔、暂停间隔、空闲段和应答间隔。正常帧间隔包括为区分上一帧数据而设置的间隔,为连续3个隐性位。暂停间隔是在处于被动错误状态的节点在占用CAN总线发送帧间隔时,CAN总线会在帧间隔中插入8个连续隐性位的暂停段。空闲段为连续隐性位,个数不一定,0个或者多个都可以。总线空闲的时间是任意长的,只要CAN总线空闲,节点就可以竞争CAN总线。因此,当出现连续4个隐性位,但又不存在节点发送的错误状态时,即存在帧间隔异常,表示节点为严格按照CAN通信协议收发数据,即节点可能遭到攻击或者本身出现故障。
请参阅附图7,制作信号异常检测的样本数据的方法包括:
步骤F01)读取CAN数据包中的CAN总线的信号采样数据;
步骤F02)截取预设长度的信号采样数据作为数据向量,数据向量的长度与信号异常检测模型的输入层101神经元数量匹配;
步骤F03)信号采样数据中存在与标准电平差异超过预设阈值的信号,则将数据向量的标签标记为异常标签,反之,则将数据向量的标签标记为正常标签。
信号异常通常由物理层或者数据链层出现故障造成,即出现隐性和显性的电压差的差值不再符合预设阈值的情况,此时会导致通信过程中错码,降低通信的可靠性和可用性。CAN数据包中包含了CAN总线的电压沿时序变化的采样数据以及各个ECU进行通信的数据。通过对电压的检测能够检测出CAN总线上进行的通信内容以及用于信号异常检测的电压值。ECU进行通信的数据包括收发的数据以及对CAN总线的控制和监听记录。
基于半监督学习的CAN异常检测系统,用于执行如前述的基于半监督学习的CAN异常检测方法,请参阅附图8,包括数据读取模块、数据异常检测模块、帧间隔异常检测模块、信号异常检测模块和输出模块,数据读取模块获取汽车的CAN数据包,提取CAN数据,数据读取模块将CAN数据分别输入数据异常检测模块、帧间隔异常检测模块和信号异常检测模块,数据异常检测模块存储有预先建立的数据异常检测模型,数据异常检测模型输出CAN数据的数据异常检测结果,帧间隔异常检测模块存储有预先建立的帧间隔异常检测模型,帧间隔异常检测模型输出CAN数据的帧间隔异常检测结果,信号异常检测模块存储有预先建立的信号异常检测模型,信号异常检测模型输出CAN数据的信号异常检测结果,输出模块读取数据异常检测结果、帧间隔异常检测结果和信号异常检测结果,根据数据异常检测结果、帧间隔异常检测结果和信号异常检测结果生成CAN异常检测结果报告。
另一方面,本申请实施例提供了一种计算机设备,请参阅附图9,计算机设备30包括存储器31、处理器33以及存储在存储器31中并可在处理器33上运行的计算机程序32,计算机程序32被处理器33执行时实现如前述的基于半监督学习的CAN异常检测方法。
计算机设备可以是一个通用计算机设备或一个专用计算机设备。在具体实现中,计算机设备可以是包括有多个服务器的服务器集群,如可以是包括有多个节点的区块链系统。本领域技术人员可以理解,图9仅仅是计算机设备的举例,并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,比如还可以包括输入输出设备、网络接入设备等。
处理器33可以是中央处理单元(Central Processing Unit,CPU),处理器33还可以是其他通用处理器33、数字信号处理器33(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器33可以是微处理器33或者也可以是任何常规的处理器33。
存储器31在一些实施例中可以是计算机设备的内部存储单元,比如计算机设备的硬盘或内存。存储器31在另一些实施例中也可以是计算机设备的外部存储设备,比如计算机设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器31还可以既包括计算机设备的内部存储单元也包括外部存储设备。存储器31用于存储操作系统、应用程序、引导装载程序(Boot Loader)、数据以及其他程序等。存储器31还可以用于暂时地存储已经输出或者将要输出的数据。
另一方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序32,计算机程序32被处理器33执行时实现如前述的基于半监督学习的CAN异常检测方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,熟悉该本领域的技术人员应该明白本发明包括但不限于附图和上面具体实施方式中描述的内容。任何不偏离本发明的功能和结构原理的修改都将包括在权利要求书的范围中。
Claims (10)
1.基于半监督学习的CAN异常检测方法,用于CAN数据的异常检测,其特征在于,
包括以下步骤:
建立数据异常检测模型、帧间隔异常检测模型和信号异常检测模型,所述数据异常检测模型用于检测所述CAN数据中的数据异常,所述帧间隔异常检测模型用于检测所述CAN数据的帧间隔异常,所述信号异常检测模型用于检测所述CAN数据的信号异常;
使用半监督学习训练数据异常检测模型、帧间隔异常检测模型和信号异常检测模型;
获取预设时间长度内汽车的CAN数据包,提取待检测的CAN数据;
将所述待检测的CAN数据分别输入所述数据异常检测模型、所述帧间隔异常检测模型和所述信号异常检测模型,获得数据异常结果、帧间隔异常结果和信号异常结果;
根据所述数据异常结果、所述帧间隔异常结果和所述信号异常结果生成CAN异常检测结果报告。
2.根据权利要求1所述的基于半监督学习的CAN异常检测方法,其特征在于,
所述数据异常检测模型、所述帧间隔异常检测模型和所述信号异常检测模型均包括半监督神经网络模型,所述半监督神经网络模型包括输入层、编码器神经网络、特征层、解码器神经网络、复原层、隐藏层和输出层,所述输入层的神经元与所述CAN数据对应,所述特征层经编码器神经网络与所述输入层连接,所述特征层神经元数量小于所述输入层神经元数量,所述复原层经解码器神经网络与所述特征层连接,所述复原层神经元数量与所述输入层神经元数量匹配,所述输出层经所述隐藏层与所述特征层连接,所述输出层输出所述待检测的CAN数据存在的预设异常种类的分布概率。
3.根据权利要求2所述的基于半监督学习的CAN异常检测方法,其特征在于,
训练半监督神经网络模型的方法包括:
分别制作数据异常检测、帧间隔异常检测和信号异常检测的样本数据,所述样本数据包括数据向量和标签,所述标签包括若干个异常种类标签和无异常标签;
将若干个标签为无异常标签的样本数据输入所述输入层,求解半监督神经网络模型获得所述复原层的输出;
构建复原损失函数,所述复原损失函数为所述复原层的输出与所述输入层的输入的差距;
调整所述编码器神经网络和所述解码器神经网络的参数,直至复原损失函数的值小于预设第一阈值;
将若干个包含异常种类标签和无异常标签的样本数据输入至所述输入层;
构建预测损失函数,所述预测损失函数为所述输出层与标签的差值;
调整所述隐藏层和所述输出层的参数,直至所述预测损失函数的值小于预设第二阈值。
4.根据权利要求3所述的基于半监督学习的CAN异常检测方法,其特征在于,
训练半监督神经网络模型的方法还包括:
所述输出层包括分类神经元,所述分类神经元读取无异常标签的分布概率,将无异常标签的分布概率与预设概率阈值对比,若无异常标签的分布概率大于或等于预设概率阈值,则所述分类神经元输出无异常,反之,若无异常标签的分布概率小于预设概率阈值,则所述分类神经元输出有异常。
5.根据权利要求4所述的基于半监督学习的CAN异常检测方法,其特征在于,
设置预设概率阈值的方法包括:
建立包括若干个包含异常种类标签和无异常标签的样本数据的样本集;
输入所述样本集至所述输入层,获得分类神经元的输出;
调整预设概率阈值,使所述分类神经元的输出与样本集匹配度最高。
6.根据权利要求3至5任一项所述的基于半监督学习的CAN异常检测方法,其特征在于,
制作数据异常检测的样本数据的方法包括:
读取所述CAN数据包中的通信数据;
截取预设长度的通信数据作为数据向量,所述数据向量的长度与所述数据异常检测模型的输入层神经元数量匹配;
将通信数据与已知的异常通信数据比对;
若存在与所述异常通信数据相符的通信数据,则将所述数据向量的标签标记为异常标签,反之,若不存在与所述异常通信数据相符的通信数据,则将所述数据向量的标签标记为正常标签;
或者,
制作帧间隔异常检测的样本数据的方法包括:
读取所述CAN数据包中的通信数据;
截取预设长度的通信数据作为数据向量,所述数据向量的长度与所述帧间隔异常检测模型的输入层神经元数量匹配;
将通信数据与CAN协议比对,若存在异常的帧间隔,则将所述数据向量的标签标记为异常标签,反之,若不存在异常的帧间隔,则将所述数据向量的标签标记为正常标签。
7.根据权利要求3至5任一项所述的基于半监督学习的CAN异常检测方法,其特征在于,
制作信号异常检测的样本数据的方法包括:
读取所述CAN数据包中的CAN总线的信号采样数据;
截取预设长度的所述信号采样数据作为数据向量,所述数据向量的长度与所述信号异常检测模型的输入层神经元数量匹配;
若所述信号采样数据中存在与标准电平差异超过预设阈值的信号,则将所述数据向量的标签标记为异常标签,反之,则将所述数据向量的标签标记为正常标签。
8.基于半监督学习的CAN异常检测系统,用于执行如权利要求1至7任一项所述的基于半监督学习的CAN异常检测方法,其特征在于,
包括数据读取模块、数据异常检测模块、帧间隔异常检测模块、信号异常检测模块和输出模块,
所述数据读取模块获取汽车的CAN数据包,提取CAN数据,所述数据读取模块将所述CAN数据分别输入数据异常检测模块、帧间隔异常检测模块和信号异常检测模块,所述数据异常检测模块存储有预先建立的数据异常检测模型,所述数据异常检测模型输出所述CAN数据的数据异常检测结果,所述帧间隔异常检测模块存储有预先建立的帧间隔异常检测模型,所述帧间隔异常检测模型输出所述CAN数据的帧间隔异常检测结果,所述信号异常检测模块存储有预先建立的信号异常检测模型,所述信号异常检测模型输出所述CAN数据的信号异常检测结果,所述输出模块读取数据异常检测结果、帧间隔异常检测结果和信号异常检测结果,根据数据异常检测结果、帧间隔异常检测结果和信号异常检测结果生成CAN异常检测结果报告。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7任一项所述的基于半监督学习的CAN异常检测方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于半监督学习的CAN异常检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211555487.0A CN115865735A (zh) | 2022-12-06 | 2022-12-06 | 基于半监督学习的can异常检测方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211555487.0A CN115865735A (zh) | 2022-12-06 | 2022-12-06 | 基于半监督学习的can异常检测方法、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115865735A true CN115865735A (zh) | 2023-03-28 |
Family
ID=85670268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211555487.0A Pending CN115865735A (zh) | 2022-12-06 | 2022-12-06 | 基于半监督学习的can异常检测方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115865735A (zh) |
-
2022
- 2022-12-06 CN CN202211555487.0A patent/CN115865735A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11665178B2 (en) | Methods and arrangements for message time series intrusion detection for in-vehicle network security | |
US10911182B2 (en) | In-vehicle information processing for unauthorized data | |
US11438350B2 (en) | Unauthorized communication detection method, unauthorized communication detection system, and non-transitory computer-readable recording medium storing a program | |
US11423145B2 (en) | Methods and arrangements for multi-layer in-vehicle network intrusion detection and characterization | |
US11757903B2 (en) | Unauthorized communication detection reference deciding method, unauthorized communication detection reference deciding system, and non-transitory computer-readable recording medium storing a program | |
Lin et al. | Retracted: An Evolutionary Deep Learning Anomaly Detection Framework for In-Vehicle Networks-CAN Bus | |
AU2019308828B2 (en) | Message source detection in a vehicle bus system | |
US20230370480A1 (en) | Unauthorized communication detection reference deciding method, unauthorized communication detection reference deciding system, and non-transitory computer-readable recording medium storing a program | |
EP3772839B1 (en) | Security module for a serial communications device | |
CN111885060B (zh) | 面向车联网的无损式信息安全漏洞检测系统和方法 | |
WO2018168291A1 (ja) | 情報処理方法、情報処理システム、及びプログラム | |
CN109845219B (zh) | 用于一车辆的验证装置 | |
Tanksale | Intrusion detection for controller area network using support vector machines | |
CN115412279A (zh) | 用于防止对车辆的网络攻击的方法及相应装置 | |
CN115865735A (zh) | 基于半监督学习的can异常检测方法、系统及存储介质 | |
Murvay et al. | Physical Layer Intrusion Detection and Localization on CAN Bus | |
Liu et al. | Source identification from In-Vehicle CAN-FD signaling: what can we expect? | |
Pöyhönen et al. | Cyber security of vehicle CAN bus | |
Yli-Olli | Machine Learning for Secure Vehicular Communication: an Empirical Study | |
Kumbhare et al. | Study of KWP2000, CAN, and UDS Communication Protocols for Automotive Diagnostic | |
Hamad et al. | Intrusion detection system using artificial intelligence for internal messages of robotic cars | |
Carvalho | Automated and intelligent hacking detection system | |
CN112448942A (zh) | 用于识别网络中的变差的方法 | |
CN115292699A (zh) | 识别/评价对车辆的电子数据系统的入侵 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |