Skip to main content

Instruction Set Limitation in Support of Software Diversity

  • Conference paper
Information Security and Cryptology – ICISC 2008 (ICISC 2008)

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

Included in the following conference series:

Abstract

This paper proposes a novel technique, called instruction set limitation, to strengthen the resilience of software diversification against collusion attacks. Such attacks require a tool to match corresponding program fragments in different, diversified program versions. The proposed technique limits the types of instructions occurring in a program to the most frequently occurring types, by replacing the infrequently used types as much as possible by more frequently used ones. As such, this technique, when combined with diversification techniques, reduces the number of easily matched code fragments. The proposed technique is evaluated against a powerful diversification tool for Intel’s x86 and an optimized matching process on a number of SPEC 2006 benchmarks.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Nethercote, N., Seward, J.: Valgrind: a framework for heavyweight dynamic binary instrumentation. In: PLDI 2007: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation, pp. 89–100 (2007)

    Google Scholar 

  2. Maebe, J., Ronsse, M., De Bosschere, K.: DIOTA: Dynamic Instrumentation, Optimization and Transformation of Applications. In: Compendium of Workshops and Tutorials in Conjunction with the 11th International Conference on Parallel Architectures and Compilation Techniques (2002) (count 11)

    Google Scholar 

  3. Anckaert, B.: Diversity for Software Protection. PhD thesis, Ghent University (2008)

    Google Scholar 

  4. De Bus, B.: Reliable, Retargetable and Extensivle Link-Time Program Rewriting. PhD thesis, Ghent University (2005)

    Google Scholar 

  5. De Sutter, B., Van Put, L., Chanet, D., De Bus, B., De Bosschere, K.: Link-time compaction and optimization of ARM executables. Trans. on Embedded Computing Sys. 6(1), 5 (2007)

    Article  Google Scholar 

  6. Madou, M., Anckaert, B., De Sutter, B., De Bosschere, K.: Hybrid static-dynamic attacks against software protection mechanisms. In: Proceedings of the 5th ACM workshop on Digital Rights Management, pp. 75–82. ACM Press, New York (2005)

    Chapter  Google Scholar 

  7. Madou, M., Van Put, L., De Bosschere, K.: Loco: An interactive code (de)obfuscation tool. In: Proceedings of ACM SIGPLAN 2006 Workshop on Partial Evaluation and Program Manipulation, PEPM 2006 (2006), http://www.elis.ugent.be/diablo/obfuscation

  8. Anckaert, B., De Sutter, B., Chanet, D., De Bosschere, K.: Steganography for executables and code transformation signatures. In: Park, C.-s., Chee, S. (eds.) ICISC 2004. LNCS, vol. 3506, pp. 425–439. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  9. Muchnick, S.: Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco (1997)

    Google Scholar 

  10. Collberg, C., Thomborson, C., Low, D.: Manufacturing cheap, resilient, and stealthy opaque constructs. In: Proceedings of the 25th Conference on Principles of Programming Languages, pp. 184–196. ACM, New York (1998)

    Google Scholar 

  11. De Sutter, B., De Bus, B., De Bosschere, K.: Sifting out the mud: low level C++ code reuse. In: OOPSLA 2002: Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 275–291 (2002)

    Google Scholar 

  12. Wang, Z., Pierce, K., McFarling, S.: Bmat – a binary matching tools for stale profile propagation. The Journal of Instruction-Level Parallelism 2, 1–20 (2000)

    Google Scholar 

  13. Linn, C., Debray, S.: Obfuscation of executable code to improve resistance to static disassembly. In: Proceedings of the 10th ACM Conference on Computer and Communications Security, pp. 290–299. ACM Press, New York (2003)

    Chapter  Google Scholar 

  14. Massalin, H.: Superoptimizer: a look at the smallest program. In: Proceedings of the 2nd International Conference on Architectual Support for Programming Languages and Operating Systems, pp. 122–126. IEEE Computer Society Press, Los Alamitos (1987)

    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

De Sutter, B., Anckaert, B., Geiregat, J., Chanet, D., De Bosschere, K. (2009). Instruction Set Limitation in Support of Software Diversity. In: Lee, P.J., Cheon, J.H. (eds) Information Security and Cryptology – ICISC 2008. ICISC 2008. Lecture Notes in Computer Science, vol 5461. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-00730-9_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-00730-9_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-00729-3

  • Online ISBN: 978-3-642-00730-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics