Skip to main content

Tamper-Tolerant Software: Modeling and Implementation

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNSC,volume 5824))

Abstract

Common software-protection systems attempt to detect malicious observation and modification of protected applications. Upon tamper detection, anti-hacking code may produce a crash or gradual failure, rendering the application unusable or troublesome. Such a response is designed to complicate attacks, but has also caused problems for developers and end users, particularly when bugs or other problems invoke anti-tampering measures accidentally. To address these issues, an alternative approach is to detect and fix malicious changes. This paper presents a scheme to transform programs into tamper-tolerant versions that use self-correcting operation as a response against attacks. Combining techniques from the fields of fault tolerance and software security, the approach transforms programs via code individualization and redundancy. We also describe security enhancements through error correction, delayed responses and checkpointing. For security analysis, we adapt a graph-based model of attacks and defenses in the context of software tamper-resistance. This helps to estimate the difficulty of breaking our scheme in practical scenarios.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Anckaert, B., Jakubowski, M.H., Venkatesan, R.: Proteus: Virtualization for diversified tamper-resistance. In: DRM 2006: Proceedings of the ACM Workshop on Digital Rights Management, pp. 47–58. ACM Press, New York (2006)

    Chapter  Google Scholar 

  2. Anckaert, B., Jakubowski, M.H., Venkatesan, R.: Runtime protection via dataflow flattening. In: IARIA SECURWARE 2009 (to appear, 2009)

    Google Scholar 

  3. Anckaert, B., Jakubowski, M.H., Venkatesan, R., De Bosschere, K.: Run-time randomization to mitigate tampering. In: Miyaji, A., Kikuchi, H., Rannenberg, K. (eds.) IWSEC 2007. LNCS, vol. 4752, pp. 153–168. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  4. Anckaert, B., De Sutter, B., De Bosschere, K.: Software piracy prevention through diversity. In: DRM 2004: Proceedings of the 4th ACM Workshop on Digital Rights Management, pp. 63–71. ACM Press, New York (2004)

    Chapter  Google Scholar 

  5. Aucsmith, D.: Tamper resistant software: An implementation. In: Anderson, R. (ed.) IH 1996. LNCS, vol. 1174, pp. 317–333. Springer, Heidelberg (1996)

    Google Scholar 

  6. Avizienis, A.: The methodology of N-version programming. In: Lyu, M.R. (ed.) Software Fault Tolerance,ch. 2, pp. 23–46. Wiley, Chichester (1995)

    Google Scholar 

  7. Barak, B., Goldreich, O., Impagliazzo, R., Rudich, S., Sahai, A., Vadhan, S., Yang, K.: On the (im)possibility of obfuscating programs. In: Kilian, J. (ed.) CRYPTO 2001. LNCS, vol. 2139, pp. 1–18. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  8. Bhansali, S., Chen, W.-K., de Jong, S., Edwards, A., Murray, R., Drinić, M., Mihočka, D., Chau, J.: Framework for instruction-level tracing and analysis of program executions. In: VEE 2006: Proceedings of the 2nd international conference on Virtual execution environments, pp. 154–163. ACM, New York (2006)

    Google Scholar 

  9. Chang, H., Atallah, M.J.: Protecting software code by guards. In: Digital Rights Management Workshop, pp. 160–175 (2001)

    Google Scholar 

  10. Chen, Y., Venkatesan, R., Cary, M., Pang, R., Sinha, S., Jakubowski, M.H.: Oblivious hashing: A stealthy software integrity verification primitive. In: Information Hiding 2002, Noordwijkerhout, The Netherlands (October 2002)

    Google Scholar 

  11. Cloakware Corporation. Software Security Suite (2009)

    Google Scholar 

  12. Collberg, C., Thomborson, C., Low, D.: A taxonomy of obfuscating transformations. Technical Report 148, Department of Computer Science, The University of Auckland, New Zealand (July 1997)

    Google Scholar 

  13. Collberg, C., Thomborson, C., Low, D.: Breaking abstractions and unstructuring data structures. In: International Conference on Computer Languages, pp. 28–38 (1998)

    Google Scholar 

  14. Collberg, C., Thomborson, C., Low, D.: Manufacturing cheap, resilient, and stealthy opaque constructs. In: Principles of Programming Languages, POPL 1998, pp. 184–196 (1998)

    Google Scholar 

  15. Dedić, N., Jakubowski, M.H., Venkatesan, R.: A graph game model for software tamper protection. In: Proceedings of the 2007 Information Hiding Workshop (June 2007)

    Google Scholar 

  16. Denning, P.J.: Fault tolerant operating systems. ACM Comput. Surv. 8(4), 359–389 (1976)

    Article  MATH  Google Scholar 

  17. Goldwasser, S., Kalai, Y.T.: On the impossibility of obfuscation with auxiliary input. In: FOCS 2005: Proceedings of the 46th IEEE Symposium on Foundations of Computer Science (2005)

    Google Scholar 

  18. Horne, B., Matheson, L.R., Sheehan, C., Tarjan, R.E.: Dynamic self-checking techniques for improved tamper resistance. In: Digital Rights Management Workshop, pp. 141–159 (2001)

    Google Scholar 

  19. Jacob, M., Jakubowski, M.H., Venkatesan, R.: Towards integral binary execution: Implementing oblivious hashing using overlapped instruction encodings. In: 2007 ACM Multimedia and Security Workshop, Dallas, TX (September 2007)

    Google Scholar 

  20. Jakubowski, M.H., Naldurg, P., Patankar, V., Venkatesan, R.: Software integrity checking expressions (ICEs) for robust tamper detection. In: Furon, T., Cayre, F., Doërr, G., Bas, P. (eds.) IH 2007. LNCS, vol. 4567, pp. 96–111. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  21. Linden, T.A.: Operating system structures to support security and reliable software. ACM Comput. Surv. 8(4), 409–445 (1976)

    Article  Google Scholar 

  22. Lynn, B., Prabhakaran, M., Sahai, A.: Positive results and techniques for obfuscation. In: Cachin, C., Camenisch, J.L. (eds.) EUROCRYPT 2004. LNCS, vol. 3027, pp. 20–39. Springer, Heidelberg (2004)

    Google Scholar 

  23. Microsoft Corporation. Phoenix compiler framework (2008)

    Google Scholar 

  24. Moon, T.K.: Error Correction Coding: Mathematical Methods and Algorithms. Wiley-Interscience, Hoboken (2005)

    Book  Google Scholar 

  25. Feng, Q., Joseph, T., Yuanyuan, Z., Jagadeesan, S.: Rx: Treating bugs as allergies—a safe method to survive software failures. ACM Trans. Comput. Syst. 25(3), 7 (2007)

    Article  Google Scholar 

  26. Randell, B.: System structure for software fault tolerance. In: Proceedings of the International Conference on Reliable Software, Los Angeles, California, pp. 437–449. ACM, New York (1975)

    Chapter  Google Scholar 

  27. Randell, B., Lee, P., Treleaven, P.C.: Reliability issues in computing system design. ACM Comput. Surv. 10(2), 123–165 (1978)

    Article  MATH  Google Scholar 

  28. Siewiorek, D.P., Swarz, R.S.: Theory and Practice of Reliable System Design. Digital Press, Bedford (1982)

    Google Scholar 

  29. Tan, G., Chen, Y., Jakubowski, M.H.: Delayed and controlled failures in tamper-resistant software. In: Proceedings of the 2006 Information Hiding Workshop (july 2006)

    Google Scholar 

  30. Tyrrell, A.M.: Recovery blocks and algorithm-based fault tolerance. In: EUROMICRO Conference, vol. 0, p. 292 (1996)

    Google Scholar 

  31. Varadarajan, A.V., Venkatesan, R., Rangan, C.P.: Data structures for limited oblivious execution of programs while preserving locality of reference. In: DRM 2007: Proceedings of the 2007 ACM workshop on Digital Rights Management, pp. 63–69. ACM, New York (2007)

    Chapter  Google Scholar 

  32. Wang, C., Hill, J., Knight, J., Davidson, J.: Software tamper resistance: Obstructing static analysis of programs. Technical Report CS-2000-12, University of Virginia (December 2000)

    Google Scholar 

  33. Wee, H.: On obfuscating point functions. In: STOC 2005: Proceedings of the Thirty-seventh Annual ACM Symposium on Theory of Computing, pp. 523–532. ACM Press, New York (2005)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Jakubowski, M.H., Saw, C.W.(., Venkatesan, R. (2009). Tamper-Tolerant Software: Modeling and Implementation. In: Takagi, T., Mambo, M. (eds) Advances in Information and Computer Security. IWSEC 2009. Lecture Notes in Computer Science, vol 5824. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04846-3_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-04846-3_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-04845-6

  • Online ISBN: 978-3-642-04846-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics