PulseExploreJournal ClubDebatesTrendingResearchersJournals
Instagram
HomeExploreJournal ClubTrending
Synapse
⌘+K
Synapse
October 27, 2003656 citationsOpen Access

Countering code-injection attacks with instruction-set randomization

View Full Paper
GKGaurav S. KcAKAngelos D. KeromytisVPVassilis Prevelakis

Key Points

  • To develop and evaluate a general defensive technique against code-injection attacks by randomizing process-specific instruction sets.
  • Implemented instruction-set randomization across the Linux kernel, GNU binutils tools, and the Bochs-x86 emulator.
  • Extended the randomization architecture to interpreted and scripting environments by modifying the Perl interpreter to defend against script-level attacks such as SQL injection.
  • Injected attack code without the specific randomization key was rendered invalid, successfully generating runtime exceptions before execution.
  • Machine-level prototype demonstrated functional feasibility with a significant performance penalty in emulation, whereas randomized Perl script execution exhibited minimal performance overhead.

Abstract

We describe a new, general approach for safeguarding systems against any type of code-injection attack. We apply Kerckhoff's principle, by creating process-specific randomized instruction sets (e.g., machine instructions) of the system executing potentially vulnerable software. An attacker who does not know the key to the randomization algorithm will inject code that is invalid for that randomized processor, causing a runtime exception. To determine the difficulty of integrating support for the proposed mechanism in the operating system, we modified the Linux kernel, the GNU binutils tools, and the bochs-x86 emulator. Although the performance penalty is significant, our prototype demonstrates the feasibility of the approach, and should be directly usable on a suitable-modified processor (e.g., the Transmeta Crusoe).Our approach is equally applicable against code-injecting attacks in scripting and interpreted languages, e.g., web-based SQL injection. We demonstrate this by modifying the Perl interpreter to permit randomized script execution. The performance penalty in this case is minimal. Where our proposed approach is feasible (i.e., in an emulated environment, in the presence of programmable or specialized hardware, or in interpreted languages), it can serve as a low-overhead protection mechanism, and can easily complement other mechanisms.

Ask AI
Helpful
Bookmark
Share
View Full Paper

Cite This Study

Kc et al. (2003) studied this question.

synapsesocial.com/papers/6a10af462eacc880ce643fb4https://doi.org/10.1145/948109.948146
Ask AI
Helpful
Bookmark
Share
View Full Paper

Also Consider

Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context:

  1. 1Address obfuscation: an efficient approach to combat a board range of memory error exploits2003 · 511 citations
  2. 2Code-Red2002 · 795 citations
  3. 3strlcpy and strlcat: consistent, safe, string copy and concatenation1999 · 35 citations
  4. 4Trusted Computing Platform Alliance2001 · 93 citations
  5. 5TRON: process-specific file protection for the UNIX operating system1995 · 76 citations