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