Is it possible that given a clean slate and likely millions of dollars, engineers could come up with the ultimate in secure network technology? The scientists at the Defense Advanced Research Projects Agency (DARPA) think so and this week announced the Clean‐Slate Design of Resilient, Adaptive, Secure Hosts (CRASH) program that looks to lean heavily on human biology to develop super-smart, highly adaptive, supremely secure networks.
For example, the CRASH program looks to translate human immune system strategies into computational terms. In the human immune system multiple independent mechanisms constantly monitor the body for pathogens. Even at the cellular level, multiple redundant mechanisms monitor and repair the structure of the DNA. These mechanisms consume tons of resources, but let the body continue functioning and to repair the damage caused by malfunctions and infectious agents, DARPA stated.
"The analog of the innate immune system will include combinations of hardware and software elements that constantly enforce basic semantic properties such as type safety, memory integrity, code/data distinctions, information flow, and access control constraints. The innate subsystem will render impossible attacks based on vulnerabilities stemming from violations of these basic properties. As with biological systems, significant resources should be dedicated to this task. Since hardware resources are now plentiful, it would be reasonable to use hardware mechanisms where this will lead to more complete enforcement or to better runtime performance," DARPA stated.
CRASH systems will feature the closely integrated hardware, system software, programming languages and design environments. Often, making a small change in one of these domains can greatly ease the task of another. For example, providing a uniform software support system for automatic memory management can reduce the task of analyzing memory safety. Similarly, hardware tagging can systematically enforce code/data and other distinctions that might be more difficult and more costly to guarantee at other levels. Programming languages and environments that capture design rationale, constraints, and invariants make it easier to implement self‐checking and self‐adaptive software systems, DARPA stated.
In designing CRASH, DARPA said it will be evaluating six critical technical areas:
Processor Architectures: Modest processor extensions may be the most appropriate mechanism for systematically enforcing basic semantic properties such as type safety, memory safety, and information control. Such work may include, but is not limited to, tagging for information flow tracking, taint propagation, bounds checking, type checking, access control, and concurrency control. Possible implementation techniques include Field Programmable Gate Arrays or instruction set level simulations. The performance goal of the resulting implementation is only to be fast enough to support experimentation in this and other technical areas. Costly and time consuming implementation techniques such as full custom chips whose only purpose is performance should be avoided.
Operating Systems: The system will be designed around the enforcement of basic semantic properties such as memory safety, type safety, information flow, and access control. It will work in concert with features provided by the hardware. Cooperation between the operating system and hardware design is strongly encouraged if new hardware is being developed. New operating system structures that do away with the concept of a single all‐privileged kernel are what DARPA is looking for. The operating system should provide techniques that lead to effective rollback and recovery, information flow tracking, and systematic logging. The goal is not to produce a feature rich operating system competitive with commercial systems, but rather to build a prototype system capable of illustrating and testing core principles.
Machine Learning, Self‐Adaptation, Diagnosis, Recovery and Repair: The techniques to be explored in this area include, but are not limited to:
-Machine learning techniques that develop a model of the program's intended behavior-Static analysis techniques for extracting models of the program's intended behavior
-Detection techniques that help determine that the program has stepped outside the bounds of its intended behavior
-Adaptation techniques that allow a program to continue functioning even after a successful attack has corrupted some resources
-Diagnosis techniques to help isolate the underlying cause of the problem
-Recovery techniques that allow a program to roll back to a safe state from which it may continue
-Repair techniques that allow the system to fix the underlying vulnerability
Programming Languages and Environments: Language features and runtime support to guarantee important properties will be encouraged. In addition, it will be of interest to provide language and/or programming environment features that facilitate the capture of important constraints on program execution such as information flow or invariants that must hold at specific points in the program. In addition, language features that facilitate the capture of multiple methods for common goals and the trade‐offs among alternative methods are also encouraged.
Formal Methods: Ideally, formal analysis of software and hardware designs will be used to verify that important properties are being preserved; more importantly, information gathered from formal analysis should be a part of a continual evolutionary design process. Techniques are sought that will allow formal proofs of program properties and other static analysis techniques to help build effective computational models of the intended behavior of a program. Such techniques may include the extraction of efficiently checkable invariant conditions, as well as models of the allowable control flows and data flows.
Dynamic Diversification: This technical area will focus on techniques that introduce diversity between different copies of the same system and within a single copy over time. Topics of interest include memory randomization, data structure randomization, stack layout randomization, instruction set diversification, and the use of multiple alternative methods for achieving the same goal.
The need for such an advanced system is obvious: "Current computer systems are not resilient to attacks. They lack the means to recover from attacks either by finding alternative methods for achieving their goals or by repairing the resources corrupted by the attack. They also typically lack the ability to diagnose the underlying problem and to fix the vulnerabilities that enabled the attack. Once a machine is corrupted, manual repairs by specialized personnel are required while the forensic information necessary to affect the repair is typically lacking," DARPA stated.
While these problems are not new, they have not been adequately dealt with largely because designers have been intellectually and institutionally bound by the need to maintain compatibility with legacy systems, DARPA stated.
DARPA has other security projects in the works as well. For example, in January the agency awarded almost $56 million to two contractors it expects will develop the second phase of technologies that it promises will be revolutionary and bolster current cyber security technology by orders of magnitude. DARPA spent $30 million to develop Phase 1.
The contracts are part of DARPA's ambitious National Cyber Range program the agency says will develop revolutionary cyber research and development technologies. DARPA states that the NCR will advance myriad security technologies and "conduct unbiased, quantitative and qualitative assessment of information assurance and survivability tools in a network environment."
Follow Michael Cooney on Twitter: nwwlayer8
Layer 8 Extra
Check out these other hot stories: