2、项目定义与资产识别:确定TARA范围、识别系统边界、定义安全目标、识别关键资产

好,咱们正式开始干TARA的第一步。很多新手一上来就急着找漏洞、列攻击树,结果做到一半发现范围没定清楚,资产漏了一堆,又得回头重来。我见过好几个项目,就是因为这一步没走稳,后面评审被安全审计追着问“你这个边界怎么划的?这个资产为什么不算?”——场面一度很尴尬。

说白了,项目定义和资产识别就是给整个TARA画个圈、打个地基。圈画歪了,地基打浅了,后面盖的楼再漂亮也白搭。今天我就带你把这个圈画明白。

2.1 确定TARA范围:先画圈,再干活

TARA范围不是拍脑袋定的。你得先搞清楚:咱们这次分析的是哪个系统?是整车级、系统级、还是零部件级?范围定得太宽,分析工作量爆炸;定得太窄,关键风险全漏了。

我个人习惯用“三要素法”来锁定范围:

  • 系统边界:物理边界在哪?逻辑边界在哪?通信边界在哪?
  • 运行场景:车辆在什么状态下分析?行驶中、充电中、还是停车休眠?
  • 生命周期阶段:是开发阶段、生产阶段、还是售后运维阶段?

关键原则:TARA范围必须与项目开发范围对齐。如果项目只做T-Box,你就别把整个车联网的安全分析都揽进来。范围越大,资产越多,分析越浅,最后反而容易漏掉真正要命的东西。

我在一个OEM的项目里遇到过这种情况:客户要求对“智能座舱系统”做TARA,结果他们把中控屏、仪表盘、后排娱乐、语音助手、甚至手机互联全塞进来了。我一看,这哪是TARA,这是要写百科全书。后来我建议他们按功能模块拆成三个独立的TARA,每个模块单独定范围、单独出报告。评审一次过,效率翻倍。

2.2 识别系统边界:把墙砌清楚

系统边界就是你的“安全责任田”。边界画清楚了,你才知道哪些东西归你管,哪些东西是外部环境。

边界通常分三层:

边界类型 描述 典型例子
物理边界 硬件模块的物理接口、外壳、线束 ECU外壳、CAN总线接口、以太网接口
逻辑边界 软件进程、虚拟机、域隔离 Hypervisor分区、容器、安全域
通信边界 网络协议、数据链路、消息格式 CAN ID范围、SOME/IP服务、MQTT主题

你想想看,如果连边界都画不清楚,你怎么判断一个攻击是从外部进来的还是内部扩散的?

小技巧:画边界的时候,我习惯先画一张“系统上下文图”(System Context Diagram)。把目标系统放在中间,外部实体(人、云端、其他ECU、诊断工具)放在外面,箭头标出数据流。这张图画完,边界自然就出来了。

2.3 定义安全目标:从“要防什么”到“要做到什么”

安全目标不是“我们要安全”,那是废话。安全目标必须是可验证、可测试的。

ISO 21434里安全目标通常长这样:

  • “防止未授权的远程控制”——太模糊,没法测。
  • “当车辆处于行驶状态时,远程诊断接口不得执行写操作”——这个就能测。

我一般把安全目标拆成三个维度:

  1. 威胁场景:什么情况下会发生什么坏事?
  2. 防护措施:我们要做什么来阻止它?
  3. 验证标准:怎么证明我们做到了?

注意:安全目标不是拍脑袋定的。它必须来自TARA的威胁分析结果。换句话说,先有威胁,后有目标。别反过来——先定目标再去找威胁,那是本末倒置。

我记得有一次,一个团队在项目启动会上就写好了安全目标,然后让我帮忙做TARA。我一看,目标写得挺漂亮,但跟实际系统完全不搭。我问他们:“你们这个目标对应的威胁是什么?”他们答不上来。最后只能推倒重来,白白浪费了两周。

2.4 识别关键资产:数据、功能、硬件、软件

资产识别是TARA里最费功夫的一步,也是最容易出错的一步。很多人只盯着数据资产,把功能、硬件、软件全忘了。

ISO 21434里资产分四大类:

资产类型 定义 典型例子
数据资产 存储或传输的信息 用户隐私数据、车辆VIN、加密密钥、诊断日志
功能资产 系统提供的服务或能力 自动紧急制动(AEB)、远程解锁、OTA升级
硬件资产 物理组件 ECU、传感器、执行器、HSM安全芯片
软件资产 代码、固件、配置 Bootloader、操作系统、应用软件、安全策略配置

识别资产的时候,我建议你用“功能分解法”:

  1. 先把系统功能拆成最小功能单元(比如“远程解锁”是一个功能单元)。
  2. 每个功能单元背后,列出它依赖的数据、硬件、软件。
  3. 把这些列出来的东西全部登记到资产清单里。

举个例子,“远程解锁”这个功能:

  • 数据资产:用户身份凭证、解锁指令、车辆状态信息
  • 功能资产:远程解锁服务本身
  • 硬件资产:T-Box通信模块、BCM车身控制器
  • 软件资产:T-Box固件、BCM固件、云端解锁服务API

你看,一个简单的功能,背后就牵出这么多资产。要是只盯着数据,那硬件和软件的风险就全漏了。

避坑指南:我曾经在一个项目里,团队只识别了“数据资产”,结果评审的时候安全专家问:“你们这个ECU的Bootloader有没有安全漏洞?”他们答不上来,因为Bootloader是软件资产,根本没在清单里。后来补了30多个资产,TARA报告重写了三分之一。

2.5 知识结构图:项目定义与资产识别全景

下面这张图把整个流程串起来了。你可以把它当成一张“导航地图”,做TARA的时候随时回来看一眼,别走偏了。

项目定义与资产识别全景图 确定TARA范围 系统边界+运行场景+生命周期 识别系统边界 物理/逻辑/通信三层边界 定义安全目标 威胁场景→防护措施→验证标准 资产识别 数据资产 用户隐私数据 加密密钥 车辆VIN/诊断日志 功能资产 自动紧急制动(AEB) 远程解锁 OTA升级 硬件资产 ECU/传感器 执行器 HSM安全芯片 软件资产 Bootloader/OS 应用软件 安全策略配置 核心原则 范围对齐项目 → 边界画清责任 → 目标来自威胁 → 资产四类全覆盖

2.6 资产清单模板:拿来就能用

最后,我给你一个我项目里一直在用的资产清单模板。每次做TARA,我先把这张表填完,再往下走。你直接复制用就行。

资产ID 资产名称 资产类型 所属功能 安全属性(C/I/A) 备注
A-001 用户身份凭证 数据 远程解锁 C, I 存储在T-Box安全存储区
A-002 远程解锁服务 功能 远程解锁 A, I 依赖云端和T-Box通信
A-003 T-Box通信模块 硬件 远程解锁 A 4G/5G模块
A-004 T-Box固件 软件 远程解锁 I 版本v2.3.1
A-005 车辆VIN 数据 车辆身份识别 C, I 唯一标识
A-006 AEB功能 功能 自动紧急制动 A, I 功能安全ASIL-D相关

我的习惯:资产ID用“A-三位数字”的格式,方便后面做威胁分析和风险计算时引用。别用中文名当ID,Excel排序会乱,你试试就知道了。

好了,项目定义和资产识别这块就讲到这里。记住一句话:范围定清楚,边界画明白,目标有依据,资产全覆盖。这四步走稳了,后面的威胁分析和风险计算就是水到渠成的事。