2、渗透测试环境搭建:硬件工具(CANoe、USBCAN)、软件工具(Wireshark、CANalyzer)、虚拟机配置

好,咱们直接进入正题。做ADAS安全测试,环境搭建是第一步,也是决定你后面能不能顺利干活的关键一步。我见过太多人,工具买回来连不上、软件装完蓝屏、虚拟机跑不起来——说白了,都是前期准备没做到位。

这一章,我就把硬件怎么接、软件怎么配、虚拟机怎么调,掰开了讲清楚。你跟着走一遍,基本不会出大问题。

2.1 硬件工具:CANoe 与 USBCAN

先聊硬件。ADAS系统里,CAN总线是命脉。你要想抓报文、发攻击帧,手里没个趁手的家伙可不行。

2.1.1 CANoe:行业标杆,但别被它吓到

CANoe 是 Vector 家的旗舰产品。说实话,我第一次用的时候也被那密密麻麻的界面唬住了。但用久了你会发现,它其实就是个「万能转接头」——把电脑和车辆总线连起来,然后你想看什么、发什么,都行。

我个人的习惯是:

  • 先用 CANoe 做「监听模式」,看看总线上正常跑哪些报文
  • 再用它的「交互模式」手动发几个测试帧
  • 最后才写 CAPL 脚本做自动化攻击

别一上来就写脚本,容易翻车。我在项目里遇到过,有人直接发了一堆错误帧,结果把ECU搞进了boot模式,最后只能断电重启。

⚠️ 注意: CANoe 的 license 很贵,而且不同版本对 CAN FD 的支持不一样。做 ADAS 测试,建议至少用 CANoe 12.0 以上版本,否则有些高速报文你抓不全。

2.1.2 USBCAN:性价比之选

如果你预算有限,或者只是做实验室环境下的验证,USBCAN 是个好选择。市面上常见的有周立功的 USBCAN-II 或者广成科技的 GCAN 系列。

USBCAN 和 CANoe 的区别在哪?

对比项 CANoe USBCAN
价格 几万到十几万 几百到两千
功能 全功能(分析、仿真、测试) 基本收发 + 简单分析
驱动兼容性 自带驱动,即插即用 需要手动装驱动,有时会冲突
适合场景 整车级、产线级测试 实验室、单节点测试

嗯,这里要注意:USBCAN 的驱动在 Win10/Win11 上偶尔会掉线。我曾经在测试一个 AEB 系统的响应时间时,USBCAN 突然断开,数据全丢了。后来我学乖了——每次测试前,先跑 5 分钟连续收发,确认链路稳定再开始正式测试

2.2 软件工具:Wireshark 与 CANalyzer

硬件接好了,接下来就是软件。这两个工具,一个抓网络包,一个抓总线包,各有各的用处。

2.2.1 Wireshark:不只是抓IP包

很多人以为 Wireshark 只能抓以太网的包。其实它也能解析 CAN 报文——前提是你得装对插件。

具体做法:

  1. 下载 Wireshark 4.0 以上版本(老版本对 CAN 支持不好)
  2. 安装时勾选「USBPcap」和「Npcap」
  3. 把 CAN 硬件(比如 USBCAN)的驱动装好,让系统识别为一个虚拟网卡
  4. 在 Wireshark 里选择对应的接口,就能看到 CAN 报文了

你想想看,这意味着什么?意味着你可以把 CAN 报文和以太网报文放在同一个时间轴上分析。比如 ADAS 的摄像头数据走的是以太网,而控制指令走的是 CAN 总线——两边一对照,攻击路径就清晰了。

💡 小技巧: 在 Wireshark 里用 can.id == 0x123 这样的过滤表达式,可以快速定位特定 ID 的报文。我一般会先抓 10 分钟正常数据,然后写几个过滤条件保存下来,后面每次测试直接套用。

2.2.2 CANalyzer:Vector 家的分析利器

CANalyzer 和 CANoe 是同一家的,但定位不同。CANoe 偏重「测试与仿真」,CANalyzer 偏重「分析与诊断」。

我为什么推荐 CANalyzer?

  • 它的「Trace 窗口」能实时显示报文变化,比 Wireshark 的列表更直观
  • 支持 DBC 文件导入,直接看到信号名(比如 "Brake_Pressure"),不用对着十六进制数猜
  • 有「触发录制」功能——你可以设置当某个信号值超过阈值时,自动开始录数据

举个例子。我在测试一个 LKA(车道保持辅助)系统时,想看看当方向盘转角超过 90 度时,总线上的报文有什么异常。用 CANalyzer 的触发录制,设好条件,然后我出去喝了杯咖啡,回来数据已经录好了。省心。

⚠️ 注意: CANalyzer 和 CANoe 不能同时占用同一个硬件接口。如果你两个软件都要用,建议准备两块 CAN 卡,或者用虚拟通道。

2.3 虚拟机配置:隔离与复现

做渗透测试,虚拟机是标配。为什么?因为你要在测试环境里装各种工具、跑各种脚本,万一搞崩了系统,虚拟机一删一重建,干干净净。

我的虚拟机配置方案:

配置项 推荐值 说明
虚拟机软件 VMware Workstation 17 Pro 对 USB 设备穿透支持最好
操作系统 Ubuntu 22.04 LTS 兼容性好,工具链全
内存 8GB 以上 Wireshark + CANoe 同时跑,4GB 会卡
硬盘 80GB 动态分配 装完工具大概占 30GB,留点余量
网络模式 桥接模式 让虚拟机直接访问物理网络,方便抓包

USB 设备穿透是关键。 你想想看,CANoe 和 USBCAN 都是 USB 接口的,如果虚拟机认不到硬件,那一切白搭。

具体步骤:

  1. 在 VMware 里,点击「虚拟机」→「可移动设备」→ 找到你的 CAN 硬件
  2. 选择「连接(断开与主机的连接)」
  3. 如果驱动装好了,虚拟机里应该能看到新的网络接口或串口

我曾经踩过一个坑:在 Ubuntu 虚拟机里装 USBCAN 驱动时,系统提示缺少内核头文件。折腾了半天,最后发现是 VMware 的「共享文件夹」功能占用了 USB 中断。解决办法很简单——关掉共享文件夹,重启虚拟机,再插一次 USB 设备

📌 核心要点:
  • 硬件:CANoe 做主力,USBCAN 做备用
  • 软件:Wireshark 抓网络包,CANalyzer 抓总线包,两者互补
  • 虚拟机:Ubuntu 22.04 + 8GB 内存 + 桥接网络 + USB 穿透
  • 测试前:先跑 5 分钟稳定性验证,再开始正式测试

好了,环境搭好之后,下一章咱们就开始真刀真枪地抓报文、分析信号了。到时候你会发现,前期这些准备工作做得越扎实,后面测试就越顺手。