Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2001420.2001432acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Efficient, sensitivity resistant binary instrumentation

Published:17 July 2011Publication History

ABSTRACT

Binary instrumentation allows users to inject new code into programs without requiring source code, symbols, or debugging information. Instrumenting a binary requires structural modifications such as moving code, adding new code, and overwriting existing code; these modifications may unintentionally change the program's semantics. Binary instrumenters attempt to preserve the intended semantics of the program by further transforming the code to compensate for these structural modifications. Current instrumenters may fail to correctly preserve program semantics or impose significant unnecessary compensation cost because they lack a formal model of the impact of their structural modifications on program semantics. These weaknesses are particularly acute when instrumenting highly optimized or malicious code, making current instrumenters less useful as tools in the security or high-performance domains. We present a formal specification of how the structural modifications used by instrumentation affect a binary's visible behavior, and have adapted the Dyninst binary instrumenter to use this specification, thereby guaranteeing correct instrumentation while greatly reducing compensation costs. When compared against the fastest widely used instrumenters our technique imposed 46% less overhead; furthermore, we can successfully instrument highly defensive binaries that are specifically looking for code patching and instrumentation.

References

  1. D. Binkley and K. Gallagher. Program slicing. Advances in Computers, 43, 1996.Google ScholarGoogle Scholar
  2. D. Bruening, T. Garnett, and S. Amarasinghe. An infrastructure for adaptive dynamic optimization. In Symposium on Code Generation and Optimization (CGO), San Francisco, CA, March 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. B. Buck and J. Hollingsworth. An API for runtime code patching. Journal of High Performance Computing Applications, 14(4):317--329, Winter 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. C. Cifuentes and A. Fraboulet. Intraprocedural static slicing of binary executables. In International Conference on Software Maintenance (ICSM), pages 188--195, October 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. D. Coward. Symbolic execution systems-a review. Software Engineering Journal, 3(6):229--239, Nov 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. B. De Bus, D. Chanet, B. D. Sutter, L. V. Put, and K. D. Bosschere. The design and implementation of fit: a flexible instrumentation toolkit. In Program Analysis for Software Tools and Engineering (PASTE), Washington, DC, June 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. Eustace and A. Srivastava. ATOM: A flexible interface for building high performance program analysis tools. In USENIX Technical Conference, New Orleans, LA, January 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. Jackson and E. J. Rollins. Chopping: A generalization of slicing. Technical report, Carnegie Mellon University, Pittsburgh, PA, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. A. Kiss, J. Jasz, G. Lehotai, and T. Gyimothy. Interprocedural static slicing of binary executables. In Source Code Analysis and Manipulation (SCAM), Amsterdam, The Netherlands, September 2003.Google ScholarGoogle Scholar
  10. J. Larus and E. Schnarr. EEL: Machine independent executable editing. In Programming Language Design and Implementation (PLDI), La Jolla, CA, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Laurenzano, M. Tikir, L. Carrington, and A. Snavely. PEBIL: Efficient static binary instrumentation for linux. In International Symposium for Performance Analysis of Systems and Software (ISPASS), White Plains, NY, 2010.Google ScholarGoogle ScholarCross RefCross Ref
  12. C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. J. Reddi, and K. Hazelwood. Pin: building customized program analysis tools with dynamic instrumentation. In Programming Language Design and Implementation (PLDI), pages 190--200, Chicago, IL, USA, June 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Maebe, M. Ronsse, and K. De Bosschere. DIOTA: Dynamic instrumentation, optimization and transformation of applications. In Conference on Parallel Architectures and Compilation Techniques (PACT), Charlottesville, VA, September 2002.Google ScholarGoogle Scholar
  14. P. Moseley, S. Debray, and G. Andrews. Checking program profiles. In Source Code Analysis and Manipulation (SCAM), Amsterdam, The Netherlands, September 2003.Google ScholarGoogle Scholar
  15. S. Nanda, W. Li, L.-C. Lam, and T. cker Chiueh. Bird: Binary interpretation using runtime disassembly. In International Symposium on Code Generation and Optimization (CGO 2006), pages 358--370, New York, NY, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. N. Nethercote and J. Seward. Valgrind: A framework for heavyweight dynamic binary instrumentation. In Programming Language Design and Implementation (PLDI), San Diego, CA, USA, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S. Peiser, M. Bishop, S. Karin, and K. Marzullo. Analysis of computer intrusions using sequences of function calls. IEEE Transactions on Dependable and Secure Computing, 4(2):137--150, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. J. Quinlan, M. Schordan, Q. Yi, and A. Saebjornsen. Classification and utilization of abstractions for optimization. In International Symposium on Leveraging Applications of Formal Methods, Paphos, Cyprus, October 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. K. A. Roundy and B. Miller. Hybrid analysis and control of malware binaries. In Recent Advances in Intrusion Detection (RAID), Ottawa, Canada, September 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. B. Schwarz, S. Debray, and G. Andrews. PLTO: A link-time optimizer for the intel IA-32 architecture. In Workshop on Binary Translation, Sep 2001.Google ScholarGoogle Scholar
  21. S. Shende and A. D. Malony. The TAU parallel performance system. Journal of High Performance Computing Applications, 20(2):287--311, Summer 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. Tucek, J. Newsome, S. Lu, C. Huang, S. Xanthos, D. Brumley, Y. Zhou, and D. Song. Sweeper: A lightweight end-to-end system for defending against fast worms. In EuroSys, Lisbon, Portugal, March 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. C. Willems, T. Holz, and F. Freiling. Toward automated dynamic malware analysis using cwsandbox. In Security and Privacy (SP), Oakland, CA, USA, March 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. J. Zhou and G. Vigna. Detecting attacks that exploit application-logic errors through application-level auditing. In Annual Computer Security Applications Conference (ACSAC), Tucson, AZ, USA, December 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    ISSTA '11: Proceedings of the 2011 International Symposium on Software Testing and Analysis
    July 2011
    394 pages
    ISBN:9781450305624
    DOI:10.1145/2001420

    Copyright © 2011 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 17 July 2011

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

    Acceptance Rates

    Overall Acceptance Rate58of213submissions,27%

    Upcoming Conference

    ISSTA '24

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader