Fault Mitigation Patterns

White Papers

Hardware fault injection is a class of hardware security attacks which have become increasingly popular, as these attacks are powerful and have a high probability of success. Most devices today are completely vulnerable against these attacks as developers have little awareness of the threat and do not know how to protect their code.

 

Fortunately, it is possible to harden the software and mitigate the fault injection threat. However, since the number of attacker opportunities is very high, this could require a large effort. In this paper, we propose a set of 11 fault mitigation patterns. These patterns are advantageous because they can be repeatedly applied, without making a detailed design for each instance, and thus minimize the mitigation effort. We organize the patterns along with three main strategies:

  1. Resist: Increase code resistance so that faults are less likely to disturb program behavior.
  2. Recover: Code resilience to prevent insecure behavior following a fault.
  3. Respond: Actions to deter attackers after detecting a fault.