一种CAN总线网络异常检测方法及系统

    技术2024-11-24  48


    本发明涉及车联网汽车的异常检测,特别是一种can总线网络异常检测方法及系统。


    背景技术:

    1、can总线(controller area network,can),由罗伯特·博世有限公司于1983年设计,已成为当前车载网络通信领域最为流行的标准。can总线作为一种广播媒体,采用无损的按位仲裁机制,有效解决了车辆中不同电子控制单元(ecus)之间数据传输时的冲突问题。具体而言,每个can消息都根据其功能和优先级被赋予一个can id。当两条消息发生冲突时,id值较小的消息将优先传输。通常,包含关键信息的消息,如与动力系统或车辆安全紧密相关的消息,会被分配较低的can id,而信息娱乐和远程信息处理消息则会被分配较高的can id。

    2、然而,can总线协议本身并不包含任何身份验证或加密机制。因此,攻击者有可能通过插入伪造消息来干扰车辆中的can总线通信。对于特定的can id,一旦伪造的信息淹没了正常的信息,攻击者便有可能控制目标车辆的相关操作,若该can id与动力系统或车辆安全直接相关,则可能引发严重后果。此外,随着智能交通系统(its)和物联网(iot)的快速发展,攻击接口不断扩展,包括但不限于传感器、wifi和车载诊断(obd)系统。upstreamsecurity研究团队在2021年发布的全球汽车网络安全报告中指出,基于过去十年间公开报道的633起事件,联网汽车面临的网络攻击呈现指数级增长趋势。

    3、为了提升can总线的安全性,已有多款入侵检测系统(ids)被研发并引入实际应用。然而,目前基于消息频率或序列的检测方法主要依赖于can消息的id特征,而未充分考量数据域特征,这在面对如欺骗攻击(攻击者试图通过模拟被入侵的ecu的消息传输频率来冒充这些ecu,而相关的数据域内容通常是伪造的。)等复杂威胁时可能效果不佳。此外,许多异常检测方法依赖于正负样本进行训练,但在实际场景中,有效负样本的采集往往难以与正样本数量相匹配,导致训练数据不足,存在过拟合的风险,从而不利于异常检测方法的实施。

    4、图transformer模型是一种将transformer架构扩展到图数据的新型图神经网络,该模型通过引入图注意力机制和相对位置编码,使得自注意力机制能够在图结构数据中有效应用。图注意力机制结合节点特征、边特征以及图结构信息,动态地调整节点间的权重,从而更精确地捕捉节点之间的复杂关系。此外,图transformer采用相对位置编码,充分考虑了节点之间的距离和拓扑关系,增强了模型对图结构的理解能力,进而提升了模型的表达能力。同时,前馈神经网络进一步增强了模型的非线性表示能力,而归一化和残差连接则确保了训练过程的稳定性。通过结合自注意力机制、相对位置编码和前馈神经网络,图transformer模型能够更高效地处理和分析图数据。

    5、支持向量数据描述(support vector data description,svdd)是一种用于单类分类和异常检测的方法。它旨在通过构建一个包含大部分训练数据的最小超球体来界定正常数据的边界。具体来说,svdd首先将输入数据映射到一个高维空间,以便在更高的维度上找到一个更为合适的超球体来囊括数据。在高维空间中,svdd致力于寻找一个最小的超球体,使得大多数训练数据点均位于该球体内。超球体的中心和半径是通过精确的优化算法来确定的。对于新的数据点,系统将计算其到超球体中心的距离,若该距离超过球体的半径,则判断该点为异常,否则视为正常。


    技术实现思路

    1、本发明提供一种can总线网络异常检测方法及系统,以解决现有技术中存在的未考虑数据域特征以至于无法检测欺骗攻击、以及训练集中正负样本不匹配而导致过拟合的问题。

    2、该系统旨在有效识别can总线报文中由恶意注入和修改引发的异常,并能够及时预警,从而显著减少或消除潜在风险。

    3、本发明采取的技术方案是,包括下列步骤:

    4、s100,采集车辆行驶过程中的can总线上的通信数据;

    5、s200,对获得的消息序列的数据域部分进行预处理;

    6、s300,按照时间戳顺序以特定的窗口大小对can消息流构建有向消息图;

    7、s400,划分数据集,将数据及划分为训练集、验证集和测试集;

    8、s500,使用图transformer进行图特征的提取与整合,得到图级特征;

    9、s600,使用svdd算法对图级特征进行异常检测,根据异常得分进行判断,得到can总线上的异常检测结果。

    10、本发明在步骤s100中,所述通信数据包括can消息的时间戳、can消息id和消息报文的数据域部分;采集到的通信数据经过严格的时间戳排序,形成一个消息序列。

    11、本发明在步骤s200中,对获得的消息序列的数据域部分进行预处理的方法是:

    12、对车辆在正常行驶状态下的数据应用一种名为read的can消息内容信号边界提取算法,该算法首先独立评估数据域部分每个负载位的比特翻转速率;通过计算连续消息中出现的比特翻转次数,即从0到1或从1到0的转换,然后除以有效载荷的总位数,得出每位的比特翻转率;这一阶段的输出是一个数组,包含a个元素,a表示数据域部分有效载荷的总位数,元素表示给定can消息id的数据字段中单个比特的比特翻转率,使用此比特翻转率数组来计算比特翻转量级数组;计算比特翻转量级数组的公式如下所示:

    13、

    14、式中,mi为比特翻转量级数组的第i个元素,bi为比特翻转率数组的第i个元素,i∈[1,a],表示数据域部分有效载荷的第i位;

    15、随后,该算法基于比特翻转量级数组对can消息的数据域部分进行精准划分,即从第1位到第a位扫描比特翻转量级数组,寻找满足条件的连续位对:即第一个位的比特翻转量级高于第二个位;每当发现此类位对时,算法便在两个比特之间设置一个信号边界;将具有不同can消息id的数据域部分分割成不同数量的数据块,并随后将每个数据块进一步转换为十进制数。

    16、本发明在步骤s300中,每个窗口中包含m条can消息,相较于can消息序列,有向消息图能够进一步嵌入can消息的数据域部分,其图结构同时包含边缘属性和节点属性;在由m条can消息组成的can消息图中,每个节点表示消息图中出现的can消息id,每个节点的节点属性表示这个can消息id对应的数据域部分、即由步骤s200划分好的数据块,不同can消息id对应的节点间通过有向边按时间顺序连接,即按时间戳顺序相邻的can消息id对应的节点之间的边是由时间戳小的节点指向时间戳大的节点,边属性表示在这m条消息构成的消息图中由时间戳小的节点指向时间戳大的节点的次数;

    17、在构建消息图时,图结构采用邻接矩阵表示;使用an*n表示图的邻接矩阵信息,其中n表示can消息图中的节点数,也就是在特定窗口大小的不同的can消息id的数量,使用en*n表示边属性信息、有向边上的权值,使用hn*n′表示节点属性信息,其中n′表示can id的最大数据块数,对于一些can id对应的数据块数量不足n′的情况,通过在后面补0来确保统一的数据块数量。

    18、本发明在步骤s400中,数据集划分方法如下:

    19、采用车辆正常行驶的can总线上的通信数据作为训练集,而将采集的包含从外部设备注入攻击的通信数据用作验证集和测试集;其中,训练集用于图transformer和svdd模型的初步训练,验证集则用于图transformer和svdd模型的选择和调优,而测试集则最终用于验证图transformer和svdd模型的性能;训练集、验证集和测试集的划分比例被设定为75%、15%和15%。

    20、本发明在步骤s500中,具体步骤如下:

    21、s501,图transformer模型将消息图的节点信息和边信息作为输入,模型会对每个节点i的节点特征αi∈hn*n′及节点i和节点j之间的边特征βij∈en*n进行线性投影处理,消息图中的任意一个节点对应的can消息id为i,消息图中与节点i相邻的节点对应的can消息id为j,将αi和βij映射到d维隐藏特征和中:

    22、

    23、式中,a0,b0和a0,b0是线性投影层的参数,αi表示节点i的节点特征,βij表示节点i和节点j之间的边特征,表示αi在图transformer第0层经过映射之后的节点特征,表示βij在图transformer第0层经过映射之后的边特征;

    24、s502,为了在图transformer模型中更好地捕获节点的位置信息,采用拉普拉斯特征向量作为节点信息的位置编码,并将位置编码添加到节点特征中:

    25、

    26、式中,表示拉普拉斯位置编码,表示添加了位置编码之后的节点特征;

    27、s503,对已处理好的节点特征和边特征进行多头注意力操作,以获取节点i与节点j之间的注意力得分其在这个过程中,为了更有效地利用对应节点对之间的边缘特征,将这些可用的边缘特征与通过成对关注计算得出的隐式边缘分数相结合;在计算节点i和节点j的注意力分数时,将利用边特征作为权重,以此来增强已计算的内隐注意力分数

    28、

    29、式中,qk,l,kk,l,ek,l分别表示第l层的3个参数矩阵,dk表示kk,l维度,k表示注意力数,l∈[0,l],表示多头注意力的层数,表示经过第l层注意力机制之后的节点特征,表示经过第l层注意力机制之后的边特征;

    30、s504,使用注意力分数更新节点特征和边特征;

    31、

    32、式中,表示对节点特征的多头拼接操作,其中表示从第1个头到第h个头进行拼接,和表示对边特征的多头拼接操作,vk,l表示权重矩阵,h表示注意力头数,k表示第k个注意力头,n表示图中除了节点i以外的所有节点的集合;

    33、s505,对输出的和分别进行残差链接和归一化操作,并将处理完的数据输入前馈神经网络fnn中,经过fnn的全连接层处理后,得到相应输出和随后,对这些数据再次进行残差连接和归一化操作,得到图transformer模型的最终输出;

    34、s506,分别将图transformer模型输出的节点特征和边特征使用python中的dgl库中的图级聚合方式进行聚合,得到图级特征gh和ge。

    35、本发明在步骤s600中,具体运作流程如下:

    36、s601,在训练图transformer时,svdd算法会将得到的输出拟合到一个体积最小的包含数据网络表示的超球体中,通过最小化超球体的体积,svdd算法能够迫使图transformer网络专注于提取数据中的共同变化因素;

    37、所述svdd方法的目标函数定义为:

    38、

    39、式中,xi图级特征gh或者ge,c表示超球的球心,r表示超球的半径,φ(xi;w)表示具有参数w的图transformer网络的输出,权值w={w1,...,wl},其中,wl是网络第l层的网络参数,超参数ν∈(0,1]是控制球体体积和边界违反之间的权衡,即允许将一些点映射到球体外,λ>0表示网络参数w上的权衰减正则子;

    40、s602,所述目标函数可以视为图transformer模型的损失函数,通过训练这个损失函数,可以优化异常检测模型的性能;该损失函数的表达式为:

    41、loss=λh·lossh+λe·losse

    42、式中,λh和λe表示每个损失对应的超参数,lossh和losse分别表示对两个图级特征的损失函数;

    43、s603,在异常检测过程中,svdd方法的异常分数公式定义为:

    44、

    45、sβ(x)=||φ(xi;w*)-c||2

    46、式中,w*表示训练模型的网络参数,sα(x)表示对图级特征gh的异常得分,sβ(x)表示对图级特征ge的异常得分;

    47、s604,根据异常得分来判断can总线上是否存在异常:当异常得分大于0,表示存在异常,即当前检测的图级特征位于超球范围之外;当异常得分小于或等于0时,则表示当前can总线上无攻击情况;

    48、为了降低误报率并提升检测精度,采用双重判断标准,针对每个图,首先识别其两个图级特征的异常情况,然后将这两个异常情况的集合取交集,作为最终的判断依据;只有当两个图级特征的异常得分都大于0时,才认为这个消息图中存在攻击情况。

    49、发明提供了一种can总线网络异常检测系统,包括:

    50、数据采集模块:采集车辆行驶过程中的can总线上的通信数据,所述通信数据包括can消息的时间戳、消息id和消息报文的数据域部分;

    51、数据预处理模块:对获得的数据进行预处理;对车辆在正常行驶状态下的数据应用一种名为read的can消息内容信号边界提取算法,该算法基于比特翻转率对can消息的数据内容进行精准划分;

    52、can消息图构建模块:按照时间戳顺序以特定的窗口大小对can消息流构建有向消息图;

    53、基于图transformer的图学习架构模块:使用图transformer进行图特征的提取与整合;最后得到图级特征gh和ge;

    54、基于svdd的异常检测模块:使用svdd算法对图级特征gh和ge进行异常检测;根据异常得分来判断can总线上是否存在异常,并采用双重判断标准进一步降低误报率,提高检测的精度和准确性。

    55、与现有技术相比,本发明的有益效果在于:

    56、本发明采用消息图来描述can消息流,相较于消息序列,消息图能更有效地嵌入消息数据域内容,其图结构不仅包含边属性,还包含节点属性,其中节点属性特别包含了can消息的数据域特征,这极大地有利于对欺骗攻击等异常行为的检测;通过采用基于图transformer和svdd的异常检测方法,该方法能够进一步学习消息图中各节点的位置及相互依赖关系;同时,svdd算法仅依赖正常数据进行训练,有效解决了在真实车辆环境中难以捕获can总线入侵事件导致的训练集数据不平衡和过拟合的问题,进而提升了检测精度和准确性;由于本发明采用了基于图的异常检测算法,相较于现有的基于消息序列的异常检测算法(如基于bloom滤波和集成学习以及基于汉明距离和lstm的算法),本发明提出的方法具有更低的检测延迟和更小的计算复杂度。


    技术特征:

    1.一种can总线网络异常检测方法,其特征在于,包括下列步骤:

    2.根据权利要求1所述的一种can总线网络异常检测方法,其特征在于:在步骤s100中,所述通信数据包括can消息的时间戳、can消息id和消息报文的数据域部分;采集到的通信数据经过严格的时间戳排序,形成一个消息序列。

    3.根据权利要求1所述的一种can总线网络异常检测方法,其特征在于:在步骤s200中,对获得的消息序列的数据域部分进行预处理的方法是:

    4.根据权利要求1所述的一种can总线网络异常检测方法,其特征在于:在步骤s300中,每个窗口中包含m条can消息,相较于can消息序列,有向消息图能够进一步嵌入can消息的数据域部分,其图结构同时包含边缘属性和节点属性;在由m条can消息组成的can消息图中,每个节点表示消息图中出现的can消息id,每个节点的节点属性表示这个can消息id对应的数据域部分、即由步骤s200划分好的数据块,不同can消息id对应的节点间通过有向边按时间顺序连接,即按时间戳顺序相邻的can消息id对应的节点之间的边是由时间戳小的节点指向时间戳大的节点,边属性表示在这m条消息构成的消息图中由时间戳小的节点指向时间戳大的节点的次数;

    5.根据权利要求1所述的一种can总线网络异常检测方法,其特征在于:在步骤s400中,数据集划分方法如下:

    6.根据权利要求1所述的一种can总线网络异常检测方法,其特征在于:在步骤s500中,具体步骤如下:

    7.根据权利要求1所述的一种can总线网络异常检测方法,其特征在于:在步骤s600中,具体运作流程如下:

    8.根据权利要求7所述的一种can总线网络异常检测方法,其特征在于:在步骤s604中,为了降低误报率并提升检测精度,采用双重判断标准,针对每个图,首先识别其两个图级特征的异常情况,然后将这两个异常情况的集合取交集,作为最终的判断依据;只有当两个图级特征的异常得分都大于0时,才认为这个消息图中存在攻击情况。

    9.实现如权利要求1~8任一项一种can总线网络异常检测方法的检测系统,其特征在于,包括:


    技术总结
    本发明涉及一种CAN总线网络异常检测方法及系统,属于车联网汽车的异常检测技术领域。采集并预处理车辆行驶过程中的CAN总线上的通信数据,按照时间戳顺序构建有向消息图,划分数据集,使用图Transformer得到图级特征,使用SVDD算法对图级特征进行异常检测,根据异常得分进行判断,得到CAN总线上的异常检测结果。优点是采用消息图来描述CAN消息流,有利于对欺骗攻击等异常行为的检测;通过采用基于图Transformer和SVDD的异常检测方法,有效解决了在真实车辆环境中难以捕获CAN总线入侵事件导致的训练集数据不平衡和过拟合的问题,进而提升了检测精度和准确性;具有更低的检测延迟和更小的计算复杂度。

    技术研发人员:周雪,秦贵和,梁艳花,宋佳儒,刘婉宁,刘庆欣
    受保护的技术使用者:吉林大学
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-22546.html

    最新回复(0)