一种检测注入式攻击的控制器局域网汽车总线报警网关制造技术

技术编号:16761485 阅读:33 留言:0更新日期:2017-12-09 05:24
由于CAN总线的多主特征(任何接入CAN总线的设备都可以发送消息),不能阻止注入式攻击,本发明专利技术公开了一种检测注入式攻击的控制器局域网CAN汽车总线报警网关的产生方法,在不改变CAN总线上的电子控制单元ECU硬件和软件的情况下,通过只修改CAN总线网关的软件,利用CAN总线协议中ECU发出数据帧的ID、响应其它ECU请求帧的时间、数据本身的最大值和最小值及数据产生的周期判断是否有Dos攻击、假扮攻击和模糊攻击等发出假冒数据的注入式攻击中的应用,解决了现有CAN总线中存在的安全技术问题。

A controller area network bus alarm gateway for detecting injection attack

The main features of multi CAN bus (CAN bus access any device can send a message), cannot stop injection attacks, CAN bus controller area network, the invention discloses a method of detecting injection attack alarm method gateway, without changing the electronic control unit of ECU hardware and software on the CAN bus next, by only modifying the CAN bus gateway software, using CAN bus protocol in ECU sends the data frame of ID, and whether the response cycle to determine other ECU request frame time, the data itself and the minimum and maximum values of the data generated by the Dos attack, attack and attack posing as fuzzy injection attacks in the application of a fake the data, to solve the security problems of the existing technology in the CAN bus.

【技术实现步骤摘要】
一种检测注入式攻击的控制器局域网汽车总线报警网关
本专利技术涉及一种检测注入式攻击的控制器局域网CAN(ControllerAreaNetworks)汽车总线报警网关的产生方法,尤其涉及在不改变CAN总线上的电子控制单元ECU(ElectronicControlUnit)硬件和软件的情况下,通过只修改CAN总线网关的软件,利用CAN总线协议中ECU发出数据帧的ID、响应其它ECU请求帧的时间、数据本身的最大值和最小值及数据产生的周期判断是否有Dos和冒充已有ECU或新增ECU发出假冒数据的注入式攻击中的应用。
技术介绍
控制器局域网CAN最早由Bosch公司于1985年研发,用于搭建车内网络,是一个汽车内部ECU之间有效、可靠、快速的串行传输总线,于1993年成为国际标准(ISO11898)。大部分汽车有两条CAN总线,一条是高速的,速率达500kbps(最高可达1M),主要传输汽车在行驶中传动系统单元的相关数据,如发动机、方向盘、刹车和变速箱等;另一条是低速的,速率达125kbps,主要用于传输车身单元的数据,如收音机、车门锁、车窗控制和温度(空调)等数据;两条总线通过一个网关相连,其主要作用是进行速度匹配和与其它总线的格式转换等,如图1所示。CAN协议的一个最大特点是废除了传统的站地址编码,而是对发送的消息进行编码,对接入总线的ECU数量没有明确的限制,消息的标识符ID由11位(CAN2.0A)或29位(CAN2.0B)二进制数组成,主要技术特征如下:(1)CAN总线上没有主/从ECU,发送的数据帧里既没有指明发送节点地址,也没有指明接收节点地址,所有节点都能发送数据和接收其它节点发出数据的能力,也就是说发送ECU不知道发给谁,接收ECU也不知道是谁发的;(2)多个节点同时发送数据时,总线仲裁使得具有较低值ID的消息获取总线使用权,较高值ID的消息等待总线空闲时再发送;(3)所有其它ECU都可以同时接收一个发送ECU的数据,所有ECU都有过滤能力,限制接收它不需要的数据;(4)CAN总线是串行的和异步的,总线上的ECU不需要同步它们的时钟;(5)数据帧中的数据长度范围为0-8字节;(6)CAN总线上有四种不同的帧,即数据帧、请求帧、错误帧和超载帧。数据帧由ECU周期性的发出数据,不同ECU发出数据的间隔周期是不同的,通常在10-10000毫秒间;请求帧用于请求其它ECU发出的数据(与数据帧ID相同),但数据段没有内容,被请求的ECU需要响应该请求,CAN2.0A数据帧与请求帧格式见图2;错误帧在发送和接收遇到错误时发出(发送和接收ECU都可以发出)用于纠正错误,超载帧用于发送数据太快,接收ECU跟不上发送的速度时发出;(7)CAN总线没有安全组件,它假定所有的ECU是合法的、值得信任并且按它们的参数设定进行工作的。然而,研究和实验表明车辆容易成为恶意对手(盗车者、自行改装、竞争对手等)破坏的目标,汽车内部所有ECU都容易受到利用CAN总线作为入口点的攻击(攻击者可以将设备通过在线诊断接口OBD将攻击设备接入CAN、或自行改造更换原有ECU),最典型的就是注入式攻击,主要包含以下三类:(1)拒绝服务攻击DoS(DenialofService):由于总线仲裁机制,低ID消息将获总线使用权,攻击者不停发送低ID(如00)消息,将阻止所有其它正常ECU发送消息,汽车将不能启动;(2)假扮攻击:假扮原有ECU(消息ID相同,移除了原有ECU),如为了获取更多发动机功率或速度的车辆改装就属这类攻击;(3)模糊攻击:随机产生消息ID发送到CAN总线,其ID消息有可能是总线上没有的(与总线上相同ID的攻击类同于假冒攻击),其目的是破坏汽车正常运行(数据乱七八糟,不在正常范围内),严重可能导致事故。由于CAN总线的多主特征(任何接入CAN总线的设备都可以发送消息),不能阻止注入式攻击,但可以检测出这类攻击,并及时报警。
技术实现思路
为了解决现有CAN总线中存在的上述技术问题,本专利技术公开了一种检测注入式攻击的控制器局域网(CAN)汽车总线报警网关的产生方法,在不改变CAN总线上的电子控制单元ECU硬件和软件的情况下,通过修改总线网关的软件,根据各ECU发送消息(数据)的ID、周期、数据的最大/最小值和响应请求帧的响应时间等判定有无注入式攻击,并及时给出报警。具体技术方案如下:一种检测注入式攻击的控制器局域网(CAN)汽车总线报警网关的产生方法,网关的内存持两个表格:静态表和动态表,其中静态表记录CAN总线上所有ECU发出消息的ID,周期T、数据的最大值Max最小值Min及响应请求帧的响应时间R,按ID由小到大排序;动态表记录着CAN总线上的所有两次数据帧发出的时间、数值大小和请求帧发出的时间及对应的响应帧的时间和大小,按按ID由小到大排序;其特征在于包括如下步骤:(1)网关循环接收数据帧或请求帧;(2)如果是数据帧,①首先检测其ID是否在静态表中,如果不是就报警;②检测其值(Value)是否在最大值Max和最小值Min之间,如果不是就报警;否则在动态表中查找类型为周期数据帧的ID;③如果该数据帧前面没有请求帧,说明是ECU自己周期性地发出数据,第二次接收到的数据的日期和大小存入动态表中当前(Current)对应的字段,然后比较数据发出的周期T是否正常,不正常报警;否则用当前(Current)中的接收时间和大小替换之前(Previous)对应的字段,转第(1)步,等待下一个(Next)数据帧,如此循环往复;④如果该数据帧前面有请求帧,说明有其它ECU请求数据,收到数据帧后将收到的时间和大小存入动态表中ID且类型为请求帧记录中的当前(Current)对应字段,比较响应时间R是否正常,不正常报警,否则删除动态表中ID且类型为请求帧的记录,转第(1)步;(3)如果是请求帧,①首先检测其ID是否在静态表中,如果不是就报警;②在动态表中新建ID且类型为请求帧的记录,并将请求时间填入之前(Previous)对应的字段中的时间字段(大小为0),转第(1)步。进一步的,步骤(2)第②步中,若动态表没有类型为周期数据帧的ID,则新建周期数据帧,第一次数据接收到的日期和大小存入动态表中之前(Previous)对应的字段。附图说明图1是通用CAN结构图。图2是数据帧、请求帧结构图。具体实施方式下面结合附图对本专利技术作进一步说明。由于每个CAN总线上都有一个速度匹配的网关,可以监听CAN总线上的所有消息,修改其软件功能,使其判定有无注入式攻击。(1)两个表格网关的内存中,维持两个表格,一个是静态表,一个是动态表。静态表:该表格记录了CAN总线上所有ECU发出消息的ID,周期T、数据的最大值Max最小值Min及响应请求帧的响应时间R,此表按ID由小到大排序,如表1所示:ECUIDTMaxMinRECU1ID1T1Max1Min1R1ECU2ID2T2Max2Min2R2………………………………ECUNIDNTNMaxNMinNRN表1在表1的表中,前4项即ID,T、Max和Min是每一个ECU固有参数,很容易在车辆生产时获取,请求响应时间R需要车辆启动后获取,获取的方法是:网关向CAN总线发送请求消息为IDi的请求帧,并记录请求时的时间,本文档来自技高网
...
一种检测注入式攻击的控制器局域网汽车总线报警网关

【技术保护点】
一种检测注入式攻击的控制器局域网(CAN)汽车总线报警网关的产生方法,网关的内存持两个表格:静态表和动态表,其中静态表记录CAN总线上所有ECU发出消息的ID,周期T、数据的最大值Max最小值Min及响应请求帧的响应时间R,按ID由小到大排序;动态表记录着CAN总线上的所有两次数据帧发出的时间、数值大小和请求帧发出的时间及对应的响应帧的时间和大小,按按ID由小到大排序;其特征在于包括如下步骤:(1)网关循环接收数据帧或请求帧;(2)如果是数据帧,①首先检测其ID是否在静态表中,如果不是就报警;②检测其值(Value)是否在最大值Max和最小值Min之间,如果不是就报警;否则在动态表中查找类型为周期数据帧的ID;③如果该数据帧前面没有请求帧,说明是ECU自己周期性地发出数据,第二次接收到的数据的日期和大小存入动态表中当前(Current)对应的字段,然后比较数据发出的周期T是否正常,不正常报警;否则用当前(Current)中的接收时间和大小替换之前(Previous)对应的字段,转第(1)步,等待下一个(Next)数据帧,如此循环往复;④如果该数据帧前面有请求帧,说明有其它ECU请求数据,收到数据帧后将收到的时间和大小存入动态表中ID且类型为请求帧记录中的当前(Current)对应字段,比较响应时间R是否正常,不正常报警,否则删除动态表中ID且类型为请求帧的记录,转第(1)步;(3)如果是请求帧,①首先检测其ID是否在静态表中,如果不是就报警;②在动态表中新建ID且类型为请求帧的记录,并将请求时间填入之前(Previous)对应的字段中的时间字段(大小为0),转第(1)步。...

【技术特征摘要】
1.一种检测注入式攻击的控制器局域网(CAN)汽车总线报警网关的产生方法,网关的内存持两个表格:静态表和动态表,其中静态表记录CAN总线上所有ECU发出消息的ID,周期T、数据的最大值Max最小值Min及响应请求帧的响应时间R,按ID由小到大排序;动态表记录着CAN总线上的所有两次数据帧发出的时间、数值大小和请求帧发出的时间及对应的响应帧的时间和大小,按按ID由小到大排序;其特征在于包括如下步骤:(1)网关循环接收数据帧或请求帧;(2)如果是数据帧,①首先检测其ID是否在静态表中,如果不是就报警;②检测其值(Value)是否在最大值Max和最小值Min之间,如果不是就报警;否则在动态表中查找类型为周期数据帧的ID;③如果该数据帧前面没有请求帧,说明是ECU自己周期性地发出数据,第二次接收到的数据的日期和大小存入动态表中当前(Current)对应的字段,然后比较数据发出的周期T是否正常,不正常报警;否则用当前(Cu...

【专利技术属性】
技术研发人员:谭劲杨红
申请(专利权)人:中国计量大学
类型:发明
国别省市:浙江,33

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

1