Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/948109.948147acmconferencesArticle/Chapter ViewAbstractPublication PagesccsConference Proceedingsconference-collections
Article

Randomized instruction set emulation to disrupt binary code injection attacks

Published: 27 October 2003 Publication History

Abstract

Binary code injection into an executing program is a common form of attack. Most current defenses against this form of attack use a 'guard all doors' strategy, trying to block the avenues by which execution can be diverted. We describe a complementary method of protection, which disrupts foreign code execution regardless of how the code is injected. A unique and private machine instruction set for each executing program would make it difficult for an outsider to design binary attack code against that program and impossible to use the same binary attack code against multiple machines. As a proof of concept, we describe a randomized instruction set emulator (RISE), based on the open-source Valgrind x86-to-x86 binary translator. The prototype disrupts binary code injection attacks against a program without requiring its recompilation, linking, or access to source code. The paper describes the RISE implementation and its limitations, gives evidence demonstrating that RISE defeats common attacks, considers how the dense x86 instruction set affects the method, and discusses potential extensions of the idea.

References

[1]
CORE Security Technologies. In http://www1.corest.com/home/home.php.
[2]
CVS Directory Request Double Free Heap Corruption Vulnerability. In http://www.securityfocus.com/bid/6650.
[3]
libsafe - Detect and handle buffer overflow attacks. In http://www.gnu.org/directory/ security/net/libsafe.html.
[4]
MySQL COM_CHANGE_USER Password Length Account Compromise Vulnerability. In http://www.securityfocus.com/bid/6373.
[5]
TCPA Trusted Computing Platform Alliance. In http://www.trustedcomputing.org/home.
[6]
Aleph One. Smashing the stack for fun and profit. Phrack, 49(7), Nov. 1996.
[7]
R. Anderson. 'Trusted Computing' and competition policy - issues for computing professionals. Upgrade, IV(3):35--41, June 2003.
[8]
W. A. Arbaugh. Improving the TCPA specification. IEEE Computer, 35(8):77--79, August 2002.
[9]
A. Avizienis. The Methodology of N-Version Programming. In M. Lyu, editor, Software Fault Tolerance, pages 23--46. John Wiley & Sons Ltd., 1995.
[10]
A. Avizienis and L. Chen. On the implementation of N-Version programming for software fault tolerance during execution. In Proceedings of IEEE COMPSAC 77, pages 149--155, Nov. 1977.
[11]
V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: a transparent dynamic optimization system. In Proceedings of the ACM SIGPLAN '00 conference on Programming language design and implementation, pages 1--12, Vancouver, British Columbia, Canada, 2000. ACM Press.
[12]
R. M. Best. Microprocessor for executing enciphered programs, U.S. Patent No. 4 168 396, September 18 1979.
[13]
R. M. Best. Preventing software piracy with crypto-microprocessors. In Proceedings of the IEEE Spring COMPCON '80, pages 466--469, San Francisco, California, Feb. 1980.
[14]
S. Bhatkar, D. DuVarney, and R. Sekar. Address obfuscation: An approach to combat buffer overflows, format-string attacks and more. In 12th Usenix Security Symposium, Aug. 2003.
[15]
D. Bruening, S. Amarasinghe, and E. Duesterwald. Design and implementation of a dynamic optimization framework for Windows. In 4th ACM Workshop on Feedback-Directed and Dynamic Optimization (FDDO-4), Dec. 2001.
[16]
M. Chew and D. Song. Mitigating Buffer Overflows by Operating System Randomization. Technical Report CMU-CS-02-197, Department of Computer Science, Carnegie Mellon University, Dec. 2002.
[17]
F. Cohen. Operating System Protection through Program Evolution. Computers and Security, 12(6):565--584, Oct. 1993.
[18]
C. Cowan, M. Barringer, S. Beattie, and G. Kroah-Hartman. Format guard: Automatic protection from printf format string vulnerabilities. In Proceedings of the 2001 USENIX Security Symposium, Washington DC, August 2001.
[19]
C. Cowan, H. Hinton, C. Pu, and J. Walpole. A Cracker Patch Choice: An Analysis of Post Hoc Security Techniques. In National Information Systems Security Conference (NISSC), Baltimore MD, October 16-19 2000.
[20]
C. Cowan, C. Pu, D. Maier, H. Hinton, P. Bakke, S. Beattie, A. Grier, P. Wagle, and Q. Zhang. Automatic Detection and Prevention of Buffer-Overflow Attacks. In Proceedings of the 7th USENIX Security Symposium, San Antonio, Texas, Jan. 1998.
[21]
C. Cowan, P. Wagle, C. Pu, S. Beattie, and J. Walpole. Buffer overflows: Attacks and defenses for the vulnerability of the decade. In DARPA Information Survivability Conference and\ Exposition (DISCEX 2000), pages 119--129, Jan. 2000.
[22]
Dallas Semiconductor. DS5002FP secure microprocessor chip. http://pdfserv.maxim-ic.com/en/ds/DS5002FP.pdf.
[23]
P. Fayolle and V. Glaume. A buffer overflow study, attacks & defenses. In http://www.enseirb.fr/~glaume/indexen.html.
[24]
S. Forrest, A. Somayaji, and D. Ackley. Building Diverse Computer Systems. In Proceedings of the Sixth Workshop on Hot Topics in Operating Systems, pages 67--72, 1997.
[25]
M. Frantzen and M. Shuey. Stackghost: Hardware facilitated stack protection. In Proceedings of the 10th USENIX Security Symposium, Washington D.C., August 2001.
[26]
M. Harper. SQL injection attacks - are you safe? In Sitepoint, http://www.sitepoint.com/article/794, June 17 2002.
[27]
G. S. Kc, A. D. Keromytis, and V. Prevelakis. Countering Code-Injection Attacks With Instruction-Set Randomization. In www.cs.columbia.edu/~gskc/publications/isaRandomization.pdf.
[28]
V. Kiriansky, D. Bruening, and S. Amarasinghe. Secure Execution Via Program Sheperding. In Proceeding of the 11th USENIX Security Symposium, San Francisco, California, August 2002.
[29]
M. Kuhn. The TrustNo 1 cryptoprocessor concept. Technical Report CS555 Report, Purdue University, April 04 1997.
[30]
Nergal. The advanced return-into-lib(c) exploits. Phrack, 58(4), Dec. 2001.
[31]
T. Newsham. Format string attacks. In http://www.securityfocus.com/archive/1/81565, September 9 2000.
[32]
PaX team. Non executable data pages. In http://pageexec.virtualave.net/pageexec.txt, 2002.
[33]
C. Pu, A. Black, C. Cowan, and J. Walpole. A specialization toolkit to increase the diversity of operating systems. In Proceedings of the 1996 ICMAS Workshop on Immunity-Based Systems, Nara, Japan, December 1996.
[34]
B. Randell. System Structure for Software Fault Tolerance. IEEE Transactions in Software Engineering, 1(2):220--232, 1975.
[35]
B. Schneier. Applied Cryptography. John Wiley & Sons, 1996.
[36]
J. Seward. Valgrind, an open-source memory debugger for x86-GNU/Linux. In http://developer.kde.org/~sewardj/, 2002.
[37]
Solar Designer. Non-executable user stack. In http://www.openwall.com/linux.
[38]
Tool Interface Standards Committee. Executable and Linking Format (ELF), May 1995.
[39]
T. Tso. random.c A strong random number generator. In http://www.linuxsecurity.com/feature_stories/random.c.
[40]
Vendicator. StackShield: A stack smashing technique protection tool for Linux. In http://angelfire.com/sk/stackshield.
[41]
D. Wagner, J. S. Foster, E. A. Brewer, and A. Aiken. A First Step towards Automated Detection of Buffer Overrun Vulnerabilities. In Network and Distributed System Security Symposium, pages 3--17, San Diego, CA, February 2000.

Cited By

View all
  • (2024)Buffer Overflow AttacksEncyclopedia of Cryptography, Security and Privacy10.1007/978-3-642-27739-9_502-2(1-4)Online publication date: 14-Feb-2024
  • (2023)Challenges in cybersecurity: Lessons from biological defense systemsMathematical Biosciences10.1016/j.mbs.2023.109024362(109024)Online publication date: Aug-2023
  • (2022)Multi-variant Execution at the EdgeProceedings of the 9th ACM Workshop on Moving Target Defense10.1145/3560828.3564007(11-22)Online publication date: 11-Nov-2022
  • Show More Cited By

Index Terms

  1. Randomized instruction set emulation to disrupt binary code injection attacks

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      CCS '03: Proceedings of the 10th ACM conference on Computer and communications security
      October 2003
      374 pages
      ISBN:1581137389
      DOI:10.1145/948109
      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]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 27 October 2003

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. automated diversity
      2. emulation
      3. information hiding
      4. language randomization
      5. obfuscation
      6. security

      Qualifiers

      • Article

      Conference

      CCS03
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 1,261 of 6,999 submissions, 18%

      Upcoming Conference

      CCS '24
      ACM SIGSAC Conference on Computer and Communications Security
      October 14 - 18, 2024
      Salt Lake City , UT , USA

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)35
      • Downloads (Last 6 weeks)5
      Reflects downloads up to 24 Sep 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)Buffer Overflow AttacksEncyclopedia of Cryptography, Security and Privacy10.1007/978-3-642-27739-9_502-2(1-4)Online publication date: 14-Feb-2024
      • (2023)Challenges in cybersecurity: Lessons from biological defense systemsMathematical Biosciences10.1016/j.mbs.2023.109024362(109024)Online publication date: Aug-2023
      • (2022)Multi-variant Execution at the EdgeProceedings of the 9th ACM Workshop on Moving Target Defense10.1145/3560828.3564007(11-22)Online publication date: 11-Nov-2022
      • (2022)Code Polymorphism Meets Code Encryption: Confidentiality and Side-channel Protection of Software ComponentsDigital Threats: Research and Practice10.1145/34870584:2(1-27)Online publication date: 10-Mar-2022
      • (2022)Diverse, Neural Trojan Resilient Ecosystem of Neural Network IPACM Journal on Emerging Technologies in Computing Systems10.1145/347118918:3(1-23)Online publication date: 4-Aug-2022
      • (2022)Design Obfuscation Through 3-D Split Fabrication With Smart PartitioningIEEE Transactions on Very Large Scale Integration (VLSI) Systems10.1109/TVLSI.2022.317930430:9(1230-1243)Online publication date: Sep-2022
      • (2022)Detecting Hardware Trojans in PCBs Using Side Channel LoopbacksIEEE Transactions on Very Large Scale Integration (VLSI) Systems10.1109/TVLSI.2022.317117430:7(926-937)Online publication date: Jul-2022
      • (2022)Diversity-by-Design for Dependable and Secure Cyber-Physical Systems: A SurveyIEEE Transactions on Network and Service Management10.1109/TNSM.2021.309139119:1(706-728)Online publication date: Mar-2022
      • (2022)Quantifying Cybersecurity Effectiveness of Dynamic Network DiversityIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2021.310751419:6(3804-3821)Online publication date: 1-Nov-2022
      • (2022)Semi-Synchronized Non-Blocking Concurrent Kernel CruisingIEEE Transactions on Cloud Computing10.1109/TCC.2020.297018310:2(1428-1444)Online publication date: 1-Apr-2022
      • Show More Cited By

      View Options

      Get Access

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media