|
Software Engineering Research Laboratory University of Colorado |
|
| Figure 1: Willow Framework. |
The Willow framework will consist of two interrelated elements: an application architecture for designing large-scale, dynamically reconfigurable systems and a common infrastructure for building and securely operating those systems (see Figure 1). The architecture embodies essential principles for effectively integrating reconfiguration control mechanisms with COTS components, thus permitting application developers to concentrate on the specialized aspects of their systems. A coordinated set of models, a standard component reconfiguration interface, and an agent-based policy mechanism together form the innovative core of the architecture. The infrastructure element of Willow will provide several common components for inclusion into implementations adhering to the architecture, as well as several development tools for generating, optimizing, and verifying distributed reconfiguration control code. Key to the utility of our approach is the use of a novel high-level language for specifying intrusion tolerance policies that are then translated into the control code. Also used in realizing control is an advanced software configuration and deployment system that is designed to operate in a wide-area, large-scale, and heterogeneous enterprise environment. The infrastructure is secured using a new technique we refer to as view-based delegation of trust, and interfaces to sophisticated posture selection, intrusion detection, and intrusion notification facilities developed outside the scope of this program (e.g., CIDF and CC2). The combination of Willow and those facilities provides a seamless and secure foundation for protection, detection, response, and recovery in the face of coordinated, dispersed attacks against critical computing enterprises.
|
| Figure 2: Development Process. |
The middle of Figure 2 shows the process for defining an instance of the reconfigurable systems model (RSD), which is the integrated model for describing the possible legal configurations for a software system. At least conceptually, it is also constructed by system developers in parallel with their construction of the actual software system. We actually envision the definition process as involving two submodels. The deployment model represents the possible configuration information for the system as it will be deployed (e.g., installed). This is analogous to our existing Software Dock Deployable Software Description (DSD) specification. The run-time model represents the possible configuration information for the system as it will be executed. The analog here is to our Ménage configurable architecture specification. Both of these submodels are merged to produce an initial RSD. This initial RSD represents the possible configurations under normal deployment and activation scenarios.
The right side of Figure 2 shows the process for developing the agents that automate tolerance strategies. We assume that some external authority provides the specific set of intrusions for which tolerance is desired, as well as the tolerance postures that the system should be able to assume. The reasoning here is closely related to that of fault tolerance; it is impossible to respond to all conceivable faults, so some authority must define the set of faults of interest. Given the set of intrusions and postures of interest and the initial RSD, an intrusion tolerance analyst constructs the tolerance specification. This specification maps intrusions and postures to corresponding reconfigurations defined in the RSD. Note that new configurations may be necessary to tolerate specific intrusions, so we assume that the tolerance analyst may modify the RSD to produce the final RSD.
The resulting tolerance specification and the final RSD are both provided as inputs to a translator. This tool translates the specifications into code in the form of tolerance agents, which are responsible for the rapid execution of reconfigurations in the face of intrusion and posture triggers. In addition, certain kinds of analysis are performed to verify, for example, that the RSD and the tolerance specification are consistent with respect to the set of legal configurations. These analyses provide confidence in the assurability of automated reconfigurations.
The results of the development process, namely configurable systems, RSDs, and tolerance agents, are deposited into depots, where they wait, ready for use in case a tolerance trigger is fired.
|
| Figure 3: Reconfiguration Process. |
As mentioned above, this process is driven by events representing posture and intrusion triggers. Posture triggers indicate that the controlled system should be reconfigured in anticipation of selected future intrusions. Intrusion triggers indicate that its controlled system has already been compromised and that it should initiate reconfiguration to recover or to provide some degraded functionality, depending on the nature and extent of the intrusion. In either triggering situation, notifications describing the events are delivered by the Willow event service to specific FRCs spread across the computing enterprise network. This mapping was determined in the development process as part of the intrusion tolerance analysis. The FRCs then dispatch the appropriate agents to carry out reconfiguration activities, parameterized by instances of the three kinds of models. In general, the activities involve taking activated components and deactivating them, requesting new and/or replacement configurable components from depots and configuring them for the site where they will reside, and taking configured components cached at the site and activating them. The results of these activities are recorded by modifying the relevant models.
Co-PIs: Dennis Heimbigner - University of Colorado Boulder; John C. Knight - University of Virginia; Premkumar T. Devanbu, Michael Gertz , and Karl N. Levitt - University of California at Davis.
Acknowledgements: This project is sponsored by the Air Force Materiel Command, Rome Laboratory, SPAWAR, and DARPA under Contract Numbers F30602-00-2-0608 and N66001-00-8945. The content of the information does not necessarily reflect the position or the policy of the Government and no official endorsement should be inferred.