《汽车网关信息安全技术要求及试验方法》是中国的一项国家标准,编号为GB/T 40857-2021,于2021年10月11日发布,并从2022年5月1日起开始实施 。这项标准由全国汽车标准化技术委员会(TC114)归口,智能网联汽车分会(TC114SC34)执行,主管部门为工业和信息化部。
该标准主要起草单位包括广州汽车集团股份有限公司、中国汽车技术研究中心有限公司等多家企业和研究机构,主要起草人有尚进、孙航等多位专家。标准内容涵盖了汽车网关硬件、通信、固件、数据的信息安全技术要求及试验方法,目的在于保障汽车网关在车内多个网络间安全、可靠地进行数据转发和传输,满足数据保密性、完整性、可用性等基本安全要求。
本篇文章主要摘取规范中对汽车网关网络安全和信息安全要求和测试方法。其中基于以太网的网络安全和信息安全技术较为成熟,无需过多介绍,而针对CAN网关的安全要求基于本人对CAN-IDPS开发经验添加了说明。
目录
1.1 CAN网关
1.2 以太网网关
1.3 混合网关
2 技术要求
2.1 硬件信息安全要求
2.2 通信信息安全要求
2.2.1 CAN网关通信信息安全要求
2.2.1.1 访问控制
2.2.1.2 拒绝服务攻击检测
2.2.1.3 数据帧健康检测
2.2.1.4 数据帧异常检测
2.2.1.5 UDS会话检测
2.2.2 以太网网关通信信息安全要求
2.2.2.1 网络分域
2.2.2.2 访问控制
2.2.2.3 拒绝服务攻击检测
2.2.2.4 协议状态检测
2.2.3 混合网关通信信息安全要求
2.3 固件信息安全要求
2.3.1 安全启动
2.3.2 安全日志
2.3.3 安全漏洞
2.4 数据信息安全要求
3 典型攻击举例
3.1 死亡之 Ping(Ping of death)
3.2 ICMP 泛洪攻击
3.3 UDP泛洪攻击
3.4 TCP SYN攻击
3.5 Teardrop攻击
3.6 ARP欺骗攻击
3.7 IP欺骗攻击
3.8 ICMP Smurf攻击
3.9 IP地址扫描
3.10 端口扫描(Port scan)
3.11 恶意软件
3.12 CAN 数据帧泛洪攻击
3.13 CANID伪造
3.14 CAN 数据帧重放攻击
3.15 CAN 网络扫描
3.16 ECU 认证破解
3.17 UDS服务攻击
1 汽车网关网络拓扑结构
1.1 CAN网关
基于CAN和/或CAN-FD总线的车内网络结构中,大多数的ECU、域控制器之间都会通过CAN和/或CAN-FD总线进行通信。这类结构中的汽车网关主要有CAN和/或CAN-FD总线接口,可称为CAN网关。下图是典型的CAN网关拓扑结构。
1.2 以太网网关
基于以太网的车内网络结构中,大多数的ECU、域控制器之间会通过以太网进行通信。这类结构中的汽车网关主要有以太网接口,可称为以太网网关。下图是典型的以太网网关拓扑结构。
1.3 混合网关
部分新一代车内网络结构中,一部分ECU、域控制器之间通过以太网通信,而另一部分ECU、域控制器之间仍通过传统通信协议(例如:CAN、CAN-FD、LIN、MOST等)通信。这类结构中的汽车网关既有以太网接口,还有传统通信协议接口,可称为混合网关。下图是典型的混合网关拓扑结构。
2 技术要求
2.1 硬件信息安全要求
(1)网关不应存在后门或隐蔽接口。
测试方法:拆解被测样件设备外壳,取出PCB板,检查PCB板硬件是否存在后门或隐蔽接口。
(2)网关的调试接口应禁用或设置安全访问控制。
测试方法:检查是否有存在暴露在PCB板上的JTAG、USB、UART、SPI等调试接口,如存在则使用试验工具尝试获取调试权限。
2.2 通信信息安全要求
2.2.1 CAN网关通信信息安全要求
2.2.1.1 访问控制
网关应在各路CAN网络间建立通信矩阵,并建立基于CAN数据帧标识符(CANID)的访问控制策略,按照测试方法(a)应在列表指定的目的端口检测接收到源端口发送的数据帧;按照测试方法(b)应对不符合定义的数据帧进行丢弃或者记录日志。
测试方法:
(a)设置访问控制策略(若被测样件的访问控制策略无法通过软件配置修改,则由送样方提供已预置的访问控制策略列表),检测设备向列表指定的源端口发送符合策略规定的数据帧,并在列表指定的目的端口检测接收数据帧。
(b)设置访问控制策略(若被测样件的访问控制策略无法通过软件配置修改,则由送样方提供已预置的访问控制策略列表),检测设备向列表指定的源端口发送不符合策略规定的数据帧,在列表指定的目的端口检测接收到的数据帧,并收集样件日志。
个人观点:
文档中要求建立基于CANID的访问控制策略,其实就是CANID白名单功能,白名单中包含通信矩阵中规定网关所能接收的所有CANID,网关安全组件(例如CAN-IDPS)监控网关流量,并判断所接收的CANID是否在白名单中,如果在,则应执行丢弃或者记录日志。需要注意的是,一般ECU在CAN收发器处已经设置了报文过滤条件,即不是该ECU需要接收的CANID报文在底层就已经丢弃了。
2.2.1.2 拒绝服务攻击检测
网关应对车辆对外通信接口的CAN通道(例如:连接BD-I端口的通道和连接车载信息交互系统的通道)进行CAN总线DoS攻击检测。网关应具备基于 CAN总线接口负载的DoS攻击检测功能,宜具备基于某个或多个CAN ID数据帧周期的 DoS 攻击检测功能。按照测试方法(a)、(b)进行测试,当网关检测到某一路或多路CAN通道存在DoS攻击时,应满足以下:
(1)网关未受攻击的通道的通信功能和预先设定的性能不应受影响;
(2)网关对检测到的攻击数据帧进行丢弃或者记录日志。
测试方法:
(a)由送样方确认网关连接车辆对外通信接口的AN道,检测设备对此通道以大于80%总线负载率发送符合通信矩阵的泛洪攻击数据帧,在指定的目的端口检测接收到的数据帧,并收集样件日志。如果有多个此类通道,则依次分别试验。
(b)由送样方确认网关连接车辆对外通信接口的CAN通道,检测设备对此通道以1ms为周期发送符合通信矩阵的某个CANID数据帧,在指定的目的端口检测接收到的数据帧,并收集样件日志。如果有多个此类通道,则依次分别试验。
个人观点:
两个重点,一是文档中提到Dos攻击检测对象重点是车辆对外通信接口的CAN通道,例如OBD接口或者车机通道;二是提出了Dos攻击的两种检测方法,一种是通过判断总线负载率是否达到告警阈值,另一种就是监控某个CANID报文实际周期是否远小于通信矩阵中对其规定的正常周期。除此之外,在测试方法中提到以大于80%的总线负载率进行测试,网关安全组件(例如CAN-IDPS)在设置总线负载率告警阈值时,可以以此为参考设置成80%,也可以对实车总线负载率进行实时统计,并选则大于其峰值的合适值作为阈值,实施难度就是需要在统计过程中,模拟车辆所有的操作以及业务,这样计算出的阈值才可靠。
2.2.1.3 数据帧健康检测
网关宜根据通信矩阵中的信号定义,对数据帧进行检查,检查内容包括DLC字段、信号值有效性等,按照测试方法(a)进行试验,对不符合通信矩阵定义的数据帧进行丢弃或者记录日志。
测试方法:
(a)检测设备对网关发送一个或多个DCL字段值不符合通信矩阵定义的数据帧,在指定的目的端口检测接收到的数据帧,并收集样件日志。
(b)检测设备对网关发送一个或多个信号值不符合通信矩阵定义的数据帧,在指定的目的端口检测接收到的数据帧,并收集样件日志。
个人观点:
通信矩阵中规定了每个CAN报文的数据长度,即DLC字段值。ECU应严格遵