` Research 2: Information Diversity through Information Flow Subgoal: Systematically and precisely...

1
` Research 2: Information Diversity through Information Flow Subgoal: Systematically and precisely measure program diversity by measuring the information flow generated by unique inputs. Insight: Attacks and defects have unique information flow signatures. Conversely, bug fixes exhibit information flows that differ in a significant manner from the original program Status: Status: Dynamic Information Flow Tracking infrastructure is complete and is being unit tested, x86 instruction set is 15% instrumented. Approach: Extend our existing platforms by further examining biological factors Systems contain more errors and are more prone to attack than ever. The balance of power favors the attacker: - Software replicates are all vulnerable to the same attack. - System complexity precludes rapid repair. We must rethink the current cybersecurity paradigm. Subgoal: Develop models and simulations to understand Scalable RADAR principles and adapt them to computation, specifically to improve our existing techniques. Scalable RADAR for Co-evolutionary Adaptive Environments Wes Weimer Stephanie Forrest (PI) Jed Crandall Melanie Moses Biological systems search complex spaces without a “leader.” Decentralized Search Biological Principles Insig ht Scalable RADAR Cells respond to environmental signals automatically. Automated Response Research 1: Evolutionary Program Repair Mutational Robustness and Proactive Diversity process and attempt to fix 105 indicative bugs found in existing programs. Subgoal: Apply evolutionary repair to known bugs in real-world programs totaling over 5 million lines of code and 10,000 test cases. Proble m Animal immune systems can defeat multiple, adaptable adversaries. • Adapt Scalable RADAR to a new, clean-slate paradigm for software development/maintenance. Demonstrate large, complex software systems that: - automatically detect attacks - repair themselves - evolve a diversity of solutions. Goa l Evaluating Diversity Distributed Repair Study of the Immune System Immune systems are composed of millions of cells. Scalab le Redundancy , diversity, “wisdom of the crowd.” Robust Genes, cells, systems adapt over multiple time scales. Adaptive Software is a complex, evolving system. Research 3: Simulation and Modeling Program LOC Repaired / Total fbc 97k 1 / 3 gmp 145k 1 / 2 gzip 491k 1 / 5 libtiff 77k 17 / 24 lighttpd 62k 5 / 9 php 1,046k 28 / 44 python 407k 1 / 11 wireshark 2,814k 1 / 7 total 5,139k 55 / 105 Systematic Study of Cost and Generality Subgoal 1: Examine whether there is a computational analog for biological mutational robustness and thus quantify the ability of random changes to produce variants that retain specified program behavior. Subgoal 2: Use mutational robustness to proactively fix unknown bugs while retaining functionality. Question 1: How much do inflammatory search signals speed up immune repair? Answer: Biologically, as the size of the search space increases, the effect of signals improves performance by orders of magnitude. Question 2: How much does the structure of the lymphatic system speed up repair? Answer: There is a trade-off between many small nodes and few large nodes – rate of distribution of repairs vs. speed of recruitment of new repairs. We replicate optimal immune network structure to distribute repairs. Question: What effect does diversity have on vulnerabil ity? Answer: Diversity decreases with increased connectivity and communication. Diversity decreases network vulnerability, even when it increases individual vulnerability. Example: Despite larger individual vulnerabilities (in red),The group AB above is less Question: Can our existing approach be adapted to repair specialized embedded devices? Approach: While individual devices may lack the computing speed to efficiently find repairs, they can cooperate to explore the search space and find repairs more quickly Future: Simulate spread of both attacks and repairs simultaneous ly H e l l o 0x 20 T h e r e \0 Input[Loop] != 0 1 1 1 1 1 1 1 1 1 1 1 1 Input[Loop] >= ‘a’ 1 1 1 1 1 1 1 1 1 1 1 0 Input[Loop] <= ‘z’ 0 1 1 1 1 0 0 1 1 1 1 0 Input[Loop] >= ‘A’ 1 0 0 0 0 1 1 0 0 0 0 0 Input[Loop] <= ‘Z’ 1 0 0 0 0 0 1 0 0 0 0 0 Approach: Construct matrices (pictured above) relating input to branch decisions. Judge the diversity of programs by comparing their structure in a way that is robust to small, simple changes for(Loop = 0; Input[Loop] != ‘\0’; Loop++){ if ((Input[Loop] >= ‘a’) && (Input[Loop] <= ‘z’)) { else if((Input[Loop] >= ‘a’) && (Input[Loop] <= ‘z’)) { Approach: Enhance several fundamental steps throughout the Result: Improvements yielded 68% more patches. Based on Amazon EC2 cloud service rates, 55 bugs were fixed at an average cost of $7.32 per bug. Results: We select a population of variants based on computational analogs of biological diversity that fixes an average of 40% of unknown bugs. Mutational robustness: Independent of programming language, domain, and test suit coverage, the fraction of program variants with identical behavior on all available test cases is 36.75% in 22 programs.

Transcript of ` Research 2: Information Diversity through Information Flow Subgoal: Systematically and precisely...

Page 1: ` Research 2: Information Diversity through Information Flow Subgoal: Systematically and precisely measure program diversity by measuring the information.

`

Research 2: Information Diversity through Information FlowSubgoal: Systematically and precisely measure program diversity by measuring the information flow generated by unique inputs.

Insight: Attacks and defects have unique information flow signatures. Conversely, bug fixes exhibit information flows that differ in a significant manner from the original program Status: Status: Dynamic Information Flow Tracking infrastructure is complete and is being unit tested, x86 instruction set is 15% instrumented.

Approach: Extend our existing platforms by further examining biological factors

• Systems contain more errors and are more prone to attack than ever.

• The balance of power favors the attacker:- Software replicates are all

vulnerable to the same attack.

- System complexity precludes rapid repair.

We must rethink the current cybersecurity paradigm.

Subgoal: Develop models and simulations to understand Scalable RADAR principles and adapt them to computation, specifically to improve our existing techniques.

Scalable RADAR for Co-evolutionary Adaptive Environments Wes Weimer

Stephanie Forrest (PI)

Jed Crandall Melanie Moses

Biological systems search complex spaces without a “leader.”

Decentralized Search

Biological Principles

Insight

Scalable RADAR

Cells respond to environmental signals automatically.

Automated Response

Research 1: Evolutionary Program Repair

Mutational Robustness and Proactive Diversity

process and attempt to fix 105 indicative bugs found in existing programs.

Subgoal: Apply evolutionary repair to known bugs in real-world programs totaling over 5 million lines of code and 10,000 test cases.

Problem

Animal immune systems can defeat multiple, adaptable adversaries.

• Adapt Scalable RADAR to a new, clean-slate paradigm for software development/maintenance.

• Demonstrate large, complex software systems that: - automatically detect attacks- repair themselves- evolve a diversity of solutions.

Goal

Evaluating Diversity

Distributed RepairStudy of the Immune System

Immune systems are composed of millions of cells.

Scalable

Redundancy, diversity, “wisdom of the crowd.”

Robust

Genes, cells, systems adapt over multiple time scales.

Adaptive

Software is a complex, evolving system.

Research 3: Simulation and Modeling

Program LOC Repaired / Total

fbc 97k 1 / 3 gmp 145k 1 / 2gzip 491k 1 / 5 libtiff 77k 17 / 24lighttpd 62k 5 / 9php 1,046k 28 / 44python 407k 1 / 11wireshark 2,814k 1 / 7total 5,139

k55 / 105

Systematic Study of Cost and Generality

Subgoal 1: Examine whether there is a computational analog for biological mutational robustness and thus quantify the ability of random changes to produce variants that retain specified program behavior.

Subgoal 2: Use mutational robustness to proactively fix unknown bugs while retaining functionality.

Question 1: How much do inflammatory search signals speed up immune repair?Answer: Biologically, as the size of the search space increases, the effect of signals improves performance by orders of magnitude.Question 2: How much does the structure of the lymphatic system speed up repair?Answer: There is a trade-off between many small nodes and few large nodes – rate of distribution of repairs vs. speed of recruitment of new repairs.We replicate optimal immune network structure to distribute repairs.

Question: What effect does diversity have on vulnerability?Answer: Diversity decreases with increased connectivity and communication. Diversity decreases network vulnerability, even when it increases individual vulnerability. Example: Despite larger individual vulnerabilities (in red),The group AB above is less vulnerable than CDE

Question: Can our existing approach be adapted to repair specialized embedded devices?Approach: While individual devices may lack the computing speed to efficiently find repairs, they can cooperate to explore the search space and find repairs more quicklyFuture: Simulate spread of both attacks and repairs simultaneously

H e l l o 0x20

T h e r e \0

Input[Loop] != 0

1 1 1 1 1 1 1 1 1 1 1 1

Input[Loop] >= ‘a’

1 1 1 1 1 1 1 1 1 1 1 0

Input[Loop] <= ‘z’

0 1 1 1 1 0 0 1 1 1 1 0

Input[Loop] >= ‘A’

1 0 0 0 0 1 1 0 0 0 0 0

Input[Loop] <= ‘Z’

1 0 0 0 0 0 1 0 0 0 0 0

Approach: Construct matrices (pictured above) relating input to branch decisions. Judge the diversity of programs by comparing their structure in a way that is robust to small, simple changes

for(Loop = 0; Input[Loop] != ‘\0’; Loop++){

if ((Input[Loop] >= ‘a’) &&

(Input[Loop] <= ‘z’)) {

else if((Input[Loop] >= ‘a’) &&

(Input[Loop] <= ‘z’)) {

Approach: Enhance several fundamental steps throughout the

Result: Improvements yielded 68% more patches. Based on Amazon EC2 cloud service rates, 55 bugs were fixed at an average cost of $7.32 per bug.

Results: We select a population of variants based on computational analogs of biological diversity that fixes an average of 40% of unknown bugs.

Mutational robustness: Independent of programming language, domain, and test suit coverage, the fraction of program variants with identical behavior on all available test cases is 36.75% in 22 programs.