2009
DOI: 10.1007/978-3-642-02918-9_7
|View full text |Cite
|
Sign up to set email alerts
|

Polymorphing Software by Randomizing Data Structure Layout

Abstract: Abstract. This paper introduces a new software polymorphism technique that randomizes program data structure layout. This technique will generate different data structure layouts for a program and thus diversify the binary code compiled from the same program source code. This technique can mitigate attacks (e.g., kernel rootkit attacks) that require knowledge about data structure definitions. It is also able to disrupt the generation of data structure-based program signatures. We have implemented our data stru… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
41
0

Year Published

2010
2010
2021
2021

Publication Types

Select...
6
2

Relationship

2
6

Authors

Journals

citations
Cited by 48 publications
(41 citation statements)
references
References 19 publications
0
41
0
Order By: Relevance
“…For example, C programs which emulate a variant of object orientation sometimes keep tables of function pointers to perform virtual dispatch, depending on the type in question. Previous work has explored randomizing the layout of data structures [23], and these techniques could be extended to randomize structures or arrays of function pointers. In combination with code-pointer hiding, data structure randomization could protect these pointers from disclosure and reuse.…”
Section: Discussionmentioning
confidence: 99%
“…For example, C programs which emulate a variant of object orientation sometimes keep tables of function pointers to perform virtual dispatch, depending on the type in question. Previous work has explored randomizing the layout of data structures [23], and these techniques could be extended to randomize structures or arrays of function pointers. In combination with code-pointer hiding, data structure randomization could protect these pointers from disclosure and reuse.…”
Section: Discussionmentioning
confidence: 99%
“…Software diversity has previously been investigated for fault tolerance [5], [25] and cyber security [13], [16]. The most recent work focuses on automatic synthesis of software diversity to maximize its potential impact on resilience.…”
Section: B Evolution Rules For Diversified Softwarementioning
confidence: 99%
“…Many randomization techniques aim at diversifying the execution environment on different machines. For example, Lin et al [16] randomize the data structure layout of a program to generate diverse binaries that are semantically equivalent. Several other pieces of work randomize instruction sets to provide unique execution environments and limit the ability of attackers to inject malicious code [13], [3].…”
mentioning
confidence: 99%
“…For data obfuscation, if the data of interest is encrypted SIGPATH can still find it using structural memory diffing and fuzzing, and can modify it by replaying a previously seen (encrypted) value. Other obfuscation techniques such as data structure randomization (DSR) [25] target data analysis techniques. SIGPATH cannot handle DSR, but DSR requires expensive code refactoring to existing programs.…”
Section: Limitations and Future Workmentioning
confidence: 99%