Secure and Practical Defense Against Code-Injection Attacks using Software Dynamic Translation

Abstract

One of the most common forms of security attacks involves exploiting a vulnerability to inject malicious code into an executing application and then cause the injected code to be executed. A theoretically strong approach to defending against any type of code-injection attack is to create and use a process-specific instruction set that is created by a randomization algorithm. Code injected by an attacker who does not know the randomization key will be invalid for the randomized processor effectively thwarting the attack. This paper describes a secure and efficient implementation of instruction-set randomization (ISR) using software dynamic translation. The paper makes three contributions beyond previous work on ISR. First, we describe an implementation that uses a strong cipher algorithm the Advanced Encryption Standard (AES), to perform randomization. AES is generally believed to be impervious to known attack methodologies. Second, we demonstrate that ISR using AES can be implemented practically and efficiently (considering both execution time and code size overheads) without requiring special hardware support. The third contribution is that our approach detects malicious code before it is executed. Previous approaches relied on probabilistic arguments that execution of non-randomized foreign code would eventually cause a fault or runtime exception.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jun 16, 2006
Accession Number
ADA465213

Entities

People

  • Adrian Filipi
  • Anh Nguyen-tuong
  • Dan Williams
  • David Evans
  • Jack W. Davidson
  • Jason Hiser
  • John C. Knight
  • Jonathan Rowanhill
  • Wei Hu

Organizations

  • University of Virginia

Tags

Communities of Interest

  • C4I
  • Cyber

DTIC Thesaurus Topics

  • Application Software
  • Code Injection
  • Computer Programming
  • Computer Science
  • Computers
  • Cryptography
  • Cybersecurity
  • Databases
  • Decoding
  • Embedded Systems
  • Governments
  • Instruction Set Architecture
  • Language
  • New Mexico
  • Operating Systems
  • Translations
  • United States Government

Fields of Study

  • Computer science
  • Mathematics

Readers

  • Applied Combinatorial Optimization and Logic Circuit Design.
  • Cybersecurity.
  • Parallel and Distributed Computing.