Testing Embedded Software Through Fault Injection: Case Study on Smart Lock

The growing chip-level integration results in a higher susceptibility to faults of today components. This also relates to commonly used storage memories. A charged particle causes bit flip and a program stored in such memory starts to behave differently from it was supposed to. Even worse, such bit flips can be induced also on purpose to tamper with a device. While the so-called smart devices are becoming still more popular these days, such failure or even tampering of them is very undesired. A smart electronic lock can serve as an example. This is why in this paper, we evaluate the consequences of such program corruption. We target smart lock operation on several computer architectures and show the results on our case study observing the change of the lock behavior. We present our Evaluation Environment that is able to connect with single-board computers and evaluation kits to test the SW behavior on them, which is done under the presence of faults in the tested SW. Our results indicate that the most sensitive part of a program is generally the loading of shared libraries. Problem in this process results in inability to load the program. Segmentation Fault and early termination of the program (e.g. problem in the logic of motor cycle counting) is also serious. The least problematic, according to our observations, is the syntactic error in the output data. In such cases, the motor driver ignores corrupted commands and the motor move is not smooth. Certain findings from the experimental part of this paper, can be generalized to other devices as well.