Subject: [quicwg/base-drafts] Known attacks (#440)

From: Martin Thomson <[email-masked]>
Date: Mon, 17 Apr 2017 22:04:59 -0700

Christian Huitema notes a few potential attacks that we don't cover properly:

1. Stream smurfing attack. Client (or server) opens a large number of streams by sending stream data frames with new stream number and minimal content.

2. Stream choke attack. Client sends request on a stream, then use stream level flow control to choke the transmission by the server. Apply to many parallel streams for bonus effect.

3. Silly stream number attack. Client opens stream 2*N+1 for some outlandish version of N. Might play havoc with server management of incoming streams.

4. Stream drop by drop attack. Client sends data on a stream extremely slowly, maybe 1 byte at a time. Server spin its wheels waiting for data.

I don't think that these are controversial.  Most are already well-known, we just need text for them.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/440

---

From: Marten Seemann <[email-masked]>
Date: Mon, 17 Apr 2017 22:22:23 -0700

1. is not really an attack. We have the maximum concurrent stream limit (or maybe soon a maximum Stream ID). There's no way to allocate more state than a peer committed to by advertising a certain limit.

3. Streams **must** be opened in sequential order. If an implementation follows that rule, the maximum concurrent stream limit takes care of the rest.

4. I don't think this a new attack, and setting reasonable flow control windows mitigates it. In fact, filling the advertised flow control window with data, but leaving out a single byte at the beginning of the window is a more effective version of this attack.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/440#issuecomment-294685030

---

From: Martin Thomson <[email-masked]>
Date: Mon, 17 Apr 2017 22:48:28 -0700

I just copied these down, but yes, I agree that most of these reduce to slow loris.  On number 3, I think that the attack here is against people who over-commit receive buffers.  As you say, sending all but the first byte causes the memory to be committed in practice as opposed to in theory (a state that some implementations rely on).

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/440#issuecomment-294693013

---

From: huitema <[email-masked]>
Date: Wed, 19 Apr 2017 07:59:41 -0700

I agree that this are all variations on the slow loris attacks. They can me mitigated by proper use of configuration parameters and receive logic, but this is not necessarily obvious to the implementer. For example, it is easy to NOT mitigate the attacks by setting the stream limit to a high value-- and then it is also easy to set the stream limit to a value that is too low and get performance effects. I will try to write a PR for an entry in the security section.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/440#issuecomment-295300191

---

From: huitema <[email-masked]>
Date: Wed, 19 Apr 2017 10:56:04 -0700

I just entered 2 PR for the "stream fragment reassembly" and the "stream id commitment" attacks -- two separate security sub sections. Still need one for the generic "slow loris" attack.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/440#issuecomment-295367030

---

From: Martin Thomson <[email-masked]>
Date: Thu, 27 Apr 2017 19:06:32 -0700

Closed #440.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/440#event-1061437767

---

From: Martin Thomson <[email-masked]>
Date: Thu, 27 Apr 2017 19:06:32 -0700

@huitema helpfully provided a few pull requests: #444, #445, #448.  That covers the listed issues.  We can use new issues to track other attacks that come up.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/440#issuecomment-297887795