【CAN-IDPS】汽车网关信息安全要求以及实验方法

2024-08-21 03:52

本文主要是介绍【CAN-IDPS】汽车网关信息安全要求以及实验方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《汽车网关信息安全技术要求及试验方法》是中国的一项国家标准,编号为GB/T 40857-2021,于2021年10月11日发布,并从2022年5月1日起开始实施 。这项标准由全国汽车标准化技术委员会(TC114)归口,智能网联汽车分会(TC114SC34)执行,主管部门为工业和信息化部。

该标准主要起草单位包括广州汽车集团股份有限公司、中国汽车技术研究中心有限公司等多家企业和研究机构,主要起草人有尚进、孙航等多位专家。标准内容涵盖了汽车网关硬件、通信、固件、数据的信息安全技术要求及试验方法,目的在于保障汽车网关在车内多个网络间安全、可靠地进行数据转发和传输,满足数据保密性、完整性、可用性等基本安全要求。

本篇文章主要摘取规范中对汽车网关网络安全和信息安全要求和测试方法。其中基于以太网的网络安全和信息安全技术较为成熟,无需过多介绍,而针对CAN网关的安全要求基于本人对CAN-IDPS开发经验添加了说明。


目录

1 汽车网关网络拓扑结构

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应严格遵

这篇关于【CAN-IDPS】汽车网关信息安全要求以及实验方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092044

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

SQL中redo log 刷⼊磁盘的常见方法

《SQL中redolog刷⼊磁盘的常见方法》本文主要介绍了SQL中redolog刷⼊磁盘的常见方法,将redolog刷入磁盘的方法确保了数据的持久性和一致性,下面就来具体介绍一下,感兴趣的可以了解... 目录Redo Log 刷入磁盘的方法Redo Log 刷入磁盘的过程代码示例(伪代码)在数据库系统中,r

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的