[论文解读] Software Variants for Hardware Trojan Detection and Resilience in COTS Processors
本文提出一种仅通过软件实现的运行时防御机制,用于检测不可信的商用现成(COTS)处理器中的硬件后门。该方法通过基于编译器的代码转换,生成功能等价的程序变体。通过执行多个变体并比较其输出,该方法可在不修改硬件的前提下检测出由后门引起的瞬时数据损坏,实现具有可测量但可控的运行时和代码大小开销的系统韧性,相关评估基准已验证其有效性。
The commercial off-the-shelf (COTS) component based ecosystem provides an attractive system design paradigm due to the drastic reduction in development time and cost compared to custom solutions. However, it brings in a growing concern of trustworthiness arising from the possibility of embedded malicious logic, or hardware Trojans in COTS components. Existing trust-verification approaches are typically not applicable to COTS hardware due to the absence of golden models and the lack of observability of internal signals. In this work, we propose a novel approach for runtime Trojan detection and resilience in untrusted COTS processors through judicious modifications in software. The proposed approach does not rely on any hardware redundancy or architectural modification and hence seamlessly integrates with the COTS-based system design process. Trojan resilience is achieved through the execution of multiple functionally equivalent software variants. We have developed and implemented a solution for compiler-based automatic generation of program variants, metric-guided selection of variants, and their integration in a single executable. To evaluate the proposed approach, we first analyzed the effectiveness of program variants in avoiding the activation of a random pool of Trojans. By implementing several Trojans in an OpenRISC 1000 processor, we analyzed the detectability and resilience during Trojan activation in both single and multiple variants. We also present delay and code size overhead for the automatically generated variants for several programs and discuss future research directions to reduce the overhead.
研究动机与目标
- 解决在缺乏黄金模型和设计访问权限的情况下,传统验证方法失效时,检测和缓解不可信COTS处理器中硬件后门的关键挑战。
- 开发一种无需硬件冗余、架构更改或网表访问的运行时防御机制,实现与现有COTS系统无缝集成。
- 通过最大化生成代码变体的功能和结构多样性,降低多个变体中同时被激活的后门概率。
- 在真实实现于OpenRISC 1000处理器中的后门上,评估基于变体的检测与韧性机制的有效性,测量开销与可检测性。
- 探索在保持强后门检测与韧性保障的前提下,最小化执行与代码大小开销的技术。
提出的方法
- 通过基于编译器的自动代码转换,将代码段(比较块,compare-blocks)转化为一对功能等价的软件变体,确保语义等价性,但指令操作码和操作数序列不同。
- 每个比较块执行两次:首先保存第一个变体的状态,然后将第二个变体的状态与之比较;不一致表明可能存在后门激活。
- 若前两个变体结果不一致,则执行第三个变体,并通过三者之间的多数投票机制确保即使一个变体被污染,输出仍正确。
- 使用$VS$度量标准指导变体选择,该度量标准衡量结构与行为多样性,以最小化多个变体同时被后门激活的概率。
- 通过system()或execl()系统调用将变体集成到单个可执行文件中,支持在多核系统上顺序或并行执行,以降低运行时开销。
- 将该方案应用于真实实现于OpenRISC 1000处理器中的后门,评估对象包括CRC32、susan和Triple DES等程序,以测量开销与检测能力。
实验结果
研究问题
- RQ1通过编译器转换生成的功能等价软件变体,能否有效检测不可信COTS处理器中瞬时硬件后门的触发行为?
- RQ2不同变体之间操作码与操作数序列的多样性如何影响多个变体同时被后门激活的概率?
- RQ3将多个变体集成到单个可执行文件中,对真实应用程序的运行时和代码大小开销有多大?
- RQ4该方法能否扩展以检测更复杂的后门行为,如持久性数据损坏或信息泄露?
- RQ5通过系统调用实现变体的并行执行,如何在多核环境中降低运行时开销?
主要发现
- 所提出的基于变体的方法通过检测功能等价变体之间不一致的程序状态,成功识别出COTS处理器中瞬时硬件后门的触发行为。
- 使用$VS$度量标准进行变体选择,显著降低了多个变体中同时被后门激活的概率,通过最大化代码级多样性实现。
- 运行时开销在不同基准测试中表现不一:susan和Triple DES等程序因代码修改量小,开销较低;而CRC32因变体执行后需进行大量变量比较,开销较高。
- 执行时间开销从极低到中等不等,平均增幅取决于程序类型和受保护变量数量,表明在性能敏感应用中通过选择性保护具有可行性。
- 该框架通过多数投票机制,在两个变体结果不一致时正确识别并容忍了后门引发的破坏,展现出良好的韧性。
- 未来工作应聚焦于优化编译器传递序列,以生成多样性更高但代码与运行时开销更低的变体,尤其针对乱序执行与推测执行处理器。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。