idnits 2.17.1 draft-sriram-opsec-urpf-improvements-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 : ---------------------------------------------------------------------------- ** The abstract seems to contain references ([BCP38], [BCP84]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (May 3, 2017) is 2550 days in the past. Is this intentional? Checking references for intended status: Best Current Practice ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'BCP84' is mentioned on line 18, but not defined == Missing Reference: 'BCP38' is mentioned on line 15, but not defined == Missing Reference: 'AS2 AS1' is mentioned on line 305, but not defined == Missing Reference: 'AS3 AS1' is mentioned on line 377, but not defined == Missing Reference: 'AS1' is mentioned on line 386, but not defined == Missing Reference: 'AS5 AS1' is mentioned on line 300, but not defined Summary: 1 error (**), 0 flaws (~~), 7 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Opsec Working Group K. Sriram 3 Internet-Draft NIST 4 Intended status: Best Current Practice D. Montgomery 5 Expires: November 4, 2017 US NIST 6 May 3, 2017 8 Enhanced Feasible-Path Unicast Reverse Path Filtering 9 draft-sriram-opsec-urpf-improvements-01 11 Abstract 13 This document identifies a need for improvement of the unicast 14 Reverse Path Filtering techniques (uRPF) [BCP84] for source address 15 validation (SAV) [BCP38]. The strict uRPF is inflexible about 16 directionality, the loose uRPF is oblivious to directionality, and 17 the current feasible-path uRPF attempts to strike a balance between 18 the two [BCP84]. However, as shown in this draft, the existing 19 feasible-path uRPF still has short comings. This document proposes 20 an enhanced feasible-path uRPF technique, which aims to be more 21 flexible (in a meaningful way) about directionality than the 22 feasible-path uRPF. It is expected to alleviate ISPs' concerns about 23 the possibility of disrupting service for their customers, and 24 encourage greater deployment of uRPF. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at http://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on November 4, 2017. 43 Copyright Notice 45 Copyright (c) 2017 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (http://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 61 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 62 2. Review of Existing Source Address Validation Techniques . . . 3 63 2.1. SAV using Access Control List . . . . . . . . . . . . . . 3 64 2.2. SAV using Strict Unicast Reverse Path Filtering . . . . . 4 65 2.3. SAV using Feasible-Path Unicast Reverse Path Filtering . 5 66 2.4. SAV using Loose Unicast Reverse Path Filtering . . . . . 6 67 3. Proposed New Technique: SAV using Enhanced Feasible-Path uRPF 6 68 3.1. Description of the Method . . . . . . . . . . . . . . . . 6 69 3.2. Operational Recommendations . . . . . . . . . . . . . . . 8 70 3.3. Customer Cone Consideration . . . . . . . . . . . . . . . 9 71 3.4. Implementation Consideration . . . . . . . . . . . . . . 9 72 4. Security Considerations . . . . . . . . . . . . . . . . . . . 10 73 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 74 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 75 7. Informative References . . . . . . . . . . . . . . . . . . . 10 76 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 78 1. Introduction 80 This internet draft identifies a need for improvement of the unicast 81 Reverse Path Filtering techniques (uRPF) [RFC2827] for source address 82 validation (SAV) [RFC3704]. The strict uRPF is inflexible about 83 directionality, the loose uRPF is oblivious to directionality, and 84 the current feasible-path uRPF attempts to strike a balance between 85 the two [RFC3704]. However, as shown in this draft, the existing 86 feasible-path uRPF still has short comings. Even with the feasible- 87 path uRPF, ISPs are often apprehensive that they may be denying 88 customers' data packets with legitimate source addresses. This 89 document proposes an enhanced feasible-path uRPF technique, which 90 aims to be more flexible (in a meaningful way) about directionality 91 than the feasible-path uRPF. It is based on the principle that if 92 BGP updates for multiple prefixes with the same origin AS were 93 received on different interfaces (at an edge router), then data 94 packets with source addresses in any of those prefixes are allowed to 95 be received on any of those interfaces. This technique is expected 96 to add greater operational logic and efficacy to uRPF, and alleviate 97 ISPs' concerns about the possibility of disrupting service for their 98 customers. It should encourage greater deployment of uRPF to realize 99 its DDoS prevention benefits network wide. 101 1.1. Requirements Language 103 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 104 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 105 document are to be interpreted as described in RFC 2119 [RFC2119]. 107 2. Review of Existing Source Address Validation Techniques 109 There are various existing techniques for deterrence against DDoS 110 attacks with spoofed addresses [RFC2827] [RFC3704]. There are also 111 some techniques used for prevention of reflection-amplification 112 attacks [RRL] [TA14-017A], which are used in achieving greater impact 113 in DDoS attacks. Employing a combination of these preventive 114 techniques in enterprise and ISP border routers, DNS servers, 115 broadband and wireless access networks, and data centers provides the 116 necessary protections against DDoS attacks. 118 Source address validation (SAV) is performed in network edge devices 119 such as border routers, Cable Modem Termination Systems (CMTS), 120 Digital Subscriber Line Access Multiplexers (DSLAM), and Packet Data 121 Network (PDN) gateways in mobile networks. Ingress Access Control 122 List (ACL) and unicast Reverse Path Filtering (uRPF) are techniques 123 employed for implementing SAV [RFC2827] [RFC3704] [ISOC]. 125 2.1. SAV using Access Control List 127 Ingress/egress Access Control Lists (ACLs) are maintained which list 128 acceptable (or alternatively, unacceptable) prefixes for the source 129 addresses in the incoming/outgoing Internet Protocol (IP) packets. 130 Any packet with a source address that does not match the filter is 131 dropped. The ACLs for the ingress/egress filters need to be 132 maintained to keep them up to date. Hence, this method may be 133 operationally difficult or infeasible in dynamic environments such as 134 when a customer network is multihomed, has address space allocations 135 from multiple ISPs, or dynamically varies its BGP announcements (i.e. 136 routing) for traffic engineering purposes. 138 Typically, the egress ACLs in access aggregation devices (e.g. CMTS, 139 DSLAM) permit source addresses only from the address spaces 140 (prefixes) that are associated with the interface on which the 141 customer network is connected. Ingress ACLs are typically deployed 142 on border routers, and drop ingress packets when the source address 143 is spoofed (i.e. belongs to obviously disallowed prefix blocks, RFC 144 1918 prefixes, or provider's own prefixes). 146 2.2. SAV using Strict Unicast Reverse Path Filtering 148 In the strict unicast Reverse Path Filtering (uRPF) method, an 149 ingress packet on an interface at the border router is accepted only 150 if the Forwarding Information Base (FIB) contains a prefix that 151 encompasses the source address and packet forwarding for that prefix 152 points to said interface. In other words, the best path for routing 153 to that source address (if it were used as a destination address) 154 should point to said interface. It is well known that this method 155 has limitations when a network or autonomous system is multi-homed 156 and there is asymmetric routing of packets. Asymmetric routing 157 occurs (see Figure 1) when a customer AS announces one prefix (P1) to 158 one transit provider (ISP-a) and a different prefix (P2) to another 159 transit provider (ISP-b), but routes data packets with source 160 addresses in the second prefix (P2) to the first transit provider 161 (ISP-a) or vice versa. 163 +------------+ ---- P1[AS2 AS1] ---> +------------+ 164 | AS2(ISP-a) | <----P2[AS3 AS1] ---- | AS3(ISP-b)| 165 +------------+ +------------+ 166 /\ /\ 167 \ / 168 \ / 169 \ / 170 P1[AS1]\ /P2[AS1] 171 \ / 172 +-----------------------+ 173 | AS1(customer) | 174 +-----------------------+ 175 P1, P2 (prefixes originated) 177 Consider data packets received at AS2 178 (1) from AS1 with source address in P2, or 179 (2) from AS3 that originated from AS1 180 with source address in P1: 181 * Strict uRPF fails 182 * Feasible-path uRPF fails 183 * Loose uRPF works (but not desirable) 184 * Enhanced Feasible-path uRPF works best 186 Figure 1: Scenario 1 for illustration of efficacy of uRPF schemes. 188 2.3. SAV using Feasible-Path Unicast Reverse Path Filtering 190 The feasible-path uRPF helps partially overcome the problem 191 identified with the strict uRPF in the multi-homing case. The 192 feasible-path uRPF is similar to the strict uRPF, but the difference 193 is that instead of inserting one best route in the FIB (or an 194 equivalent RPF table), alternative routes are also added there. This 195 method relies on announcements for the same prefixes (albeit some may 196 be prepended to effect lower preference) propagating to all the 197 routers performing feasible-path uRPF check. So in the multi-homing 198 scenario, if the customer AS announces routes for both prefixes (P1, 199 P2) to both transit providers (with suitable prepends if needed for 200 traffic engineering), then the feasible-path uRPF method works (see 201 Figure 2). It should be mentioned that the feasible-path uRPF works 202 in this scenario only if customer route is preferred at AS2 and AS3 203 over the shorter path. 205 +------------+ routes for P1, P2 +-----------+ 206 | AS2(ISP-a) |<-------------------->| AS3(ISP-b)| 207 +------------+ (p2p) +-----------+ 208 /\ /\ 209 \ / 210 P1[AS1]\ /P2[AS1] 211 \ / 212 P2[AS1 AS1 AS1]\ /P1[AS1 AS1 AS1] 213 \ / 214 +-----------------------+ 215 | AS1(customer) | 216 +-----------------------+ 217 P1, P2 (prefixes originated) 219 Consider data packets received at AS2 via AS3 220 that originated from AS1 and have source address in P1: 221 * Feasible-path uRPF works (if customer route preferred 222 at AS3 over shorter path) 223 * Feasible-path uRPF fails (if shorter path preferred 224 at AS3 over customer route) 225 * Loose uRPF works (but not desirable) 226 * Enhanced Feasible-path uRPF works best 228 Figure 2: Scenario 2 for illustration of efficacy of uRPF schemes. 230 However, the feasible-path uRPF method has limitations as well. One 231 form of limitation naturally occurs when the recommendation of 232 propagating the same prefixes to all routers is not heeded. Another 233 form of limitation can be described as follows. In Scenario 2 234 (described above, illustrated in Figure 2), it is possible that the 235 second transit provider (ISP-b or AS3) does not propagate the 236 prepended route for prefix P1 to the first transit provider (ISP-a or 237 AS2). This is because AS3's decision policy permits giving priority 238 to a shorter route to prefix P1 via a peer (AS2) over a longer route 239 learned directly from the customer (AS1). In such a scenario, AS3 240 would not send any route announcement for prefix P1 to AS2. Then a 241 data packet with source address in prefix P1 that originates from AS1 242 and traverses via AS3 to AS2 will get dropped at AS2. 244 2.4. SAV using Loose Unicast Reverse Path Filtering 246 In the loose unicast Reverse Path Filtering (uRPF) method, an ingress 247 packet at the border router is accepted only if the FIB has one or 248 more prefixes that encompass the source address. That is, a packet 249 is dropped if no route exists in the FIB for the source address. 250 Loose uRPF sacrifices directionality. In most cases, this method is 251 not useful for prevention of address spoofing. It only drops packets 252 if the spoofed address is non-routable (e.g. RFC 1918, unallocated, 253 allocated but currently not routed). 255 3. Proposed New Technique: SAV using Enhanced Feasible-Path uRPF 257 3.1. Description of the Method 259 Enhanced feasible-path uRPF adds greater operational logic and 260 efficacy to existing uRPF methods discussed in Section 2. It can be 261 best explained with an example. Let us say, a border router of ISP-A 262 has in its Adj-RIB-in the set of prefixes {Q1, Q2, Q3} each of which 263 has AS-x as its origin and AS-x belongs in ISP-A's customer cone. 264 Further, the border router received a route for prefix Q1 over a 265 customer facing interface, while it learned routes for prefixes Q2 266 and Q3 from a lateral peer and an upstream transit provider, 267 respectively. All these prefixes passed route filtering and/or 268 origin validation (i.e. the origin AS-x is deemed legitimate). In 269 this example scenario, the enhanced feasible-path uRPF method allows 270 source addresses to belong in {Q1, Q2, Q3} on any of the three 271 specific interfaces in question (customer, peer, provider) on which 272 the three routes were learned. 274 Thus, enhanced feasible-path uRPF defines feasible paths in a more 275 generalized but precise way (as compared to feasible-path uRPF). In 276 the above example, routes for prefixes Q2 and Q3 were not received on 277 a customer facing interface at the border router, yet data packets 278 with source addresses in Q2 or Q3 are accepted by the router if they 279 come in on the same customer interface on which the route for prefix 280 Q1 was received (based on these prefix routes having the same origin 281 AS). 283 Looking back at Scenarios 1 and 2 (Figure 1 and Figure 2), the 284 enhanced feasible-path uRPF provides comparable or better performance 285 than the other uRPF methods for those scenarios. Scenario 3 286 (Figure 3) further illustrates the enhanced feasible-path uRPF method 287 with a more concrete example. In this scenario, the focus is on 288 operation of the feasible-path uRPF at ISP4 (AS4). ISP4 learns a 289 route for prefix P1 via a customer-to-provider (C2P) interface from 290 customer ISP2 (AS2). This route for P1 has origin AS1. ISP4 also 291 learns a route for P2 via another C2P interface from customer ISP3 292 (AS3). Additionally, AS4 learns an alternate route for P2 via a 293 peer-to-peer (p2p) interface from ISP5 (AS5). Both routes for P2 294 have the same origin AS (i.e. AS1) as does the route for P1. 295 Applying the principle of enhanced feasible-path uRPF, given the 296 commonality of the origin AS across the above-mentioned routes for P1 297 and P2, AS4 permits the SA in data packets to belong in P1 or P2 on 298 any of the three interfaces (from AS2, AS3, and AS5). 300 +----------+ P2[AS5 AS1] +------------+ 301 | AS4(ISP4)|<---------------| AS5(ISP5) | 302 +----------+ (p2p) +------------+ 303 /\ /\ /\ 304 / \ / 305 P1[AS2 AS1]/ \P2[AS3 AS1] / 306 (C2P)/ \(C2P) / 307 / \ / 308 +----------+ +----------+ / 309 | AS2(ISP2)| | AS3(ISP3)| / 310 +----------+ +----------+ / 311 /\ /\ / 312 \ / / 313 P1[AS1]\ /P2[AS1] /P2[AS1] 314 (C2P)\ /(C2P) /(C2P) 315 \ / / 316 +----------------+ / 317 | AS1(customer) |/ 318 +----------------+ 319 P1, P2 (prefixes originated) 321 Consider that data packets (sourced from AS1) 322 may be received at AS4 with source address 323 in P1 or P2 via any of the neighbors (AS2, AS3, AS5): 324 * Feasible-path uRPF fails 325 * Loose uRPF works (but not desirable) 326 * Enhanced Feasible-path uRPF works best 328 Figure 3: Scenario 3 for illustration of efficacy of uRPF schemes. 330 Based on the above, it can be possibly rationalized that the proposed 331 enhanced feasible-path uRPF method would help alleviate ISP concerns 332 about possible service disruption for their customers and encourage 333 greater adoption of uRPF. 335 3.2. Operational Recommendations 337 The following operational recommendations if followed will make 338 robust the desired operation of the enhanced feasible-path uRPF 339 proposed here. 341 For multi-homed stub AS: 343 o A multi-homed stub AS SHOULD announce at least one of its 344 origination prefixes to each transit provider AS. 346 For non-stub AS: 348 o A non-stub AS SHOULD announce at least one of its origination 349 prefixes to each transit provider AS. 351 o Additionally, from the routes it has learned from customers, a 352 non-stub AS SHOULD announce at least one route for each unique 353 {prefix, origin AS} pair to each transit provider AS. 355 (Note: It is worth noting that in the above recommendations if "at 356 least one" is replaced with "all", then even traditional feasible- 357 path uRPF will work as desired.) 359 Also, it should be observed that in the absence of ASes adhering the 360 above recommendations, the following type of example scenarios may be 361 constructed which pose a challenge for the enhanced feasible-path 362 uRPF (as well as for traditional feasible-path uRPF). In the 363 scenario illustrated in Figure 4, since routes for neither P1 nor P2 364 are propagated on the AS2-AS4 interface, the enhanced feasible-path 365 uRPF at AS4 will reject data packets received on that interface with 366 source addresses in P1 or P2. But this can be clearly avoided if the 367 above recommendations for stub and non-stub ASes are followed. In 368 this example, this would mean that the NO_EXPORT is avoided and 369 instead AS prepending is used (to depref routes) on the AS1-AS2 370 peering session. 372 +----------+ 373 | AS4(ISP4)| 374 +----------+ 375 /\ /\ 376 / \ P1[AS3 AS1] 377 P1 and P2 not / \ P2[AS3 AS1] 378 propagated / \ (C2P) 379 (C2P) / \ 380 +----------+ +----------+ 381 | AS2(ISP2)| | AS3(ISP3)| 382 +----------+ +----------+ 383 /\ /\ 384 \ / P1[AS1] 385 P1[AS1] NO_EXPORT \ / P2[AS1] 386 P2[AS1] NO_EXPORT \ / (C2P) 387 (C2P) \ / 388 +----------------+ 389 | AS1(customer) | 390 +----------------+ 391 P1, P2 (prefixes originated) 393 Figure 4: Illustration of a challenging scenario. 395 3.3. Customer Cone Consideration 397 An additional degree of flexibility that can be incorporated in the 398 enhanced feasible-path uRPF can be described as follows. Let I = 399 {I1, I2, ..., In} represent the set of all directly-connected 400 customer interfaces at customer-facing edge routers in a transit 401 provider's AS. Let P = {P1, P2, ..., Pm} represent the set of all 402 prefixes for which routes have been received over the interfaces in 403 set I. Then, over all interfaces in the set I, the edge router 404 SHOULD permit ingress data packets with SA in any of the prefixes in 405 the set P. 407 3.4. Implementation Consideration 409 The existing RPF checks in edge routers take advantage of existing 410 line card implementations to perform the RPF functions. For 411 implementation of the proposed technique, the general necessary 412 feature would be to extend the line cards to take arbitrary RPF lists 413 that are not necessarily tied to the existing FIB contents. For 414 example, in the proposed method, the RPF lists are constructed by 415 applying a set of rules to all received BGP routes (not just those 416 selected as best path and installed in FIB). 418 4. Security Considerations 420 This document offers a technique to improve the security features of 421 uRPF. The proposed technique does not warrant any additional 422 security considerations. 424 5. IANA Considerations 426 This document does not request new capabilities or attributes. It 427 does not create any new IANA registries. 429 6. Acknowledgements 431 The authors would like to thank Jeff Haas, Job Snijders, Marco 432 Marzetti, Marco d'Itri, Nick Hilliard, Gert Doering, Barry Greene, 433 and Joel Jaeggli for comments and suggestions. 435 7. Informative References 437 [ISOC] Vixie (Ed.), P., "Addressing the challenge of IP 438 spoofing", ISOC report , September 2015, . 441 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 442 Requirement Levels", BCP 14, RFC 2119, 443 DOI 10.17487/RFC2119, March 1997, 444 . 446 [RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: 447 Defeating Denial of Service Attacks which employ IP Source 448 Address Spoofing", BCP 38, RFC 2827, DOI 10.17487/RFC2827, 449 May 2000, . 451 [RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed 452 Networks", BCP 84, RFC 3704, DOI 10.17487/RFC3704, March 453 2004, . 455 [RRL] "Response Rate Limiting in the Domain Name System", 456 Redbarn blog , . 458 [TA14-017A] 459 "UDP-Based Amplification Attacks", US-CERT alert 460 TA14-017A , January 2014, . 463 Authors' Addresses 465 Kotikalapudi Sriram 466 NIST 467 100 Bureau Drive 468 Gaithersburg MD 20899 469 USA 471 Email: ksriram@nist.gov 473 Doug Montgomery 474 US NIST 475 100 Bureau Drive 476 Gaithersburg MD 20899 477 USA 479 Email: dougm@nist.gov