type
Page
status
Invisible
date
Nov 6, 2025
slug
summary
第2篇精读论文
tags
车联网
机器学习
category
icon
password
Revisiting Automotive Attack Surfaces: a Practitioners’ Perspective 原文链接:https://ieeexplore.ieee.org/document/10646688
发表会议:2024 IEEE Symposium on Security and Privacy (SP)
核心方向:从汽车网络安全从业者视角,揭示现有法规局限,提出改进的威胁数据库与自动化工具,解决现代车辆攻击面复杂、TARA(威胁分析与风险评估)低效问题。
一、研究背景与核心问题
- 现代车辆的安全挑战:攻击面与 IVN 拓扑双重复杂化 随着车辆智能化、网联化发展,传统 “封闭硬件” 模式被打破,安全风险呈指数级增长,具体体现在两方面:
- 外部攻击面扩展:车企为车辆新增远程控制(如远程开门、预热)、OTA 更新、车载浏览器等功能,导致攻击入口从传统的 OBD-II 端口,扩展到 Wi-Fi、蓝牙、官方 APP、后端服务器等,且这些新入口缺乏成熟的安全防护标准
- 内部 IVN 拓扑复杂化:为支撑 ADAS(高级辅助驾驶)、IVI(车载信息娱乐)等功能,ECU(电子控制单元)数量激增,IVN 拓扑从 “两总线” 升级为 “网关分段架构”(如 infoCAN、bdCAN 等域总线通过网关隔离),甚至未来的 “区域架构”,传统攻击路径(如直接 CAN 注入)因网关防护失效,新的跨域攻击路径难以识别
- 现有法规存在缺陷 当前汽车网络安全核心法规(WP29 R155e、ISO 21434、GB/T 40861-2021)虽试图建立行业基准,但通过专家访谈发现,其在实操中存在两大致命缺陷:
- 缺陷 1:威胁案例质量差,缺乏汽车专属属性 现有法规的威胁多复制自 IT 领域(如通用网络攻击),未覆盖汽车高频、专属威胁(如 IVI 浏览器漏洞、远程控车 APP 密钥泄露);且威胁描述仅包含 “攻击现象”,缺少攻击路径(AD)、根本原因(RC)、安全测试方法(STA)、缓解措施(MG) 等关键维度,专家对 WP29 R155e 和 GB/T 的威胁质量评分仅 2.77 分、2.72 分(满分 5 分),其中 STA 维度评分最低(分别为 1.38 分、1.76 分)
- 缺陷 2:TARA 流程低效,缺乏自动化与客观标准 ISO 21434 仅提供 TARA 的 “高层方法论”(如 “识别资产→分析威胁→评估风险”),但未定义具体执行标准:
- 资产识别难:依赖车企提供的文档,常因信息不全需反复沟通,占 TARA 总耗时 50% 以上(如专家 P14 反馈 “资产识别耗时超 TARA 一半”);
- 结果一致性差:风险评估依赖主观经验,同一产品的整车厂与供应商 TARA 结果差异显著(如专家 P12 提到 “我们与供应商的 TARA 结果完全不同”);
- 自动化程度低:攻击路径分析、风险计算全靠人工,无工具支持(15 位专家均反馈 “TARA 依赖个人经验,无法自动化”)。
因此采用以下方式来填补上述不足:
3. 改进的汽车威胁数据库
4. 一种TARA自动化工具
二、研究方法
第一步:专家访谈研究(核心数据来源)
为精准捕捉行业痛点,研究团队设计了半结构化访谈,覆盖 “安全实践→法规评估→改进建议” 全维度:
- 访谈对象:15 位汽车网络安全专家,来自 9 家企业(8 家整车厂、9 家第三方供应商,含 2 家兼具双重角色的企业),平均安全领域经验 6 年,含 2 位超 10 年资深专家(P1:10 年,P14:20 年),角色涵盖 TARA、安全测试、项目管理、法规研究,确保视角全面;

- 访谈流程:
- 协议设计:基于 3 大目标(识别行业挑战、评估法规有效性、收集改进建议),先从现有法规(ISO 21434、WP29 R155e 等)提取 38 个初始威胁,设计访谈提纲,经 10 轮预访谈优化后定稿;
- 实施过程:2022 年 11 月 - 2023 年 3 月,通过线上会议开展,记录屏幕与音频,访谈时长 38 分钟 - 2 小时 52 分钟,会后将初步整理的威胁数据库反馈专家确认;
- 数据分析:采用 “迭代开放编码法”—— 全体作者制定初始编码本,2 位作者独立编码,解决冲突后更新编码本,直至无新代码出现,最终提炼 20 条关键见解;
- 伦理考量:访谈前明确数据用途与匿名化规则,获专家及企业授权,转录文本剔除敏感信息(如企业名称、车型),数据存储符合 GDPR 规范。
- 流程:半结构化访谈(2022.11-2023.3)→ 转录文本→ 迭代编码→ 验证威胁数据库。

第二步:核心解决方案设计(针对访谈痛点)
访谈发现的 “威胁库质量低”“TARA 自动化不足” 两大痛点
(1)改进的汽车威胁数据库:分层 + 知识图谱,填补行业空白
针对现有威胁库 “不具体、无关联” 的问题,基于 15 位专家的帮助,构建了 “主题(TT)- 代码(TC)- 描述(TD)” 三层架构威胁数据库 ,并通过知识图谱(TKG)体现威胁关联:
- 分层架构细节
层级 | 定义 | 数量 / 示例 |
威胁主题(TT) | 高层分类,基于 “威胁载体 / 场景” 划分 | 7 个,如 T2(车载组件)、T3(车外组件)、T4(通信协议) |
威胁代码(TC) | 中层分类,对应具体的汽车组件 / 功能 | 28 个,如 T2 下的 C6(IVI)、C10(ADAS),T3 下的 C14(官方 APP)、C15(后端服务器) |
威胁描述(TD) | 最小单元,包含 AD、RC、STA、MG 四维度详细信息 | 119 个,如 “IVI 浏览器远程代码执行:AD(通过恶意网页触发)、RC(浏览器沙箱失效)、STA(模糊测试)、MG(更新浏览器补丁)” |
- 威胁知识图谱(TKG):为解决 “威胁孤立无关联” 问题,用三元组(头实体,关系,尾实体)表示威胁间逻辑,如(C6.IVI,易受… 威胁,C6.USB)(IVI 的 USB 接口易引发 IVI 安全问题)、(C14. 官方 APP,依赖… 认证,C15. 后端服务器)(APP 需与服务器认证,服务器漏洞影响 APP 安全),共构建 109 个三元组,辅助 TARA 时的 “跨组件威胁分析”;
- 数据库优势:较现有法规,数量上从 38 个威胁扩展到 119 个,质量上补充了汽车专属威胁与 STA/MG 细节,结构上通过 TKG 实现 “关联分析”,完整数据库可通过作者提供的链接获取。
(2)CarVal 工具:基于 Datalog 的 TARA 自动化工具
针对 TARA“无工具、低效率” 问题,研究团队提出首个基于 Datalog 的汽车攻击路径推理与风险评估工具,核心是 “将 IVN 拓扑与威胁规则转化为逻辑语句,自动生成攻击路径并计算风险”:
挑战
- 无 IVN 专属攻击推理规则:传统工具依赖 IT 网络人工制定的规则,缺乏适配 IVN 的推理逻辑。
- IVN 拓扑复杂(网关分段 + 总线广播)难以建模:企业网络中节点均视为 “统一规则主机”,而 IVN 由多配置 ECU、广播型总线(如 CAN)及网关组成,传统工具无法精准表征。
- 传统工具仅计算攻击可行性,忽略汽车场景攻击影响:现有方法仅评估攻击实施的可能性,未结合汽车安全标准(ISO 21434)要求的 “攻击影响”,输出结果不完整。
解决方案
- 基于 15 位汽车安全专家访谈构建的威胁数据库,提炼 IVN 专属推理规则(如 “ECU 代码执行→总线广播”、“网关转发漏洞→跨域攻击”),覆盖 ECU 交互、总线特性等车载场景特性。
- 提出 “总线广播模型 + 网关星型模型” 混合架构 —— 前者适配 CAN 总线 “一发多收” 的广播特性,后者描述网关对不同域总线(如 infoCAN、bdCAN)的隔离与转发逻辑,实现 IVN 拓扑的 Datalog 格式转化。
- 在风险评估模块中,同时计算 “攻击可行性(F)” 与 “攻击影响(I)”,并参考 ISO 21434 构建风险值(R)计算模型,覆盖汽车场景的安全需求。
三、复现
项目地址:https://github.com/VehicleCyberSec/CarVal
环境安装
安装必要依赖
安装XSB环境
最终安装路径:~/tools/XSB
因为
configure 会误引用 “xsb-5.0.0”,所以创建一个同名软链接指向当前目录:编译与安装
添加环境变量
把以下内容写到.zshrc中
保存后使配置生效
安装mulval
测试安装是否成功
若在文件夹中生成AttackGraph.pdf则说明成功

CarVal使用
先按github项目介绍中替换复制相关文件到mulval,然后在mulval/utils/文件夹下执行
执行后出现报错如图

查看xsb_log.txt显示如下
排查后发现问题:
carval_infer.sh 里硬编码了一个不存在的 XSB 路径:/home/philjin/Downloads/XSB-5.0/XSB/bin/xsb解决方法如下:
执行后再次执行
成功
原因:把它改成裸命令
xsb 之后,Shell 会按 PATH 去搜索并找到你在 WSL 里已经可执行的 xsb,所以就能跑通了。

执行如下命令,若提示缺少库则按提示安装

最后可以在目录下看到
risk_access_output.png文件
Datalog
定义
Datalog 是一种用于逻辑推理(Logic Programming)**的语言,它是 Prolog 的一个子集,主要用于表示事实(facts)和规则(rules),并通过逻辑推理自动生成结论(inference)。
可以理解为:
- SQL 是“关系数据库的查询语言”;
- Datalog 是“关系数据库的逻辑推理语言”。
它广泛用于:
- 网络安全推理(MulVAL、CarVal)
- 静态程序分析
- 访问控制策略分析
- 语义网络 / 知识图谱推理
- 数据流分析与逻辑约束求解
组成结构
Datalog 程序主要由三种语句组成:
类型 | 说明 | 举例 |
事实(Fact) | 具体存在的已知条件(数据) | vulExists(webServer, cve2021). |
规则(Rule) | 条件逻辑,用于推理新事实 | canAttack(X, Y) :- vulExists(Y, V), netAccess(X, Y). |
查询(Query) | 想要推理的问题 | ?- canAttack(attacker, database). |
规则语法:表示:如果 body1、body2、body3 都为真,则 head 为真。
一个简单示例
假设我们有如下 Datalog 程序:
执行推理后,我们可以得到新的事实:
解释为:主机
a 可以攻击主机 b,因为它们连接且 b 有漏洞。Datalog 与 Prolog 的区别
特性 | Datalog | Prolog |
语法 | 无函数、仅有关系 | 支持函数、递归复杂结构 |
执行顺序 | 声明式(顺序无关) | 过程式(顺序会影响) |
用途 | 推理、约束、分析 | 通用逻辑编程 |
安全性框架应用 | ✅ MulVAL, CarVal | ❌ 通常不用 |
在 CarVal 中,Datalog 是通过 XSB Prolog 引擎 运行的(也就是
xsb 命令),所以实际上是用 Prolog 的语法执行 Datalog 的逻辑。代码文件梳理
文件名 | 类型 | 功能定位 | 主要作用 |
carval_infer.sh | Shell脚本( .sh) | 主运行脚本 | 整个分析流程的“入口文件”。负责调用 MulVAL 的推理引擎( XSB)、载入规则与输入文件、生成攻击图输出。最终产出 AttackGraph.dot 等文件。 |
input_IVN.P | Datalog输入文件( .P) | 系统/拓扑描述 | 定义系统资产、网络拓扑、漏洞、访问关系等事实(facts),是推理的输入数据。例如:主机、ECU、通信总线、漏洞描述等。 |
interaction_rules.P | Datalog规则文件( .P) | 推理逻辑规则 | 定义“如何从事实推出新事实”。即推理规则(rules),例如“若A能访问B且B存在漏洞→A可攻陷B”。类似 MulVAL 的知识库(knowledge base)。 |
risk_assessment.py | Python脚本 | 后处理与风险分析 | 从 MulVAL 推理生成的结果(如 .dot 攻击图)中读取信息,对节点进行风险评估与可视化。生成最终的 risk_assess_output.pdf/png。 |
carval_infer.sh
carval_infer.sh 是 CarVal/MulVAL 的主驱动脚本:把规则与事实拼成 XSB(Prolog)运行脚本,调用 XSB 执行推理,随后把推理产物转换为攻击图并做后处理(CSV、可视化、XML、风险评估等)。

