当前位置: 首页 > 专利查询>东南大学专利>正文

一种基于相对熵的车载CAN总线异常检测方法技术

技术编号:19515451 阅读:28 留言:0更新日期:2018-11-21 10:18
本发明专利技术公开了一种基于相对熵的车载CAN总线异常检测方法,该方法包括:在中断处理程序中,车辆上电后,检测节点开启定时中断,定时触发,实现对报文相对熵的计算,若计算的所述相对熵结果超出设定的阈值,则触发报警,否则,执行计数数据清零、窗口切换的操作;所述计算报文相对熵时,交替使用两个变长的时间窗口,分别记为窗口1和窗口2,进行增长和两组独立的计数器进行计数。本发明专利技术采用基于相对熵的异常检测算法并进行改进,提高了检测精度和检测粒度,并结合了基于白名单和时间间隔的异常检测,实现更好的检测效果。

【技术实现步骤摘要】
一种基于相对熵的车载CAN总线异常检测方法
本专利技术涉及一种CAN总线异常检测方法,具体涉及一种基于相对熵的车载CAN总线异常检测方法。
技术介绍
现在的汽车具有非常复杂的功能,车辆内部配备有大量的ECU(ElectronicControlUnit,电子控制单元),这些ECU模块通过总线的方式进行数据通信,从而实现车辆内部网络系统各个组成单元之间的协作运行。CAN(ControllerAreaNetwork,控制器局域网)总线是应用最为广泛的车载通信总线。然而,CAN总线在设计之初就没有考虑到信息安全的问题,容易遭到黑客的攻击。在当前车联网和智能网联汽车技术飞速发展的阶段,研究如何提高车载网络的安全性显得尤为重要。这既是实现车联网安全的重要组成部分,也是保证车联网和智能网联汽车走向进一步大规模应用的重要前提和保障。在车载网络的安全技术中,入侵和异常检测是其中重要的一部分。入侵检测技术通过对入侵行为和入侵企图的识别,从而可以尽早采取有效的措施修复和升级系统漏洞。在车载CAN总线网络中,入侵检测通过主动检测CAN总线工作状态,识别异常状态,发现攻击行为,对用户进行报警提示。该技术也可以作为车载CAN总线网络的加密认证等安全技术的辅助措施。对于车载CAN总线网络系统而言,在车载总线中,各种CAN消息以周期性广播的方式进行传输。在车辆正常工作,没有发生入侵行为的时候,车载CAN总线的数据交互是一个相对稳定的过程,因此一个时间窗口中,每种报文所出现的概率是相对恒定的,计算每种报文的相对熵,其相对熵是基本趋近于0的。如果存在入侵和攻击行为,CAN总线上出现了多的非法的攻击报文,则必然打破系统原先的稳定状态,相对熵的值就会发生变化。但现有的检测方法检测精度和粒度都较低,检测效果并不理想。
技术实现思路
专利技术目的:为了克服现有技术的不足,本专利技术提供一种基于相对熵的车载CAN总线异常检测方法,该方法解决了车载CAN总线网络的入侵检测精度和粒度较低和检测效果差的问题。技术方案:本专利技术所述的基于相对熵的车载CAN总线异常检测方法,该方法包括:在中断处理程序中,车辆上电后,检测节点开启定时中断,定时触发,在中断处理程序中实现对过去的一段时间窗口上的报文相对熵的计算,若计算的所述相对熵结果超出设定的阈值,则触发报警;所述计算报文相对熵时,当时间窗口长度增加到设定的最大长度值T时,执行计数数据清零、窗口切换的操作,交替使用两个变长的时间窗口,分别记为窗口1和窗口2,两个窗口上使用两组独立的计数器进行计数;在主程序中,开启定时中断,所述检测节点每收到一条报文,首先进行基于白名单的异常检测,判断是否发生异常行为;定义Ee为异常累计次数,若检测出报文类型不正常,则根据该类型报文的异常权重,增加所述异常累计次数Ee的值;当所述异常累计次数超过所述设定的阈值时,触发报警,否则,继续进行下一步的检测;若检测出报文类型正常,则进行基于时间间隔的异常检测,所述检测节点计算当前报文与上一条同类型报文的时间间隔,并计算所述时间间隔相对于正常时间间隔的偏移度,若所述偏移度处于正常范围,所述异常累计次数Ee减1,并接收下一条报文;若所述偏移度超出正常范围,则根据该类型报文的异常权重,增加异常累计次数Ee的值;当所述异常累计次数超过所述设定的阈值,触发报警,否则,继续接收下一条报文。优选的,所述正常时间间隔是指车辆生产完毕后,在正常使用过程中每种类型的CAN报文的时间间隔参考值,并将所述参考值置入CAN总线上的检测节点中。优选的,所述相对熵的计算公式为:n为车载CAN总线上报文的种类,mi为当前观测的时间窗口上第i种报文出现的数量;Mi为正常工作过程中第i种报文出现的数量;xi为车载CAN总线上的第i种报文;Q(xi)为所观测的时间窗口上报文xi出现的概率,P(xi)为正常工作的时间段上报文xi出现的概率。优选的,所述执行计数数据清零、窗口切换的操作,具体过程包括:(1)设T=2N×T0,能观测的时间窗口的最小长度为最大长度为T,在时刻t=0时,窗口1开始增长,开始计数,此后每隔时间T0中断程序触发一次;(2)在时刻时,窗口1长度增长到此时根据窗口1内各报文的计数结果{m1,m2,...,mn},计算第一个相对熵值;窗口2从此时刻开始增长,开始计数;(3)在时刻t=T时,窗口1的长度增加到T,若整个长为T的所述窗口1内都被判定为不存在异常情况,则将{m1,m2,...,mn}累加到{M1,M2,...,Mn}中;窗口1的数据清零,其长度重新从零开始增长,重新开始计数,并将程序切换到窗口2,使用窗口2的计数结果进行计算。优选的,在主程序中使用基于白名单和时间间隔的检测。所述若检测出报文类型不正常,则根据该类型报文的异常权重,调整异常累计次数的值,即将所述异常累计次数Ee加上该类型报文的异常权重。有益效果:本专利技术采用基于相对熵的异常检测算法并进行改进,提高了检测精度和检测粒度,并结合了基于白名单和时间间隔的异常检测,实现更好的检测效果。附图说明图1为本专利技术中基于白名单和时间间隔的异常检测方法流程图;图2为本专利技术所述的异常检测方法流程图。具体实施方式本专利技术中,结合两种异常检测算法,克服了在某些特殊情况下相对熵的异常检测失效的缺陷;通过使用变长的时间窗口,将基于相对熵的异常检测方法的检测粒度由时间T缩减到时间T0。算法在实践过程中,计算过程简单,无需采用复杂的循环,属于轻量级算法,分为预处理阶段和异常检测阶段,具体包括:预处理阶段:(1)车辆生产完毕,即将出厂之时,对车辆进行测试,从而统计得出各指标的参考值。其中包括:在正常使用过程中每种类型的CAN报文的出现次数,设为{M1,M2,...,Mn}和正常使用过程中每种类型的CAN报文的时间间隔参考值,设为{tref,1,tref,2,...,tref,n},第i条CAN报文的时间间隔参考值为tref,i,第i条CAN报文的出现次数记为Mi。(2)各指标的正常参考值得出之后,制造商将这些参数置入CAN总线上的检测节点中。制造商需要为异常检测算法设置阈值K,定义出在什么范围内对异常情况可忽略,在什么范围内需要报警。并根据每种类型的报文的关键程度为每种类型报文设置异常权重{α0,α1,α2,…,αn},比如某类型的报文是与汽车的动力系统相关,则异常权重值就需要设定的高一些。假设车载CAN总线上报文有{x1,x2,…,xn}共n种,每种报文的异常权重对应分别为{α1,α2,…,αn}。攻击者可能在CAN总线上发送的报文类型并不在{x1,x2,…,xn}集合内,将这些所有的具有非法标识符的报文都定义为类型x0,对应的异常权重设定为α0。异常检测阶段:(1)车辆上电后,各ECU开始通信。检测节点记录每种类型的第一条报文的到达时刻。检测节点开启定时中断,定时触发,在中断响应程序中实现相对熵的异常检测的定时计算过程,该过程详细内容见步骤(5)。(2)如图1所示,初始化tref,i,检测节点每收到一条报文,时间值记为Timenow,首先进行白名单检测,判断该报文的类型,即CAN标识符,是否正常,若报文类型不正常,则进入步骤(4);若报文类型正常,进入步骤(3)。分别使用两组独立的计数器,对每种报文的出现次数进行计数。当到达本文档来自技高网
...

【技术保护点】
1.一种基于相对熵的车载CAN总线异常检测方法,其特征在于,该方法包括:车辆上电后,检测节点开启定时中断,定时触发,在中断处理程序中实现对过去一段时间窗口内的报文相对熵的计算,若计算的所述相对熵结果超出设定的阈值,则触发报警;所述计算报文相对熵时,当时间窗口长度增加到设定的最大长度值T时,执行计数数据清零、窗口切换的操作,从而交替使用两个变长的时间窗口,分别记为窗口1和窗口2;在两个时间窗口上使用两组独立的计数器进行计数;在主程序中,开启定时中断,所述检测节点每收到一条报文,首先进行基于白名单的异常检测,判断是否发生异常行为;定义Ee为异常累计次数,若检测出报文类型不正常,则根据该类型报文的异常权重,增加所述异常累计次数Ee的值;当所述异常累计次数Ee超过所述设定的阈值时,触发报警,否则,继续进行下一步的检测;若检测出报文类型正常,则进行基于时间间隔的异常检测,所述检测节点计算当前报文与上一条同类型报文的时间间隔,并计算所述时间间隔相对于正常时间间隔的偏移度,若所述偏移度处于正常范围,所述异常累计次数Ee减1,并接收下一条报文;若所述偏移度超出正常范围,则根据该类型报文的异常权重,增加异常累计次数Ee的值;当所述异常累计次数超过所述设定的阈值,触发报警,否则,继续接收下一条报文。...

【技术特征摘要】
1.一种基于相对熵的车载CAN总线异常检测方法,其特征在于,该方法包括:车辆上电后,检测节点开启定时中断,定时触发,在中断处理程序中实现对过去一段时间窗口内的报文相对熵的计算,若计算的所述相对熵结果超出设定的阈值,则触发报警;所述计算报文相对熵时,当时间窗口长度增加到设定的最大长度值T时,执行计数数据清零、窗口切换的操作,从而交替使用两个变长的时间窗口,分别记为窗口1和窗口2;在两个时间窗口上使用两组独立的计数器进行计数;在主程序中,开启定时中断,所述检测节点每收到一条报文,首先进行基于白名单的异常检测,判断是否发生异常行为;定义Ee为异常累计次数,若检测出报文类型不正常,则根据该类型报文的异常权重,增加所述异常累计次数Ee的值;当所述异常累计次数Ee超过所述设定的阈值时,触发报警,否则,继续进行下一步的检测;若检测出报文类型正常,则进行基于时间间隔的异常检测,所述检测节点计算当前报文与上一条同类型报文的时间间隔,并计算所述时间间隔相对于正常时间间隔的偏移度,若所述偏移度处于正常范围,所述异常累计次数Ee减1,并接收下一条报文;若所述偏移度超出正常范围,则根据该类型报文的异常权重,增加异常累计次数Ee的值;当所述异常累计次数超过所述设定的阈值,触发报警,否则,继续接收下一条报文。2.根据权利要求1所述的基于相对熵的车载CAN总线异常检测方法,其特征在于,所述正常时间间隔是指车辆生产完毕后,在正常使用过程中每种类型的CAN报文的时间间隔参考值,并将所述参考值置入CAN总线上的检测节点中...

【专利技术属性】
技术研发人员:黄杰武晨旭
申请(专利权)人:东南大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1