REPORT DOCUMENTATION PAGEForm Public reporting burden for this collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing this collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information, including suggestions for reducing this burden to Washington Headquarters Services, Directorate for Information Operations and Reports, 1215 Jefferson Davis Highway, Suite 1204, Arlington, VA 22202-4302, and Attackers penetrate a large number of computers by exploiting common vulnerabilities. The objective of this effort is to address this internet-wide weakness by introducing diversity into computers so that a successful attack on one computer does not necessarily work on another one, even though it may be running identical software. Introducing diversity into computers---even those running identical software---so that successful attacks on one computer do not necessarily work on others. Diversity is one aspect of the kind of adaptive and robust methods used routinely in biological systems. Other adaptations beyond diversity were developed under this effort in the same spirit of increasing the resilience of our computing infrastructure.
Summary of results:1. We explored three potential diversity mechanisms: Dynamic translation of machine code (to defend against code-injection), randomizing the system-call interface (to defend against codeinjection attacks), and evolving diverse implementations of TCP resource management policies (to defend against Denial of Service (DoS) attacks). Of these, we focused primarily on the first mechanism---dynamic translation. Dynamic translation of machine code is used to achieve Randomized Instruction Set Emulation (RISE), which thwarts malicious code injection attacks by making injected code appear random and thus illegal to the native processor.2. We developed a prototype implementation of machine code randomization, called RISE (randomized instruction set emulation). RISE is available under GPL licensing from: http://www.cs.unm.edu/~gbarrant. We tested RISE's performance at stopping attacks using the Core Impact testing software. We conducted extensive experiments, both to test the effectiveness of RISE at stopping attacks and to test the safety of executing random sequences of instructions (during a code-injection attack, the attack code is effectively randomized and we wanted to know how quickly and with how much certainty such randomized code would fail).3. We also continued the development of a dynamic translation tool (SIND) to facilitate dynamic translation diversity on RISC platforms. These results were reported in Trek Palmer's MS Thesis.4. We performed experimental validation and probabilistic analysis of RISE, for both RISC and CISC architectures, demonstrating and explaining the efficacy of the RISE approach. RISE succeeds in converting a very high p...