3、资产识别实战:如何定义网络安全资产、资产分类方法(ECU、传感器、通信链路、数据)、资产清单模板与工具
好,我们进入TARA分析最基础、也最容易被忽视的一步——资产识别。
很多新手拿到TARA任务,上来就急着找漏洞、列威胁。我见过不少项目,分析做到一半才发现资产清单漏了关键条目,整个风险评估都得返工。说白了,资产识别就是给系统做一次彻底的“人口普查”。你连家里有什么都不知道,怎么谈得上保护它们?
3.1 什么是网络安全资产?
先定义清楚:网络安全资产,是指那些如果被攻击者破坏、篡改或泄露,会对车辆安全、用户隐私或企业运营造成影响的任何有价值的东西。
注意,它不光是硬件。我习惯把资产分成四类:
- 硬件资产:ECU、传感器、执行器、网关、域控制器
- 软件资产:固件、操作系统、应用程序、Bootloader
- 数据资产:车辆VIN、用户凭证、诊断日志、CAN/LIN信号值
- 通信链路:CAN总线、以太网、FlexRay、蓝牙、Wi-Fi、蜂窝网络
你可能会问:“一个螺丝钉算不算资产?” 嗯,理论上它也是物理部件,但TARA关注的是可被网络攻击利用的资产。螺丝钉没有网络接口,所以通常不纳入资产清单。
核心原则:资产识别的粒度,取决于攻击面。一个ECU内部的某个内存区域,如果可以被远程写入,那它就是资产。反之,一个纯机械的刹车踏板连杆,没有电子接口,就不算网络安全资产。
3.2 资产分类方法
分类是为了后续分析更高效。我个人习惯用“功能域 + 通信类型”的二维矩阵来分类。举个例子:
| 功能域 | 典型硬件 | 典型数据 | 通信链路 |
|---|---|---|---|
| 动力域 | ECM(发动机控制模块)、TCU(变速箱控制单元) | 扭矩请求、转速信号、油门踏板位置 | 动力CAN、私有CAN |
| 底盘域 | ESP(电子稳定程序)、EPS(电动助力转向) | 轮速、横摆角速度、转向角度 | 底盘CAN、FlexRay |
| 信息娱乐域 | IVI(车载信息娱乐系统)、T-Box(远程通信盒) | 用户账户、导航地图、媒体文件 | 车载以太网、Wi-Fi、蓝牙、4G/5G |
| ADAS域 | 前置摄像头、毫米波雷达、激光雷达、域控制器 | 目标列表、车道线数据、融合感知结果 | 车载以太网、CAN FD、私有高速链路 |
你看,每个域都有自己独特的资产组合。我在做某个L3级自动驾驶项目时,就发现ADAS域的“融合感知结果”这个数据资产,被团队遗漏了。攻击者如果篡改了这个数据,车辆会做出错误的决策。嗯,后来我们紧急补上了。
3.3 资产清单模板
别用Excel随便列几行就完事。一份合格的资产清单,至少包含以下字段:
- 资产ID:唯一标识,比如“ADAS-CAM-001”
- 资产名称:通俗易懂,比如“前视摄像头模组”
- 资产类型:硬件/软件/数据/通信链路
- 所属功能域:动力/底盘/信息娱乐/ADAS/车身
- 网络接口:CAN/以太网/蓝牙/蜂窝/本地
- 安全属性:机密性(C)/完整性(I)/可用性(A) 哪个受影响
- 数据流向:谁发送、谁接收、协议是什么
- 备注:特殊说明,比如“该ECU有调试接口”
我的小技巧:在项目启动会上,拉着系统架构师、硬件工程师、软件工程师一起过一遍系统框图。每个人负责自己熟悉的模块,现场填写资产清单。这样效率最高,也最不容易遗漏。
3.4 工具推荐
工具不在多,顺手就行。我常用的组合是:
- Excel / Google Sheets:小项目(少于50个资产)完全够用,模板可以复用。
- Jama / DOORS:大项目(上百个资产)需要需求管理工具,方便追溯和变更管理。
- 专门的TARA工具:比如Medini Analyze、PREEvision(带安全模块)、Ansys medini。这些工具内置了资产库和威胁库,能自动生成部分分析结果。
我曾经在一个项目里,用Excel管理了200多个资产,结果版本混乱,有人改了没通知大家。后来换到Jama,每个资产都有变更记录,再也没出过问题。
避坑指南:我曾经见过一个团队,把“CAN总线”作为一个资产列进去,但没区分动力CAN、底盘CAN和信息娱乐CAN。结果分析时发现,三个CAN的安全等级完全不同,混在一起根本没法做风险评估。记住:每个物理或逻辑独立的通信通道,都应该单独列为资产。
3.5 资产识别流程图
下面这张图,是我在项目里反复使用的资产识别流程。你照着走一遍,基本不会漏。
这个流程看起来简单,但实际执行时,评审环节最容易出问题。我建议至少安排两次评审:第一次是技术评审,邀请架构师和开发人员;第二次是安全评审,邀请安全专家和项目经理。两次评审侧重点不同,能最大程度保证资产清单的完整性。
3.6 实战案例:一个ADAS系统的资产识别
拿一个典型的ADAS系统举例。系统包含:1个前置摄像头、1个毫米波雷达、1个域控制器、1个T-Box。
按照我们的流程,资产清单应该长这样:
| 资产ID | 资产名称 | 类型 | 功能域 | 网络接口 | 安全属性 |
|---|---|---|---|---|---|
| ADAS-CAM-001 | 前视摄像头模组 | 硬件 | ADAS | 车载以太网 | I, A |
| ADAS-RAD-001 | 毫米波雷达 | 硬件 | ADAS | CAN FD | I, A |
| ADAS-DCU-001 | 域控制器 | 硬件 | ADAS | 以太网, CAN FD | C, I, A |
| ADAS-TBOX-001 | T-Box | 硬件 | 信息娱乐 | 4G, 以太网 | C, I, A |
| ADAS-DATA-001 | 目标列表(摄像头输出) | 数据 | ADAS | 以太网 | I |
| ADAS-DATA-002 | 雷达点云数据 | 数据 | ADAS | CAN FD | I |
| ADAS-COM-001 | ADAS内部以太网链路 | 通信链路 | ADAS | 车载以太网 | C, I, A |
| ADAS-COM-002 | T-Box到云端的蜂窝链路 | 通信链路 | 信息娱乐 | 4G | C, I, A |
你看,T-Box虽然属于信息娱乐域,但它和ADAS域有数据交互,所以也要列进来。这就是为什么我强调要跨域协作。单独一个域的工程师,很难看清全局。
关键提醒:资产识别不是一次性工作。随着项目迭代,系统架构会变,新功能会加,旧资产会退役。我建议每个迭代周期结束时,都重新审视一次资产清单。别等到TARA分析做完了,才发现资产清单还是三个月前的版本。
好了,资产识别这块就讲到这里。你手头如果有项目,不妨现在就拉上团队,按照这个流程走一遍。你会发现,很多之前模糊的地方,一下子就清晰了。