I2NSF Working Group R. Kumar Internet-Draft A. Lohiya Intended status: Informational Juniper Networks Expires:May 1,October 28, 2017 D. Qi Bloomberg N. Bitar S. Palislamovic Nokia L. Xia HuaweiOctober 28, 2016April 26, 2017 Requirements for Client-Facing Interface to Security Controllerdraft-ietf-i2nsf-client-facing-interface-req-00draft-ietf-i2nsf-client-facing-interface-req-01 Abstract This document capturestherequirements forthe client-facingClient-Facing interface tothe security controller.Security Controller. Theinterfaces are based on userinterface is expressed using objects and constructs understood bya security admin instead of aSecurity Admin as opposed to vendor oradevice specificmechanism requiring deep knowledge ofexpressions associated with individualproductsproduct andfeatures.feature. This document identifiesthea broad set of requirements needed toenforce the user-construct oriented policies onto networkexpress securityfunctions (NSFs) irrespective of how those functionspolicies based on User-constructs which arerealized. The function maywell understood by User Community. This gives ability to decouple policy definition from policy enforcement on a specific element, be it a physical orvirtual in nature and may be implemented in networking or dedicated appliances.virtual. 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). Note that other groups may also distribute working documents as 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." This Internet-Draft will expire onMay 1,October 28, 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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions Used in this Document . . . . . . . . . . . . . . 4 3. Guidingprinciplesprinciple fordefinition ofClient-FacingInterfacesInterface defintion . . . 5 3.1. User-construct based modeling . . . . . . . . . . . . . . 5 3.2. Basic rules forclient interfaceClient-Facing Interface definition . . .. . . .6 3.3. Deployment Models for Implementing Security Policies . . 7 4. Functional Requirements for the Client-Facing Interface . . . 10 4.1. Requirement for Multi-Tenancy in client interface . . . . 11 4.2. Requirement for Authentication and Authorization of client interface . . . . . . . . . . . . . . . . . . . . 12 4.3. Requirement for Role-Based Access Control (RBAC) in client interface . . . . . . . . . . . . . . . . . . . . 12 4.4. Requirement to protect client interface from attacks . . 12 4.5. Requirement to protect client interface from misconfiguration . . . . . . . . . . . . . . . . . . . .1312 4.6. Requirement to manage policy lifecycle with diverse needs 13 4.7. Requirement to define dynamic policy Endpoint group . . . 14 4.8. Requirement to express rich set of policy rules . . . . . 15 4.9. Requirement to express rich set of policy actions . . . . 16 4.10. Requirement to express policy in a generic model . . . . 18 4.11. Requirement to detect and correct policy conflicts . . . 18 4.12. Requirement for backward compatibility . . . . . . . . . 18 4.13. Requirement for Third-Party integration . . . . . . . . .1918 4.14. Requirement to collect telemetry data . . . . . . . . . . 19 5. Operational Requirements for the Client-Facing Interface . . 19 5.1. API Versioning . . . . . . . . . . . . . . . . . . . . . 19 5.2. API Extensiblity . . . . . . . . . . . . . . . . . . . .2019 5.3. APIs and Data Model Transport . . . . . . . . . . . . . . 20 5.4. Notification . . . . . . . . . . . . . . . . . . . . . . 20 5.5. Affinity . . . . . . . . . . . . . . . . . . . . . . . . 20 5.6. Test Interface . . . . . . . . . . . . . . . . . . . . . 20 6. Security Considerations . . . . . . . . . . . . . . . . . . . 20 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 217.8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 218.9. Normative References . . . . . . . . . . . . . . . . . . . . 21 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 1. Introduction Programming security policies in a network has been a fairly complex task that often requires very deep knowledge of vendor specificdevices.device and features. This has been the biggest challenge for bothservice providersService Provider andenterprises,Enterprise, henceforth named assecurity administratorSecurity Admin in this document.TheThis challenge is further amplified due to network virtualization with securityappliancesfunctions deployed in physical and virtual formfactorfactor, henceforth named as network security function (NSF) in this document, froma wide variety of vendors; each vendor have their ownmultiple vendors with proprietaryinterfaces to express security policies on their devices.interface. Even if asecurity administratorSecurity Admin deploys a single vendor solution with one or more security appliances across its entire network, it is still very difficult to manage security policies due to complexity of security features, anddifficulty inmapping of businessrequirementrequirements to vendor specific configuration. Thesecurity administratorSecurity Admin may useeithervendor providedCLIs ormanagementsystem with some abstractionsystems tohelpprovision and manage security policies. But, the single vendor approach is highly restrictive in today's network forthefollowing reasons: oThe security administrator cannotAn organization may not be able to rely on a single vendor becauseone vendorthe changing security requirements may notbe able to keep upalign withtheir security requirements or specific deployment model.vendor's release cycle. o A large organization may have a presence across different sites and regions; which means, it may not be possible to deploy same solution fromsinglethe same vendordue tobecause of regional regulatoryrequirement or organizationaland compliance policy. o If and whensecurity administratoran organization migrates from one vendor to another, it is almost impossible to migrate security policies from one vendorsolutionto another without complex and time consuming manual workflows. oSecurity administratorsAn organization may deployvariousmultiple network security functions in virtualorand physical forms to attain the flexibility, elasticity,performance,performance scale, and operational efficiency they require. Practically, that often requires different sources (vendor, open source) to get the best of breed for any such security function. oThe security administrator mightAn organization may choosevarious devicesall ornetwork services (suchpart of their assets such as routers, switches,firewall devices,firewalls, andoverlay-networks)overlay-networks as policy enforcement points forsecurity policies. This myoperational and cost efficiency. It would be highly complex to manage policy enforcement with different tool set forreason (such as network design simplicity, cost, most-effective place, scale and performance).each type of device. In order toease thefacilitate deployment of security policies across differentvendors and devices,vendor provided NSFs, the Interface to Network Security Functions (I2NSF) working group in the IETF is defining aclient-facingClient- Facing interfacefrom the security controllertoclientsSecurity Controller [I-D.ietf-i2nsf- framework]ietf-i2nsf-framework] [I-D. ietf-i2nsf-terminology]. Deployment facilitation should be agnostic to the type of device, be it physical or virtual, or type ofthe policy, be it dynamic or static.enforcement point. Using these interfaces, itwould becomebecomes possible to write different kinds ofapplicationsecurity management applications (e.g. GUI portal, template engine, etc.) allowing Security Admin tocontrol the implementation ofexpress security policiesonin an abstract form with choice of wide variety of NSF for policy enforcement. The implementation of securityfunctional elements, though how thesemanagement applicationsare implemente areor controller is completely out of the scope of the I2NSF working group, which is only focused onthe interfaces.interface definition. This document captures the requirements forthe client-facingClient-Facing interface that can be easily used bysecurity administratorsSecurity Admin withoutknowledge ofa need for expertise in vendor and device specificsecurity devices or features.feature set. We refer to this as"user-construct""User-construct" based interfaces. To further clarify, in the scope of this document, the"user-construct""User-construct" here does not mean some free-from natural language input or an abstract intent such as "I want my traffic secure" or "I don't want DDoS attacks in my network"; rather theuser-constructUser-construct here means that policies are described usingclient-orientedexpressions such as application names, application groups, device groups, user groups etc. with a vocabulary of verbs (e.g., drop, tap, throttle), prepositions, conjunctions, conditionals, adjectives, and nouns instead of using standard n-tuples from the packet header. 2. Conventions Used in this Document BSS: Business Support System CLI: Command Line Interface CMDB: Configuration Management Database Controller: Used interchangeably withService ProviderSecurity Controller or management system throughout this document CRUD: Create, Retrieve, Update, Delete FW: Firewall GUI: Graphical User Interface IDS: Intrusion Detection System IPS: Intrusion Protection System LDAP: Lightweight Directory Access Protocol NSF: Network Security Function, defined by [I-D.ietf-i2nsf-problem-and-use-cases] OSS: Operation Support System RBAC: Role Based Access Control SIEM: Security Information and Event Management URL: Universal Resource Locator vNSF: Refers to NSF being instantiated on Virtual Machines 3. Guidingprinciplesprinciple fordefinition ofClient-FacingInterfaces The "Client-Facing Interface" ensuresInterface defintion Client-Facing Interface must ensure that asecurity administratorSecurity Admin can deploy anydeviceNSF from any vendor and should still be able to useathe same consistent interface. In essence, this interfacegives ability to security adminsmust allow a Security Admin to expresstheirsecurity policies independent of howsecurity functionsNSFs are implemented in their deployment. Henceforth, in this document, we use "security policy management interface" interchangeably when we refer tothe client-facingClient-Facing interface. 3.1. User-construct based modeling Traditionally, security policies have been expressed using proprietaryinterfaces. Theseinterface. The interfaceareis defined by a vendoreitherbased onCLIproprietary command line text or a GUIsystem; but more often these interfaces are built using vendorbased system with implementation specificnetworking constructconstructs such IP address, protocol andapplication constructs withL4-L7 information. This requiressecurity operatorSecurity Admin to translate theiroragnzationalbusiness objectives intoactionable security policies on the device usingvendorspecific configuration.provided constructs in order to express a security policy. But, this alone is not sufficient to renderpoliciesa policy in thenetwork as operator also need to identify the device innetwork; the admin must also understand networktopology whereand application design to locate a specific policyneedenforcement point to make sure policy is effective. This may beenforcedhighly manual task based on specific network design and may become unmanageable ina complex environment with potenial multiple policy enforcement points.virtualized networks. The User-construct based frameworkdefinesdoes not rely on lower level semantics due to problem explained above, but rather uses higher level constructs such asuser- group, application-group, device-group and location-group. The security adminUser-group, Application-group, Device-group, Location-group, etcetera. A Security Admin would use these constructs to express a security policy instead of proprietaryvendorimplementation or feature specific constructs. The policy defined in such a manner is referred touser-constructUser-construct based policies in this draft. The idea is to enablesecurity adminSecurity Admin to use constructs they understand best in expressing securitypolicies;policies which simplify their tasks and help avoiding human errors in complex security provisioning. 3.2. Basic rules forclient interfaceClient-Facing Interface definition The basic rules in defining theclient-facingClient-Facing interfaces are as follows: o Notdependingdependent on particularnetworkNetwork topology or theactualNSF location in the network o Not requiringthe exactdeep knowledge ofthe concreteproprietary features and capabilities supported in the deployed NSFsa€ o Independent ofthe nature of the functionNSF type that willapplyimplement theexpressed policiesuser security policy be it a stateful firewall,IDP, IDS, Router, Switch o Declarative/Descriptive model instead of Imperative/Prescriptive model - What securitypoliciespolicy need to be enforced (declarative) instead of howthey would be actuallyit is implemented (imperative) o Notdependingdependent on any specific vendor implementation or form-factor (physical, virtual) of the NSF o Notdependingdependent on how a NSF becomes operational - Network connectivity and other hosting requirements. o Notdependingdependent on NSF control plane implementation (if there is one) E.g., cluster of NSFs active as one unified service for scale and/ or resilience. o Not depending on specific data plane implementation of NSF i.e. Encapsulation, Service function chains. Note that the rules stated above only apply to theclient-facing interface whereClient-Facing interface, which a userwill definewould use to express a high level policy. These rules do not apply to the lower layers e.g.security controllerSecurity Controller that convertthehigher level policies into lower level constructs. The lower layers may still need some intelligence such as topology awareness, capability of the NSF and its functions, supported encapsulations etc. to convert and apply the policies accurately on theNSF devices.NSF. 3.3. Deployment Models for Implementing Security Policies Traditionally, medium andlarger operatorslarge Enterprise deploy management systems to manage theirstatically-definedstatically defined security policies. This approach may not be suitable nor sufficient for modern automated and dynamic data centers that are largely virtualized and rely on various management systems and controllers to dynamically implement security policies over any types ofresources.NSF. There are two different deployment models in which theclient-facingClient-Facing interface referred to in this document could be implemented. These models have no direct impact on theclient-facingClient-Facing interface, but illustrate the overall security policy and management framework and wherethevarious processing functions reside. These models are: a.ManagementPolicy management without an explicit management system for control ofdevices andNSFs. In this deployment,the security controllerSecurity Controller acts as a NSFpolicymanagementsystem thatsystem; it takes information passed overthe client security policyClient- Facing interface and translates into data ontheI2NSF NSF-facing interface. TheI2NSF interfaces areNSF-Facing interface is implemented bysecurity device/function vendors. ThisNSF vendors; this would usually be done by having an I2NSF agent embedded in thesecurity device orNSF. This deployment model is shown in Figure 1. RESTful API SUPA or I2NSF Policy Management ^ |Client-facingClient-Facing Interface | (Independent of individual | NSFs, devices,and vendors)| | ------------------------------ | | | Security Controller | | | ------------------------------ | ^ | I2NSF | NSF Interface | NSF-facing | (Specific to NSFs) | Interface | .............................. | | v | ------------- ------------- | I2NSF Agent | | I2NSF Agent | |-------------| |-------------| | |---| | | NSF | | NSF | NSFs | | | | (virtual -------------\ /------------- and | \ / | physical) | X | | / \ | -------------/ \------------- | I2NSF Agent | | I2NSF Agent | |-------------| |-------------| | |---| | | NSF | | NSF | | | | | ------------- ------------- Figure 1: Deployment without Management System b.ManagementPolicy management with an explicit management system for control ofdevices andNSFs. This model is similar to the model above except thatsecurity controllerSecurity Controller interacts with a vendor's dedicated management systemwhich could eitherthat proxy I2NSFNSF-facingNSF-Facing interfacesor could provide a layer where security devices or NSFs doas NSF may not supportan I2NSF agentNSF-Facing interface. This is a useful model toprocess I2NSF NSF-facing interfaces.support legacy NSF. This deployment model is shown in Figure 2. RESTful API SUPA or I2NSF Policy Management ^ | Client-facing Interface | (Independent of individual | NSFs,devices,and vendors) | | ------------------------------ | | | Security Controller | | | ------------------------------ | ^ | I2NSF | NSF Interface | NSF-facing | (Specific to NSFs) | Interface | .............................. | | v | ------------------------------ | | | I2NSF Proxy Agent / | | Management System | | | ------------------------------ | ^ | Proprietary | | Functional | | Interface | .............................. | | v | ------------- ------------- | |---| | | NSF | | NSF | NSFs | | | | (virtual -------------\ /------------- and | \ / | physical) | X | | / \ | -------------/ \------------- | |---| | | NSF | | NSF | | | | | ------------- ------------- Figure 2: Deployment with Management System or I2NSF Proxy Agent Although the deployment models discussed here don't necessarily affect theclient security policydefinition of Client-Facing interface, they do give an overall context for defining a security policy interface based on abstraction. 4. Functional Requirements for the Client-Facing Interface As stated in the guidingprinciplesprinciple for defining the I2NSFclient-facingClient- Facing interface, the security policies and theclient-facingClient-Facing interface shall be defined froma user/clientuser's or client's perspective and abstracted away fromthetype of NSF, NSF specific implementation, controller implementation,NSFnetwork topology,NSF interfaces,controllerNSF-facing interfaces.NSF-Facing interface. Thus, the security policy definition shall be declarative,expressing the user construct,expressed using User-construct, and driven by howsecurity administratorsSecurity Admin view security policies fromthedefinition, communication and deployment perspective.The security controller'sSecurity Controller's' implementation is outside the scope of this document and the I2NSF working group. In order to express and build security policies, high levelrequirementsrequirement forthe client-facing areClient-Facing interface is as follows: o Multi-Tenancy o Authentication and Authorization o Role-Based Access Control (RBAC) o Protection from Attacks o Protection from Misconfiguration o Policy Lifecycle Management o Dynamic Policy Endpoint Groups o Policy Rules o Policy Actions o Generic Policy Model o Policy Conflict Resolution o Backward Compatibility o Third-Party Integration o Telemetry Data The above requirements are by no means a complete list and may not be sufficient for all use-cases and alloperators,Security Admins, but should be a good starting point for a wide variety of use-cases in Service Provider and Enterprise networks. 4.1. Requirement for Multi-Tenancy in client interface Asecurity administrator that uses security policiesSecurity Admin may have internal tenants andwould like to havemight want a framework wherein each tenant manages its own security policies with isolation from other tenants.An operatorA Security Admin may be a cloud service provider with multi-tenantdeployments,deployment, where each tenant is a different customer. Each tenant or customer must be allowed to manage its own security policies. It should be noted that tenants may have their own tenants, so a recursive relation may exist. For instance, a tenant in acloud service providerCloud Service Provider may have multiple departments or organizations that need to manage their own securityrules.rules for compliance. Some key concepts are listed below and used throughout the document hereafter: Policy-Tenant: An entity that owns and manages the securityPoliciespolicies applied on its resources. Policy-Administrator: A user authorized to manage the security policies for a Policy-Tenant. Policy-User: A user within a Policy-Tenant who is authorized to access certain resources of that tenant according to the privileges assigned to it. 4.2. Requirement for Authentication and Authorization of client interface SecurityadministratorsAdmin MUST authenticate to and be authorized bythe security controllerSecurity Controller before they are able to issue control commands and any policy data exchangecommences.commands. There must be methods defined forthePolicy-Administrator to be authenticated and authorized to usethe security controller.Security Controller. There are several authentication methods available such as OAuth, XAuth and X.509 certificatebased. Thebased; the authenticationscheme between Policy- Administrator and security controllermayalsobe mutualinstead of one-way. Any specific method may be determinedor single- sided based onorganizational and deploymentbusiness needs and outside the scope of I2NSF. In addition, there must be a methodtoo authorize thePolicy- Administrator for performingPolicy-Administrator to perform certain action. It should be noted that,depending on the deployment model, Policy-AdministratorPolicy- Administrator authentication and authorization to perform actionscommunicated to the controllercould beperformed aspart of Security Controller or outside; this document does not mandate any specific implementation but requires that such aportal or another system prior to communication the action to the controller.scheme must be implemented. 4.3. Requirement for Role-Based Access Control (RBAC) in client interface Policy-Authorization-Role represents a role assigned to a Policy-User that determines whether a userorhas read-write access, read-only access, or no access for certain resources. A User can be mapped to a Policy-Authorization-Role using an internal or external identity provider or mapped statically. 4.4. Requirement to protect client interface from attacksThere MustThe interface must be protections from attacks, malicious or otherwise, from clients or a client impersonator. Potential attacks could come froma botnet or a host orBotnets, hosts infected with virus or some unauthorized entity. It is recommended thatsecurity controllerSecurity Controller use a dedicated IP interface forclient-facingClient-Facing communications and those communications should be carried over an isolated out-of-band network. In addition, it is recommended that traffic between clients andsecurity controllersSecurity controller be encrypted. Furthermore, some straightforward traffic/session control mechanisms (i.e., Rate-limit, ACL, White/Black list) can be employed onthe security controllerSecurity Controller to defend against DDoS flooding attacks. 4.5. Requirement to protect client interface from misconfiguration ThereMustmust be protections from mis-configured clients. System and policy validations should be implemented to detect this. Validation may be based on a set of default parameters or custom tuned thresholds such as the number of policy changes submitted, number of objects requested in a given time interval, etc. 4.6. Requirement to manage policy lifecycle with diverse needs In order to provide more sophisticated security framework, there should be a mechanismto expressso that a policy becomes dynamicallyactive/enforcedactive/ enforced or inactive based oneither security administrator'sSecurity Admin's manual intervention oransome external event. One example of dynamic policy management is whenthe security administrator pre-configuresSecurity Admin pre- configures all the security policies, but the policies get activated or deactivated based on dynamic threats. Basically, a threat event may activate certain inactive policies, and once a new event indicates that the threat has gone away, the policies become inactive again. There are following ways for dynamically activating policies: o The policy may be dynamically activated bythe I2NSF clientSecurity Admin or associated managemententity, and dynamically communicated over the I2NSF client-facing interface to the controller to program I2NSF functions using the I2NSF NSF-facing interfaceentity o The policy may bepulleddynamically activated bythe controllerSecurity Controller upon detecting an external eventover theor an event from I2NSF monitoring interface o The policymay be statically pushed to the controller and dynamically programmed on the NSFs upon potentially detecting another event o The policycan beprogrammed in the NSF, andstatically configured but activated or deactivated upon policy attributes,like time or admin enforced. The client-facingsuch as timing calendar Client-Facing interface should support the following policy attributes for policy enforcement: Admin-Enforced:TheA policy, once configured, remains active/enforced until removed bythe security administrator.Security Admin. Time-Enforced:TheA policy configuration specifies the time profile that determines when the policy is to be activated/enforced. Otherwise, it is de-activated. Event-Enforced:TheA policy configuration specifies the event profile that determines when the policy is to be activated/enforced. It also specifies the duration attribute of that policy once activated based on event. For instance, if the policy is activated upon detecting an application flow, the policy could be de-activated when the corresponding session is closed or the flow becomes inactive for certain time. A policy could be a composite policy, that is composed of many rules, and subject to updates and modification. For the policy maintenance, enforcement, andauditabilityaudit-ability purposes, it becomes important to name and versionthe policies.Security Policy. Thus, the policy definition SHALL support policy naming and versioning. In addition, the i2NSFclient-facingClient- Facing interface SHALL support the activation, deactivation, programmability, and deletion of policies based on name and version. In addition, it should support reportingon theoperational state of policies by name and version. For instance, a client may probethe controller about the current policiesSecurity Controller whether a Security Policy is enforced for a tenant and/or a sub-tenant (organization) forauditabilityaudit-ability or verification purposes. 4.7. Requirement to define dynamic policy Endpoint group Whenthe security administratorSecurity Admin configures asecurity policy,Security Policy, it may have requirement to apply this policy to certain subsets of the network. The subsets may be identified based on criteria such asusers, devices,Users, Devices, andapplications.Applications. We refer to such a subset of the network as a "Policy Endpoint Group". One of the biggest challenges for asecurity administratorSecurity Admin is how to make sure thatsecurity policiesa Security Policy remain effective while constant changes are happening to the "Policy Endpoint Group" for various reasons (e.g., organizational, network and application changes). If a policy is created based on static information such as user names, application, or network subnets; then every time this static information change, policies need to be updated. For example, if a policy is created that allows access to an application only from the group of Human Resource users(the HR-users(HR-users group), then each time theHR- usersHR-users group changes, the policy needs to be updated. We call these dynamic Policy Endpoint Groups "Meta-data Driven Groups". The meta-data is a tag associated with endpoint information such asusers, applications, and devices.User, Application, or Device. The mapping from meta-data to dynamic content could comeeitherfrom a standards-based or proprietary tools.The security controllerSecurity Controller could use any available mechanisms to derive this mapping and to make automatic updates tothepolicy content if the mapping information changes. The system SHOULD allow for multiple, or sets of tags to be applied to a single network object.The client-facingClient-Facing policy interface must support endpoint groups foruser-construct based policy management.expressing a Security Policy. The following meta-data driven groups MAY be used for configuring security polices: User-Group: This group identifies a set of users based on a tag or on static information. The tag to identify user is dynamically derived from systems such as Active Directory or LDAP. For example, anoperatororganization may have differentuser-groups,User-groups, such asHR- users,HR-users, Finance-users, Engineering-users, to classify a set of users in each department. Device-Group: This group identifies a set of devices based on a tag or on static information. The tag to identify device is dynamically derived from systems such as configurationmannagementmanagement database (CMDB). For example, asecurity administratorSecurity Admin may want to classify all machines runningonea particular operating system into one group and machines runninganothera different operating system into another group. Application-Group: This group identifies a set of applications based on a tag or on static information. The tag to identify application is dynamically derived from systems such as CMDB. For example, asecurity administratorSecurity Admin may want to classify all applications running in the Legal department into one group and all applications runningunder a specific operating systemin the HR department into another group. In some cases, the application can semantically associated with a VM or a device. However, in other cases, the application may need to be associated with a set of identifiers (e.g., transport numbers, signature in the application packet payload) that identify the application in the corresponding packets. The mapping of application names/tags to signatures in the associated application packets should be defined and communicated to the NSF. Theclient-facingClient-Facing Interface shall support the communication of this information. Location-Group: This group identifies a set of location tags. Tag may correspond 1:1 to location. The tag to identify location is either statically defined or dynamically derived from systems such as CMDB. For example, asecurity administratorSecurity Admin may want to classify all sites/locations in a geographic region as one group. 4.8. Requirement to express rich set of policy rules The security policy rules can be as simple as specifying a match for the user or application specified through "Policy Endpoint Group" and take one of the "Policy Actions" or more complicated rules that specify how two different "Policy Endpoint Groups" interact with each other. Theclient-facingClient-Facing interface must support mechanisms to allow the following rule matches. Policy Endpoint Groups: The rule must allow a way to match either a single or a member of a list of "Policy Endpoint Groups". There must be a way to express a match between two "Policy Endpoint Groups" so that a policy can be effective for communication between two groups. Direction: The rule must allow a way to express whetherthe security administratorSecurity Admin wants to match the "Policy Endpoint Group" as the source or destination. The default should be to match both directions, if the direction rule is not specified in the policy. Threats: The rule should allow the security administrator to express a match for threats that come either in the form of feeds (such asbotnetBotnet feeds, GeoIP feeds, URL feeds, or feeds from a SIEM) or speciality security appliances. Threats could be identified by Tags/names in policy rules. The tag is a label of one or more event types that may be detected by a threat detection system. The threat could be from malware and this requires a way to match for virus signatures or file hashes. 4.9. Requirement to express rich set of policy actionsThe security administratorSecurity Admin must be able to configure a variety of actions within a security policy. Typically, security policy specifies a simple action of "deny" or "permit" if a particular condition is matched. Although this may be enough for most of the simple policies, the I2NSFclient-facingClient-Facing interface must also provide a more comprehensive set of actions so that the interface can be used effectively across various security functions. Policy action MUST be extensible so that additional policy action specifications can easily be added. The following list of actions SHALL be supported: Permit: This action means continue processing the next rule or allow the packet to pass if this is the last rule. This is often a default action. Deny: This action means stop further packet processing and drop the packet. Drop connection: This action means stop further packet processing, drop the packet, and drop connection (for example, by sending a TCP reset). Log: This action means create a log entry whenever a rule is matched. Authenticate connection: This action means that whenever a new connection is established it should be authenticated. Quarantine/Redirect: This action may be relevant for event driven policy where certain events would activate a configured policy that quarantines or redirects certain packets or flows. The redirect action must specify whether the packet is to be tunneled and in that case specify the tunnel or encapsulation method and destination identifier. Netflow: This action creates a Netflow record; Need to define Netflow server or local file and version of Netflow. Count: This action counts the packets that meet the rule condition. Encrypt: This action encrypts the packets on an identified flow. The flow could be over anIpsecIPSEC tunnel, or TLS session for instance. Decrypt: This action decrypts the packets on an identified flow. The flow could be over anIpsecIPSEC tunnel, or TLS session for instance. Throttle: This action defines shaping a flow or a group of flows that match the rule condition to a designated traffic profile. Mark: This action defines traffic that matches the rule condition by a designated DSCP value and/or VLAN 802.1p Tag value. Instantiate-NSF: This action instantiates an NSF with a predefined profile. An NSF can be any of the FW, LB, IPS, IDS, honeypot, or VPN, etc. WAN-Accelerate: This action optimizes packet delivery using a set of predefined packet optimization methods. Load-Balance: This action load balances connections based on predefined LB schemes or profiles. The policy actions should support combination of terminating actions and non-terminating actions. For example, Syslog and then Permit; Count and then Redirect. Policy actions SHALL support any L2, L3, L4-L7 policy actions. 4.10. Requirement to express policy in a generic modelClient-facingClient-Facing interface SHALL provide a generic metadata model that defines once and then be used by appropriate model elements any times, regardless of where they are located in the class hierarchy, as necessary.Client-facingClient-Facing interface SHALL provide a generic context model that enables the context of an entity, and its surrounding environment, to be measured, calculated, and/or inferred.Client-facingClient-Facing interface SHALL provide a generic policy model that enables context-aware policy rules to be defined to change the configuration and monitoring of resources and services as context changes.Client-facingClient-Facing interface SHALL provide the ability to apply policy or multiple sets of policies to any given object. Policy application process SHALL allow for nesting capabilities of given policies or set of policies. For example, an object or any given set of objects could have application team applying certain set of policy rules, while network team would apply different set of their policy rules. Lastly, security team would have an ability to apply its set of policy rules, being the last policy to be evaluated against. 4.11. Requirement to detect and correct policy conflictsClient-facingClient-Facing interface SHALL be able to detect policy "conflicts", and SHALL specify methods on how to resolve these "conflicts" For example: two clients issues conflicting set of security policies to be applied to the same Policy Endpoint Group. 4.12. Requirement for backward compatibility It MUST be possible to add new capabilities toclient-facingClient-Facing interface in a backward compatible fashion. 4.13. Requirement for Third-Party integration The security policies inthe security administrator'sa network may require the use of specialty devices such as honeypots, behavioral analytics, or SIEM in the network, and may also involve threatfeeds, virusfeeds,virus signatures, and malicious file hashes as part of comprehensive security policies. Theclient-facingClient-Facing interface mustallow the security administratorallow Security Admin to configure these threat sources and any other information to provide integration and fold this into policy management. 4.14. Requirement to collect telemetry data One of the most important aspect of security is to have visibility into the networks. As threats become more sophisticated,the security administratorSecurity Admin must be able to gather different types of telemetry data from various devices in the network. The collected data could simply be logged or sent to security analysis engines for behavioral analysis, policy violations, and for threat detection. Theclient-facingClient-Facing interface MUST allowthe security administratorSecurity Admin to collect various kinds of data from NSFs. The data source could be syslog, flow records, policy violation records, and other available data. Detailedclient-facingClient-Facing interface telemetry data should be available between clients andsecurity controllers.Security Controller. Clients should be able to subscribe and receive these telemetry data. client should be able to receive notifications when a policy is dynamically updated. 5. Operational Requirements for the Client-Facing Interface 5.1. API VersioningThe client-facingClient-Facing interface must support a version number for each RESTful API. This is very important because the client application and the controller application maymost likelycome from different vendors. Even if the vendor is same, it is hard to imagine that two different applications would be released in lock step. Without API versioning, it is hard to debug and figure out issues if an application breaks. Although API versioning does not guarantee that applications will always work, it helps in debugging if the problem is caused by an API mismatch. 5.2. API Extensiblity Abstraction and standardization ofthe client-facingClient-Facing interface is of tremendous value tosecurity administratorsSecurity Admin as it gives them the flexibility of deploying any vendor's NSF withoutneedingneed to redefine their policies if orchange the client interface. However this might also look like as an obstacle to innovation.when a NSF is changed. If a vendor comes up with new feature or functionality that can't be expressed through the currently definedclient-facingClient-Facing interface, there must be a way to extend existing APIs or to create a new API that is relevant for that NSF vendor only. 5.3. APIs and Data Model Transport The APIs for client interface must be derived from the YANG based data model. The YANG data model for client interface must capture all the requirements as defined in this document to express a security policy. The interface between a client and controller must be reliable to ensure robust policy enforcement. One such transport mechanism is RESTCONF that uses HTTP operations to provide necessary CRUD operations for YANG data objects, but any other mechanism can be used. 5.4. NotificationThe client-facingClient-Facing interface must allowthe security administratorSecurity Admin to collect various alarms and events from the NSF in the network. The events and alarms may be either related to security policyenforcementitself or related to NSFoperation.where the policy is implemented. The events and alarms could also be used asaan input to the security policy for autonomoushandling.handling as specified in a given security policy. 5.5. AffinityThe client-facingClient-Facing interface must allowthe security administratorSecurity Admin to pass any additional metadata that a user may want to provide for a security policy e.g. certain security policy needs to beappliedimplemented only onlinux machine or windows machine or thatasecurity policy must be applied on the devicevery highly secure NSF with Trusted Platform Module (TPM) chip. A user may require Security Controller not to share the NSF with other tenant, this must be expressed through the interface API. 5.6. Test InterfaceThe client-facingClient-Facing interface must allowthe security administrator theSecurity Admin ability to testthea securitypoliciespolicy beforethe policies are actually appliedit is enforced e.g. a user may want to verifyif awhether the policy creates any potential conflicts with the existing policies orwhether a certain policy can be implemented.if there are even resources to enforce the policy. The testinterface providespolicy would provide suchcapabilitiesa capability without actually applying the policies. 6. Security Considerations Client-Facing interface to Security controller must be protected to ensure that entire security posture is not compromised. This draft mandates that interface must have proper authentication and authorization with Role Based Access Controls to address multi- tenancy requirement. The draft does not specify a particular mechanism as different organization may have different needs based on their deployment. This has been discussed extensively in this draft. Authentication and authorization alone may not be sufficient for Client-Facing interface; the interface API must be validated for proper inputs to guard against attacks. The type of checks and verification may be specific to each interface API, but a careful consideration must be made to ensure that Security Controller is not compromised. 7. IANA Considerations This document requires no IANA actions. RFC Editor: Please remove this section before publication.7.8. Acknowledgements The authors would like to thank Adrian Farrel, Linda Dunbar and Diego R.Lopez from IETF I2NSF WG for helpful discussions and advice. The authors would also like to thank Kunal Modasiya, Prakash T. Sehsadri and Srinivas Nimmagadda from Juniper networks for helpful discussions.8.9. Normative References [I-D.ietf-i2nsf-problem-and-use-cases] Hares, S.,Dunbar, L.,Lopez, D., Zarny, M.,and C.Jacquenet, C., Kumar, R., and J. Jeong, "I2NSF Problem Statement and Use cases",draft- ietf-i2nsf-problem-and-use-cases-02draft-ietf-i2nsf-problem-and-use-cases-15 (work in progress),October 2016.April 2017. Authors' Addresses Rakesh Kumar Juniper Networks 1133 Innovation Way Sunnyvale, CA 94089 US Email: rkkumar@juniper.net Anil Lohiya Juniper Networks 1133 Innovation Way Sunnyvale, CA 94089 US Email: alohiya@juniper.net Dave Qi Bloomberg 731 Lexington Avenue New York, NY 10022 US Email: DQI@bloomberg.net Nabil Bitar Nokia 755 Ravendale Drive Mountain View, CA 94043 US Email: nabil.bitar@nokia.com Senad Palislamovic Nokia 755 Ravendale Drive Mountain View, CA 94043 US Email: senad.palislamovic@nokia.com Liang Xia Huawei 101 Software Avenue Nanjing, Jiangsu 210012 China Email: Frank.Xialiang@huawei.com