Austin Schuh | 8d0a285 | 2019-12-28 22:54:28 -0800 | [diff] [blame^] | 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | <. |
| 8 | Network Working Group R. Stewart |
| 9 | Request for Comments: 5062 Cisco Systems, Inc. |
| 10 | Category: Informational M. Tuexen |
| 11 | Muenster Univ. of Applied Sciences |
| 12 | G. Camarillo |
| 13 | Ericsson |
| 14 | September 2007 |
| 15 | |
| 16 | |
| 17 | Security Attacks Found Against |
| 18 | the Stream Control Transmission Protocol (SCTP) |
| 19 | and Current Countermeasures |
| 20 | |
| 21 | Status of This Memo |
| 22 | |
| 23 | This memo provides information for the Internet community. It does |
| 24 | not specify an Internet standard of any kind. Distribution of this |
| 25 | memo is unlimited. |
| 26 | |
| 27 | Abstract |
| 28 | |
| 29 | This document describes certain security threats to SCTP. It also |
| 30 | describes ways to mitigate these threats, in particular by using |
| 31 | techniques from the SCTP Specification Errata and Issues memo (RFC |
| 32 | 4460). These techniques are included in RFC 4960, which obsoletes |
| 33 | RFC 2960. It is hoped that this information will provide some useful |
| 34 | background information for many of the newest requirements spelled |
| 35 | out in the SCTP Specification Errata and Issues and included in RFC |
| 36 | 4960. |
| 37 | |
| 38 | |
| 39 | |
| 40 | |
| 41 | |
| 42 | |
| 43 | |
| 44 | |
| 45 | |
| 46 | |
| 47 | |
| 48 | |
| 49 | |
| 50 | |
| 51 | |
| 52 | |
| 53 | |
| 54 | |
| 55 | |
| 56 | |
| 57 | |
| 58 | Stewart, et al. Informational [Page 1] |
| 59 | |
| 60 | RFC 5062 SCTP Security Attacks September 2007 |
| 61 | |
| 62 | |
| 63 | Table of Contents |
| 64 | |
| 65 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 |
| 66 | 2. Address Camping or Stealing . . . . . . . . . . . . . . . . . 2 |
| 67 | 3. Association Hijacking 1 . . . . . . . . . . . . . . . . . . . 3 |
| 68 | 4. Association Hijacking 2 . . . . . . . . . . . . . . . . . . . 6 |
| 69 | 5. Bombing Attack (Amplification) 1 . . . . . . . . . . . . . . . 7 |
| 70 | 6. Bombing Attack (Amplification) 2 . . . . . . . . . . . . . . . 9 |
| 71 | 7. Association Redirection . . . . . . . . . . . . . . . . . . . 10 |
| 72 | 8. Bombing Attack (Amplification) 3 . . . . . . . . . . . . . . . 10 |
| 73 | 9. Bombing Attack (Amplification) 4 . . . . . . . . . . . . . . . 11 |
| 74 | 10. Bombing Attack (amplification) 5 . . . . . . . . . . . . . . . 11 |
| 75 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 12 |
| 76 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 |
| 77 | |
| 78 | 1. Introduction |
| 79 | |
| 80 | Stream Control Transmission Protocol, originally defined in |
| 81 | [RFC2960], is a multi-homed transport protocol. As such, unique |
| 82 | security threats exists that are addressed in various ways within the |
| 83 | protocol itself. This document describes certain security threats to |
| 84 | SCTP. It also describes ways to mitigate these threats, in |
| 85 | particular by using techniques from the SCTP Specification Errata and |
| 86 | Issues memo [RFC4460]. These techniques are included in [RFC4960], |
| 87 | which obsoletes [RFC2960]. It is hoped that this information will |
| 88 | provide some useful background information for many of the newest |
| 89 | requirements spelled out in the [RFC4460] and included in [RFC4960]. |
| 90 | |
| 91 | This work and some of the changes that went into [RFC4460] and |
| 92 | [RFC4960] are much indebted to the paper on potential SCTP security |
| 93 | risks [EFFECTS] by Aura, Nikander, and Camarillo. Without their |
| 94 | work, some of these changes would remain undocumented and potential |
| 95 | threats. |
| 96 | |
| 97 | The rest of this document will concentrate on the various attacks |
| 98 | that were illustrated in [EFFECTS] and detail the preventative |
| 99 | measures now in place, if any, within the current SCTP standards. |
| 100 | |
| 101 | 2. Address Camping or Stealing |
| 102 | |
| 103 | This attack is a form of denial of service attack crafted around |
| 104 | SCTP's multi-homing. In effect, an illegitimate endpoint connects to |
| 105 | a server and "camps upon" or "holds up" a valid peer's address. This |
| 106 | is done to prevent the legitimate peer from communicating with the |
| 107 | server. |
| 108 | |
| 109 | |
| 110 | |
| 111 | |
| 112 | |
| 113 | |
| 114 | Stewart, et al. Informational [Page 2] |
| 115 | |
| 116 | RFC 5062 SCTP Security Attacks September 2007 |
| 117 | |
| 118 | |
| 119 | 2.1. Attack Details |
| 120 | |
| 121 | +----------+ +----------+ +----------+ |
| 122 | | Evil | | Server | | Client | |
| 123 | | IP-A=+------------+ +-----------+=IP-C & D | |
| 124 | | Attacker | | | | Victim | |
| 125 | +----------+ +----------+ +----------+ |
| 126 | |
| 127 | Figure 1: Camping |
| 128 | |
| 129 | Consider the scenario illustrated in Figure 1. The attacker |
| 130 | legitimately holds IP-A and wishes to prevent the 'Client-Victim' |
| 131 | from communicating with the 'Server'. Note also that the client is |
| 132 | multi-homed. The attacker first guesses the port number our client |
| 133 | will use in its association attempt. It then uses this port and sets |
| 134 | up an association with the server listing not only IP-A but also IP-C |
| 135 | in its initial INIT chunk. The server will respond and set up the |
| 136 | association, noting that the attacker is multi-homed and holds both |
| 137 | IP-A and IP-C. |
| 138 | |
| 139 | Next, the victim sends in an INIT message listing its two valid |
| 140 | addresses, IP-C and IP-D. In response, it will receive an ABORT |
| 141 | message with possibly an error code indicating that a new address was |
| 142 | added in its attempt to set up an existing association (a restart |
| 143 | with new addresses). At this point, 'Client-Victim' is now prevented |
| 144 | from setting up an association with the server until the server |
| 145 | realizes that the attacker does not hold the address IP-C at some |
| 146 | future point by using a HEARTBEAT based mechanism. See the |
| 147 | mitigation option subsection of this section. |
| 148 | |
| 149 | 2.2. Analysis |
| 150 | |
| 151 | This particular attack was discussed in detail on the SCTP |
| 152 | implementors list in March of 2003. Out of that discussion, changes |
| 153 | were made in the BSD implementation that are now present in |
| 154 | [RFC4960]. In close examination, this attack depends on a number of |
| 155 | specific things to occur. |
| 156 | |
| 157 | 1) The attacker must set up the association before the victim and |
| 158 | must correctly guess the port number that the victim will use. If |
| 159 | the victim uses any other port number the attack will fail. |
| 160 | |
| 161 | |
| 162 | |
| 163 | |
| 164 | |
| 165 | |
| 166 | |
| 167 | |
| 168 | |
| 169 | |
| 170 | Stewart, et al. Informational [Page 3] |
| 171 | |
| 172 | RFC 5062 SCTP Security Attacks September 2007 |
| 173 | |
| 174 | |
| 175 | 2) SCTP's existing HEARTBEAT mechanism as defined already in |
| 176 | [RFC2960] will eventually catch this situation and abort the evil |
| 177 | attacker's association. This may take several seconds based on |
| 178 | default HEARTBEAT timers but the attacker himself will lose any |
| 179 | association. |
| 180 | |
| 181 | 3) If the victim is either not multi-homed, or the address set that |
| 182 | it uses is completely camped upon by the attacker (in our example |
| 183 | if the attacker had included IP-D in its INIT as well), then the |
| 184 | client's INIT message would initiate an association between the |
| 185 | client and the server while destroying the association between the |
| 186 | attacker and the server. From the servers' perspective, this is a |
| 187 | restart of the association. |
| 188 | |
| 189 | 2.3. Mitigation Option |
| 190 | |
| 191 | [RFC4960] adds a new set of requirements to better counter this |
| 192 | attack. In particular, the HEARTBEAT mechanism was modified so that |
| 193 | addresses unknown to an endpoint (i.e., presented in an INIT with no |
| 194 | pre-knowledge given by the application) enter a new state called |
| 195 | "UNCONFIRMED". During the time that any address is UNCONFIRMED and |
| 196 | yet considered available, heartbeating will be done on those |
| 197 | UNCONFIRMED addresses at an accelerated rate. This will lessen the |
| 198 | time that an attacker can "camp" on an address. In particular, the |
| 199 | rate of heartbeats to UNCONFIRMED addresses is done every RTO. Along |
| 200 | with this expanded rate of heartbeating, a new 64-bit random nonce is |
| 201 | required to be inside HEARTBEATs to UNCONFIRMED addresses. In the |
| 202 | HEARTBEAT-ACK, the random nonce must match the value sent in the |
| 203 | HEARTBEAT before an address can leave the UNCONFIRMED state. This |
| 204 | will prevent an attacker from generating false HEARTBEAT-ACKs with |
| 205 | the victim's source address(es). In addition, clients that do not |
| 206 | need to use a specific port number should choose their port numbers |
| 207 | on a random basis. This makes it hard for an attacker to guess that |
| 208 | number. |
| 209 | |
| 210 | 3. Association Hijacking 1 |
| 211 | |
| 212 | Association hijacking is the ability of some other user to assume the |
| 213 | session created by another endpoint. In cases of a true man-in-the- |
| 214 | middle, only a strong end-to-end security model can prevent this. |
| 215 | However, with the addition of the SCTP extension specified in |
| 216 | [RFC5061], an endpoint that is NOT a man-in-the-middle may be able to |
| 217 | assume another endpoint's association. |
| 218 | |
| 219 | |
| 220 | |
| 221 | |
| 222 | |
| 223 | |
| 224 | |
| 225 | |
| 226 | Stewart, et al. Informational [Page 4] |
| 227 | |
| 228 | RFC 5062 SCTP Security Attacks September 2007 |
| 229 | |
| 230 | |
| 231 | 3.1. Attack Details |
| 232 | |
| 233 | The attack is made possible by any mechanism that lets an endpoint |
| 234 | acquire some other IP address that was recently in use by an SCTP |
| 235 | endpoint. For example, DHCP may be used in a mobile network with |
| 236 | short IP address lifetimes to reassign IP addresses to migrant hosts. |
| 237 | |
| 238 | IP-A DHCP-Server's Peer-Server |
| 239 | | |
| 240 | | |
| 241 | 1 |-DHCP-Rel(IP-A)---->| |
| 242 | 2 |------ASCONF(ADD-IP(IP-B), DEL-IP(IP-A)---->XXlost |
| 243 | time |
| 244 | | |
| 245 | |-DHCP-new-net------>| |
| 246 | 3 |<---Assign (IP-A) |
| 247 | | |
| 248 | 4 |<------------Tag:X-DATA()------------------ |
| 249 | | |
| 250 | |-------------INIT()------------------------> |
| 251 | 5 |<------------INIT-ACK()--------------------- |
| 252 | | |
| 253 | 6 |----ASCONF(ADD-IP(IP-Z),DEL-IP(IP-A))------> |
| 254 | |
| 255 | Figure 2: Association Hijack via DHCP |
| 256 | |
| 257 | At point 1, our valid client releases the IP address IP-A. It |
| 258 | presumably acquires a new address (IP-B) and sends an ASCONF to ADD |
| 259 | the new address and delete to old address at point 2, but this packet |
| 260 | is lost. Thus, our peer (Peer-Server) has no idea that the former |
| 261 | peer is no longer at IP-A. Now at point 3, a new "evil" peer obtains |
| 262 | an address via DHCP and it happens to get the re-assigned address |
| 263 | IP-A. Our Peer-Server sends a chunk of DATA at point 4. This |
| 264 | reveals to the new owner of IP-A that the former owner of IP-A had an |
| 265 | association with Peer-Server. So at point 5, the new owner of IP-A |
| 266 | sends an INIT. The INIT-ACK is sent back and inside it is a COOKIE. |
| 267 | The cookie would of course hold tie-tags, which would list both sets |
| 268 | of tags that could then be used at point 6 to add in any other IP |
| 269 | addresses that the owner of IP-A holds and thus acquire the |
| 270 | association. |
| 271 | |
| 272 | It should be noted that this attack is possible in general whenever |
| 273 | the attacker is able to send packets with source address IP-A and |
| 274 | receive packets with destination address IP-A. |
| 275 | |
| 276 | |
| 277 | |
| 278 | |
| 279 | |
| 280 | |
| 281 | |
| 282 | Stewart, et al. Informational [Page 5] |
| 283 | |
| 284 | RFC 5062 SCTP Security Attacks September 2007 |
| 285 | |
| 286 | |
| 287 | 3.2. Analysis |
| 288 | |
| 289 | This attack depends on a number of events: |
| 290 | |
| 291 | 1) Both endpoints must support the SCTP extension specified in |
| 292 | [RFC5061]. |
| 293 | |
| 294 | 2) One of the endpoints must be using the SCTP extension for mobility |
| 295 | specified in [RFC5061]. |
| 296 | |
| 297 | 3) The IP address must be acquired in such a way as to make the |
| 298 | endpoint the owner of that IP address as far as the network is |
| 299 | concerned. |
| 300 | |
| 301 | 4) The true peer must not receive the ASCONF packet that deletes IP-A |
| 302 | and adds its new address to the peer before the new "evil" peer |
| 303 | gets control of the association. |
| 304 | |
| 305 | 5) The new "evil" peer must have an alternate address, aside from the |
| 306 | IP-A that it can add to the association, so it can delete IP-A, |
| 307 | preventing the real peer from re-acquiring the association when it |
| 308 | finally retransmits the ASCONF (from step 2). |
| 309 | |
| 310 | 3.3. Mitigation Option |
| 311 | |
| 312 | [RFC4960] adds a new counter measure to this threat. It is now |
| 313 | required that Tie-Tags in the State-Cookie parameter not be the |
| 314 | actual tags. Instead, a new pair of two 32-bit nonces must be used |
| 315 | to represent the real tags within the association. This prevents the |
| 316 | attacker from acquiring the real tags and thus prevents this attack. |
| 317 | Furthermore, the use of the SCTP extension specified in [RFC5061] |
| 318 | requires the use of the authentication mechanism defined in |
| 319 | [RFC4895]. This requires the attacker to be able to capture the |
| 320 | traffic during the association setup. If in addition an endpoint- |
| 321 | pair shared key is used, capturing or intercepting these setup |
| 322 | messages does not enable the attacker to hijack the association. |
| 323 | |
| 324 | 4. Association Hijacking 2 |
| 325 | |
| 326 | Association hijacking is the ability of some other user to assume the |
| 327 | session created by another endpoint. In cases where an attacker can |
| 328 | send packets using the victims IP-address as a source address and can |
| 329 | receive packets with the victims' address as a destination address, |
| 330 | the attacker can easily restart the association. If the peer does |
| 331 | not pay attention to the restart notification, the attacker has taken |
| 332 | over the association. |
| 333 | |
| 334 | |
| 335 | |
| 336 | |
| 337 | |
| 338 | Stewart, et al. Informational [Page 6] |
| 339 | |
| 340 | RFC 5062 SCTP Security Attacks September 2007 |
| 341 | |
| 342 | |
| 343 | 4.1. Attack Details |
| 344 | |
| 345 | Assume that an endpoint E1 having an IP-address A has an SCTP |
| 346 | association with endpoint E2. After the attacker is able to receive |
| 347 | packets to destination address A and send packets with source address |
| 348 | A, the attacker can perform a full four-way handshake using the IP- |
| 349 | addresses and port numbers from the received packet. E2 will |
| 350 | consider this a restart of the association. If and only if the SCTP |
| 351 | user of E2 does not process the restart notification, the user will |
| 352 | not recognize that the association just restarted. From this |
| 353 | perspective, the association has been hijacked. |
| 354 | |
| 355 | 4.2. Analysis |
| 356 | |
| 357 | This attack depends on a number of circumstances: |
| 358 | |
| 359 | 1) The IP address must be acquired in such a way as to make the evil |
| 360 | endpoint the owner of that IP address as far as the network or |
| 361 | local LAN is concerned. |
| 362 | |
| 363 | 2) The attacker must receive a packet belonging to the association or |
| 364 | connection. |
| 365 | |
| 366 | 3) The other endpoint's user does not pay attention to restart |
| 367 | notifications. |
| 368 | |
| 369 | 4.3. Mitigation Option |
| 370 | |
| 371 | It is important to note that this attack is not based on a weakness |
| 372 | of the protocol, but on the ignorance of the upper layer. This |
| 373 | attack is not possible if the upper layer processes the restart |
| 374 | notifications provided by SCTP as described in section 10 of |
| 375 | [RFC2960] or [RFC4960]. Note that other IP protocols may also be |
| 376 | affected by this attack. |
| 377 | |
| 378 | 5. Bombing Attack (Amplification) 1 |
| 379 | |
| 380 | The bombing attack is a method to get a server to amplify packets to |
| 381 | an innocent victim. |
| 382 | |
| 383 | 5.1. Attack Details |
| 384 | |
| 385 | This attack is performed by setting up an association with a peer and |
| 386 | listing the victims IP address in the INIT's list of addresses. |
| 387 | After the association is setup, the attacker makes a request for a |
| 388 | large data transfer. After making the request, the attacker does not |
| 389 | acknowledge data sent to it. This then causes the server to re- |
| 390 | transmit the data to the alternate address, i.e., that of the victim. |
| 391 | |
| 392 | |
| 393 | |
| 394 | Stewart, et al. Informational [Page 7] |
| 395 | |
| 396 | RFC 5062 SCTP Security Attacks September 2007 |
| 397 | |
| 398 | |
| 399 | After waiting an appropriate time period, the attacker acknowledges |
| 400 | the data for the victim. At some point, the attackers address is |
| 401 | considered unreachable since only data sent to the victims address is |
| 402 | acknowledged. At this point, the attacker can send strategic |
| 403 | acknowledgments so that the server continues to send data to the |
| 404 | victim. |
| 405 | |
| 406 | Alternatively, instead of stopping the sending of SACKs to enforce a |
| 407 | path failover, the attacker can use the ADD-IP extension to add the |
| 408 | address of the victim and make that address the primary path. |
| 409 | |
| 410 | 5.2. Analysis |
| 411 | |
| 412 | This attack depends on a number of circumstances: |
| 413 | |
| 414 | 1) The victim must NOT support SCTP, otherwise it would respond with |
| 415 | an "out of the blue" (OOTB) abort. |
| 416 | |
| 417 | 2) The attacker must time its sending of acknowledgments correctly in |
| 418 | order to get its address into the failed state and the victim's |
| 419 | address as the only valid alternative. |
| 420 | |
| 421 | 3) The attacker must guess TSN values that are accepted by the |
| 422 | receiver once the bombing begins since it must acknowledge packets |
| 423 | it is no longer seeing. |
| 424 | |
| 425 | 5.3. Mitigation Option |
| 426 | |
| 427 | [RFC4960] makes two changes to prevent this attack. First, it |
| 428 | details proper handling of ICMP messages. With SCTP, the ICMP |
| 429 | messages provide valuable clues to the SCTP stack that can be |
| 430 | verified with the tags for authenticity. Proper handling of an ICMP |
| 431 | protocol unreachable (or equivalent) would cause the association |
| 432 | setup by the attacker to be immediately failed upon the first |
| 433 | retransmission to the victim's address. |
| 434 | |
| 435 | The second change made in [RFC4960] is the requirement that no |
| 436 | address that is not CONFIRMED is allowed to have DATA chunks sent to |
| 437 | it. This prevents the switch-over to the alternate address from |
| 438 | occurring, even when ICMP messages are lost in the network and |
| 439 | prevents any DATA chunks from being sent to any other destination |
| 440 | other then the attacker itself. This also prevents the alternative |
| 441 | way of using ADD-IP to add the new address and make it the primary |
| 442 | address. |
| 443 | |
| 444 | |
| 445 | |
| 446 | |
| 447 | |
| 448 | |
| 449 | |
| 450 | Stewart, et al. Informational [Page 8] |
| 451 | |
| 452 | RFC 5062 SCTP Security Attacks September 2007 |
| 453 | |
| 454 | |
| 455 | An SCTP implementation should abort the association if it receives a |
| 456 | SACK acknowledging a TSN that has not been sent. This makes TSN |
| 457 | guessing for the attacker quite hard because if the attacker |
| 458 | acknowledges one TSN too fast, the association will be aborted. |
| 459 | |
| 460 | 6. Bombing Attack (Amplification) 2 |
| 461 | |
| 462 | This attack allows an attacker to use an arbitrary SCTP endpoint to |
| 463 | send multiple packets to a victim in response to one packet. |
| 464 | |
| 465 | 6.1. Attack Details |
| 466 | |
| 467 | The attacker sends an INIT listing multiple IP addresses of the |
| 468 | victim in the INIT's list of addresses to an arbitrary endpoint. |
| 469 | Optionally, it requests a long cookie lifetime. Upon reception of |
| 470 | the INIT-ACK, it stores the cookie and sends it back to the other |
| 471 | endpoint. When the other endpoint receives the COOKIE, it will send |
| 472 | back a COOKIE-ACK to the attacker and up to HB.Max.Burst HEARTBEATS |
| 473 | to the victim's address(es) (to confirm these addresses). The victim |
| 474 | responds with ABORTs or ICMP messages resulting in the removal of the |
| 475 | TCB at the other endpoint. The attacker can now resend the stored |
| 476 | cookie as long as it is valid, and this will again result in up to |
| 477 | HB.Max.Burst HEARTBEATs sent to the victim('s). |
| 478 | |
| 479 | 6.2. Analysis |
| 480 | |
| 481 | The multiplication factor is limited by the number of addresses of |
| 482 | the victim and of the endpoint HB.Max.Burst. Also, the shorter the |
| 483 | cookie lifetime, the earlier the attacker has to go through the |
| 484 | initial stage of sending an INIT instead of just sending the COOKIE. |
| 485 | It should also be noted that the attack is more effective if large |
| 486 | HEARTBEATs are used for path confirmation. |
| 487 | |
| 488 | 6.3. Mitigation Option |
| 489 | |
| 490 | To limit the effectiveness of this attack, the new parameter |
| 491 | HB.Max.Burst was introduced in [RFC4960] and an endpoint should: |
| 492 | |
| 493 | 1) not allow very large cookie lifetimes, even if they are requested. |
| 494 | |
| 495 | 2) not use larger HB.Max.Burst parameter values than recommended. |
| 496 | Note that an endpoint may decide to send only one Heartbeat per |
| 497 | RTT instead of the maximum (i.e., HB.Max.Burst). An endpoint that |
| 498 | chooses this approach will however slow down detection of |
| 499 | endpoints camping on valid addresses. |
| 500 | |
| 501 | 3) not use large HEARTBEATs for path confirmation. |
| 502 | |
| 503 | |
| 504 | |
| 505 | |
| 506 | Stewart, et al. Informational [Page 9] |
| 507 | |
| 508 | RFC 5062 SCTP Security Attacks September 2007 |
| 509 | |
| 510 | |
| 511 | 7. Association Redirection |
| 512 | |
| 513 | This attack allows an attacker to wrongly set up an association to a |
| 514 | different endpoint. |
| 515 | |
| 516 | 7.1. Attack Details |
| 517 | |
| 518 | The attacker sends an INIT sourced from port 'X' and directed towards |
| 519 | port 'Y'. When the INIT-ACK is returned, the attacker sends the |
| 520 | COOKIE-ECHO chunk and either places a different destination or source |
| 521 | port in the SCTP common header, i.e., X+1 or Y+1. This possibly sets |
| 522 | up the association using the modified port numbers. |
| 523 | |
| 524 | 7.2. Analysis |
| 525 | |
| 526 | This attack depends on the failure of an SCTP implementation to store |
| 527 | and verify the ports within the COOKIE structure. |
| 528 | |
| 529 | 7.3. Mitigation Option |
| 530 | |
| 531 | This attack is easily defeated by an implementation including the |
| 532 | ports of both the source and destination within the COOKIE. If the |
| 533 | source and destination ports do not match those within the COOKIE |
| 534 | chunk when the COOKIE is returned, the SCTP implementation silently |
| 535 | discards the invalid COOKIE. |
| 536 | |
| 537 | 8. Bombing Attack (Amplification) 3 |
| 538 | |
| 539 | This attack allows an attacker to use an SCTP endpoint to send a |
| 540 | large number of packets in response to one packet. |
| 541 | |
| 542 | 8.1. Attack Details |
| 543 | |
| 544 | The attacker sends a packet to an SCTP endpoint, which requires the |
| 545 | sending of multiple chunks. If the SCTP endpoint does not support |
| 546 | bundling on the sending side, it might send each chunk per packet. |
| 547 | These packets can either be sent to a victim by using the victim's |
| 548 | address as the sources address, or it can be considered an attack |
| 549 | against the network. Since the chunks, which need to be sent in |
| 550 | response to the received packet, may not fit into one packet, an |
| 551 | endpoint supporting bundling on the sending side might send multiple |
| 552 | packets. |
| 553 | |
| 554 | Examples of these packets are packets containing a lot of unknown |
| 555 | chunks that require an ERROR chunk to be sent, known chunks that |
| 556 | initiate the sending of ERROR chunks, packets containing a lot of |
| 557 | HEARTBEAT chunks, and so on. |
| 558 | |
| 559 | |
| 560 | |
| 561 | |
| 562 | Stewart, et al. Informational [Page 10] |
| 563 | |
| 564 | RFC 5062 SCTP Security Attacks September 2007 |
| 565 | |
| 566 | |
| 567 | 8.2. Analysis |
| 568 | |
| 569 | This attack depends on the fact that the SCTP endpoint does not |
| 570 | support bundling on the sending side or provides a bad implementation |
| 571 | of bundling on the sending side. |
| 572 | |
| 573 | 8.3. Mitigation Option |
| 574 | |
| 575 | First of all, path verification must happen before sending chunks |
| 576 | other than HEARTBEATs for path verification. This ensures that the |
| 577 | above attack cannot be used against other hosts. To avoid the |
| 578 | attack, an SCTP endpoint should implement bundling on the sending |
| 579 | side and should not send multiple packets in response. If the SCTP |
| 580 | endpoint does not support bundling on the sending side, it should not |
| 581 | send in general more than one packet in response to a received one. |
| 582 | The details of the required handling are described in [RFC4960]. |
| 583 | |
| 584 | 9. Bombing Attack (Amplification) 4 |
| 585 | |
| 586 | This attack allows an attacker to use an SCTP server to send a larger |
| 587 | packet to a victim than it sent to the SCTP server. |
| 588 | |
| 589 | 9.1. Attack Details |
| 590 | |
| 591 | The attacker sends packets using the victim's address as the source |
| 592 | address containing an INIT chunk to an SCTP Server. The server then |
| 593 | sends a packet containing an INIT-ACK chunk to the victim, which is |
| 594 | most likely larger than the packet containing the INIT. |
| 595 | |
| 596 | 9.2. Analysis |
| 597 | |
| 598 | This attack is a byte and not a packet amplification attack and, |
| 599 | without protocol changes, is hard to avoid. A possible method to |
| 600 | avoid this attack would be the usage the PAD parameter defined in |
| 601 | [RFC4820]. |
| 602 | |
| 603 | 9.3. Mitigation Option |
| 604 | |
| 605 | A server should be implemented in a way that the generated INIT-ACK |
| 606 | chunks are as small as possible. |
| 607 | |
| 608 | 10. Bombing Attack (amplification) 5 |
| 609 | |
| 610 | This attack allows an attacker to use an SCTP endpoint to send a |
| 611 | large number of packets in response to one packet. |
| 612 | |
| 613 | |
| 614 | |
| 615 | |
| 616 | |
| 617 | |
| 618 | Stewart, et al. Informational [Page 11] |
| 619 | |
| 620 | RFC 5062 SCTP Security Attacks September 2007 |
| 621 | |
| 622 | |
| 623 | 10.1. Attack Details |
| 624 | |
| 625 | The attacker sends a packet to an SCTP endpoint, which requires the |
| 626 | sending of multiple chunks. If the MTU towards the attacker is |
| 627 | smaller than the MTU towards the victim, the victim might need to |
| 628 | send more than one packet to send all the chunks. The difference |
| 629 | between the MTUs might be extremely large if the attacker sends |
| 630 | malicious ICMP packets to make use of the path MTU discovery. |
| 631 | |
| 632 | 10.2. Analysis |
| 633 | |
| 634 | This attack depends on the fact that an SCTP implementation might not |
| 635 | limit the number of response packets correctly. |
| 636 | |
| 637 | 10.3. Mitigation Option |
| 638 | |
| 639 | First of all, path verification must happen before sending chunks |
| 640 | other than HEARTBEATs for path verification. This makes sure that |
| 641 | the above attack cannot be used against other hosts. To avoid the |
| 642 | attack, an SCTP endpoint should not send multiple packets in response |
| 643 | to a single packet. The chunks not fitting in this packet should be |
| 644 | dropped. |
| 645 | |
| 646 | 11. Security Considerations |
| 647 | |
| 648 | This document is about security; as such, there are no additional |
| 649 | security considerations. |
| 650 | |
| 651 | 12. References |
| 652 | |
| 653 | 12.1. Normative References |
| 654 | |
| 655 | [RFC2960] Stewart, R., Xie, Q., Morneault, K., Sharp, C., |
| 656 | Schwarzbauer, H., Taylor, T., Rytina, I., Kalla, M., |
| 657 | Zhang, L., and V. Paxson, "Stream Control Transmission |
| 658 | Protocol", RFC 2960, October 2000. |
| 659 | |
| 660 | [RFC4460] Stewart, R., Arias-Rodriguez, I., Poon, K., Caro, A., and |
| 661 | M. Tuexen, "Stream Control Transmission Protocol (SCTP) |
| 662 | Specification Errata and Issues", RFC 4460, April 2006. |
| 663 | |
| 664 | [RFC4820] Tuexen, M., Stewart, R., and P. Lei, "Padding Chunk and |
| 665 | Parameter for the Stream Control Transmission Protocol |
| 666 | (SCTP)", RFC 4820, March 2007. |
| 667 | |
| 668 | [RFC4895] Tuexen, M., Stewart, R., Lei, P., and E. Rescorla, |
| 669 | "Authenticated Chunks for Stream Control Transmission |
| 670 | Protocol (SCTP)", RFC 4895, August 2007. |
| 671 | |
| 672 | |
| 673 | |
| 674 | Stewart, et al. Informational [Page 12] |
| 675 | |
| 676 | RFC 5062 SCTP Security Attacks September 2007 |
| 677 | |
| 678 | |
| 679 | [RFC5061] Stewart, R., Xie, Q., Tuexen, M., Maruyama, S., and M. |
| 680 | Kozuka, "Stream Control Transmission Protocol (SCTP) |
| 681 | Dynamic Address Reconfiguration", RFC 5061, |
| 682 | September 2007. |
| 683 | |
| 684 | [RFC4960] Stewart, R., Ed., "Stream Control Transmission Protocol", |
| 685 | RFC 4960, June 2007. |
| 686 | |
| 687 | 12.2. Informative References |
| 688 | |
| 689 | [EFFECTS] Aura, T., Nikander, P., and G. Camarillo, "Effects of |
| 690 | Mobility and Multihoming on Transport-Layer Security", |
| 691 | Security and Privacy 2004, IEEE Symposium , URL http:// |
| 692 | research.microsoft.com/users/tuomaura/Publications/ |
| 693 | aura-nikander-camarillo-ssp04.pdf, May 2004. |
| 694 | |
| 695 | Authors' Addresses |
| 696 | |
| 697 | Randall R. Stewart |
| 698 | Cisco Systems, Inc. |
| 699 | 4785 Forest Drive |
| 700 | Suite 200 |
| 701 | Columbia, SC 29206 |
| 702 | USA |
| 703 | |
| 704 | EMail: rrs@cisco.com |
| 705 | |
| 706 | |
| 707 | Michael Tuexen |
| 708 | Muenster Univ. of Applied Sciences |
| 709 | Stegerwaldstr. 39 |
| 710 | 48565 Steinfurt |
| 711 | Germany |
| 712 | |
| 713 | EMail: tuexen@fh-muenster.de |
| 714 | |
| 715 | |
| 716 | Gonzalo Camarillo |
| 717 | Ericsson |
| 718 | Hirsalantie 11 |
| 719 | Jorvas 02420 |
| 720 | Finland |
| 721 | |
| 722 | EMail: Gonzalo.Camarillo@ericsson.com |
| 723 | |
| 724 | |
| 725 | |
| 726 | |
| 727 | |
| 728 | |
| 729 | |
| 730 | Stewart, et al. Informational [Page 13] |
| 731 | |
| 732 | RFC 5062 SCTP Security Attacks September 2007 |
| 733 | |
| 734 | |
| 735 | Full Copyright Statement |
| 736 | |
| 737 | Copyright (C) The IETF Trust (2007). |
| 738 | |
| 739 | This document is subject to the rights, licenses and restrictions |
| 740 | contained in BCP 78, and except as set forth therein, the authors |
| 741 | retain all their rights. |
| 742 | |
| 743 | This document and the information contained herein are provided on an |
| 744 | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS |
| 745 | OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND |
| 746 | THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS |
| 747 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF |
| 748 | THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED |
| 749 | WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. |
| 750 | |
| 751 | Intellectual Property |
| 752 | |
| 753 | The IETF takes no position regarding the validity or scope of any |
| 754 | Intellectual Property Rights or other rights that might be claimed to |
| 755 | pertain to the implementation or use of the technology described in |
| 756 | this document or the extent to which any license under such rights |
| 757 | might or might not be available; nor does it represent that it has |
| 758 | made any independent effort to identify any such rights. Information |
| 759 | on the procedures with respect to rights in RFC documents can be |
| 760 | found in BCP 78 and BCP 79. |
| 761 | |
| 762 | Copies of IPR disclosures made to the IETF Secretariat and any |
| 763 | assurances of licenses to be made available, or the result of an |
| 764 | attempt made to obtain a general license or permission for the use of |
| 765 | such proprietary rights by implementers or users of this |
| 766 | specification can be obtained from the IETF on-line IPR repository at |
| 767 | http://www.ietf.org/ipr. |
| 768 | |
| 769 | The IETF invites any interested party to bring to its attention any |
| 770 | copyrights, patents or patent applications, or other proprietary |
| 771 | rights that may cover technology that may be required to implement |
| 772 | this standard. Please address the information to the IETF at |
| 773 | ietf-ipr@ietf.org. |
| 774 | |
| 775 | |
| 776 | |
| 777 | |
| 778 | |
| 779 | |
| 780 | |
| 781 | |
| 782 | |
| 783 | |
| 784 | |
| 785 | |
| 786 | Stewart, et al. Informational [Page 14] |
| 787 | |