Two-stage tamper response in tamper-resistant software

Malicious modification of software continues to raise concerns; thus, many countermeasures against these threats have been proposed such as obfuscation and tamper resistance techniques that can be combined to create tamper-resistant software. The methods for responding to tampering are an important consideration in tamper-resistant software design. Many tamper response mechanisms deliberately cause the application to crash; however, this response has negative impacts on the developers and users. An alternative approach is to detect and fix malicious changes. However, this approach cannot deter an attacker from attempting to continuously modify target software. This study presents robust tamper-resistant software techniques to mitigate tampering and reverse engineering attacks. The tamper-resistant software is based on an existing control flow flattening scheme and includes extensions for tamper detection and flexibility. Furthermore, the authors introduce a dynamic key in their two-stage tamper response scheme that considers both software stability and continuous attack. When tampering is detected, the proposed two-stage tamper response first produces a warning level response such as self-healing or programme termination. Next, if an attacker continuously attempts to bypass the warning level response, a self-destructive tamper response is triggered, as the result of an incorrectly computed dynamic key.

[1]  Paolo Falcarin,et al.  Guest Editors' Introduction: Software Protection , 2011, IEEE Software.

[2]  Stephen Taylor,et al.  Software Protection through Anti-Debugging , 2007, IEEE Security & Privacy.

[3]  Adi Shamir,et al.  How to share a secret , 1979, CACM.

[4]  Mark Stamp,et al.  Metamorphic code generation from LLVM bytecode , 2013, Journal of Computer Virology and Hacking Techniques.

[5]  Christian S. Collberg,et al.  Watermarking, Tamper-Proofing, and Obfuscation-Tools for Software Protection , 2002, IEEE Trans. Software Eng..

[6]  Stefan Katzenbeisser,et al.  Covert Computation - Hiding code in code through compile-time obfuscation , 2014, Comput. Secur..

[7]  Paul C. van Oorschot,et al.  Hardware-assisted circumvention of self-hashing software tamper resistance , 2005, IEEE Transactions on Dependable and Secure Computing.

[8]  Bart Preneel,et al.  A taxonomy of self-modifying code for obfuscation , 2011, Comput. Secur..