idnits 2.17.1 draft-ietf-i2nsf-capability-00.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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (Sep 29, 2017) is 2395 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 (-10) exists of draft-ietf-i2nsf-framework-06 == Outdated reference: A later version (-08) exists of draft-ietf-i2nsf-terminology-03 Summary: 0 errors (**), 0 flaws (~~), 3 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: March 29, 2018 C. Basile 5 PoliTO 6 D. Lopez 7 TID 8 Sep 29, 2017 10 Information Model of NSFs Capabilities 11 draft-ietf-i2nsf-capability-00.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 March 29, 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 Equipment in a mobile network, 171 devices in the Internet of Things, or residential access users 172 [I-D.draft-ietf-i2nsf-problem-and-use-cases]. 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 [I-D.draft-ietf-i2nsf-framework], there are two types 193 of I2NSF interfaces 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 implementation. 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 functionality, 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 one 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 must have the ability to auto-discover, 302 auto-negotiate, and auto-update its security Capabilities 303 (i.e., without human intervention). These features are 304 especially useful for the management of a large number of 305 NSFs. They are essential to add smart services (e.g., analysis, 306 refinement, Capability reasoning, and optimization) for the 307 security scheme employed. These features are supported by many 308 design patterns, including the Observer Pattern [OODOP], the 309 Mediator Pattern [OODMP], and a set of Message Exchange 310 Patterns [Hohpe]. 311 o Scalability: the management system must have the Capability to 312 scale up/down or scale in/out. Thus, it can meet various 313 performancerequirements derived from changeable network traffic 314 or service requests. In addition, security Capabilities that are 315 affected by scalability changes must support reporting statistics 316 to the security controller to assist its decision on whether it 317 needs to invoke scaling or not. However, this requirement is for 318 information only, and is beyond the scope of this document. 320 Based on the above principles, a set of abstract and vendor-neutral 321 Capabilities with standard interfaces is defined. This provides a 322 Capability model that enables a set of NSFs that are required at a 323 given time to be selected, as well as the unambiguous definition of 324 the security offered by the set of NSFs used. The security 325 controller can compare the requirements of users and applications to 326 the set of Capabilities that are currently available in order to 327 choose which NSFs are needed to meet those requirements. Note that 328 this choice is independent of vendor, and instead relies specifically 329 on the Capabilities (i.e., the description) of the functions 330 provided. The security controller may also be able to customize the 331 functionality of selected NSFs. 333 Furthermore, when an unknown threat (e.g., zero-day exploits and 334 unknown malware) is reported by a NSF, new Capabilities may be 335 created, and/or existing Capabilities may be updated (e.g., by 336 updating its signature and algorithm). This results in enhancing 337 existing NSFs (and/or creating new NSFs) to address the new threats. 338 New Capabilities may be sent to and stored in a centralized 339 repository, or stored separately in a vendor's local repository. 340 In either case, a standard interface facilitates the update process. 342 Note that most systems cannot dynamically create a new Capability 343 without human interaction. This is an area for further study. 345 3.2. ECA Policy Model Overview 347 The "Event-Condition-Action" (ECA) policy model is used as the basis 348 for the design of I2NSF Policy Rules; definitions of all I2NSF 349 policy-related terms are also defined in 350 [I-D.draft-ietf-i2nsf-terminology]: 352 o Event: An Event is any important occurrence in time of a change 353 in the system being managed, and/or in the environment of the 354 system being managed. When used in the context of I2NSF 355 Policy Rules, it is used to determine whether the Condition 356 clause of the I2NSF Policy Rule can be evaluated or not. 358 Examples of an I2NSF Event include time and user actions (e.g., 359 logon, logoff, and actions that violate an ACL). 360 o Condition: A condition is defined as a set of attributes, 361 features, and/or values that are to be compared with a set of 362 known attributes, features, and/or values in order to determine 363 whether or not the set of Actions in that (imperative) I2NSF 364 Policy Rule can be executed or not. Examples of I2NSF Conditions 365 include matching attributes of a packet or flow, and comparing 366 the internal state of an NSF to a desired state. 367 o Action: An action is used to control and monitor aspects of 368 flow-based NSFs when the event and condition clauses are 369 satisfied. NSFs provide security functions by executing various 370 Actions. Examples of I2NSF Actions include providing intrusion 371 detection and/or protection, web and flow filtering, and deep 372 packet inspection for packets and flows. 374 An I2NSF Policy Rule is made up of three Boolean clauses: an Event 375 clause, a Condition clause, and an Action clause. A Boolean clause 376 is a logical statement that evaluates to either TRUE or FALSE. It 377 may be made up of one or more terms; if more than one term, then a 378 Boolean clause connects the terms using logical connectives (i.e., 379 AND, OR, and NOT). It has the following semantics: 381 IF is TRUE 382 IF is TRUE 383 THEN execute 384 END-IF 385 END-IF 387 Technically, the "Policy Rule" is really a container that aggregates 388 the above three clauses, as well as metadata. 390 The above ECA policy model is very general and easily extensible, 391 and can avoid potential constraints that could limit the 392 implementation of generic security Capabilities. 394 3.3. Relation with the External Information Model 396 Note: the symbology used from this point forward is taken from 397 section 3.3 of [I-D.draft-ietf-supa-generic-policy-info-model]. 399 The I2NSF NSF-Facing Interface is in charge of selecting and 400 managing the NSFs using their Capabilities. This is done using 401 the following approach: 403 1) Each NSF registers its Capabilities with the management system 404 when it "joins", and hence makes its Capabilities available to 405 the management system; 406 2) The security controller selects the set of Capabilities 407 required to meet the needs of the security service from all 408 available NSFs that it manages; 410 3) The security controller uses the Capability information model 411 to match chosen Capabilities to NSFs, independent of vendor; 412 4) The security controller takes the above information and 413 creates or uses one or more data models from the Capability 414 information model to manage the NSFs; 415 5) Control and monitoring can then begin. 417 This assumes that an external information model is used to define 418 the concept of an ECA Policy Rule and its components (e.g., Event, 419 Condition, and Action objects). This enables I2NSF Policy Rules 420 [I-D.draft-ietf-i2nsf-terminology] to be subclassed from an external 421 information model. 423 Capabilities are defined as classes (e.g., a set of objects that 424 exhibit a common set of characteristics and behavior 425 [I-D.draft-ietf-supa-generic-policy-info-model]. 427 Each Capability is made up of at least one model element (e.g., 428 attribute, method, or relationship) that differentiates it from all 429 other objects in the system. Capabilities are, generically, a type 430 of metadata (i.e., information that describes, and/or prescribes, 431 the behavior of objects); hence, it is also assumed that an external 432 information model is used to define metadata (preferably, in the 433 form of a class hierarchy). Therefore, it is assumed that 434 Capabilities are subclassed from an external metadata model. 436 The Capability sub-model is used for advertising, creating, 437 selecting, and managing a set of specific security Capabilities 438 independent of the type and vendor of device that contains the NSF. 439 That is, the user of the NSF-Facing Interface does not care whether 440 the NSF is virtualized or hosted in a physical device, who the 441 vendor of the NSF is, and which set of entities the NSF is 442 communicating with (e.g., a firewall or an IPS). Instead, the user 443 only cares about the set of Capabilities that the NSF has, such as 444 packet filtering or deep packet inspection. The overall structure 445 is illustrated in the figure below: 447 +-------------------------+ 0..n 0..n +---------------+ 448 | |/ \ \| External | 449 | External ECA Info Model + A ----------------+ Metadata | 450 | |\ / Aggregates /| Info Model | 451 +-----------+------------+ Metadata +-------+-------+ 452 | / \ 453 | | 454 / \ | 455 Subclasses derived for I2NSF +-----+------+ 456 Security Policies | Capability | 457 | Sub-Model | 458 +------------+ 460 Figure 1. The Overall I2NSF Information Model Design 462 This draft defines a set of extensions to a generic, external, ECA 463 Policy Model to represent various NSF ECA Security Policy Rules. It 464 also defines the Capability Sub-Model; this enables ECA Policy 465 Rules to control which Capabilities are seen by which actors, and 466 used by the I2NSF system. Finally, it places requirements on what 467 type of extensions are required to the generic, external, ECA 468 information model and metadata models, in order to manage the 469 lifecycle of I2NSF Capabilities. 471 Both of the external models shown in Figure 1 could, but do not have 472 to, be based on the SUPA information model 473 [I-D.draft-ietf-supa-generic-policy-info-model]. Note that classes in 474 the Capability Sub-Model will inherit the AggregatesMetadata 475 aggregation from the External Metadata Information Model. 477 The external ECA Information Model supplies at least a set of classes 478 that represent a generic ECA Policy Rule, and a set of classes that 479 represent Events, Conditions, and Actions that can be aggregated by 480 the generic ECA Policy Rule. This enables I2NSF to reuse this 481 generic model for different purposes, as well as refine it (i.e., 482 create new subclasses, or add attributes and relationships) to 483 represent I2NSF-specific concepts. 485 It is assumed that the external ECA Information Model has the 486 ability to aggregate metadata. Capabilities are then sub-classed 487 from an appropriate class in the external Metadata Information Model; 488 this enables the ECA objects to use the existing aggregation between 489 them and Metadata to add Metadata to appropriate ECA objects. 491 Detailed descriptions of each portion of the information model are 492 given in the following sections. 494 3.4. I2NSF Capability Information Model: Theory of Operation 496 Capabilities are typically used to represent NSF functions that can 497 be invoked. Capabilities are objects, and hence, can be used in the 498 event, condition, and/or action clauses of an I2NSF ECA Policy Rule. 499 The I2NSF Capability information model refines a predefined metadata 500 model; the application of I2NSF Capabilities is done by refining a 501 predefined ECA Policy Rule information model that defines how to 502 use, manage, or otherwise manipulate a set of Capabilities. In this 503 approach, an I2NSF Policy Rule is a container that is made up of 504 three clauses: an event clause, a condition clause, and an action 505 clause. When the I2NSF policy engine receives a set of events, it 506 matches those events to events in active ECA Policy Rules. If the 507 event matches, then this triggers the evaluation of the condition 508 clause of the matched I2NSF Policy Rule. The condition clause is 509 then evaluated; if it matches, then the set of actions in the 510 matched I2NSF Policy Rule MAY be executed. 512 This document defines additional important extensions to both the 513 external ECA Policy Rule model and the external Metadata model that 514 are used by the I2NSF Information Model; examples include 515 resolution strategy, external data, and default action. All these 516 extensions come from the geometric model defined in [Bas12]. A more 517 detailed description is provided in Appendix E; a summary of the 518 important points follows. 520 Formally, given a set of actions in an I2NSF Policy Rule, the 521 resolution strategy maps all the possible subsets of actions to an 522 outcome. In other words, the resolution strategy is included in the 523 I2NSF Policy Rule to decide how to evaluate all the actions in a 524 particular I2NSF Policy Rule. This is then extended to include all 525 possible I2NSF Policy Rules that can be applied in a particular 526 scenario. Hence, the final action set from all I2NSF Policy Rules 527 is deduced. 529 Some concrete examples of resolution strategy are the First Matching 530 Rule (FMR) or Last Matching Rule (LMR) resolution strategies. When 531 no rule matches a packet, the NSFs may select a default action, if 532 they support one. 534 Resolution strategies may use, besides intrinsic rule data (i.e., 535 event, condition, and action clauses), "external data" associated to 536 each rule, such as priority, identity of the creator, and creation 537 time. Two examples of this are attaching metadata to the policy 538 action and/or policy rule, and associating the policy rule with 539 another class to convey such information. 541 3.4.1. I2NSF Condition Clause Operator Types 543 After having analyzed the literature and some existing NSFs, the 544 types of selectors are categorized as exact-match, range-based, 545 regex-based, and custom-match [Bas15][Lunt]. 547 Exact-match selectors are (unstructured) sets: elements can only be 548 checked for equality, as no order is defined on them. As an example, 549 the protocol type field of the IP header is an unordered set of 550 integer values associated to protocols. The assigned protocol 551 numbers are maintained by the IANA (http://www.iana.org/assignments/ 552 protocol-numbers/protocol-numbers.xhtml). 554 In this selector, it is only meaningful to specify condition clauses 555 that use either the "equals" or "not equals" operators: 557 proto = tcp, udp (protocol type field equals to TCP or UDP) 558 proto != tcp (protocol type field different from TCP) 560 No other operators are allowed on exact-match selectors. For example, 561 the following is an invalid condition clause, even if protocol types 562 map to integers: 564 proto < 62 (invalid condition) 566 Range-based selectors are ordered sets where it is possible to 567 naturally specify ranges as they can be easily mapped to integers. 568 As an example, the ports in the TCP protocol may be represented with 569 a range-based selector (e.g., 1024-65535). As another example, the 570 following are examples of valid condition clauses: 572 source_port = 80 573 source_port < 1024 574 source_port < 30000 && source_port >= 1024 576 We include, in range-based selectors, the category of selectors that 577 have been defined by Al-Shaer et al. as "prefix-match" [Alshaer]. 578 These selectors allow the specification of ranges of values by means 579 of simple regular expressions. The typical case is the IP address 580 selector (e.g., 10.10.1.*). 582 There is no need to distinguish between prefix match and range-based 583 selectors; for example, the address range "10.10.1.*" maps to 584 "[10.10.1.0,10.10.1.255]". 586 Another category of selector types includes those based on regular 587 expressions. This selector type is used frequently at the application 588 layer, where data are often represented as strings of text. The 589 regex-based selector type also includes string-based selectors, where 590 matching is evaluated using string matching algorithms (SMA) 591 [Cormen]. Indeed, for our purposes, string matching can be mapped to 592 regular expressions, even if in practice SMA are much faster. For 593 instance, Squid (http://www.squid-cache.org/), a popular Web caching 594 proxy that offers various access control Capabilities, allows the 595 definition of conditions on URLs that can be evaluated with SMA 596 (e.g., dstdomain) or regex matching (e.g., dstdom_regex). 598 As an example, the condition clause: 600 "URL = *.website.*" 602 matches all the URLs that contain a subdomain named website and the 603 ones whose path contain the string ".website.". As another example, 604 the condition clause: 606 "MIME_type = video/*" 608 matches all MIME objects whose type is video. 610 Finally, the idea of a custom check selector is introduced. For 611 instance, malware analysis can look for specific patterns, and 612 returns a Boolean value if the pattern is found or not. 614 In order to be properly used by high-level policy-based processing 615 systems (such as reasoning systems and policy translation systems), 616 these custom check selectors can be modeled as black-boxes (i.e., a 617 function that has a defined set of inputs and outputs for a 618 particular state), which provide an associated Boolean output. 620 More examples of custom check selectors will be presented in the 621 next versions of the draft. Some examples are already present in 622 Section 6. 624 3.4.2. Capability Selection and Usage 626 Capability selection and usage are based on the set of security 627 traffic classification and action features that an NSF provides; 628 these are defined by the Capability model. If the NSF has the 629 classification features needed to identify the packets/flows 630 required by a policy, and can enforce the needed actions, then 631 that particular NSF is capable of enforcing the policy. 633 NSFs may also have specific characteristics that automatic processes 634 or administrators need to know when they have to generate 635 configurations, like the available resolution strategies and the 636 possibility to set default actions. 638 The Capability information model can be used for two purposes: 639 describing the features provided by generic security functions, and 640 describing the features provided by specific products. The term 641 Generic Network Security Function (GNSF) refers to the classes of 642 security functions that are known by a particular system. The idea 643 is to have generic components whose behavior is well understood, so 644 that the generic component can be used even if it has some vendor- 645 specific functions. These generic functions represent a point of 646 interoperability, and can be provided by any product that offers the 647 required Capabilities. GNSF examples include packet filter, URL 648 filter, HTTP filter, VPN gateway, anti-virus, anti-malware, content 649 filter, monitoring, and anonymity proxy; these will be described 650 later in a revision of this draft as well as in an upcoming data 651 model contribution. 653 The next section will introduce the algebra to define the 654 information model of Capability registration. This associates 655 NSFs to Capabilities, and checks whether a NSF has the 656 Capabilities needed to enforce policies. 658 3.4.3. Capability Algebra 660 We introduce a Capability Algebra to ensure that the actions of 661 different policy rules do not conflict with each other. 663 Formally, two I2NSF Policy Actions conflict with each other if: 665 o the event clauses of each evaluate to TRUE 666 o the condition clauses of each evaluate to TRUE 667 o the action clauses affect the same object in different ways 669 For example, if we have two Policies: 671 P1: During 8am-6pm, if traffic is external, then run through FW 672 P2: During 7am-8pm, conduct anti-malware investigation 674 There is no conflict between P1 and P2, since the actions are 675 different. However, consider these two policies: 677 P3: During 8am-6pm, John gets GoldService 678 P4: During 10am-4pm, FTP from all users gets BronzeService 680 P3 and P4 are now in conflict, because between the hours of 10am and 681 4pm, the actions of P3 and P4 are different and apply to the same 682 user (i.e., John). 684 Let us define the concept of a "matched" policy rule as one in which 685 its event and condition clauses both evaluate to true. This enables 686 the actions in this policy rule to be evaluated. Then, the 687 conflict matrix is defined by a 5-tuple {Ac, Cc, Ec, RSc, Dc}, 688 where: 690 o Ac is the set of Actions currently available from the NSF; 691 o Cc is the set of Conditions currently available from the NSF; 692 o Ec is the set of Events the NSF is able to respond to. 693 Therefore, the event clause of an I2NSF ECA Policy Rule that is 694 written for an NSF will only allow a set of designated events 695 in Ec. For compatibility purposes, we will assume that if Ec={} 696 (that is, Ec is empty), the NSF only accepts CA policies. 697 o RSc is the set of Resolution Strategies that can be used to 698 specify how to resolve conflicts that occur between the actions 699 of the same or different policy rules that are matched and 700 contained in this particular NSF; 701 o Dc defines the notion of a Default action that can be used to 702 specify a predefined action when no other alternative action 703 was matched by the currently executing I2NSF Policy Rule. An 704 analogy is the use of a default statement in a C switch 705 statement. This field of the Capability algebra can take the 706 following values: 707 - An explicit action (that has been predefined; typically, 708 this means that it is fixed and not configurable), denoted 709 as Dc ={a}. In this case, the NSF will always use the 710 action as as the default action. 711 - A set of explicit actions, denoted Dc={a1,a2, ...}; 712 typically, this means that any **one** action can be used 713 as the default action. This enables the policy writer to 714 choose one of a predefined set of actions {a1, a2, ...} to 715 serve as the default action. 717 - A fully configurable default action, denoted as Dc={F}. 718 Here, F is a dummy symbol (i.e., a placeholder value) that 719 can be used to indicate that the default action can be 720 freely selected by the policy editor from the actions Ac 721 available at the NSF. In other words, one of the actions 722 Ac may be selected by the policy writer to act as the 723 default action. 724 - No default action, denoted as Dc={}, for cases where the 725 NSF does not allow the explicit selection of a default 726 action. 728 *** Note to WG: please review the following paragraphs 729 * 730 * Interesting Capability concepts that could be considered for a next 731 * version of the Capability model and algebra include: 732 * 733 * o Event clause representation (e.g., conjunctive vs. disjunctive 734 * normal form for Boolean clauses) 735 * o Event clause evaluation function, which would enable more 736 * complex expressions than simple Boolean expressions to be used 737 * 738 * 739 * o Condition clause representation (e.g., conjunctive vs. 740 * disjunctive normal form for Boolean clauses) 741 * o Condition clause evaluation function, which would enable more 742 * complex expressions than simple Boolean expressions to be used 743 * o Action clause evaluation strategies (e.g., execute first 744 * action only, execute last action only, execute all actions, 745 * execute all actions until an action fails) 746 * o The use of metadata, which can be associated to both an I2NSF 747 * Policy Rule as well as objects contained in the I2NSF Policy 748 * Rule (e.g., an action), that describe the object and/or 749 * prescribe behavior. Descriptive examples include adding 750 * authorship information and defining a time period when an NSF 751 * can be used to be defined; prescriptive examples include 752 * defining rule priorities and/or ordering. 753 * 754 * Given two sets of Capabilities, denoted as 755 * 756 * cap1=(Ac1,Cc1,Ec1,RSc1,Dc1) and 757 * cap2=(Ac2,Cc2,Ec2,RSc2,Dc2), 758 * 759 * two set operations are defined for manipulating Capabilities: 760 * 761 * o Capability addition: 762 * cap1+cap2 = {Ac1 U Ac2, Cc1 U Cc2, Ec1 U Ec2, RSc1, Dc1} 763 * o Capability subtraction: 764 * cap1-cap2 = {Ac1 \ Ac2, Cc1 \ Cc2, Ec1 \ Ec2, RSc1, Dc1} 765 * 766 * In the above formulae, "U" is the set union operator and "\" is the 767 * set difference operator. 769 * The addition and subtraction of Capabilities are defined as the 770 * addition (set union) and subtraction (set difference) of both the 771 * Capabilities and their associated actions. Note that **only** the 772 * leftmost (in this case, the first matched policy rule) Resolution 773 * Strategy and Default Action are used. 774 * 775 * Note: actions, events, and conditions are **symmetric**. This means 776 * that when two matched policy rules are merged, the resultant actions 777 * and Capabilities are defined as the union of each individual matched 778 * policy rule. However, both resolution strategies and default actions 779 * are **asymmetric** (meaning that in general, they can **not** be 780 * combined, as one has to be chosen). In order to simplify this, we 781 * have chosen that the **leftmost** resolution strategy and the 782 * **leftmost** default action are chosen. This enables the developer 783 * to view the leftmost matched rule as the "base" to which other 784 * elements are added. 785 * 786 * As an example, assume that a packet filter Capability, Cpf, is 787 * defined. Further, assume that a second Capability, called Ctime, 788 * exists, and that it defines time-based conditions. Suppose we need 789 * to construct a new generic packet filter, Cpfgen, that adds 790 * time-based conditions to Cpf. 791 * 792 * 793 * Conceptually, this is simply the addition of the Cpf and Ctime 794 * Capabilities, as follows: 795 * Apf = {Allow, Deny} 796 * Cpf = {IPsrc,IPdst,Psrc,Pdst,protType} 797 * Epf = {} 798 * RSpf = {FMR} 799 * Dpf = {A1} 800 * 801 * Atime = {Allow, Deny, Log} 802 * Ctime = {timestart, timeend, datestart, datestop} 803 * Etime = {} 804 * RStime = {LMR} 805 * Dtime = {A2} 806 * 807 * Then, Cpfgen is defined as: 808 * Cpfgen = {Apf U Atime, Cpf U Ctime, Epf U Etime, RSpf, Dpf} 809 * = {Allow, Deny, Log}, 810 * {{IPsrc, IPdst, Psrc, Pdst, protType} U 811 * {timestart, timeend, datestart, datestop}}, 812 * {}, 813 * {FMR}, 814 * {A1} 815 * 816 * In other words, Cpfgen provides three actions (Allow, Deny, Log), 817 * filters traffic based on a 5-tuple that is logically ANDed with a 818 * time period, and uses FMR; it provides A1 as a default action, and 819 * it does not react to events. 821 * Note: We are investigating, for a next revision of this draft, the 822 * possibility to add further operations that do not follow the 823 * symmetric vs. asymmetric properties presented in the previous note. 824 * We are looking for use cases that may justify the complexity added 825 * by the availability of more Capability manipulation operations. 826 * 827 *** End Note to WG 829 3.5. Initial NSFs Capability Categories 831 The following subsections define three common categories of 832 Capabilities: network security, content security, and attack 833 mitigation. Future versions of this document may expand both the 834 number of categories as well as the types of Capabilities within a 835 given category. 837 3.5.1. Network Security Capabilities 839 Network security is a category that describes the inspecting and 840 processing of network traffic based on the use of pre-defined 841 security policies. 843 The inspecting portion may be thought of as a packet-processing 844 engine that inspects packets traversing networks, either directly or 845 in the context of flows with which the packet is associated. From 846 the perspective of packet-processing, implementations differ in the 847 depths of packet headers and/or payloads they can inspect, the 848 various flow and context states they can maintain, and the actions 849 that can be applied to the packets or flows. 851 3.5.2. Content Security Capabilities 853 Content security is another category of security Capabilities 854 applied to the application layer. Through analyzing traffic contents 855 carried in, for example, the application layer, content security 856 Capabilities can be used to identify various security functions that 857 are required. These include defending against intrusion, inspecting 858 for viruses, filtering malicious URL or junk email, blocking illegal 859 web access, or preventing malicious data retrieval. 861 Generally, each type of threat in the content security category has 862 a set of unique characteristics, and requires handling using a set 863 of methods that are specific to that type of content. Thus, these 864 Capabilities will be characterized by their own content-specific 865 security functions. 867 3.5.3. Attack Mitigation Capabilities 869 This category of security Capabilities is used to detect and mitigate 870 various types of network attacks. Today's common network attacks can 871 be classified into the following sets: 873 o DDoS attacks: 874 - Network layer DDoS attacks: Examples include SYN flood, UDP 875 flood, ICMP flood, IP fragment flood, IPv6 Routing header 876 attack, and IPv6 duplicate address detection attack; 877 - Application layer DDoS attacks: Examples include HTTP flood, 878 https flood, cache-bypass HTTP floods, WordPress XML RPC 879 floods, and ssl DDoS. 880 o Single-packet attacks: 881 - Scanning and sniffing attacks: IP sweep, port scanning, etc. 882 - malformed packet attacks: Ping of Death, Teardrop, etc. 883 - special packet attacks: Oversized ICMP, Tracert, IP timestamp 884 option packets, etc. 886 Each type of network attack has its own network behaviors and 887 packet/flow characteristics. Therefore, each type of attack needs a 888 special security function, which is advertised as a set of 889 Capabilities, for detection and mitigation. The implementation and 890 management of this category of security Capabilities of attack 891 mitigation control is very similar to the content security control 892 category. A standard interface, through which the security controller 893 can choose and customize the given security Capabilities according to 894 specific requirements, is essential. 896 4. Information Sub-Model for Network Security Capabilities 898 The purpose of the Capability Information Sub-Model is to define the 899 concept of a Capability, and enable Capabilities to be aggregated to 900 appropriate objects. The following sections present the Network 901 Security, Content Security, and Attack Mitigation Capability 902 sub-models. 904 4.1. Information Sub-Model for Network Security 906 The purpose of the Network Security Information Sub-Model is to 907 define how network traffic is defined, and determine if one or more 908 network security features need to be applied to the traffic or not. 909 Its basic structure is shown in the following figure: 911 +---------------------+ 912 +---------------+ 1..n 1..n | | 913 | |/ \ \| A Common Superclass | 914 | ECAPolicyRule + A -------------+ for ECA Objects | 915 | |\ / /| | 916 +-------+-------+ +---------+-----------+ 917 / \ / \ 918 | | 919 | | 920 (subclasses to define Network (subclasses of Event, 921 Security ECA Policy Rules Condition, and Action Objects 922 extensibly, so that other for Network Security 923 Policy Rules can be added) Policy Rules) 925 Figure 2. Network Security Information Sub-Model Overview 927 In the above figure, the ECAPolicyRule, along with the Event, 928 Condition, and Action Objects, are defined in the external ECA 929 Information Model. The Network Security Sub-Model extends all of 930 these objects in order to define security-specific ECA Policy Rules, 931 as well as extensions to the (generic) Event, Condition, and 932 Action objects. 934 An I2NSF Policy Rule is a special type of Policy Rule that is in 935 event-condition-action (ECA) form. It consists of the Policy Rule, 936 components of a Policy Rule (e.g., events, conditions, actions, and 937 some extensions like resolution policy, default action and external 938 data), and optionally, metadata. It can be applied to both uni- and 939 bi-directional traffic across the NSF. 941 Each rule is triggered by one or more events. If the set of events 942 evaluates to true, then a set of conditions are evaluated and, if 943 true, enable a set of actions to be executed. This takes the 944 following conceptual form: 946 IF is TRUE 947 IF is TRUE 948 THEN execute 949 END-IF 950 END-IF 952 In the above example, the Event, Condition, and Action portions of a 953 Policy Rule are all **Boolean Clauses**. Hence, they can contain 954 combinations of terms connected by the three logical connectives 955 operators (i.e., AND, OR, NOT). An example is: 957 ((SLA==GOLD) AND ((numPackets>burstRate) OR NOT(bwAvail 2617 | |---- segment = condition in S1 -----| S1 2618 + IP source 2620 Figure 17: Geometric representation of a rule r=(c,a) that 2621 matches x1, but does not match x2. 2623 Accordingly, the condition clause c is a subset of S: 2625 c = s1 X s2 X ... X sm <= S1 X S2 X ... X Sm = S 2627 S represents the totality of the packets that are individually 2628 selectable by the security control to model when we use it to 2629 enforce a policy. Unfortunately, not all its subsets are valid 2630 condition clauses: only hyper-rectangles, or the union of 2631 hyper-rectangles (as they are Cartesian product of conditions), 2632 are valid. This is an intrinsic constraint of the policy 2633 language, as it specifies rules by defining a condition for each 2634 selector. Languages that allow specification of conditions as 2635 relations over more fields are modeled by the geometric model as 2636 more complex geometric shapes determined by the equations. However, 2637 the algorithms to compute intersections are much more sophisticated 2638 than intersection hyper-rectangles. Figure 17 graphically represents 2639 a condition clause c in a two-dimensional selection space. 2641 In the geometric model, a rule is expressed as r=(c,a), where c <= S 2642 (the condition clause is a subset of the selection space), and the 2643 action a belongs to A. Rule condition clauses match a packet (rules 2644 match a packet), if all the conditions forming the clauses match the 2645 packet. In Figure 17, the rule with condition clause c matches the 2646 packet x1 but not x2. 2648 The rule set R is composed of n rules ri=(ci,ai). 2650 The decision criteria for the action to apply when a packet matches 2651 two or more rules is abstracted by means of the resolution strategy 2653 RS: Pow(R) -> A 2655 where Pow(R) is the power set of rules in R. 2657 Formally, given a set of rules, the resolution strategy maps all the 2658 possible subsets of rules to an action a in A. When no rule matches a 2659 packet, the security controls may select the default action d in A, 2660 if they support one. 2662 Resolution strategies may use, besides intrinsic rule data (i.e., 2663 condition clause and action clause), also external data associated to 2664 each rule, such as priority, identity of the creator, and creation 2665 time. Formally, every rule ri is associated by means of the 2666 function e(.): 2668 e(ri) = (ri,f1(ri),f2(ri),...) 2670 where E={fj:R -> Xj} (j=1,2,...) is the set that includes all 2671 functions that map rules to external attributes in Xj. However, 2672 E, e, and all the Xj are determined by the resolution strategy used. 2674 A policy is thus a function p: S -> A that connects each point of 2675 the selection space to an action taken from the action set A 2676 according to the rules in R. By also assuming RS(0)=d (where 0 is 2677 the empty-set) and RS(ri)=ai, the policy p can be described as: 2679 p(x)=RS(match{R(x)}). 2681 Therefore, in the geometric model, a policy is completely defined by 2682 the 4-tuple (R,RS,E,d): the rule set R, the resolution function RS, 2683 the set E of mappings to the external attributes, and the default 2684 action d. 2686 Note that, the geometric model also supports ECA paradigms by simply 2687 modeling events like an additional selector. 2689 Authors' Addresses 2690 Liang Xia (Frank) 2691 Huawei 2692 101 Software Avenue, Yuhuatai District 2693 Nanjing, Jiangsu 210012 2694 China 2695 Email: Frank.xialiang@huawei.com 2697 John Strassner 2698 Huawei 2699 Email: John.sc.Strassner@huawei.com 2701 Cataldo Basile 2702 Politecnico di Torino 2703 Corso Duca degli Abruzzi, 34 2704 Torino, 10129 2705 Italy 2706 Email: cataldo.basile@polito.it 2708 Diego R. Lopez 2709 Telefonica I+D 2710 Zurbaran, 12 2711 Madrid, 28010 2712 Spain 2713 Phone: +34 913 129 041 2714 Email: diego.r.lopez@telefonica.com