
Nmap Development mailing list archives
Re: TCP Resource Exhaustion Attacks
From: Fyodor <fyodor () insecure org>
Date: Mon, 6 Oct 2008 00:12:23 -0700
On Fri, Oct 03, 2008 at 12:55:25PM +0100, Robert E. Lee wrote:
Fyodor's post brought up a couple of well known availability attacks with TCP. At least he is contributing to the discussion.
I wasn't going to respond, since there is little point discussing your TCP weaknesses if you won't disclose details. However, your sockstress slides from the SEC-T conference last month are now available (http://insecure.org/stf/tcpdos/outpost24-sect-sockstress.pdf) and give us something concrete to discuss. Slide 17 is titled "Full Connection Flood" and the slide says: Why Full Connection Flooding isn't more popular o A full connection requires attacker to consume state tracking resources too. The netkill-style attacks I describe at http://insecure.org/stf/tcp-dos-attack-explained.html don't require tracking any state. So how can you say that you knew and understood the previous attacks, and then write something like this? Also, Slide 18 is entitled "Defeating SYN Cookies" (even though it doesn't defeat them, but that's a separate issue) and that slide plus the next one say: - To defeat Server side SYN Cookies... - Employ Client side SYN Cookies - Start with a random 32-bit number - XOR this number against Client side of a connection attempt (192.168.1.3:51242) - Use output as ISN for SYN packets - When Client receives SYN/ACK's - (Sequence Number - 1) XOR'd with 32-bit number reveals the client sending IP and port - Client can now complete a full 3 way handshake without ever tracking anything in a table. That adds extra complexity to the attack, but how is it in any way useful? You say that it "reveals the client sending IP and port", but the client IP and port number are already in the normal TCP/IP header fields of that same SYN/ACK packet. A SYN/ACK is returned to the same IP/port as the client which sent it, so you don't need to store that data or do anything fancy. It is in the destination IP field of the IP header and the destination port in the TCP header. Even if the four bytes you are squirreling away in the ISN were essential, it seems like a stretch to describe that storage issue as "why Full Connection Flooding isn't more popular". You've mentioned in the podcast that your attacks tend to require 10-40 packets per second. At four bytes stored per packet, that is up to 160 bytes per second, or 14 megabytes per day-long attack. My cell phone can easily store that. And if you need to send packets so quickly that the required state is overwhelming, it isn't a low-bandwidth attack anymore and you might as well be doing a simple packet flood instead.
Fyodor's (and others) frustration I think is largely due to this awkward partial discloser situation and the out of control barrage of fear mongering we all just endured.
I agree, and I'm not really interested in a pissing contest of "who discovered this first". Particularly since I'm not even in the running, as I acknowledge that the attacks I described have been documented since 2000 or earlier. And I'm sure that you and Jack have extended the attack in clever ways. The point I was trying to make is just that I think it is better for researchers to "put up or shut up" with these sorts of vulnerabilities. If you had come out immediately with full details, I would have saluted you. Or if you had done a quiet coordinated disclosure and then come out and announced it with full details, I'd commend you just as strongly. But this "out of control barrage of fear mongering" you complain about seems to be a direct and foreseeable consequence of your disclosure method. If you go interview with journalists all over the world and put out a press release and conference presentations warning of a severe new attack, and state that there are no known workarounds, and refuse to give details because the flaw is too dangerous to even describe on the Internet, this sort of fear-mongering will always ensue. Also, I'm sorry if it sounds like I'm attacking you specifically, but we've seen many cases of this "partial disclosure" nonsense lately, and they all seem to lead to the "out of control barrage of fear mongering" you describe. So I finally decided to put my foot down and have my say. Even if nobody listens to me, I feel better for having said it :). I do agree with you that TCP implementations are far too vulnerable to resource exhaustion attacks. So while I don't agree with your disclosure methods, I will be happy if your approach does lead to making some TCP implementations more resilient. Cheers, -F PS: The Dailydave mail which just went through was actually sent several days ago. I guess Dave was too busy at BACon to check the moderation queue. _______________________________________________ Sent through the nmap-dev mailing list http://cgi.insecure.org/mailman/listinfo/nmap-dev Archived at http://SecLists.Org
Current thread:
- TCP Resource Exhaustion Attacks Fyodor (Oct 02)
- Re: TCP Resource Exhaustion Attacks Michael Pattrick (Oct 02)
- Re: TCP Resource Exhaustion Attacks Ron (Oct 02)
- Re: TCP Resource Exhaustion Attacks Fyodor (Oct 02)
- Re: TCP Resource Exhaustion Attacks RB (Oct 02)
- Re: TCP Resource Exhaustion Attacks Fyodor (Oct 02)
- Re: TCP Resource Exhaustion Attacks doug (Oct 02)
- Re: TCP Resource Exhaustion Attacks Brandon Enright (Oct 02)
- Re: TCP Resource Exhaustion Attacks Robert E . Lee (Oct 03)
- Re: TCP Resource Exhaustion Attacks Fyodor (Oct 06)
- Re: TCP Resource Exhaustion Attacks Robert E. Lee (Oct 06)
- Re: TCP Resource Exhaustion Attacks Kris Katterjohn (Oct 06)
- Re: TCP Resource Exhaustion Attacks Brandon Enright (Oct 02)
- Re: TCP Resource Exhaustion Attacks Fyodor (Oct 06)