I2NSF L. XiaInternet DraftInternet-Draft J. Strassner Intended status: Standard TrackD.ZhangHuaweiK. Li AlibabaExpires: September 12, 2017 C. BasileA. LioyPoliTO D. Lopez TIDE. Lopez Fortinet N. BOUTHORS Qosmos Luyuan Fang Microsoft Expires: DecemberMarch 12, 2017November 1, 2016Information Model of NSFs Capabilitiesdraft-xibassnez-i2nsf-capability-00.txtdraft-xibassnez-i2nsf-capability-01.txt Abstract This document defines the concept of an NSF (Network Security Function) Capability, as well as its information model. Capabilities are a set of features that are available from a managed entity, and are represented as data that unambiguously characterizes an NSF. Capabilities enable management entities to determine the set offer features from available NSFs that will be used, and simplify the management of NSFs. 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.(IETF). Note that other groups may also distribute working documents asInternet- Drafts.Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/. 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.htmlThis Internet-Draft will expire onDecember 1,2016.September 12, 2017. Copyright Notice Copyright (c)20162017 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.............................. 5 2.1.Terminology ............................................ 6Acronyms .................................................. 5 3.Management of NSFs: Design Principles towards a model of Capabilities ................................................... 7 4.Capability Information Model.......................................... 10 5. Capabilities for security policy enforcement ............... 12 5.1. The CADesign ............................ 6 3.1. Design Principles and ECA Policy Model................................... 13 5.2. GeometricOverview ........... 6 3.2. Relation with the External Information Model .............. 8 3.3. I2NSF Capability Information Model Theory ofCA Policies ........................ 14 5.3.Operation ... 10 3.3.1. I2NSF Condition Clause Operator Types....................................... 17 5.4. Model of Capabilities for Policy Specification............... 11 3.3.2 Capability Selection andEnforcement Purposes ................................................... 19 5.5.Usage ...................... 12 3.3.3. Capability Algebraof capabilities ............................... 20 5.6. Examples of................................. 13 3.4. Initial NSFs Capability Categories........................... 21 5.6.1........................ 16 3.4.1. Network Security................................. 22 5.6.2.Capabilities ....................... 16 3.4.2. Content Security.................................. 22 5.6.3.Capabilities ....................... 17 3.4.3. Attack Mitigation................................. 22 6.Capabilities ...................... 17 4. Information Sub-Model for Network Security Capabilities..... 23 6.1........ 18 4.1. Information Sub-Model for Network Security............. 23 6.1.1................ 18 4.1.1. Network Security Policy Rule Extensions........... 24 6.1.2.............. 19 4.1.2. Network Security Policy Rule Operation............ 26 6.1.3............... 20 4.1.3. Network Security Event Sub-Model...................................... 22 4.1.4. Network Security Condition Sub-Model ................ 23 4.1.5. Network Security Action Sub-Model ................... 25 4.2. Information Model for I2NSF Capabilities ................. 26 4.3. Information Model for Content Security Capabilities ...... 276.1.3.1.4.4. Information Model for Attack Mitigation Capabilities ..... 28 5. Security Considerations ....................................... 29 6. IANA Considerations ........................................... 29 7. Contributors .................................................. 29 8. References .................................................... 29 8.1. Normative References ..................................... 29 8.2. Informative References ................................... 30 Appendix A. Network Security Capability Policy Rule Definitions .. 32 A.1. AuthenticationECAPolicyRule Class Definition ............. 32 A.2. AuthorizationECAPolicyRuleClass Definition ............... 34 A.3. AccountingECAPolicyRuleClass Definition .................. 35 A.4. TrafficInspectionECAPolicyRuleClass Definition ........... 37 A.5. ApplyProfileECAPolicyRuleClass Definition ................ 38 A.6. ApplySignatureECAPolicyRuleClass Definition .............. 40 Appendix B. Network Security Event Class Definitions ............. 42 B.1. UserSecurityEvent Class Description.......... 29 6.1.3.1.1....................... 42 B.1.1. The usrSecEventContent Attribute........ 29 6.1.3.1.2..................... 42 B.1.2. The usrSecEventFormatAttribute.......... 29 6.1.3.1.3.Attribute ..................... 42 B.1.3. The usrSecEventType Attribute........... 30 6.1.3.2........................ 42 B.2. DeviceSecurityEvent Class Description........ 30 6.1.3.2.1..................... 43 B.2.1. The devSecEventContent Attribute........ 30 6.1.3.2.2..................... 43 B.2.2. The devSecEventFormatAttribute.......... 31 6.1.3.2.3.Attribute ..................... 43 B.2.3. The devSecEventType Attribute........... 31 6.1.3.2.4........................ 44 B.2.4. The devSecEventTypeInfo[0..n] Attribute. 31 6.1.3.2.5.............. 44 B.2.5. The devSecEventTypeSeverity Attribute... 32 6.1.3.3................ 44 Table of Contents (continued) B.3. SystemSecurityEvent Class Description........ 32 6.1.3.3.1..................... 44 B.3.1. The sysSecEventContent Attribute........ 32 6.1.3.3.2..................... 45 B.3.2. The sysSecEventFormatAttribute.......... 33 6.1.3.3.3.Attribute ..................... 45 B.3.3. The sysSecEventType Attribute........... 33 6.1.3.4........................ 45 B.4. TimeSecurityEvent Class Description.......... 33 6.1.3.4.1....................... 45 B.4.1. The timeSecEventPeriodBegin Attribute... 34 6.1.3.4.2................ 46 B.4.2. The timeSecEventPeriodEnd Attribute..... 34 6.1.3.4.3.................. 46 B.4.3. The timeSecEventTimeZone Attribute...... 34 6.1.4................... 46 Appendix C. Network Security ConditionSub-Model .............. 34 6.1.4.1.Class Definitions ......... 47 C.1. PacketSecurityCondition...................... 36 6.1.4.1.1................................... 47 C.1.1. PacketSecurityMACCondition.............. 36 6.1.4.1.1.1........................... 47 C.1.1.1. The pktSecCondMACDest Attribute.... 37 6.1.4.1.1.2................. 47 C.1.1.2. The pktSecCondMACSrc Attribute..... 37 6.1.4.1.1.3.................. 47 C.1.1.3. The pktSecCondMAC8021Q Attribute... 37 6.1.4.1.1.4................ 48 C.1.1.4. The pktSecCondMACEtherType Attribute37 6.1.4.1.1.5............ 48 C.1.1.5. The pktSecCondMACTCI Attribute..... 37 6.1.4.1.2.................. 48 C.1.2. PacketSecurityIPv4Condition............. 37 6.1.4.1.2.1.......................... 48 C.1.2.1. The pktSecCondIPv4SrcAddr Attribute37 6.1.4.1.2.2............. 48 C.1.2.2. The pktSecCondIPv4DestAddr Attribute37 6.1.4.1.2.3............ 48 C.1.2.3. The pktSecCondIPv4ProtocolUsed Attribute................................................ 38 6.1.4.1.2.4........ 48 C.1.2.4. The pktSecCondIPv4DSCP Attribute... 38 6.1.4.1.2.5................ 48 C.1.2.5. The pktSecCondIPv4ECN Attribute.... 38 6.1.4.1.2.6................. 48 C.1.2.6. The pktSecCondIPv4TotalLength Attribute................................................ 38 6.1.4.1.2.7......... 49 C.1.2.7. The pktSecCondIPv4TTL Attribute.... 38 6.1.4.1.3................. 49 C.1.3. PacketSecurityIPv6Condition............. 38 6.1.4.1.3.1.......................... 49 C.1.3.1. The pktSecCondIPv6SrcAddr Attribute38 6.1.4.1.3.2............. 49 C.1.3.2. The pktSecCondIPv6DestAddr Attribute38 6.1.4.1.3.3............ 49 C.1.3.3. The pktSecCondIPv6DSCP Attribute... 38 6.1.4.1.3.4................ 49 C.1.3.4. The pktSecCondIPv6ECN Attribute.... 39 6.1.4.1.3.5................. 49 C.1.3.5. The pktSecCondIPv6FlowLabelAttribute39 6.1.4.1.3.6.Attribute .......... 49 C.1.3.6. The pktSecCondIPv6PayloadLength Attribute....................................... 39 6.1.4.1.3.7....... 49 C.1.3.7. The pktSecCondIPv6NextHeaderAttribute39 6.1.4.1.3.8.Attribute ......... 50 C.1.3.8. The pktSecCondIPv6HopLimit Attribute39 6.1.4.1.4............ 50 C.1.4. PacketSecurityTCPCondition.............. 39 6.1.4.1.4.1........................... 50 C.1.4.1. ThepktSecCondTPCSrcPortpktSecCondTCPSrcPort Attribute. 39 6.1.4.1.4.2.............. 50 C.1.4.2. ThepktSecCondTPCDestPortpktSecCondTCPDestPort Attribute39 6.1.4.1.4.3............. 50 C.1.4.3. ThepktSecCondTPCSeqNumpktSecCondTCPSeqNum Attribute.. 40 6.1.4.1.4.4............... 50 C.1.4.4. ThepktSecCondTPCFlagspktSecCondTCPFlags Attribute... 40 6.1.4.1.5................ 50 C.1.5. PacketSecurityUDPCondition.............. 40 6.1.4.1.5.1........................ 50 C.1.5.1.1. The pktSecCondUDPSrcPort Attribute. 40 6.1.4.1.5.2......... 50 C.1.5.1.2. The pktSecCondUDPDestPort Attribute40 6.1.4.1.5.3........ 51 C.1.5.1.3. The pktSecCondUDPLength Attribute.. 40 6.1.4.2.......... 51 C.2. PacketPayloadSecurityCondition............... 40 6.1.4.3............................ 51 C.3. TargetSecurityCondition...................... 40 6.1.4.4................................... 51 C.4. UserSecurityCondition........................ 41 6.1.4.5..................................... 51 C.5. SecurityContextCondition..................... 41 6.1.4.6.................................. 52 C.6. GenericContextSecurityCondition.............. 41 6.1.5........................... 52 Table of Contents (continued) Appendix D. Network Security ActionSub-Model ................. 42 6.1.5.1.Class Definitions ............. 53 D.1. IngressAction................................ 43 6.1.5.2............................................. 53 D.2. EgressAction................................. 43 6.1.5.3.............................................. 53 D.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....................................... 53 AppendixA. .................................................... 48 A.1. AuthenticationECAPolicyRule Class Definition ........... 48 A.2. AuthorizationECAPolicyRuleClass Definition ............. 50 A.3. AccountingECAPolicyRuleClass Definition ................ 52 A.4. TrafficInspectionECAPolicyRuleClass Definition..........E. Geometric Model ...................................... 54A.5. ApplyProfileECAPolicyRuleClass Definition .............. 56 A.6. ApplySignatureECAPolicyRuleClass Definition ............ 58Authors' Addresses ............................................... 57 1. Introduction The rapid development of virtualizedsystems, along with the demand of security services in virtualized systems,systems requires advanced security protection in various scenarios. Examples include network devices in an enterprise network, User Equipment(UE)in a mobile network, devices in the Internet ofThings (IoT),Things, 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 ofNSFs produced by multiple securitypolicy enforcement and how a Controllervendors provide various security Capabilities to customers. Multiple NSFs caninteract with it in orderbe combined together toenforce aprovide securitypolicy. Even ifservices over theaim is a generalgiven network traffic, regardless ofcapabilities,whether theunambiguity of capabilities is only assured in a given virtualized system. According to [I-D.draft-ietf-i2nsf-framework], thereNSFs aretwo typesimplemented as physical or virtual functions. Security Capabilities describe the set ofI2NSF interfacesNetwork Security Functions (NSFs) that are available to use for securityrules provisioning: o Interface between I2NSF clients and apolicy enforcement purposes. Security Capabilities are independent of the actual securitycontroller (Client Facing Interface): This iscontrol mechanisms that will implement them. Every NSF registers the set of Capabilities it offers. Security Capabilities are aservice-oriented interface, whose main objective ismarket enabler, providing a way to define customized security protection by unambiguously describing the security features offered by a given NSF. Moreover, Security Capabilities enable security functionality to be described in a vendor-neutral manner. 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. According to [I-D.draft-ietf-i2nsf-framework], there are two types of I2NSF interfaces available for security policy provisioning: o Interface between I2NSF users and applications, and a security controller (Consumer-Facing Interface): this is a service- oriented interface that provides a communication channelover which information defining securitybetween consumers of NSF data and servicescontrolling client's specific flow can be requested.and the network operator's security controller. This enables security information to be exchanged between various applications (e.g., OpenStack, or various BSS/OSS components) andother components (e.g.,the securitycontrollers).controller. The design goal of theservice interfaceConsumer-Facing Interface is to decouple thesecurity service in the application layer from various kindsspecification of securitydevices andservices of consumers requesting such services from theirdevice-specific security functions.implementation. o Interface between NSFs (e.g., firewall, intrusion prevention, or anti-virus) andathe security controller(NSFs Facing(NSF-Facing Interface):This interface is independent of how the NSFs are implemented (e.g., run in Virtual Machines (VMs) or physical appliances).TheNSFs FacingNSF-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 specifyandmonitor a numberis independent offlow based security policies to individual NSFs.how the NSFs are implemented (e.g., run in Virtual Machines or physical appliances). According to the definition in [I-D.draft-ietf-i2nsf-framework],NSFs Facingthe NSF-Facing Interfaceincludes sub-interfacesinformation model is made up ofCapability Interface,three sub-models: Capability, RegistrationInterfaceandMonitoring Interface.Monitoring. This documentproposesdefines the information model design for the first twointerfacesparts (Capability andRegistration),Registration); the MonitoringInterfacepart information model is discussed in [I-D.draft-zhang-i2nsf-info-model-monitoring]. This document is organized asfollows:follows. Section 2 defines conventions and acronyms used. Section 3 discusses the design principles forNSF capabilitiesthe I2NSF Capability information model and related ECA model. Section 4further describes design principles for I2NSF capability information model. Section 5providesmore details about thedetailed information model design of I2NSF network securitycapability. Section 6 presents further information on specific aspects of the information model.Capability. 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 documentreferences touses terminology defined in [I-D.draft-ietf-i2nsf-terminology] formore specificsecurity related and I2NSF scopedterminology definitions.terminology. 2.1.Terminology AAA -AccessAcronyms AAA: Access control, Authorization, AuthenticationACL -ACL: Access Control ListAD - Active Directory ANSI - American National Standards Institute DDoS - Distributed Deny of Services FW -(D)DoD: (Distributed) Denial of Service (attack) ECA: Event-Condition-Action FMR: First Matching Rule (resolution strategy) FW: FirewallI2NSF -GNSF: Generic Network Security Function HTTP: HyperText Transfer Protocol I2NSF: Interface to Network Security FunctionsINCITS - International Committee for Information Technology Standards IoT - Internet of Things IPS -IPS: Intrusion Prevention SystemLDAP - Lightweight Directory Access Protocol NAT -LMR: Last Matching Rule (resolution strategy) MIME: Multipurpose Internet Mail Extensions NAT: Network Address TranslationNBI - North-bound Interface NIST - National Institute of Standard Technology NSF -NSF: Network Security FunctionRBAC - Role Based Access Control UE - User Equipment URL - Uniform/UniversalRPC: Remote Procedure Call SMA: String Matching Algorithm URL: Uniform Resource LocatorVM -VPN: VirtualMachine WAF - Web Application FirewallPrivate Network 3.Management of NSFs:Capability Information Model DesignPrinciples towards aThe starting point of the design of the Capability information model is the categorization of types ofCapabilities Some basic principles forsecuritycapabilities andfunctions. For instance, experts agree on what is meant by thesystems 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 utilizedterms "NAT", "filtering", andassembled 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"VPN concentrator". Network security experts unequivocally refer tomake it programmable; this in turn provides a standardized ability"packet filters" as stateless devices able todescribeallow or deny packet forwarding based on various conditions (e.g., source andreport its processing resultsdestination IP addresses, source andcorresponding statistics information. Furthermore, it facilitates the multi-vendor interoperability; o Automation: The system must have the ability to auto-discover, auto-negotiate,destination ports, andauto-update security capabilities.IP protocol type fields) [Alshaer]. However, more information is required in case of other devices, like stateful firewalls or application layer filters. Thesefeaturesdevices filter packets or communications, but there areespecially useful fordifferences in themanagement of a large numberpackets 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 ofNSFs. They are essential to add smart services (refinement, analysis, capability reasoning, optimization) on topsymmetric 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, anti-reply protections, and authenticate peers. 3.1. Design Principles and ECA Policy Model Overview This document defines a model of security Capabilities that provides thevirtual layer; o Scalability: thefoundation for automatic managementsystem must haveof NSFs. This includes enabling thecapabilitysecurity controller toscale up/down or scale in/out. Thus, itproperly identify and manage NSFs, and allow NSFs to properly declare their functionality, so that they canmeet various performance requirements derived from changeable network traffic or service requests. In addition,be used in the correct way. Some basic design principles for securitycapability must support reporting statistics toCapabilities and thesecurity controller to assist its decision on whether it needssystems that have toinvoke scalingmanage them are: o Independence: each security Capability should be an independent function, with minimum overlap ornot. Baseddependency on 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. This follows theabove principles,Single Responsibility Principle [Martin] [OODSRP]. o Abstraction: each Capability should be defined in aset of abstractvendor- independent manner, andvendor-neutral capabilities with standard interfaces is needed together withassociated to amodel of capabilities that allowswell-known interface tounambiguously determine what NSFsprovide a standardized ability to describe and report its processing results. This facilitates multi-vendor interoperability. o Automation: the system must have the ability to auto-discover, auto-negotiate, and auto-update its security Capabilities (i.e., without human intervention). These features are especially useful for the management of a large number of NSFs. They are essential to add smart services (e.g., analysis, refinement, Capability reasoning, and optimization) for the security scheme employed. These features are supported by many design patterns, including the Observer Pattern [OODOP], the Mediator Pattern [OODMP], and a set of Message Exchange Patterns [Hohpe]. o Scalability: the management system must have the Capability to scale up/down or scale in/out. Thus, it cando in termsmeet various performancerequirements derived from changeable network traffic or service requests. In addition, security Capabilities that are affected by scalability changes must support reporting statistics to the security controller to assist its decision on whether it needs to invoke scaling or not. However, this requirement is for information only, and is beyond the scope of this document. Based on the above principles, a set of abstract and vendor-neutral Capabilities with standard interfaces is defined. This provides a Capability model that enables a set of NSFs that are required at a given time to be selected, as well as the unambiguous definition of the securitypolicy enforcement.offered by the set of NSFs used. The security controller can compare the requirements ofclientsusers and applications to the set ofcapabilitiesCapabilities 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 thecapabilitiesCapabilities (i.e., the description) of the functions provided.ThisThe security controller may alsofacilitates the customization ofbe able to customize the functionality oftheselectedNSFs by setting the parameters of their interfaces.NSFs. Furthermore, when an unknown threat (e.g., zero-dayexploits, unknown malware,exploits andAPTs)unknown malware) is reported by anetwork security device,NSF, newcapabilitiesCapabilities may be created, and/or existingcapabilitiesCapabilities may be updated (e.g., by updating its signature andalgorithm), to correspond to thealgorithm). This results in enhancing existing NSFs (and/or creating newfunctionality provided by the NSFNSFs) tohandleaddress thethreat. Thenewcapabilities 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.threats. NewcapabilitiesCapabilities may be sent to and stored in a centralized repository, or stored separately in a vendor's local repository. In eithercases,case, a standard interfaceis needed during this automatedfacilitates the update process. Note that most systems cannot dynamically create a new Capability without human interaction. This is an area for further study. In defining thecapabilitiesCapabilities of a NSF, the "Event-Condition-Action" (ECA) policyrule setmodel in [I-D.draft-ietf-i2nsf-framework]should be hereis used as the basis for thedesign:design; definitions of all I2NSF policy-related terms are also defined in [I-D.draft-ietf-i2nsf-terminology]: o Event: An Event isdefined asany 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 ofpolicy rules for I2NSF,I2NSF Policy Rules, it is used to determine whether the Condition clause of the I2NSF 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 anACL);ACL). o Condition: A condition is defined as 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 tomake a decision. When used in the context of policy rules for I2NSF, it is used todetermine whether or not the set of Actions in that (imperative) I2NSF Policy Rule can be executed or not.The following are exemplary types of conditions: ? Packet content values: Refer to the kindExamples ofinformation orI2NSF Conditions include matching attributesacquired directly from theof a packetheadersorpayloads that can beflow, and comparing the internal state of an NSF to a desired state. o Action: An action is usedinto control and monitor aspects of flow-based NSFs when the event and condition clauses are satisfied. NSFs provide securitypolicy. It can be any fields or attributes in the packet L2/L3/L4 header, or special segmentfunctions by executing various Actions. Examples ofbytes in theI2NSF Actions include providing intrusion detection and/or protection, web and flow filtering, and deep packetpayload; ? Context values: Refer to the context informationinspection forthe received packets. It can be (and not limited to): * User:packets and flows. Theuser (or user group) information to which a network flowabove ECA policy model isassociated. A user has many attributes, such as name, id, password, authentication mode,very general andso on. The combination of nameeasily extensible, andid (where idcan avoid potential constraints that couldbe a password, a certificate, or other means of identifying the user) is often used inlimit the implementation of generic securitypolicy to identifyCapabilities. 3.2. Relation with theuser. For example, if an NSFExternal Information Model Note: the symbology used from this point forward isawaretaken from section 3.3 of [I-D.draft-ietf-supa-generic-policy-info-model]. The I2NSF NSF-Facing Interface is in charge of selecting and managing theIP (or MAC) address associated with the user,NSFs using their Capabilities. This is done using the following approach: 1) Each NSFcan use a pre-defined or dynamically learned name- address association to enforceregisters its Capabilities with thesecurity functions for this given user (or user group); * Schedule: Time or time rangemanagement system whenpacket or flow is received; * Region: The geographic location where network traffic is received; * Target:it "joins", and hence makes its Capabilities available to the management system; 2) Thetarget indicatessecurity controller selects theentityset of Capabilities required towhichmeet the needs of the securityservices are applied. This can be a service, application, or device. Aserviceis 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 entityfrom all available NSFs thatis connected to the network.it manages; 3) Theattributes that can identify a device include type (e.g., router, switch, pc) and operating system (e.g., Windows, Linux, or Android), as well assecurity controller uses thedevice's owner; * State: It refersCapability information model tovarious statesmatch chosen Capabilities towhich the network flow is associated. It can be eitherNSFs, independent of vendor; 4) The security controller takes theTCP session state (e.g., new, established, related, invalid,above information and creates oruntracked), the session AAA state (e.g., authenticated but not authorized),uses one or more data models from theaccess mode of the device (e.g., wireline, wireless, or cellular; these could be augmented with additional attributes, such asCapability information model to manage thetype of VPNNSFs; 5) Control and monitoring can then begin. This assumes thatis being used); * Direction:an external information model is used to define thedirectionconcept ofthe network flow. o Action: NSFs provide security functions by executing various Actions, which at least includes: ? Ingress actions, such as pass, drop, mirroring, etc; ? Egress actions, such as invoke signaling, tunnel encapsulation, packet forwarding and/or transformation; ? Applying a specific Functional Profile or signature - e.g.,anIPS Profile, a signature file,ECA Policy Rule and its components (e.g., Event, Condition, and Action objects). This enables I2NSF Policy Rules [I-D.draft-ietf-i2nsf-terminology] to be subclassed from ananti-virus file, orexternal information model. Capabilities are defined as classes (e.g., aURL filtering file. It is oneset ofthe key propertiesobjects thatdetermine the effectivenessexhibit a common set ofthe NSF,characteristics and behavior [I-D.draft-ietf-supa-generic-policy-info-model]. Each Capability ismostly vendor- specific today. One goalmade up ofI2NSF is to standardizeat least one model element (e.g., attribute, method, or relationship) that differentiates it from all other objects in theform and functional interface of those security capabilities while supporting vendor-specific implementationssystem. Capabilities are, generically, a type ofeach. However,metadata; hence, it isimportant to properly model the partsalso assumed thatare related to the action (whatan external information model isenforced) andused to define metadata (preferably, in theconditions (on whatform of a class hierarchy). Therefore, it isenforced).assumed that Capabilities are subclassed from an external metadata model. Theabove ECA rulesetCapability sub-model isvery generalused for advertising, creating, selecting, andeasily extensible, thus can avoid any potential constraints which could limit the implementationmanaging a set ofthe networkspecific securitycontrol capability. 4. Information Model An information model will be developed in order to describe in an abstractCapabilities independent of the type and vendorindependent manner allof device that contains theaspects related toNSF. That is, thecapabilitiesuser ofNSFs. A detailed information model will be designed inthenext versions of this draft asNSF-Facing Interface does not care whether the NSF is virtualized or hosted in aconsequencephysical device, who the vendor of thediscussions, feedback,NSF is, andextensions that will originate after the publication of this draft. In this versionwhich set of entities thedraft, we presentNSF is communicating with (e.g., asimplified view that only highlightsfirewall or an IPS). Instead, themost important concepts. The I2NSF capability interface is in charge of controlling and managinguser only cares about theNSFs by meansset of Capabilities that theinformation about the capabilities eachNSFowns. Thishas, such as packet filtering or deep packet inspection. The overall structure isdone using the following approach: 1) User of the capability interface selectsillustrated in the figure below: +-------------------------+ 0..n 0..n +---------------+ | |/ \ \| External | | External ECA Info Model + A ----------------+ Metadata | | |\ / Aggregates /| Info Model | +-----------+------------+ Metadata +-------+-------+ | / \ | | / \ | Subclasses derived for I2NSF | +-----+------+ | Capability | | Sub-Model | +------------+ Figure 1. The Overall I2NSF Information Model Design This draft defines a set ofcapabilities requiredextensions tomeeta generic, external, ECA Policy Model to represent various NSF ECA Security Policy Rules. It also defines theneedsCapability Sub-Model. Finally, it places requirements on what type ofthe application; 2) A management entity uses the information model to match chosen capabilitiesextensions are required toNSFs, independent of vendor; 3) A management entity takestheabovegeneric, external, ECA information model andcreates or uses vendor-specific data modelsmetadata models, in order toinstallmanage theNSFs identified bylifecycle of I2NSF Capabilities. Both of thechosen capabilities; 4) Control and monitoring can then begin. This assumes that anexternalmodel, 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). Since Capabilities are unambiguous only within the same management system, and aremodels shown in Figure 1 could, but do notinherent 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 defininghave to, be based on the SUPA information modelof the Capabilities uses the sub-classing to define non-overlapping and independent concepts. For instance,[I-D.draft-ietf-supa-generic-policy-info-model]. Note that classes in the Capabilitymodel thatSub-Model willbe presented ininherit thenext sections that abstractly determinesAggregatesMetadata aggregation from thesecurity policies thatExternal Metadata Information Model. The external ECA Information Model supplies at least aNSF can enforce does not overlap with an independent modelset of objects thatspecifies howrepresent aNSFgeneric ECA Policy Rule, and a set of objects that represent Events, Conditions, and Actions that can becontactedaggregated by thecontrollergeneric ECA Policy Rule. This enables I2NSF to reuse this generic model for different purposes, as well as specialize it (i.e., create new model objects) to represent I2NSF-specific concepts. It is assumed that theprotocols and secure channels) and when (i.e.,external ECA Information Model has theeventsability towhich it reacts).aggregate metadata. Capabilities are then sub-classed from an appropriate class in the externalmetadata model. The capability interface is used for advertising, creating, selecting and managing a set of specific security capabilities independent ofMetadata Information Model; this enables thetypeECA objects to use the existing aggregation between them andvendorMetadata to add Metadata to appropriate ECA objects. Detailed descriptions ofdevice that contains the NSF. That is, the usereach portion of thecapability interface does not care whether the NSF is virtualized or hostedinformation model are given ina physical device, the vendor oftheNSF, and which setfollowing sections. 3.3. I2NSF Capability Information Model: Theory ofentities theOperation Capabilities are typically used to represent NSFis communicating with (e.g., a firewall or an IPS). Instead, the user only cares about the set of capabilitiesfunctions thatthe NSF has, such as packet filtering or deep packet inspection. The overall structure is illustratedcan be invoked. Capabilities are objects, and hence, can be used in thefigure below: +-------------------------+ 0..n 0..n +---------------+ | |/ \ \| External | | Externalevent, condition, and/or action clauses of an I2NSF ECAInfo Model + A ----------------+ Metadata | | |\ / Aggregates /| Info Model | +-------------------------+ Metadata +------+--------+ / \ | | | +----+-------+ | Capability | | Sub-Model | +------------+ Figure 1.Policy Rule. TheOverallI2NSFInformation Model Design This draft defines theCapabilitysub-Model shown in Figure 1. This model assumes that another, generic,information modelfor defining ECA policy rules (which includesrefines aspecific one forpredefined metadata model; theCA partapplication of I2NSF Capabilities is done by refining a predefined ECApolicy rules) exists outside of I2NSF. It also assumesPolicy Rule information model thatCapabilities are modeled as metadata, sincedefines how to use, manage, or otherwise manipulate aCapabilityset of Capabilities. In this approach, an I2NSF Policy Rule issomethinga container thatdescribes and/or prescribes functionality about an object, butisnot an inherent partmade up ofthat object. Hence, the Security Capability Sub-Model extendsthree clauses: an event clause, a condition clause, and an action clause. When thegeneric external metadata model. BothI2NSF policy engine receives a set ofthese external models could, but do not have to, draw from the SUPA model [I-D.draft-ietf-supa-generic-policy-info-model]. The externalevents, it matches those events to events in active ECAInformation Model supplies at least a setPolicy Rules. If the event matches, then this triggers the evaluation ofobjects that represent a generic ECAthe condition clause of the matched I2NSF PolicyRule, and aRule. The condition clause is then evaluated; if it matches, then the set ofobjects that represent Events, Conditions, and Actions that can be aggregated byactions in thegeneric ECAmatched I2NSF PolicyRule.Rule MAY be executed. Thisenables I2NSFdocument defines additional important extensions toreuse this generic model for different purposes. It is assumed thatboth the external ECAInformation Model has the ability to aggregate metadata. Capabilities are then sub-classed from an appropriate class inPolicy Rule model and the external Metadata model that are used by the I2NSF Information Model;this enables the ECA objects to use the existing aggregation between themexamples include resolution strategy, external data, andMetadata to add Metadata to appropriate ECA objects. Detailed descriptions of each portion ofdefault action. All these extensions come from theinformationgeometric modelare givendefined inthe following sections. 5. Capabilities for security policy enforcement At present,[Bas12]. A more detailed description is provided in Appendix E; avarietysummary ofNSFs produced by multiple security vendors provide various security capabilities to customers. Multiple NSFs can be combined together to provide security services overthe important points follows. Formally, givennetwork traffic, regardlessa set ofwhetheractions in an I2NSF Policy Rule, theNSFs are implemented as physical or virtual functions. Security Capabilities are intendedresolution strategy maps all the possible subsets of actions todescribean outcome. In other words, thepotentiality that Network Security Functions (NSFs) have for security policy enforcement purposes. Security Capabilities are abstract concepts that are independent ofresolution strategy is included in theactual security control that will implement them. However, every NSF will be associatedI2NSF Policy Rule tothe capabilities it owns. Security Capabilities are requireddecide how toallow differentiating among network functions. It would be a market enabler havingevaluate all the actions in awayparticular I2NSF Policy Rule. This is then extended tosubstituteinclude all possible I2NSF Policy Rules that can be applied in aNSF with an equivalent one (i.e., havingparticular scenario. Hence, thesame functionality). Moreover, Security Capabilities are very useful to reason about generic functions, which may be needed at design time. That is, itfinal action set from all I2NSF Policy Rules isnot needed to refer to a specific product when designingdeduced. Some concrete examples of resolution strategy are thenetwork; ratherFirst Matching Rule (FMR) or Last Matching Rule (LMR) resolution strategies. When no rule matches a packet, thefunctions characterized by their capabilities are considered. Therefore, we have developed another model where Security Capabilities determine whatNSFs may select asecurity control can do in terms of conditions, actions, resolution strategies, external data, if it supportsdefault action,etc. That is, Security Capabilities define without any ambiguityif they support one. Resolution strategies may use, besides intrinsic rule data (i.e., event, condition, and action clauses), "external data" associated to each rule, such as priority, identity of theactions a function can do in termcreator, and creation time. Two examples ofsecuritythis are attaching metadata to the policyenforcement. The Security Capability model is built on a predefined generalaction and/or policymodel. The type of policies that a NSF can enforce is obtained by customizingrule, and associating thegeneralpolicymodelrule withthe Security Capabilityanother class to convey such information.The Capability Model has been preliminarily validated by verifying that is allows3.3.1. I2NSF Condition Clause Operator Types After having analyzed thecorrect description of severalliterature and some existingsecurity controls. 5.1. The CA Policy Model The starting point ofNSFs, thedesigntypes ofour capability modelselectors are categorized as 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 isa simple observation.defined on them. Ashuman beings, we all understand immediately each other when we referan example, the protocol type field of the IP header is an unordered set of integer values associated tosecurity controlsprotocols. The assigned protocol numbers are maintained byjust naming their category. For instance, experts agree on whatthe IANA (http://www.iana.org/assignments/ protocol-numbers/protocol-numbers.xhtml). In this selector, it isa NAT, a filtering control, or a VPN concentrator. Network security experts unequivocally referonly meaningful to"packet filters" as stateless devices ablespecify condition clauses that use either the "equals" or "not equals" operators: proto = tcp, udp (protocol type field equals toallowTCP ordeny packets forwarding based on conditions on source and destination IP addresses, source and destination ports, and IP protocolUDP) proto != tcp (protocol typefields [Alshaer]. Moreover, itfield different from TCP) No other operators are allowed on exact-match selectors. For example, the following isknown that packet filter rulesan invalid condition clause, even if protocol types map to integers: proto < 62 (invalid condition) Range-based selectors areprioritized andordered sets where it is possible to naturally specifya default action. More precisely, packet filters implementranges as they can be easily mapped to integers. As an example, theFirst 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 productsports in thepackets and communications that they can categorize and the states they maintain. Analogous considerations canTCP protocol may beapplied for channel protection protocols, where we all understand that they will protect packets by means of symmetric algorithms whose keys could have been negotiatedrepresented withasymmetric 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. The purpose is to buildamodel 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 inrange-based selector (e.g., 1024-65535). As another example, thecorrect way. 5.2. Geometric Modelfollowing are examples ofCA Policiesvalid condition clauses: source_port = 80 source_port < 1024 source_port < 30000 && source_port >= 1024 Wereferinclude, inthis draft torange-based selectors, thepolicy modelcategory of selectors that have been definedin [Bas12]by Al-Shaer et al. asgeometric model, which is summarized here. Policies are specified"prefix-match" [Alshaer]. These selectors allow the specification of ranges of values by means ofa set of rules insimple regular expressions. The typical case is the"if condition then action" format [RFC3198]. Rules are formed by a condition clauseIP address selector (e.g., 10.10.1.*). There is no need to distinguish between prefix match andan action clause. This model can be further extended to support events, that is, in the Event-Condition-Action paradigms. However,range-based selectors; forour purpose,example, thegeometric model will only be usedaddress range "10.10.1.*" maps todefine the CA part"[10.10.1.0,10.10.1.255]". Another category of selector types includes those based on regular expressions. This selector type is used frequently at theECA 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 actionsapplication layer, where data areeither Allow and Deny, thus A={Allow,Deny}. For channel protection controls, they may be informally writtenoften represented as"enforce confidentiality", "enforce data authentication and integrity", and "enforce confidentiality and data authentication and integrity". However, these actions need tostrings of text. The regex-based selector type also includes string-based selectors, where matching is evaluated using string matching algorithms (SMA) [Cormen]. Indeed, for our purposes, string matching can beinstantiatedmapped tothe technology used, for instance AH-transport mode and ESP-transport mode (and combinations thereof)regular expressions, even if in practice SMA are much faster. For instance, Squid (http://www.squid-cache.org/), amore precise and univocalpopular Web caching proxy that offers various access control Capabilities, allows the definition ofchannel protection actions. Conditions are typed predicates concerning a given selector. A selector describesconditions on URLs that can be evaluated with SMA (e.g., dstdomain) or regex matching (e.g., dstdom_regex). As an example, thevaluescondition clause: "URL = *.website.*" matches all the URLs that contain aprotocol field may take, e.g.,subdomain named website and theIP source selector isones whose path contain theset ofstring ".website.". As another example, the condition clause: "MIME_type = video/*" matches allpossible 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 conditionMIME objects whose type is video. Finally, thesubsetidea ofits selector for which it evaluates to true. A condition onagivencustom check selectormatchesis introduced. For instance, malware analysis can look for specific patterns, and returns apacket if theBoolean valueofif thefield referredpattern is found or not. In order to be properly used by high-level policy-based processing systems (such as reasoning systems and policy translation systems), these custom check selectors can be modeled as black-boxes (i.e., a function that has a defined set of inputs and outputs for a particular state), which provide an associated Boolean output. More examples of custom check selectors will be presented in theselector belongs tonext versions of thecondition. For instance,draft. Some examples are already present inFigure 2 the conditionsSection 6. 3.3.2. Capability Selection and Usage Capability selection and usage ares1 <= S1 (read as s1 subsetbased on the set ofor equalsecurity traffic classification and action features that an NSF provides; these are defined by the Capability model. If the NSF has the classification features needed toS1)identify the packets/flows required by a policy, ands2 <= S2 (s1can enforce the needed actions, then that particular NSF is capable of enforcing the policy. NSFs may also have specific characteristics that automatic processes orequaladministrators need toS2), both s1know when they have to generate configurations, like the available resolution strategies ands2 matchthepacket x1, while only s2 matches x2. S2 ^ Destination port | | | x2 +......o | . | . --+.............+------------------------------------+ | | . | | s | . | | e | . | (rectangle) | g | . | condition clause (c) | m | . | herepossibility to set default actions. The Capability information model can be used for two purposes: describing theaction a is applied | e | . | | n | . | x1=point=packet | t +.............|.............o | | | . | . | --+.............+------------------------------------+ | . . . . | . . . . | . . . . | . . . . | . . . . | . . . . +------------+------+-------------+----------------------+------> | |---- segment = condition in S1 -----| S1 + IP source Figure 2: Geometric representationfeatures provided by generic security functions, and describing the features provided by specific products. The term Generic Network Security Function (GNSF) refers to the classes ofa rule r=(c,a)security functions thatmatches x1 but does not match x2. To consider conditions in different selectors, the decision spaceare known by a particular system. The idea isextended using the Cartesian product because distinct selectors refertodifferent fields, possibly from different protocol headers. Hence, given a policy-enabled elementhave generic components whose behavior is well understood, so thatallowsthedefinitiongeneric component can be used even if it has some vendor- specific functions. These generic functions represent a point ofconditions on the selectors S1, S2,..., Sm (where m isinteroperability, and can be provided by any product that offers thenumber of Selectors available atrequired Capabilities. GNSF examples include packet filter, URL filter, HTTP filter, VPN gateway, anti-virus, anti-malware, content filter, monitoring, and anonymity proxy; these will be described later in a revision of this draft as well as in an upcoming data model contribution. The next section will introduce thesecurity control we wantalgebra tomodel), its selection space is: S=S1 X S2 X ... X Sm To consider conditions in different selectors,define thedecision space is extended usinginformation model of Capability registration. This associates NSFs to Capabilities, and checks whether a NSF has theCartesian product because distinct selectors referCapabilities needed to enforce policies. 3.3.3. Capability Algebra We introduce a Capability Algebra to ensure that the actions of differentfields, possibly from different protocol headers. Accordingly,policy rules do not conflict with each other. Formally, two I2NSF Policy Actions conflict with each other if: o thecondition clause c is a subsetevent clauses ofS: c = s1 X s2 X ... X sm <= S1 X S2 X ... X Sm = S S representseach evaluate to TRUE o thetotalitycondition clauses of each evaluate to TRUE o thepackets that are individually selectable byaction clauses affect thesecurity control to model whensame object in different ways For example, if weuse it to enforce a policy. Unfortunately, nothave two Policies: P1: During 8am-6pm, if traffic is external, then run through FW P2: During 7am-8pm, conduct anti-malware investigation There is no conflict between P1 and P2, since the actions are different. However, consider these two policies: P3: During 8am-6pm, John gets GoldService P4: During 10am-4pm, FTP from allits subsetsusers gets BronzeService P3 and P4 arevalid condition clauses: only hyper-rectangles or unionnow in conflict, because between the hours ofhyper- rectangles (as they are Cartesian product10am and 4pm, the actions ofconditions)P3 and P4 arevalid. This is an intrinsic constraint ofdifferent and apply to thepolicy 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. Insame user (i.e., John). Let us define thegeometric model,concept of a "matched" policy ruleis expressedasr=(c,a), where c <= S (the condition clause is a subset of the selection space),one in which its event andthe action a belongs to A. Rulecondition clausesmatche a packet (rules matche a packet), if all the conditions forming the clauses matchboth evaluate to true. This enables thepacket:actions inFigure 1, thethis policy rulewith condition clause c matchesto be evaluated. Then, thepacket x1 but not x2. The rule set Rinformation model iscomposed of n rules ri=(ci,ai). The decision criteria for the action to apply whendefined by apacket matches two or more rules5-tuple {Ac, Cc, Ec, RSc, Dc}, where: o Ac isabstracted by meansthe set of Actions currently available from theresolution strategy RS: Pow(R) -> A, where Pow(R)NSF; o Cc is thepowerset ofrules in R. Formally, given aConditions currently available from the NSF; o Ec is the set ofrules,Events theresolution strategy maps allNSF is able to respond to. Therefore, thepossible subsetsevent clause ofrules toanactionI2NSF ECA Policy Rule that is written for an NSF will only allow a set of designated events inA. When no rule matches a packet,Ec. For compatibility purposes, we will assume that if Ec={} (that is, Ec is empty), thesecurity controls may selectNSF only accepts CA policies. o RSc is thedefault action d in A, if they support one.set of Resolutionstrategies may use, besides intrinsic rule data (i.e., condition clause and action clause), also ``external data'' associatedStrategies that can be used toeach rule, such as priority, identity ofspecify how to resolve conflicts that occur between thecreator, and creation time. Formally, every rule ri is associated by meansactions of thefunction e(.) to: e(ri) = (ri,f1(ri),f2(ri),...) where E={fj:R -> Xj} (j=1,2,...) is the setsame or different policy rules thatincludes allare matched and contained in this particular NSF; o Dc defines thefunctionsnotion of a Default action thatmap rulescan be used toexternal attributes in Xj. However, E, e, and all the Xj are determinedspecify a predefined action when no other alternative action was matched by theresolution strategy used. A policycurrently executing I2NSF Policy Rule. An analogy isthusthe use of afunction p: S -> A that connects each pointdefault statement in a C switch statement. This field of theselection space to an action taken fromCapability algebra can take the following values: - An explicit actionset A according to the rules in R. By also assuming RS(0)=d (where 0(that has been predefined; typically, this means that it isthe empty-set)fixed andRS(ri)=ai, the policy p can be described withnot configurable), denoted as Dc ={a}. In thisformula p(x)=RS(match{R(x)}). Therefore, incase, thegeometric model, a policy is completely defined byNSF will always use the4-tuple (R,RS,E,d):action as as theruledefault action. - A setR,of explicit actions, denoted Dc={a1,a2, ...}; typically, this means that any **one** action can be used as theresolution function RS,default action. This enables the policy writer to choose one of a predefined setEofmappingsactions {a1, a2, ...} to serve as theexternal attributes, anddefault action. - A fully configurable default action, denoted as Dc={F}. Here, F is a dummy symbol (i.e., a placeholder value) that can be used to indicate that the default actiond. Note that, the geometric model also supports ECA paradigmscan be freely selected bysimply modeling events like an additional selector. 5.3. Condition Types After having analyzed the literature andtheexisting security controls, we have categorizedpolicy editor from thetypes 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,actions Ac available at theprotocol type fieldNSF. In other words, one of theIP header is a unordered set of integer values associated to protocols. The assigned protocol numbers are maintainedactions Ac may be selected by theIANA (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 equalspolicy writer toTCP or UDP) proto != tcp (protocol type field different from TCP)act as the default action. - Noother operators are allowed on exact-match selectors,default action, denoted as Dc={}, forinstance proto < 62 (invalid condition) iscases where the NSF does not allow the explicit selection of avalid 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 mappeddefault action. *** Note tointegers. As an example, the ports inWG: please review theTCP protocol are well represented usingfollowing paragraphs * * Interesting Capability concepts that could be considered for arange-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 meansnext * version ofsimple regular expressions. The typical case istheIP address selectorCapability model and algebra include: * * o Event clause representation (e.g.,10.10.1.*). There is no needconjunctive vs. disjunctive * normal form for Boolean clauses) * o Event clause evaluation function, which would enable more * complex expressions than simple Boolean expressions todistinguish between prefix match and range-based selectors as 10.10.1.* easily mapsbe used * * * o Condition clause representation (e.g., conjunctive vs. * disjunctive normal form for Boolean clauses) * o Condition clause evaluation function, which would enable more * complex expressions than simple Boolean expressions 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.be used * o Action clause evaluation strategies (e.g., execute first * action only, execute last action only, execute all actions, * execute all actions until an action fails) * o Theregex-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 matchinguse of metadata, which can bemappedassociated toregular expressions, even ifboth an I2NSF * Policy Rule as well as objects contained inpractice SMA are much faster. For instance, Squid (http://www.squid-cache.org/), a popular Web caching proxy that offers various access control capabilities, allowsthedefinition of conditions on URLs that can be evaluated with SMA (e.g., dstdomain) or regex matchingI2NSF Policy * Rule (e.g.,dstdom_regex). Asanexample, URL = *.website.* matches all the URLsaction), thatcontain 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 instancedescribe themalware analysis looks for specific patternsobject and/or * prescribe behavior. Descriptive examples include adding * authorship information andreturnsdefining aBoolean value istime period when anexample of custom check selector, if the logic of checking is not seen (nor really interesting) from the outside. In order toNSF * can beproperlyusedby high-level policy based processed (like reasoning systems, refinement systems) these custom check selector need at leastto bedescribed as black-boxes, that is, the list of fields that they process (inputs) in order to return the Boolean verdict (output). Moredefined; prescriptive examples include * defining rule priorities and/or ordering. * * Given two sets ofcustom check selectors will be presented inCapabilities, denoted as * * cap1=(Ac1,Cc1,Ec1,RSc1,Dc1) and * cap2=(Ac2,Cc2,Ec2,RSc2,Dc2), * * two set operations are defined for manipulating Capabilities: * * o Capability addition: * cap1+cap2 = {Ac1 U Ac2, Cc1 U Cc2, Ec1 U Ec2, RSc1, Dc1} * o Capability subtraction: * cap1-cap2 = {Ac1 \ Ac2, Cc1 \ Cc2, Ec1 \ Ec2, RSc1, Dc1} * * In thenext versions ofabove formulae, "U" is thedraft. Some exampleset union operator and "\" isalready present in Section 6. 5.4. Modelthe * set difference operator. * * The addition and subtraction of Capabilitiesfor Policy Specificationare defined as the * addition (set union) andEnforcement Purposes Our modelsubtraction (set difference) ofcapabilities is based on actionsboth the * Capabilities andtraffic classification features. Indeed,their associated actions. Note that **only** theneed for enforcing one of* leftmost (in this case, theactions that a security control can apply to packets/flows is the main reason to use a security control. Moreover, security controls have classification featuresfirst matched policy rule) Resolution * Strategy and Default Action are used. * * Note: actions, events, and conditions are **symmetric**. This means * thatpermitwhen two matched policy rules are merged, theidentification ofresultant actions * and Capabilities are defined as thetarget packets/flowsunion oftheeach individual matched * policy rule. However, both resolution strategies and default actionsenforced, i.e., the selectors presented* are **asymmetric** (meaning that inSection 5.2. A security manager decides for a specific security control depending on the actions and classification features. If the security controlgeneral, they canenforce the needed actions and**not** be * combined, as one hasthe 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 needstoknow NSFs capabilitiesbe chosen). In order toperform its operations. However, security controls maysimplify this, we * havespecific characteristicschosen thatautomatic processes or administrators need to know when they have to generate configurations, liketheavailable**leftmost** resolutionstrategiesstrategy and thepossibility to set* **leftmost** defaultactions. We have ignored, to simplify this presentation, optionsaction are chosen. This enables the developer * togenerate configurations that may have better performance, likeview theuse of chains or ad hoc structures [Taylor]. Adding supportleftmost matched rule as the "base" tothese forms of optimizationwhich other * elements are added. * * As an example, assume that a packet filter Capability, Cpf, iscertainly feasible with* defined. Further, assume that alimited effort but it was outside the scope of this paper,second Capability, called Ctime, * exists, and thatis,it defines time-based conditions. Suppose we need * toshowconstruct a new generic packet filter, Cpfgen, thatadding security awarenessadds * time-based conditions toNFV management and orchestration features is possible. ItCpf. * * * Conceptually, this isonesimply the addition of thetask for future work. Capabilities can be used for two purposes: describing generic security functions,Cpf anddescribing 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 understoodCtime * Capabilities, asfor the network components (i.e.,follows: * Apf = {Allow, Deny} * Cpf = {IPsrc,IPdst,Psrc,Pdst,protType} * Epf = {} * RSpf = {FMR} * Dpf = {A1} * * Atime = {Allow, Deny, Log} * Ctime = {timestart, timeend, datestart, datestop} * Etime = {} * RStime = {LMR} * Dtime = {A2} * * Then, Cpfgen is defined as: * Cpfgen = {Apf U Atime, Cpf U Ctime, Epf U Etime, RSpf, Dpf} * = {Allow, Deny, Log}, * {{IPsrc, IPdst, Psrc, Pdst, protType} U * {timestart, timeend, datestart, datestop}}, * {}, * {FMR}, * {A1} * * In other words, Cpfgen provides three actions (Allow, Deny, Log), * filters traffic based on aswitch5-tuple that is logically ANDed with aswitch* time period, andwe know to useuses FMR; iteven ifprovides A1 as a default action, and * itmay have some vendor- specific functions). These generic functions can be substituted by any product that owns the required capability at instantiation time.does not react to events. * * Note: Wehave analyzed several classesare investigating, for a next revision ofNSFsthis draft, the * possibility toproveadd further operations that do not follow thevalidity of our approach.* symmetric vs. asymmetric properties presented in the previous note. * Wefoundare looking for use cases that may justify the complexity added * by the availability of more Capability manipulation operations. * *** End Note to WG 3.4. Initial NSFs Capability Categories The following subsections define three commonfeatures and defined a setcategories ofgeneric NSFs, including packet filter, URL filter, HTTP filter, VPN gateway, anti-virus, anti-malware,Capabilities: network security, contentfilter, monitoring, anonymity proxy that will be described in a data model TBD. Moreover, we have also categorized common extensionssecurity, and attack mitigation. Future versions of this document may expand both thegeneric 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 hasnumber of categories as well as thecapabilities needed to enforce policies. 5.5. Algebratypes ofcapabilities Our capabilities are defined byCapabilities within a4-tuple, thatgiven category. 3.4.1. Network Security Capabilities Network security isevery NSF N will be associated toa4-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,category thatis,describes thesetinspecting and processing ofallnetwork traffic based on theactions supported by at least oneuse ofthe existing NSFs; o Ac <= XAC is a setpre-defined security policies. The inspecting portion may be thought ofactionsas a packet-processing engine thatdetermineinspects packets traversing networks, either directly or in theactions actually available atcontext of flows with which theNSF N; o XCCpacket isset of allassociated. From thesupported conditions types, that is,perspective of packet-processing, implementations differ in thesetdepths ofallpacket headers and/or payloads they can inspect, theconditionsvarious flow and context states they can maintain, and the actions that can be applied tospecify rules in at least one of the existing NSFs; o Cc <= XCC is the sef of conditions actually available attheNSF N; o XRSCpackets or flows. 3.4.2. Content Security Capabilities Content security isthe setanother category ofallsecurity Capabilities applied to theexisting resolutions strategies, o RSc <= XCC isapplication layer. Through analyzing traffic contents carried in, for example, theset of resolution strategies thatapplication layer, Capabilities can be used tospecify solve conflicts of multiple matching rules at the NSF N; o XDC={F} U XAC, is the setidentify various security functions that are required, such as defending against intrusion, inspecting for viruses, filtering malicious URL or junk email, blocking illegal web access, or preventing malicious data retrieval. Generally, each type ofallthreat in theexisting actions pluscontent security category has adummy symbol F,set of unique characteristics, and requires handling using aplaceholder valueset of methods thatcan be usedare specific toindicatethatthe default action cantype of content. Thus, these NSFs will befreely selectedcharacterized bythe policy editor; and o Dc <= XDC, Dc may be {F},their own content- specific security Capabilities. 3.4.3. Attack Mitigation Capabilities This category of security Capabilities is used toindicate that the default actiondetect and mitigate various types of network attacks. Today's common network attacks can befreely selected by the policy editor, thus it can vary in every policy, or an explicit action {a<=XAC} to indicate thatclassified into thedefault action is fixedfollowing sets: o DDoS attacks: - Network layer DDoS attacks: Examples include SYN flood, UDP flood, ICMP flood, IP fragment flood, IPv6 Routing header attack, andthe policy editor will not have the possibility to choice it. Given cap1=(Ac1,Cc1,RSc1,def1)IPv6 duplicate address detection attack; - Application layer DDoS attacks: Examples include HTTP flood, https flood, cache-bypass HTTP floods, WordPress XML RPC floods, andcap2=(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)ssl DDoS. ocapability subtraction: cap_1-cap_2 = (Ac1\Ac2,Cc1\Cc2,RSc1,def1) Note that addition and subtraction do not alter the resolution strategySingle-packet attacks: - Scanning andthe default action method, as our main intent was to model additionsniffing attacks: IP sweep, port scanning, etc. - malformed packet attacks: Ping ofmodules. As an example, a genericDeath, Teardrop, etc. - special packetfilter that supports the first matching rule resolution strategies, allows the explicit specification of default actions and also supports time-based conditions. The descriptionattacks: Oversized ICMP, Tracert, IP timestamp option packets, etc. Each type of network attack has itscapabilities 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:own networksecurity, content security,behaviors and packet/flow characteristics. Therefore, each type of attackmitigation. 5.6.1. Network Security Networkneeds a special security function, which is advertised as acategory that describes the inspectingset of Capabilities, for detection andprocessingmitigation. The implementation and management of this category ofnetwork traffic based on pre-definedsecuritypolicies. The inspecting portion may be thoughtCapabilities ofas a packet-processing engine that inspects packets traversing networks, either directly or in contextattack mitigation control is very similar toflows withcontent security control. A standard interface, through which thepacket is associated. Fromsecurity controller can choose and customize theperspectivegiven security Capabilities according to specific requirements, is essential. 4. Information Sub-Model for Network Security Capabilities The purpose ofpacket-processing, implementations differ inthedepths of packet headers and/or payloads they can inspect,Capability Information Sub-Model is to define thevarious flow and context states they can maintain,concept of a Capability, andthe actions that canenable Capabilities to beappliedaggregated to appropriate objects. The following sections present thepackets or flows. 5.6.2. Content SecurityNetwork Security, Contentsecurity is another categorySecurity, and Attack Mitigation Capability sub-models. 4.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 securitycapabilitiesfeatures need to be applied toapplication layer. Through detecting the contents carried overthe trafficin 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 accessormalicious data retrieval. Generally, each type of threatnot. Its basic structure is shown in theapplication layer has a setfollowing figure: +---------------------+ +---------------+ 1..n 1..n | | | |/ \ \| A Common Superclass | | ECAPolicyRule + A -------------+ for ECA Objects | | |\ / /| | +-------+-------+ +---------+-----------+ / \ / \ | | | | (subclasses to define Network (subclasses ofunique characteristics,Event, Security ECA Policy Rules Condition, andrequires handlingAction Objects witha setsome extension, for Network Security) such as InspectTraffic) Figure 2. 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 Information Model. The Network Security Sub-Model extends all ofspecific methods. Thus,theseNSFs will be characterized by their own security capabilities. 5.6.3. Attack Mitigation This category of security capabilities is usedobjects in order to define security-specific ECA policy rules, as well as extensions todetect and mitigate various types of network attacks. Today's common network attacks can be classified intothefollowing sets,(generic) Events, Conditions, andeach set further consists ofAction objects. An I2NSF Policy Rule is anumberspecial type ofspecific 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 ?malformed packet attacks: Ping of Death, Teardrop, etc ?special packet attacks: Oversized ICMP, Tracert, IP timestamp option packets, etc Each typePolicy Rule that is in event-condition-action (ECA) form. It consists ofnetwork attack has its own network behaviors and packet/flow characteristics. Therefore, each typethe Policy Rule, components ofattack needs a special security function, which is advertised asacapability, for detectionPolicy Rule (e.g., events, conditions, actions, andmitigation. Overall, the implementationsome extensions like resolution policy, default action andmanagement 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 chooseexternal data), andcustomize the given security capabilities accordingoptionally, metadata. It can be applied tospecific requirements, is essential. 6. Information Sub-Model for Network Security Capabilities The purpose ofboth uni- and bi-directional traffic across theCapability Framework Information Sub-ModelNSF. Each rule isto definetriggered by one or more events. If theconceptset of events evaluates to true, then aCapability from an external metadata model, andset of conditions are evaluated and, if true, enableCapabilitiesa set of actions to beaggregated to appropriate objects. Inexecuted. This takes the followingsections we will presentconceptual form: IF <event-clause> is TRUE IF <condition-clause> is TRUE THEN execute <action-clause> END-IF END-IF In thecases of Network Security, Content Security, and Attack Mitigation sub-models. 6.1. Information Sub-Model forabove example, the Event, Condition, and Action portions of a Policy Rule are all **Boolean Clauses**. Note that Metadata, such as Capabilities, can be aggregated by I2NSF ECA Policy Rules. 4.1.1. Network SecurityThe purposePolicy Rule Extensions Figure 3 shows an example of more detailed design of the ECA Policy Rule subclasses that are contained in the Network Security InformationSub-Model is to defineSub-Model, which just illustrates hownetwork traffic is defined and determine if one ormorenetwork security features need to be applied to the traffic or not. Its basic structure is shown inspecific Network Security Policies are inherited and extended from the SecurityECAPolicyRule class. Any new kinds of specific Network Security Policy can be created by followingfigure: +---------------------+the same pattern of class design as below. +---------------+ | External | ||/ECAPolicyRule | +-------+-------+ / \\| A Common Superclass| |ECAPolicyRule + A -------------+ for ECA Objects+------------+----------+ | SecurityECAPolicyRule ||\ / /|+------------+----------+ |+-------+-------+ +---------+-----------+ / \ / \| +----+-----+--------+-----+----+---------+---------+--- ... | | |(subclasses to define Network (subclasses of Event, Security ECA Policy Rules, Condition, and Action Objects such as InspectTraffic) for Network Security Control)| | | | | | | | | +------+-------+ | +-----+-------+ | +------+------+ | |Authentication| | | Accounting | | |ApplyProfile | | |ECAPolicyRule | | |ECAPolicyRule| | |ECAPolicyRule| | +--------------+ | +-------------+ | +-------------+ | | | | +------+------+ +------+------+ +--------------+ |Authorization| | Traffic | |ApplySignature| |ECAPolicyRule| | Inspection | |ECAPolicyRule | +-------------+ |ECAPolicyRule| +--------------+ +-------------+ Figure 3. Network SecurityInformationInfo Sub-ModelOverview In the above figure,ECAPolicyRule Extensions The SecurityECAPolicyRule is theECAPolicyRule, along withtop of theEvent, Condition, and Action Objects,I2NSF ECA Policy Rule hierarchy. It inherits from the (external) generic ECA Policy Rule, and represents the specialization of this generic ECA Policy Rule to add security-specific 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 theexternal ECA Info Model.next version of this draft). The six SecurityECAPolicyRule subclasses extend the SecurityECAPolicyRule class to represent six different types of Network SecuritySub-Model extends both to define security-specificECApolicy rules, as well as Events, Conditions, and Actions. An I2NSFPolicyRuleRules. It isa special type of Policy Ruleassumed thatisthe (external) generic ECAPolicyRule class defines basic information inevent-condition-action (ECA) form. It consists ofthePolicy Rule, componentsform of attributes, such as an unique object ID, as well as aPolicy Rule (e.g., events, conditions, and actions),description andoptionally, metadata. It canother necessary information. *** Note to WG * * The design in Figure 3 represents the simplest conceptual design * for network security. An alternative model would beappliedtoboth uni-directional and bi-directional traffic acrossuse a * software pattern (e.g., theNSF. Each rule is triggeredDecorator pattern); this would result * in the SecurityECAPolicyRule class being "wrapped" by one or moreevents. If the set* ofevents evaluates to true, then a setthe six subclasses shown in Figure 3. The advantage ofconditions are evaluated and, if true, enablesuch aset of actions* pattern is tobe executed. An examplereduce the number ofan I2NSF Policy Rule is, in pseudo-code: IF <event-clause> is TRUE IF <condition-clause> is TRUE THEN execute <action-clause> END-IF END-IF Inactive objects at runtime, as * well as offer theabove example,ability to combine multiple actions of different * policy rules (e.g., inspect traffic and then apply a filter) into * one. The disadvantage is that it is a more complex software design. * The design team is requesting feedback from the WG regarding this. * *** End of Note to WG 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. For example, abstract classes may be collapsed into concrete classes. The SecurityECAPolicyRule defines network security policy as a container that aggregates Event, Condition, and Actionportionsobjects, which are described in Section 4.1.3, 4.1.4, and 4.1.5, respectively. Events, Conditions, and Actions can be generic or security-specific. Brief class descriptions ofathese six ECA PolicyRuleRules areall **Boolean Clauses**. 6.1.1.provided in Appendix A. 4.1.2. Network Security Policy RuleExtensions Figure 3 shows an exampleOperation A Network Security Policy consists of one or moredetailed design of theECA PolicyRule subclasses that are contained inRules formed from the information model described above. In simpler cases, where the Event and Condition clauses remain unchanged, then network security may be performed by calling additional network security actions. NetworkSecurity Information Sub-Model, which just illustrates how more specific Network Security Policies are inheritedsecurity policy examines andextended fromperforms basic processing of theSecurityECAPolicyRule class. Any new kindstraffic as follows: 1. The NSF evaluates the Event clause ofspecific Network Security Policya given SecurityECAPolicyRule (which can becreated by following the same pattern of class designgeneric or specific to security, such asbelow. +---------------+ | External | | ECAPolicyRule | +-------+-------+ / \ | | +------------+----------+ | SecurityECAPolicyRule | +------------+----------+ | | +----+-----+--------+-----+----+---------+---------+--- ... | | | | | | | | | | | | +------+-------+ | +-----+-------+ | +------+------+ | |Authentication| | | Accounting | | |ApplyProfile | | |ECAPolicyRule | | |ECAPolicyRule| | |ECAPolicyRule| | +--------------+ | +-------------+ | +-------------+ | | | | +------+------+ +------+------+ +--------------+ |Authorization| | Traffic | |ApplySignature| |ECAPolicyRule| | Inspection | |ECAPolicyRule | +-------------+ |ECAPolicyRule| +--------------+ +-------------+those in Figure4. Network Security Info Sub-Model ECAPolicyRule Extensions The SecurityECAPolicyRule is the top of the I2NSF ECA Policy Rule hierarchy.3). Itinherits from the (external) generic ECA Policy Rulemay use security Event objects todefine Security ECA Policy Rules. The SecurityECAPolicyRule containsdo all or part ofthe attributes, methods, and relationships defined in its superclass, and adds additional concepts thatthis evaluation, which arerequired for Network Security (these will bedefined in section 4.1.3. If thenext versionEvent clause evaluates to TRUE, then the Condition clause of thisdraft). The six SecurityECAPolicyRule subclasses extend theSecurityECAPolicyRuleclass to represent six different types of Network Security ECA Policy Rules. Itisassumed that the (external) generic ECAPolicyRule class defines basic information inevaluated; otherwise, theformexecution ofattributes, such as an unique object ID, as well as a description and other basic, but necessary, information. It is assumed that the (external) generic ECA Policy Rulethis SecurityECAPolicyRule isabstract;stopped, and the next SecurityECAPolicyRule (if one exists) isalso abstract. This enables data model optimizations to be made while making this information model detailed but flexible and extensible.evaluated. 2. TheSecurityECAPolicyRule 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 useCondition clause is then evaluated. It may use security Condition objects to do all or part of this evaluation, which are defined in section4.3.4.4.1.4. If the Condition clause evaluates to TRUE,then the set of Actions in this SecurityECAPolicyRule MUST be executed. Thisit is defined as "matching" the SecurityECAPolicyRule; otherwise, execution of this SecurityECAPolicyRule is stopped, and the next SecurityECAPolicyRule (if one exists) isevaluated;evaluated. 3.If noneThe set ofthe SecurityECAPolicyRulesactions to be executed arematched,retrieved, and then theNSF deniesresolution strategy is used to define their execution order. This process includes using any optional external data associated with thetraffic by default;SecurityECAPolicyRule. 4. Execution then takes one of the following three forms: a. Ifthe traffic matches a rule,one or more actions is selected, then the NSFperforms themay perform those actions as definedActions onby thetraffic.resolution strategy. For example, the resolution strategy may only allow a single action to be executed (e.g., FMR or LMR), or it may allow all actions to be executed (optionally, in a particular order). In these and other cases, the NSF Capability MUST clearly define how execution will be done. It may use security Action objects to do all or part of this execution, which are defined in section4.3.5. If the action is "deny", the NSF blocks the traffic.4.1.5. If the basicactionAction is permit or mirror, the NSF firstly performs that function, and then checks whether certain other securitycapabilitiesCapabilities are referenced in the rule. If yes, go to step 5. If no, the traffic ispermitted;permitted. b. If no actions are selected, and if a default action exists, then the default action is performed. Otherwise, no actions are performed. c. Otherwise, the traffic is denied. 5. If other securitycapabilitiesCapabilities (e.g., the conditions and/or actions implied by Anti-virus orIPS)IPS profile NSFs) are referenced in theSecurityECAPolicyRule, and the Action defined inaction set of therule is permit or mirror,SecurityECAPolicyRule, the NSFperforms the referenced security capabilities. Metadata attached to the SecurityECAPolicyRule MAYcan beused to control how the SecurityECAPolicyRule is evaluated. This is called a Policy Rule Evaluation Strategy. For example, one strategy isconfigured tomatch and executeuse thefirst 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 orderreferenced security Capabilities (e.g.,the priority of each SecurityECAPolicyRule).check conditions or enforce actions). Execution then terminates. 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.4.1.3. Network Security Event Sub-Model Figure104 shows a more detailed design of the Event 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 | +-----+----+ +-------------+ +-----------+ / \ | | |+-----------+---+----------------+--------------+--+-----+---------+----------------+--------------+-- ... | | | | | | | | +-------+----+ +--------+-----+ +--------+-----+ +------+-----+ |UserSecurity| | Device | | System | |TimeSecurity| | Event | | SecurityEvent| | SecurityEvent| | Event | +------------+ +--------------+ +--------------+ +------------+ Figure5.4. Network Security Info Sub-Model Event Class Extensions The four Event classes shown in Figure54 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 Figure10).4). However, this makes it harder to use any generic Event model with the I2NSF events. Assumptions are: -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 Figure104 would be subclasses of the AtomicEvent)Event class); otherwise, a mechanism is needed to be able to group Events into a collection - 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 itBrief class descriptions are provided*** Note to WG: * * The design in Figure 4 represents thefollowing 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 logoffsimplest conceptual design * design for describing Security Events.Information in this Event mayAn alternative model would * beused as part of a testtodetermine ifuse a software pattern (e.g., theCondition clause inDecorator pattern); thisECA Policy Rule should be evaluated or not. Examples include user identification data and the type of connection used by* would result in theuser. The UserSecurityEventSecurityEvent classdefines the following attributes: 6.1.3.1.1. The usrSecEventContent Attribute This is a mandatory string that contains the content of the UserSecurityEvent. The formatbeing "wrapped" by one or * more of thecontent is specifiedfour subclasses shown inthe usrSecEventFormat class attribute, and the typeFigure 4. The advantage ofEvent* such a pattern isdefined into reduce theusrSecEventType class attribute. An examplenumber of active objects at runtime, * as well as offer theusrSecEventContent attribute is the string "hrAdmin", with the usrSecEventFormat set to 1 (GUID) and the usrSecEventType attribute setability to5 (new logon). 6.1.3.1.2.combine multiple events of different * types into one. TheusrSecEventFormat Attribute Thisdisadvantage isa mandatory non-negative enumerated integer, whichthat it isuseda more complex * software design. * *** End of Note tospecify the data typeWG Brief class descriptions are provided in Appendix B. 4.1.4. Network Security Condition Sub-Model Figure 5 shows a more detailed design of theusrSecEventContent attribute.Condition subclasses that are contained in the Network Security Information Sub-Model. Thecontent is specifiedsix Condition classes shown in Figure 5 extend theusrSecEventContent(external) generic Condition classattribute, and the typeto represent Conditions that are ofEventinterest to Network Security. It isdefined inassumed that theusrSecEventType(external) generic Condition classattribute. An example of the usrSecEventContent attributeisthe string "hrAdmin", with the usrSecEventFormat attribute set to 1 (GUID) and the usrSecEventType attribute set to 5 (new logon). 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.1.3. The usrSecEventType Attribute This is a mandatory non-negative enumerated integer, whichabstract, so that data model optimizations may be defined. It isused to specify the type of Eventalso assumed thatinvolves this user. The content and format are specified intheusrSecEventContent and usrSecEventFormatgeneric Condition classattributes, respectively. An example of the usrSecEventContent attribute is the string "hrAdmin", with the usrSecEventFormat attribute set to 1 (GUID) anddefines basic Condition information in theusrSecEventType 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 purposeform of attributes, such as aDeviceSecurityEvent isunique object ID, a description, as well as a mechanism torepresent Events that provide information from the Device that are importantattach zero or more metadata objects toI2NSF Security. Information init. While thisEvent maycould beuseddefined aspart ofattributes in atest to determine ifSecurityCondition class (which would be a subclass of the generic Conditionclause in this ECA Policy Rule should be evaluated or not. Examples include alarmsclass, andvarious device statistics (e.g.,atypesuperclass ofthreshold that was exceeded), which may signaltheneedsix Condition classes shown in Figure 5), this makes it harder to use any generic Condition model with the I2NSF conditions. +---------------------+ +---------------+ 1..n 1..n | | | |/ \ \| A Common Superclass | | ECAPolicyRule+ A -------------+ forfurther action.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 5. Network Security Info Sub-Model Condition Class Extensions *** Note to WG: * * TheDeviceSecurityEvent class definesdesign in Figure 5 represents thefollowing attributes: 6.1.3.2.1. The devSecEventContent Attribute This issimplest conceptual design * for describing Security Conditions. An alternative model would be * to use amandatory string that containssoftware pattern (e.g., thecontentDecorator pattern); this would * result in the SecurityCondition class being "wrapped" by one or * more of theDeviceSecurityEvent.six subclasses shown in Figure 5. Theformatadvantage ofthe contentsuch * a pattern isspecified in the devSecEventFormat class attribute, and the type of Event is defined into reduce thedevSecEventType class attribute. An examplenumber of active objects at runtime, as * well as offer thedevSecEventContent 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 usedability tospecify the data typecombine multiple conditions ofthe 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.* different types into one. ThedevSecEventType Attribute This is a mandatory non-negative enumerated integer, whichdisadvantage isused to specify the type of Eventthatwas 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.it is a more * complex software design. * ThedevSecEventTypeInfo[0..n] Attribute Thisdesign team isan optional arrayrequesting feedback from he WG regarding this. * *** End ofstrings, which is usedNote toprovide 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 actionsWG Brief class descriptions are provided in Appendix C. 4.1.5. Network Security Action Sub-Model Figure 6 shows a more detailed design of thethird array, and additional informationAction subclasses that are contained in thefourth array. 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 theNetwork Security Information Sub-Model. +---------------------+ +---------------+ 1..n 1..n | | | |/ \ \| A Common Superclass | | ECAPolicyRule+ A -------------+ for ECA Objects | | |\ / /| | +---------------+ +-----------+---------+ / \ | | +--------------+--------+------+ | | | | | | +-----+----+ +------+------+ +-----+-----+ | An Eventgenerated 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| | A Condition | | An Action | | ClassDescription| | Class | | Class | +----------+ +-------------+ +-----+-----+ / \ | | +-----------------+---------------+------- ... | | | | | | +---+-----+ +----+---+ +------+-------+ | Ingress | | Egress | | ApplyProfile | | Action | | Action | | Action | +---------+ +--------+ +--------------+ Figure 6. Network Security Info Sub-Model Action Extensions Thepurpose of a SystemSecurityEvent isfour Action classes shown in Figure 6 extend the (external) generic Action class to representEventsActions thatare detected byperform a Network Security Control function. The three Action classes shown in Figure 6 extend themanagement system, instead of Events(external) generic Action class to represent Actions that aregenerated by a user or a device. Information in this Event may be used as partofa testinterest todetermine ifNetwork Security. It is assumed that theCondition clause in this ECA Policy Rule should(external) generic Action class is abstract, so that data model optimizations may beevaluated or not. Examples include an event issued by an analytics systemdefined. It is also assumed thatwarns against a particular patternthe generic Action class defines basic Action information in the form ofunknown user accesses,attributes, such as a unique object ID, a description, as well as a mechanism to attach zero oran Event issued bymore metadata objects to it. While this could be defined as attributes in amanagement system that representsSecurityAction class (which would be asetsubclass ofcorrelated and/or filtered Events. The SystemSecurityEvent class definesthefollowing attributes: 6.1.3.3.1. The sysSecEventContent Attribute This isgeneric Action class, and amandatory string that contains the contentsuperclass of theSystemSecurityEvent. The format ofsix Action classes shown in Figure 6), this makes it harder to use any generic Action model with thecontent is specifiedI2NSF actions. *** Note to WG * The design in Figure 6 represents thesysSecEventFormat class attribute, andsimplest conceptual design * for describing Security Actions. An alternative model would be to * use a software pattern (e.g., thetype of Event is definedDecorator pattern); this would * result in thesysSecEventTypeSecurityAction classattribute. An examplebeing "wrapped" by one or more * of thesysSecEventContent attributethree subclasses shown in Figure 6. The advantage of such a * pattern isthe string "sysadmin3", with the sysSecEventFormat attribute setto1 (GUID), andreduce thesysSecEventType attribute setnumber of active objects at runtime, as * well as offer the ability to2 (audit log cleared). 6.1.3.3.2.combine multiple actions of different * types into one. ThesysSecEventFormat Attribute Thisdisadvantage is that it is amandatory non-negative enumerated integer, whichmore complex * software design. * The design team isused to specifyrequesting feedback from thedata typeWG regarding this. * *** End ofthe 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 isNote torepresent Events thatWG Brief class descriptions aretemporal in nature (e.g., the start or end of a period of time). Time events signify an individual occurrence, or a time period,provided inwhich a significant event happened.Appendix D. 4.2. Informationin 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: 6.1.3.4.1.Model for I2NSF Capabilities ThetimeSecEventPeriodBegin Attribute ThisI2NSF Capability Model isa mandatory DateTime attribute, and represents the beginningmade up of atime period. It has a valuenumber of Capabilities thathas a date and/orrepresent various content security and attack mitigation functions. Each Capability protects against atime component (asspecific type of threat in theJava or Python libraries). 6.1.3.4.2. The timeSecEventPeriodEnd Attributeapplication layer. This isa 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 specifiedshown inISO8601. 6.1.4. Network Security Condition Sub-ModelFigure6 shows a more detailed design of the Condition subclasses that are contained in the Network Security Information Sub-Model. +---------------------+7. +-------------------------+ 0..n 0..n +---------------+1..n 1..n | || |/ \ \|A Common SuperclassExternal | |ECAPolicyRule+ A ----------+ forExternal ECAObjectsInfo Model + A ----------------+ Metadata | | |\ / Aggregates /| Info Model | +-------+-----------------+ Metadata +-----+---------+ |+-------+-------+ +-----------+---------+/ \ | |+--------------+----------+----+ | | | | | | +-----+----+ +------+------+ +-----+-----+ | An Event | | A Condition | | An Action | | Class | | Class | | Class | +----------+ +------+------+ +-----------+/ \ | Subclasses +---------------------------------+--------------+ derived |+--------+----------+------+---+---------+--------+--- ... | | | | |Capability | | for I2NSF | Sub-Model +----------+---------+ | | | SecurityCapability |+-----+-----+|+-------+-------+|+------+-----++----------+---------+ | |Packet| | |PacketPayload| | |Target+----------------------+---+ | | |Security| | |Security+--------+---------+ +----------+--------+ | | | Content Security | || Condition | | | Condition | | | Condition | | +-----------+ | +---------------+ | +------------+ | | | | +------+-------+ +----------+------+ +--------+-------+ | UserSecurity | | SecurityContextAttack Mitigation | |GenericContext| + Capabilities |Condition| Capabilities |Condition| |Condition+------------------+ +-------------------+ |+--------------+ +-----------------+ +----------------++------------------------------------------------+ Figure6. Network7. I2NSF SecurityInfo Sub-Model Condition Class Extensions The six Condition classes shown inCapability High-Level Model Figure6 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 as7 shows amechanismcommon I2NSF Security Capability class, called SecurityCapability. This enables us toattach zero or more metadata objectsadd common attributes, relationships, and behavior toit. Whilethiscould be defined as attributes in a SecurityConditionclass(which would be a subclass ofwithout affecting thegeneric Condition class, and a superclassdesign of thesix Condition classes shown in Figure 11), this makes it harder to use any generic Condition model with theexternal metadata information model. All I2NSFconditions. Brief class descriptionsSecurity Capabilities areprovidedthen subclassed from the SecuritCapability class. Note: the SecurityCapability class will be defined in thefollowing sub-sections. 6.1.4.1. PacketSecurityCondition The purposenext version of thisClassdraft, after feedback from the WG isto represent packet header information that can be used as partobtained. 4.3. Information Model for Content Security Capabilities Content security is composed of atest to determine if the setnumber ofPolicy Actionsdistinct security functions; each such function protects against a specific type of threat inthis ECA Policy Rule should be executed or not. This class is abstract, and serves asthesuperclassapplication layer. Content security is a type ofmore detailed conditions that involve different typesGeneric Network Security Function, which summarizes a well-defined set ofpacket formats. Its subclasses aresecurity Capabilities, and was shown in Figure7, and are defined in the following sections. +-------------------------+7. Figure 8 shows exemplary types of content security Generic Network Security Function. +--------------------------------------------------------------+ |PacketSecurityCondition+--------------------+ |+------------+------------+| Capability | SecurityCapability | | | Sub-Model: +---------+----------+ | | Content Security / \ | |+---------+----------+---+-----+----------+| | | | | | +-------+----------+----------+---------------+ | | | |+--------+-------+|+--------+-------+|+--------+-------+|PacketSecurity| +-----+----+ | +-------+----+ +-------+------+ |PacketSecurity| |Anti-Virus| | |PacketSecurityIntrusion | |MACConditionAttack | | |IPv4Condition|Capability| | | Prevention |IPv6Condition|+----------------+Mitigation |+----------------+|+----------------+| +----------+ | |+--------+-------+ +--------+-------+Capability |TCPCondition| Capabilities |UDPCondition|+----------------+ +----------------+| | +------------+ +--------------+ | | | | | +--------+----+------------+-----------+--------+ | | | | | | | | | +----+-----+ +-----+----+ +-----+----+ +----+-----+ | | | | URL | | Mail | | File | | Data | | | | |Filtering | |Filtering | |Filtering | |Filtering | | | | |Capability| |Capability| |Capability| |Capability| | | | +----------+ +----------+ +----------+ +----------+ | | | | | | +----------------+------------------+----+ | | | | | | | +------+------+ +------+------+ +---------+---------+ | | |PacketCapture| |FileIsolation| |ApplicationBehavior| | | | Capability | | Capability | | Capability | | | +-------------+ +-------------+ +-------------------+ | +--------------------------------------------------------------+ Figure7.8. Network SecurityInfo Sub-Model PacketSecurityCondition Class Extensions 6.1.4.1.1. PacketSecurityMACConditionCapability Information Model Thepurposedetailed description about a standard interface, and the parameters for all the security Capabilities of thisClass is to represent packet MAC packet header information that cancategory, will beused as part ofdefined in atest to determine if the setfuture version ofPolicy Actions inthisECA Policy Rule should be executed or not. This class is concrete, and defines the following attributes: 6.1.4.1.1.1. The pktSecCondMACDest Attribute Thisdocument. 4.4. Information Model for Attack Mitigation Capabilities Attack mitigation is composed of amandatory string attribute, and defines the MAC destination address (6 octets long). 6.1.4.1.1.2. The pktSecCondMACSrc Attribute Thisnumber of Generic Network Security Functions; each one protects against a specific type of network attack. Attack Mitigation security is amandatory 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 membershiptype of Generic Network Security Function, which summarizes a well-defined set of security Capabilities, and802.1p priority values. 6.1.4.1.1.4.was shown in Figure 7. Figure 9 shows exemplary types of Attack Mitigation Generic Network Security Functions. +---------------------------------------------------------------+ | +--------------------+ | | Capability | SecurityCapability | | | Sub-Model: +---------+----------+ | | Attack Mitigation / \ | | | | | | | | +-------+--------+------------+-------------+ | | | | | | | | +-----+----+ | +-----+----+ +-------+------+ | | | SSLDDoS | | | PortScan | | Content | | | |Capability| | |Capability| | Security | | | +----------+ | +----------+ | Capabilities | | | | +--------------+ | | | | | +--------+----+------------+-----------+--------+ | | | | | | | | | +----+-----+ +-----+----+ +-----+----+ +----+-----+ | | | | SYNFlood | | UDPFlood | |ICMPFlood | | WebFlood | | | | |Capability| |Capability| |Capability| |Capability| | | | +----------+ +----------+ +----------+ +----------+ | | | | | | +-----------------+--------------+-----------+ | | | | | | | +-------+-------+ +-------+------+ +-----+-----+ +-----+----+ | | |IPFragmentFlood| |DNSAmplication| |PingOfDeath| | IPSweep | | | | Capability | | Capability | |Capability | |Capability| | | +---------------+ +--------------+ +-----------+ +----------+ | +---------------------------------------------------------------+ Figure 9. Attack Mitigation Capability Information Model ThepktSecCondMACEtherType Attribute This isdetailed description about amandatory string attribute, and defines the EtherType field (2 octets long). Values up tostandard interface, andincluding 1500 indicatethesize ofparameters for all thepayload in octets; valuessecurity Capabilities of1536 and above define which protocol is encapsulatedthis category, will be defined inthe payloada future version ofthe frame. 6.1.4.1.1.5.this document. 5. Security Considerations ThepktSecCondMACTCI Attribute This is an optional string attribute, and definessecurity Capability policy information sent to NSFs should be protected by theTag 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 issecure communication channel, torepresent packet IPv4 packet header informationensure its confidentiality and integrity. Note that the NSFs and security controller can all beused as part ofspoofed, which leads to undesirable results (e.g., security policy leakage from security controller, or atestspoofed security controller sending false information todetermine ifmislead theset of Policy Actions in this ECA Policy Rule shouldNSFs). Hence, mutual authentication MUST beexecuted or not. This class is concrete, and defines the following attributes: 6.1.4.1.2.1.supported to protected against this kind of attack. ThepktSecCondIPv4SrcAddr Attribute This is a mandatory string attribute,current mainstream security technologies (i.e., TLS, DTLS, anddefinesIPSEC) can be employed to protect against theIPv4 Source Address (32 bits). 6.1.4.1.2.2. The pktSecCondIPv4DestAddr Attribute This isabove threats. In addition, to defend against DDoS attacks caused by amandatory string attribute, and defineshostile security controller sending too many configuration messages to theIPv4 Destination Address (32 bits). 6.1.4.1.2.3.NSFs, rate limiting or similar mechanisms should be considered. 6. IANA Considerations TBD 7. Contributors ThepktSecCondIPv4ProtocolUsed Attribute This is a mandatory string attribute,following people contributed to creating this document, anddefines the protocol usedare listed below inthe 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,alphabetical order: Antonio Lioy (Politecnico di Torino) Dacheng Zhang (Huawei) Edward Lopez (Fortinet) Fulvio Valenza (Politecnico di Torino) Kepeng Li (Alibaba) Luyuan Fang (Microsoft) Nicolas Bouthors (QoSmos) 8. References 8.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3539] Aboba, B., anddefines the total length of the packet (including headerWood, J., "Authentication, Authorization, anddata) in bytes (16 bits). 6.1.4.1.2.7. The pktSecCondIPv4TTL Attribute This is a mandatory string attribute,Accounting (AAA) Transport Profile", RFC 3539, June 2003. 8.2. Informative References [RFC2975] Aboba, B., et al., "Introduction to Accounting Management", RFC 2975, October 2000. [I-D.draft-ietf-i2nsf-problem-and-use-cases] Hares, S., et.al., "I2NSF Problem Statement anddefines the Time To Live in seconds (8 bits). 6.1.4.1.3. PacketSecurityIPv6Condition The purpose of this Class isUse cases", draft-ietf-i2nsf-problem-and-use-cases-11, March 2017. [I-D.draft-ietf-i2nsf-framework] Lopez, E., et.al., "Framework for Interface torepresent packet IPv6 packet header information that can be used as part of a testNetwork Security Functions", draft-ietf-i2nsf-framework-04, October, 2016. [I-D.draft-ietf-i2nsf-terminology] Hares, S., et.al., "Interface todetermine if the set ofNetwork Security Functions (I2NSF) Terminology", draft-ietf-i2nsf-terminology-03, March, 2017 [I-D.draft-ietf-supa-generic-policy-info-model] Strassner, J., Halpern, J., van der Meer, S., "Generic PolicyActions in this ECAInformation Model for Simplified Use of PolicyRule 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 definesAbstractions (SUPA)", Woaft-ietf-supa-generic-policy-info-model-02, October, 2016. [I-D.draft-zhang-i2nsf-info-model-monitoring] Zhang, D., et al., "An Information Model for theIPv6 Source Address (128 bits). 6.1.4.1.3.2. The pktSecCondIPv6DestAddr Attribute This is a mandatory string attribute,Monitoring of Network Security Functions (NSF)", draft-zhang-i2nsf-info-model-monitoring-02, September, 2016. [Alshaer] Al Shaer, E. anddefines the IPv6 Destination Address (128 bits). 6.1.4.1.3.3. The pktSecCondIPv6DSCP Attribute This is a mandatory string attribute,H. Hamed, "Modeling anddefines the Differentiated Services Code Point field (6 bits). It consistsmanagement ofthe six most significant bitsfirewall policies", 2004. [Bas12] Basile, C., Cappadonia, A., and A. Lioy, "Network-Level Access Control Policy Analysis and Transformation", 2012. [Bas15] Basile, C. and Lioy, A., "Analysis ofthe Traffic Class fieldapplication-layer filtering policies with application to HTTP", IEEE/ACM Transactions on Networking, Vol 23, Issue 1, February 2015. [Cormen] Cormen, T., "Introduction to Algorithms", 2009. [Hohpe] Hohpe, G. and Woolf, B., "Enterprise Integration Patterns", Addison-Wesley, 2003, ISBN 0-32-120068-3 [Lunt] van Lunteren, J. and T. Engbersen, "Fast and scalable packet classification", IEEE Journal on Selected Areas inthe IPv6 header. 6.1.4.1.3.4. The pktSecCondIPv6ECN Attribute ThisCommunication, vol 21, Issue 4, September 2003. [Martin] Martin, R.C., "Agile Software Development, Principles, Patterns, and Practices", Prentice-Hall, 2002, ISBN: 0-13-597444-5 [OODMP] http://www.oodesign.com/mediator-pattern.html [OODOP] http://www.oodesign.com/observer-pattern.html [OODSRP] http://www.oodesign.com/single-responsibility-principle.html Appendix A. Network Security Capability Policy Rule Definitions Six exemplary Network Security Capability Policy Rules are introduced in this Appendix to clarify how to create different kinds of specific ECA policy rules to manage Network Security Capabilities. Note that there is amandatory string attribute, andcommon pattern that definesthe Explicit Congestion Notification field (2 bits). It consistshow these ECAPolicyRules operate; this simplifies their implementation. All ofthe two least significant bitsthese six ECA Policy Rules are concrete classes. In addition, none ofthe Traffic Class field in the IPv6 header. 6.1.4.1.3.5. The pktSecCondIPv6FlowLabel Attributethese six subclasses define attributes. Thisis a mandatory string attribute, and defines an IPv6 flow label. This, in combination with the Source and Destination Address fields,enablesefficient 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,them to be viewed as simple object containers, anddefines the total lengthhence, applicable to a wide variety of content. It also means that thepacket (includingcontent of thefixed and any extension headers, and data) in bytes (16 bits). 6.1.4.1.3.7. The pktSecCondIPv6NextHeader Attribute Thisfunction (e.g., how an entity isa mandatory string attribute, and definesauthenticated, what specific traffic is inspected, or which particular signature is applied) is defined solely by thetypeset of events, conditions, and actions that are contained by thenext header (e.g., which extension header to use) (8 bits). 6.1.4.1.3.8. The pktSecCondIPv6HopLimit Attributeparticular subclass. Thisis a mandatory string attribute, and definesenables themaximum numberpolicy rule, with its aggregated set ofhops that this packet can traverse (8 bits). 6.1.4.1.4. PacketSecurityTCPConditionevents, conditions, and actions, to be treated as a reusable object. A.1. AuthenticationECAPolicyRule Class Definition The purpose ofthis Classan AuthenticationECAPolicyRule is torepresent packet TCP packet header informationdefine an I2NSF ECA Policy Rule that canbe used as partverify whether an entity has an attribute of atest to determine if the set of Policy Actions in this ECA Policy Rule should be executed or not.specific value. A high-level conceputal figure is shown below. +----------------+ +----------------+ 1..n 1...n | | | |/ \ HasAuthenticationMethod \| Authentication | | Authentication + A ----------+-----------------+ Method | | ECAPolicyRule |\ / ^ /| | | | | +----------------+ +----------------+ | | +------------+-------------+ | AuthenticationRuleDetail | +------------+-------------+ / \ 0..n | | PolicyControlsAuthentication | / \ A \ / 0..n +----------+--------------+ | ManagementECAPolicyRule | +-------------------------+ Figure 10. Modeling Authentication Mechanisms This classis concrete, and definesdoes NOT define thefollowing attributes: 6.1.4.1.4.1. The pktSecCondTPCSrcPort Attributeauthentication method used. This isa mandatory string attribute, and definesbecause this would effectively "enclose" this information within theSource Port (16 bits). 6.1.4.1.4.2. The pktSecCondTPCDestPort AttributeAuthenticationECAPolicyRule. Thisis a mandatory string attribute, and defineshas two drawbacks. First, other entities that need to use information from theDestination Port (16 bits). 6.1.4.1.4.3. The pktSecCondTPCSeqNum Attribute This is a mandatory string attribute, and definesAuthentication class(es) could not; they would have to associate with thesequence number (32 bits). 6.1.4.1.4.4. The pktSecCondTPCFlags Attribute This is a mandatory string attribute,AuthenticationECAPolicyRule class, anddefinesthose other classes would not likely be interested in thenine Control bit flags (9 bits). 6.1.4.1.5. PacketSecurityUDPCondition The purposeAuthenticationECAPolicyRule. Second, the evolution ofthis Class is to represent packet UDP packet header information that cannew authentication methods should beused as partindependent ofa test to determine iftheset of Policy Actions inAuthenticationECAPolicyRule; thisECA Policy Rule should be executed or not. This class is concrete, and definescannot happen if thefollowing attributes: 6.1.4.1.5.1. The pktSecCondUDPSrcPort Attribute This is a mandatory string attribute, and definesAuthentication class(es) are embedded in theUDP Source Port (16 bits). 6.1.4.1.5.2. The pktSecCondUDPDestPort AttributeAuthenticationECAPolicyRule. Thisis a mandatory string attribute, anddocument only defines theUDP Destination Port (16 bits). 6.1.4.1.5.3. The pktSecCondUDPLength Attribute This is a mandatory string attribute,AuthenticationECAPolicyRule; all other classes, anddefinesthelengthaggregations, are defined inbytesan external model. For completeness, descriptions of how theUDP header and data (16 bits). 6.1.4.2. PacketPayloadSecurityCondition The purpose of this Class is to represent packet payload data that can betwo aggregations are usedas part of a test to determine ifare described below. Figure 10 defines an aggregation between an external class, which defines one or more authentication methods, and an AuthenticationECAPolicyRule. This decouples thesetimplementation ofPolicy Actions in this ECA Policy Rule should be executed or not. Examples include a specific set of bytesauthentication mechanisms from how authentication mechanisms are managed and used. Since different AuthenticationECAPolicyRules can use different authentication mechanisms in different ways, thepacket payload. 6.1.4.3. TargetSecurityCondition The purpose of this Classaggregation isto represent information about different targetsrealized as an association class. This enables the attributes and methods ofthis policythe association class (i.e.,entitiesAuthenticationRuleDetail) towhich this policy rule should be applied), which canbe usedas part of a testtodetermine if the set of Policy Actions in this ECA Policy Rule should be executed or not. Examples include whether the targeted entities are playing the same role, or whether each devicedefine how a given AuthenticationMethod isadministeredused by a particular AuthenticationECAPolicyRule. Similarly, thesame setPolicyControlsAuthentication aggregation defines Policy Rules to control the configuration ofusers, groups, or roles.the AuthenticationRuleDetail association class. ThisClass has several important subclasses, including: a. ServiceSecurityContextCondition isenables thesuperclass for all information that canentire authentication process to beused in anmanaged by ECAPolicy Rule that specifiesPolicyRules. Note: a dataabout the type of servicemodel MAY choose tobe analyzed (e.g.,collapse this design into a more efficient implementation. For example, a data model could define two attributes for theprotocol typeAuthenticationECAPolicyRule class (e.g., called authenticationMethodCurrent andport number) b. ApplicationSecurityContextCondition isauthenticationMethodSupported), to represent thesuperclass for all information that canHasAuthenticationMethod aggregation and its association class. The former would beused inaECA Policy Rule that specifies datastring attribute thatidentifies a particular application (including metadata, such as risk level) c. DeviceSecurityContextCondition isdefines thesuperclass for all information that can becurrent authentication method usedin a ECA Policy Rule that specifies data aboutby this AuthenticationECAPolicyRule, while the latter would define adevice type and/or device OS that is being used 6.1.4.4. UserSecurityConditionset of authentication methods, in the form of an authentication Capability, which this AuthenticationECAPolicyRule can advertise. A.2. AuthorizationECAPolicyRuleClass Definition The purpose ofthis Classan AuthorizationECAPolicyRule is torepresent data about the user or group referenced in thisdefine an I2NSF ECA Policy Rule that canbe used as part of a test todetermine whether access to a resource should be given and, ifthe set of Policy Actions in this ECA Policy Ruleso, what permissions should beevaluated or not. Examples includegranted to theuser or group id used,entity that is accessing thetype of connection used, whether a given user or groupresource. This class does NOT define the authorization method(s) used. This isplaying a particular role, or whether a given user or groupbecause this would effectively "enclose" this information within the AuthorizationECAPolicyRule. This hasfailedtwo drawbacks. First, other entities that need tologin a particular number of times. 6.1.4.5. SecurityContextCondition The purpose of this Class isuse information from the Authorization class(es) could not; they would have torepresent security conditions that are partassociate with the AuthorizationECAPolicyRule class, and those other classes would not likely be interested in the AuthorizationECAPolicyRule. Second, the evolution ofa specific context, which cannew authorization methods should beused as partindependent ofa test to determinethe AuthorizationECAPolicyRule; this cannot happen if theset of Policy ActionsAuthorization class(es) are embedded in the AuthorizationECAPolicyRule. Hence, thisECA 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. 6.1.5. Network Security Action Sub-Model Figure 7 shows a more detailed design of the Action subclasses that are contained indocument recommends theNetwork Security Information Sub-Model. +---------------------+following design: +---------------+ +----------------+ 1..n1..n1...n | | | |/ \ HasAuthorizationMethod \|A Common SuperclassAuthorization | |ECAPolicyRule+Authorization + A----------+ for ECA Objects----------+----------------+ Method | | ECAPolicyRule |\ / ^ /| |+---------------+ +-----------+---------+ / \ | | +--------------+--------+------+ | | | | | | +-----+----+ +------+------+ +-----+-----+ | An Event | | A Condition | | An Action| |Class| +---------------+ +----------------+ |Class| +------------+------------+ |ClassAuthorizationRuleDetail |+----------+ +-------------+ +-----+-----++------------+------------+ / \ 0..n | |+------------+-------------+------------------+-------- ... | | | | | | | | +----+----+ +----+---+ +------+-------+ +-------+--------+ | Ingress | | Egress | | ApplyProfile | | ApplySignature | | Action | | Action | | ActionPolicyControlsAuthorization | / \ A \ / 0..n +----------+--------------+ |ActionManagementECAPolicyRule |+---------+ +--------+ +--------------+ +----------------++-------------------------+ Figure7. Network Security Info Sub-Model Action Extensions The four Action classes shown11. Modeling Authorization Mechanisms This document only defines the AuthorizationECAPolicyRule; all other classes, and the aggregations, are defined inFigure 7 extendan external model. For completeness, descriptions of how the(external) generic Actiontwo aggregations are used are described below. Figure 11 defines an aggregation between the AuthorizationECAPolicyRule and an external classto represent Actionsthatperform a Network Security Control function. Brief class descriptionsdefines one or more authorization methods. This decouples the implementation of authorization mechanisms from how authorization mechanisms areprovidedmanaged and used. Since different AuthorizationECAPolicyRules can use different authorization mechanisms in different ways, thefollowing sub-sections. 6.1.5.1. IngressAction The purpose of this Classaggregation isto represent actions performed on packets that enterrealized as anNSF. Examples include pass, drop, mirror traffic. 6.1.5.2. EgressAction The purposeassociation class. This enables the attributes and methods ofthis Class isthe association class (i.e., AuthorizationRuleDetail) torepresent 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 isbe used torepresent applyingdefine how aprofile to packets to perform content security and/or attack mitigation control. 6.1.5.4. ApplySignatureAction The purpose of this Classgiven AuthorizationMethod isto represent applyingused by asignature file to packetsparticular AuthorizationECAPolicyRule. Similarly, the PolicyControlsAuthorization aggregation defines Policy Rules toperform content security and/or attack mitigation control. 6.2. Information Model for Content Security Control The block for content securitycontrolis composedthe configuration of the AuthorizationRuleDetail association class. This enables the entire authorization process to be managed by ECA PolicyRules. Note: anumber of security capabilities, while each one aims for protecting againstdata model MAY choose to collapse this design into aspecific type of threat in the application layer. Following figure showsmore efficient implementation. For example, abasic structure ofdata model could define two attributes for theinformation model: +----------------------------------+ | | | | | Anti-Virus | | Intrusion Prevention | | URL Filtering | | File Blocking | | Data Filtering | | Application Behavior Control | | Mail FilteringAuthorizationECAPolicyRule 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 I2NSF 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: +-------------+ +----------------+ 1..n 1...n | |Packet Capturing| |/ \ HasAccountingMethod \| Accounting |File Isolation| Accounting + A ----------+--------------+ Method |...| ECAPolicyRule |\ / ^ /| | | | | +-------------+ +----------------+ | | +----------+-----------+ | AccountingRuleDetail | +----------+-----------+ / \ 0..n |Information model| PolicyControlsAccounting |for content security|/ \ A \ / 0..n +----------+--------------+ |controlManagementECAPolicyRule |+----------------------------------++-------------------------+ Figure8. The basic structure of information model for content security control The detailed description about12. Modeling Accounting Mechanisms This document only defines thestandard interfaceAccountingECAPolicyRule; all other classes, and theparameters for allaggregations, are defined in an external model. For completeness, descriptions of how thesecurity capabilitiestwo aggregations are used are described below. Figure 12 defines an aggregation between the AccountingECAPolicyRule and an external class that defines one or more accounting methods. This decouples the implementation ofthis categoryaccounting mechanisms from how accounting mechanisms areTBD. 6.3. Information Model for Attack Mitigation Control The block for attack mitigation controlmanaged and used. Since different AccountingECAPolicyRules can use different accounting mechanisms in different ways, the aggregation iscomposedrealized as an association class. This enables the attributes and methods of the association class (i.e., AccountingRuleDetail) to be used to define how anumbergiven AccountingMethod is used by a particular AccountingECAPolicyRule. Similarly, the PolicyControlsAccounting aggregation defines Policy Rules to control the configuration ofsecurity capabilities, while each one aimsthe AccountingRuleDetail association class. This enables the entire accounting process to be managed by ECA PolicyRules. Note: a data model MAY choose to collapse this design into a more efficient implementation. For example, a data model could define two attributes formitigatingthe AccountingECAPolicyRule class, called (for example) accountingMethodCurrent and accountingMethodSupported, to represent the HasAccountingMethod aggregation and its association class. The former is aspecific type of network attack. Following figure showsstring attribute that defines the current accounting method used by this AccountingECAPolicyRule, while the latter defines abasic structureset ofthe information model: Please viewaccounting methods, ina 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, | |the form of an accounting Capability, which this AccountingECAPolicyRule can advertise. A.4. TrafficInspectionECAPolicyRuleClass Definition The purpose of a TrafficInspectionECAPolicyRule is to define an I2NSF 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: +------------------+ +-------------------+1..n 1..n| | | |/ \ HasTrafficInspection \| Traffic | |DNS amplification,TrafficInspection + A ----------+-------------+ InspectionMethod | | ECAPolicyRule |\ / ^ / | | | |SSL DDoS,| +------------------+ +-------------------+ | | +------------+------------+ | TrafficInspectionDetail | +------------+------------+ / \ 0..n |IP sweep,| PolicyControlsTrafficInspection | / \ A \ / 0..n +----------+--------------+ | ManagementECAPolicyRule || | Port scanning, | | | | | | Ping+-------------------------+ 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 ofDeath, | | | | | | Oversized ICMP | | | | | | | | | | | | ... | | | | | | | | | | | +---------------------+ +---------------+ | | | | Information model | | for attack mitigation| | control | +-------------------------------------------------+how the two aggregations are used are described below. Figure9. The basic structure13 defines an aggregation between the TrafficInspectionECAPolicyRule and an external class that defines one or more traffic inspection mechanisms. This decouples the implementation ofinformationtraffic inspection mechanisms from how traffic inspection mechanisms are managed and 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 Policy Rules to control the configuration of the TrafficInspectionDetail association class. This enables the entire traffic inspection process to be managed by ECA PolicyRules. Note: a data model MAY choose to collapse this design into a more efficient implementation. For example, a data model could define two attributes forattack mitigation controlthe 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 I2NSF 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: +-------------+ +-------------------+ 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 described below. Figure 14 defines an aggregation between the ApplyProfileECAPolicyRule and an external Profile class. 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 Profile is 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 and used by ECA PolicyRules. 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 I2NSF 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: 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 described below. Figure 15 defines an aggregation between the ApplySignatureECAPolicyRule and an external Signature object class. 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. +-------------+ +---------------+ 1..n 1..n | | | |/ \ SignatureApplied \| | | ApplySignature+ A ----------+--------------+ Signature | | ECAPolicyRule |\ / ^ /| | | | | +-------------+ +---------------+ | | +------------+-----------+ | SignatureAppliedDetail | +------------+-----------+ / \ 0..n | | PolicyControlsSignatureApplication | / \ A \ / 0..n +----------+--------------+ | ManagementECAPolicyRule | +-------------------------+ Figure 15. Modeling Sginature Application Mechanisms Similarly, the PolicyControlsSignatureApplication aggregation defines policies to control the configuration of the 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. Appendix B. Network Security Event Class Definitions This Appendix defines a preliminary set of Network Security Event classes, along with their attributes. B.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. B.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). B.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: 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) B.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. Thedetailed description aboutcontent and format are specified in thestandard interfaceusrSecEventContent and usrSecEventFormat class attributes, respectively. An example of thegeneral shared parameters for allusrSecEventContent attribute is thesecurity capabilities of this category are TBD. 7. Security Considerationsstring "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 B.2. DeviceSecurityEvent Class Description Thesecurity capability policypurpose of a DeviceSecurityEvent is to represent Events that provide informationsentfrom the Device that are important toNSFs shouldI2NSF Security. Information in this Event may beprotected by the secure communication channel,used as part of a test toensuredetermine if theconfidentialityCondition clause in this ECA Policy Rule should be evaluated or not. Examples include alarms andintegrity. In another side,various device statistics (e.g., a type of threshold that was exceeded), which may signal theNSFsneed for further action. The DeviceSecurityEvent class defines the following attributes. B.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, andsecurity controller can all be faked,the type of Event is defined 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). B.2.2. The devSecEventFormat Attribute This is a mandatory non-negative enumerated integer, whichlead to undesirable results, i.e., security policy leakage from security controller, faked security controller sending false informationis used tomisleadspecify theNSFs.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) B.2.3. Themutual authenticationdevSecEventType Attribute This isessentiala mandatory non-negative enumerated integer, which is used toprotected againstspecify the type of Event that was generated by thiskinddevice. Values include: 0: unknown 1: communications alarm 2: quality ofattack. The current mainstream security technologies (i.e., TLS, DTLS, IPSEC, X.509 PKI) canservice 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 beemployed appropriatelydefined. B.2.4. The devSecEventTypeInfo[0..n] Attribute This is an optional array of strings, which is used to provide additional information describing theabove security functionalities. In addition, to defend againstspecifics of theDDoS attack causedEvent generated bythe 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 removethissection before publication. 9. References 9.1. Normative References [RFC2119] Bradner, S., "Key words for useDevice. For example, this attribute could contain probable cause information in the first array, trend information inRFCs 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 fortheNetwork Configuration Protocol (NETCONF)", RFC 6020, October 2010. [RFC5511] Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax Used to Form Encoding Rulessecond array, proposed repair actions inVarious 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, <http://www.rfc-editor.org/info/rfc3198>. 9.2. Informative References [INCITS359 RBAC] NIST/INCITS, "American National Standard for Information Technology - Role Based Access Control", INCITS 359, April, 2003 [I-D.draft-ietf-i2nsf-problem-and-use-cases] Hares, S., et.al., "I2NSF Problem Statementthe third array, andUse cases", Workadditional information inProgress, February, 2016. [I-D.draft-ietf-i2nsf-framework] Lopez, E., et.al., "Framework for Interfacethe fourth array. B.2.5. The devSecEventTypeSeverity Attribute This is a mandatory non-negative enumerated integer, which is used toNetwork Security Functions", Workspecify the perceived severity of the Event generated by this Device. Values (which are defined inProgress, October, 2016. [I-D.draft-ietf-i2nsf-terminology] Hares, S., et.al., "InterfaceX.733) include: 0: unknown 1: cleared 2: indeterminate 3: critical 4: major 5: minor 6: warning B.3. SystemSecurityEvent Class Description The purpose of a SystemSecurityEvent is toNetwork 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 Policyrepresent Events that are detected by the management system, instead of Events that are generated by a user or a device. InformationModel for Simplified Usein this Event may be used as part ofPolicy Abstractions (SUPA)", Worka test to determine if the Condition clause inProgress, June, 2016. [I-D.draft-baspez-i2nsf-capabilities-00] Basile C., Lopez D. R., "A Modelthis ECA Policy Rule should be evaluated or not. Examples include an event issued by an analytics system that warns against a particular pattern ofSecurity Capabilities for Network Security Functions", July 2016 [I-D.draft-xia-i2nsf-capability-interface-im-06] Xia L., et al., "Information Modelunknown 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. B.3.1. The sysSecEventContent Attribute This is a mandatory string that contains the content ofInterface to Network Security Functions Capability Interface", June 2016 [Alshaer] Al Shaer, E. and H. Hamed, "Modeling and managementthe SystemSecurityEvent. The format offirewall policies", 2004. [Bas12] Basile, C., Cappadonia, A., and A. Lioy, "Network-Level Access Control Policy Analysis and Transformation", 2012. [Bas15] Basile, C.the content is specified in the sysSecEventFormat class attribute, andA. Lioy, "Analysisthe type ofapplication-layer filtering policiesEvent is defined in the sysSecEventType class attribute. An example of the sysSecEventContent attribute is the string "sysadmin3", withapplication to HTTP", 2015. [Cormen] Cormen, T., "Introductionthe sysSecEventFormat attribute set toAlgorithms", 2009. [Lunt] van Lunteren, J. and T. Engbersen, "Fast and scalable packet classification", 2003. [Taylor] Taylor, D.1 (GUID), andJ. Turner, "Scalable packet classification using distributed crossproductingthe sysSecEventType attribute set to 2 (audit log cleared). B.3.2. The sysSecEventFormat Attribute This is a mandatory non-negative enumerated integer, which is used to specify the data type offield labels", 2004. 10. Acknowledgmentsthe 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) B.3.3. The sysSecEventType Attribute Thisdocument was prepared using 2-Word-v2.0.template.dot. Appendix A. Six exemplaryis 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: policyrulescreated 4: policy edited 5: policy deleted 6: policy executed B.4. TimeSecurityEvent Class Description The purpose of a TimeSecurityEvent is to represent Events that are temporal in nature (e.g., the start or end ofNetwork Security Capability are introduceda period of time). Time events signify an individual occurrence, or a time period, in which a significant event happened. Information in thisAppendix to clarify how to create different kindsEvent may be used as part ofspecific ECA policy rules. Note that there isacommon pattern that defines how these ECAPolicyRules operate;test to determine if the Condition clause in thissimplifies their implementation. All of these sixECA PolicyRules are concrete classes. In addition, none of these six subclasses define attributes. This enables themRule should be evaluated or not. Examples include issuing an Event at a specific time to indicate that a particular resource should not beviewed as simple object containers,accessed, or that different authentication andhence, applicable toauthorization mechanisms should now be used (e.g., because it is now past regular business hours). The TimeSecurityEvent class defines the following attributes. B.4.1. The timeSecEventPeriodBegin Attribute This is awide varietymandatory DateTime attribute, and represents the beginning ofcontent.a time period. Italso meanshas a value that has a date and/or a time component (as in thecontentJava or Python libraries). B.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 thefunction (e.g., how an entity is authenticated, what specific traffic is inspected,Java orwhich particular signaturePython libraries). If this isapplied)a single Event occurence, and not a time period when the Event can occur, then the timeSecEventPeriodEnd attribute may be ignored. B.4.3. The timeSecEventTimeZone Attribute This isdefined solely by the set of events, conditions,a mandatory string attribute, andactionsdefines the time zone thatare contained bythis Event occurred in using theparticular subclass.format specified in ISO8601. Appendix C. Network Security Condition Class Definitions Thisenables the policy rule, with its aggregatedAppendix defines a preliminary set ofevents, conditions, and actions, to be treated as a reusable object. A.1. AuthenticationECAPolicyRule Class DefinitionNetwork Security Condition classes, along with their attributes. C.1. PacketSecurityCondition The purpose ofan AuthenticationECAPolicyRulethis Class is todefine an ECA Policy Rulerepresent packet header information that canverify whether an entity has an attributebe used as part of aspecific value. This class does NOT definetest to determine if theauthentication method used. This is because this would effectively "enclose"set of Policy Actions in thisinformation within the AuthenticationECAPolicyRule.ECA Policy Rule should be executed or not. Thishas 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,class is abstract, andthose other classes would not likely be interested in the AuthenticationECAPolicyRule. Second,serves as theevolutionsuperclass ofnew authentication methods should be independentmore detailed conditions that act on different types ofthe AuthenticationECAPolicyRule; this cannot happen if the Authentication class(es)packet formats. Its subclasses areembeddedshown in Figure 16, and are defined inthe AuthenticationECAPolicyRule. Hence, this document recommendsthe followingdesign: +----------------+ +----------------+ 1..n 1...nsections. +-------------------------+ | PacketSecurityCondition | +------------+------------+ / \ | | +---------+----------+---+-----+----------+ | | | | | | | | | | +--------+-------+ | +--------+-------+ | +--------+-------+ | PacketSecurity | | | PacketSecurity | | ||/ \ HasAuthenticationMethod \| AuthenticationPacketSecurity | |Authentication + A ----------+-----------------+ MethodMACCondition | |ECAPolicyRule |\ / ^ /|| IPv4Condition | | |+----------------+ +----------------+IPv6Condition | +----------------+ |+------------+-------------++----------------+ |AuthenticationRuleDetail+----------------+ |+------------+-------------+ / \ 0..n| +--------+-------+ +--------+-------+ |PolicyControlsAuthenticationTCPCondition |/ \ A \ / 0..n +----------+--------------+|ManagementECAPolicyRuleUDPCondition |+-------------------------++----------------+ +----------------+ Figure10. Modeling Authentication Mechanisms16. Network Security Info Sub-Model PacketSecurityCondition Class Extensions C.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. Thisdocument onlyclass is concrete, and defines theAuthenticationECAPolicyRule; all other classes,following attributes. C.1.1.1. The pktSecCondMACDest Attribute This is a mandatory string attribute, and defines theaggregations, are defined in an external model. For completeness, descriptions of how the two aggregations are used are below. Figure 10MAC destination address (6 octets long). C.1.1.2. The pktSecCondMACSrc Attribute This is a mandatory string attribute, and defines the MAC source address (6 octets long). C.1.1.3. The pktSecCondMAC8021Q Attribute This is anaggregation betweenoptional string attribute, and defines theAuthenticationECAPolicyRule802.1Q tag value (2 octets long). This defines VLAN membership andan externalAuthenticationMethod class (which802.1p priority values. C.1.1.4. The pktSecCondMACEtherType Attribute This islikelyasuperclass for different typesmandatory string attribute, and defines the EtherType field (2 octets long). Values up to and including 1500 indicate the size ofauthentication mechanisms). This decouplestheimplementationpayload in octets; values ofauthentication mechanisms from how authentication mechanisms are used. Since different AuthenticationECAPolicyRules can use different authentication mechanisms1536 and above define which protocol is encapsulated indifferent ways,theaggregationpayload of the frame. C.1.1.5. The pktSecCondMACTCI Attribute This isrealized asanassociation class. This enablesoptional string attribute, and defines theattributesTag Control Information. This consists of a 3 bit user priority field, a drop eligible indicator (1 bit), andmethodsa VLAN identifier (12 bits). C.1.2. PacketSecurityIPv4Condition The purpose ofthe association class (i.e., AuthenticationRuleDetail)this Class is to represent packet IPv4 packet header information that can be used as part of a test todefine howdetermine 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. C.1.2.1. The pktSecCondIPv4SrcAddr Attribute This is agiven AuthenticationMethodmandatory string attribute, and defines the IPv4 Source Address (32 bits). C.1.2.2. The pktSecCondIPv4DestAddr Attribute This isused byaparticular AuthenticationECAPolicyRule. Similarly,mandatory string attribute, and defines thePolicyControlsAuthentication aggregationIPv4 Destination Address (32 bits). C.1.2.3. The pktSecCondIPv4ProtocolUsed Attribute This is a mandatory string attribute, and definespolicies to controltheconfigurationprotocol used in the data portion of theAuthenticationRuleDetail association class.IP datagram (8 bits). C.1.2.4. The pktSecCondIPv4DSCP Attribute Thisenables 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,is adata model could define two attributes formandatory string attribute, and defines theAuthenticationECAPolicyRule class, called (for example) authenticationMethodCurrentDifferentiated Services Code Point field (6 bits). C.1.2.5. The pktSecCondIPv4ECN Attribute This is an optional string attribute, andauthenticationMethodSupported, to representdefines theHasAuthenticationMethod aggregationExplicit Congestion Notification field (2 bits). C.1.2.6. The pktSecCondIPv4TotalLength Attribute This is a mandatory string attribute, and defines the total length of the packet (including header andits association class.data) in bytes (16 bits). C.1.2.7. TheformerpktSecCondIPv4TTL Attribute This is a mandatory stringattribute thatattribute, and defines thecurrent authentication method used by this AuthenticationECAPolicyRule, while the latter defines a set of authentication methods,Time To Live inthe form of an authentication capability, which this AuthenticationECAPolicyRule can advertise. A.2. AuthorizationECAPolicyRuleClass Definitionseconds (8 bits). C.1.3. PacketSecurityIPv6Condition The purpose ofan AuthorizationECAPolicyRulethis Class is todefine 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" thisrepresent packet IPv6 packet header informationwithin the AuthorizationECAPolicyRule. This has two drawbacks. First, other entitiesthatneed 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 shouldcan beindependentused as part ofthe AuthorizationECAPolicyRule; this cannot happena test to determine if theAuthorization class(es) are embeddedset of Policy Actions inthe AuthorizationECAPolicyRule. Hence,thisdocument recommends the following design: +---------------+ +----------------+ 1..n 1...n | | | |/ \ HasAuthorizationMethod \| Authorization | | Authorization + A ----------+----------------+ Method | | ECAPolicyRule |\ / ^ /| | | | | +---------------+ +----------------+ | | +------------+------------+ | AuthorizationRuleDetail | +------------+------------+ / \ 0..n | | PolicyControlsAuthorization | / \ A \ / 0..n +----------+--------------+ | ManagementECAPolicyRule | +-------------------------+ Figure 11. Modeling Authorization MechanismsECA Policy Rule should be executed or not. Thisdocument onlyclass is concrete, and defines theAuthorizationECAPolicyRule; all other classes,following attributes. C.1.3.1. The pktSecCondIPv6SrcAddr Attribute This is a mandatory string attribute, andthe aggregations, are defined in an external model. For completeness, descriptions of how the two aggregations are used are below. Figure 11definesan aggregation betweentheAuthorizationECAPolicyRuleIPv6 Source Address (128 bits). C.1.3.2. The pktSecCondIPv6DestAddr Attribute This is a mandatory string attribute, andan external AuthorizationMethod class (whichdefines the IPv6 Destination Address (128 bits). C.1.3.3. The pktSecCondIPv6DSCP Attribute This islikelyasuperclass for different typesmandatory string attribute, and defines the Differentiated Services Code Point field (6 bits). It consists ofauthorization mechanisms). This decouplestheimplementationsix most significant bits ofauthorization mechanisms from how authorization mechanisms are used. Since different AuthorizationECAPolicyRules can use different authorization mechanismsthe Traffic Class field indifferent ways,theaggregation is realized as an association class.IPv6 header. C.1.3.4. The pktSecCondIPv6ECN Attribute Thisenables the attributes and methods of the association class (i.e., AuthorizationRuleDetail) to be used to define how a given AuthorizationMethodisused byaparticular AuthorizationECAPolicyRule. Similarly, the PolicyControlsAuthorization aggregationmandatory string attribute, and definespolicies to controltheconfigurationExplicit Congestion Notification field (2 bits). It consists of theAuthorizationRuleDetail association class. This enablestwo least significant bits of theentire authorization process to be managed by ECAPolicyRules. Note: a data model MAY choose to collapse this design into a more efficient implementation. For example,Traffic Class field in the IPv6 header. C.1.3.5. The pktSecCondIPv6FlowLabel Attribute This is adata model could define two attributes formandatory 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 theAuthorizationECAPolicyRule class, called (for example) authorizationMethodCurrentIPv6 main header fields (20 bits). C.1.3.6. The pktSecCondIPv6PayloadLength Attribute This is a mandatory string attribute, andauthorizationMethodSupported, to representdefines theHasAuthorizationMethod aggregationtotal length of the packet (including the fixed andits association class.any extension headers, and data) in bytes (16 bits). C.1.3.7. TheformerpktSecCondIPv6NextHeader Attribute This is a mandatory stringattribute thatattribute, and defines thecurrent authorization method used by this AuthorizationECAPolicyRule, whiletype of thelatter definesnext header (e.g., which extension header to use) (8 bits). C.1.3.8. The pktSecCondIPv6HopLimit Attribute This is aset of authorization methods, inmandatory string attribute, and defines theformmaximum number ofan authorization capability, whichhops that thisAuthorizationECAPolicyRulepacket canadvertise. A.3. AccountingECAPolicyRuleClass Definitiontraverse (8 bits). C.1.4. PacketSecurityTCPCondition The purpose ofan AccountingECAPolicyRulethis Class is todefine an ECA Policy Rule that can determine whichrepresent packet TCP packet header informationto collect, and how to collectthatinformation, from which setcan be used as part ofresources fora test to determine if thepurposeset oftrend analysis, auditing, billing,Policy Actions in this ECA Policy Rule should be executed orcost allocation [RFC2975] [RFC3539].not. This classdoes NOT defineis concrete, and defines theaccounting method(s) used.following attributes. C.1.4.1. The pktSecCondTPCSrcPort Attribute This isbecause this would effectively "enclose" this information withina mandatory string attribute, and defines theAccountingECAPolicyRule.Source Port number (16 bits). C.1.4.2. The pktSecCondTPCDestPort Attribute Thishas two drawbacks. First, other entities that need to use information from the Accounting class(es) could not; they would have to associate withis a mandatory string attribute, and defines theAccountingECAPolicyRule class,Destination Port number (16 bits). C.1.4.3. The pktSecCondTCPSeqNum Attribute This is a mandatory string attribute, andthose other classes would not likely be interested indefines theAccountingECAPolicyRule. Second,sequence number (32 bits). C.1.4.4. The pktSecCondTCPFlags Attribute This is a mandatory string attribute, and defines theevolutionnine Control bit flags (9 bits). C.1.5. PacketSecurityUDPCondition The purpose ofnew accounting methods shouldthis Class is to represent packet UDP packet header information that can beindependentused as part ofthe AccountingECAPolicyRule; this cannot happena test to determine if theAccounting class(es) are embeddedset of Policy Actions inthe AccountingECAPolicyRule. Hence,thisdocument recommendsECA Policy Rule should be executed or not. This class is concrete, and defines the followingdesign: +-------------+ +----------------+ 1..n 1...n | | | |/ \ HasAccountingMethod \| Accounting | | Accounting + A ----------+--------------+ Method | | ECAPolicyRule |\ / ^ /| | | | | +-------------+ +----------------+ | | +----------+-----------+ | AccountingRuleDetail | +----------+-----------+ / \ 0..n | | PolicyControlsAccounting | / \ A \ / 0..n +----------+--------------+ | ManagementECAPolicyRule | +-------------------------+ Figure 12. Modeling Accounting Mechanismsattributes. C.1.5.1.1. The pktSecCondUDPSrcPort Attribute Thisdocument onlyis a mandatory string attribute, and defines theAccountingECAPolicyRule; all other classes,UDP Source Port number (16 bits). C.1.5.1.2. The pktSecCondUDPDestPort Attribute This is a mandatory string attribute, and defines theaggregations, are definedUDP Destination Port number (16 bits). C.1.5.1.3. The pktSecCondUDPLength Attribute This is a mandatory string attribute, and defines the length inan external model. For completeness, descriptionsbytes ofhow the two aggregations are used are below. Figure 12 defines an aggregation betweentheAccountingECAPolicyRuleUDP header andan external AccountingMethod class (whichdata (16 bits). C.2. PacketPayloadSecurityCondition The purpose of this Class islikely a superclass for different typesto represent packet payload data that can be used as part ofaccounting mechanisms). This decouplesa test to determine if theimplementationset ofaccounting mechanisms from how accounting mechanisms are used. Since different AccountingECAPolicyRules can use different accounting mechanismsPolicy Actions in this ECA Policy Rule should be executed or not. Examples include a specific set of bytes indifferent ways,theaggregationpacket payload. C.3. TargetSecurityCondition The purpose of this Class isrealized as an association class. This enables the attributes and methodsto represent information about different targets ofthe association classthis policy (i.e.,AccountingRuleDetail)entities to which this Policy Rule should be applied), which can be usedto define how a given AccountingMethod is used byas part of aparticular AccountingECAPolicyRule. Similarly, the PolicyControlsAccounting aggregation defines policiestest tocontroldetermine if theconfigurationset of Policy Actions in this ECA Policy Rule should be executed or not. Examples include whether theAccountingRuleDetail association class.targeted entities are playing the same role, or whether each device is administered by the same set of users, groups, or roles. ThisenablesClass has several important subclasses, including: a. ServiceSecurityContextCondition is theentire accounting process tosuperclass for all information that can bemanaged by ECAPolicyRules. Note: a data model MAY choose to collapse this design into a more efficient implementation. For example, aused in an ECA Policy Rule that specifies datamodel could define two attributes forabout theAccountingECAPolicyRule class, called (for example) accountingMethodCurrent and accountingMethodSupported,type of service torepresentbe analyzed (e.g., theHasAccountingMethod aggregationprotocol type andits association class. The formerport number) b. ApplicationSecurityContextCondition isa string attribute that definesthecurrent accounting methodsuperclass for all information that can be usedby this AccountingECAPolicyRule, while the latter defines a set of accounting methods,in a ECA Policy Rule that specifies data that identifies a particular application (including metadata, such as risk level) c. DeviceSecurityContextCondition is theform of an authorization capability, which this AccountingECAPolicyRulesuperclass for all information that canadvertise. A.4. TrafficInspectionECAPolicyRuleClass Definitionbe used in a ECA Policy Rule that specifies data about a device type and/or device OS that is being used C.4. UserSecurityCondition The purpose ofa TrafficInspectionECAPolicyRulethis Class is todefine anrepresent data about the user or group referenced in this ECA Policy Rulethat, based on a given context,that candetermine which traffic to examine on which devices, which information to collect from those devices, and howbe used as part of a test tocollect that information. This class does NOT definedetermine if thetraffic inspection method(s) used. This is because this would effectively "enclose"set of Policy Actions in thisinformation withinECA Policy Rule should be evaluated or not. Examples include theTrafficInspectionECAPolicyRule. Thisuser 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 hastwo drawbacks. First, other entities that needfailed touse information from the TrafficInspection class(es) could not; they would havelogin a particular number of times. C.5. SecurityContextCondition The purpose of this Class is toassociate with the TrafficInspectionECAPolicyRule class, and those other classes would not likelyrepresent security conditions that are part of a specific context, which can beinterested in the TrafficInspectionECAPolicyRule. Second,used as part of a test to determine if theevolutionset ofnew traffic inspection methodsPolicy Actions in this ECA Policy Rule should beindependentevaluated or not. Examples include testing to determine if a particular pattern of security-related data have occurred, or if theTrafficInspectionECAPolicyRule;current session state matches the expected session state. C.6. GenericContextSecurityCondition The purpose of thiscannot happenClass 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 theTrafficInspection class(es) are embeddedset of Policy Actions inthe TrafficInspectionECAPolicyRule. Hence,thisdocument recommends the following design: +------------------+ +-------------------+1..n 1..n| | | |/ \ HasTrafficInspection \| Traffic | | TrafficInspection + A ----------+-------------+ InspectionMethod | | ECAPolicyRule |\ / ^ / | | | | | +------------------+ +-------------------+ | | +------------+------------+ | TrafficInspectionDetail | +------------+------------+ / \ 0..n | | PolicyControlsTrafficInspection | / \ A \ / 0..n +----------+--------------+ | ManagementECAPolicyRule | +-------------------------+ Figure 13. Modeling Traffic Inspection MechanismsECA Policy Rule should be evaluated or not. Examples include geographic location and temporal information. Appendix D. Network Security Action Class Definitions Thisdocument onlyAppendix definesthe TrafficInspectionECAPolicyRule; all othera preliminary set of Network Security Action classes,and the aggregations, are defined inalong with their attributes. D.1. IngressAction The purpose of this Class is to represent actions performed on packets that enter anexternal model. For completeness, descriptionsNSF. Examples include pass, dropp, or mirror traffic. D.2. EgressAction The purpose ofhow the two aggregations are used are below. Figure 13 definesthis Class is to represent actions performed on packets that exit anaggregation between the TrafficInspectionECAPolicyRuleNSF. Examples include pass, drop, or mirror traffic, signal, andan external TrafficInspection class (which is likely a superclass for different typesencapsulate. D.3. ApplyProfileAction The purpose oftraffic inspection mechanisms). This decouplesthis Class is to define theimplementationapplication oftraffic inspection mechanisms from how traffic inspection mechanisms are used. Since different TrafficInspectionECAPolicyRules can use different traffic inspection mechanismsa profile to packets to perform content security and/or attack mitigation control. Appendix E. Geometric Model The geometric model defined indifferent ways, the aggregation[Bas12] isrealized as an association class. This enablessummarized here. Note that our work has extended theattributes and methodswork ofthe association class (i.e., TrafficInspectionDetail) to be used[Bas12] todefine how a given TrafficInspectionMethodmodel ECA Policy Rules, instead of just condition-action Policy Rules. However, the geometric model in this Appendix is simplified in this version of this I-D, and is usedby a particular TrafficInspectionECAPolicyRule. Similarly, the PolicyControlsTrafficInspection aggregation defines policiestocontroldefine just theconfigurationCA part of theTrafficInspectionDetail association class. This enablesECA model. All theentire traffic inspection processactions available to the security function are well known and organized in an action set A. For filtering controls, the enforceable actions are either Allow or Deny, thus A={Allow,Deny}. For channel protection controls, they may bemanaged by ECAPolicyRules. Note: ainformally written as "enforce confidentiality", "enforce datamodel MAY choose to collapse this design into a more efficient implementation. For example, aauthentication and integrity", and "enforce confidentiality and datamodel could define two attributes for the TrafficInspectionECAPolicyRule class, called (for example) trafficInspectionMethodCurrentauthentication andtrafficInspectionMethodSupported,integrity". However, these actions need to be instantiated torepresenttheHasTrafficInspectionMethod aggregationtechnology used. For example, AH-transport mode andits association class. The former isESP-transport mode (and combinations thereof) are astring attributemore precise definition of channel protection actions. Conditions are typed predicates concerning a given selector. A selector describes the values thatdefinesa protocol field may take. For example, thecurrent traffic inspection method used by this TrafficInspectionECAPolicyRule, whileIP source selector is thelatter defines aset oftraffic inspection methods, inall possible IP addresses, and it may also refer to theformpart 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, atraffic inspection capability, which this TrafficInspectionECAPolicyRule can advertise. A.5. ApplyProfileECAPolicyRuleClass Definition The purpose of an ApplyProfileECAPolicyRulecondition is the subset of its selector for which it evaluates todefine an ECA Policy Rule that, basedtrue. A condition on a givencontext, can applyselector matches aparticular profilepacket if the value of the field referred tospecific traffic. The profile definesby thesecurity capabilities for content security control and/or attack mitigation control; these will be describedselector belongs to the condition. For instance, insections 4.4 and 4.5, respectively. This class does NOT defineFigure 17 thesetconditions are s1 <= S1 (read as s1 subset ofProfiles used. This is because this would effectively "enclose" this information within the ApplyProfileECAPolicyRule. This has two drawbacks. First, other entities that needor equal touse information from the Profile class(es) could not; they would haveS1) and s2 <= S2 (s1 of or equal toassociate with the ApplyProfileECAPolicyRule class,S2), both s1 andthose other classes would not likely be interesteds2 match the packet x1, while only s2 matches x2. To consider conditions in different selectors, theApplyProfileECAPolicyRule. Second,decision space is extended using theevolution of new Profile classes should be independentCartesian 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 theApplyProfileECAPolicyRule; this cannot happen ifselectors S1, S2,..., Sm (where m is theProfile class(es) are embeddednumber 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, theApplyProfileECAPolicyRule. Hence, this document recommendsdecision space is extended using thefollowing design: +-------------+ +-------------------+ 1..n 1..nCartesian product because distinct selectors refer to different fields, possibly from different protocol headers. S2 ^ Destination port | | x2 +......o ||/ \ ProfileApplied \|. | . --+.............+------------------------------------+ |ApplyProfile + A -----------+-------------+ Profile| . |ECAPolicyRule |\ / ^ /|| s | . | |+-------------+ +-------------------+e | . |+------------+---------+(rectangle) |ProfileAppliedDetailg |+------------+---------+ / \ 0..n. | condition clause (c) |PolicyControlsProfileApplicationm | . |/ \ A \ / 0..n +----------+--------------+here the action a is applied |ManagementECAPolicyRulee |+-------------------------+ Figure 14. Modeling Profile ApplicationMechanisms This document only defines the ApplyProfileECAPolicyRule; all other classes, and the aggregations, are defined. | | n | . | x1=point=packet | t +.............|.............o | | | . | . | --+.............+------------------------------------+ | . . . . | . . . . +------------+------+-------------+----------------------+------> | |---- segment = condition inan external model. For completeness, descriptions of how the two aggregations are used are below.S1 -----| S1 + IP source Figure14 defines an aggregation between17: Geometric representation of a rule r=(c,a) that matches x1, but does not match x2. Accordingly, theApplyProfileECAPolicyRule and an external Profile class (whichcondition clause c islikelyasuperclass for different typessubset ofProfiles). This decouplesS: c = s1 X s2 X ... X sm <= S1 X S2 X ... X Sm = S S represents theimplementationtotality ofProfiles from how Profiles are used. Since different ApplyProfileECAPolicyRules can use different Profiles in different ways, the aggregation is realized as an association class. This enablestheattributes and methods ofpackets that are individually selectable by theassociation class (i.e., ProfileAppliedDetail)security control tobe usedmodel when we use it todefine how a given Profileis used byenforce aparticular ApplyProfileECAPolicyRule. Similarly, the PolicyControlsProfileApplication aggregation defines policies to controlpolicy. Unfortunately, not all its subsets are valid condition clauses: only hyper-rectangles, or theconfigurationunion ofthe ProfileAppliedDetail association class.hyper-rectangles (as they are Cartesian product of conditions), are valid. Thisenables the applicationis an intrinsic constraint ofProfiles to be managedthe policy language, as it specifies rules byECAPolicyRules. Note: a data model MAY choose to collapse this design into a more efficient implementation. For example,defining adata model could define two attributescondition forthe ApplyProfileECAPolicyRuleclass, called (for example) profileAppliedCurrent and profileAppliedSupported, to represent the ProfileApplied aggregation and its association class. The former is a string attributeeach selector. Languages thatdefinesallow specification of conditions as relations over more fields are modeled by thecurrent Profile usedgeometric model as more complex geometric shapes determined bythis ApplyProfileECAPolicyRule, whilethelatter definesequations. However, the algorithms to compute intersections are much more sophisticated than intersection hyper-rectangles. Figure 17 graphically represents aset of Profiles,condition clause c in a two-dimensional selection space. In theform ofgeometric model, aProfile capability, which this ApplyProfileECAPolicyRule can advertise. A.6. ApplySignatureECAPolicyRuleClass Definition The purpose of an ApplySignatureECAPolicyRulerule is expressed as r=(c,a), where c <= S (the condition clause is a subset of the selection space), and the action a belongs todefine an ECA PolicyA. Rulethat, based oncondition clauses match agiven context, can determine which Signature object (e.g., an anti-virus file, or aURL filtering file, orpacket (rules match ascript) to apply to which traffic. The Signature object definespacket), if all thesecurity 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 defineconditions forming theset of Signature objects used. This is because this would effectively "enclose" this information withinclauses match theApplySignatureECAPolicyRule. This has two drawbacks. First, other entities that need to use information frompacket. In Figure 17, theSignature object class(es) could not; they would have to associaterule with condition clause c matches theApplySignatureECAPolicyRule class, and those other classes wouldpacket x1 but notlikely be interested inx2. The rule set R is composed of n rules ri=(ci,ai). The decision criteria for theApplySignatureECAPolicyRule. Second,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 theevolutionpower set ofnew Signature object classes should be independentrules in R. Formally, given a set of rules, theApplySignatureECAPolicyRule; this cannot happen ifresolution strategy maps all theSignature object class(es) are embeddedpossible subsets of rules to an action a in A. When no rule matches a packet, theApplySignatureECAPolicyRule. Hence, this document recommendssecurity controls may select thefollowing design: +-------------+ +---------------+ 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 definesdefault 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 theApplySignatureECAPolicyRule; all other classes,creator, and creation time. Formally, every rule ri is associated by means of theaggregations, are defined in anfunction e(.): e(ri) = (ri,f1(ri),f2(ri),...) where E={fj:R -> Xj} (j=1,2,...) is the set that includes all functions that map rules to externalmodel. For completeness, descriptions of howattributes in Xj. However, E, e, and all thetwo aggregations are usedXj arebelow. Figure 15 defines an aggregation betweendetermined by theApplySignatureECAPolicyRule and an external Signature object class (whichresolution strategy used. A policy islikelythus asuperclass for different typesfunction p: S -> A that connects each point ofSignature objects). This decouplestheimplementation of signature objectsselection space to an action taken fromhow Signature objects are used. Since different ApplySignatureECAPolicyRules can use different Signature objects in different ways,theaggregationaction set A according to the rules in R. By also assuming RS(0)=d (where 0 isrealized as an association class. This enablestheattributesempty-set) andmethods ofRS(ri)=ai, theassociation class (i.e., SignatureAppliedDetail) topolicy p can beused to define howdescribed as: p(x)=RS(match{R(x)}). Therefore, in the geometric model, agiven Signature objectpolicy isusedcompletely defined bya particular ApplySignatureECAPolicyRule. Similarly,thePolicyControlsSignatureApplication aggregation defines policies to control4-tuple (R,RS,E,d): theconfiguration ofrule set R, theSignatureAppliedDetail association class. This enablesresolution function RS, theapplicationset E ofthe Signature object to be managed by policy. Note: a data model MAY choosemappings tocollapse this design into a more efficient implementation. For example, a data model could define two attributes fortheApplySignatureECAPolicyRule class, called (for example) signature signatureAppliedCurrentexternal attributes, andsignatureAppliedSupported, to representtheSignatureApplied aggregation and its association class. The former is a string attribute that definesdefault action d. Note that, thecurrent Signature object usedgeometric model also supports ECA paradigms bythis ApplySignatureECAPolicyRule, while the latter defines a set of Signature objects, in the form of a Signature capability, which this ApplySignatureECAPolicyRule can advertise.simply modeling events like an additional selector. 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.comDaCheng Zhang Huawei Email: dacheng.zhang@huawei.com Kepeng Li Alibaba Email: kepeng.lkp@alibaba-inc.comCataldoBasile, Antonio LioyBasile Politecnico di Torino Corso Duca degli Abruzzi, 34 Torino, 10129 Italy Email: cataldo.basile@polito.itAntonio Lioy Politecnico di Torino Corso Duca degli Abruzzi, 34 Torino, 10129 Italy Email: lioy@polito.itDiego R. Lopez Telefonica I+D Zurbaran, 12 Madrid, 28010 Spain Phone: +34 913 129 041 Email: diego.r.lopez@telefonica.comEdward 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