概述

ThreatZ TestBench Agent(ArchitTestClient v2.0.0)是一款生产级、基于Python的汽车网络安全测试客户端,直接在您的测试台架硬件上运行。它针对真实ECU和车辆网络执行安全测试活动——通过HTTP/REST(协议V2)与ThreatZ平台无缝协调。代理通过命令轮询接收活动分配,使用协议特定模糊测试器和硬件适配器执行测试,并通过完整的制品收集报告发现。

TestBench Agent 是验证与测试模块的一部分。该模块管理整体可追溯性骨干——将测试用例与TARA需求关联、跟踪覆盖率、收集证据——而TestBench Agent 是将测试带到硬件层面的执行引擎

架构

代理遵循模块化架构,具有清晰的关注点分离:

模块用途
AuroraLink服务器通信——注册、轮询、状态更新、制品上传
Campaign Runner活动生命周期管理(排队 → 初始化 → 运行 → 成功/失败/终止)
Engine Framework协议模糊测试器、硬件适配器、安全防护
ARXML Parser车辆架构解析(基于canmatrix,多集群)
Scriptor从测试定义生成CAPL代码
Report ManagerFuzzReport XML/JSON生成
Trace ManagerBLF/ASC/PCAP追踪文件处理
Pipeline Manager测试管道编排
ODX Parser从ODX/PDX文件提取诊断数据

支持的协议(36+)

TestBench Agent 为36+种汽车通信协议配备了专用模糊测试器。每个模糊测试器使用CWE感知的变异策略,针对特定的弱点类别——而非随机字节。

车辆现场总线

协议能力
CAN 2.011位/29位ID,最大8字节载荷,比特率操控
CAN FD扩展载荷(最大64字节),双比特率(标称+数据),BRS/ESI攻击,DLC边界测试
CAN XL下一代CAN协议变体
LIN基于调度的消息注入
FlexRay动态时隙访问

诊断协议

协议能力
UDS (ISO 14229)会话管理、安全访问、DID读/写、例程控制、ECU复位
ISO-TP (ISO 15765)多帧诊断传输协议
DoIP (ISO 13400-2)车辆识别攻击、路由激活劫持、会话接管
ODX/PDX诊断数据提取和服务定义解析

汽车以太网

协议能力
SOME/IP服务/方法发现、载荷变异、响应引导模糊测试
EthernetMAC/IP配置、TCP/UDP变异、VLAN标签支持
DDS数据分发服务模糊测试
PTP精确时间协议攻击

其他协议

CANopen、J1939、CCP/XCP、SecOC、DLT、BLE、蜂窝网络、CHAdeMO、NFC、ISO 15118 (V2G)、GNSS、CCS、NACS、GBT、E2E保护

测试类型

模糊测试活动

  • 随机、覆盖率引导、基于语法和基于变异的策略
  • CWE感知的变异整形(每个协议20+ CWE)
  • 语料库管理与最小化
  • 响应引导的自适应模糊测试
  • 活跃CWE目标轮换(10秒间隔)

渗透测试

  • STRIDE分类的攻击向量(欺骗、篡改、抵赖、信息泄露、拒绝服务、权限提升)
  • 使用任意ID和载荷的CAN帧注入
  • 网关路由表操控
  • DoIP会话劫持和认证绕过
  • 诊断电源模式操控

鲁棒性测试

  • 总线负载压力测试(最高90%+负载)
  • 错误帧生成和洪泛检测
  • 扩展载荷边界测试
  • CAN/CAN-FD切换测试

UDS诊断测试

  • ECU Reset (0x10)、Read DID (0x22)、Write DID (0x2E)
  • Security Access (0x27)、Routine Control (0x31)
  • Write Memory Address (0x3D)、I/O Control (0x2F)
  • 会话管理(默认、编程、扩展)

合规与系统级测试

  • 安全合规验证(ISO 26262、SOTIF)
  • 协议合规验证
  • 多ECU协调和复杂攻击序列
  • 车辆在环集成

硬件抽象层

代理通过统一的供应商中立抽象支持多个硬件供应商——更换硬件无需更改测试配置。

供应商支持设备
Vector InformatikCANoe、CANalyzer、VN系列适配器
Peak SystemsPCAN-USB、PCAN-USB Pro FD
KvaserLeaf、Memorator、USBcan
IntrepidneoVI、ValueCAN
SocketCANLinux原生CAN接口
仿真用于离线测试的虚拟接口

硬件健康监控追踪连接质量、每帧延迟、帧丢失检测和性能退化评分,健康级别包括:健康、警告、临界。

5级安全升级

内置安全防护实时监控总线负载、错误帧速率和ECU心跳。当阈值被突破时,代理自动升级:

级别动作触发条件
1 — 节流降低注入速率接近警告阈值
2 — 暂停停止发送,仅监控警告阈值被突破
3 — 软复位通过UDS进行ECU软复位错误率持续
4 — 硬复位通过台架控制器进行电源循环ECU无响应
5 — 中止立即终止活动临界安全边界被越过

监控能力包括总线负载监控(75%警告,90%临界终止——可配置)、错误帧检测(默认>10错误/秒)、ECU心跳监控(5秒超时)、通过GUI的手动终止开关,以及用于特殊安全需求的自定义终止表达式。所有安全事件均记录类型、严重程度、时间戳、迭代索引和详细上下文。

CWE驱动的攻击智能

每个活动针对映射到被测协议的特定Common Weakness Enumerations:

  • 每个协议20+ CWE目标(例如CWE-120缓冲区溢出、CWE-1284输入指定数量的不当验证)
  • 每CWE整形规则定义如何变异帧字段以针对每个弱点类别
  • 攻击预设级别:Quick(快速扫描)、Standard(均衡)、Full(全面)
  • 每CWE BLF追踪文件用于审计粒度——每个弱点单独追踪捕获
  • 发现关联:每个发现映射回触发它的CWE

CANoe与CAPL集成

  • CANoe配置加载:直接加载.cfg文件用于仿真环境
  • CAPL脚本生成:Scriptor模块将DSL测试定义转换为可执行CAPL代码
  • 智能CAPL生成器:匹配ARXML信号定义的上下文感知脚本生成
  • 报告解析:从CANoe测试报告中提取结果(.vtestreport格式)
  • 输出发现:自动扫描CANoe输出目录进行制品收集

ARXML解析

代理使用基于canmatrix的解析器,支持多集群ARXML:

  • 提取带有TX/RX帧映射的ECU列表、带有仲裁ID和DLC的帧、带有类型/最小值/最大值/缩放的信号
  • 每目标ECU的NM帧检测和隔离
  • 具有CAPL命名空间兼容性的数据库名称推导
  • 多总线支持——处理定义多个CAN集群的ARXML文件,按帧ID去重

测试执行工作流

  1. 命令轮询——代理每15秒轮询ThreatZ平台获取新命令
  2. 活动初始化——加载ARXML、验证目标ECU、解析协议类型、加载攻击向量
  3. 利用——FuzzScheduler变异输入 → 协议模糊测试器针对CWE目标整形 → 硬件适配器发送
  4. 监控——独立监控线程分析响应、检测异常、跟踪时序
  5. 发现检测——将监控数据与攻击向量关联 → 生成带有严重程度和CWE映射的发现
  6. 制品收集——BLF追踪、日志、PCAP捕获、报告 → SHA-256完整性哈希
  7. 报告生成——FuzzReport(XML/JSON),包含目标转换、发现、覆盖数据、BLF引用
  8. 上传与完成——S3预签名URL上传并跟踪进度 → 状态更新至平台

活动状态:排队 → 初始化 → 运行 → 暂停 → 成功 / 失败 / 终止

Service Pack 执行

Service Pack 支持超越内置协议模糊测试器的自定义测试场景:

  1. CREATE_SCENARIO:平台发送包定义;代理创建文件夹结构和批处理/shell存根
  2. 配置:config.jsontool_config.jsonevidence_policy.jsonsafety_policy.json
  3. RUN_SERVICE_PACK:执行场景,捕获总线流量(BLF/ASC/PCAP),收集日志
  4. 证据收集:基于策略的制品过滤和收集
  5. 上传:S3预签名URL上传,包含清单和完整性验证

制品收集

每个活动产生一个完整的证据包:

制品类型格式用途
总线追踪BLF(二进制日志格式)Vector标准CAN追踪记录
文本追踪ASC(纯文本)人类可读CAN追踪
网络捕获PCAP以太网/DoIP/SOME-IP流量
执行日志纯文本代理运行时日志、错误、警告
测试报告FuzzReport XML/JSON结构化活动结果与发现
CANoe报告.vtestreportCANoe测试执行结果
生成脚本CAPL生成的测试自动化脚本
清单JSON每制品的SHA-256完整性校验和

所有制品通过S3预签名URL上传,支持超过5 MB文件的分片上传。服务端验证确认SHA-256完整性。

GUI与无界面运行

GUI(基于Flet)

  • 实时活动监控仪表板
  • CWE目标轮换器,10秒循环
  • 模糊测试范围选项卡,用于目标帧/信号选择
  • 监控选项卡,用于模式、窗口和容差配置
  • 硬件健康和连接状态指示器
  • 项目管理器,支持多项目切换
  • 暗色/亮色主题自动检测

无界面模式

  • 无GUI完整活动执行
  • 适合CI/CD集成和自动化回归测试
  • 通过.envproject_config.json配置
  • 所有结果以编程方式报告给平台

与ThreatZ平台的通信

代理使用HTTP/REST(协议V2)——无WebSocket依赖:

端点方法用途
/api/v2/agent/registerPOST基于机器标识符的代理注册
/api/v2/agent/healthPOST心跳(30秒间隔),包含状态和能力
/api/v2/agent/commands/pollGET拉取式命令传递(15秒轮询)
/api/v2/agent/statusPOST活动进度、测试结果、发现报告

使用JWT令牌和基于机器的标识符进行认证。通过租户ID跟踪支持多租户。制品上传使用S3预签名URL,具备SHA-256完整性验证和超过5 MB文件的分片上传。

与其他支柱的集成

方向功能机制
入站活动分配HTTP命令轮询(15秒间隔)
入站协议包和攻击向量随活动配置下载
入站ARXML和项目配置包含在活动载荷中
出站活动进度HTTP状态更新
出站测试发现带CWE关联的结构化发现报告
出站制品S3预签名URL上传,SHA-256验证
出站健康状态每30秒心跳,包含能力
出站安全事件记录并随活动结果上传