|
Current artificial diversity techniques focus primarily on low-level components of computer systems such as instruction sets and memory layouts. Low-level diversity techniques can thwart most memory corruption and code injection attacks, including those exploiting buffer overflows. It is crucial to protect this layer first, as higher-level processes rely on the run-time environment to be secure. However, there are limits to what can be achieved by low-level diversity techniques. In particular, they provide no defense against attacks that exploit higher-level properties of application not altered by low-level transformations.
We will investigate novel diversity techniques for thwarting high-level attacks, e.g., attacks against protocols, algorithms, and databases. Sophisticated attackers may be able to observe the results of attack attempts to learn enough to craft attacks targeted to a diversified system. We propose to develop a metamorphic shield to thwart these adaptive attacks. In particular we will explore combinatorial diversity and dynamic diversity to present attackers with an ever shifting attack surface. The former refers to the composition of different diversity techniques to produce a large number of variants. The latter refers to the ability of generating variants at run-time, even while the program is executing. Their combination will provide a bounded window of time in which attackers can learn or infer information about an application. Not only does this improve the effectiveness of existing diversity techniques, it enables low-entropy diversity techniques that can transform high-level properties in a small (but dynamically changing) number of ways.
|