针对机器人车辆的多模式特性,动态裁剪冗余固件代码,提升安全性。
RVDebloater: Mode-based Adaptive Firmware Debloating for Robotic Vehicles
- 基于静态/动态分析识别每种模式下无需的函数代码,按需裁剪。
- 平均裁剪85%冗余函数,调用图缩小45%,且任务零失败。
- 适合需高安全性的嵌入式设备,如机器人、自动驾驶系统。
随着嵌入式设备数量增长和功能需求提升,嵌入式固件规模不断膨胀,攻击面随之扩大。许多设备(如机器人车辆)在不同运行模式下仅需部分固件代码。本文提出RVDebloater,一种针对多模式嵌入式设备的自适应固件裁剪技术,通过静态或动态分析自动识别各模式下的冗余代码,并在运行时以函数级粒度动态裁剪。该方法基于软件实现,支持多种设备。我们在六种机器人车辆(含仿真与实机)上评估,发现各模式下需求随生命周期变化,平均85%的函数在非当前模式中无需运行。实验显示所有任务均未失败,无误报或漏报;平均减少45%的固件调用图节点。实机测试中性能开销3.9%,内存增加4%(约0.25MB)。
原文摘要 · Abstract (English)
As the number of embedded devices grows and their functional requirements increase, embedded firmware is becoming increasingly larger, thereby expanding its attack surface. Despite the increase in firmware size, many embedded devices, such as robotic vehicles (RVs), operate in distinct modes, each requiring only a small subset of the firmware code at runtime. We refer to such devices as mode-based embedded devices. Debloating is an approach to reduce attack surfaces by removing or restricting unneeded code, but existing techniques suffer from significant limitations, such as coarse granularity and irreversible code removal, limiting their applicability. To address these limitations, we propose RVDebloater, a novel adaptive debloating technique for mode-based embedded devices that automatically identifies unneeded firmware code for each mode using either static or dynamic analysis, and dynamically debloats the firmware for each mode at the function level at runtime. RVDebloater introduces a new software-based enforcement approach that supports diverse mode-based embedded devices. We implemented RVDebloater using the LLVM compiler and evaluated its efficiency and effectiveness on six different RVs, including both simulated and real ones, with different real-world missions. We find that device requirements change throughout its lifetime for each mode, and that many critical firmware functions can be restricted in other modes, with an average of 85% of functions not being required. The results showed that none of the missions failed after debloating with RVDebloater, indicating that it neither incurred false positives nor false negatives. Further, RVDebloater prunes the firmware call graph by an average of 45% across different firmware. Finally, RVDebloater incurred an average performance overhead of 3.9% and memory overhead of 4% (approximately 0.25 MB) on real RVs.
Thank you to arXiv for use of its open access interoperability. PaperDance 不是 arXiv 官方产品;中文卡片由大模型生成,请以原文为准。