Abstract
A software birthmark is a unique characteristic of a program that can be used as a software theft detection technique. In this paper we present and empirically evaluate a novel birthmarking technique — Whole Program Path Birthmarking — which uniquely identifies a program based on a complete control flow trace of its execution. To evaluate the strength of the proposed technique we examine two important properties: credibility and tolerance against program transformations such as optimization and obfuscation. Our evaluation demonstrates that, for the detection of theft of an entire program, Whole Program Path birthmarks are more resilient to attack than previously proposed techniques. In addition, we illustrate several instances where a birthmark can be used to identify program theft even when an embedded watermark was destroyed by program transformation.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Codeshield java bytecode obfuscator, http://www.codingart.com/codeshield.html
Sandmark, http://www.cs.arizona.edu/sandmark/
Smokescreen java obfuscator, http://leesw.com
klassmaster.,Z.: http://www.zelix.com/klassmaster/index.html
Aiken, A.: Moss – a system for detecting software plagiarism , http://www.cs.berkeley.edu/aiken/moss.html
Anderson, R.J., Petitcolas On, F.A.P.: the limits of steganography. IEEE Journal of Selected Areas in Communications 16(4), 474–481 (1998) ,Special issue on copyright & privacy protection
Arboit, G.: A method for watermarking java programs via opaque predicates. In: The Fifth International Conference on Electronic Commerce Research, ICECR-5 (2002)
Bunke, H., Shearer, K.: A graph distance metric based on the maximal common subgraph (1998)
Collberg, C., Carter, E., Debray, S., Huntwork, A., Linn, C., Stepp, M.: Dynamic path-based software watermarking. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2004 (2004)
Collberg, C., Myles, G., Stepp, M.: Cheating cheating detectors. Technical Report TR04-05, University of Arizona (2004)
Christian Collberg and Clark Thomborson. Software watermarking: Models and dynamic embeddings. In: Conference Record of POPL 1999: The 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (January 1999), http://citeseer.nj.nec.com/collberg99software.html
Collberg, C., Thomborson, C., Low, D.: A taxonomy of obfuscating transformations. Technical Report 148, Department of Computer Science, University of Auckland (July 1997)
Collberg, C., Thomborson, C., Low, D.: Manufacturing cheap, resilient, and stealthy opaque constructs. In: Principles of Programming Languages 1998, POPL 1998, San Diego, CA (January 1998)
Davidson, R.L., Myhrvold, N.: Method and system for generating and auditing a signature for a computer program. US Patent 5,559,884, Assignee: Microsoft Corporation (1996), http://www.delphion.com/details?pn=US05559884_
Grover, D.: Program identification. In: Grover, D. (ed.) The Protection of Computer Software – Its Technology and Applications, pp. 122–154. Cambridge University Press, Cambridge (1989)
Larus, J.R.: Whole program paths. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 1999 (1999)
Monden, A., Iida, H., Matsumoto, K., Inoue, K., Torii, K.: A practical method for watermarking java programs. In: Compsac2000, 24th Computer Software and Applications Conference (2000)
Nevill-Manning, C.G., Witten, I.H.: Compression and explanation using hierarchical grammars. The Computer Journal 40(2/3) (1997)
Nevill-Manning, C.G., Witten, I.H.: Linear-time, incremental hierarchy inference for compression. In: Proceedings of the Data Compression Conference, DCC 1997 (1997)
Qu, G., Potkonjak, M.: Hiding signatures in graph coloring solutions. Information Hiding, 348–367 (1999)
Schleimer, S., Wilkerson, D., Aiken, A.: Winnowing: Local algorithms for document fingerprinting. In: Proceedings of the 2003 SIGMOD Conference (2003)
Stern, J.P., Hachez, G., Koeune, F., Quisquater Robust, J.-J.: object watermarking: Application to code. Information Hiding, 368–378 (1999), http://citeseer.nj.nec.com/stern00robust.html
Tamada, H., Nakamura, M., Monden, A., Matsumoto, K.: Detecting the theft of programs using birthmarks. Information Science Technical Report NAIST-IS-TR2003014 ISSN 0919-9527, Graduate School of Information Science, Nara Institute of Science and Technology (November 2003)
Tamada, H., Nakamura, M., Monden, A., Matsumoto, K.: Design and evaluation of birthmarks for detecting theft of java programs. In: Proc. IASTED International Conference on Software Engineering (IASTED SE 2004), February 2004, pp. 569–575 (2004)
Venkatesan, R., Vazirani, V., Sinha, S.: A graph theoretic approach to software watermarking. In: 4th International Information Hiding Workshop, Pittsburgh, PA (April 2001)
Whale, G.: Identification of program similarity in large populations. Computer Journal 33, 140–146 (1990)
Wise, M.J.: Detection of similarities in student programs: Yap’ing may be preferable to plague’ing. In: 23rd SIGCSE Technical Symposium, pp. 268–271 (1992)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Myles, G., Collberg, C. (2004). Detecting Software Theft via Whole Program Path Birthmarks. In: Zhang, K., Zheng, Y. (eds) Information Security. ISC 2004. Lecture Notes in Computer Science, vol 3225. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30144-8_34
Download citation
DOI: https://doi.org/10.1007/978-3-540-30144-8_34
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-23208-7
Online ISBN: 978-3-540-30144-8
eBook Packages: Springer Book Archive