` research 2: information diversity through information flow subgoal: systematically and precisely...
TRANSCRIPT
`
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.