Embedded systems are ubiquitous. However, physical access of users and likewise attackers makes them often threatened by fault attacks: a single fault during the computation of a cryptographic primitive can lead to a total loss of system security. This can have serious consequences, e.g., in safetycritical systems, including bodily harm and catastrophic technical failures. However, countermeasures often focus on isolated fault models and high layers of abstraction. This leads to a dangerous sense of security, because exploitable faults that are only visible at machine code level might not be covered by countermeasures. In this work we present ARMORY, a fully automated open source framework for exhaustive fault simulation on binaries of the ubiquitous ARM-M class. It allows engineers and analysts to efficiently scan a binary for potential weaknesses against arbitrary combinations of multi-variate fault injections under a large variety of fault models. Using ARMORY, we demonstrate the power of fully automated fault analysis and the dangerous implications of applying countermeasures without knowledge of physical addresses and offsets. We exemplarily analyze two case studies, which are highly relevant for practice: a DFA on AES (cryptographic) and a secure bootloader (non-cryptographic). Our results show that indeed numerous exploitable faults found by ARMORY which occur in the actual implementations are easily missed in manual inspection. Crucially, most faults are only visible when taking machine code information, i.e., addresses and offsets, into account. Surprisingly, we show that a countermeasure that protects against one type of fault can actually largely increase the vulnerability to other fault models. Our work demonstrates the need for countermeasures that, at least in their evaluation, are not restricted to isolated fault models and consider low-level information [...].
翻译:嵌入式系统无处不在。然而,用户和袭击者的实际接触往往使他们受到过失攻击的威胁:在计算一个加密原始系统时,一个完全自动的公开源码框架,在计算一个隐蔽的原始系统时,可能导致系统安全完全丧失。这可能带来严重后果,例如,在安全临界系统中,包括身体伤害和灾难性的技术故障。但是,反措施往往侧重于孤立的过失模型和高层次的抽取。这导致一种危险的安全感,因为只有机器代码一级才可见的可利用的错误可能不会被反措施所覆盖。在这项工作中,我们介绍的ARMORY是一个完全自动化的公开源码框架,用于对无处不在的ARM-M类的断层进行彻底的断层模拟。它使工程师和分析人员能够有效地扫描一个二进制的缺陷,防止在大量断层模型下任意混合注入多变式断层缺陷。我们用全自动断层断层分析的威力以及采用不精确的易失常的地址和抵消。我们举例式分析可以避免两种情况:DFAFA在实际操作中发现一个错误,而不用的模型显示,而不用的机算的模型也显示,而要显示的是,在实际操作中,在进行这种结果中,而要显示的是,这是一种安全的。