Theo:

Thanks for pulling this draft together. I certainly admire the problem you're trying to solve, and you've done a very good job of summarizing it and its effects.

I have one fundamental point about the proposed mechanism, and a suggestion for further analysis.

The fundamental point is based on your observation that this attack can be effective when the victim is a non-SIP endpoint, simply because the incoming SIP messages can saturate their link. (I'll add to that that the attack can wreak havoc on a deployed non-SIP service by intentionally targeting that service's port). With this fact in mind, It's not clear to me how the proposed extension overcomes the described problem. To wit:

  1. The attacker sends a request to the amplifiers, with a spoofed
     source IP.

  2. Each of the amplifiers, which are compliant to this specification,
     sends the new 4XX defined by this document to the victim's IP
     address. It contains a cookie.

  3. Of course, the victim (not having a SIP client running on that
     port) doesn't respond (at least, not with a SIP message). The
     attacker, wanting his attack to succeed, has craftily chosen a
     port he knows to be open (probably by first portscanning the
     victim). As a consequence, the victim does not send any ICMP error
     to the amplifiers.

  4. Because they didn't get an ACK, 500 ms later, each of the
     amplifiers sends another 4XX response.

  5. This continues according to the response retransmission rules of
     RFC 3261 until all 11 responses have been sent.

So the 11-to-1 amplification attack doesn't appear to be fixed by this mechanism, assuming the attacker makes a rather modest attempt to succeed.

Presuming this can be remedied (and I have no immediate suggestions for doing so), I would recommend you consider the interaction between your proposal and forking. Analyze it in the context of the HERFP issues, and make sure forking doesn't cause unintended behavior when interacting with your mechanism. Also, consider longer proxy chains. For example:

  Note that a 4XX response MUST trigger an ACK to be sent as per normal
  SIP processing rules.  The generated ACK MUST contain the cookie
  parameter copied from the 4XX response.

Keeping in mind that ACK messages triggered by non-2XX responses are hop-by-hop, this falls down when you have a proxy between the UAC and the server sending the 4XX. The intervening proxy may not implement this extension, so you can't rely on it doing anything special with the ACK (unless you define a Proxy-Require, which pretty much renders the extension undeployable).

/a
_______________________________________________
Sip mailing list  https://www.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email protected] for questions on current sip
Use [email protected] for new developments on the application of sip

Reply via email to