Subject: Re: [multipathtcp] Association hijacking attack

From: Yoshifumi Nishida <[email-masked]>
Date: Fri, 3 Dec 2010 00:25:38 -0800

Hi,

This might be a bit different from the situation Oliver brought up,
but how about this kind of scenario?

Let's say I subscribe two ISPs: ISP1 and ISP2.

I know ISP1 is reliable and secure while ISP2 is not.
So, when I use mptcp, I choose ISP1 as my primary and choose ISP2 as a backup.
If ISP1 is working fine, all data goes through ISP1 and ISP2 is not used.
If ISP1 becomes unavailable, mptcp automatically start sending data via ISP2.
I know there's a risk to use ISP2, but in case of emergency, I'm
willing to pay the price.

Now. if attacker is on ISP2 and mptcp session is running, there is a
risk that the session can be messed up by the attacker.  (If some
control packets go through ISP2, the attacker can know the existence
of the mptcp session)

My point is even if ISP1 is working fine and it's secure, the security
level of mptcp session can be degraded to the ISP2's level. In a
sense, it's worse than a normal TCP connection on ISP1.

Do we need to think about this kind of case or is it out of scope for
basic mechanism?

Thanks,
--
Yoshifumi Nishida
[email-masked]

2010/11/30 McDonald, Andrew <[email-masked]>:
> On 24/11/2010 09:29, Ford, Alan wrote:
>>
>> If I understand this correctly, the threat exists because an attacker
>> takes over a previously valid address and is able to fake the
>> continuation of the TCP session (the subflow) before the victim was able
>> to close it?
>>
>> If that is the case, then it is a very difficult special case to cope
>> with, since it abuses already-existing TCP sessions. And, I wonder if
>> trying to prevent that it going significantly beyond our "no worse than
>> TCP" goal?
>
> This was also my thought on reading this. It seems that the basic attack
> applies to TCP, so questions that arise are:
> - are the consequences worse in the MPTCP case than the normal TCP case?
> - is it easier to perform than in the normal TCP case?
>
> The main difference is that the 'victim' is continuing to use the connection
> at the same time as the attacker. Are there scenarios where this is an
> issue?
>
> A possible one:
> Let us imagine a user communicating with a webserver.
> User sends "GET /login?user=myusername&password=reallysecret"
> Server responds with response including "Cookie: magicstring"
>
> One could imagine the response being sent to the 'old' address and so
> reaching the attacker.
>
> In the simple TCP case one could imagine this as:
> - Victim sends GET
> - Victim loses address
> - Server sends HTTP response, and then does further retransmissions having
> not received an ACK
> - Attacker acquires address
> - Attacker receives HTTP response
> But this requires a fairly short interval between address loss and the
> attacker acquiring the address.
>
> In the MPTCP case it might be:
> - Victim loses address A
> [stuff happens on connection]
> - Attacker acquires address A
> - Victim sends GET from address B
> - Server sends HTTP response, using address A (because it's interface
> selection algorithm thinks that would be a good idea)
> - Attacker receives HTTP response
>
> So, MPTCP could be regarded as 'worse' because it allows for a longer
> interval between address loss and acquisition. (Depending on what the
> definition of 'worse' is.)
>
> If the 'victim' could do a proactive "remove address", as Alan suggests,
> this would mitigate this by reducing the interval over which the attack is
> possible. (But mechanisms to avoid the attacker making use of the "remove
> address" would need to be considered.)
>
> regards,
>
> Andrew
>
> _______________________________________________
> multipathtcp mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/multipathtcp
>