• 287.11 KB
  • 2022-04-22 13:45:07 发布

一种基于C4.5算法的车载CAN总线恶意帧检测方案.pdf

  • 9页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'中国科技论文在线http://www.paper.edu.cn一种基于C4.5算法的车载CAN总线恶意帧检测方案**曾润,郭燕慧5(北京邮电大学网络空间安全学院,北京100876)摘要:伴随着车联网的飞速发展和汽车智能化的不断提高,车联网安全问题日益突出。车载CAN总线网络作为车内网络的核心,其脆弱性直接影响车辆行驶安全。现有CAN总线检测相关的研究成果多是基于ID、频率或负载,存在算法适用范围有限、计算复杂、实施困难等问题。针对这些问题,本文从CAN总线数据载荷出发,设计了一种基于C4.5算法的CAN10总线恶意帧快速检测方法。并对方法有效性进行了测试。实验证明该方法能有效检测出恶意帧。关键词:车联网;CAN总线;恶意帧;异常检测;C4.5中图分类号:TP39315AMaliciousFrameDetectionSchemeforVehicleCANBusBasedonC4.5AlgorithmZengRun,GuoYanhui(SchoolofNetworkandSpaceSecurity,BeijingUniversityofPostsandTelecommunications,Beijing100876)20Abstract:Withtherapiddevelopmentofvehiclenetworkingandthecontinuousimprovementofvehicleintelligence,thesafetyofvehiclenetworkinghasbecomeincreasinglyprominent.VehicleCANbusnetwork,asthecoreofvehiclenetwork,itsvulnerabilitydirectlyaffectsthevehiclesafety.TheexistingresearchresultsofCANbusdetectionaremostlybasedonID,frequencyorload,andthesemethodhavemanyproblemssuchaslimitedrangeofapplication,complexcalculationand25difficultimplementation.Tosolvetheseproblems,afastframedetectionschemeforCANbusbasedonC4.5algorithmisdesignedinthispaper,whichisbasedontheCANbusdatapayload.Thevalidityoftheschemaistestedandverified.Experimentalresultsshowthatthisschemecandetectmaliciousframeseffectively.Keywords:vehiclenetworking;CANbus;maliciousframe;anomalydetection;C4.5300引言车联网采用各种通信网络技术实现汽车控制、导航定位、联网应用等功能,为驾驶者带来了快捷方便的汽车应用服务。随着车辆智能化提高,车载网络需要完成的工作也愈发复杂。35CAN总线是目前使用最广泛的车载网络技术,几乎所有汽车制造商都采用CAN总线作为汽车内部控制系统的数据通信网络,CAN总线的应用大大简化了车身线路的布局。在享受汽车智能化带来便捷和舒适的同时,信息安全问题也逐渐集聚和浮现。近年来,车联网安全事件层出不穷,JEEP、丰田、福特、特斯拉、比亚迪等品牌车型相继被黑客攻[1]击。汽车黑客通过入侵车载CAN总线网络拿到任意读写权限,实现对车辆的非法控制,40对行车安全造成极大威胁。截至目前,车联网行业尚无针对CAN总线的统一有效的异常检测或安全防御方法。因此,本文选择将车载CAN总线异常检测作为研究重点。作者简介:曾润(1992-),男,硕士研究生,主要研究方向:移动应用安全、车联网安全通信联系人:郭燕慧(1974-),女,副教授,硕导,主要研究方向:信息内容安全、信息安全管理.E-mail:yhguo@bupt.edu.cn-1- 中国科技论文在线http://www.paper.edu.cn[2][3][4]当前对CAN总线异常检测的研究大致包括基于ID、频率和负载等,均是基于CAN总线及协议特性的检测,并不关注数据本身。其中,ID检测无法识别携带白名单ID的异常数据;频率检测对非周期帧不起作用;基于总线负载的检测对小数据量的注入攻击无效。此45外,总线负载变化频繁且计算相对复杂,不适用于车载环境。针对上述问题,有研究者提出了基于语义检测的思想,即通过对总线数据内容的合理性检测判断帧是否异常,但作者并未针对此思想设计和实现相关算法。受此启发,本文针对CAN总线数据本身,设计并实现了一种基于CAN总线数据载荷的恶意帧快速检测方法。该方法计算量小,无需任何车辆私有协议,针对非周期性数据和基于白名单ID构造的恶意数据具备检测能力。501相关工作1.1CAN总线通信技术车辆内部CAN总线网络中,数据传输终端包括各种ECU及网关。一辆车内ECU少到几十个,多达几百个。ECU之间通过CAN总线传输数据帧。ECU向网络广播发送具有特定ID的帧,目标ECU根据ID判断是否接受数据帧。ECU分布于车内不同位置,由不同波55特率的CAN总线相连。CAN总线之间通过网关连接。图1为某车型CAN总线结构简化图,包括高速、中速和低速总线,分别连接动力、娱乐和车载显示以及车身控制相关的ECU。图1车载CAN总线拓扑实例Fig.1ExampleofVehicleCANBusTopology60CAN通讯协议描述设备之间的信息传递方式。车载网络中CAN通信协议为CAN2.0协议。协议的传输单元被称为帧或帧,CAN数据帧包括:帧起始、仲裁域、控制域、Data域、校验场、帧结束六个部分,其中ID位于仲裁域;Data域中为帧载荷,最长8字节。CAN2.0协议以两种形式存在,标准CAN和扩展CAN,分别保留11bit和29bit的标识符。65图2CAN协议帧结构Fig.2FrameStructureofCANProtocolCAN协议主要具有以下特性:多主控制:总线空闲时,连接到总线上的所有ECU都可以发送信息,先占有总线的ECU获得发送资格。如果多个ECU同时发送信息,那么发送最高优先级消息的70ECU获得发送资格。广播通信:CAN协议帧不含源地址和目的地址,发送方以广播的形式将消息发送-2- 中国科技论文在线http://www.paper.edu.cn到CAN总线。所有的ECU均能检测到总线上的消息帧,并根据ID判断是否接收。优先级仲裁:多个ECU意图同时发送消息,通过发送消息帧的ID来决定优先级。通常ID越小优先级越高。优先级低的消息等到总线空闲时再次发送。75非加密信道:CAN总线协议不提供任何加密和认证机制,也不提供任何异常检测服务。总线数据极易被窃听和伪造,无安全性保证。基于上述CAN总线协议特点以及车载CAN总线网络架构,结合当前CAN总线网络漏洞和汽车安全事件原理,车载CAN总线网络主要面临的安全威胁有:窃听:攻击者通过OBD等方式物理接入总线或控制总线网关,获取总线上传输的80所以数据,进行协议分析甚至破解车辆私有协议。篡改:攻击者控制车载总线中的某个网关,接收消息后篡改消息再转发,致使相关ECU获取异常数据或进行异常操作。欺骗:攻击者控制总线上某个节点,致使节点发错误消息、诊断消息,使其他ECU对事件进行错误响应。85洪泛:针对CAN总线协议的优先级仲裁策略。攻击者接入或控制某个ECU,不间断发送高优先级数据,使正常数据阻塞,大量ECU功能失效。重放:攻击者控制或接入恶意节点,监听总线数据。记录的消息和消息发起的事件[5]可在任意时刻重放到网络中,实现对车辆的非法控制。Fuzzing:根据特定规则生成并发送CAN总线帧,发掘系统中尚未被破译的功能或90系统潜在安全威胁。1.2CAN总线异常检测CAN总线网络中,数据帧由ID和Data域组成,ID表示代表仲裁优先级,ID越小优先[6]级越高,同时CAN网络单元根据ID决定是否接收帧信息;Data是真正的负载信息,携带各种状态信息、控制指令等。在真实CAN应用场景中,一般以字节划分Data,一个或连95续几个字节数据搭载某特定的信息或指令,这部分字节的值往往跟随时间或车辆状态改变在一个特定的范围内变化。因此,基于Data域的检测往往以字节为单位进行合法性判断。[7]ZhangZJ等设计了一个CAN总线异常检测系统,作者提出将针对ID、频率和Data域的检测结合起来。其中针对Data域的检测主要包括Data域值范围检测和数据合理性检测。基本思想是:如果Data域语义值超过Data域值范围或两个连续的相同标识符数据帧的Data100域语义值的变化速度大于数据预值,则认为是恶意帧。文中仅描述检测的大致流程,并未涉及具体算法及实现细节。[8]Studnia等设计了基于车辆状态的异常检测方法,该方法为CAN总线异常检测提供了新的思路。判断总线上传输的数据是否符合汽车的当前状态,检测模块嵌于网关中,可以对所有总线数据提供检测。系统用状态转移图描述,一个或一组数据帧是状态转移的条件,根105据状态转移图判断帧的合法性。ECU和ID的数量会影响状态转移图的规模、复杂度和存储空间,并且文中并未针对该方案可靠的实验证明,需要进一步研究。本文同样从Data域的检测入手,将Data域按字节划分特征属性,采用机器学习算法对CAN总线帧进行分类。CAN总线恶意帧检测可简单看做正常帧和异常帧的二分类问题。在真实车载CAN总线网络中,CAN协议数据具有以下特点:-3- 中国科技论文在线http://www.paper.edu.cn110分类属性少:指令或信息一般按字节划分,帧Data域最长仅有8个字节,把Data域的每个字节当做一个分类属性,那么CAN总线帧的分类属性最多仅有8个。内容变化范围有限:Data域中,字节所搭载的信息或指令根据车辆状态或操作请求的变化在一个有限的范围内变化。实时性要求高:车载CAN总线网络的实时性不仅关乎用户体验,更关乎行车安全。115CAN总线对任意指令或状态变化的响应必须快速而准确。CAN总线节点计算能力有限,因此分类算法必须简洁、快速。根据上述CAN总线帧属性少、变化范围有限、实时性要求高等特点,使得贝叶斯、KNN、神经网络、SVM等分类算法并不适用。而决策树具有无需任何领域知识和参数设置、速度[9]快、根据较少属性的样本分类效果好等特点,因此本文选择决策树分类算法对CAN总线120帧进行异常检测。2方案设计2.1整体架构车载CAN总线恶意帧检测模型包括三个主要组成部分:数据采集模块、检测模块和输出反馈模块,模型工作流程及各模块功能如图3所示。125图3检测模型整体架构Fig.3OverallArchitectureofTheDetectionModel其中,数据采集模块负责读取CAN总线中的数据流,将数据流封装成ID+Data的通用帧格式,并根据帧ID确定与检测模块的哪一个决策树模型进行匹配;检测模块是整个模型130核心部分,其包含若干决策树模型,每一个决策树模型对应一个ID,负责检测所有采集到的该ID的数据帧是否为恶意帧;输出反馈模块负责将检测模块检测到的恶意帧记录到日志并通知用户。2.2C4.5决策树决策树分类算法是一种机器学习算法,是从训练样本中自动挖掘出一套对训练样本以外135的数据同样有效的规则模式的过程。决策树模型是一个树形结构,由于对CAN总线的恶意帧检测是一个二分类问题,所以本文涉及的决策树是一棵二叉树。决策树的非叶结点是样本-4- 中国科技论文在线http://www.paper.edu.cn集合在一个特征属性上的测试,每个分支代表根据一个特征属性的分裂,每个叶节点存放一个类别。决策分类过程就是从根节点开始,测试特征属性,按照其值分裂,直到到达叶子节[10]点,将叶子节点的类别作为分类结果。所谓决策树的构造就是进行属性选择度量确定各140个特征属性之间的拓扑结构,即利用训练样本集生成决策树的过程。本文基于经典的C4.5决策树生成算法建立CAN总线异常检测模型。对于样本集合X,X的类别集合C={c1,c2,......ck},C中各类别样本所占X中样本总数的比例分别为P={p1,p2,......,pk},则样本集X的信息熵定义为:kHX()=−plogpi2i(3.1)i1=145其中k表示样本集合X中样本的分类数,X的信息熵越小,说明X的数据纯度越高。条件熵H(X|A)表示在随机变量A已知的条件下数据集合X的不确定性:HX|A()(==paHX|Aa)()(3.2)a假设属性A有n个可能的取值{a1,a2,......an},则按属性A对样本集合X进行划分所得的信息增益定义为:nXi150GainXAHXHXAHX(,)=−()(|)=−()HX()i(3.3)i=1X其中,H(X)表示样本数据集X的信息熵,H(X|A)表示在属性A下样本数据集X的信息熵,n为属性A可能取值的数量。|Xi|和|X|分别表示属性A取值ai的样本数和数据集X的样本总数,H(Xi)表示在属性A取值为ai时样本子集的信息熵。C4.5算法将信息增益率作为数据纯度来选择分裂属性,克服了偏向于多值属性的问题。155C4.5首先定义了数据集X中属性A的分裂信息,其定义可以表示成:nXXiiSplitA2()X=−log(3.4)i1=XX其中各符号意义与公式3.3相同。属性A的可能取值越多,其分裂信息SplitA(X)值也越大。然后,信息增益率被定义为:GainXA(),Gainratio_()X=(3.5)ASplitA()X160C4.5算法理论清晰、构造简单、学习能力强,同时根据信息增益率来选择分类属性克[11]服了用信息增益选择分裂属性时偏向选择多值属性的缺陷,符合车载CAN总线数据帧分类的要求2.3恶意帧检测模型每条CAN总线帧都包含ID域和Data域,ID作为负载数据类型和长度的标示,因此需165要对每一个ID分别生成决策树模型。上文提到,车载CAN总线网络中的指令或信息一般按字节划分,帧Data域最长8个字节,其中一个或多个字节搭载某特定指令或状态,因此可按字节划分属性:帧F的长度为(k0Gain_ratiomax(X)则令Gain_ratiomax(X)=Gain_ratioAi=p(X)并更新最佳分裂属性As=Ai,最佳分割阈值Threshold=p。5.根据步骤4中选取的分裂属性和分割阈值进行分裂。将样本集X划分为M、N两个子集(M子集样本满足As<=threshold,N子集样本满足As>threshold)。1806.对样本集M、N递归执行步骤1-6,直到集合中所有样本均为同一类别或所有属性的所有分割点都作为分裂条件用光。上述步骤中,假设属性Ai有q个不同的属性值,那么总共有q-1个可能的候选分割值点,每个候选的分割点的值为排序后属性值中两两连续元素之间的任一点,此处为了简化分[12]割点的选取流程,我们直接取两个连续元素中较大的元素。185决策树构建过程中,如果所有属性的所有可能的取值都作为分割阈值用光,此时子集还[13]不是纯净集,由于没有更多信息可以使用,这种情况下需要对这些子集进行“多数表决”,即使用此子集中出现次数最多的类别作为此节点类别,然后将此节点作为叶子节点。CAN总线帧属性较少,采用上述方法建立的决策树模型规模较小,不存在明显的过拟合问题,因此本文无需考虑决策树模型剪枝问题。1903实验实验过程分为训练和检测两部分。训练过程中首先采集、生成训练样本,根据3.4小节中描述的步骤对每个ID的训练样本计算生成C4.5决策树模型;检测过程中,输入任意CAN总线帧,输出该帧的检测结果:正常帧或恶意帧。3.1训练样本集195本文所用测试数据均来自某美系品牌车辆的车载CAN总线网络,训练和测试帧均采集自500kbps的高速总线。包含车辆怠速、慢速、中高速行驶状态下的车辆CAN总线网络数据。其中正常帧样本13405条;通过对正常帧样本Data域的字节随机化处理,得到恶意帧样本13405条。共包含59个不同ID。本文以ID为2B5的帧为例,以下决策树构建和测试结果均针对该ID帧,如表4-1所示,该ID正常帧样本总共713条。200表10x2B5正常帧样本Tab.1NormalFrameSampleswithID0x2B5序号IDData12B5D8007408426E80F222B5E000740C32CE91D432B5E8007412224E92E642B5C00078B2710E96FA………………7132B580007901F12E80C8-6- 中国科技论文在线http://www.paper.edu.cn为了便于展示,所有的数据均用16进制表示,在计算的时候再换算成10进制。以序号1的帧为例,其Data域包含8字节数据,因此该帧样本共有8个分裂属性,分别为:205A1=0xD8=216,A2=0x00=0,A3=0x74=116,……,A8=0xF2=242。真实的车联网环境中,攻击者试图对CAN总线进行攻击时,往往会修改监听到的正常[14]帧的其中一个或几个字节。因此,CAN总线遭受攻击时,恶意帧和正常帧的区别往往是一个或连续几个字节的不同。通过对正常帧进行字节随机化处理构造异常帧样本。Data域长度为k字节的帧样本随机化连续的1~k个字节。具体处理方式为:210在[1,k]范围生成随机数s,表示从第s个字节开始随机化;在[1,k-s+1]范围生成随机数c,表示从第s个字节开始,随机化处理连续c个字节;在[0,255]范围生成c个随机数分别替换原正常样本的对应字节,得到异常样本。对表4-1中ID为2B5的正常帧采取字节随机化后得到异常帧样本如表4-2所示:表20x2B5恶意帧样本215Tab.2MaliciousFrameSampleswithID0x2B5序号IDData12B5D800740842259DF222B5E00032A201CE91D432B5E8007412222A4A0342B5C091B37D440E96FA………………7132B58C1B7901F12E80C43.2决策树生成训练样本集中,正常样本和恶意样本各占50%,共包含59种ID的数据帧,针对每一个ID建立对应的决策树模型。观察训练样本发现,ID为0x2B5的帧变化字节较多,所构建的决策树模型相比其他ID的帧可能更“茂盛”,为了凸显决策树分类的作用及原理,本文以2200x2B5为例进行决策树构建。训练样本分别包含正常样本和异常样本各713条。根据信息增益率选择最佳分裂属性和分割阈值,建立决策树模型如下:-7- 中国科技论文在线http://www.paper.edu.cnNormal:713Anomaly:713As:A8Threshold:0xC4Gain_ratio:0.2286Normal:527Normal:186Anomaly:609Anomaly:104As:A3As:A2Threshold:0x79Threshold:0x06Gain_ratio:0.2673Gain_ratio:0.3002Normal:527Normal:0Normal:186Normal:0Anomaly:505Anomaly:104Anomaly:0Anomaly:104As:A7Threshold:0x80Gain_ratio:0.2905Normal:527Normal:0Anomaly:49Anomaly:456As:A4Threshold:0xA0Gain_ratio:0.1742Normal:238Normal:289Anomaly:211Anomaly:245As:A2As:A6Threshold:0x48Threshold:0xDEGain_ratio:0.1008Gain_ratio:0.1420Normal:238Normal:0Normal:289Anomaly:0Anomaly:211Anomaly:42Normal:0As:A1Anomaly:203Threshold:0xEFGain_ratio:0.0521Normal:156Anomaly:42Normal:133As:A5Anomaly:0Threshold:0x05Gain_ratio:0.3204Normal:0Normal:156Anomaly:41Anomaly:1图40x2B5的C4.5决策树模型Fig.4C4.5DecisionTreeModelof0x2B5225上图中,Normal和Anomaly分别代表当前正常样本和恶意样本数;As表示分裂属性取值A1~A8;Threshold代表分割阈值;Gain_ratio为按当前属性的当前分割阈值分裂可得到的信息增益率;决策树左分支为As<=Threshold,右分支为As>Threshold。决策树模型最底层右孩子中包含正常样本156个,异常样本1个,此时经过计算,无论分割属性和分割阈值如何选择,均不能分裂得到两个纯净集合,因此到此为止不再分裂。采230用“多数表决”的方式将该叶子节点所属类别划分为正常。在真实车辆环境中。可能存在一些变化不明显甚至不发生变化的帧。对于此类帧,最简单的检测方法是直接比较,即比较各字节的值是否等于训练样本的对应字节,或者等于训练样本对应字节可能的少数几个可能的取值之一。对此类帧的检测无需使用决策树模型也很有效。但是,将本文所述决策树模型应用到对该类帧的检测同样有效,只是字节变化不明显导235致所建立的决策树模型节点较少,决策树训练开销可能比直接比较的计算开销稍大。3.3实验结果测试样本集和训练样本集来源相同,均来自同一车型怠速、慢速以及中高速状态下的高速总线,异常测试样本按4.1中所述方法对正常样本进行字节随机化而来。同样以ID为0x2B5的样本作为测试案例。测试结果如下表所示:240-8- 中国科技论文在线http://www.paper.edu.cn表30x2B5决策树模型测试结果Tab.3TestResultsofDecisionTreeModel0x2B5测试样本类别数量结果漏报率误报率正常异常正常160016000--0%异常160010114996.31%--分别取1600条正常样本和恶意样本进行测试,测试结果显示,所构造的决策树模型能245识别所有正常帧,不存在误报的情况。而对于恶意帧,识别率在93%以上。进一步分析实验结果,测试过程中,由于无法获取大量真实的恶意样本,我们通过对正常样本进行字节随机化的方式生成恶意样本。随机化的过程中,替换各字节的随机数可能均在字节正常变化的范围之内,这样生成的恶意样本和正常样本有着相同的特征,因此被检测模型判定为正常,所以存在漏报的可能性。即便如此,但各字节同时满足上述可能的概率较250小,所以漏报率可以控制在一个较小的数值。4结论车联网安全问题制约着汽车智能化进程,严重威胁着汽车用户的生命财产安全。本文重点关注车联网中的CAN总线安全,分析研究了CAN总线协议特性以及CAN总线安全威胁,提出了一种基于C4.5决策树的CAN总线恶意帧检测方法并进行了相关测试。测试结果表明,255该方法能有效地识别出CAN总线中的恶意帧,识别准确率可达90%以上。具备理论和技术上的可行性。该方案不仅可以应用于车载CAN总线中的恶意帧检测,也可用于其他工控系统中的CAN总线模块。未来还需进一步优化和改善算法的性能,简化决策树构建过程,提高恶意帧识别的准确率[参考文献](References)260[1]360智能网联汽车信息安全实验室.2016智能网联汽车信息安全年度报告[OL].[2017-3-21].http://zt.360.cn/1101061855.php?dtid=1101062370&did=1101688595[2]KammererR,FrömelB,WasicekA.EnhancingsecurityinCANsystemsusingastarcouplingrouter[C]//IEEEInternationalSymposiumonIndustrialEmbeddedSystems.IEEE,2012:237-246.[3]SongHM,KimHR,KimHK.IntrusiondetectionsystembasedontheanalysisoftimeintervalsofCAN265messagesforin-vehiclenetwork[C]//InternationalConferenceonInformationNETWORKING.IEEEComputerSociety,2016:63-68.[4]MuterM,AsajN.Entropy-basedanomalydetectionforin-vehiclenetworks[J].IntelligentVehiclesSymposiumIEEE,2011:1110-1115.[5]王志颖,马卫东,熊光泽,等.面向安全关键系统的CAN总线应用研究综述[J].计算机应用研究,2011,27028(4):1216-1220.[6]KoscherK,CzeskisA,SavageS,etal.ExperimentalSecurityAnalysisofaModernAutomobile[C]//SecurityandPrivacy.IEEE,2010:447-462.[7]张子键,张越,王剑.一种应用于CAN总线的异常检测系统[J].信息安全与通信保密,2015(8):92-96.[8]Studnia,Ivan,etal."Securityofembeddedautomotivenetworks:stateoftheartandaresearchproposal."2013.275[9]栾丽华,吉根林.决策树分类技术研究[J].计算机工程,2004,30(9):94-96.[10]李强,严承华,朱瑶.基于决策树的网络流量异常分析与检测[J].计算机工程,2012,38(5):92-95.[11]黄爱辉.决策树C4.5算法的改进及应用[J].科学技术与工程,2009,9(1):34-36.[12]张逸群.对决策树连续值找分割点的算法的改进[J].计算机光盘软件与应用,2013(23):116-117.[13]冯帆,徐俊刚.C4.5决策树改进算法研究[J].电子技术,2012,39(6):7-10.280[14]MüterM,GrollA,FreilingFC.Astructuredapproachtoanomalydetectionforin-vehiclenetworks[C]//SixthInternationalConferenceonInformationAssuranceandSecurity.IEEE,2010:92-98.-9-'