idnits 2.17.1 draft-ietf-i2nsf-capability-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 5 instances of too long lines in the document, the longest one being 2 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (April 3, 2018) is 2216 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-08) exists of draft-ietf-i2nsf-terminology-03 Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 I2NSF L. Xia 2 Internet-Draft J. Strassner 3 Intended status: Standard Track Huawei 4 Expires: October 3, 2018 C. Basile 5 PoliTO 6 D. Lopez 7 TID 8 April 3, 2018 10 Information Model of NSFs Capabilities 11 draft-ietf-i2nsf-capability-01.txt 13 Abstract 15 This document defines the concept of an NSF (Network Security 16 Function) Capability, as well as its information model. Capabilities 17 are a set of features that are available from a managed entity, and 18 are represented as data that unambiguously characterizes an NSF. 19 Capabilities enable management entities to determine the set offer 20 features from available NSFs that will be used, and simplify the 21 management of NSFs. 23 Status of this Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current 31 Internet-Drafts is at http://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six 34 months and may be updated, replaced, or obsoleted by other 35 documents at any time. It is inappropriate to use Internet-Drafts 36 as reference material or to cite them other than as "work in 37 progress." 39 This Internet-Draft will expire on October 3, 2018. 41 Copyright Notice 43 Copyright (c) 2017 IETF Trust and the persons identified as the 44 document authors. All rights reserved. 46 This document is subject to BCP 78 and the IETF Trust's Legal 47 Provisions Relating to IETF Documents 48 (http://trustee.ietf.org/license-info) in effect on the date of 49 publication of this document. Please review these documents 50 carefully, as they describe your rights and restrictions with 51 respect to this document. Code Components extracted from this 52 document must include Simplified BSD License text as described in 53 Section 4.e of the Trust Legal Provisions and are provided 54 without warranty as described in the Simplified BSD License. 56 Table of Contents 58 1. Introduction ................................................... 4 59 2. Conventions used in this document .............................. 5 60 2.1. Acronyms .................................................. 5 61 3. Capability Information Model Design ............................ 6 62 3.1. Design Principles and ECA Policy Model Overview ........... 6 63 3.2. Relation with the External Information Model .............. 8 64 3.3. I2NSF Capability Information Model Theory of Operation ... 10 65 3.3.1. I2NSF Condition Clause Operator Types ............... 11 66 3.3.2 Capability Selection and Usage ...................... 12 67 3.3.3. Capability Algebra ................................. 13 68 3.4. Initial NSFs Capability Categories ....................... 16 69 3.4.1. Network Security Capabilities ....................... 16 70 3.4.2. Content Security Capabilities ....................... 17 71 3.4.3. Attack Mitigation Capabilities ...................... 17 72 4. Information Sub-Model for Network Security Capabilities ....... 18 73 4.1. Information Sub-Model for Network Security ............... 18 74 4.1.1. Network Security Policy Rule Extensions ............. 19 75 4.1.2. Network Security Policy Rule Operation .............. 20 76 4.1.3. Network Security Event Sub-Model .................... 22 77 4.1.4. Network Security Condition Sub-Model ................ 23 78 4.1.5. Network Security Action Sub-Model ................... 25 79 4.2. Information Model for I2NSF Capabilities ................. 26 80 4.3. Information Model for Content Security Capabilities ...... 27 81 4.4. Information Model for Attack Mitigation Capabilities ..... 28 82 5. Security Considerations ....................................... 29 83 6. IANA Considerations ........................................... 29 84 7. Contributors .................................................. 29 85 8. References .................................................... 29 86 8.1. Normative References ..................................... 29 87 8.2. Informative References ................................... 30 88 Appendix A. Network Security Capability Policy Rule Definitions .. 32 89 A.1. AuthenticationECAPolicyRule Class Definition ............. 32 90 A.2. AuthorizationECAPolicyRuleClass Definition ............... 34 91 A.3. AccountingECAPolicyRuleClass Definition .................. 35 92 A.4. TrafficInspectionECAPolicyRuleClass Definition ........... 37 93 A.5. ApplyProfileECAPolicyRuleClass Definition ................ 38 94 A.6. ApplySignatureECAPolicyRuleClass Definition .............. 40 95 Appendix B. Network Security Event Class Definitions ............. 42 96 B.1. UserSecurityEvent Class Description ...................... 42 97 B.1.1. The usrSecEventContent Attribute .................... 42 98 B.1.2. The usrSecEventFormat Attribute ..................... 42 99 B.1.3. The usrSecEventType Attribute ....................... 42 100 B.2. DeviceSecurityEvent Class Description .................... 43 101 B.2.1. The devSecEventContent Attribute .................... 43 102 B.2.2. The devSecEventFormat Attribute ..................... 43 103 B.2.3. The devSecEventType Attribute ....................... 44 104 B.2.4. The devSecEventTypeInfo[0..n] Attribute ............. 44 105 B.2.5. The devSecEventTypeSeverity Attribute ............... 44 107 Table of Contents (continued) 109 B.3. SystemSecurityEvent Class Description .................... 44 110 B.3.1. The sysSecEventContent Attribute .................... 45 111 B.3.2. The sysSecEventFormat Attribute ..................... 45 112 B.3.3. The sysSecEventType Attribute ....................... 45 113 B.4. TimeSecurityEvent Class Description ...................... 45 114 B.4.1. The timeSecEventPeriodBegin Attribute ............... 46 115 B.4.2. The timeSecEventPeriodEnd Attribute ................. 46 116 B.4.3. The timeSecEventTimeZone Attribute .................. 46 117 Appendix C. Network Security Condition Class Definitions ......... 47 118 C.1. PacketSecurityCondition .................................. 47 119 C.1.1. PacketSecurityMACCondition .......................... 47 120 C.1.1.1. The pktSecCondMACDest Attribute ................ 47 121 C.1.1.2. The pktSecCondMACSrc Attribute ................. 47 122 C.1.1.3. The pktSecCondMAC8021Q Attribute ............... 48 123 C.1.1.4. The pktSecCondMACEtherType Attribute ........... 48 124 C.1.1.5. The pktSecCondMACTCI Attribute ................. 48 125 C.1.2. PacketSecurityIPv4Condition ......................... 48 126 C.1.2.1. The pktSecCondIPv4SrcAddr Attribute ............ 48 127 C.1.2.2. The pktSecCondIPv4DestAddr Attribute ........... 48 128 C.1.2.3. The pktSecCondIPv4ProtocolUsed Attribute ....... 48 129 C.1.2.4. The pktSecCondIPv4DSCP Attribute ............... 48 130 C.1.2.5. The pktSecCondIPv4ECN Attribute ................ 48 131 C.1.2.6. The pktSecCondIPv4TotalLength Attribute ........ 49 132 C.1.2.7. The pktSecCondIPv4TTL Attribute ................ 49 133 C.1.3. PacketSecurityIPv6Condition ......................... 49 134 C.1.3.1. The pktSecCondIPv6SrcAddr Attribute ............ 49 135 C.1.3.2. The pktSecCondIPv6DestAddr Attribute ........... 49 136 C.1.3.3. The pktSecCondIPv6DSCP Attribute ............... 49 137 C.1.3.4. The pktSecCondIPv6ECN Attribute ................ 49 138 C.1.3.5. The pktSecCondIPv6FlowLabel Attribute .......... 49 139 C.1.3.6. The pktSecCondIPv6PayloadLength Attribute ...... 49 140 C.1.3.7. The pktSecCondIPv6NextHeader Attribute ......... 50 141 C.1.3.8. The pktSecCondIPv6HopLimit Attribute ........... 50 142 C.1.4. PacketSecurityTCPCondition .......................... 50 143 C.1.4.1. The pktSecCondTCPSrcPort Attribute ............. 50 144 C.1.4.2. The pktSecCondTCPDestPort Attribute ............ 50 145 C.1.4.3. The pktSecCondTCPSeqNum Attribute .............. 50 146 C.1.4.4. The pktSecCondTCPFlags Attribute ............... 50 147 C.1.5. PacketSecurityUDPCondition ....................... 50 148 C.1.5.1.1. The pktSecCondUDPSrcPort Attribute ........ 50 149 C.1.5.1.2. The pktSecCondUDPDestPort Attribute ....... 51 150 C.1.5.1.3. The pktSecCondUDPLength Attribute ......... 51 151 C.2. PacketPayloadSecurityCondition ........................... 51 152 C.3. TargetSecurityCondition .................................. 51 153 C.4. UserSecurityCondition .................................... 51 154 C.5. SecurityContextCondition ................................. 52 155 C.6. GenericContextSecurityCondition .......................... 52 157 Table of Contents (continued) 159 Appendix D. Network Security Action Class Definitions ............. 53 160 D.1. IngressAction ............................................ 53 161 D.2. EgressAction ............................................. 53 162 D.3. ApplyProfileAction ....................................... 53 163 Appendix E. Geometric Model ...................................... 54 164 Authors' Addresses ............................................... 57 166 1. Introduction 168 The rapid development of virtualized systems requires advanced 169 security protection in various scenarios. Examples include network 170 devices in an enterprise network, user equipments in a mobile network, 171 devices in the Internet of Things, or residential access users 172 [RFC8192]. 174 NSFs produced by multiple security vendors provide various security 175 Capabilities to customers. Multiple NSFs can be combined together to 176 provide security services over the given network traffic, regardless 177 of whether the NSFs are implemented as physical or virtual functions. 179 Security Capabilities describe the set of network security-related 180 features that are available to use for security policy enforcement 181 purposes. Security Capabilities are independent of the actual 182 security control mechanisms that will implement them. Every NSF 183 registers the set of Capabilities it offers. Security Capabilities 184 are a market enabler, providing a way to define customized security 185 protection by unambiguously describing the security features offered 186 by a given NSF. Moreover, Security Capabilities enable security 187 functionality to be described in a vendor-neutral manner. That is, 188 it is not required to refer to a specific product when designing the 189 network; rather, the functionality characterized by their 190 Capabilities are considered. 192 According to [RFC8329], there are two types of I2NSF interfaces 193 available for security policy provisioning: 195 o Interface between I2NSF users and applications, and a security 196 controller (Consumer-Facing Interface): this is a service- 197 oriented interface that provides a communication channel 198 between consumers of NSF data and services and the network 199 operator's security controller. This enables security 200 information to be exchanged between various applications (e.g., 201 OpenStack, or various BSS/OSS components) and the security 202 controller. The design goal of the Consumer-Facing Interface 203 is to decouple the specification of security services from 204 their implementations. 206 o Interface between NSFs (e.g., firewall, intrusion prevention, 207 or anti-virus) and the security controller (NSF-Facing 208 Interface): The NSF-Facing Interface is used to decouple the 209 security management scheme from the set of NSFs and their 210 various implementations for this scheme, and is independent 211 of how the NSFs are implemented (e.g., run in Virtual 212 Machines or physical appliances). This document defines an 213 object-oriented information model for network security, content 214 security, and attack mitigation Capabilities, along with 215 associated I2NSF Policy objects. 217 This document is organized as follows. Section 2 defines conventions 218 and acronyms used. Section 3 discusses the design principles for the 219 I2NSF Capability information model and related policy model objects. 220 Section 4 defines the structure of the information model, which 221 describes the policy and capability objects design; details of the 222 model elements are contained in the appendices. 224 2. Conventions used in this document 226 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 227 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 228 document are to be interpreted as described in RFC-2119 [RFC2119]. 230 This document uses terminology defined in 231 [I-D.draft-ietf-i2nsf-terminology] for security related and I2NSF 232 scoped terminology. 234 2.1. Acronyms 236 AAA: Access control, Authorization, Authentication 237 ACL: Access Control List 238 (D)DoD: (Distributed) Denial of Service (attack) 239 ECA: Event-Condition-Action 240 FMR: First Matching Rule (resolution strategy) 241 FW: Firewall 242 GNSF: Generic Network Security Function 243 HTTP: HyperText Transfer Protocol 244 I2NSF: Interface to Network Security Functions 245 IPS: Intrusion Prevention System 246 LMR: Last Matching Rule (resolution strategy) 247 MIME: Multipurpose Internet Mail Extensions 248 NAT: Network Address Translation 249 NSF: Network Security Function 250 RPC: Remote Procedure Call 251 SMA: String Matching Algorithm 252 URL: Uniform Resource Locator 253 VPN: Virtual Private Network 255 3. Information Model Design 257 The starting point of the design of the Capability information model 258 is the categorization of types of security functions. For instance, 259 experts agree on what is meant by the terms "IPS", "Anti-Virus", and 260 "VPN concentrator". Network security experts unequivocally refer to 261 "packet filters" as stateless devices able to allow or deny packet 262 forwarding based on various conditions (e.g., source and destination 263 IP addresses, source and destination ports, and IP protocol type 264 fields) [Alshaer]. 266 However, more information is required in case of other devices, like 267 stateful firewalls or application layer filters. These devices 268 filter packets or communications, but there are differences in the 269 packets and communications that they can categorize and the states 270 they maintain. Analogous considerations can be applied for channel 271 protection protocols, where we all understand that they will protect 272 packets by means of symmetric algorithms whose keys could have been 273 negotiated with asymmetric cryptography, but they may work at 274 different layers and support different algorithms and protocols. To 275 ensure protection, these protocols apply integrity, optionally 276 confidentiality, anti-reply protections, and authenticate peers. 278 3.1. Capability Information Model Overview 280 This document defines a model of security Capabilities that provides 281 the foundation for automatic management of NSFs. This includes 282 enabling the security controller to properly identify and manage 283 NSFs, and allow NSFs to properly declare their functionalities, so 284 that they can be used in the correct way. 286 Some basic design principles for security Capabilities and the 287 systems that have to manage them are: 289 o Independence: each security Capability should be an independent 290 function, with minimum overlap or dependency on other 291 Capabilities. This enables each security Capability to be 292 utilized and assembled together freely. More importantly, 293 changes to a Capability will not affect other Capabilities. 294 This follows the Single Responsibility Principle 295 [Martin] [OODSRP]. 296 o Abstraction: each Capability should be defined in a vendor- 297 independent manner, and associated to a well-known interface 298 to provide a standardized ability to describe and report its 299 processing results. This facilitates multi-vendor 300 interoperability. 301 o Automation: the system has to discover, negotiate, and update its 302 security Capabilities automatically (i.e., without human 303 intervention). These features are useful especially for the 304 management of a large number of NSFs. They are essential to add 305 smart services (e.g., analysis, refinement, Capability reasoning, 306 and optimization) for the security scheme employed. These 307 features are supported by many design patterns, including the 308 Observer Pattern [OODOP], the Mediator Pattern [OODMP], and a set 309 of Message Exchange Patterns [Hohpe]. 310 o Scalability: the management system must have the Capability to 311 scale up/down or scale in/out. Thus, it can meet various 312 performance requirements derived from changeable network traffic 313 or service requests. In addition, security Capabilities that are 314 affected by scalability changes must support reporting statistics 315 to the security controller to assist its decision on whether it 316 needs to invoke scaling or not. However, this requirement is for 317 information only, and is beyond the scope of this document. 319 Based on the above principles, a set of abstract and vendor-neutral 320 Capabilities with standard interfaces is defined. This provides a 321 Capability model that enables a set of NSFs that are required at a 322 given time to be selected, as well as the unambiguous definition of 323 the security offered by the set of NSFs used. The security 324 controller can compare the requirements of users and applications to 325 the set of Capabilities that are currently available in order to 326 choose which NSFs are needed to meet those requirements. Note that 327 this choice is independent of vendor, and instead relies specifically 328 on the Capabilities (i.e., the description) of the functions 329 provided. The security controller may also be able to customize the 330 functionality of selected NSFs. 332 Furthermore, when an unknown threat (e.g., zero-day exploits and 333 unknown malware) is reported by an NSF, new Capabilities may be 334 created, and/or existing Capabilities may be updated (e.g., by 335 updating its signature and algorithm). This results in enhancing 336 existing NSFs (and/or creating new NSFs) to address the new threats. 337 New Capabilities may be sent to and stored in a centralized 338 repository, or stored separately in a vendor's local repository. 339 In either case, a standard interface facilitates the update process. 341 Note that most systems cannot dynamically create a new Capability 342 without human interaction. This is an area for further study. 344 3.2. ECA Policy Model Overview 346 The "Event-Condition-Action" (ECA) policy model is used as the basis 347 for the design of I2NSF Policy Rules; the definitions of the following 348 I2NSF policy-related terms are also specified in 349 [I-D.draft-ietf-i2nsf-terminology]: 351 o Event: An Event is any important occurrence in time of a change 352 in the system being managed, and/or in the environment of the 353 system being managed. When used in the context of I2NSF 354 Policy Rules, it is used to determine whether the Condition 355 clause of the I2NSF Policy Rule can be evaluated or not. 357 Examples of an I2NSF Event include time and user actions (e.g., 358 logon, logoff, and actions that violate an ACL). 359 o Condition: A condition is defined as a set of attributes, 360 features, and/or values that are to be compared with a set of 361 known attributes, features, and/or values in order to determine 362 whether or not the set of Actions in that (imperative) I2NSF 363 Policy Rule can be executed or not. Examples of I2NSF Conditions 364 include matching attributes of a packet or flow, and comparing 365 the internal state of an NSF to a desired state. 366 o Action: An action is used to control and monitor of 367 flow-based NSFs when the event and condition clauses are 368 satisfied. NSFs provide security functions by executing various 369 Actions. Examples of I2NSF Actions include providing intrusion 370 detection and/or protection, web and flow filtering, and deep 371 packet inspection for packets and flows. 373 An I2NSF Policy Rule is made up of three Boolean clauses: an Event 374 clause, a Condition clause, and an Action clause. A Boolean clause 375 is a logical statement that evaluates to either TRUE or FALSE. It 376 may be made up of one or more terms; if more than one term, then a 377 Boolean clause connects the terms using logical connectives (i.e., 378 AND, OR, and NOT). It has the following semantics: 380 IF is TRUE 381 IF is TRUE 382 THEN execute 383 END-IF 384 END-IF 386 Technically, the "Policy Rule" is really a container that aggregates 387 the above three clauses, as well as metadata. 389 The above ECA policy model is very general and easily extensible, 390 and can avoid potential constraints that could limit the 391 implementation of generic security Capabilities. 393 3.3. Relation with the External Information Model 395 Note: the symbology used from this point forward is taken from 396 section 3.3 of [I-D.draft-ietf-supa-generic-policy-info-model]. 398 The I2NSF NSF-Facing Interface is in charge of selecting and 399 managing the NSFs using their Capabilities. This is done by using 400 the following approaches: 402 1) Each NSF registers its Capabilities with the management system 403 when it "joins", and hence makes its Capabilities available to 404 the management system; 405 2) The security controller selects the set of Capabilities 406 required to meet the needs of the security service from all 407 available NSFs that it manages; 409 3) The security controller uses the Capability information model 410 to match chosen Capabilities to NSFs, independent of vendor; 411 4) The security controller takes the above information and 412 creates or uses one or more data models from the Capability 413 information model to manage the NSFs; 414 5) Control and monitoring can then begin. 416 This assumes that an external information model is used to define 417 the concept of an ECA Policy Rule and its components (e.g., Event, 418 Condition, and Action objects). This enables I2NSF Policy Rules 419 [I-D.draft-ietf-i2nsf-terminology] to be subclassed from an external 420 information model. 422 Capabilities are defined as classes (e.g., a set of objects) that 423 exhibit a common set of characteristics and behavior 424 [I-D.draft-ietf-supa-generic-policy-info-model]. 426 Each Capability is made up of at least one model element (e.g., 427 attribute, method, or relationship) that differentiates it from all 428 other objects in the system. Capabilities are, generically, a type 429 of metadata (i.e., information that describes, and/or prescribes, 430 the behavior of objects); hence, it is also assumed that an external 431 information model is used to define metadata (preferably, in the 432 form of a class hierarchy). Therefore, it is assumed that 433 Capabilities are subclassed from an external metadata model. 435 The Capability sub-model is used for advertising, creating, 436 selecting, and managing a set of specific security Capabilities 437 independent of the type and vendor of device that contains the NSF. 438 That is, the user of the NSF-Facing Interface does not care whether 439 the NSF is virtualized or hosted in a physical device, who the 440 vendor of the NSF is, and which set of entities the NSF is 441 communicating with (e.g., a firewall or an IPS). Instead, the user 442 only cares about the set of Capabilities that the NSF has, such as 443 packet filtering or deep packet inspection. The overall structure 444 is illustrated in the figure below: 446 +-------------------------+ 0..n 0..n +---------------+ 447 | |/ \ \| External | 448 | External ECA Info Model + A ----------------+ Metadata | 449 | |\ / Aggregates /| Info Model | 450 +-----------+------------+ Metadata +-------+-------+ 451 | / \ 452 | | 453 / \ | 454 Subclasses derived for I2NSF +-----+------+ 455 Security Policies | Capability | 456 | Sub-Model | 457 +------------+ 459 Figure 1. The Overall I2NSF Information Model Design 461 This draft defines a set of extensions to a generic, external, ECA 462 Policy Model to represent various NSF ECA Security Policy Rules. It 463 also defines the Capability Sub-Model; this enables ECA Policy 464 Rules to control which Capabilities are seen by which actors, and 465 used by the I2NSF system. Finally, it places requirements on what 466 type of extensions are required to the generic, external, ECA 467 information model and metadata models, in order to manage the 468 lifecycle of I2NSF Capabilities. 470 Both of the external models shown in Figure 1 could, but do not have 471 to, be based on the SUPA information model 472 [I-D.draft-ietf-supa-generic-policy-info-model]. Note that classes in 473 the Capability Sub-Model will inherit the AggregatesMetadata 474 aggregation from the External Metadata Information Model. 476 The external ECA Information Model supplies at least one set of classes 477 that represent a generic ECA Policy Rule, and a set of classes that 478 represent Events, Conditions, and Actions that can be aggregated by 479 the generic ECA Policy Rule. This enables I2NSF to reuse this 480 generic model for different purposes, as well as refine it (i.e., 481 create new subclasses, or add attributes and relationships) to 482 represent I2NSF-specific concepts. 484 It is assumed that the external ECA Information Model has the 485 ability to aggregate metadata. Capabilities are then sub-classed 486 from an appropriate class in the external Metadata Information Model; 487 this enables the ECA objects to use the existing aggregation between 488 them and Metadata to add Metadata to appropriate ECA objects. 490 Detailed descriptions of each portion of the information model are 491 given in the following sections. 493 3.4. I2NSF Capability Information Model: Theory of Operation 495 Capabilities are typically used to represent NSF functions that can 496 be invoked. Capabilities are objects, and hence, can be used in the 497 event, condition, and/or action clauses of an I2NSF ECA Policy Rule. 498 The I2NSF Capability information model refines a predefined metadata 499 model; the application of I2NSF Capabilities is done by refining a 500 predefined ECA Policy Rule information model that defines how to 501 use, manage, or otherwise manipulate a set of Capabilities. In this 502 approach, an I2NSF Policy Rule is a container that is made up of 503 three clauses: an event clause, a condition clause, and an action 504 clause. When the I2NSF policy engine receives a set of events, it 505 matches those events to events in active ECA Policy Rules. If the 506 event matches, then this triggers the evaluation of the condition 507 clause of the matched I2NSF Policy Rule. The condition clause is 508 then evaluated; if it matches, then the set of actions in the 509 matched I2NSF Policy Rule MAY be executed. 511 This document defines additional important extensions to both the 512 external ECA Policy Rule model and the external Metadata model that 513 are used by the I2NSF Information Model; examples include 514 resolution strategy, external data, and default action. All these 515 extensions come from the geometric model defined in [Bas12]. A more 516 detailed description is provided in Appendix E; a summary of the 517 important points follows. 519 Formally, given a set of actions in an I2NSF Policy Rule, the 520 resolution strategy maps all the possible subsets of actions to an 521 outcome. In other words, the resolution strategy is included in the 522 I2NSF Policy Rule to decide how to evaluate all the actions in a 523 particular I2NSF Policy Rule. This is then extended to include all 524 possible I2NSF Policy Rules that can be applied in a particular 525 scenario. Hence, the final action set from all I2NSF Policy Rules 526 is deduced. 528 Some concrete examples of resolution strategy are the First Matching 529 Rule (FMR) or Last Matching Rule (LMR) resolution strategies. When 530 no rule matches a packet, the NSFs may select a default action, if 531 they support one. 533 Resolution strategies may use, besides intrinsic rule data (i.e., 534 event, condition, and action clauses), "external data" associated to 535 each rule, such as priority, identity of the creator, and creation 536 time. Two examples of this are attaching metadata to the policy 537 action and/or policy rule, and associating the policy rule with 538 another class to convey such information. 540 3.4.1. I2NSF Condition Clause Operator Types 542 After having analyzed the literature and some existing NSFs, the 543 types of selectors are categorized as exact-match, range-based, 544 regex-based, and custom-match [Bas15][Lunt]. 546 Exact-match selectors are (unstructured) sets: elements can only be 547 checked for equality, as no order is defined on them. As an example, 548 the protocol type field of the IP header is an unordered set of 549 integer values associated to protocols. The assigned protocol 550 numbers are maintained by the IANA (http://www.iana.org/assignments/ 551 protocol-numbers/protocol-numbers.xhtml). 553 In this selector, it is only meaningful to specify condition clauses 554 that use either the "equals" or "not equals" operators: 556 proto = tcp, udp (protocol type field equals to TCP or UDP) 557 proto != tcp (protocol type field different from TCP) 559 No other operators are allowed on exact-match selectors. For example, 560 the following is an invalid condition clause, even if protocol types 561 map to integers: 563 proto < 62 (invalid condition) 565 Range-based selectors are ordered sets where it is possible to 566 naturally specify ranges as they can be easily mapped to integers. 567 As an example, the ports in the TCP protocol may be represented with 568 a range-based selector (e.g., 1024-65535). As another example, the 569 following are examples of valid condition clauses: 571 source_port = 80 572 source_port < 1024 573 source_port < 30000 && source_port >= 1024 575 We include, in range-based selectors, the category of selectors that 576 have been defined by Al-Shaer et al. as "prefix-match" [Alshaer]. 577 These selectors allow the specification of ranges of values by means 578 of simple regular expressions. The typical case is the IP address 579 selector (e.g., 10.10.1.*). 581 There is no need to distinguish between prefix match and range-based 582 selectors; for example, the address range "10.10.1.*" maps to 583 "[10.10.1.0,10.10.1.255]". 585 Another category of selector types includes those based on regular 586 expressions. This selector type is used frequently at the application 587 layer, where data are often represented as strings of text. The 588 regex-based selector type also includes string-based selectors, where 589 matching is evaluated using string matching algorithms (SMA) 590 [Cormen]. Indeed, for our purposes, string matching can be mapped to 591 regular expressions, even if in practice SMA are much faster. For 592 instance, Squid (http://www.squid-cache.org/), a popular Web caching 593 proxy that offers various access control Capabilities, allows the 594 definition of conditions on URLs that can be evaluated with SMA 595 (e.g., dstdomain) or regex matching (e.g., dstdom_regex). 597 As an example, the condition clause: 599 "URL = *.website.*" 601 matches all the URLs that contain a subdomain named website and the 602 ones whose path contain the string ".website.". As another example, 603 the condition clause: 605 "MIME_type = video/*" 607 matches all MIME objects whose type is video. 609 Finally, the idea of a custom check selector is introduced. For 610 instance, malware analysis can look for specific patterns, and 611 returns a Boolean value if the pattern is found or not. 613 In order to be properly used by high-level policy-based processing 614 systems (such as reasoning systems and policy translation systems), 615 these custom check selectors can be modeled as black-boxes (i.e., a 616 function that has a defined set of inputs and outputs for a 617 particular state), which provide an associated Boolean output. 619 More examples of custom check selectors will be presented in the 620 next versions of the draft. Some examples are already present in 621 Section 6. 623 3.4.2. Capability Selection and Usage 625 Capability selection and usage are based on the set of security 626 traffic classification and action features that an NSF provides; 627 these are defined by the Capability model. If the NSF has the 628 classification features needed to identify the packets/flows 629 required by a policy, and can enforce the needed actions, then 630 that particular NSF is capable of enforcing the policy. 632 NSFs may also have specific characteristics that automatic processes 633 or administrators need to know when they have to generate 634 configurations, like the available resolution strategies and the 635 possibility to set default actions. 637 The Capability information model can be used for two purposes: 638 describing the features provided by generic security functions, and 639 describing the features provided by specific products. The term 640 Generic Network Security Function (GNSF) refers to the classes of 641 security functions that are known by a particular system. The idea 642 is to have generic components whose behavior is well understood, so 643 that the generic component can be used even if it has some vendor- 644 specific functions. These generic functions represent a point of 645 interoperability, and can be provided by any product that offers the 646 required Capabilities. GNSF examples include packet filter, URL 647 filter, HTTP filter, VPN gateway, anti-virus, anti-malware, content 648 filter, monitoring, and anonymity proxy; these will be described 649 later in a revision of this draft as well as in an upcoming data 650 model contribution. 652 The next section will introduce the algebra to define the 653 information model of Capability registration. This associates 654 NSFs to Capabilities, and checks whether an NSF has the 655 Capabilities needed to enforce policies. 657 3.4.3. Capability Algebra 659 We introduce a Capability Algebra to ensure that the actions of 660 different policy rules do not conflict with each other. 662 Formally, two I2NSF Policy Actions conflict with each other if: 664 o the event clauses of each evaluate to TRUE 665 o the condition clauses of each evaluate to TRUE 666 o the action clauses affect the same object in different ways 668 For example, if we have two Policies: 670 P1: During 8am-6pm, if traffic is external, then run through FW 671 P2: During 7am-8pm, conduct anti-malware investigation 673 There is no conflict between P1 and P2, since the actions are 674 different. However, consider these two policies: 676 P3: During 8am-6pm, John gets GoldService 677 P4: During 10am-4pm, FTP from all users gets BronzeService 679 P3 and P4 are now in conflict, because between the hours of 10am and 680 4pm, the actions of P3 and P4 are different and apply to the same 681 user (i.e., John). 683 Let us define the concept of a "matched" policy rule as one in which 684 its event and condition clauses are both evaluate to true. This enables 685 the actions in this policy rule to be evaluated. Then, the 686 conflict matrix is defined by a 5-tuple {Ac, Cc, Ec, RSc, Dc}, 687 where: 689 o Ac is the set of Actions currently available from the NSF; 690 o Cc is the set of Conditions currently available from the NSF; 691 o Ec is the set of Events the NSF is able to respond to. 692 Therefore, the event clause of an I2NSF ECA Policy Rule that is 693 written for an NSF will only allow a set of designated events 694 in Ec. For compatibility purposes, we will assume that if Ec={} 695 (that is, Ec is empty), the NSF only accepts CA policies. 696 o RSc is the set of Resolution Strategies that can be used to 697 specify how to resolve conflicts that occur between the actions 698 of the same or different policy rules that are matched and 699 contained in this particular NSF; 700 o Dc defines the notion of a Default action that can be used to 701 specify a predefined action when no other alternative action 702 was matched by the currently executing I2NSF Policy Rule. An 703 analogy is the use of a default statement in a C switch 704 statement. This field of the Capability algebra can take the 705 following values: 706 - An explicit action (that has been predefined; typically, 707 this means that it is fixed and not configurable), denoted 708 as Dc ={a}. In this case, the NSF will always use the 709 action as as the default action. 710 - A set of explicit actions, denoted Dc={a1,a2, ...}; 711 typically, this means that any **one** action can be used 712 as the default action. This enables the policy writer to 713 choose one of a predefined set of actions {a1, a2, ...} to 714 serve as the default action. 716 - A fully configurable default action, denoted as Dc={F}. 717 Here, F is a dummy symbol (i.e., a placeholder value) that 718 can be used to indicate that the default action can be 719 freely selected by the policy editor from the actions Ac 720 available at the NSF. In other words, one of the actions 721 Ac may be selected by the policy writer to act as the 722 default action. 723 - No default action, denoted as Dc={}, for cases where the 724 NSF does not allow the explicit selection of a default 725 action. 727 *** Note to WG: please review the following paragraphs 728 * 729 * Interesting Capability concepts that could be considered for a next 730 * version of the Capability model and algebra include: 731 * 732 * o Event clause representation (e.g., conjunctive vs. disjunctive 733 * normal form for Boolean clauses) 734 * o Event clause evaluation function, which would enable more 735 * complex expressions than simple Boolean expressions to be used 736 * 737 * 738 * o Condition clause representation (e.g., conjunctive vs. 739 * disjunctive normal form for Boolean clauses) 740 * o Condition clause evaluation function, which would enable more 741 * complex expressions than simple Boolean expressions to be used 742 * o Action clause evaluation strategies (e.g., execute first 743 * action only, execute last action only, execute all actions, 744 * execute all actions until an action fails) 745 * o The use of metadata, which can be associated to both an I2NSF 746 * Policy Rule as well as objects contained in the I2NSF Policy 747 * Rule (e.g., an action), that describe the object and/or 748 * prescribe behavior. Descriptive examples include adding 749 * authorship information and defining a time period when an NSF 750 * can be used to be defined; prescriptive examples include 751 * defining rule priorities and/or ordering. 752 * 753 * Given two sets of Capabilities, denoted as 754 * 755 * cap1=(Ac1,Cc1,Ec1,RSc1,Dc1) and 756 * cap2=(Ac2,Cc2,Ec2,RSc2,Dc2), 757 * 758 * two set operations are defined for manipulating Capabilities: 759 * 760 * o Capability addition: 761 * cap1+cap2 = {Ac1 U Ac2, Cc1 U Cc2, Ec1 U Ec2, RSc1, Dc1} 762 * o Capability subtraction: 763 * cap1-cap2 = {Ac1 \ Ac2, Cc1 \ Cc2, Ec1 \ Ec2, RSc1, Dc1} 764 * 765 * In the above formulae, "U" is the set union operator and "\" is the 766 * set difference operator. 768 * The addition and subtraction of Capabilities are defined as the 769 * addition (set union) and subtraction (set difference) of both the 770 * Capabilities and their associated actions. Note that **only** the 771 * leftmost (in this case, the first matched policy rule) Resolution 772 * Strategy and Default Action are used. 773 * 774 * Note: actions, events, and conditions are **symmetric**. This means 775 * that when two matched policy rules are merged, the resultant actions 776 * and Capabilities are defined as the union of each individual matched 777 * policy rule. However, both resolution strategies and default actions 778 * are **asymmetric** (meaning that in general, they can **not** be 779 * combined, as one has to be chosen). In order to simplify this, we 780 * have chosen that the **leftmost** resolution strategy and the 781 * **leftmost** default action are chosen. This enables the developer 782 * to view the leftmost matched rule as the "base" to which other 783 * elements are added. 784 * 785 * As an example, assume that a packet filter Capability, Cpf, is 786 * defined. Further, assume that a second Capability, called Ctime, 787 * exists, and that it defines time-based conditions. Suppose we need 788 * to construct a new generic packet filter, Cpfgen, that adds 789 * time-based conditions to Cpf. 790 * 791 * 792 * Conceptually, this is simply the addition of the Cpf and Ctime 793 * Capabilities, as follows: 794 * Apf = {Allow, Deny} 795 * Cpf = {IPsrc,IPdst,Psrc,Pdst,protType} 796 * Epf = {} 797 * RSpf = {FMR} 798 * Dpf = {A1} 799 * 800 * Atime = {Allow, Deny, Log} 801 * Ctime = {timestart, timeend, datestart, datestop} 802 * Etime = {} 803 * RStime = {LMR} 804 * Dtime = {A2} 805 * 806 * Then, Cpfgen is defined as: 807 * Cpfgen = {Apf U Atime, Cpf U Ctime, Epf U Etime, RSpf, Dpf} 808 * = {Allow, Deny, Log}, 809 * {{IPsrc, IPdst, Psrc, Pdst, protType} U 810 * {timestart, timeend, datestart, datestop}}, 811 * {}, 812 * {FMR}, 813 * {A1} 814 * 815 * In other words, Cpfgen provides three actions (Allow, Deny, Log), 816 * filters traffic based on a 5-tuple that is logically ANDed with a 817 * time period, and uses FMR; it provides A1 as a default action, and 818 * it does not react to events. 820 * Note: We are investigating, for a next revision of this draft, the 821 * possibility to add further operations that do not follow the 822 * symmetric vs. asymmetric properties presented in the previous note. 823 * We are looking for use cases that may justify the complexity added 824 * by the availability of more Capability manipulation operations. 825 * 826 *** End Note to WG 828 3.5. Initial NSFs Capability Categories 830 The following subsections define three common categories of 831 Capabilities: network security, content security, and attack 832 mitigation. Future versions of this document may expand both the 833 number of categories as well as the types of Capabilities within a 834 given category. 836 3.5.1. Network Security Capabilities 838 Network security is a category that describes the inspecting and 839 processing of network traffic based on the use of pre-defined 840 security policies. 842 The inspecting portion may be thought of as a packet-processing 843 engine that inspects packets traversing networks, either directly or 844 in the context of flows with which the packet is associated. From 845 the perspective of packet-processing, implementations differ in the 846 depths of packet headers and/or payloads they can inspect, the 847 various flow and context states they can maintain, and the actions 848 that can be applied to the packets or flows. 850 3.5.2. Content Security Capabilities 852 Content security is another category of security Capabilities 853 applied to the application layer. Through analyzing traffic contents 854 carried in, for example, the application layer, content security 855 Capabilities can be used to identify various security functions that 856 are required. These include defending against intrusion, inspecting 857 for viruses, filtering malicious URL or junk email, blocking illegal 858 web access, or preventing malicious data retrieval. 860 Generally, each type of threat in the content security category has 861 a set of unique characteristics, and requires handling using a set 862 of methods that are specific to that type of content. Thus, these 863 Capabilities will be characterized by their own content-specific 864 security functions. 866 3.5.3. Attack Mitigation Capabilities 868 This category of security Capabilities is used to detect and mitigate 869 various types of network attacks. Today's common network attacks can 870 be classified into the following sets: 872 o DDoS attacks: 873 - Network layer DDoS attacks: Examples include SYN flood, UDP 874 flood, ICMP flood, IP fragment flood, IPv6 Routing header 875 attack, and IPv6 duplicate address detection attack; 876 - Application layer DDoS attacks: Examples include HTTP flood, 877 https flood, cache-bypass HTTP floods, WordPress XML RPC 878 floods, and ssl DDoS. 879 o Single-packet attacks: 880 - Scanning and sniffing attacks: IP sweep, port scanning, etc. 881 - malformed packet attacks: Ping of Death, Teardrop, etc. 882 - special packet attacks: Oversized ICMP, Tracert, IP timestamp 883 option packets, etc. 885 Each type of network attack has its own network behaviors and 886 packet/flow characteristics. Therefore, each type of attack needs a 887 special security function, which is advertised as a set of 888 Capabilities, for detection and mitigation. The implementation and 889 management of this category of security Capabilities of attack 890 mitigation control is very similar to the content security control 891 category. A standard interface, through which the security controller 892 can choose and customize the given security Capabilities according to 893 specific requirements, is essential. 895 4. Information Sub-Model for Network Security Capabilities 897 The purpose of the Capability Information Sub-Model is to define the 898 concept of a Capability, and enable Capabilities to be aggregated to 899 appropriate objects. The following sections present the Network 900 Security, Content Security, and Attack Mitigation Capability 901 sub-models. 903 4.1. Information Sub-Model for Network Security 905 The purpose of the Network Security Information Sub-Model is to 906 define how network traffic is defined, and determine if one or more 907 network security features need to be applied to the traffic or not. 908 Its basic structure is shown in the following figure: 910 +---------------------+ 911 +---------------+ 1..n 1..n | | 912 | |/ \ \| A Common Superclass | 913 | ECAPolicyRule + A -------------+ for ECA Objects | 914 | |\ / /| | 915 +-------+-------+ +---------+-----------+ 916 / \ / \ 917 | | 918 | | 919 (subclasses to define Network (subclasses of Event, 920 Security ECA Policy Rules Condition, and Action Objects 921 extensibly, so that other for Network Security 922 Policy Rules can be added) Policy Rules) 924 Figure 2. Network Security Information Sub-Model Overview 926 In the above figure, the ECAPolicyRule, along with the Event, 927 Condition, and Action Objects, are defined in the external ECA 928 Information Model. The Network Security Sub-Model extends all of 929 these objects in order to define security-specific ECA Policy Rules, 930 as well as extensions to the (generic) Event, Condition, and 931 Action objects. 933 An I2NSF Policy Rule is a special type of Policy Rule that is in 934 event-condition-action (ECA) form. It consists of the Policy Rule, 935 components of a Policy Rule (e.g., events, conditions, actions, and 936 some extensions like resolution policy, default action and external 937 data), and optionally, metadata. It can be applied to both uni- and 938 bi-directional traffic across the NSF. 940 Each rule is triggered by one or more events. If the set of events 941 evaluates to true, then a set of conditions are evaluated and, if 942 true, then enable a set of actions to be executed. This takes the 943 following conceptual form: 945 IF is TRUE 946 IF is TRUE 947 THEN execute 948 END-IF 949 END-IF 951 In the above example, the Event, Condition, and Action portions of a 952 Policy Rule are all **Boolean Clauses**. Hence, they can contain 953 combinations of terms connected by the three logical connectives 954 operators (i.e., AND, OR, NOT). An example is: 956 ((SLA==GOLD) AND ((numPackets>burstRate) OR NOT(bwAvail 2616 | |---- segment = condition in S1 -----| S1 2617 + IP source 2619 Figure 17: Geometric representation of a rule r=(c,a) that 2620 matches x1, but does not match x2. 2622 Accordingly, the condition clause c is a subset of S: 2624 c = s1 X s2 X ... X sm <= S1 X S2 X ... X Sm = S 2626 S represents the totality of the packets that are individually 2627 selectable by the security control to model when we use it to 2628 enforce a policy. Unfortunately, not all its subsets are valid 2629 condition clauses: only hyper-rectangles, or the union of 2630 hyper-rectangles (as they are Cartesian product of conditions), 2631 are valid. This is an intrinsic constraint of the policy 2632 language, as it specifies rules by defining a condition for each 2633 selector. Languages that allow specification of conditions as 2634 relations over more fields are modeled by the geometric model as 2635 more complex geometric shapes determined by the equations. However, 2636 the algorithms to compute intersections are much more sophisticated 2637 than intersection hyper-rectangles. Figure 17 graphically represents 2638 a condition clause c in a two-dimensional selection space. 2640 In the geometric model, a rule is expressed as r=(c,a), where c <= S 2641 (the condition clause is a subset of the selection space), and the 2642 action a belongs to A. Rule condition clauses match a packet (rules 2643 match a packet), if all the conditions forming the clauses match the 2644 packet. In Figure 17, the rule with condition clause c matches the 2645 packet x1 but not x2. 2647 The rule set R is composed of n rules ri=(ci,ai). 2649 The decision criteria for the action to apply when a packet matches 2650 two or more rules is abstracted by means of the resolution strategy 2652 RS: Pow(R) -> A 2654 where Pow(R) is the power set of rules in R. 2656 Formally, given a set of rules, the resolution strategy maps all the 2657 possible subsets of rules to an action a in A. When no rule matches a 2658 packet, the security controls may select the default action d in A, 2659 if they support one. 2661 Resolution strategies may use, besides intrinsic rule data (i.e., 2662 condition clause and action clause), also external data associated to 2663 each rule, such as priority, identity of the creator, and creation 2664 time. Formally, every rule ri is associated by means of the 2665 function e(.): 2667 e(ri) = (ri,f1(ri),f2(ri),...) 2669 where E={fj:R -> Xj} (j=1,2,...) is the set that includes all 2670 functions that map rules to external attributes in Xj. However, 2671 E, e, and all the Xj are determined by the resolution strategy used. 2673 A policy is thus a function p: S -> A that connects each point of 2674 the selection space to an action taken from the action set A 2675 according to the rules in R. By also assuming RS(0)=d (where 0 is 2676 the empty-set) and RS(ri)=ai, the policy p can be described as: 2678 p(x)=RS(match{R(x)}). 2680 Therefore, in the geometric model, a policy is completely defined by 2681 the 4-tuple (R,RS,E,d): the rule set R, the resolution function RS, 2682 the set E of mappings to the external attributes, and the default 2683 action d. 2685 Note that, the geometric model also supports ECA paradigms by simply 2686 modeling events like an additional selector. 2688 Authors' Addresses 2689 Liang Xia (Frank) 2690 Huawei 2691 101 Software Avenue, Yuhuatai District 2692 Nanjing, Jiangsu 210012 2693 China 2694 Email: Frank.xialiang@huawei.com 2696 John Strassner 2697 Huawei 2698 Email: John.sc.Strassner@huawei.com 2700 Cataldo Basile 2701 Politecnico di Torino 2702 Corso Duca degli Abruzzi, 34 2703 Torino, 10129 2704 Italy 2705 Email: cataldo.basile@polito.it 2707 Diego R. Lopez 2708 Telefonica I+D 2709 Zurbaran, 12 2710 Madrid, 28010 2711 Spain 2712 Phone: +34 913 129 041 2713 Email: diego.r.lopez@telefonica.com