Proceedings of the 10th ACM Conference on Computer and Communications Security 2003
DOI: 10.1145/948109.948146
|View full text |Cite
|
Sign up to set email alerts
|

Countering code-injection attacks with instruction-set randomization

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 mechan… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
101
0
1

Year Published

2005
2005
2018
2018

Publication Types

Select...
6
3

Relationship

2
7

Authors

Journals

citations
Cited by 432 publications
(107 citation statements)
references
References 17 publications
0
101
0
1
Order By: Relevance
“…Compared to robust but costly modern ciphers, most of them are based on simple substitution ciphers for lower overhead. Both hardware [5,7,8] and software [3,4,6] implementations have been studied. Some methods utilize the characteristics of the target instruction set [5] .…”
Section: Protection Against Reverse Engineering and Instruction Set Rmentioning
confidence: 99%
See 1 more Smart Citation
“…Compared to robust but costly modern ciphers, most of them are based on simple substitution ciphers for lower overhead. Both hardware [5,7,8] and software [3,4,6] implementations have been studied. Some methods utilize the characteristics of the target instruction set [5] .…”
Section: Protection Against Reverse Engineering and Instruction Set Rmentioning
confidence: 99%
“…• encryption of the machine codes to make them meaningless without a hidden key [1,2] , • obstruction of disassembly by confusing disassemblers or preventing them from accessing necessary information about the instructions [3][4][5][6][7][8][9][10] , and Instruction set randomization (ISR) [3][4][5][6][7][8] is an approach to protect software by obstructing disassembly, where each processor (or group of processors) has a different instruction set. Software is protected from analysis or plagiarism by different or additional instruction coding system that is hidden from attackers.…”
Section: Introductionmentioning
confidence: 99%
“…Randomization was introduced in works [41,42] for defending against zero-day attacks. A similar approach can be followed for data anonymization.…”
Section: Anonymization Of Log Filesmentioning
confidence: 99%
“…Some aim to prevent the vulnerability from becoming exploitable by verifying that an exploitation attempt has occurred: via bounds checking [21,34,48]; by inserting secret cookies, which must remain unmodified, before important memory locations [14,18]. Others will make it harder for an attacker to execute injected code by randomizing the base address of memory regions [7,9], encrypting pointers [13], code [5,22] or even all objects [8] while in memory and decrypting them before use. While yet other types of countermeasures will try and ensure that the program adheres to some predetermined policy [1,23,30].…”
Section: Code Injection Attacksmentioning
confidence: 99%