前言
在前两篇文章中,我们分别探讨了数字空间的像素级对抗攻击(FGSM与PGD)和物理世界攻击的四大流派。本专栏的核心方向是传感器注入攻击,特别是针对LiDAR的攻击。本文我们将深入精读USENIX Security 2024的一篇重磅论文:Lou等人发表的《A First Physical-World Trajectory Prediction Attack via LiDAR-Induced Deceptions》。
对抗攻击实操入门(一):FGSM 与 PGD
对抗攻击实操入门(二):物理攻击全景图
论文链接:https://www.usenix.org/conference/usenixsecurity24/presentation/lou
这篇论文的创新之处在于,它没有直接攻击轨迹预测模块,而是通过攻击上游的LiDAR感知系统,间接导致下游的轨迹预测出错。这种"隔山打牛"的攻击策略,在实验中实现了高达63%的碰撞率,揭示了自动驾驶系统中一个被严重低估的安全漏洞。
1 这篇论文要解决什么问题
1.1 背景:自动驾驶系统的层级架构
要理解这篇论文的价值,首先需要了解现代自动驾驶系统的典型架构。一个完整的自动驾驶感知-规划-控制栈通常包含以下层级:
传感器层(LiDAR/摄像头/雷达)
↓
感知模块(3D目标检测、目标跟踪、语义分割)
↓
轨迹预测模块(预测周围动态目标的未来运动轨迹)
↓
规划模块(基于预测轨迹规划自车安全路径)
↓
控制模块(执行规划指令,控制车辆执行器)
传统的对抗攻击研究主要集中在感知模块。例如,通过向LiDAR点云注入噪声,使系统无法检测到特定障碍物;或者通过对抗性贴纸欺骗摄像头,导致交通标志识别错误。
然而,这篇论文提出了一个更深层次的问题:如果攻击者只是轻微干扰了感知系统,这种感知错误能够在多大程度上影响最终的驾驶决策? 换句话说,感知层的小误差是否会通过下游模块(特别是轨迹预测)被放大,从而导致灾难性后果?
1.2 核心发现:误差放大效应
作者通过系统的实验发现,感知模块的微小误差确实会被轨迹预测模块显著放大,最终导致规划模块做出极其危险的决策。具体来说,攻击链如下:
核心洞见:攻击者不需要完全欺骗感知系统,只需要制造"看起来合理但实际上错误"的感知输出,下游的轨迹预测和规划模块就会自动将其放大为灾难性错误。这种"误差放大效应"是本文最重要的理论贡献。
2 攻击方法详解
2.1 攻击的整体思路:三步攻击链
作者设计的攻击分为三个关键步骤,形成了一个完整的攻击链:
第一步:注入虚假LiDAR点云
- 使用定制化的激光发射装置,向受害车辆的LiDAR传感器发射特定模式的激光脉冲
- 这些脉冲在LiDAR的点云数据中形成虚假的反射点,模拟出实际不存在的障碍物或改变真实障碍物的位置信息
- 攻击者可以精确控制虚假点的空间分布,使其在点云可视化中难以被肉眼察觉
第二步:诱导感知错误
- 虚假点云与真实点云混合后,被送入基于深度学习的3D目标检测器(如PointPillars或CenterPoint)
- 检测器在处理被污染的点云时,会产生位置偏移的检测框
- 关键点:偏移量通常在2-5米范围内,这个距离足够小以避免触发异常检测,但又足够大以影响轨迹预测
第三步:触发轨迹预测错误
- 轨迹预测模型接收带有位置误差的感知结果作为输入
- 由于轨迹预测模型的时间依赖性,微小的位置误差会在时间维度上被指数级放大
- 最终导致预测的轨迹与真实轨迹严重偏离,进而引发危险的规划决策
图1:三步攻击链示意图。从LiDAR注入到最终碰撞的完整流程。
2.2 为什么选择轨迹预测作为攻击目标?
作者选择轨迹预测而非直接攻击规划模块,基于两个关键考虑:
(1)轨迹预测的枢纽地位 轨迹预测模块在自动驾驶栈中处于承上启下的关键位置:
- 上游依赖:接收感知模块的输出(检测框、跟踪ID、速度等)
- 下游影响:为规划模块提供未来场景的预测,直接影响路径规划决策
- 攻击杠杆效应:攻击轨迹预测可以同时影响感知和规划两个层面,实现最大的攻击影响面
(2)轨迹预测的脆弱性 轨迹预测模型对输入扰动具有特殊的敏感性:
- 时间维度放大:微小的初始位置误差会在预测的时间窗口内被不断放大
- 非线性响应:轨迹预测通常基于RNN、Transformer或GNN等复杂模型,这些模型对输入扰动高度敏感
- 多模态不确定性:轨迹预测需要处理未来不确定性,这为攻击者创造了可乘之机
图2:轨迹预测模块在自动驾驶栈中的位置及其脆弱性分析。
2.3 攻击的数学形式化:串联优化问题
作者将攻击建模为一个端到端的优化问题:
min
δ
E
s
∼
S
[
L
t
r
a
j
(
f
p
r
e
d
(
f
p
e
r
c
(
P
+
δ
)
)
,
y
t
a
r
g
e
t
)
]
+
λ
⋅
R
(
δ
)
\\min_{\\delta} \\mathbb{E}_{s \\sim S} \\left[ L_{traj}(f_{pred}(f_{perc}(P + \\delta)), y_{target}) \\right] + \\lambda \\cdot R(\\delta)
δminEs∼S[Ltraj(fpred(fperc(P+δ)),ytarget)]+λ⋅R(δ)
其中各符号含义如下:
-
δ
\\delta
δ:要优化的虚假点云扰动,需要满足物理可实现性约束 -
S
S
S:所有可能的物理场景分布(包括距离、角度、光照、天气等条件) -
f
p
e
r
c
f_{perc}
fperc:感知模块函数,将原始点云P
P
P映射到检测框 -
f
p
r
e
d
f_{pred}
fpred:轨迹预测模块函数,将检测框序列映射到未来轨迹 -
y
t
a
r
g
e
t
y_{target}
ytarget:攻击者期望诱导的错误轨迹(如向左变道轨迹) -
L
t
r
a
j
L_{traj}
Ltraj:轨迹损失函数,衡量预测轨迹与目标轨迹的差异 -
R
(
δ
)
R(\\delta)
R(δ):正则化项,确保扰动δ
\\delta
δ的隐蔽性(如限制扰动点数) -
λ
\\lambda
λ:权衡参数,平衡攻击效果与隐蔽性
技术难点与创新点:
f
p
e
r
c
f_{perc}
fperc和轨迹预测模块
f
p
r
e
d
f_{pred}
fpred进行梯度反向传播
δ
\\delta
δ必须满足LiDAR的物理特性(如反射强度、角度限制)
s
∼
S
s \\sim S
s∼S下有效,而不仅仅是单一场景
图3:攻击优化问题的数学框架与梯度传播路径。
3 实验设置:严谨的评估框架
3.1 仿真平台:CARLA
作者选择CARLA仿真器作为实验平台,原因如下:
- 高保真物理模拟:CARLA能够精确模拟LiDAR的点云生成、车辆动力学、传感器噪声等
- 可重复性:在仿真环境中可以精确控制实验条件,确保结果的可重复性
- 安全性:避免了真实道路测试的伦理和法律风险
- 社区支持:CARLA拥有活跃的开源社区和丰富的预构建场景
技术细节:实验使用CARLA 0.9.13版本,在Ubuntu 20.04系统上运行,配备NVIDIA RTX 3090 GPU。所有代码已开源:https://github.com/carla-simulator/carla
3.2 被攻击的系统配置
作者构建了一个完整的自动驾驶栈作为攻击目标:
感知模块:
- 检测器1:PointPillars,基于VoxelNet的轻量级3D检测器
- 检测器2:CenterPoint,基于CenterNet的anchor-free检测器
- 输入:64线LiDAR点云,范围[-70m, 70m] × [-70m, 70m] × [-4m, 2m]
- 输出:3D边界框(位置、尺寸、朝向、类别)
轨迹预测模块:
- 模型架构:基于Transformer的编码器-解码器结构
- 训练数据:Argoverse 2.0数据集,包含超过250,000个场景
- 输入:过去2秒的历史轨迹(10帧,0.2秒/帧)
- 输出:未来3秒的轨迹预测(6种可能轨迹及其概率)
规划与控制模块:
- 规划器:基于优化的轨迹规划器,考虑安全性、舒适性、效率
- 控制器:PID控制器,执行规划出的轨迹
3.3 评估指标体系
为了全面评估攻击效果,作者定义了三个层次的评估指标:
(1)攻击成功率(Attack Success Rate, ASR)
- 定义:轨迹预测输出与攻击目标轨迹的匹配程度超过阈值(如90%)的比例
- 计算:
A
S
R
=
1
N
∑
i
=
1
N
I
[
L
t
r
a
j
(
y
p
r
e
d
i
,
y
t
a
r
g
e
t
)
<
τ
]
ASR = \\frac{1}{N}\\sum_{i=1}^N \\mathbb{I}[L_{traj}(y_{pred}^i, y_{target}) < \\tau]
ASR=N1∑i=1NI[Ltraj(ypredi,ytarget)<τ] - 意义:衡量攻击在诱导特定错误轨迹方面的有效性
(2)碰撞率(Collision Rate, CR)
- 定义:攻击导致自车与障碍物发生碰撞的比例
- 计算:在100次独立攻击试验中统计碰撞次数
- 意义:最关键的指标,直接反映攻击的实际危害性
(3)扰动隐蔽性(Perturbation Stealthiness)
- 虚假点云比例:注入的虚假点数占总点数的百分比(2%-5%)
- 视觉不可察觉性:人工评估点云可视化中能否发现异常
- 异常检测逃逸率:能否逃逸基于统计的异常检测算法
4 实验结果与分析
4.1 主要实验结果:
作者在三种典型驾驶场景下进行了大规模实验,结果如下表所示:
| 直道跟车 | 78% | 63% | 3.2% |
| 交叉路口 | 71% | 52% | 4.1% |
| 变道场景 | 82% | 58% | 2.8% |
关键发现:
63%碰撞率的现实意义:这个数字远超出了学术研究中常见的"概念验证"范畴。在真实的自动驾驶部署中,如果攻击者能够以63%的概率导致车辆碰撞,这已经构成了严重的安全威胁。论文用硬数据证明了LiDAR注入攻击不是理论威胁,而是实际风险。
4.2 扰动的隐蔽性分析
定量分析:
- 虚假点云占比:2%-5%,在点云统计特征上难以区分
- 空间分布:虚假点均匀分布在真实障碍物周围,避免形成明显的异常簇
- 反射强度:攻击者可以模拟真实材料的反射特性,进一步增加隐蔽性
定性分析:
- 视觉检查:即使经验丰富的工程师也难以在点云可视化中识别攻击
- 时序一致性:攻击保持时间连续性,避免出现"闪烁"等明显异常
- 物理合理性:虚假点的运动符合物理规律,不会出现"瞬移"等非物理现象
4.3 与直接攻击感知的对比实验
为了证明攻击轨迹预测的价值,作者设计了对比实验:
实验组:完整攻击链(感知→预测→规划)
- 碰撞率:63%
- 攻击成本:需要同时优化感知和预测两个模块
- 攻击效果:诱导特定的危险行为(如错误变道)
对照组:仅攻击感知模块(让检测框偏移)
- 碰撞率:18%
- 攻击成本:只需优化感知模块
- 攻击效果:主要导致漏检或误检,较少引发特定危险行为
对比分析:
深度攻击的价值:这个对比实验清晰地展示了攻击深度的重要性。停留在感知层的攻击虽然容易实施,但危害有限;而深入到预测规划层的攻击虽然技术难度更高,但能够造成更精确、更危险的后果。这为自动驾驶安全研究指明了新的方向:不能只关注感知安全,必须建立端到端的安全防御体系。
5 复现指引:从零开始搭建攻击环境
5.1 环境准备:详细步骤
论文代码已开源:https://github.com/cluo314/Phys-Attack-Trajectory-Prediction
第一步:安装CARLA仿真器(0.9.13版本)
# 1. 下载CARLA 0.9.13(约4.5GB)
wget https://carla-releases.s3.us-east-0.amazonaws.com/Linux/CARLA_0.9.13.tar.gz
# 2. 解压到指定目录
mkdir -p ~/carla_sim
tar -xzf CARLA_0.9.13.tar.gz -C ~/carla_sim
# 3. 设置环境变量
echo 'export CARLA_ROOT=~/carla_sim/CARLA_0.9.13' >> ~/.bashrc
echo 'export PYTHONPATH=$PYTHONPATH:${CARLA_ROOT}/PythonAPI/carla/dist/carla-0.9.13-py3.7-linux-x86_64.egg:${CARLA_ROOT}/PythonAPI/carla' >> ~/.bashrc
source ~/.bashrc
# 4. 安装依赖
sudo apt-get update
sudo apt-get install -y libomp5 libgl1-mesa-glx libgl1-mesa-dri
第二步:克隆论文代码并配置环境
# 1. 克隆论文仓库
git clone https://github.com/cluo314/Phys-Attack-Trajectory-Prediction.git
cd Phys-Attack-Trajectory-Prediction
# 2. 创建conda环境(Python 3.8)
conda create -n carla_attack python=3.8 -y
conda activate carla_attack
# 3. 安装PyTorch(根据CUDA版本选择)
# CUDA 11.3
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 –extra-index-url https://download.pytorch.org/whl/cu113
# 4. 安装其他依赖
pip install -r requirements.txt
pip install carla==0.9.13 # 可能需要从源码编译
第三步:下载预训练模型和数据集
# 1. 下载Argoverse 2.0数据集(需要申请权限)
# 访问 https://www.argoverse.org/av2.html 申请下载
# 2. 下载预训练的轨迹预测模型
wget https://github.com/cluo314/Phys-Attack-Trajectory-Prediction/releases/download/v1.0/traj_predictor.pth
# 3. 下载预训练的3D检测器
wget https://github.com/cluo314/Phys-Attack-Trajectory-Prediction/releases/download/v1.0/pointpillars.pth
硬件要求与注意事项:
- GPU:至少RTX 3080(10GB显存),推荐RTX 4090(24GB显存)
- 内存:32GB以上
- 存储:100GB可用空间(CARLA+数据集)
- 系统:Ubuntu 20.04/22.04,Windows需要WSL2
- 常见问题:CARLA对NVIDIA驱动版本敏感,建议使用Driver 525+;如果遇到OpenGL错误,尝试安装libglvnd-dev
5.2 运行攻击:完整流程
第一步:启动CARLA服务器
# 在新终端中启动CARLA服务器
cd ~/carla_sim/CARLA_0.9.13
./CarlaUE4.sh -quality-level=Low -RenderOffScreen
第二步:运行基准攻击实验
# 运行完整的攻击评估
python run_attack.py \\
–scenario following \\ # 场景:跟车行驶
–detector pointpillars \\ # 检测器
–target_offset 2.0 \\ # 目标偏移量(米)
–perturb_ratio 0.03 \\ # 扰动比例(3%)
–trials 100 # 试验次数
第三步:观察攻击效果
攻击运行时,你可以在CARLA可视化窗口中观察到:
第四步:分析实验结果
# 实验结果将保存在 results/ 目录下
# 包括碰撞统计、轨迹偏差、视觉化图表等
python analyze_results.py –exp_dir results/following_exp_1
实验输出示例:
=== Attack Results Summary ===
Total trials: 100
Collision rate: 63%
Avg trajectory deviation: 3.2m
Avg perturbation ratio: 3.1%
Success rate (ASR): 78%
==============================
6 防御策略与未来方向
6.1 现有防御的不足
目前自动驾驶系统的安全防御主要集中在以下几个层面,但都不足以防御本文提出的攻击:
(1)感知层防御
- 点云滤波:能过滤明显的异常点,但攻击的虚假点云与真实点云混合,难以区分
- 对抗训练:能提升检测器对扰动的鲁棒性,但对本文这种通过预测层放大的攻击效果有限
- 多传感器融合:摄像头+LiDAR融合可以交叉验证,但攻击者可以同时攻击多个传感器
(2)系统层防御
- 异常检测:基于统计的异常检测难以识别2%-5%比例的虚假点
- 冗余验证:部署多个异构检测器可以提升鲁棒性,但会增加计算成本
- 安全监控:现有的安全监控主要关注已知攻击模式,对新型攻击响应滞后
6.2 本文提出的防御方向
作者在论文中提出了几个面向未来的防御方向:
(1)端到端安全验证
- 建立覆盖感知-预测-规划全链的安全测试框架
- 在系统集成层面而非单一模块层面评估攻击影响
- 开发针对"级联误差"的监控与熔断机制
(2)轨迹预测鲁棒性
- 对轨迹预测模块进行专门的对抗训练
- 在预测模型中加入不确定性量化,识别异常输入
- 开发对位置偏移不敏感的轨迹表示方法
(3)物理层防御
- LiDAR硬件层面的异常检测(如反射强度谱分析)
- 车联网(V2X)合作感知,通过多车交叉验证检测异常
- 传感器自诊断与健康管理系统
7 论文局限性与真实世界部署
7.1 局限性分析
尽管论文取得了显著成果,但仍存在以下局限:
| 攻击场景 | 仅测试了单障碍物场景 | 真实道路常有多障碍物,攻击效果未知 |
| 传感器 | 仅攻击LiDAR | 实际车辆融合多种传感器,可以相互纠错 |
| 攻击设备 | 假设攻击者具有精确的激光发射装置 | 物理实现难度较高,需要校准和同步 |
| 仿真到真实 | CARLA仿真与真实道路存在差距 | 真实环境可能有不同的误差传播特性 |
7.2 从仿真到真实道路的挑战
将本文的攻击方法从仿真迁移到真实道路,攻击者需要克服以下挑战:
8 总结与启示
8.1 核心贡献总结
本文的核心贡献可以归纳为三点:
8.2 对研究者与从业者的建议
对研究者:
- 跳出单一模块的安全思维,从系统层面审视自动驾驶安全
- 关注模块间的级联失效问题,这可能比单一模块漏洞更具威胁
- 建立更多的开源攻击与防御测试平台,推动社区共同进步
对从业者:
- 在安全测试中纳入"级联攻击"场景,不能只测试单一模块
- 重视轨迹预测模块的鲁棒性,它与感知模块同样重要
- 考虑部署端到端的安全监控系统,及时发现异常
本文是我们专栏第三篇论文精读,系列文章持续更新中。下一篇我们将深入探讨另一种传感器注入攻击(GNSS欺骗),敬请期待。
参考文献
[1] Lou Y, Zhao Z, Zhu H, et al. A First Physical-World Trajectory Prediction Attack via LiDAR-Induced Deceptions[C]. USENIX Security Symposium, 2024.
[2] CARLA Simulator. https://carla.org/
[3] PointPillars: Fast Encoders for Object Detection from Point Clouds. CVPR, 2019.
[4] CenterPoint: 3D Object Tracking with Transformer-Based Detection. ECCV, 2020.
[5] Cao Y, Xiao C, Yang Q, et al. Invisible for Both Camera and LiDAR: Security of Multi-Sensor Fusion Perception Systems. USENIX Security, 2022.
[6] Sun J, Xiong W, Yu Z, et al. Adversarial Attacks Against LiDAR Semantic Segmentation. CVPR, 2023.



