I2NSF L. Xia Internet Draft J. Strassner Intended status: Standard Track D.Zhang Huawei K. Li Alibaba C. Basile A. Lioy PoliTO D. Lopez TID E. Lopez Fortinet N. BOUTHORS Qosmos Luyuan Fang Microsoft Expires: December 2017 November 1, 2016 Information Model of NSFs Capabilities draft-xibassnez-i2nsf-capability-00.txt Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html This Internet-Draft will expire on December 1,2016. Xia, et al. Expires December 31, 2016 [Page 1] Internet-Draft I2NSF Capability Interface IM November 2016 Copyright Notice Copyright (c) 2016 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Abstract This draft aims at defining the concept of capability. Capabilities are data that unambiguously characterize NSFs (Network Security Functions). Their correct definition will ease all the management and automation that can be. Moreover, it allows the definition of Interfaces to manage NSFs. This draft is the first trial to merge two previous existing drafts on NSFs capabilities [I-D.draft-baspez-i2nsf-capabilities-00] and on the capability interface [I-D.draft-xia-i2nsf-capability-interface- im-06]. Further work will be needed to homogenize all the concepts and incorporate the feedback that will result after its publication. Table of Contents 1. Introduction ................................................ 4 2. Conventions used in this document ........................... 6 2.1. Terminology ............................................ 6 3. Management of NSFs: Design Principles towards a model of Capabilities ................................................... 7 4. Information Model .......................................... 10 5. Capabilities for security policy enforcement ............... 12 5.1. The CA Policy Model ................................... 13 5.2. Geometric Model of CA Policies ........................ 14 5.3. Condition Types ....................................... 17 5.4. Model of Capabilities for Policy Specification and Enforcement Purposes ................................................... 19 5.5. Algebra of capabilities ............................... 20 5.6. Examples of NSFs Categories ........................... 21 5.6.1. Network Security ................................. 22 Xia, et al. Expires December 1, 2017 [Page 2] Internet-Draft I2NSF Capability Interface IM November 2016 5.6.2. Content Security .................................. 22 5.6.3. Attack Mitigation ................................. 22 6. Information Sub-Model for Network Security Capabilities ..... 23 6.1. Information Sub-Model for Network Security ............. 23 6.1.1. Network Security Policy Rule Extensions ........... 24 6.1.2. Network Security Policy Rule Operation ............ 26 6.1.3. Network Security Event Sub-Model .................. 27 6.1.3.1. UserSecurityEvent Class Description .......... 29 6.1.3.1.1. The usrSecEventContent Attribute ........ 29 6.1.3.1.2. The usrSecEventFormat Attribute.......... 29 6.1.3.1.3. The usrSecEventType Attribute ........... 30 6.1.3.2. DeviceSecurityEvent Class Description ........ 30 6.1.3.2.1. The devSecEventContent Attribute ........ 30 6.1.3.2.2. The devSecEventFormat Attribute.......... 31 6.1.3.2.3. The devSecEventType Attribute ........... 31 6.1.3.2.4. The devSecEventTypeInfo[0..n] Attribute . 31 6.1.3.2.5. The devSecEventTypeSeverity Attribute ... 32 6.1.3.3. SystemSecurityEvent Class Description ........ 32 6.1.3.3.1. The sysSecEventContent Attribute ........ 32 6.1.3.3.2. The sysSecEventFormat Attribute.......... 33 6.1.3.3.3. The sysSecEventType Attribute ........... 33 6.1.3.4. TimeSecurityEvent Class Description .......... 33 6.1.3.4.1. The timeSecEventPeriodBegin Attribute ... 34 6.1.3.4.2. The timeSecEventPeriodEnd Attribute ..... 34 6.1.3.4.3. The timeSecEventTimeZone Attribute ...... 34 6.1.4. Network Security Condition Sub-Model .............. 34 6.1.4.1. PacketSecurityCondition ...................... 36 6.1.4.1.1. PacketSecurityMACCondition .............. 36 6.1.4.1.1.1. The pktSecCondMACDest Attribute .... 37 6.1.4.1.1.2. The pktSecCondMACSrc Attribute ..... 37 6.1.4.1.1.3. The pktSecCondMAC8021Q Attribute ... 37 6.1.4.1.1.4. The pktSecCondMACEtherType Attribute 37 6.1.4.1.1.5. The pktSecCondMACTCI Attribute ..... 37 6.1.4.1.2. PacketSecurityIPv4Condition ............. 37 6.1.4.1.2.1. The pktSecCondIPv4SrcAddr Attribute 37 6.1.4.1.2.2. The pktSecCondIPv4DestAddr Attribute 37 6.1.4.1.2.3. The pktSecCondIPv4ProtocolUsed Attribute ................................................ 38 6.1.4.1.2.4. The pktSecCondIPv4DSCP Attribute ... 38 6.1.4.1.2.5. The pktSecCondIPv4ECN Attribute .... 38 6.1.4.1.2.6. The pktSecCondIPv4TotalLength Attribute ................................................ 38 6.1.4.1.2.7. The pktSecCondIPv4TTL Attribute .... 38 6.1.4.1.3. PacketSecurityIPv6Condition ............. 38 6.1.4.1.3.1. The pktSecCondIPv6SrcAddr Attribute 38 6.1.4.1.3.2. The pktSecCondIPv6DestAddr Attribute 38 6.1.4.1.3.3. The pktSecCondIPv6DSCP Attribute ... 38 Xia, et al. Expires December 1, 2017 [Page 3] Internet-Draft I2NSF Capability Interface IM November 2016 6.1.4.1.3.4. The pktSecCondIPv6ECN Attribute .... 39 6.1.4.1.3.5. The pktSecCondIPv6FlowLabel Attribute39 6.1.4.1.3.6. The pktSecCondIPv6PayloadLength Attribute ....................................... 39 6.1.4.1.3.7. The pktSecCondIPv6NextHeader Attribute39 6.1.4.1.3.8. The pktSecCondIPv6HopLimit Attribute 39 6.1.4.1.4. PacketSecurityTCPCondition .............. 39 6.1.4.1.4.1. The pktSecCondTPCSrcPort Attribute . 39 6.1.4.1.4.2. The pktSecCondTPCDestPort Attribute 39 6.1.4.1.4.3. The pktSecCondTPCSeqNum Attribute .. 40 6.1.4.1.4.4. The pktSecCondTPCFlags Attribute ... 40 6.1.4.1.5. PacketSecurityUDPCondition .............. 40 6.1.4.1.5.1. The pktSecCondUDPSrcPort Attribute . 40 6.1.4.1.5.2. The pktSecCondUDPDestPort Attribute 40 6.1.4.1.5.3. The pktSecCondUDPLength Attribute .. 40 6.1.4.2. PacketPayloadSecurityCondition ............... 40 6.1.4.3. TargetSecurityCondition ...................... 40 6.1.4.4. UserSecurityCondition ........................ 41 6.1.4.5. SecurityContextCondition ..................... 41 6.1.4.6. GenericContextSecurityCondition .............. 41 6.1.5. Network Security Action Sub-Model ................. 42 6.1.5.1. IngressAction ................................ 43 6.1.5.2. EgressAction ................................. 43 6.1.5.3. ApplyProfileAction ........................... 43 6.1.5.4. ApplySignatureAction ......................... 43 6.2. Information Model for Content Security Control ......... 43 6.3. Information Model for Attack Mitigation Control ........ 44 7. Security Considerations ..................................... 45 8. IANA Considerations ......................................... 46 9. References .................................................. 46 9.1. Normative References ................................... 46 9.2. Informative References ................................. 46 10. Acknowledgments ............................................ 47 Appendix A. .................................................... 48 A.1. AuthenticationECAPolicyRule Class Definition ........... 48 A.2. AuthorizationECAPolicyRuleClass Definition ............. 50 A.3. AccountingECAPolicyRuleClass Definition ................ 52 A.4. TrafficInspectionECAPolicyRuleClass Definition.......... 54 A.5. ApplyProfileECAPolicyRuleClass Definition .............. 56 A.6. ApplySignatureECAPolicyRuleClass Definition ............ 58 1. Introduction The rapid development of virtualized systems, along with the demand of security services in virtualized systems, requires advanced security protection in various scenarios. Examples include network devices in an enterprise network, User Equipment (UE) in a mobile Xia, et al. Expires December 1, 2017 [Page 4] Internet-Draft I2NSF Capability Interface IM November 2016 network, devices in the Internet of Things (IoT), or residential access users [I-D.draft-ietf-i2nsf-problem-and-use-cases]. Capabilities are precise information that characterize in an unambiguous way (in a given virtualized system) what a NSF can do in terms of security policy enforcement and how a Controller can interact with it in order to enforce a security policy. Even if the aim is a general of capabilities, the unambiguity of capabilities is only assured in a given virtualized system. According to [I-D.draft-ietf-i2nsf-framework], there are two types of I2NSF interfaces available for security rules provisioning: o Interface between I2NSF clients and a security controller (Client Facing Interface): This is a service-oriented interface, whose main objective is to define a communication channel over which information defining security services controlling client's specific flow can be requested. This enables security information to be exchanged between various applications (e.g., OpenStack, or various BSS/OSS components) and other components (e.g., security controllers). The design goal of the service interface is to decouple the security service in the application layer from various kinds of security devices and their device-specific security functions. Interface between NSFs (e.g., firewall, intrusion prevention, or anti-virus) and a security controller (NSFs Facing Interface): This interface is independent of how the NSFs are implemented (e.g., run in Virtual Machines (VMs) or physical appliances). The NSFs Facing Interface is used to decouple the security management scheme from the set of NSFs and their various implementations for this scheme, so as to specify and monitor a number of flow based security policies to individual NSFs. According to the definition in [I-D.draft-ietf-i2nsf-framework], NSFs Facing Interface includes sub-interfaces of Capability Interface, Registration Interface and Monitoring Interface. This document proposes the information model design for the first two interfaces (Capability and Registration), the Monitoring Interface information model is discussed in [I-D.draft-zhang-i2nsf-info-model-monitoring]. This document is organized as follows: Section 3 discusses the design principles for NSF capabilities and related ECA model. Section 4 further describes design principles for I2NSF capability information model. Section 5 provides more details about the design of network security capability. Section 6 presents further information on specific aspects of the information model. Xia, et al. Expires December 1, 2017 [Page 5] Internet-Draft I2NSF Capability Interface IM November 2016 2. Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119 [RFC2119]. This document references to [I-D.draft-ietf-i2nsf-terminology] for more specific security related and I2NSF scoped terminology definitions. 2.1. Terminology AAA -Access control, Authorization, Authentication ACL - Access Control List AD - Active Directory ANSI - American National Standards Institute DDoS - Distributed Deny of Services FW - Firewall I2NSF - Interface to Network Security Functions INCITS - International Committee for Information Technology Standards IoT - Internet of Things IPS - Intrusion Prevention System LDAP - Lightweight Directory Access Protocol NAT - Network Address Translation NBI - North-bound Interface NIST - National Institute of Standard Technology NSF - Network Security Function RBAC - Role Based Access Control UE - User Equipment Xia, et al. Expires December 1, 2017 [Page 6] Internet-Draft I2NSF Capability Interface IM November 2016 URL - Uniform/Universal Resource Locator VM - Virtual Machine WAF - Web Application Firewall 3. Management of NSFs: Design Principles towards a model of Capabilities Some basic principles for security capabilities and the systems that have to manage them need to be considered: o Flexibility: each security capability should be an independent function, with minimum overlap or dependency to other capabilities. This enables each security capability to be utilized and assembled together freely. More importantly, changes to one capability will not affect other capabilities; o High level of abstraction: each capability should be associated to a unified interface to make it programmable; this in turn provides a standardized ability to describe and report its processing results and corresponding statistics information. Furthermore, it facilitates the multi-vendor interoperability; o Automation: The system must have the ability to auto-discover, auto-negotiate, and auto-update security capabilities. These features are especially useful for the management of a large number of NSFs. They are essential to add smart services (refinement, analysis, capability reasoning, optimization) on top of the virtual layer; o Scalability: the management system must have the capability to scale up/down or scale in/out. Thus, it can meet various performance requirements derived from changeable network traffic or service requests. In addition, the security capability must support reporting statistics to the security controller to assist its decision on whether it needs to invoke scaling or not. Based on the above principles, a set of abstract and vendor-neutral capabilities with standard interfaces is needed together with a model of capabilities that allows to unambiguously determine what NSFs can do in terms of security policy enforcement. The security controller can compare the requirements of clients to the set of capabilities that are currently available in order to choose which NSFs are needed to meet those requirements. Note that this choice is independent of vendor, and instead relies specifically on the capabilities (i.e., the description) of the functions provided. This Xia, et al. Expires December 1, 2017 [Page 7] Internet-Draft I2NSF Capability Interface IM November 2016 also facilitates the customization of the functionality of the selected NSFs by setting the parameters of their interfaces. Furthermore, when an unknown threat (e.g., zero-day exploits, unknown malware, and APTs) is reported by a network security device, new capabilities may be created, and/or existing capabilities may be updated (e.g., signature and algorithm), to correspond to the new functionality provided by the NSF to handle the threat. The new capabilities are provided from different vendors after their analysis of the new threats and subsequent installation of the functions required to report on (and possibly mitigate) the threat. New capabilities may be sent to and stored in a centralized repository, or stored separately in a local repository. In either cases, a standard interface is needed during this automated update process. In defining the capabilities of a NSF, the "Event-Condition-Action" (ECA) policy rule set model in [I-D.draft-ietf-i2nsf-framework] should be here as the basis for the design: o Event: An Event is defined as any important occurrence in time of a change in the system being managed, and/or in the environment of the system being managed. When used in the context of policy rules for I2NSF, it is used to determine whether the Condition clause of the Policy Rule can be evaluated or not. Examples of an I2NSF Event include time and user actions (e.g., logon, logoff, and actions that violate an ACL); o Condition: A set of attributes, features, and/or values that are to be compared with a set of known attributes, features, and/or values in order to make a decision. When used in the context of policy rules for I2NSF, it is used to determine whether or not the set of Actions in that Policy Rule can be executed or not. The following are exemplary types of conditions: ? Packet content values: Refer to the kind of information or attributes acquired directly from the packet headers or payloads that can be used in the security policy. It can be any fields or attributes in the packet L2/L3/L4 header, or special segment of bytes in the packet payload; ? Context values: Refer to the context information for the received packets. It can be (and not limited to): Xia, et al. Expires December 1, 2017 [Page 8] Internet-Draft I2NSF Capability Interface IM November 2016 * User: The user (or user group) information to which a network flow is associated. A user has many attributes, such as name, id, password, authentication mode, and so on. The combination of name and id (where id could be a password, a certificate, or other means of identifying the user) is often used in the security policy to identify the user. For example, if an NSF is aware of the IP (or MAC) address associated with the user, the NSF can use a pre-defined or dynamically learned name- address association to enforce the security functions for this given user (or user group); * Schedule: Time or time range when packet or flow is received; * Region: The geographic location where network traffic is received; * Target: The target indicates the entity to which the security services are applied. This can be a service, application, or device. A service is identified by the protocol type and/or port number. An application is a computer program for a specific task or purpose. It provides additional semantics (e.g., dependencies between services) for matching traffic. A device is a managed entity that is connected to the network. The attributes that can identify a device include type (e.g., router, switch, pc) and operating system (e.g., Windows, Linux, or Android), as well as the device's owner; * State: It refers to various states to which the network flow is associated. It can be either the TCP session state (e.g., new, established, related, invalid, or untracked), the session AAA state (e.g., authenticated but not authorized), or the access mode of the device (e.g., wireline, wireless, or cellular; these could be augmented with additional attributes, such as the type of VPN that is being used); * Direction: the direction of the network flow. o Action: NSFs provide security functions by executing various Actions, which at least includes: ? Ingress actions, such as pass, drop, mirroring, etc; Xia, et al. Expires December 1, 2017 [Page 9] Internet-Draft I2NSF Capability Interface IM November 2016 ? Egress actions, such as invoke signaling, tunnel encapsulation, packet forwarding and/or transformation; ? Applying a specific Functional Profile or signature - e.g., an IPS Profile, a signature file, an anti-virus file, or a URL filtering file. It is one of the key properties that determine the effectiveness of the NSF, and is mostly vendor- specific today. One goal of I2NSF is to standardize the form and functional interface of those security capabilities while supporting vendor-specific implementations of each. However, it is important to properly model the parts that are related to the action (what is enforced) and the conditions (on what it is enforced). The above ECA ruleset is very general and easily extensible, thus can avoid any potential constraints which could limit the implementation of the network security control capability. 4. Information Model An information model will be developed in order to describe in an abstract and vendor independent manner all the aspects related to the capabilities of NSFs. A detailed information model will be designed in the next versions of this draft as a consequence of the discussions, feedback, and extensions that will originate after the publication of this draft. In this version of the draft, we present a simplified view that only highlights the most important concepts. The I2NSF capability interface is in charge of controlling and managing the NSFs by means of the information about the capabilities each NSF owns. This is done using the following approach: 1) User of the capability interface selects the set of capabilities required to meet the needs of the application; 2) A management entity uses the information model to match chosen capabilities to NSFs, independent of vendor; 3) A management entity takes the above information and creates or uses vendor-specific data models to install the NSFs identified by the chosen capabilities; 4) Control and monitoring can then begin. This assumes that an external model, or set of models, is used to define the concept of an ECA Policy Rule and its components (e.g., Event, Condition, and Action objects). Xia, et al. Expires December 1, 2017 [Page 10] Internet-Draft I2NSF Capability Interface IM November 2016 Since Capabilities are unambiguous only within the same management system, and are not inherent characteristics that differentiate objects, it is also assumed that an external model (or set of models) will define a generic metadata concept. The Capability is a general abstract concept. Currently, the most promising approach for defining the information model of the Capabilities uses the sub-classing to define non-overlapping and independent concepts. For instance, the Capability model that will be presented in the next sections that abstractly determines the security policies that a NSF can enforce does not overlap with an independent model that specifies how a NSF can be contacted by the controller (i.e., the protocols and secure channels) and when (i.e., the events to which it reacts). Capabilities are sub-classed from an appropriate class in the external metadata model. The capability interface is used for advertising, creating, selecting and managing a set of specific security capabilities independent of the type and vendor of device that contains the NSF. That is, the user of the capability interface does not care whether the NSF is virtualized or hosted in a physical device, the vendor of the NSF, and which set of entities the NSF is communicating with (e.g., a firewall or an IPS). Instead, the user only cares about the set of capabilities that the NSF has, such as packet filtering or deep packet inspection. The overall structure is illustrated in the figure below: +-------------------------+ 0..n 0..n +---------------+ | |/ \ \| External | | External ECA Info Model + A ----------------+ Metadata | | |\ / Aggregates /| Info Model | +-------------------------+ Metadata +------+--------+ / \ | | | +----+-------+ | Capability | | Sub-Model | +------------+ Figure 1. The Overall I2NSF Information Model Design Xia, et al. Expires December 1, 2017 [Page 11] Internet-Draft I2NSF Capability Interface IM November 2016 This draft defines the Capability sub-Model shown in Figure 1. This model assumes that another, generic, information model for defining ECA policy rules (which includes a specific one for the CA part of ECA policy rules) exists outside of I2NSF. It also assumes that Capabilities are modeled as metadata, since a Capability is something that describes and/or prescribes functionality about an object, but is not an inherent part of that object. Hence, the Security Capability Sub-Model extends the generic external metadata model. Both of these external models could, but do not have to, draw from the SUPA model [I-D.draft-ietf-supa-generic-policy-info-model]. The external ECA Information Model supplies at least a set of objects that represent a generic ECA Policy Rule, and a set of objects that represent Events, Conditions, and Actions that can be aggregated by the generic ECA Policy Rule. This enables I2NSF to reuse this generic model for different purposes. It is assumed that the external ECA Information Model has the ability to aggregate metadata. Capabilities are then sub-classed from an appropriate class in the external Metadata Information Model; this enables the ECA objects to use the existing aggregation between them and Metadata to add Metadata to appropriate ECA objects. Detailed descriptions of each portion of the information model are given in the following sections. 5. Capabilities for security policy enforcement At present, a variety of NSFs produced by multiple security vendors provide various security capabilities to customers. Multiple NSFs can be combined together to provide security services over the given network traffic, regardless of whether the NSFs are implemented as physical or virtual functions. Security Capabilities are intended to describe the potentiality that Network Security Functions (NSFs) have for security policy enforcement purposes. Security Capabilities are abstract concepts that are independent of the actual security control that will implement them. However, every NSF will be associated to the capabilities it owns. Security Capabilities are required to allow differentiating among network functions. It would be a market enabler having a way to substitute a NSF with an equivalent one (i.e., having the same functionality). Moreover, Security Capabilities are very useful to reason about generic functions, Xia, et al. Expires December 1, 2017 [Page 12] Internet-Draft I2NSF Capability Interface IM November 2016 which may be needed at design time. That is, it is not needed to refer to a specific product when designing the network; rather the functions characterized by their capabilities are considered. Therefore, we have developed another model where Security Capabilities determine what a security control can do in terms of conditions, actions, resolution strategies, external data, if it supports default action, etc. That is, Security Capabilities define without any ambiguity the actions a function can do in term of security policy enforcement. The Security Capability model is built on a predefined general policy model. The type of policies that a NSF can enforce is obtained by customizing the general policy model with the Security Capability information. The Capability Model has been preliminarily validated by verifying that is allows the correct description of several existing security controls. 5.1. The CA Policy Model The starting point of the design of our capability model is a simple observation. As human beings, we all understand immediately each other when we refer to security controls by just naming their category. For instance, experts agree on what is a NAT, a filtering control, or a VPN concentrator. Network security experts unequivocally refer to "packet filters" as stateless devices able to allow or deny packets forwarding based on conditions on source and destination IP addresses, source and destination ports, and IP protocol type fields [Alshaer]. Moreover, it is known that packet filter rules are prioritized and it is possible to specify a default action. More precisely, packet filters implement the First Matching Rule (FMR) or Last Matching Rule (LMR) resolution strategies. However, we feel the need for more information in case of other devices, like stateful firewalls or application layer filters. These devices filter packets or communications, but there are differences among products in the packets and communications that they can categorize and the states they maintain. Analogous considerations can be applied for channel protection protocols, where we all understand that they will protect packets by means of symmetric algorithms whose keys could have been negotiated with asymmetric cryptography, but they may work at different layers and support different algorithms and protocols. To ensure protection, these protocols apply integrity, optionally confidentiality, apply anti-reply protections, and authenticate peers. Xia, et al. Expires December 1, 2017 [Page 13] Internet-Draft I2NSF Capability Interface IM November 2016 The purpose is to build a model of security capabilities that allow automatic management of virtualized systems, where intelligent components are able to properly identify and manage NSFs, and allow NSFs to properly declare their functionality so that they can be used in the correct way. 5.2. Geometric Model of CA Policies We refer in this draft to the policy model defined in [Bas12] as geometric model, which is summarized here. Policies are specified by means of a set of rules in the "if condition then action" format [RFC3198]. Rules are formed by a condition clause and an action clause. This model can be further extended to support events, that is, in the Event-Condition-Action paradigms. However, for our purpose, the geometric model will only be used to define the CA part of the ECA model that we have selected as reference. All the actions available to the security function are well known and organized in an action set A. For filtering controls, the enforceable actions are either Allow and Deny, thus A={Allow,Deny}. For channel protection controls, they may be informally written as "enforce confidentiality", "enforce data authentication and integrity", and "enforce confidentiality and data authentication and integrity". However, these actions need to be instantiated to the technology used, for instance AH-transport mode and ESP-transport mode (and combinations thereof) are a more precise and univocal definition of channel protection actions. Conditions are typed predicates concerning a given selector. A selector describes the values that a protocol field may take, e.g., the IP source selector is the set of all possible IP addresses, and it may also refer to the part of the packet where the values come from, e.g., the IP source selector refers to the IP source field in the IP header. Geometrically, a condition is the subset of its selector for which it evaluates to true. A condition on a given selector matches a packet if the value of the field referred to by the selector belongs to the condition. For instance, in Figure 2 the conditions are s1 <= S1 (read as s1 subset of or equal to S1) and s2 <= S2 (s1 of or equal to S2), both s1 and s2 match the packet x1, while only s2 matches x2. Xia, et al. Expires December 1, 2017 [Page 14] Internet-Draft I2NSF Capability Interface IM November 2016 S2 ^ Destination port | | | x2 +......o | . | . --+.............+------------------------------------+ | | . | | s | . | | e | . | (rectangle) | g | . | condition clause (c) | m | . | here the action a is applied | e | . | | n | . | x1=point=packet | t +.............|.............o | | | . | . | --+.............+------------------------------------+ | . . . . | . . . . | . . . . | . . . . | . . . . | . . . . +------------+------+-------------+----------------------+------> | |---- segment = condition in S1 -----| S1 + IP source Figure 2: Geometric representation of a rule r=(c,a) that matches x1 but does not match x2. To consider conditions in different selectors, the decision space is extended using the Cartesian product because distinct selectors refer to different fields, possibly from different protocol headers. Hence, given a policy-enabled element that allows the definition of conditions on the selectors S1, S2,..., Sm (where m is the number of Selectors available at the security control we want to model), its selection space is: S=S1 X S2 X ... X Sm To consider conditions in different selectors, the decision space is extended using the Cartesian product because distinct selectors refer to different fields, possibly from different protocol headers. Xia, et al. Expires December 1, 2017 [Page 15] Internet-Draft I2NSF Capability Interface IM November 2016 Accordingly, the condition clause c is a subset of S: c = s1 X s2 X ... X sm <= S1 X S2 X ... X Sm = S S represents the totality of the packets that are individually selectable by the security control to model when we use it to enforce a policy. Unfortunately, not all its subsets are valid condition clauses: only hyper-rectangles or union of hyper- rectangles (as they are Cartesian product of conditions) are valid. This is an intrinsic constraint of the policy languages as they specify rules by defining a condition for each selector. Languages that allow specification of conditions as relations over more fields are modeled by the geometric model as more complex geometric shapes determined by the equations. However, the algorithms to compute intersections are much more sophisticated than intersection hyper- rectangles. Figure 1 graphically represents a condition clause c in a two-dimensional selection space. In the geometric model, a rule is expressed as r=(c,a), where c <= S (the condition clause is a subset of the selection space), and the action a belongs to A. Rule condition clauses matche a packet (rules matche a packet), if all the conditions forming the clauses match the packet: in Figure 1, the rule with condition clause c matches the packet x1 but not x2. The rule set R is composed of n rules ri=(ci,ai). The decision criteria for the action to apply when a packet matches two or more rules is abstracted by means of the resolution strategy RS: Pow(R) -> A, where Pow(R) is the power set of rules in R. Formally, given a set of rules, the resolution strategy maps all the possible subsets of rules to an action a in A. When no rule matches a packet, the security controls may select the default action d in A, if they support one. Resolution strategies may use, besides intrinsic rule data (i.e., condition clause and action clause), also ``external data'' associated to each rule, such as priority, identity of the creator, and creation time. Formally, every rule ri is associated by means of the function e(.) to: e(ri) = (ri,f1(ri),f2(ri),...) where E={fj:R -> Xj} (j=1,2,...) is the set that includes all the functions that map rules to external attributes in Xj. However, E, e, and all the Xj are determined by the resolution strategy used. Xia, et al. Expires December 1, 2017 [Page 16] Internet-Draft I2NSF Capability Interface IM November 2016 A policy is thus a function p: S -> A that connects each point of the selection space to an action taken from the action set A according to the rules in R. By also assuming RS(0)=d (where 0 is the empty-set) and RS(ri)=ai, the policy p can be described with this formula p(x)=RS(match{R(x)}). Therefore, in the geometric model, a policy is completely defined by the 4-tuple (R,RS,E,d): the rule set R, the resolution function RS, the set E of mappings to the external attributes, and the default action d. Note that, the geometric model also supports ECA paradigms by simply modeling events like an additional selector. 5.3. Condition Types After having analyzed the literature and the existing security controls, we have categorized the types of selectors in exact-match, range-based, regex-based, and custom-match [Bas15][Lunt]. Exact-match selectors are (unstructured) sets: elements can only be checked for equality, as no order is defined on them. As an example, the protocol type field of the IP header is a unordered set of integer values associated to protocols. The assigned protocol numbers are maintained by the IANA (http://www.iana.org/assignments/protocol-numbers/protocol- numbers.xhtml). In this selector, it is only meaningful to specify conditions proto = tcp, udp (protocol type field equals to TCP or UDP) proto != tcp (protocol type field different from TCP) No other operators are allowed on exact-match selectors, for instance proto < 62 (invalid condition) is not a valid condition, even if protocol types map to integers. Range-based selectors are ordered sets where it is possible to naturally specify ranges as they can be easily mapped to integers. Xia, et al. Expires December 1, 2017 [Page 17] Internet-Draft I2NSF Capability Interface IM November 2016 As an example, the ports in the TCP protocol are well represented using a range-based selector (e.g., 1024-65535). As an example source_port = 80 source_port < 1024 source_port < 30000 && source_port >= 1024 are valid conditions. We include in the range-based selectors all the category of selectors that have been defined by Al-Shaer et al. as prefix match [Alshaer]. These selectors allow the specification of ranges of values by means of simple regular expressions. The typical case is the IP address selector (e.g., 10.10.1.*). There is no need to distinguish between prefix match and range-based selectors as 10.10.1.* easily maps to [10.10.1.0, 10.10.1.255]. Another category of selector types includes the regex-based selectors, where the matching is performed by using regular expressions. This selector type is frequent at the application layer, where data are often represented as strings of text. The regex-based selector type also includes as sub-case the string-based selectors, where matching is evaluated using string matching algorithms (SMA) [Cormen] Indeed, for our purposes, string matching can be mapped to regular expressions, even if in practice SMA are much faster. For instance, Squid (http://www.squid-cache.org/), a popular Web caching proxy that offers various access control capabilities, allows the definition of conditions on URLs that can be evaluated with SMA (e.g., dstdomain) or regex matching (e.g., dstdom_regex). As an example, URL = *.website.* matches all the URLs that contain a domain, subdomain named website and the ones whose path contain the string .website. MIME_type = video/* matches all the MIME objects whose type is video. Finally, we introduce the idea of custom check selectors. For instance the malware analysis looks for specific patterns and returns a Boolean value is an example of custom check selector, if Xia, et al. Expires December 1, 2017 [Page 18] Internet-Draft I2NSF Capability Interface IM November 2016 the logic of checking is not seen (nor really interesting) from the outside. In order to be properly used by high-level policy based processed (like reasoning systems, refinement systems) these custom check selector need at least to be described as black-boxes, that is, the list of fields that they process (inputs) in order to return the Boolean verdict (output). More examples of custom check selectors will be presented in the next versions of the draft. Some example is already present in Section 6. 5.4. Model of Capabilities for Policy Specification and Enforcement Purposes Our model of capabilities is based on actions and traffic classification features. Indeed, the need for enforcing one of the actions that a security control can apply to packets/flows is the main reason to use a security control. Moreover, security controls have classification features that permit the identification of the target packets/flows of the actions enforced, i.e., the selectors presented in Section 5.2. A security manager decides for a specific security control depending on the actions and classification features. If the security control can enforce the needed actions and has the classification features needed to identify the packets flows required by a policy, then the security control is capable of enforcing the policy. Our refinement model needs to know NSFs capabilities to perform its operations. However, security controls may have specific characteristics that automatic processes or administrators need to know when they have to generate configurations, like the available resolution strategies and the possibility to set default actions. We have ignored, to simplify this presentation, options to generate configurations that may have better performance, like the use of chains or ad hoc structures [Taylor]. Adding support to these forms of optimization is certainly feasible with a limited effort but it was outside the scope of this paper, that is, to show that adding security awareness to NFV management and orchestration features is possible. It is one of the task for future work. Capabilities can be used for two purposes: describing generic security functions, and describing specific products. With the term generic security function (GNSF) we denote known classes of security functions. The idea is to have generic components whose behavior is as well understood as for the network components (i.e., a switch is Xia, et al. Expires December 1, 2017 [Page 19] Internet-Draft I2NSF Capability Interface IM November 2016 a switch and we know to use it even if it may have some vendor- specific functions). These generic functions can be substituted by any product that owns the required capability at instantiation time. We have analyzed several classes of NSFs to prove the validity of our approach. We found the common features and defined a set of generic NSFs, including packet filter, URL filter, HTTP filter, VPN gateway, anti-virus, anti-malware, content filter, monitoring, anonymity proxy that will be described in a data model TBD. Moreover, we have also categorized common extensions of the generic NSFs, packet filters that may decide based on time information. Moreover, some other packet filters add stateful features at ISO/OSI layer 4. The next section will introduce our algebra to compose capabilities, defined to associate NSFs to capabilities and to check whether a NSF has the capabilities needed to enforce policies. 5.5. Algebra of capabilities Our capabilities are defined by a 4-tuple, that is every NSF N will be associated to a 4-tuple (Ac; Cc; RSc; Dc) such that: (Ac; Cc; RSc; Dc) <= (XAC; XCC; XRSC; XDC)= K where o XAC is the set of all the supported actions, that is, the set of all the actions supported by at least one of the existing NSFs; o Ac <= XAC is a set of actions that determine the actions actually available at the NSF N; o XCC is set of all the supported conditions types, that is, the set of all the conditions that can be to specify rules in at least one of the existing NSFs; o Cc <= XCC is the sef of conditions actually available at the NSF N; o XRSC is the set of all the existing resolutions strategies, o RSc <= XCC is the set of resolution strategies that can be used to specify solve conflicts of multiple matching rules at the NSF N; Xia, et al. Expires December 1, 2017 [Page 20] Internet-Draft I2NSF Capability Interface IM November 2016 o XDC={F} U XAC, is the set of all the existing actions plus a dummy symbol F, a placeholder value that can be used to indicate that the default action can be freely selected by the policy editor; and o Dc <= XDC, Dc may be {F}, to indicate that the default action can be freely selected by the policy editor, thus it can vary in every policy, or an explicit action {a<=XAC} to indicate that the default action is fixed and the policy editor will not have the possibility to choice it. Given cap1=(Ac1,Cc1,RSc1,def1) and cap2=(Ac2,Cc2,RSc2,def2), we define two operations that are useful to manipulate capabilities: o capability addition: cap1+cap2 = (Ac1 U Ac2, Cc1 U Cc2, RSc1,def1) o capability subtraction: cap_1-cap_2 = (Ac1\Ac2,Cc1\Cc2,RSc1,def1) Note that addition and subtraction do not alter the resolution strategy and the default action method, as our main intent was to model addition of modules. As an example, a generic packet filter that supports the first matching rule resolution strategies, allows the explicit specification of default actions and also supports time-based conditions. The description of its capabilities is the following: Apf = {Allow, Deny} Cpf= {IPsrc,IPdst,Psrc,Pdst,protType} Ctime = {timestart,days,datestart,datestop} cap_pf=(Apf; Cpf; {FMR}; F) cap_pf+time=cap_pf + Ctime By abuse of notation, we have written cap_pf+time=cap_pf + Ctime to shorten the more correct expression cap_pf+time=cap_pf +(;Ctime;;). 5.6. Examples of NSFs Categories As an example of the application of the general capability model, we present in the next sections three examples of common categories: network security, content security, and attack mitigation. Xia, et al. Expires December 1, 2017 [Page 21] Internet-Draft I2NSF Capability Interface IM November 2016 5.6.1. Network Security Network security is a category that describes the inspecting and processing of network traffic based on pre-defined security policies. The inspecting portion may be thought of as a packet-processing engine that inspects packets traversing networks, either directly or in context to flows with which the packet is associated. From the perspective of packet-processing, implementations differ in the depths of packet headers and/or payloads they can inspect, the various flow and context states they can maintain, and the actions that can be applied to the packets or flows. 5.6.2. Content Security Content security is another category of security capabilities applied to application layer. Through detecting the contents carried over the traffic in application layer, these capabilities can realize various security functions, such as defending against intrusion, inspecting virus, filtering malicious URL or junk email, blocking illegal web access or malicious data retrieval. Generally, each type of threat in the application layer has a set of unique characteristics, and requires handling with a set of specific methods. Thus, these NSFs will be characterized by their own security capabilities. 5.6.3. Attack Mitigation This category of security capabilities is used to detect and mitigate various types of network attacks. Today's common network attacks can be classified into the following sets, and each set further consists of a number of specific attacks: o DDoS attacks: ?Network layer DDoS attacks: Examples include SYN flood, UDP flood, ICMP flood, IP fragment flood, IPv6 Routing header attack, and IPv6 duplicate address detection attack; ?Application layer DDoS attacks: Examples include http flood, https flood, cache-bypass http floods, WordPress XML RPC floods, ssl DDoS. o Single-packet attack: ?Scanning and sniffing attacks: IP sweep, port scanning, etc Xia, et al. Expires December 1, 2017 [Page 22] Internet-Draft I2NSF Capability Interface IM November 2016 ?malformed packet attacks: Ping of Death, Teardrop, etc ?special packet attacks: Oversized ICMP, Tracert, IP timestamp option packets, etc Each type of network attack has its own network behaviors and packet/flow characteristics. Therefore, each type of attack needs a special security function, which is advertised as a capability, for detection and mitigation. Overall, the implementation and management of this category of security capabilities of attack mitigation control is very similar to content security control. A standard interface, through which the security controller can choose and customize the given security capabilities according to specific requirements, is essential. 6. Information Sub-Model for Network Security Capabilities The purpose of the Capability Framework Information Sub-Model is to define the concept of a Capability from an external metadata model, and enable Capabilities to be aggregated to appropriate objects. In the following sections we will present the cases of Network Security, Content Security, and Attack Mitigation sub-models. 6.1. Information Sub-Model for Network Security The purpose of the Network Security Information Sub-Model is to define how network traffic is defined and determine if one or more network security features need to be applied to the traffic or not. Its basic structure is shown in the following figure: Xia, et al. Expires December 1, 2017 [Page 23] Internet-Draft I2NSF Capability Interface IM November 2016 +---------------------+ +---------------+ | | | |/ \ \| A Common Superclass | | ECAPolicyRule + A -------------+ for ECA Objects | | |\ / /| | +-------+-------+ +---------+-----------+ / \ / \ | | | | (subclasses to define Network (subclasses of Event, Security ECA Policy Rules, Condition, and Action Objects such as InspectTraffic) for Network Security Control) Figure 3. Network Security Information Sub-Model Overview In the above figure, the ECAPolicyRule, along with the Event, Condition, and Action Objects, are defined in the external ECA Info Model. The Network Security Sub-Model extends both to define security-specific ECA policy rules, as well as Events, Conditions, and Actions. An I2NSF Policy Rule is a special type of Policy Rule that is in event-condition-action (ECA) form. It consists of the Policy Rule, components of a Policy Rule (e.g., events, conditions, and actions), and optionally, metadata. It can be applied to both uni-directional and bi-directional traffic across the NSF. Each rule is triggered by one or more events. If the set of events evaluates to true, then a set of conditions are evaluated and, if true, enable a set of actions to be executed. An example of an I2NSF Policy Rule is, in pseudo-code: IF is TRUE IF is TRUE THEN execute END-IF END-IF In the above example, the Event, Condition, and Action portions of a Policy Rule are all **Boolean Clauses**. 6.1.1. Network Security Policy Rule Extensions Figure 3 shows an example of more detailed design of the ECA Policy Rule subclasses that are contained in the Network Security Information Sub-Model, which just illustrates how more specific Network Security Policies are inherited and extended from the Xia, et al. Expires December 1, 2017 [Page 24] Internet-Draft I2NSF Capability Interface IM November 2016 SecurityECAPolicyRule class. Any new kinds of specific Network Security Policy can be created by following the same pattern of class design as below. +---------------+ | External | | ECAPolicyRule | +-------+-------+ / \ | | +------------+----------+ | SecurityECAPolicyRule | +------------+----------+ | | +----+-----+--------+-----+----+---------+---------+--- ... | | | | | | | | | | | | +------+-------+ | +-----+-------+ | +------+------+ | |Authentication| | | Accounting | | |ApplyProfile | | |ECAPolicyRule | | |ECAPolicyRule| | |ECAPolicyRule| | +--------------+ | +-------------+ | +-------------+ | | | | +------+------+ +------+------+ +--------------+ |Authorization| | Traffic | |ApplySignature| |ECAPolicyRule| | Inspection | |ECAPolicyRule | +-------------+ |ECAPolicyRule| +--------------+ +-------------+ Figure 4. Network Security Info Sub-Model ECAPolicyRule Extensions The SecurityECAPolicyRule is the top of the I2NSF ECA Policy Rule hierarchy. It inherits from the (external) generic ECA Policy Rule to define Security ECA Policy Rules. The SecurityECAPolicyRule contains all of the attributes, methods, and relationships defined in its superclass, and adds additional concepts that are required for Network Security (these will be defined in the next version of this draft). The six SecurityECAPolicyRule subclasses extend the SecurityECAPolicyRule class to represent six different types of Network Security ECA Policy Rules. It is assumed that the (external) generic ECAPolicyRule class defines basic information in the form of attributes, such as an unique object ID, as well as a description and other basic, but necessary, information. Xia, et al. Expires December 1, 2017 [Page 25] Internet-Draft I2NSF Capability Interface IM November 2016 It is assumed that the (external) generic ECA Policy Rule is abstract; the SecurityECAPolicyRule is also abstract. This enables data model optimizations to be made while making this information model detailed but flexible and extensible. The SecurityECAPolicyRule defines network security policy as a container that aggregates Event, Condition, and Action objects, which are described in Section 6.1.3, 6.1.4, and 6.1.5, respectively. Events, Conditions, and Actions can be generic or security-specific. Section 4.6 defines the concept of default security Actions. Brief class descriptions of these six ECA Policy Rules are provided in the Appendix A. 6.1.2. Network Security Policy Rule Operation Network security policy consists of a number of more granular ECA Policy Rules formed from the information model described above. In simpler cases, where the Event and Condition clauses remain unchanged, then network security control may be performed by calling additional network security actions. Network security policy examines and performs basic processing of the traffic as follows: 1. For a given SecurityECAPolicyRule (which can be generic or specific to security, such as those in Figure 3), the NSF evaluates the Event clause. It may use security Event objects to do all or part of this evaluation, which are defined in section 4.3.3. If the Event clause evaluates to TRUE, then the Condition clause of this SecurityECAPolicyRule is evaluated; otherwise, execution of this SecurityECAPolicyRule is stopped, and the next SecurityECAPolicyRule (if one exists) is evaluated; 2. The Condition clause is then evaluated. It may use security Condition objects to do all or part of this evaluation, which are defined in section 4.3.4. If the Condition clause evaluates to TRUE, then the set of Actions in this SecurityECAPolicyRule MUST be executed. This is defined as "matching" the SecurityECAPolicyRule; otherwise, execution of this SecurityECAPolicyRule is stopped, and the next SecurityECAPolicyRule (if one exists) is evaluated; 3. If none of the SecurityECAPolicyRules are matched, then the NSF denies the traffic by default; Xia, et al. Expires December 1, 2017 [Page 26] Internet-Draft I2NSF Capability Interface IM November 2016 4. If the traffic matches a rule, the NSF performs the defined Actions on the traffic. It may use security Action objects to do all or part of this execution, which are defined in section 4.3.5. If the action is "deny", the NSF blocks the traffic. If the basic action is permit or mirror, the NSF firstly performs that function, and then checks whether certain other security capabilities are referenced in the rule. If yes, go to step 5. If no, the traffic is permitted; 5. If other security capabilities (e.g., Anti-virus or IPS) are referenced in the SecurityECAPolicyRule, and the Action defined in the rule is permit or mirror, the NSF performs the referenced security capabilities. Metadata attached to the SecurityECAPolicyRule MAY be used to control how the SecurityECAPolicyRule is evaluated. This is called a Policy Rule Evaluation Strategy. For example, one strategy is to match and execute the first SecurityECAPolicyRule, and then exit without executing any other SecurityECAPolicyRules (even if they matched). In contrast, a second strategy is to first collect all SecurityECAPolicyRules that matched, and then execute them according to a pre-defined order (e.g., the priority of each SecurityECAPolicyRule). One policy or rule can be applied multiple times to different managed objects (e.g., links, devices, networks, VPNS). This not only guarantees consistent policy enforcement, but also decreases the configuration workload. 6.1.3. Network Security Event Sub-Model Figure 10 shows a more detailed design of the Event subclasses that are contained in the Network Security Information Sub-Model. Xia, et al. Expires December 1, 2017 [Page 27] Internet-Draft I2NSF Capability Interface IM November 2016 +---------------------+ +---------------+ 1..n 1..n| | | |/ \ \| A Common Superclass | | ECAPolicyRule + A ---------+ for ECA Objects | | |\ / /| | +---------------+ +-----------+---------+ / \ | | +--------------+--------+------+ | | | | | | +-----+----+ +------+------+ +-----+-----+ | An Event | | A Condition | | An Action | | Class | | Class | | Class | +-----+----+ +-------------+ +-----------+ / \ | | | +-----------+---+----------------+--------------+-- ... | | | | | | | | +-------+----+ +--------+-----+ +--------+-----+ +------+-----+ |UserSecurity| | Device | | System | |TimeSecurity| | Event | | SecurityEvent| | SecurityEvent| | Event | +------------+ +--------------+ +--------------+ +------------+ Figure 5. Network Security Info Sub-Model Event Class Extensions The four Event classes shown in Figure 5 extend the (external) generic Event class to represent Events that are of interest to Network Security. It is assumed that the (external) generic Event class defines basic Event information in the form of attributes, such as a unique event ID, a description, as well as the date and time that the event occurred. The following are assumptions that define the functionality of the generic Event class. If desired, these could be defined as attributes in a SecurityEvent class (which would be a subclass of the generic Event class, and a superclass of the four Event classes shown in Figure 10). However, this makes it harder to use any generic Event model with the I2NSF events. Assumptions are: Xia, et al. Expires December 1, 2017 [Page 28] Internet-Draft I2NSF Capability Interface IM November 2016 - The generic Event class is abstract - All four SecurityEvent subclasses are concrete - The generic Event class uses the composite pattern, so individual Events as well as hierarchies of Events are available (the four subclasses in Figure 10 would be subclasses of the Atomic Event) - The generic Event class has a mechanism to uniquely identify the source of the Event - The generic Event class has a mechanism to separate header information from its payload - The generic Event class has a mechanism to attach zero or more metadata objects to it Brief class descriptions are provided in the following sub-sections. 6.1.3.1. UserSecurityEvent Class Description The purpose of this class is to represent Events that are initiated by a user, such as logon and logoff Events. Information in this Event may be used as part of a test to determine if the Condition clause in this ECA Policy Rule should be evaluated or not. Examples include user identification data and the type of connection used by the user. The UserSecurityEvent class defines the following attributes: 6.1.3.1.1. The usrSecEventContent Attribute This is a mandatory string that contains the content of the UserSecurityEvent. The format of the content is specified in the usrSecEventFormat class attribute, and the type of Event is defined in the usrSecEventType class attribute. An example of the usrSecEventContent attribute is the string "hrAdmin", with the usrSecEventFormat set to 1 (GUID) and the usrSecEventType attribute set to 5 (new logon). 6.1.3.1.2. The usrSecEventFormat Attribute This is a mandatory non-negative enumerated integer, which is used to specify the data type of the usrSecEventContent attribute. The content is specified in the usrSecEventContent class attribute, and the type of Event is defined in the usrSecEventType class attribute. An example of the usrSecEventContent attribute is the string "hrAdmin", with the usrSecEventFormat attribute set to 1 (GUID) and the usrSecEventType attribute set to 5 (new logon). Values include: Xia, et al. Expires December 1, 2017 [Page 29] Internet-Draft I2NSF Capability Interface IM November 2016 0: unknown 1: GUID (Generic Unique IDentifier) 2: UUID (Universal Unique IDentifier) 3: URI (Uniform Resource Identifier) 4: FQDN (Fully Qualified Domain Name) 5: FQPN (Fully Qualified Path Name) 6.1.3.1.3. The usrSecEventType Attribute This is a mandatory non-negative enumerated integer, which is used to specify the type of Event that involves this user. The content and format are specified in the usrSecEventContent and usrSecEventFormat class attributes, respectively. An example of the usrSecEventContent attribute is the string "hrAdmin", with the usrSecEventFormat attribute set to 1 (GUID) and the usrSecEventType attribute set to 5 (new logon). Values include: 0: unknown 1: new user created 2: new user group created 3: user deleted 4: user group deleted 5: user logon 6: user logoff 7: user access request 8: user access granted 9: user access violation 6.1.3.2. DeviceSecurityEvent Class Description The purpose of a DeviceSecurityEvent is to represent Events that provide information from the Device that are important to I2NSF Security. Information in this Event may be used as part of a test to determine if the Condition clause in this ECA Policy Rule should be evaluated or not. Examples include alarms and various device statistics (e.g., a type of threshold that was exceeded), which may signal the need for further action. The DeviceSecurityEvent class defines the following attributes: 6.1.3.2.1. The devSecEventContent Attribute This is a mandatory string that contains the content of the DeviceSecurityEvent. The format of the content is specified in the devSecEventFormat class attribute, and the type of Event is defined Xia, et al. Expires December 1, 2017 [Page 30] Internet-Draft I2NSF Capability Interface IM November 2016 in the devSecEventType class attribute. An example of the devSecEventContent attribute is "alarm", with the devSecEventFormat attribute set to 1 (GUID), the devSecEventType attribute set to 5 (new logon). 6.1.3.2.2. The devSecEventFormat Attribute This is a mandatory non-negative enumerated integer, which is used to specify the data type of the devSecEventContent attribute. Values include: 0: unknown 1: GUID (Generic Unique IDentifier) 2: UUID (Universal Unique IDentifier) 3: URI (Uniform Resource Identifier) 4: FQDN (Fully Qualified Domain Name) 5: FQPN (Fully Qualified Path Name) 6.1.3.2.3. The devSecEventType Attribute This is a mandatory non-negative enumerated integer, which is used to specify the type of Event that was generated by this device. Values include: 0: unknown 1: communications alarm 2: quality of service alarm 3: processing error alarm 4: equipment error alarm 5: environmental error alarm Values 1-5 are defined in X.733. Additional types of errors may also be defined. 6.1.3.2.4. The devSecEventTypeInfo[0..n] Attribute This is an optional array of strings, which is used to provide additional information describing the specifics of the Event generated by this Device. For example, this attribute could contain probable cause information in the first array, trend information in the second array, proposed repair actions in the third array, and additional information in the fourth array. Xia, et al. Expires December 1, 2017 [Page 31] Internet-Draft I2NSF Capability Interface IM November 2016 6.1.3.2.5. The devSecEventTypeSeverity Attribute This is a mandatory non-negative enumerated integer, which is used to specify the perceived severity of the Event generated by this Device. Values include: 0: unknown 1: cleared 2: indeterminate 3: critical 4: major 5: minor 6: warning Values 1-6 are from X.733. 6.1.3.3. SystemSecurityEvent Class Description The purpose of a SystemSecurityEvent is to represent Events that are detected by the management system, instead of Events that are generated by a user or a device. Information in this Event may be used as part of a test to determine if the Condition clause in this ECA Policy Rule should be evaluated or not. Examples include an event issued by an analytics system that warns against a particular pattern of unknown user accesses, or an Event issued by a management system that represents a set of correlated and/or filtered Events. The SystemSecurityEvent class defines the following attributes: 6.1.3.3.1. The sysSecEventContent Attribute This is a mandatory string that contains the content of the SystemSecurityEvent. The format of the content is specified in the sysSecEventFormat class attribute, and the type of Event is defined in the sysSecEventType class attribute. An example of the sysSecEventContent attribute is the string "sysadmin3", with the sysSecEventFormat attribute set to 1 (GUID), and the sysSecEventType attribute set to 2 (audit log cleared). Xia, et al. Expires December 1, 2017 [Page 32] Internet-Draft I2NSF Capability Interface IM November 2016 6.1.3.3.2. The sysSecEventFormat Attribute This is a mandatory non-negative enumerated integer, which is used to specify the data type of the sysSecEventContent attribute. Values include: 0: unknown 1: GUID (Generic Unique IDentifier) 2: UUID (Universal Unique IDentifier) 3: URI (Uniform Resource Identifier) 4: FQDN (Fully Qualified Domain Name) 5: FQPN (Fully Qualified Path Name) 6.1.3.3.3. The sysSecEventType Attribute This is a mandatory non-negative enumerated integer, which is used to specify the type of Event that involves this device. Values include: 0: unknown 1: audit log written to 2: audit log cleared 3: policy created 4: policy edited 5: policy deleted 6: policy executed 6.1.3.4. TimeSecurityEvent Class Description The purpose of a TimeSecurityEvent is to represent Events that are temporal in nature (e.g., the start or end of a period of time). Time events signify an individual occurrence, or a time period, in which a significant event happened. Information in this Event may be used as part of a test to determine if the Condition clause in this ECA Policy Rule should be evaluated or not. Examples include issuing an Event at a specific time to indicate that a particular resource should not be accessed, or that different authentication and authorization mechanisms should now be used (e.g., because it is now past regular business hours). The TimeSecurityEvent class defines the following attributes: Xia, et al. Expires December 1, 2017 [Page 33] Internet-Draft I2NSF Capability Interface IM November 2016 6.1.3.4.1. The timeSecEventPeriodBegin Attribute This is a mandatory DateTime attribute, and represents the beginning of a time period. It has a value that has a date and/or a time component (as in the Java or Python libraries). 6.1.3.4.2. The timeSecEventPeriodEnd Attribute This is a mandatory DateTime attribute, and represents the end of a time period. It has a value that has a date and/or a time component (as in the Java or Python libraries). If this is a single Event occurence, and not a time period when the Event can occur, then the timeSecEventPeriodEnd attribute may be ignored. 6.1.3.4.3. The timeSecEventTimeZone Attribute This is a mandatory string attribute, and defines the time zone that this Event occurred in using the format specified in ISO8601. 6.1.4. Network Security Condition Sub-Model Figure 6 shows a more detailed design of the Condition subclasses that are contained in the Network Security Information Sub-Model. Xia, et al. Expires December 1, 2017 [Page 34] Internet-Draft I2NSF Capability Interface IM November 2016 +---------------------+ +---------------+ 1..n 1..n | | | |/ \ \| A Common Superclass | | ECAPolicyRule+ A ----------+ for ECA Objects | | |\ / /| | +-------+-------+ +-----------+---------+ / \ | | +--------------+----------+----+ | | | | | | +-----+----+ +------+------+ +-----+-----+ | An Event | | A Condition | | An Action | | Class | | Class | | Class | +----------+ +------+------+ +-----------+ / \ | | +--------+----------+------+---+---------+--------+--- ... | | | | | | | | | | | | +-----+-----+ | +-------+-------+ | +------+-----+ | | Packet | | | PacketPayload | | | Target | | | Security | | | Security | | | Security | | | Condition | | | Condition | | | Condition | | +-----------+ | +---------------+ | +------------+ | | | | +------+-------+ +----------+------+ +--------+-------+ | UserSecurity | | SecurityContext | | GenericContext | | Condition | | Condition | | Condition | +--------------+ +-----------------+ +----------------+ Figure 6. Network Security Info Sub-Model Condition Class Extensions The six Condition classes shown in Figure 6 extend the (external) generic Condition class to represent Conditions that are of interest to Network Security. It is assumed that the (external) generic Condition class is abstract, so that data model optimizations may be defined. It is also assumed that the generic Condition class defines basic Condition information in the form of attributes, such as a unique object ID, a description, as well as a mechanism to attach zero or more metadata objects to it. While this could be defined as attributes in a SecurityCondition class (which would be a subclass Xia, et al. Expires December 1, 2017 [Page 35] Internet-Draft I2NSF Capability Interface IM November 2016 of the generic Condition class, and a superclass of the six Condition classes shown in Figure 11), this makes it harder to use any generic Condition model with the I2NSF conditions. Brief class descriptions are provided in the following sub-sections. 6.1.4.1. PacketSecurityCondition The purpose of this Class is to represent packet header information that can be used as part of a test to determine if the set of Policy Actions in this ECA Policy Rule should be executed or not. This class is abstract, and serves as the superclass of more detailed conditions that involve different types of packet formats. Its subclasses are shown in Figure 7, and are defined in the following sections. +-------------------------+ | PacketSecurityCondition | +------------+------------+ / \ | | +---------+----------+---+-----+----------+ | | | | | | | | | | +--------+-------+ | +--------+-------+ | +--------+-------+ | PacketSecurity | | | PacketSecurity | | | PacketSecurity | | MACCondition | | | IPv4Condition | | | IPv6Condition | +----------------+ | +----------------+ | +----------------+ | | +--------+-------+ +--------+-------+ | TCPCondition | | UDPCondition | +----------------+ +----------------+ Figure 7. Network Security Info Sub-Model PacketSecurityCondition Class Extensions 6.1.4.1.1. PacketSecurityMACCondition The purpose of this Class is to represent packet MAC packet header information that can be used as part of a test to determine if the set of Policy Actions in this ECA Policy Rule should be executed or not. This class is concrete, and defines the following attributes: Xia, et al. Expires December 1, 2017 [Page 36] Internet-Draft I2NSF Capability Interface IM November 2016 6.1.4.1.1.1. The pktSecCondMACDest Attribute This is a mandatory string attribute, and defines the MAC destination address (6 octets long). 6.1.4.1.1.2. The pktSecCondMACSrc Attribute This is a mandatory string attribute, and defines the MAC source address (6 octets long). 6.1.4.1.1.3. The pktSecCondMAC8021Q Attribute This is an optional string attribute, and defines the 802.1Q tag value (2 octets long). This defines VLAN membership and 802.1p priority values. 6.1.4.1.1.4. The pktSecCondMACEtherType Attribute This is a mandatory string attribute, and defines the EtherType field (2 octets long). Values up to and including 1500 indicate the size of the payload in octets; values of 1536 and above define which protocol is encapsulated in the payload of the frame. 6.1.4.1.1.5. The pktSecCondMACTCI Attribute This is an optional string attribute, and defines the Tag Control Information. This consists of a 3 bit user priority field, a drop eligible indicator (1 bit), and a VLAN identifier (12 bits). 6.1.4.1.2. PacketSecurityIPv4Condition The purpose of this Class is to represent packet IPv4 packet header information that can be used as part of a test to determine if the set of Policy Actions in this ECA Policy Rule should be executed or not. This class is concrete, and defines the following attributes: 6.1.4.1.2.1. The pktSecCondIPv4SrcAddr Attribute This is a mandatory string attribute, and defines the IPv4 Source Address (32 bits). 6.1.4.1.2.2. The pktSecCondIPv4DestAddr Attribute This is a mandatory string attribute, and defines the IPv4 Destination Address (32 bits). Xia, et al. Expires December 1, 2017 [Page 37] Internet-Draft I2NSF Capability Interface IM November 2016 6.1.4.1.2.3. The pktSecCondIPv4ProtocolUsed Attribute This is a mandatory string attribute, and defines the protocol used in the data portion of the IP datagram (8 bits). 6.1.4.1.2.4. The pktSecCondIPv4DSCP Attribute This is a mandatory string attribute, and defines the Differentiated Services Code Point field (6 bits). 6.1.4.1.2.5. The pktSecCondIPv4ECN Attribute This is an optional string attribute, and defines the Explicit Congestion Notification field (2 bits). 6.1.4.1.2.6. The pktSecCondIPv4TotalLength Attribute This is a mandatory string attribute, and defines the total length of the packet (including header and data) in bytes (16 bits). 6.1.4.1.2.7. The pktSecCondIPv4TTL Attribute This is a mandatory string attribute, and defines the Time To Live in seconds (8 bits). 6.1.4.1.3. PacketSecurityIPv6Condition The purpose of this Class is to represent packet IPv6 packet header information that can be used as part of a test to determine if the set of Policy Actions in this ECA Policy Rule should be executed or not. This class is concrete, and defines the following attributes: 6.1.4.1.3.1. The pktSecCondIPv6SrcAddr Attribute This is a mandatory string attribute, and defines the IPv6 Source Address (128 bits). 6.1.4.1.3.2. The pktSecCondIPv6DestAddr Attribute This is a mandatory string attribute, and defines the IPv6 Destination Address (128 bits). 6.1.4.1.3.3. The pktSecCondIPv6DSCP Attribute This is a mandatory string attribute, and defines the Differentiated Services Code Point field (6 bits). It consists of the six most significant bits of the Traffic Class field in the IPv6 header. Xia, et al. Expires December 1, 2017 [Page 38] Internet-Draft I2NSF Capability Interface IM November 2016 6.1.4.1.3.4. The pktSecCondIPv6ECN Attribute This is a mandatory string attribute, and defines the Explicit Congestion Notification field (2 bits). It consists of the two least significant bits of the Traffic Class field in the IPv6 header. 6.1.4.1.3.5. The pktSecCondIPv6FlowLabel Attribute This is a mandatory string attribute, and defines an IPv6 flow label. This, in combination with the Source and Destination Address fields, enables efficient IPv6 flow classification by using only the IPv6 main header fields (20 bits). 6.1.4.1.3.6. The pktSecCondIPv6PayloadLength Attribute This is a mandatory string attribute, and defines the total length of the packet (including the fixed and any extension headers, and data) in bytes (16 bits). 6.1.4.1.3.7. The pktSecCondIPv6NextHeader Attribute This is a mandatory string attribute, and defines the type of the next header (e.g., which extension header to use) (8 bits). 6.1.4.1.3.8. The pktSecCondIPv6HopLimit Attribute This is a mandatory string attribute, and defines the maximum number of hops that this packet can traverse (8 bits). 6.1.4.1.4. PacketSecurityTCPCondition The purpose of this Class is to represent packet TCP packet header information that can be used as part of a test to determine if the set of Policy Actions in this ECA Policy Rule should be executed or not. This class is concrete, and defines the following attributes: 6.1.4.1.4.1. The pktSecCondTPCSrcPort Attribute This is a mandatory string attribute, and defines the Source Port (16 bits). 6.1.4.1.4.2. The pktSecCondTPCDestPort Attribute This is a mandatory string attribute, and defines the Destination Port (16 bits). Xia, et al. Expires December 1, 2017 [Page 39] Internet-Draft I2NSF Capability Interface IM November 2016 6.1.4.1.4.3. The pktSecCondTPCSeqNum Attribute This is a mandatory string attribute, and defines the sequence number (32 bits). 6.1.4.1.4.4. The pktSecCondTPCFlags Attribute This is a mandatory string attribute, and defines the nine Control bit flags (9 bits). 6.1.4.1.5. PacketSecurityUDPCondition The purpose of this Class is to represent packet UDP packet header information that can be used as part of a test to determine if the set of Policy Actions in this ECA Policy Rule should be executed or not. This class is concrete, and defines the following attributes: 6.1.4.1.5.1. The pktSecCondUDPSrcPort Attribute This is a mandatory string attribute, and defines the UDP Source Port (16 bits). 6.1.4.1.5.2. The pktSecCondUDPDestPort Attribute This is a mandatory string attribute, and defines the UDP Destination Port (16 bits). 6.1.4.1.5.3. The pktSecCondUDPLength Attribute This is a mandatory string attribute, and defines the length in bytes of the UDP header and data (16 bits). 6.1.4.2. PacketPayloadSecurityCondition The purpose of this Class is to represent packet payload data that can be used as part of a test to determine if the set of Policy Actions in this ECA Policy Rule should be executed or not. Examples include a specific set of bytes in the packet payload. 6.1.4.3. TargetSecurityCondition The purpose of this Class is to represent information about different targets of this policy (i.e., entities to which this policy rule should be applied), which can be used as part of a test to determine if the set of Policy Actions in this ECA Policy Rule Xia, et al. Expires December 1, 2017 [Page 40] Internet-Draft I2NSF Capability Interface IM November 2016 should be executed or not. Examples include whether the targeted entities are playing the same role, or whether each device is administered by the same set of users, groups, or roles. This Class has several important subclasses, including: a. ServiceSecurityContextCondition is the superclass for all information that can be used in an ECA Policy Rule that specifies data about the type of service to be analyzed (e.g., the protocol type and port number) b. ApplicationSecurityContextCondition is the superclass for all information that can be used in a ECA Policy Rule that specifies data that identifies a particular application (including metadata, such as risk level) c. DeviceSecurityContextCondition is the superclass for all information that can be used in a ECA Policy Rule that specifies data about a device type and/or device OS that is being used 6.1.4.4. UserSecurityCondition The purpose of this Class is to represent data about the user or group referenced in this ECA Policy Rule that can be used as part of a test to determine if the set of Policy Actions in this ECA Policy Rule should be evaluated or not. Examples include the user or group id used, the type of connection used, whether a given user or group is playing a particular role, or whether a given user or group has failed to login a particular number of times. 6.1.4.5. SecurityContextCondition The purpose of this Class is to represent security conditions that are part of a specific context, which can be used as part of a test to determine if the set of Policy Actions in this ECA Policy Rule should be evaluated or not. Examples include testing to determine if a particular pattern of security-related data have occurred, or if the current session state matches the expected session state. 6.1.4.6. GenericContextSecurityCondition The purpose of this Class is to represent generic contextual information in which this ECA Policy Rule is being executed, which can be used as part of a test to determine if the set of Policy Actions in this ECA Policy Rule should be evaluated or not. Examples include geographic location and temporal information. Xia, et al. Expires December 1, 2017 [Page 41] Internet-Draft I2NSF Capability Interface IM November 2016 6.1.5. Network Security Action Sub-Model Figure 7 shows a more detailed design of the Action subclasses that are contained in the Network Security Information Sub-Model. +---------------------+ +---------------+ 1..n 1..n | | | |/ \ \| A Common Superclass | | ECAPolicyRule+ A ----------+ for ECA Objects | | |\ / /| | +---------------+ +-----------+---------+ / \ | | +--------------+--------+------+ | | | | | | +-----+----+ +------+------+ +-----+-----+ | An Event | | A Condition | | An Action | | Class | | Class | | Class | +----------+ +-------------+ +-----+-----+ / \ | | +------------+-------------+------------------+-------- ... | | | | | | | | +----+----+ +----+---+ +------+-------+ +-------+--------+ | Ingress | | Egress | | ApplyProfile | | ApplySignature | | Action | | Action | | Action | | Action | +---------+ +--------+ +--------------+ +----------------+ Figure 7. Network Security Info Sub-Model Action Extensions The four Action classes shown in Figure 7 extend the (external) generic Action class to represent Actions that perform a Network Security Control function. Brief class descriptions are provided in the following sub-sections. Xia, et al. Expires December 1, 2017 [Page 42] Internet-Draft I2NSF Capability Interface IM November 2016 6.1.5.1. IngressAction The purpose of this Class is to represent actions performed on packets that enter an NSF. Examples include pass, drop, mirror traffic. 6.1.5.2. EgressAction The purpose of this Class is to represent actions performed on packets that exit an NSF. Examples include pass, drop, mirror traffic, signal, encapsulate. 6.1.5.3. ApplyProfileAction The purpose of this Class is to represent applying a profile to packets to perform content security and/or attack mitigation control. 6.1.5.4. ApplySignatureAction The purpose of this Class is to represent applying a signature file to packets to perform content security and/or attack mitigation control. 6.2. Information Model for Content Security Control The block for content security control is composed of a number of security capabilities, while each one aims for protecting against a specific type of threat in the application layer. Following figure shows a basic structure of the information model: Xia, et al. Expires December 1, 2017 [Page 43] Internet-Draft I2NSF Capability Interface IM November 2016 +----------------------------------+ | | | | | Anti-Virus | | Intrusion Prevention | | URL Filtering | | File Blocking | | Data Filtering | | Application Behavior Control | | Mail Filtering | | Packet Capturing | | File Isolation | | ... | | | | | | | | | | Information model | | for content security| | control | +----------------------------------+ Figure 8. The basic structure of information model for content security control The detailed description about the standard interface and the parameters for all the security capabilities of this category are TBD. 6.3. Information Model for Attack Mitigation Control The block for attack mitigation control is composed of a number of security capabilities, while each one aims for mitigating a specific type of network attack. Following figure shows a basic structure of the information model: Xia, et al. Expires December 1, 2017 [Page 44] Internet-Draft I2NSF Capability Interface IM November 2016 Please view in a fixed-width font such as Courier. +-------------------------------------------------+ | | | +---------------------+ +---------------+ | | |Attack mitigation | | General Shared| | | |capabilites: | | Parameters: | | | | SYN flood, | | | | | | UDP flood, | | | | | | ICMP flood, | | | | | | IP fragment flood, | | | | | | IPv6 related attacks| | | | | | HTTP flood, | | | | | | HTTPS flood, | | | | | | DNS flood, | | | | | | DNS amplification, | | | | | | SSL DDoS, | | | | | | IP sweep, | | | | | | Port scanning, | | | | | | Ping of Death, | | | | | | Oversized ICMP | | | | | | | | | | | | ... | | | | | | | | | | | +---------------------+ +---------------+ | | | | Information model | | for attack mitigation| | control | +-------------------------------------------------+ Figure 9. The basic structure of information model for attack mitigation control The detailed description about the standard interface and the general shared parameters for all the security capabilities of this category are TBD. 7. Security Considerations The security capability policy information sent to NSFs should be protected by the secure communication channel, to ensure the confidentiality and integrity. In another side, the NSFs and security controller can all be faked, which lead to undesirable results, i.e., security policy leakage from security controller, faked security controller sending false information to mislead the NSFs. The mutual authentication is essential to protected against Xia, et al. Expires December 1, 2017 [Page 45] Internet-Draft I2NSF Capability Interface IM November 2016 this kind of attack. The current mainstream security technologies (i.e., TLS, DTLS, IPSEC, X.509 PKI) can be employed appropriately to provide the above security functionalities. In addition, to defend against the DDoS attack caused by the security controller sending too much configuration messages to the NSFs, the rate limiting or similar mechanisms should be considered in NSF, whether in advance or just in the process of DDoS attack. 8. IANA Considerations This document requires no IANA actions. RFC Editor: Please remove this section before publication. 9. References 9.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2234] Crocker, D. and Overell, P.(Editors), "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, Internet Mail Consortium and Demon Internet Ltd., November 1997. [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, October 2010. [RFC5511] Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax Used to Form Encoding Rules in Various Routing Protocol Specifications", RFC 5511, April 2009. [RFC3198] Westerinen, A., Schnizlein, J., Strassner, J., Scherling, M., Quinn, B., Herzog, S., Huynh, A., Carlson, M., Perry, J., and S. Waldbusser, "Terminology for Policy-Based Management", RFC 3198, DOI 10.17487/RFC3198, November 2001, . 9.2. Informative References [INCITS359 RBAC] NIST/INCITS, "American National Standard for Information Technology - Role Based Access Control", INCITS 359, April, 2003 Xia, et al. Expires December 1, 2017 [Page 46] Internet-Draft I2NSF Capability Interface IM November 2016 [I-D.draft-ietf-i2nsf-problem-and-use-cases] Hares, S., et.al., "I2NSF Problem Statement and Use cases", Work in Progress, February, 2016. [I-D.draft-ietf-i2nsf-framework] Lopez, E., et.al., "Framework for Interface to Network Security Functions", Work in Progress, October, 2016. [I-D.draft-ietf-i2nsf-terminology] Hares, S., et.al., "Interface to Network Security Functions (I2NSF) Terminology", Work in Progress, April, 2016 [I-D.draft-ietf-supa-generic-policy-info-model] Strassner, J., Halpern, J., Coleman, J., "Generic Policy Information Model for Simplified Use of Policy Abstractions (SUPA)", Work in Progress, June, 2016. [I-D.draft-baspez-i2nsf-capabilities-00] Basile C., Lopez D. R., "A Model of Security Capabilities for Network Security Functions", July 2016 [I-D.draft-xia-i2nsf-capability-interface-im-06] Xia L., et al., "Information Model of Interface to Network Security Functions Capability Interface", June 2016 [Alshaer] Al Shaer, E. and H. Hamed, "Modeling and management of firewall policies", 2004. [Bas12] Basile, C., Cappadonia, A., and A. Lioy, "Network-Level Access Control Policy Analysis and Transformation", 2012. [Bas15] Basile, C. and A. Lioy, "Analysis of application-layer filtering policies with application to HTTP", 2015. [Cormen] Cormen, T., "Introduction to Algorithms", 2009. [Lunt] van Lunteren, J. and T. Engbersen, "Fast and scalable packet classification", 2003. [Taylor] Taylor, D. and J. Turner, "Scalable packet classification using distributed crossproducting of field labels", 2004. 10. Acknowledgments This document was prepared using 2-Word-v2.0.template.dot. Xia, et al. Expires December 1, 2017 [Page 47] Internet-Draft I2NSF Capability Interface IM November 2016 Appendix A. Six exemplary policy rules of Network Security Capability are introduced in this Appendix to clarify how to create different kinds of specific ECA policy rules. Note that there is a common pattern that defines how these ECAPolicyRules operate; this simplifies their implementation. All of these six ECA Policy Rules are concrete classes. In addition, none of these six subclasses define attributes. This enables them to be viewed as simple object containers, and hence, applicable to a wide variety of content. It also means that the content of the function (e.g., how an entity is authenticated, what specific traffic is inspected, or which particular signature is applied) is defined solely by the set of events, conditions, and actions that are contained by the particular subclass. This enables the policy rule, with its aggregated set of events, conditions, and actions, to be treated as a reusable object. A.1. AuthenticationECAPolicyRule Class Definition The purpose of an AuthenticationECAPolicyRule is to define an ECA Policy Rule that can verify whether an entity has an attribute of a specific value. This class does NOT define the authentication method used. This is because this would effectively "enclose" this information within the AuthenticationECAPolicyRule. This has two drawbacks. First, other entities that need to use information from the Authentication class(es) could not; they would have to associate with the AuthenticationECAPolicyRule class, and those other classes would not likely be interested in the AuthenticationECAPolicyRule. Second, the evolution of new authentication methods should be independent of the AuthenticationECAPolicyRule; this cannot happen if the Authentication class(es) are embedded in the AuthenticationECAPolicyRule. Hence, this document recommends the following design: +----------------+ +----------------+ 1..n 1...n | | | |/ \ HasAuthenticationMethod \| Authentication | | Authentication + A ----------+-----------------+ Method | | ECAPolicyRule |\ / ^ /| | | | | +----------------+ +----------------+ | Xia, et al. Expires December 1, 2017 [Page 48] Internet-Draft I2NSF Capability Interface IM November 2016 | +------------+-------------+ | AuthenticationRuleDetail | +------------+-------------+ / \ 0..n | | PolicyControlsAuthentication | / \ A \ / 0..n +----------+--------------+ | ManagementECAPolicyRule | +-------------------------+ Figure 10. Modeling Authentication Mechanisms This document only defines the AuthenticationECAPolicyRule; all other classes, and the aggregations, are defined in an external model. For completeness, descriptions of how the two aggregations are used are below. Figure 10 defines an aggregation between the AuthenticationECAPolicyRule and an externalAuthenticationMethod class (which is likely a superclass for different types of authentication mechanisms). This decouples the implementation of authentication mechanisms from how authentication mechanisms are used. Since different AuthenticationECAPolicyRules can use different authentication mechanisms in different ways, the aggregation is realized as an association class. This enables the attributes and methods of the association class (i.e., AuthenticationRuleDetail) to be used to define how a given AuthenticationMethod is used by a particular AuthenticationECAPolicyRule. Similarly, the PolicyControlsAuthentication aggregation defines policies to control the configuration of the AuthenticationRuleDetail association class. This enables the entire authentication process to be managed by ECAPolicyRules. Note: a data model MAY choose to collapse this design into a more efficient implementation. For example, a data model could define two attributes for the AuthenticationECAPolicyRule class, called (for example) authenticationMethodCurrent and authenticationMethodSupported, to represent the HasAuthenticationMethod aggregation and its association class. The Xia, et al. Expires December 1, 2017 [Page 49] Internet-Draft I2NSF Capability Interface IM November 2016 former is a string attribute that defines the current authentication method used by this AuthenticationECAPolicyRule, while the latter defines a set of authentication methods, in the form of an authentication capability, which this AuthenticationECAPolicyRule can advertise. A.2. AuthorizationECAPolicyRuleClass Definition The purpose of an AuthorizationECAPolicyRule is to define an ECA Policy Rule that can determine whether access to a resource should be given and, if so, what permissions should be granted to the entity that is accessing the resource. This class does NOT define the authorization method(s) used. This is because this would effectively "enclose" this information within the AuthorizationECAPolicyRule. This has two drawbacks. First, other entities that need to use information from the Authorization class(es) could not; they would have to associate with the AuthorizationECAPolicyRule class, and those other classes would not likely be interested in the AuthorizationECAPolicyRule. Second, the evolution of new authorization methods should be independent of the AuthorizationECAPolicyRule; this cannot happen if the Authorization class(es) are embedded in the AuthorizationECAPolicyRule. Hence, this document recommends the following design: Xia, et al. Expires December 1, 2017 [Page 50] Internet-Draft I2NSF Capability Interface IM November 2016 +---------------+ +----------------+ 1..n 1...n | | | |/ \ HasAuthorizationMethod \| Authorization | | Authorization + A ----------+----------------+ Method | | ECAPolicyRule |\ / ^ /| | | | | +---------------+ +----------------+ | | +------------+------------+ | AuthorizationRuleDetail | +------------+------------+ / \ 0..n | | PolicyControlsAuthorization | / \ A \ / 0..n +----------+--------------+ | ManagementECAPolicyRule | +-------------------------+ Figure 11. Modeling Authorization Mechanisms This document only defines the AuthorizationECAPolicyRule; all other classes, and the aggregations, are defined in an external model. For completeness, descriptions of how the two aggregations are used are below. Figure 11 defines an aggregation between the AuthorizationECAPolicyRule and an external AuthorizationMethod class (which is likely a superclass for different types of authorization mechanisms). This decouples the implementation of authorization mechanisms from how authorization mechanisms are used. Since different AuthorizationECAPolicyRules can use different authorization mechanisms in different ways, the aggregation is realized as an association class. This enables the attributes and methods of the association class (i.e., AuthorizationRuleDetail) to be used to define how a given AuthorizationMethod is used by a particular AuthorizationECAPolicyRule. Similarly, the PolicyControlsAuthorization aggregation defines policies to control the configuration of the AuthorizationRuleDetail association class. This enables the entire authorization process to be managed by ECAPolicyRules. Xia, et al. Expires December 1, 2017 [Page 51] Internet-Draft I2NSF Capability Interface IM November 2016 Note: a data model MAY choose to collapse this design into a more efficient implementation. For example, a data model could define two attributes for the AuthorizationECAPolicyRule class, called (for example) authorizationMethodCurrent and authorizationMethodSupported, to represent the HasAuthorizationMethod aggregation and its association class. The former is a string attribute that defines the current authorization method used by this AuthorizationECAPolicyRule, while the latter defines a set of authorization methods, in the form of an authorization capability, which this AuthorizationECAPolicyRule can advertise. A.3. AccountingECAPolicyRuleClass Definition The purpose of an AccountingECAPolicyRule is to define an ECA Policy Rule that can determine which information to collect, and how to collect that information, from which set of resources for the purpose of trend analysis, auditing, billing, or cost allocation [RFC2975] [RFC3539]. This class does NOT define the accounting method(s) used. This is because this would effectively "enclose" this information within the AccountingECAPolicyRule. This has two drawbacks. First, other entities that need to use information from the Accounting class(es) could not; they would have to associate with the AccountingECAPolicyRule class, and those other classes would not likely be interested in the AccountingECAPolicyRule. Second, the evolution of new accounting methods should be independent of the AccountingECAPolicyRule; this cannot happen if the Accounting class(es) are embedded in the AccountingECAPolicyRule. Hence, this document recommends the following design: Xia, et al. Expires December 1, 2017 [Page 52] Internet-Draft I2NSF Capability Interface IM November 2016 +-------------+ +----------------+ 1..n 1...n | | | |/ \ HasAccountingMethod \| Accounting | | Accounting + A ----------+--------------+ Method | | ECAPolicyRule |\ / ^ /| | | | | +-------------+ +----------------+ | | +----------+-----------+ | AccountingRuleDetail | +----------+-----------+ / \ 0..n | | PolicyControlsAccounting | / \ A \ / 0..n +----------+--------------+ | ManagementECAPolicyRule | +-------------------------+ Figure 12. Modeling Accounting Mechanisms This document only defines the AccountingECAPolicyRule; all other classes, and the aggregations, are defined in an external model. For completeness, descriptions of how the two aggregations are used are below. Figure 12 defines an aggregation between the AccountingECAPolicyRule and an external AccountingMethod class (which is likely a superclass for different types of accounting mechanisms). This decouples the implementation of accounting mechanisms from how accounting mechanisms are used. Since different AccountingECAPolicyRules can use different accounting mechanisms in different ways, the aggregation is realized as an association class. This enables the attributes and methods of the association class (i.e., AccountingRuleDetail) to be used to define how a given AccountingMethod is used by a particular AccountingECAPolicyRule. Similarly, the PolicyControlsAccounting aggregation defines policies to control the configuration of the AccountingRuleDetail association class. This enables the entire accounting process to be managed by ECAPolicyRules. Xia, et al. Expires December 1, 2017 [Page 53] Internet-Draft I2NSF Capability Interface IM November 2016 Note: a data model MAY choose to collapse this design into a more efficient implementation. For example, a data model could define two attributes for the AccountingECAPolicyRule class, called (for example) accountingMethodCurrent and accountingMethodSupported, to represent the HasAccountingMethod aggregation and its association class. The former is a string attribute that defines the current accounting method used by this AccountingECAPolicyRule, while the latter defines a set of accounting methods, in the form of an authorization capability, which this AccountingECAPolicyRule can advertise. A.4. TrafficInspectionECAPolicyRuleClass Definition The purpose of a TrafficInspectionECAPolicyRule is to define an ECA Policy Rule that, based on a given context, can determine which traffic to examine on which devices, which information to collect from those devices, and how to collect that information. This class does NOT define the traffic inspection method(s) used. This is because this would effectively "enclose" this information within the TrafficInspectionECAPolicyRule. This has two drawbacks. First, other entities that need to use information from the TrafficInspection class(es) could not; they would have to associate with the TrafficInspectionECAPolicyRule class, and those other classes would not likely be interested in the TrafficInspectionECAPolicyRule. Second, the evolution of new traffic inspection methods should be independent of the TrafficInspectionECAPolicyRule; this cannot happen if the TrafficInspection class(es) are embedded in the TrafficInspectionECAPolicyRule. Hence, this document recommends the following design: Xia, et al. Expires December 1, 2017 [Page 54] Internet-Draft I2NSF Capability Interface IM November 2016 +------------------+ +-------------------+1..n 1..n| | | |/ \ HasTrafficInspection \| Traffic | | TrafficInspection + A ----------+-------------+ InspectionMethod | | ECAPolicyRule |\ / ^ / | | | | | +------------------+ +-------------------+ | | +------------+------------+ | TrafficInspectionDetail | +------------+------------+ / \ 0..n | | PolicyControlsTrafficInspection | / \ A \ / 0..n +----------+--------------+ | ManagementECAPolicyRule | +-------------------------+ Figure 13. Modeling Traffic Inspection Mechanisms This document only defines the TrafficInspectionECAPolicyRule; all other classes, and the aggregations, are defined in an external model. For completeness, descriptions of how the two aggregations are used are below. Figure 13 defines an aggregation between the TrafficInspectionECAPolicyRule and an external TrafficInspection class (which is likely a superclass for different types of traffic inspection mechanisms). This decouples the implementation of traffic inspection mechanisms from how traffic inspection mechanisms are used. Since different TrafficInspectionECAPolicyRules can use different traffic inspection mechanisms in different ways, the aggregation is realized as an association class. This enables the attributes and methods of the association class (i.e., TrafficInspectionDetail) to be used to define how a given TrafficInspectionMethod is used by a particular TrafficInspectionECAPolicyRule. Similarly, the PolicyControlsTrafficInspection aggregation defines policies to control the configuration of the TrafficInspectionDetail association class. This enables the entire traffic inspection process to be managed by ECAPolicyRules. Xia, et al. Expires December 1, 2017 [Page 55] Internet-Draft I2NSF Capability Interface IM November 2016 Note: a data model MAY choose to collapse this design into a more efficient implementation. For example, a data model could define two attributes for the TrafficInspectionECAPolicyRule class, called (for example) trafficInspectionMethodCurrent and trafficInspectionMethodSupported, to represent the HasTrafficInspectionMethod aggregation and its association class. The former is a string attribute that defines the current traffic inspection method used by this TrafficInspectionECAPolicyRule, while the latter defines a set of traffic inspection methods, in the form of a traffic inspection capability, which this TrafficInspectionECAPolicyRule can advertise. A.5. ApplyProfileECAPolicyRuleClass Definition The purpose of an ApplyProfileECAPolicyRule is to define an ECA Policy Rule that, based on a given context, can apply a particular profile to specific traffic. The profile defines the security capabilities for content security control and/or attack mitigation control; these will be described in sections 4.4 and 4.5, respectively. This class does NOT define the set of Profiles used. This is because this would effectively "enclose" this information within the ApplyProfileECAPolicyRule. This has two drawbacks. First, other entities that need to use information from the Profile class(es) could not; they would have to associate with the ApplyProfileECAPolicyRule class, and those other classes would not likely be interested in the ApplyProfileECAPolicyRule. Second, the evolution of new Profile classes should be independent of the ApplyProfileECAPolicyRule; this cannot happen if the Profile class(es) are embedded in the ApplyProfileECAPolicyRule. Hence, this document recommends the following design: Xia, et al. Expires December 1, 2017 [Page 56] Internet-Draft I2NSF Capability Interface IM November 2016 +-------------+ +-------------------+ 1..n 1..n | | | |/ \ ProfileApplied \| | | ApplyProfile + A -----------+-------------+ Profile | | ECAPolicyRule |\ / ^ /| | | | | +-------------+ +-------------------+ | | +------------+---------+ | ProfileAppliedDetail | +------------+---------+ / \ 0..n | | PolicyControlsProfileApplication | | / \ A \ / 0..n +----------+--------------+ | ManagementECAPolicyRule | +-------------------------+ Figure 14. Modeling Profile ApplicationMechanisms This document only defines the ApplyProfileECAPolicyRule; all other classes, and the aggregations, are defined in an external model. For completeness, descriptions of how the two aggregations are used are below. Figure 14 defines an aggregation between the ApplyProfileECAPolicyRule and an external Profile class (which is likely a superclass for different types of Profiles). This decouples the implementation of Profiles from how Profiles are used. Since different ApplyProfileECAPolicyRules can use different Profiles in different ways, the aggregation is realized as an association class. This enables the attributes and methods of the association class (i.e., ProfileAppliedDetail) to be used to define how a given Profileis used by a particular ApplyProfileECAPolicyRule. Similarly, the PolicyControlsProfileApplication aggregation defines policies to control the configuration of the ProfileAppliedDetail association class. This enables the application of Profiles to be managed by ECAPolicyRules. Xia, et al. Expires December 1, 2017 [Page 57] Internet-Draft I2NSF Capability Interface IM November 2016 Note: a data model MAY choose to collapse this design into a more efficient implementation. For example, a data model could define two attributes for the ApplyProfileECAPolicyRuleclass, called (for example) profileAppliedCurrent and profileAppliedSupported, to represent the ProfileApplied aggregation and its association class. The former is a string attribute that defines the current Profile used by this ApplyProfileECAPolicyRule, while the latter defines a set of Profiles, in the form of a Profile capability, which this ApplyProfileECAPolicyRule can advertise. A.6. ApplySignatureECAPolicyRuleClass Definition The purpose of an ApplySignatureECAPolicyRule is to define an ECA Policy Rule that, based on a given context, can determine which Signature object (e.g., an anti-virus file, or aURL filtering file, or a script) to apply to which traffic. The Signature object defines the security capabilities for content security control and/or attack mitigation control; these will be described in sections 4.4 and 4.5, respectively. This class does NOT define the set of Signature objects used. This is because this would effectively "enclose" this information within the ApplySignatureECAPolicyRule. This has two drawbacks. First, other entities that need to use information from the Signature object class(es) could not; they would have to associate with the ApplySignatureECAPolicyRule class, and those other classes would not likely be interested in the ApplySignatureECAPolicyRule. Second, the evolution of new Signature object classes should be independent of the ApplySignatureECAPolicyRule; this cannot happen if the Signature object class(es) are embedded in the ApplySignatureECAPolicyRule. Hence, this document recommends the following design: Xia, et al. Expires December 1, 2017 [Page 58] Internet-Draft I2NSF Capability Interface IM November 2016 +-------------+ +---------------+ 1..n 1..n | | | |/ \ SignatureApplied \| | | ApplySignature+ A ----------+--------------+ Signature | | ECAPolicyRule |\ / ^ /| | | | | +-------------+ +---------------+ | | +------------+-----------+ | SignatureAppliedDetail | +------------+-----------+ / \ 0..n | | PolicyControlsSignatureApplication | / \ A \ / 0..n +----------+--------------+ | ManagementECAPolicyRule | +-------------------------+ Figure 15. Modeling Sginature Application Mechanisms This document only defines the ApplySignatureECAPolicyRule; all other classes, and the aggregations, are defined in an external model. For completeness, descriptions of how the two aggregations are used are below. Figure 15 defines an aggregation between the ApplySignatureECAPolicyRule and an external Signature object class (which is likely a superclass for different types of Signature objects). This decouples the implementation of signature objects from how Signature objects are used. Since different ApplySignatureECAPolicyRules can use different Signature objects in different ways, the aggregation is realized as an association class. This enables the attributes and methods of the association class (i.e., SignatureAppliedDetail) to be used to define how a given Signature object is used by a particular ApplySignatureECAPolicyRule. Similarly, the PolicyControlsSignatureApplication aggregation defines policies to control the configuration of the Xia, et al. Expires December 1, 2017 [Page 59] Internet-Draft I2NSF Capability Interface IM November 2016 SignatureAppliedDetail association class. This enables the application of the Signature object to be managed by policy. Note: a data model MAY choose to collapse this design into a more efficient implementation. For example, a data model could define two attributes for the ApplySignatureECAPolicyRule class, called (for example) signature signatureAppliedCurrent and signatureAppliedSupported, to represent the SignatureApplied aggregation and its association class. The former is a string attribute that defines the current Signature object used by this ApplySignatureECAPolicyRule, while the latter defines a set of Signature objects, in the form of a Signature capability, which this ApplySignatureECAPolicyRule can advertise. Xia, et al. Expires December 1, 2017 [Page 60] Internet-Draft I2NSF Capability Interface IM November 2016 Authors' Addresses Liang Xia (Frank) Huawei 101 Software Avenue, Yuhuatai District Nanjing, Jiangsu 210012 China Email: Frank.xialiang@huawei.com John Strassner Huawei Email: John.sc.Strassner@huawei.com DaCheng Zhang Huawei Email: dacheng.zhang@huawei.com Kepeng Li Alibaba Email: kepeng.lkp@alibaba-inc.com Cataldo Basile, Antonio Lioy Politecnico di Torino Corso Duca degli Abruzzi, 34 Torino, 10129 Italy Email: cataldo.basile@polito.it Antonio Lioy Politecnico di Torino Corso Duca degli Abruzzi, 34 Torino, 10129 Italy Email: lioy@polito.it Xia, et al. Expires December 1, 2017 [Page 61] Internet-Draft I2NSF Capability Interface IM November 2016 Diego R. Lopez Telefonica I+D Zurbaran, 12 Madrid, 28010 Spain Phone: +34 913 129 041 Email: diego.r.lopez@telefonica.com Edward Lopez Fortinet 899 Kifer Road Sunnyvale, CA 94086 Phone: +1 703 220 0988 EMail: elopez@fortinet.com Nicolas BOUTHORS Qosmos Email: Nicolas.BOUTHORS@qosmos.com Luyuan Fang Microsoft 15590 NE 31st St Redmond, WA 98052 Email: lufang@microsoft.com Xia, et al. Expires December 1, 2017 [Page 62]