1. 基础知识
1.1 智能网联汽车架构
车内网络系统架构
随着智能网联汽车电子系统的复杂化,电子电气架构(
Electrical/Electronic Architecture,
EEA
)由分布式向集中式架构演进,如图
2.1
所示。
在汽车 EEA
演进的同时,为了满足不同复杂程度的汽车功能对于通信性能的需求,车内总线协议也在不断发展。CAN
总线协议作为成功的车内总线协议,已经成为汽车领域事实上的车内总线标准[122]
。如表
2.1
所示,除了
CAN
总线之外,还有四种主流总线协议凭借自身优势共存于智能网联汽车。
硬件平台方面,传统汽车采用微控制器单元(
Micro Controller Units
,
MCUs
)和 数字信号处理器(Digital Signal Processors
,
DSPs
)用于汽车系统数据处理,例如尾灯、空调、动力系统等。相较于传统汽车,智能网联汽车应用场景更为复杂,关键 ECU
节点需要运行大量的软件代码以实现传感器融合、深度学习等计算密集型任务。基于此,包括图形处理单元(Graphics Processing Units
,
GPUs
)与现场可编程门阵列(
FieldProgrammable Gate Arrays,
FPGAs
)在内的强力计算平台被引入智能网联汽车,如NVIDIA Drive、
Mobile Eye
、华为
MDC
等。
车外网络“人-车-路-云”架构?
在复杂的
“
人
-
车
-
路
-
云
”
生态系统中,车联网需要支持认知计算、人工智能等新型信息计算,具备更加复杂的体系架构。在逻辑架构上,车联网可分为四层:感知层、网络层、计算层、应用层
。
1. 感知层探测道路交通环境与车辆状态。
2. 网络层实现网络访问与网络传输。
3. 计算层提供计算资源:随着车联网发展,海量车辆信息与用户信息通过 V2X 通信被收集起来,用于提供精准化的服务与管理。计算层则为人、车、环境的协调控制与管理提供计算保障,基于海量数据的分析结果协调车联网中数量庞大的实体之间的信息交互,为上层应用奠定基础,大大提高交通效率、行车安全性与交通系统稳定性。
4. 应用层为车联网中的众多实体提供便捷高效的信息服务,包括封闭式服务与开放式服务。
封闭式服务是针对特定行业或平台的服务,特别是与车辆和交通本身高度相关的服务。
开放式服务主要是应用服务提供商为用户提供的信息服务,包括天气信息、音乐、影视等信息娱乐服务。
1.2 渗透测试技术
渗透测试是经过授权,利用自动化工具集或者手动方式,有计划地对目标应用、网络、系统等目标进行安全测试以验证其是否存在未经授权的访问等网络安全漏洞的过程
。渗透测试采用以攻击代替测试的观点,站在攻击者的角度,使用各种技术与工具尝试入侵目标系统,一旦发现可被利用的安全漏洞则将其提交给系统所有者
。
基于对被测试目标的了解程度,渗透测试可分为白盒渗透测试、灰盒渗透测试、黑盒渗透测试
。
1. 白盒渗透测试中,测试人员可以获取被测试目标涉及的源代码、内部数据、资源访问权限等关键数据与权限。
2. 黑盒渗透测试是经典的渗透测试技术,黑盒渗透测试人员仅可通过公开渠道获取被测试目标的可利用信息。
3. 灰盒渗透测试则介于二者之间,测试人员在开展灰盒渗透测试之前可以获取关于被测试目标的架构与网络安全威胁等部分信息。
典型的渗透测试流程包括三个阶段:信息搜集阶段、威胁分析阶段、渗透测试阶段,如图 2.3
所示。
1. 信息收集阶段需要尽可能在权限允许范围内收集可利用的信息。
例如通过开源技术文档搜索被测试对象的技术实现细节;通过宣传页面及相关新闻报道收集被测试对象的软件版本、使用的开发库名称与版本、芯片型号、硬件接口等软硬件模块信息;通过产品页面收集被测试对象具备的功能与特征;更进一步,通过服务扫描、漏洞扫描等主动侦察手段获取被测试目标开放的服务列表、存在的已知网络安全漏洞等信息。
随着获取信息逐渐丰富,测试人员对被测试对象的了解程度愈加深入,进而可以不断迭代信息获取方式。信息获取方式的增加为执行系统的威胁分析与执行渗透测试奠定基础。
2. 威胁分析阶段要求在获取的信息基础上对被测试目标进行威胁建模。
测试人员基于软硬件组成、功能特征、开放服务等信息推测被测试目标基本系统架构。基于系统架构,测试人员识别其中对攻击者具有较大吸引力的高价值资产。针对高价值资产
测试人员分析其威胁场景,包括攻击入口、攻击路径。在此基础上,测试人员分析每一项威胁的潜在危害,基于攻击概率、财产损失、隐私泄露等指标评估网络安全风险的严重程度。威胁分析结果将威胁场景进行不同严重程度的分级,辅助测试人员确定测试用例的优先级。
3. 渗透测试阶段需要基于威胁分析结果指定测试方案,验证威胁是否导致可利用的
网络安全漏洞,导致了实际的网络安全风险。 按照测试方案执行测试用例可发现潜在
的网络安全漏洞。但是发现的潜在网络安全漏洞需要经过验证以评估其危害程度。所
有渗透测试发现的漏洞遵循漏洞管理规定进行上报并管理,在经过被测试对象所在组
织技术性修复后进行回归测试。
1.3 模糊测试技术
在漏洞挖掘领域,与渗透测试技术相伴使用的是模糊测试技术,广泛应用于智能网联汽车的不同车载系统,发掘潜在的未知网络安全漏洞。模糊测试是一种将输入向量空间中的大量随机输入向量输入到被测系统(System Under Test
,
SUT
)中以测试其是否存在潜在网络安全漏洞的自动化软件测试技术
。模糊测试框架通常包含如图 2.4
所示的三种常见组件:生成器、收发器、监视器
。
生成器负责生成用于对目标系统进行测试的输入向量:
收发器用于 SUT 和模糊测试工具之间传输数据。鉴于不同的 SUT 有不同的通信接口与通信协议,收发器需要基于特定的 SUT 搭载不同的通信控制模块。
模糊测试的目的在于观察输入向量是否引发 SUT的异常响应。监视器的作用在于监控处于模糊测试中的 SUT,试图检测其出现的任何非预期异常状态与行为。
此外,自动化的模糊测试框架也会包含日志记录、报告生成、数据可视化、系统配置等附加功能。
模糊测试的流程如图
2.5
所示,模糊测试数据生成器基于变异策略或者基于协议规范等生成策略生成用于输入到 SUT
的输入向量。生成器作为模糊测试的关键模块之一,其数据生成质量影响模糊测试效率。如果生成器的数据生成策略设置不当可能使得输入向量空间较大,容易导致数据爆炸问题,也可能生成大量的无效数据,无法触发被测试目标非预期行为。
状态监控器作为模糊测试另一个关键模块实时监测 SUT 是否出现非预期异常状态。异常状态既可以通过监控存储、网络资源来捕获,也可以通过监测程序输出数据、程序运行过程中的关键数据来捕获。一旦在模糊测试中捕获到异常状态,则记录导致异常状态的输入向量,该异常向量可能导致潜在的网络安全漏洞,异常状态是否可以被利用则需要进一步深入验证。如果输入向量未导致SUT 出现非预期的异常状态,则需要调整输入向量,不断迭代测试直至达到一定的迭代次数。
2.?基于威胁的渗透测试框架研究
2.1?智能网联汽车网络安全威胁模型
攻击者常通过信息娱乐系统等关键
ECU
暴露的物理或无线通信接口发起攻击,攻陷目标 ECU
,进而入侵总线网络,甚至攻击总线网络中的其他 ECU
。
攻击者也可以利用环境感知、手机控车、车联网等功能将传感器、车 联网平台与手机应用程序作为攻击入口。
依据由车内到车外、底层到上层、硬件到软件的原则,智能网联汽车攻击路径涉及到的软硬件可被抽象为如下十个层次:
硬件板卡、
ECU
固件、
ECU
操作系统、车内总线、传感器、网络通信、云端平台、移动设备、隐私数据。
(1) 硬件安全威胁
1. 印刷电路板(
Printed Circuit Board
,
PCB
)安全威胁:
可能泄露集成电路芯片型号、接口电路、总线协议等信息
2. 处理器芯片安全威胁:
在运行程序会泄露电磁信息、时间信息、功耗信息等侧信道信息
。基于不同侧信道信息可以发起时序攻击
、功耗攻击
、电磁攻击
。 故障注入技术同样给处理器芯片带来严重的安全风险,电压故障注入、电磁故障注入、激光故障注入等攻击可以改变处理器运行逻辑。
3. 存储芯片安全威胁:
数据存储芯片面临数据残留威胁,
Flash
存储数据可通过编程器读取。
4. 硬件调试接口安全威胁:
JTAG
、
SWD
、
USB
等硬件调试接口也为攻击者获取片上系统内部存储数据提供了可行性
5. 板载总线安全威胁:
SPI
总线与
I
2
C
总线面临数据监听、数据篡改等网络安全威胁
汽车电子设备固件分为三类:
1. 全操作系统固件: 包含成熟的操作系统,应用在具有高性能与多功能需求的场景中[155]
。
2. 部分操作系统固件: 为满足特殊需求的实时操作系统,或者供应商定制的操作系统,完成基本的资源、任务管理等。
3. 无操作系统固件: 是编译好的二进制指令,没有进程管理、中断响应等操作系统功能。
口令、密钥、重要的网络资源地址、用户名、邮件地址等隐私信息可能明文编码在固件中。恶意攻击者可通过逆向工程技术获取目标系统的运行逻辑。攻击者也可以访问固件中的文件系统获取具有价值的关键数据,甚至可以通过动态分析的方式分析目标固件在真实物理运行环境下是否存在网络安全漏洞。
安全的智能网联汽车操作系统需要控制外部实体对系统内资源的访问。操作系统安全既要求操作系统在设计时通过权限访问控制、信息加密性保护、完整性校验等机制保护系统内数据安全,又要通过一系列的配置,保证操作系统避免由于设计与实现缺陷或是应用环境因素引入网络安全隐患。
(4) 总线安全威胁
智能网联汽车网络安全威胁框架中的总线安全威胁包括
CAN
总线安全威胁、FlexRay总线安全威胁、
LIN
总线安全威胁、
MOST
总线安全威胁、车载以太网总线安全威胁。
一方面,部分车内总线为了满足车内通信对于低延时的特殊需求,在设计时缺乏基本的安全防护机制,如传输数据加密、通信认证、数据完整性校验等。
另一方面,部分车内总线应用层协议具备较强的车辆访问与控制功能,如UDS
协议、
SOME/IP协议等。
无线电安全威胁,侧重于以无线传输介质为基础的物理层与链路层安全。
依据不同的传输距离,智能网联汽车中使用的无线通信技术分为
1. 短距离无线通信技术:
? ? Bluetooth 技术:面临中间人攻击等威胁。
? ? Zigbee技术:用于胎压监测领域,面临传输层泛洪攻击、网络层“虫洞”攻击和选择性转发攻击、
? ? ? ? ? ? ? ? ? ? ? ? ? 链路层拒绝服务攻击、无线电监听、篡改、阻塞攻击等威胁
? ??
UWB 技术:用于测算车辆位置,面临大范围数据监听等威胁
? ??NFC
技术:
应用于汽车钥匙领域,面临拒绝服务、通信数据中继
等威胁。
2. 中距离无线通信技术:中距离无线通信技术包括
? ? DSRC:应用于车载通信单元,其信道的开放性面临无线通信监听威胁。
? ??
Wi-Fi :
3. 长距离无线通信技术:以 5G、C-V2X 等为代表的蜂窝网络通信技术,用于车联网通信中的
? ? “车-车”通信与“车-云”通信。
(6) 网络安全威胁
网络安全威胁更侧重于基于 TCP/IP 协议栈的上层网络通信安全。
攻击者可能窃听网络中传输的敏感信息而获取传输内容。
(7) 云端安全威胁
智能网联汽车与云端服务平台进行网络通信,同样面临来自云端的网络安全威胁。
攻击者如果攻陷云端服务平台,不仅可以获取用户资料等隐私数据,也可以利用云端服务平台通过远程无线网络入侵目标车辆。
在远程车辆控制场景中,应用程序也可能作为攻击跳板为智能网联汽车带来重大网络安全隐患。
路线规划、智能调度等车联网服务中,车辆需要周期性广播自身状态信息,包括车辆实时位置、速度、行驶状态等关键数据
智能网联汽车高度依赖传感器数据实现自动驾驶的特性为车辆引入了更广泛的攻击面与潜在的网络安全风险
2.2?渗透测试框架