2、资产识别:什么是资产?如何识别资产?资产分类(硬件、软件、数据、通信)
好,咱们进入第二章。资产识别。
说实话,很多团队做 TARA 做到一半卡住了,回头一看,问题出在第一步——资产没找全,或者找错了。你想想看,连要保护什么都说不清楚,后面的威胁分析、风险评定,那不就成了空中楼阁?
这一章,我就带你把这个地基打牢。
2.1 什么是资产?——从“值钱的东西”说起
在 ISO 21434 的语境下,资产的定义其实很直白:凡是需要被保护的、对系统有价值的东西,都是资产。
这个“价值”不一定是钱。它可以是功能安全,可以是用户隐私,可以是品牌声誉,也可以是合规性。我见过一个项目,团队只把“ECU 硬件”当资产,结果漏掉了 OTA 升级包的签名密钥——后来测试时发现,攻击者能伪造升级包刷写固件。嗯,那个漏洞的 CVSS 评分直接飙到了 9.8。
我个人习惯把资产分成两类来看:
- 直接资产: 系统里明摆着的组件。比如摄像头、网关、T-Box。
- 间接资产: 支撑系统运行的数据、配置、凭证。比如 root 证书、VIN 码、刷写脚本。
很多新手只盯着直接资产,忽略了间接资产。我建议你从一开始就把这两类都列出来,否则后面补起来很痛苦。
2.2 如何识别资产?——三步法,别跳步
资产识别不是拍脑袋。它有一套标准动作。我把它总结成三步,你在项目里照着做就行。
第一步:拆解系统架构
你得先有一张系统架构图。没有?那就画一张。把所有的 ECU、传感器、执行器、通信链路都标出来。这一步不需要太细,但必须完整。
我记得有一次帮一家 Tier 1 做评审,他们给的架构图里漏了“调试接口”。结果呢?攻击者直接通过 OBD 口的 CAN 总线注入了恶意报文。你说这算不算资产?当然算。
第二步:识别功能与数据流
架构图有了,接下来看功能。每个 ECU 在干什么?它接收什么数据?输出什么数据?数据流经哪些节点?
举个例子:一个智能前视摄像头。它的资产包括:
- 硬件:摄像头模组、PCB、外壳
- 软件:图像处理算法、标定参数、固件
- 数据:原始视频流、目标检测结果、时间戳
- 通信:CAN 总线上的目标列表、以太网上的诊断报文
你看,这么一拆,资产就清晰了。
第三步:标注安全属性
每个资产,你都要问自己三个问题:
- 这个资产被篡改了会怎样?(完整性)
- 这个资产被泄露了会怎样?(机密性)
- 这个资产不可用了会怎样?(可用性)
这三个问题,就是后面威胁分析的基础。我建议你用一个表格来记录,格式可以参考下面这个:
| 资产名称 | 类型 | 安全属性(C/I/A) | 备注 |
|---|---|---|---|
| 网关固件 | 软件 | I(完整性) | 刷写时需签名验证 |
| V2X 通信证书 | 数据 | C(机密性) | 私钥不可导出 |
| 制动控制器 | 硬件 | A(可用性) | 功能安全相关 |
| OTA 更新包 | 通信 | I(完整性) | 需端到端校验 |
2.3 资产分类——硬件、软件、数据、通信
ISO 21434 没有强制要求你怎么分类,但实战中,我建议按这四类来分。为什么?因为每一类的攻击面不一样,防护手段也不一样。
2.3.1 硬件资产
硬件是物理存在的。比如:
- ECU 本体、传感器、执行器
- 连接器、线束、PCB
- 安全芯片(HSM、TPM)
硬件的威胁主要是物理攻击:拆解、侧信道、故障注入。我见过一个案例,攻击者用激光照射摄像头传感器,导致图像出现盲区。你说这算不算资产受损?当然算。
2.3.2 软件资产
软件是跑在硬件上的逻辑。包括:
- 固件、操作系统、中间件
- 应用程序、算法模型
- 配置参数、标定数据
软件的威胁主要是篡改和逆向。比如攻击者修改了制动逻辑的标定参数,让刹车响应变慢。嗯,这很危险。
2.3.3 数据资产
数据是系统里流动的信息。包括:
- 用户隐私数据(位置、身份、生物特征)
- 车辆身份数据(VIN、ECU 序列号)
- 密钥、证书、令牌
- 诊断日志、事件数据
数据的威胁主要是泄露和篡改。我特别想强调一点:密钥是最容易被忽视的数据资产。很多团队把密钥放在代码里硬编码,结果被反编译出来。你说这能安全吗?
2.3.4 通信资产
通信是连接各个组件的通道。包括:
- CAN/CAN-FD 总线
- 以太网(SOME/IP、DoIP)
- 无线通信(Wi-Fi、蓝牙、蜂窝、V2X)
- 诊断接口(OBD-II、UDS)
通信的威胁主要是窃听、重放、注入。比如攻击者在 CAN 总线上发送伪造的报文,让仪表盘显示错误的车速。这种攻击在实验室里很容易复现。
2.4 知识结构图:资产识别全景
下面这张图,把资产识别的核心逻辑串起来了。你可以把它贴在工位旁边,做 TARA 时随时对照。
2.5 实战建议:资产清单的维护
资产识别不是一次性工作。项目在演进,架构在变,资产清单也得跟着更新。我建议你:
- 每个迭代都过一遍: 新增了功能?换了芯片?改了通信协议?这些都可能引入新资产。
- 用工具管理: 别用 Excel 了,至少用个 Wiki 或需求管理工具。我见过用 Excel 管理资产清单的,版本一乱,全废了。
- 和功能安全团队对齐: 很多资产既是安全资产,也是功能安全资产。两边一起识别,省得重复劳动。