Integrated Software Fingerprinting via Neural-Network-Based Control Flow Obfuscation
- 20 April 2016
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Information Forensics and Security
- Vol. 11 (10) , 2322-2337
Abstract
Dynamic software fingerprinting has been an important tool in fighting against software theft and pirating by embedding unique fingerprints into software copies. However, the existing work uses the methods from dynamic software watermarking as direct solutions, in which the secret marks are inside rather independent code modules attached to the software. This results in an intrinsic weakness against targeted collusive attacks, since differences among the software copies correspond directly to the fingerprint-related components. In this paper, we suggest a novel mode of the dynamic fingerprinting called integrated fingerprinting, of which the goal is to ensure all the fingerprinted software copies possess identical behaviors at semantic level. We then provide the first implementation of integrated fingerprinting called Neuroprint on top of a control flow obfuscator that replaces program's conditional structures with neural networks trained to simulate their branching behaviors. Leveraging the rich entropy in the outputs of these neural networks, Neuroprint embeds the software fingerprints, such that a one-time construction of the networks serves both the purposes of obfuscation and fingerprinting. Evaluations show that due to the incomprehensibility of neural networks, it is infeasible to de-obfuscate the software transformed by Neuroprint or attack the fingerprint using even the latest program analysis techniques. Revealing information regarding the hidden fingerprints via collusive attacks on Neuroprint is difficult as well. Finally, Neuroprint also demonstrates negligible runtime overhead.Keywords
Funding Information
- National Natural Science Foundation of China (61272423, 61300242)
- Natural Science Foundation of Tianjin (14JCYBJC15300, 15JCQNJC41500)
- National Key Basic Research Program of China (2013CB834204)
- Fundamental Research Funds for the Central Universities (65121012)
This publication has 36 references indexed in Scilit:
- Symbolic execution for software testingCommunications of the ACM, 2013
- A Case Study of Concolic Testing Tools and their Limitations2011
- Dynamic graph-based software fingerprintingACM Transactions on Programming Languages and Systems, 2007
- A hybrid particle swarm optimization–back-propagation algorithm for feedforward neural network trainingApplied Mathematics and Computation, 2007
- Dynamic path-based software watermarking2004
- Threading Software Watermarks2004
- Particle swarm optimization: developments, applications and resources2001
- Manufacturing cheap, resilient, and stealthy opaque constructs1998
- Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C1996
- The undecidability of aliasingACM Transactions on Programming Languages and Systems, 1994