Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
AFRL-IF-RS-TR-2002-262 Final Technical Report October 2002 BUILDING A DYNAMIC INTEROPERABLE SECURITY ARCHITECTURE FOR ACTIVE NETWORKS University of Illinois Sponsored by Defense Advanced Research Projects Agency DARPA Order No. G378 APPROVED FOR PUBLIC RELEASE; DISTRIBUTION UNLIMITED. The views and conclusions contained in this document are those of the authors and should not be interpreted as necessarily representing the official policies, either expressed or implied, of the Defense Advanced Research Projects Agency or the U.S. Government. AIR FORCE RESEARCH LABORATORY INFORMATION DIRECTORATE ROME RESEARCH SITE ROME, NEW YORK This report has been reviewed by the Air Force Research Laboratory, Information Directorate, Public Affairs Office (IFOIPA) and is releasable to the National Technical Information Service (NTIS). At NTIS it will be releasable to the general public, including foreign nations. AFRL-IF-RS-TR-2002-262 has been reviewed and is approved for publication APPROVED: SCOTT S. SHYNE Project Engineer FOR THE DIRECTOR: WARREN H. DEBANY, Technical Advisor Information Grid Division Information Directorate Form Approved OMB No. 074-0188 REPORT DOCUMENTATION PAGE 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 to the Office of Management and Budget, Paperwork Reduction Project (0704-0188), Washington, DC 20503 1. AGENCY USE ONLY (Leave blank) 2. REPORT DATE October 2002 3. REPORT TYPE AND DATES COVERED Final May 98 – Jun 02 4. TITLE AND SUBTITLE 5. FUNDING NUMBERS BUILDING A DYNAMIC INTEROPERABLE SECURITY ARCHITECTURE FOR ACTIVE NETWORKS C PE PR TA WU 6. AUTHOR(S) Roy H. Campbell and M. Dennis Mickunas 7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES) - F30602-98-1-0192 - 62301E - G378 - 00 - 01 8. PERFORMING ORGANIZATION REPORT NUMBER University of Illinois Grants and Contracts Office 109 Coble Hall – 801 South Wright Street Champaign Illinois 61820-6242 9. SPONSORING / MONITORING AGENCY NAME(S) AND ADDRESS(ES) Defense Advanced Research Projects Agency AFRL/IFGA 3701 North Fairfax Drive 525 Brooks Road Arlington Virginia 22203-1714 Rome New York 13441-4505 10. SPONSORING / MONITORING AGENCY REPORT NUMBER AFRL-IF-RS-TR-2002-262 11. SUPPLEMENTARY NOTES AFRL Project Engineer: Scott S. Shyne/IFGA/(315) 330-4819/ Scott.Shyne@rl.af.mil 12a. DISTRIBUTION / AVAILABILITY STATEMENT 12b. DISTRIBUTION CODE APPROVED FOR PUBLIC RELEASE; DISTRIBUTION UNLIMITED. 13. ABSTRACT (Maximum 200 Words) Security is viewed as one of the major obstacles to the widespread deployment active networks. A significant challenge is to develop mechanisms to change software state on routers dynamically, without sacrificing protection guarantees. The Seraphim projects leverages the inherent dynamism in the paradigm to build dynamic security mechanisms for active networks. Seraphim's security architecture is component based, dynamically extensible, and reflective, and supports a variety of policy strategies and enforcement mechanisms. This enabled the development of customizable, interoperable, domain-specific, or task-specific security policies and mechanisms, to meet the security requirements of active network entities. Administrators were able to develop security policies as active network capsules, called dynamic policies, and enforce these policies by executing them in a suitable software context on active network routers. A suite of confidentiality, integrity, authentication and access-control mechanisms was developed to secure the node of an active network. This suite was based on standardized APIs and provided support for customized Quality of Protection guarantees. Customized dynamic policies were created and installed at run-time, trading functionality for performance, to implement low-overhead solutions that were able to successfully counter threats and attack, without sacrificing protection guarantees. 14. SUBJECT TERMS 15. NUMBER OF PAGES Active Networks, Security Mechanisms, Security Policies, Access-Control Mechanisms 90 16. PRICE CODE 17. SECURITY CLASSIFICATION OF REPORT 18. SECURITY CLASSIFICATION OF THIS PAGE UNCLASSIFIED UNCLASSIFIED NSN 7540-01-280-5500 19. SECURITY CLASSIFICATION OF ABSTRACT UNCLASSIFIED 20. LIMITATION OF ABSTRACT UL Standard Form 298 (Rev. 2-89) Prescribed by ANSI Std. Z39-18 298-102 Table of Contents 1. SUMMARY.................................................................................................................................................. 1 2. OVERVIEW OF CONTRIBUTIONS ....................................................................................................... 2 1.1 1.2 1.3 1.4 1.5 1.6 SECURITY ARCHITECTURE FOR DYNAMIC POLICY .................................................................................. 2 DYNAMIC ACCESS CONTROL POLICIES ................................................................................................... 3 SECURE NODE ARCHITECTURE AND SECURITY AS SERVICES .................................................................. 3 SECURE FLOW ANALYSIS ........................................................................................................................ 3 FORMAL SPECIFICATION AND VALIDATION OF DYNAMIC POLICIES ........................................................ 4 DENIAL OF SERVICE PROTECTION ........................................................................................................... 4 3. LIST OF ACCOMPLISHMENTS............................................................................................................ 5 4. REFERENCES ............................................................................................................................................ 8 APPENDICES ................................................................................................................................................ 10 APPENDIX A AN AGENT BASED ARCHITECTURE FOR SUPPORTING APPLICATION LEVEL SECURITY........ 11 APPENDIX B SERAPHIM: DYNAMIC INTEROPERABLE SECURITY ARCHITECTURE FOR ACTIVE NETWORKS ..................................................................................................................................................................... 23 APPENDIX C FLEXIBLE SECURE MULTICASTING IN ACTIVE NETWORKS .................................................. 33 APPENDIX D SECURE INFORMATION FLOW IN MOBILE BOOTSTRAPPING PROCESS. ................................. 41 APPENDIX E DYNAMIC, DISTRIBUTED, SECURE MULTICAST IN ACTIVE NETWORKS ............................... 49 APPENDIX F SECURING THE NODE OF AN ACTIVE NETWORK ................................................................... 55 APPENDIX G PLUGGABLE ACTIVE SECURITY FOR ACTIVE NETWORKS .................................................... 69 APPENDIX H DEVELOPING DYNAMIC SECURITY POLICIES ....................................................................... 75 i 1. SUMMARY In an active network, new protocols and services can be injected into the network using smart packets to carry customized software components. This technology increases the degree and sophistication of the network architecture and enables fast deployment of new protocols and services. However, allowing installation of arbitrary software components on routers may cause undesirable side effects and impact the protection guarantees of the software on the routers. Administrators of active network routers may want to restrict the behavior of active capsules and preserve certain behavior guarantees at all times. These guarantees may be specified as safety properties of component mechanisms, noninterference properties of information flows, or timing guarantees in availability policies. Traditional security mechanisms and network policy management tools have limited support for changing and enforcing different types of policy strategies, let alone policies, at run-time. The ability to specify, implement and enforce these policies in a dynamic environment becomes crucial. In Seraphim, we study the interoperability, extensibility, and configuration issues of security policies for active networks. To address these issues, we introduce the notion of dynamic policies that can be enforced by executing them on an active network node. These policies are designed by formally modeling the behavior and interactions between different components on active routers. Behavioral guarantees, expressed as temporal safety properties, form an integral part of the specification of dynamic policies and can be validated within the model framework. Policies are implemented by wrapping the mechanisms to change operational parameters with suitable guards so as to preserve these behavior guarantees. This combination of guards and commands are encapsulated in active capsules and the policy they specify is enforced by instantiating and executing these capsules in a suitable sandbox-like environment on the active router. Using our policy framework, we can change policy strategies (e.g., between MAC and RBAC) at run-time, in response to intrusions and other security violations, without sacrificing security guarantees. We also provide a suite of customizable security mechanisms to protect the integrity, authenticity, and confidentiality of capsules exchanged between active routers. These mechanisms to secure the node of an active network are implemented as services based on standardized APIs. The services are carefully designed and analyzed to preserve noninterference properties and prevent information leaks. The dynamism afforded by the architecture also allows us to implement different Quality of Protection (QoP) levels to provide customizable security for active flows. This enables us to implement minimal security policies and deploy stronger mechanisms on a need to protect basis, and amortize performance penalties. We believe that this support for dynamism in security is our major contribution in the context of security for active networks. 1 2. OVERVIEW OF CONTRIBUTIONS We believe that no single security architecture will be able to address the security issues for active networks in general. Customizable security policies and extensible security mechanisms will play an important part in addressing the security concerns with the practical deployment of active network infrastructure on routers. We argue that developing satisfactory security solutions in a dynamic environment requires support for dynamic security. We provide a framework to develop reactive security solutions in this context, on a need-to-protect basis with minimal overhead in terms of software and performance. In this section, we summarize our major contributions, which include: • • • • • A dynamic security architecture for active networks that provides support for dynamic policies that integrates seamlessly with proposed active network architecture [Liu00-1, Liu00-2], along with a distributed secure multicast application to demonstrate these policies [Var99, Var00, Liu00-3]. A componentized policy framework that implements different access control strategies and allows administrators to change between policy strategies at run time [Nal00]. A suite of customizable mechanisms to secure the node of an active network along with a flow analysis to guarantee noninterference [Liu005, Liu00-6]. Formal specification and validation of dynamic policies [Nal02]. Investigation of denial of service prevention and implementation of certified bandwidth mechanisms. We describe each of these contributions in greater detail the following subsections. 1.1 SECURITY ARCHITECTURE FOR DYNAMIC POLICY The Seraphim project developed dynamic and fully extensible security architecture for active networks [Liu00-1, Liu00-2]. The architecture is based on the principles underlying active networks rather than on existing static systems. Seraphim project adopts ideas and technologies from previous Cherubim mobile agent based security architecture research, including dynamic security policies that support interoperability among different security domains, and active capabilities that provide application specific security functions. In addition, Seraphim’s security architecture for active networks imposes only a minimal set of security functions on the base active network architecture to support secure deployment of new security services. More sophisticated and application specific security functions may be recursively installed using a secure reconfigurable [Liu00-4] bootstrap process. Seraphim’s architecture is not constrained to one specific security scheme for securing smart packets and active nodes. This reflective design allows the maximum flexibility for building a secure active network environment. Seraphim’s security architecture fits transparently into the proposed Active Network and Active Network Security Architecture. We have also integrated it with the ABone test-bed. 2 1.2 DYNAMIC ACCESS CONTROL POLICIES Seraphim’s Dynamic Policy Management Framework, written in Java, implements different access control strategies. In addition to DAC (Discretionary Access Control), MAC (Mandatory Access Control) and RBAC (Role Based Access Control) we have also incorporated the I-RBAC (Interoperable RBAC) [Kap00] and R2BAC models developed by our group. The I-RBAC model allows us to interoperate between different RBAC domains, providing us a dynamic mechanism to translate our dynamic access control policies across different domains. The R2BAC model allows us to change between two different RBAC instances in the same domain. This model is useful to deploy a restrictive access control policy under an attack and change it back to the default when the threat has receded. 1.3 SECURE NODE ARCHITECTURE AND SECURITY AS SERVICES The secure node architecture includes an active node operating system security API, an active security guardian, and quality of protection (QoP) provisions [Liu00-5, Liu01, Liu02]. The architecture supports highly customized and situational policies created by users and applications dynamically. It permits active nodes to satisfy application-specific dynamic security and protection requirements. The secure node architecture can provide a fundamental base for securing the active network infrastructure. It provides a framework that adapts and implements the Pluggable Authentication Module API, Generic Access and Authorization API and Generic Security Services API for authentication, authorization, and various security services. The implementation uses DES, IDEA, and Rijndael encryption algorithms, whose keys are exchanged through RSA/X.509v3 algorithm, for dynamic customized security services. The security configuration supports various encryption algorithms and RSA key lengths. Applications can dynamically select the suitable security configuration and services at each routing hop, based on their security and performance requirements. 1.4 SECURE FLOW ANALYSIS In addition to the secure node architecture, we also provide the analysis of secure information flow using a type system [Liu01]. Information flow control is concerned with the right of dissemination of information. Secure information flow properly restricts the propagation of sensitive cryptographic data beyond the security API to untrusted environments. The analysis demonstrates that the type system can ensure secure flow enforcement efficiently and therefore provide additional security assurance for active networks. The type system guarantees that a well-typed program satisfies the noninterference security property. This means that the program does not leak sensitive data. 3 1.5 FORMAL SPECIFICATION AND VALIDATION OF DYNAMIC POLICIES We introduce formal modeling and specification in our policy development life cycle. In most existing systems, policies are implemented and enforced by changing the operational parameters of shared system objects. These policies do not account the behavior of the entire system, and enforcing these policies can have unexpected interactive or concurrent behavior. We develop a policy specification, implementation, and enforcement methodology based on formal models of interactive behavior and satisfiability of system properties. We show that by carefully designing the code to change the operational parameters our policy implementation entities, dynamically installing and executing our policies does not affect the behavioral guarantees specified by the properties. Our dynamic policy is a program consisting of a set of guards and actions, created by our policy administrator. It encodes not only the logic to modify the system implementation to change operational parameters, but also includes all the necessary guards to enforce good behavior and prevent its misuse. For example, in the access control policy example, the guard can include proofs of authorization, and the commands are programs to change parameters of an access control rule. In our Seraphim active network prototype, these programs map directly to active capsules, and can be viewed as in-line policies. We also describe other types of dynamic policies for information flow and availability, based on safety, liveness, fairness, and other properties. We believe that dynamic policies are important building blocks of reactive security solutions for active networks. 1.6 DENIAL OF SERVICE PROTECTION In addition to our work in dynamic policies, we have also developed a behavioral model of network denial of service; especially Distributed Denial of Service attacks (DDOS). Based on the behavior analysis, we argue that the trace of a DDOS victim’s behavior cannot be made DDOS resistant by implementing a suitable mechanism on the victim alone. Bandwidth agreements, similar in flavor to user agreements, are necessary to prevent denial of service. We have implemented a lightweight mechanism that was demonstrated at the December 2000 Demo meeting, to attach bandwidth certificates to legitimate traffic. We call these certificates CABs or Credentials that Authorize Bandwidth. A CAB is a small, fixed length identifier that cannot be forged easily. It certifies that the packet it is attached to is legitimate. It can be used to mark legitimate UDP or control packets for DDOS resistance. One of the ways to ensure that valid CABs can only be created by trusted entities is to use cryptography and tie in a shared secret to the CAB value. Certified bandwidth can be used to implement cooperative bandwidth agreements required to prevent denial of service. 4 3. LIST OF ACCOMPLISHMENTS June 1998 – June 1999: 1. Modified ANTS active network toolkit and built the SAINTS (Secure Active Interoperable Network Toolkit System) to implement the Active network architecture with explicit NodeOS and Execution Environment (EE) objects. This modified toolkit was the test-bed for most of our experiments. 2. Designed and implemented a lean security guardian to provide access control from the EE to the shared NodeOS resources. The security guardian is a colocated extension to the NodeOS. Every node has a security guardian, through which all accesses to node resources occur. 3. Completed implementation of the NodeOS proxy to support portability. The EEs direct their requests for NodeOS resources to the NodeOS proxy that sits atop the NodeOS. The proxy acts as a wrapper to the NodeOS API and redirects access control requests to the security guardian. 4. Completed implementation of Role Based Access Control (RBAC) within the Seraphim policy framework and integrated support for DAC and MAC from our previous project into the Seraphim toolkit. 5. Demonstrated support for secure, flexible, and dynamic multicast, as an extension of the original ANTS multicast scheme. Deposited a Master’s thesis titled “Dynamic Distributed Secure Multicast in Active Networks”. July 1999 - June 2000: 1. Designed a NodeOS security API to support authentication, authorization and integrity. The API includes Pluggable Authentication Module (PAM) API, Generic Security Services (GSS) API, and Generic Authorization and Access Control (GAA) API. This security API is complement to the current NodeOS Interface Specification that focuses on fast network packet-forwarding fine-grained quality of service. 2. Developed an Active Caching framework for our active capabilities. By caching the reusable active capabilities, the system reduces the overhead of retrieving the active capability every time a security decision has to be made. 3. Modified and enhanced the Security Architecture for Active Networks document and circulated it throughout the active network community. The modifications and enhancements show the lessons learned from our Seraphim project and reflect the view of flexible, dynamic and interoperable active network security based on active capabilities. 5 4. Developed the IRBAC model of secure interoperability between security domains operating under the Role Based Access Control (RBAC) policy for dynamic role translations. 5. Produced a PhD thesis on trust management in a distributed environment. The solution proposed in this model avoids the use of global name spaces and central trust authorities. The model enables fine-grained trust specification and flexible certificate management. 6. Implemented the NodeOS security API, and integrated it into our SAINTS platform that uses active capabilities and security guardian for active security. 7. Extended the NodeOS security API to support Quality of Protection (QoP) in active networks. The active applications can dynamically change the security and protection characteristics while traveling from hop to hop. Some examples of security and protection characteristics are different security algorithms, key sizes, and supports of security services. 8. Provided more input for the Security Architecture for Active Networks document Implemented the IRBAC model in Seraphim architecture. With IRBAC, more than one autonomous domain can seamlessly interact with each with adequate security support. July 2000 - June 2001: 1. Developed the BARMAN (Bandwidth Authorization and Resource Management in Active Network) protocol for the NodeOS. This protocol prevents denial of service attacks that “flood” networks with unwanted packets and block legitimate network traffic. 2. Deposited Master’s thesis titled “A Componentized Framework for Dynamic Security Policies”. 3. Participated in December 2000 AN PI Meeting with Team 4 integrated demo. Seraphim package was integrated with CANES platform and provided dynamic security support. In addition, BARMAN protocol was implemented inside the CANES Bowman NodeOS to provide safety against flooding DDOS attacks. 4. Developed the Reactive Role Based Access Control model (R2BAC). R2BAC is a way to use the IRBAC model as a defense mechanism against intrusions. We used R2BAC to efficiently change the role hierarchy inside a security domain to counter the possible security threats. We used INFOCON (Information Operation Condition) notion from DoD to model the current threats to the networks and used R2BAC to dynamically reconfigure the networks for tighter defense. 5. Developed a fuzzy logic based risk model. In this model, every threat is represented as a fuzzy set. The risk analyzer calculates the network-wide overall risk based on the fuzzy logic operation. 6. Participated in June 2001 AN PI meeting with a demonstration of R2BAC model and the fuzzy logic based risk assessment system. In this system, every threat to the network is characterized as a fuzzy set and the current risk to the whole network is calculated with 6 fuzzy logic. We also adopted the notion of DoD’s INFOCON (Information Operation Condition) to show how our risk assessment system and R2BAC model can be used as an efficient defensive mechanism. July 2001 – May 2002: 1. Deposited Ph. D Thesis on “Securing the Node of an Active Network. This thesis explores the security issues and develops a security architecture for NodeOS security by implementing security as standardized services adapted to the Active Network architecture. The thesis includes a validation of the design using secure flow analysis based on a type system to validate the noninterference properties of the composition of these security services. 2. Developed a formal model of dynamic policies and introduced the notion of property preserving policies. We also used formal validation and verification techniques to make strong safety guarantees about our dynamic access control policy framework. 3. Developing a formal Model of the Distributed Denial of Service problem. 7 4. REFERENCES [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [Liu00-1] Zhaoyu Liu, Prasad Naldurg, Seung Yi, Tin Qian, Roy H. Campbell, and M. Dennis Mickunas, An Agent Based Architecture for Supporting Application Level Security. DARPA Information Survivability Conference and Exposition, Hilton Head Island, South Carolina, January 2000. [Liu00-2] Roy H. Campbell, Zhaoyu Liu, M. Dennis Mickunas, Prasad Naldurg, and Seung Yi, Seraphim: Dynamic Interoperable Security Architecture for Active Networks. IEEE Third Conference on Open Architectures and Network Programming Proceedings (OPENARCH’2000), Tel Aviv, Israel, March 2000. [Liu00-3] Zhaoyu Liu, Roy H. Campbell, Sudha K. Varadarajan, Prasad Naldurg, Seung Yi, and M. Dennis Mickunas, Flexible Secure Multicasting in Active Networks. International Workshop on Group Computation and Communications, Taipei, Taiwan, April 2000. [Liu00-4] Zhaoyu Liu, M. Dennis Mickunas, and Roy H. Campbell, Secure Information Flow in Mobile Bootstrapping Process. International Workshop on Wireless Networks and Mobile Computing, Taipei, Taiwan, April 2000 [Var00] Sudha K. Varadarajan, Tin Qian, and Roy H. Campbell, Dynamic, Distributed, Secure Multicast in Active Networks. IEEE International Conference on Communication (ICC’2000), New Orleans, Louisiana, June 18-22, 2000. [Kap00] I-RBAC 2000: Apu Kapadia, Jalal Al-Muhtadi, Roy H. Campbell, and M. Dennis Mickunas, Secure Interoperability Using Dynamic Role Translation. Proceedings of the 1st International Conference on Internet Computing (IC’2000), Las Vegas, Nevada, June 26, 2000. [Liu00-5] Zhaoyu Liu, Roy H. Campbell, and M. Dennis Mickunas, Securing the Node of an Active Network Active Middleware Services. Kluwer Academic Publishers, Boston, Massachusetts, September 2000. [Liu00-6] Zhaoyu Liu, Prasad Naldurg, Seung Yi, Roy H. Campbell, and M. Dennis Mickunas, Pluggable Active Security for Active Networks. 12th IASTED International Conference on Parallel and Distributed Computing and Systems (PDCS’2000), Las Vegas, Nevada, November 6-9, 2000. [Liu01] Zhaoyu Liu, Active Security for Active Networks, Ph. D Thesis, Department of Computer Science, University of Illinois at Urbana-Champaign, 2001. [Nal02] Prasad Naldurg, R. H. Campbell and M. Dennis Mickunas, Developing Dynamic Security Policies, To Appear in the Proceedings of the 2002 DARPA Active Networks Conference and Exposition (DANCE 2002), San Francisco, CA, USA, IEEE Computer Society Press, May 29-31, 2002. [Liu02] Zhaoyu Liu, Roy H. Campbell, and M. Dennis Mickunas, Security as Services in Active Networks. To Appear in IEEE International Symposium on Computers and Communication (ISCC 2002), Taormina, Italy, July 2002 8 [12] [13] [14] [Qia00] Tin Qian, Dynamic Authorization Support in Large Distributed Systems, Ph. D Thesis, Department of Computer Science, University of Illinois at UrbanaChampaign, 2000. [Var99] Sudha Varadarajan, Dynamic Distributed Secure Multicast in Active Networks. MS Thesis, Department of Computer Science, University of Illinois at Urbana-Champaign, August 1999. [Nal00] Prasad Naldurg, A Componentized Framework for Dynamic Security Policies, MS Thesis, Department of Computer Science, University of Illinois at Urbana-Champaign, August 2000. 9 APPENDICES Papers attached to this report: A Zhaoyu Liu, Prasad Naldurg, Seung Yi, Tin Qian, Roy H. Campbell, and M. Dennis Mickunas, An Agent Based Architecture for Supporting Application Level Security. DARPA Information Survivability Conference and Exposition, Hilton Head Island, South Carolina, January 2000. B Roy H. Campbell, Zhaoyu Liu, M. Dennis Mickunas, Prasad Naldurg, and Seung Yi, Seraphim: Dynamic Interoperable Security Architecture for Active Networks. IEEE Third Conference on Open Architectures and Network Programming Proceedings (OPENARCH’2000), Tel Aviv, Israel, March 2000. C Zhaoyu Liu, Roy H. Campbell, Sudha K. Varadarajan, Prasad Naldurg, Seung Yi, and M. Dennis Mickunas, Flexible Secure Multicasting in Active Networks. International Workshop on Group Computation and Communications, Taipei, Taiwan, April 2000. D [Liu00-4] Zhaoyu Liu, M. Dennis Mickunas, and Roy H. Campbell, Secure Information Flow in Mobile Bootstrapping Process. International Workshop on Wireless Networks and Mobile Computing, Taipei, Taiwan, April 2000. E Sudha K. Varadarajan, Tin Qian, and Roy H. Campbell, Dynamic, Distributed, Secure Multicast in Active Networks. IEEE International Conference on Communication (ICC’2000), New Orleans, Louisiana, June 18-22, 2000. F [Liu00-5] Zhaoyu Liu, Roy H. Campbell, and M. Dennis Mickunas, Securing the Node of an Active Network, Active Middleware Services. Kluwer Academic Publishers, Boston, Massachusetts, September 2000. G [Liu00-6] Zhaoyu Liu, Prasad Naldurg, Seung Yi, Roy H. Campbell, and M. Dennis Mickunas, Pluggable Active Security for Active Networks, 12th IASTED International Conference on Parallel and Distributed Computing and Systems (PDCS’2000), Las Vegas, Nevada, November 6-9, 2000. H [Nal02] Prasad Naldurg, R. H. Campbell, and M. Dennis Mickunas, Developing Dynamic Security Policies, To Appear in the Proceedings of the 2002 DARPA Active Networks Conference and Exposition (DANCE 2002), San Francisco, CA, USA, IEEE Computer Society Press, May 29-31, 2002. 10 APPENDIXA A APPENDIX 11 12 13 14 15 16 17 18 19 20 21 22 APPENDIXB B APPENDIX 23 24 25 26 27 28 28 30 31 32 APPENDIX APPENDIX CC 33 34 35 36 37 38 39 40 APPENDIX APPENDIX D D 41 42 43 44 45 46 47 48 APPENDIX E 49 50 51 52 53 54 APPENDIX F Securing the Node of an Active Network Zhaoyu Liu, Roy H. Campbell, M. Dennis Mickunas Department of Computer Science University of Illinois at Urbana-Champaign Urbana, IL 61801 zhaoyu, roy, mickunas @cs.uiuc.edu   Abstract Active networks aim to provide a software framework that enables network applications to customize the processing of their communications. Security is of critical importance to the success of active networking. This paper discusses the design of securing the node of an active network using active networking principles. The secure node architecture includes an Active Node Operating System Security API, an Active Security Guardian, and Quality of Protection (QoP) provisions. The architecture supports highly customized and situational policies created by users and applications dynamically. It permits active nodes to satisfy the application specific dynamic security and protection requirements. It aids the application of the “need-to-know” security principle and associates quality of protection with network software and application security. The secure node architecture can provide fundamental base for securing the active network infrastructure. Keywords: active networks, security API, active capability, active security guardian, quality of protection 1 Introduction Active networks aim to provide a software framework that enables network applications to customize the processing of their communications. The current active network research focuses on the support of flexible, dynamically changing, fine-grained quality of service. There is little research on dynamic, flexible, and application specific security features that exploit active networking. Similar to traditional networks, active networks rely heavily on the underlying operating system for network security. Current active network operating systems do not have explicit security support and applications can not flexibly request security and protection requirements. The inflexibility of the systems makes security policy and service customization complex and often leads to security holes. In this paper we present the design of securing the node of an active network using active networking principles. We term this approach active security. The secure node architecture is integrated into the active node operating system and includes:  This research is supported by DARPA F30602-98-1-0192 55 A node operating system security API An active security guardian Quality of protection (QoP) provisions The secure node architecture supports highly customized and situational policies created by users and applications dynamically and provides fundamental base for securing the active network infrastructure. The rest of the paper is organized as follows. Section 2 discusses the current security research on active networks. Section 3 describes the architecture of a secure active node in detail. It discusses the principles to design the node operating system security API, and describes the design of active security guardian and the support of quality of protection. Section 4 presents the current implementation and the future work of this active security research and then the final section concludes the paper. 2 Related Work This section surveys the current security research on active networks. It provides background and motivation for the secure node architecture presented in the next section. 2.1 Active Network Security It is difficult and complicated to retrofit security into Internet infrastructure [22]. The active network research community considers security as an important part of the initial design. The security working group [23] of the active networks research community has been instrumental in publicizing and highlighting the importance of security in active networks. The group emphasizes the importance of incorporating security into the initial design stage of the active network architecture itself. The current security related research in this field can be classified into two general categories. The first one deals with the more traditional notion of security, which includes authentication, access control, policies and enforcement. The security working group [23] has launched some important exploratory research in this direction. The second category is mostly about protection of nodes from mobile code originating in foreign domains and protection of active packets or code from malicious hosts [32]. The PLANet effort [1] raises some of the issues associated with these protections. In addition the effort also provides a bootstrapping module that ensures that the system configures itself correctly at startup or reboot time. The protection from mobile code is provided by using a type-safe, resource limited, functional programming language with dynamic type verification. Mobile code can install protocols at nodes securely by using the extensibility features provided by the language. Naccio of MIT [10] also belongs to this category. The high-level application specified policies limit Java mobile code capability and thus provide the necessary protection to mobile code execution host. 2.2 Active Node Operating Systems The high-level architecture for active node is shown in Figure 1 [5]. A node operating system (NodeOS) manages the resources such as memory regions, CPU cycles 56 and link bandwidth, and multiplexes packets among multiple execution environments (EEs) running on the node. In order to support the porting EEs to multiple underlying NodeOSes, a NodeOS interface is specified by the NodeOS working group [28]. Application Application Application EE IPv6 EE 2 EE 1 Management EE Flow Other Resources NodeOS Store Channels Figure 1: Active Network Node Architecture The objectives of current NodeOS interface are to support fast network packets forwarding and fine-grained quality of service. The interface doesn’t explicitly specify any security API. It defines the following five primary abstractions of system resources: Thread Pool: computation resource. Memory Pool: memory resource Channel: communication resource, including not only network bandwidth, but also CPU cycles and memory space. File System: persistent storage resource. Flow: Generally speaking, a flow is a sequence of packets satisfying some predefined attributes of interests. Typically flows are related to routing [27] and quality of service [37], where groups of packets would receive similar treatment in their network transport. Traditionally the flow concept can be used in both datagram and connection-oriented communications. In active networks, the flow concept is used to aggregate control and scheduling of the above four abstractions. It provides abstraction for accounting, admission control and scheduling in the system. A flow can contain sub-flows and this results a hierarchical flow structure. Currently there are several NodeOS implementations in active networks research community. They all comply to the general NodeOS interface specifications in various degree: Joust: Joust [11] is a small, fast JavaOS implemented in Scout [21]. It includes an efficient Java virtual machine and a Java JIT compiler. It explores how Java’s various features interact with Scout’s modular approach to building systems. 57 The current NodeOS interface for active network nodes is mostly based on the experiences with Joust. Janos: Janos is a Java-oriented active network operating system [4]. Its objective is to develop a principled local operating system for active network nodes, which is oriented to executing untrusted Java byte code. The primary security focus is resource management and control, with secondary objective of other information security, performance, and technology transfer of broadly and separately useful software components. Janos interface provides a sample Java binding of the NodeOS API abstractions. AMP System: AMP’s NodeOS is based on Exokernel operating system [12], and uses Exokernel’s hierarchically-named capabilities [19] to support flexible access control. Each Exokernel environment (similar to a Unix process) holds a number of hierarchically-named capabilities, known as CAPs. The kernel maintains an array of CAPs and the environment specifies which CAP to use for each system call or IPC operation. Bowman: The Bowman node operating system is built to support the CANEs EE. It is designed around three key abstractions: channel, a-flow, and state-store [20]. A channel is the primary abstraction for communication and an a-flow is the primary abstraction for computation. The state-store provides a mechanism for a-flows to store and retrieve state that is indexed by a unique key. The Bowman NodeOS interface can be extended to provide support for additional abstractions such as queues, routing tables, user protocols and services. In summary, the current active node operating systems research focuses on high performance, extensibility, and resource management. There is little research on explicit security support for authentication, authorization, integrity, and dynamic access control. The secure node architecture presented in the next section addresses the above security problems in active networks. It is complementary to the current NodeOS research and augments its functionality. It can be seamlessly integrated into the current NodeOS implementations to provide dynamic security services and access control. 3 Securing the Node The architecture of the secure node of an active network is shown in Figure 2. The secure node architecture includes a NodeOS Security API, an Active Security Guardian, and Quality of Protection (QoP) provisions. The API provides support of authentication, authorization, integrity and access control services to EEs and active applications. It is implemented by a security library. An Active capability (AC) [18, 8, 7] is used to support flexible distributed dynamic security policies. Essentially an AC is an executable Java code which concisely represents dynamic security policies and mechanisms. The security guardian evaluates ACs in a secure sandbox environment and enforces the security requirements of AC evaluation results. It obtains ACs securely through the AC communication protocol. By using the NodeOS security API, active security guardian, and active capabilities, it is feasible to provide quality of protection to active applications. 58 The rest of the section is organized as follows. We first briefly describe the active capability, Role Based Access Control policy type and active security guardian concepts. These concepts are developed and used in the Cherubim and Seraphim projects [7, 18, 6]. Then we present the NodeOS security API and quality of protection provisions in detail. Finally we discuss the low-level code safety and the EE security. EE NodeOS Security API Security AC Evaluation Engine Other NodeOS Resources Guardian AC Enforcement Engine Security Library AC Communication Protocol Figure 2: Secure Node Structure 3.1 Active Capability Active capabilities are used to support flexible distributed dynamic security policies and services control, based on the similar active principles employed by active networks [18, 7]. Unlike a traditional capability, which is merely a static authorization credential that encodes the principal and the permissions associated with the principal, an active capability is a customized piece of code that encodes the type of access control policy and other constraints used in the access control decision making process. In our implementation, an AC is an executable Java code which concisely represents dynamic security policies and mechanisms. In addition, an active capability is protected by digital signatures, resides in user space and can be freely passed around. By using an active capability various situational policies that depend on system attributes can be encoded. For instance, by writing a piece of code that checks the current system time and compares it with a value stored in the active capability one can introduce a policy that expires after a certain time deadline. Similarly, various enforcement and revocation schemes based on other attributes like quota, history, and information content can be implemented. These schemes are very useful in an open internetworking environment with diverse application requirements. An application can use quota-based revocation to limit the amount of system resources a client can consume. An active capability could carry all policy information of decision in its code. This heavy way of implementation is not elegant and efficient. A better way is to have a 59 generic policy framework to support different various policy types and ACs rely on it for context. An application presents an active capability along with its regular data or protocol capsules to the active router’s security guardian at execution time. The access control policy type and user credentials are extracted from the capability. The remote router’s security guardian recreates the context of the policy type within its policy framework. If at any point during this process, the policy framework discovers that it does not have an implementation for the type of the policy, it downloads the code dynamically into the framework, using the underlying active network. It then instantiates the run-time parameters associated with the application in its sandbox-like environment and executes the active capability in this environment. Based on the result of the evaluation of this active capability, the access control decision is enforced. The principal of the active capability, which can be a user, a role, or other principal, must be authenticated by a trusted authority. The trusted authority acts as the policy server in our system. This entity is responsible for generating and keeping track of the active capabilities. Usually one or more policy servers are associated with each protection domain. Application programs contact their nearest or least-loaded server and obtain the active capability dynamically. 3.2 Role Based Access Control (RBAC) Policy The policy type used for dynamic access control in the architecture is Role Based Access Control (RBAC) policy type, which is the most flexible type of access control policy [33]. A Role Based Access Control policy, as the name suggests, uses the concept of a role as its basis for representing permissions [33]. It is a form of access control that emerges in the context of security policies for organizations. A role is chiefly a semantic construct that forms the basis for an access control policy. With RBAC, system administrators create roles according to the job functions performed in an organization, grant permissions to those roles, and then assign users to the roles on the basis of their specific job responsibilities and qualifications. The idea is that the particular combination of users and permissions brought together by a role tends to change over time while the permissions associated with a role are themselves relatively more stable. The biggest advantage that RBAC has over other forms of access control is that it is extremely intuitive to use and maps easily to real-world situations. A hierarchy of roles with senior roles inheriting all the permissions of junior roles closely follows the structure of organizations. The access control policy in RBAC is embodied in components such as role-permission, user-role and role-role relationships. These components collectively determine whether a particular user is allowed access to a particular operation on a particular component. These individual components can be easily (and intuitively) configured to provide the required degree of access control. For example, adding a new user to a system would merely involve assigning appropriate roles to the user according to the user’s functions in the organization. Likewise, changing the nature of, for example, printer access, for all managers in an organization can be accomplished by merely changing the permissions with the manager role in the organization. All managers can immediately see the effects of the change. RBAC is the most flexible type of access control policy. All RBAC subjects are 60 assigned roles. Each role represents a particular set of objects and the allowed operations on each object. The major benefits of this aggregation are the considerable saving in terms of space and simplification in terms of management and enforcement. RBAC allows users to create policies with more sophisticated specifications than simple DAC, DDAC or MAC. A single user may have many different roles, and different permissions depending on the current role. Different constraints related to role and privilege may be enforced in RBAC. The RBAC constraints supported in our system include three important ones: mutually exclusive roles/permissions, prerequisite roles/permissions and cardinality constraints. 3.3 Active Security Guardian The security guardian in the architecture is to support AC evaluation and enforcement. All accesses to node resources must go through security guardian which use the security library services to verify the signature on the active capability. The security guardian’s functionality is similar to traditional reference monitor, with several major differences. In traditional systems, a reference monitor is interposed between the subjects and objects to control subjects’ access to objects based on access authorizations (Figure 3). The traditional reference monitor is passive in the sense that it never initiates actions but only reacts when it receives an operation message. Access through the reference monitor is either granted or denied corresponding to a yes or no access evaluation result. The power and functionality of the traditional passive reference monitor are limited [2]. Authorization Database Subject Reference Monitor Object Audit Trail Figure 3: Reference Monitor Concept With the use of ACs, the security guardian is no longer passive. To make it active, first we need to extend ACs. In addition to access control decision information, ACs may carry other security information. For example, an AC may specify a particular encryption key length for a particular region or country together with access control information. To carry out the the intended security operations specified by ACs, an evaluation engine and an enforcement engine are included in the security guardian. The evaluation engine evaluates ACs in a secure sandbox. The enforcement engine interacts with other NodeOS components to enforce faithfully the security operations, using the security library services. The enforcement engine can initiate security actions based on ACs requirements. So the security guardian may trigger or initiate security actions. The triggers can be intrusion detection alarms, or explicit requests by EEs or applications that use active networking features. For example, the security guardian can initiate installing firewalls dynamically. 61 3.4 NodeOS Security API As mentioned above, the current NodeOS API [28] focuses on fast network packetforwarding and fine-grained quality of service. It provides mainly an interface for resource management without explicit security support. As a complement, the NodeOS security API is designed to provide explicit security support to EEs and active applications. It exports security services including authentication, authorization and integrity to EEs and active applications. The security API is defined as generically as possible to accommodate a wide variety of implementations. A standard, generic security API promotes easy, widespread development and use of secure applications utilizing security. It allows combinations of cryptographic security that support a range of protection levels. The API and different protection levels support the needs of secure international software applications utilizing cryptography, factoring law enforcement and national security interests. They enable flexible, lowcost methods for cryptographically protecting sensitive information. An API should satisfy the needs of both simple and sophisticated applications and should be easy to use. It should require applications to have a minimal degree of cryptographic awareness. According to NSA [34], there are several considerations for security API design: Algorithm Independence Application Independence Cryptomodule Independence Degree of Security Awareness Modular Design and Auxiliary Services Safe programming Security Perimeter We advocate a NodeOS security API that is generic and compatible with available security API standards. Currently several related high-level APIs are available in the research community: 1. Generic Security Service API (GSS API): The GSS API is designed specifically for network communication protocols and provides additional support for securing network communications after authentication [15]. It provides protection for communication using authentication, integrity, and/or confidentiality security services. Its extensions support access control and delegation [26]. 2. Pluggable Authentication Module API (PAM API): This supports pluggable authentication in stand-alone, non-connection-oriented environments for users and provides system level authentication service [31]. It also provides a uniform interface for authentication that is compatible with many authentication provisions, and thus provides complementary functionality to the GSS API. The Java Authentication and Authorization System API (JAAS API) bases its authentication on the PAM API in the Java language environment [14]. 62 3. Generic Authorization and Access Control Application Program Interface (GAA API): The GAA API supports authorization decisions for applications in a distributed environment [30, 29]. An application invokes the GAA API functions to determine if a requested operation or set of operations is authorized or if additional checks are necessary. An application can also use the GAA API to request access control information about a particular resource. The GAA API can be used to obtain a principal’s access rights on an object or a resource and supports the needs of most applications. Developers don’t need to design their own authorization mechanisms. The NodeOS API combines the above APIs to support authentication, authorization, integrity, and access control. A security library implements the NodeOS security API. The API is based on the active network flow concept and supports end-to-end security, hop-to-hop security, and the active network protocols including routing protocols. EE Authentication Authorization Security Services PAM API GAA API GSS API X.509, Password-based, Kerberos, SESAME, Etc. Active Capability, PolicyMaker, ACL, Etc. JCE, Kerberos SESAME, Etc. Security Guardian Public Key API X.509 PKI Dynamic Policy Framework RFC 2510 PKIX NodeOS Figure 4: NodeOS API Design The NodeOS security API has three major components as shown in Figure 4, the authentication API, the authorization API, and the security services API: The authentication API authenticates EEs, AAs, or users. It is based on the PAM API. As shown in Figure 4, a possible implementation of the authentication API uses the X.509 public key infrastructure (PKIX). RFC 2510, the Internet X.509 Public Key Infrastructure Certificate Management Protocol, provides a detailed description of the security functions supported by PKIX. 63 The authorization API helps protect NodeOS resources. It is based on the GAA API. The security guardian in the Figure 4 supports access-control policy evaluation and enforcement. The security guardian’s functionality is similar to a traditional reference monitor or to the role of the checking software that is invoked when a user process requests a supervisor privilege in a traditional operating system like UNIX. All accesses to node resources must go through security guardian. One possible implementation of an access control mechanism is the active capability described previously. The security services API provides security services such as encryption and digital signatures. The security services API is based on the GSS API. Our focus is to export core and essential security functionality to the EEs and active applications while securing the active network infrastructure. Thus, the EEs, the active applications, and the NodeOS itself can use this API for security services, for example, to support hop-hop authentication and security. The implementation of the API must be secure if key management and principal identification are to be secure and thus we locate the implementation of the API within the NodeOS and below the security guardian to take advantage of any hardware protection available to the NodeOS implementation. The NodeOS Security API we have described is comprehensive but not exhaustive. It can be extended easily for future security enhancements. For example, it can be extended to include the IDUP-GSS-API later, if necessary. The IDUP-GSS-API, Independent Data Unit Protection Generic Security Service API, is similar to GSS API, but is designed for independent data unit protection [3]. It extends the GSS API for applications requiring protection of a generic data unit (such as a file or message). The protection of one data unit is independent of the protection of any other data unit and independent of any concurrent contact with designated receivers of the data unit. 3.5 Quality of Protection By using the NodeOS security API, active security guardian, and active networking features, it is feasible to provide quality of protection to active applications. Similar to QoS, QoP supports customized, flexible security and protection requirements of applications. For example, applications can specify routing paths based on security and protection requirements. To provide quality of protection, the NodeOS API needs to be enhanced with different security and protection options. These options are supported by the underlying security library implementation in the NodeOS. In addition the security and protection features need to be characterized. Some sample QoP characteristics include: Key length of security algorithms Robustness or strength of security algorithms Security mechanisms for authentication and privacy Trust values for developers/vendors of security implementations: One may trust more the implementation of security algorithms by reputable vendors. 64 Assurance level of a router NodeOS: The orange book defines the assurance class for an operating system as D, C1, C2, B1, B2, B3 or A1 [9]. A router NodeOS with higher assurance class is more trustworthy. Geographical location of routers: One country may not trust the protection provided by the routers in enemy countries. Active capabilities are used to specify, control and manage QoP. A trust party creates ACs upon the requests of applications. With a NodeOS Security API, an Active Security Guardian, and Quality of Protection (QoP) provisions, the secure node can provide active security features to applications. Applications of active security include a security-customized routing path specified by an application and stronger protection under intrusion. For quality of service applications, both time constraints and security features are important [24]. The QoP allows dynamic reconfiguration and tradeoffs between security protection and satisfaction of the QoS constraints. The protection may be provided on per-service, per-flow, or per-capsule base to optimize performance overhead. 3.6 Low-level Code Safety The evaluation engine of security guardian relies on Java language for low-level code safety. The minimum requirements for low-level code safety are control flow safety, memory safety, and stack safety [13]. Currently we use the Java byte code verifier [36] provided by Java language for low-level code safety. Before loading a class, the verifier performs data-flow analysis on the class code to verify that it is type safe and that all control-flow instructions jump to valid locations [17]. There are several other approaches for low-level code safety. The PLAN project [1] uses programming language techniques to address the code safety problem. Capsules are written using a strongly typed, resource limited language and dynamic code extensions are secured by using type safety and other mechanisms. Another approach is Proof-Carrying Code (PCC) [25]. Besides regular program code, PCC carries a proof that the program satisfies certain properties. The proof is verified before the execution of the code. The generation of a proof may be complex and time consuming, while its verification should be simple and efficient. Software fault isolation (SFI) [35] provides another alternative for low-level code safety. It uses special code transformations and bit masks to ensure that memory operations and jumps access only the correct memory ranges. In summary, there are a variety of different mechanisms and protocols proposed. Each method has its own advantages and disadvantages. Ultimately the application must be given the choice to pick the mechanism that is most suitable for its purpose. The secure node architecture is generic enough to allow all these mechanisms to coexist. 3.7 Discussion An execution environment can also implement security requirements within itself [23]. It can set up security policies for active applications running inside it. While this paper 65 does not focus on the EE security, the same design principles discussed in this paper can be applied to the EE security. 4 Current Status and Future Work We have a prototype implementation of secure node architecture, with a simplified version of security guardian. The security guardian is used in the Seraphim architecture framework [18, 6]. The security guardian of NodeOS can obtain ACs from a trusted policy server and evaluate them. The evaluation result of a AC is either a yes or no. The AC is used to control the access to the NodeOS resources, such as channels. Two innovative applications [18, 16] are implemented to show the benefits of the proposed research. They add little performance overhead to the network. We are currently extending the prototype to a full implementation of the secure node architecture. We plan to demonstrate the power of active security by various applications. The applications include secure routing protocols, security-customized routing paths specified by an application and strengthened protection under intrusion. We also plan to investigate the dynamic reconfiguration and tradeoffs between security protection and satisfaction of the QoS constraints. 5 Conclusions This paper describes the design of securing the node of an active network. It shows that such a secure node architecture, based on active network principles, can provide fundamental base for securing the active network infrastructure and supporting application specific dynamic security requirements and policies. The research in this paper complements the current active network research and augments its functionality. The secure node architecture provides authentication, authorization, integrity, dynamic access control, and quality of protection for active applications. The flexibility and expressibility afforded by the secure node enables us to implement a multitude of diverse, innovative and exciting applications. These applications exploit the active networking paradigm without compromising the security of the infrastructure. In addition, our architecture lays the ground rules for seamless integration with parallel and ongoing efforts in the active networks community. The same design principles can be applied to the security support for the execution environment of an active node. 6 Acknowledgments The authors would like to thank other current Seraphim project members, Prasad Naldurg and Seung Yi, for their contributions to the design and implementation of the Seraphim system. Part of the system is presented in Section 3.1, Section 3.2 and Section 3.3. The authors would also like to thank Jalal Al-Muhtadi for the useful discussions on NodeOS security API design. 66 References [1] The SwitchWare Project Homepage http://www.cis.upenn.edu  switchware/. [2] M. D. Abrams and J. D. Moffett. A higher level of computer security through active policies. Computer & Security, 14(2):147 – 157, 1995. [3] C. Adams. Independent Data Unit Protection Generic Security Service Application Program Interface (IDUP-GSS-API). RFC 2479, December 1998. [4] Godmar Back, Patrick Tullmann, Leigh Stoller, Wilson C. Hsieh, and Jay Lepreau. Java operating systems: design and implementation. Technical Report 98—015, Department of Computer Science, University of Utah, August 1998. [5] K. Calvert et al. Architectural framework for active networks. AN Architecture Working Group, Draft, 1998. [6] Roy H. Campbell, Zhaoyu Liu, M. Dennis Mickunas, Prasad Naldurg, and Seung Yi. Seraphim: dynamic interoperable security architecture for active networks. In IEEE OPENARCH 2000, Tel-Aviv, Israel, March 26–27, 2000. [7] Roy H. Campbell, M. Dennis Mickunas, Tin Qian, and Zhaoyu Liu. An agent-based architecture for supporting application aware security. In the Workshop on Research Directions for the Next Generation Internet, May 1997. [8] Roy H. Campbell and Tin Qian. Dynamic agent-based security architecture for mobile computers. In the Second International Conference on Parallel and Distributed Computing and Networks, Brisbane, Australia, December 1998. [9] National Computer Security Center. The Interpreted Trusted Computer System Evaluation Criteria Requirements, July 1995. Also available at http://www.radium.ncsc.mil/tpep/library/tcsec/ITCSEC.ps. [10] David Evans and Andrew Twyman. Flexible policy-directed code safety. In IEEE Symposium on Security and Privacy, Oakland, CA, May 9-12, 1999. [11] John Hartman, Larry Peterson, Andy Bavier, Peter Bigot, Patrick Bridges, Brady Montz, Rob Piltz, Todd Proebsting, and Oliver Spatscheck. Joust: A platform for liquid software. IEEE Computer, April 1999. [12] M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger, Héctor M. Briceño, Russell Hunt, David Mazières, Thomas Pinckney, Robert Grimm, John Jannotti, and Kenneth Mackenzie. Application performance and flexibility on exokernel systems. In Proceedings of the 16th ACM Symposium on Operating Systems Principles (SOSP ’97), pages 52–65, Saint-Malô, France, October 1997. [13] Dexter Kozen. Efficient code certification. Technical Report 98–1661, Department of Computer Science, Cornell University, January 1998. [14] C. Lai, L. Gong, L. Koved, A. Nadalin, and R. Schemers. User authentication and authorization in the Java platform. In 15th Annual Computer Security Applications Conference, Phoenix, AZ, December 6-10, 1999. [15] J. Linn. Generic Security Service Application Program Interface, Version 2. RFC 2078, January 1997. [16] Zhaoyu Liu, Roy H. Campbell, Sudha K. Varadarajan, Prasad Naldurg, Seung Yi, and M. Dennis Mickunas. Flexible secure multicasting in active networks. In International Workshop on Group Computation and Communications, Taipei, Taiwan, April 2000. [17] Zhaoyu Liu, M. Dennis Mickunas, and Roy H. Campbell. Secure information flow in mobile bootstrapping process. In International Workshop on Wireless Networks and Mobile Computing, Taipei, Taiwan, April 2000. 67 [18] Zhaoyu Liu, Prasad Naldurg, Seung Yi, Tin Qian, Roy H. Campbell, and M. Dennis Mickunas. An agent based architecture for supporting application level security. In the DARPA Information Survivability Conference and Exposition, Hilton Head Island, SC, January 25-27, 2000. [19] David Mazières and M. Frans Kaashoek. Secure applications need flexible operating systems. In Proceedings of the 6th Workshop on Hot Topics in Operating Systems (HotOS-VI), pages 56–61, Chatham, Cape Cod, Massachusetts, May 1997. IEEE Computer Society. [20] S. Merugu, S. Bhattachajee, E. Zegura, and K. Calvert. Bowman: A Node OS for active networks. In Proceedings of INFOCOM 2000, March 2000. [21] D. Mosberger and L. Peterson. Making paths explicit in the scout operating system. In Proceedings of OSDI ’96, pages 153–168, October 1996. [22] S. Murphy, O. Gudmundsson, R. Mundy, and B. Wellington. Retrofitting security into internet infrastructure protocols. In the DARPA Information Survivability Conference and Exposition, Hilton Head Island, SC, January 25-27, 2000. [23] Sandra Murphy et al. Security architecture for active nets. AN Security Working Group, July 15, 1998. [24] Klara Nahrstedt and Duangdao Wichadakul. QoS-aware active gateway for multimedia communication. In Proceedings of 6th International Workshop, IDMS ’99, Toulouse, France, October 1999. Lecture Notes in Computer Science 1718, Springer. [25] G. C. Necula. Proof-carrying code. In Principles of Programming Languages (POPL ’97), pages 106–119, January 1997. [26] T. Parker and D. Pinkas. Extended Generic Security Service APIs: XGSS-APIs Access control and delegation extensions. Internet-Draft, November 1998. [27] C. Partridge. Using the flow label field in IPv6. RFC 1809, June 1995. [28] L. Paterson et al. NodeOS interface specifications. AN NodeOS Working Group, Draft, 1999. [29] T. Ryutov and C. Neuman. Access Control Framework for Distributed Applications. Internet-Draft, March 2000. [30] T. Ryutov and C. Neuman. Representation and evaluation of security policies for distributed system services. In the DARPA Information Survivability Conference and Exposition, Hilton Head Island, SC, January 25-27, 2000. [31] V. Samar and C. Lai. Making login services independent from authentication technologies. In Proceedings of the SunSoft Developer’s Conference, March 1996. [32] Tomas Sander and Christian F. Tschudin. Protecting mobile agents against malicious hosts. In Mobile Agent Security, LNCS 1419. 1998. [33] R. S. Sandhu and E. J. Coyne. Role-based access control models. IEEE Computer, 29(2), February 1996. [34] NSA Cross Organization CAPI Team. Security Service API: Cryptographic API Recommendation, July 1996. Second Edition. [35] Robert Wahbe, Steven Lucco, Thomas E. Anderson, and Susan L. Graham. Efficient software-based fault isolation. In SOSP ’93. [36] Frank Yelin. Low-level security in Java. In WWW4 Conference, December 1995. [37] L. Zhang, S. E. Deering, D. Estrin, S. Shenker, and D. Zappala. RAVP: A new resource ReSerVation Protocol. IEEE Network Magazine, (5), 1993. 68 APPENDIX G APPENDIX G PLUGGABLE ACTIVE SECURITY FOR ACTIVE NETWORKS ZHAOYU LIU, PRASAD NALDURG, SEUNG YI, ROY H. CAMPBELL, M. DENNIS MICKUNAS Department of Computer Science University of Illinois at Urbana-Champaign Urbana, IL 61801 {zhaoyu, naldurg, seungyi, roy, mickunas}@cs.uiuc.edu provide controlled access to the router resources. In addition, active network routers have to provide support to • prevent malicious behavior of arbitrary user code and • protect the user code and data from malicious routers ABSTRACT Security is of critical importance to the success of active networking. In addition, we argue that active security based on active networking principles can offer a wide range of opportunities to build better security systems. This paper describes the integration of active security into a software system implementing the active network architecture. The paper demonstrates that an extensible, reconfigurable security architecture based on active networking is flexible and accommodates a wide variety of security policies and mechanisms. The active security provides users the ability to dynamically create and enforce highly customized and situational policies for their applications. The active security also permits security systems to react to intrusion and can aid the application of the "need-to-know" security principle to network software and application security. Though a wide range of policy types [4] and mechanisms [5] have been proposed, underlying operating systems implement only a static subset of these policies and mechanisms. Applications that want to use sophisticated or customized policies have to make do with lesser or weaker security guarantees. The overhead associated with adding new policies and mechanisms can also be prohibitive. In order to exploit the active network flexibility, we have developed a dynamic, fully extensible, interoperable security architecture based on and built into the underlying active network architecture [6]. We term this approach active security [7]. The security architecture enables both static and runtime application-aware reconfiguration [8]. Adaptation allows the security provisions of the network to meet specific individual security requirements within different application scenarios. Applications can request specific security policy instantiations on specific parts of the network, distributing the relevant security policies on a "need-toknow" basis. Alternatively, changes in the security policies for the network can be triggered by the invalidation of a trust model, perhaps by the detection of intrusion or other abnormal behavior. Keywords: active networks, security, reconfigurable, active capability, interoperability 1 INTRODUCTION An active network provides a software framework that enables network applications to customize the processing of their data [1, 2]. Active applications inject capsules that contain programs (along with data) into the network. Active routers dynamically install these programs and execute them on the data. Though this facilitates fast protocol and service deployment it also makes the routers vulnerable to attacks from arbitrary user-code. Securing the routing infrastructure against threats and exposures remains a major challenge in this paradigm [3]. In this paper we describe the integration of active security into a software system (Bowman and CANEs [13, 14]) implementing the active network architecture [12] to showcase the above claimed advantages. Our active security system is composable and can be easily plugged into current active network systems. The integration demonstrates that the active security can provide users the ability to dynamically create and enforce highly customized and situational policies for their applications. It also shows that the active security can permit security systems to react to intrusion and can Traditional networks rely on the underlying operating system to implement security mechanisms and policies. The traditional definition of security in a network environment includes authentication, access control, and encryption. Applications and routers establish a basis for trust by mutual authentication. To protect the integrity of the contents of the capsules, encryption and digital signatures can be employed. Access control mechanisms or policies are defined and enforced to 69 policy, it downloads the code dynamically into the framework, using the underlying active network. It then instantiates the run-time parameters associated with the application in its sandbox-like environment and executes the active capability in this environment. Based on the result of the evaluation of this active capability, the access control decision is enforced. aid the application of the "need-to-know" security principle to network software and application security. The rest of the paper is organized as follows. Section 2 overviews our Seraphim active security architecture. Section 3 describes the integration of our architecture into a software system implementing the active network architecture. Section 4 presents an application example to show the flexibility of the active security based on the current implementation. Section 5 shows the preliminary performance measurement. Section 6 describes the future plan of the integration. The last section concludes this paper. The principal of the active capability, which can be a user, a role, or other principal, must be authenticated by a trusted authority. The trusted authority acts as the policy server in our system. The policy server is responsible for generating ACs, serving ACs to applications and keeping track of ACs. Usually one or more policy servers are associated with each protection domain. Application programs contact their nearest or least-loaded server and obtain the active capability dynamically. 2 SERAPHIM: ACTIVE SECURITY ARCHITECTURE Seraphim is a dynamic, flexible, and application specific security architecture that exploits the active, dynamic functionality provided by active networking using an active capability (AC) [6, 9]. Essentially an AC is an executable Java code, which concisely represents dynamic security policies and mechanisms. ACs are evaluated by a security guardian in a secure sandbox environment and the security guardian enforces the security requirements of AC evaluation results. We describe the architecture in more detail next. 2.2 POLICY FRAMEWORK The policy framework is an object-oriented and coded in Java. This allows users and commercial organizations to specify policies tailored to their specific operational needs. The framework itself is a hierarchy of classes as shown in Figure 1. DDAC 2.1 ACTIVE CAPABILITY DAC Active capabilities are used to support flexible distributed dynamic security policies and services control employing the same active principles as active networks [6, 9]. Unlike a traditional capability, which is merely a static authorization credential that encodes the principal and the permissions associated with the principal, an active capability is a customized piece of code that encodes the type of access control policy and other constraints used in the access control decision making process. In our implementation, an AC is an executable Java code that concisely represents dynamic security policies and mechanisms. In addition, an active capability is protected by digital signatures, resides in user space and can be freely passed around. MAC RBAC Interfaces OS Primitives Figure 1: Component-level Map of the Policy Framework An active capability can carry all the decisions policy information in its code. This way of implementation is not modular, elegant and efficient. A better way is to have a generic policy framework that supports different various policy types. ACs use the framework to implement specific policies. An application presents an active capability along with its regular data or protocol capsules to the active router’s security guardian at execution time. The access control policy type and user credentials are extracted from the capability. The remote router’s security guardian recreates the context of the policy type within its policy framework. If at any point during this process the policy framework discovers that it does not have an implementation for the type of the The framework is dynamically configurable and extensible. The classes at the bottom of the framework are mostly abstract and are mainly used to represent mathematical concepts such as sets and mappings. These classes form the basis for a hierarchy of successively incremented specialized classes representing concepts such as labels and access control lists. Finally, at the top of the framework are classes that can be used to represent a variety of generic policy forms. The policy framework supports the following common types of access control: Mandatory (MAC), 70 provides lower level services. To make the elementary Bowman channel, a-flow, and state-store abstractions more useful for users, Bowman provides an extension mechanism that is analogous to loadable modules in traditional operating systems. Using extensions, the Bowman NodeOS interface can be extended to provide support for additional abstractions such as queues, routing tables, user protocols and services ([15] provides a more complete NodeOS API). Discretionary (DAC), Double Discretionary (DDAC), and Role-based (RBAC) [10]. More application specific access control policy systems can be easily extended from this object-oriented framework ([11] provides several good examples). In our model, we can specify not only the traditional <subject, object, operation> access control triple, but also include a resource limit on usage, situational decision rules, constraints and dependences, e.g., based on current time of the day or current role of the principal. The main policy type we use for active networks is RBAC because of its flexibility. We will describe its usage in more detail later. The CANEs EE is built on the top of the Bowman NodeOS. It provides a composition framework for active services based on customizing a generic underlying program by injecting code to run in specific points called slots. The composition model basically has two parts. The first part, the underlying program, is a fixed part for uniform processing applied to every packet. The second part, the injected program, is a dynamic part that provides user-specific functionality for routing and processing the packets. The injected program is dynamically executed at the appropriate specific points (slots) in the underlying program. CANEs uses signaling messages to control the injected programs. 2.3 SECURITY GUARDIAN The security guardian in the architecture supports AC evaluation and enforcement. The security guardian’s functionality is similar to a traditional reference monitor. All accesses to node resources must go through the security guardian. The security guardian uses the security library services to verify the signature on the active capability. To carry out the intended security operations specified by ACs, an evaluation engine and an enforcement engine are included in the security guardian. The evaluation engine evaluates ACs in a secure sandbox. The enforcement engine interacts with other NodeOS components to enforce faithfully the security operations, using the security library services. The enforcement engine can initiate security actions based on ACs requirements. So the security guardian may trigger or initiate security actions. The triggers can be intrusion detection alarms, or explicit requests by execution environments (EEs) or applications that use active networking features. For example, the security guardian can initiate installing firewalls dynamically [6]. CANEs API I1 I2 U User A−flow CANEs EE CANEs Signalling A−flow Security Guardian Policy Administrator GUI (JNI, JVM) Policy Server System Thread Bowman NodeOS 3 INTEGRATION OF SECURITY INTO ACTIVE ARCHITECTURE Host OS This section describes the integration of the above security system into a software system implementing the active network architecture [12]. The software system has two parts: the Bowman NodeOS and the CANEs execution environment [13, 14]. We first briefly overview the Bowman and CANEs systems, and then present the integration. Figure 2: Integration of Active Security into Bowman and CANEs 3.2 INTEGRATION The integration of active security, CANEs and Bowman is shown in Figure 2. The security guardian is a thin layer between the Bowman NodeOS and the CANEs EE. The Bowman NodeOS interfaces are replaced by the security interfaces. The security guardian does the following security checkings [16]: 3.1 OVERVIEW OF BOWMAN AND CANES The Bowman node operating system is built to support the CANEs EE. It is designed around three key abstractions: channel, a-flow, and state-store. A channel is the primary abstraction for communication and an aflow is the primary abstraction for computation. The state-store provides a mechanism for a-flows to store and retrieve state that is indexed by a unique key. The Bowman is layered on top of a host operating system that • 71 Authentication: It verifies the identification and the signature of the request messages. We use X.509 certificates [17] and a simple public key infrastructure (PKI) for authentication. RBAC RBAC default_role, root@null, router B, o_aflow_create_default default_role, root@null, router A, o_aflow_create_default Router A Router A Router B Router B AC AC RBAC policy admin installs new capability and root can create flow now Root can not create flow on Router B No capability found Figure 4: Second Demo Scenario Figure 3: First Demo Scenario • AC Flow Flow We have implemented a preliminary version of the authorization part of the integration. Based on the authorization part, we have developed an example application scenario, which is shown in Figure 3, 4, 5 and 6. Figure 3 shows that on behalf of user root@null of role default_role, the CANEs EE can create an a-flow on the router A, but not on the router B. In order to have a complete flow path from the user root@null to the router B, we can dynamically create a new AC through the policy GUI and install it at the router B. Now the CANEs EE can create an a-flow on both router A and B on behalf of the user root@null of role default_role (Figure 4). The policy type of Figure 3 and 4 is RBAC. If we want to have a stricter and less flexible policy we can dynamically change RBAC to MAC (Figure 5). In this case, the trigger for the policy type change may be an intrusion detection alarm. In MAC policy every entity is assigned a security level. A hierarchy is defined in terms of these levels. Subjects with lower levels cannot read from objects of higher levels and subjects with higher levels cannot write to objects of lower levels. We assume that the MAC level L1 is higher than MAC level L2. This means that the router B has lower security level than the router A. So if user root@null is also at security level L1, then user root@null can create an a-flow at only the router A since user root@null cannot write to router B (Figure 6). Authorization: If authentication succeeds, it then checks the access permission for the requests. This requires fetching and evaluating ACs. Since Bowman and CANEs are written in C to obtain high performance and the Seraphim architecture is implemented in Java for interoperability and security purpose, we use JNI (Java Native Interface) in Bowman and CANEs to invoke the security guardian in Java. When Bowman starts, it starts the security guardian component that invokes Sun JVM. Each security check from CANEs to the Bowman NodeOS security interface is attached to the Sun JVM as a Java thread. After the checking, the Java thread is detached and destroyed. The security guardian obtains ACs through a secure channel from the policy server. The policy administrator uses a GUI that allows users or system administrators to create and define policy specific attributes and to generate active capabilities. The GUI allows the administrator to create role definitions and associate users and permissions with the role, and supports other functionality (see [10] for more details). 4 APPLICATION EXAMPLE MAC Change to MAC label L1, root@null, router A, o_aflow_create_default Admin AC: Revoke RBAC, Grant MAC Router B Router A Router A Router B MAC L1 MAC MAC L1 Flow MAC L2 (root@null, L1) can not write to (B, L2) user root@null could be compromised L2 Figure 5: Third Demo Scenario Figure 6: Fourth Demo Scenario 72 We also show that the active security can permit security systems to react to intrusion and can aid the application of the "need-to-know" security principle to network software and application security. We believe that exploiting active security is a step in the direction of designing a comprehensive and flexible framework to integrate various security mechanisms and services into the active network architecture. 5 PERFORMANCE The overhead that the integration introduces includes the JNI invocation overhead and the regular security overhead. The regular security overhead, which includes AC fetching and evaluation, is necessary for flexible access control and has been studied previously [6]. We used a simple active ping application (atraceroute) between two machines A and B to measure the JNI invocation overhead. Machine A is a Sun Ultra-5 machine, and machine B is a Sun Ultra-2 machine. Both A and B are on the same 100Mbps Ethernet LAN. Machine A sends an atraceroute to machine B that is running the Bowman NodeOS. We measure the round trip time (RTT) of the atraceroute command with and without JNI invocation (When with JNI invocation, we let security guardian simply return a true value in order not to include the regular security overhead). Without any optimization, the RTT is about 2400ms without JNI invocation and about 9100ms with JNI invocation. 8 ACKNOWLEDGEMENTS We would like to thank Matt Sanders, Ken Calvert and Ellen Zegura to help us understand the Bowman NodeOS and CANEs execution environment system. This research is supported by DARPA F30602-981-0192. REFERENCES [1] D. Wetherall, J. Guttag, and D. Tennenhouse. ANTS: A Toolkit for Building and Dynamically Deploying Network Protocols. In OPENARCH’98, 1998. In order to improve the performance, we plan to have a leaner JVM replace the current Sun JVM. A possible choice is Kaffe JVM [18]. A more dramatic improvement would be to use a simpler language than Java for ACs. The sandbox evaluation engine of the security guardian of the simpler language must be efficient. [2] D. Wetherall, U. Legedza, and J. Guttag. Introducing New Internet Services: Why and How. In IEEE Network Magazine, July 1998. [3] S. Murphy, ed. Security Architecture Draft. AN Security Working Group. Draft. 6 FUTURE PLAN [4] Ravi Sandhu. Role-Based Access Control. In Advances in Computers, Vol. 46, Academic Press, 1998. Also at http://www.list.gmu.edu/articles.htm We plan to extend the current integration implementation to provide security checking for all CANEs signaling messages. We plan to add authentication and dynamic revocation to the integration, using the security NodeOS API [16]. We also plan to integrate the Denial of Service prevention features into the system. Finally we will install an experimental setup for the flexible, secure, and composable demanded video distribution application [19] to demonstrate the secure composable services for active networks. [5] The SwitchWare Project http://www.cis.upenn.edu/~switchware/ Homepage. [6] Zhaoyu Liu, Prasad Naldurg, Seung Yi, Tin Qian, Roy H. Campbell, and M. Dennis Mickunas. An Agent-based Architecture for Supporting Application Level Security. In the DARPA Information Survivability Conference and Exposition, Hilton Head Island, SC, January 2000. [7] Roy H. Campbell, Zhaoyu Liu, M. Dennis Mickunas, Prasad Naldurg, and Seung Yi. Seraphim: An Active Security Architecture for Active Networks. Tech. Report 2137, Department of Computer Science, University of Illinois at Urbana-Champaign, November 1999. 7 CONCLUSION This paper describes the integration of the Seraphim active security into a software system implementing the active network architecture [12]. The active security architecture is dynamic, fully extensible, interoperable and is based on the underlying active network principles. The integration demonstrates that the active security architecture can be easily plugged into the active network architecture such as Bowman and is flexible and accommodates a wide variety of security policies and mechanisms. We show that active security can provide users the ability dynamically to create and enforce highly customized and situational policies for their applications. [8] Roy H. Campbell, Zhaoyu Liu, M. Dennis Mickunas, Prasad Naldurg, and Seung Yi. Seraphim: Dynamic Interoperable Security Architecture for Active Networks. In IEEE OPENARCH 2000, Tel-Aviv, Israel, March 2000. [9] Roy H. Campbell, M. Dennis Mickunas, Tin Qian, and Zhaoyu Liu. An Agent-based Architecture for Supporting Application Aware Security. In the Workshop on 73 Research Directions for the Next Generation Internet, Vienna, VA, May 1997. [10] Vijay Raghavan. On the Design and Implementation of a Security Policy Administration for a Dynamic Security System. Master’s Thesis, Department of Computer Science, University of Illinois at UrbanaChampaign, May 1999. [11] Tim Fraser. An Object-Oriented Framework for Security Policy Representation. Master’s Thesis, Department of Computer Science, University of Illinois at Urbana-Champaign, December 1996. [12] K. Calvert, ed. Architectural Framework for Active Networks. AN Architecture Working Group. Draft. [13] S. Merugu, S. Bhattacharjee, Y. Chae, M. Sanders, K. Calvert, and E. Zegura. Bowman and CANEs: Implementation of an Active Network. In Proceedings of 37th Annual Allerton Conference, Monticello, IL, September 1999. [14] The CANEs Project http://www.cc.gatech.edu/projects/canes/ Homepage. [15] L. Peterson, ed. NodeOS Interface Specifications. AN NodeOS Working Group. Draft. [16] Zhaoyu Liu, Roy H. Campbell, and M. Dennis Mickunas. Securing the Node of an Active Network. In Active Middleware Services, Salim Hariri, Craig Lee, and Cauligi Raghavendra (editors), Kluwer Academic Publishers, Boston, MA, September 2000. [17] C. Adams and S. Farrell. Internet X.509 Public Key Infrastructure Certificate Management Protocols. RFC 2510, March 1999. [18] The Kaffe Homepage. http://www.kaffe.org/ [19] The PANAMA Project http://www.tascnets.com/panama/ Homepage. 74 APPENDIX H 75 76 77 78 79 80 81 82 83 84 85 86 View publication stats