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)组成部分的生态系统提供了一种有吸引力的系统设计模式,因为与定制解决方案相比,开发时间和成本大大降低,开发时间和成本大大低于定制解决方案,因此这种系统设计模式具有吸引力。然而,由于COTS组成部分中嵌入的恶意逻辑或硬件Trojans的可能性,人们越来越担心这种可能性。由于缺乏黄金模型和内部信号的可视性,现有信任核查方法通常不适用于COTS硬件。在这项工作中,我们提出了一个新颖的方法,通过对软件进行明智的修改,在不受信任的COTrojan处理器中进行运行的探测和复原力。拟议方法并不依赖于任何硬件冗余或建筑改造,因此与COTORS系统设计过程的系统设计过程紧密结合。通过执行多种功能等效软件变异软件实现Trojan复原力。我们制定并实施了一种解决方案,用于基于编译器的自动生成方案变式,对变式进行测试,并将其纳入单一可操作的处理中。我们首先分析了方案变式的有效性,以避免启动一个随机的Trojanstal Crediverstal 和在多个变式的变式中进行一个可变式的变式的变式中进行。