Slashdot Mirror


Examining ICMP Flaws

An anonymous reader writes "A recent internet-draft pointed out a number of security flaws in the design of the ICMP protocol. Most open source projects and vendors have addressed the flaws to some level, but this interesting article on KernelTrap examines the true extent of the problem, and how so far only OpenBSD has implemented all possible counter-measures. Theo de Raadt is quoted saying, "here we have a 20 year old protocol, a part of the Internet infrastructure that hasn't been touched in 10 years and we were all sure was right, and now is cast in doubt.""

238 comments

  1. Flaws with ICMP by cmburns69 · · Score: 1, Funny

    Heh.. I read ICMP as "I see 'em pee"

    --
    Online Starcraft RPG? At
    Dietary fiber is like asynchronous IO-- Non-blocking!
    1. Re:Flaws with ICMP by Anonymous Coward · · Score: 0

      Heh.. I read ICMP as "I see 'em pee"

      Yeah -- I remember reading an article about SDI when I was a kid in the 1980s, and thinking that "ICBM" was pretty damn funny.

      (For those who don't understand, see the slang item on this disambiguation page)

    2. Re:Flaws with ICMP by Anonymous Coward · · Score: 0
      Heh.. I read ICMP as "I see 'em pee"

      That is how you read it. Well done! You can read!

      Group hug everyone!

    3. Re:Flaws with ICMP by Anonymous Coward · · Score: 0, Offtopic

      Oh yea, when I see your user name, I think of sixty-nine! Get it, sixty nine, ha ha!

    4. Re:Flaws with ICMP by Anonymous Coward · · Score: 0

      More like

      I see 'em patenting (my research).

    5. Re:Flaws with ICMP by Brian4120 · · Score: 4, Interesting

      do you post just for the hell of posting? Brilliant.

    6. Re:Flaws with ICMP by Anonymous Coward · · Score: 0

      scary thing there is that the rest of the name is C. M.Burns, meaning he is currently with Smithers...

    7. Re:Flaws with ICMP by Adult+film+producer · · Score: 3, Interesting

      Congratulations on having the 13,000,000 millionth post :)

    8. Re:Flaws with ICMP by kesuki · · Score: 3, Informative
    9. Re:Flaws with ICMP by Brian4120 · · Score: 1

      yay!!! 13,000,000TH POST!!

    10. Re:Flaws with ICMP by ScrewMaster · · Score: 1

      Yeah, really. What are the odds.

      --
      The higher the technology, the sharper that two-edged sword.
    11. Re:Flaws with ICMP by fsterman · · Score: 3, Funny

      And how nicely ironic the 13,000,000nth post is..

      --
      Is there anything better than clicking through Microsoft ads on Slashdot?
    12. Re:Flaws with ICMP by Anonymous Coward · · Score: 1, Funny

      Does he win a free iPod?

    13. Re:Flaws with ICMP by MightyMartian · · Score: 1
      Heh.. I read ICMP as "I see 'em pee"

      Yeah, but I'm sure you see that in everything you read.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    14. Re:Flaws with ICMP by tbjw · · Score: 3, Informative

      13,000,000 millionth post
      We can do better than this.

      Congratulations on having the 13 millionth post!

    15. Re:Flaws with ICMP by ZeroZen · · Score: 1

      1 in 13,000,000. Not too bad.

    16. Re:Flaws with ICMP by Anonymous Coward · · Score: 1, Funny

      Hey, 13,000,000 - you rule! Look Ma! I'm replying to a celebrity! This is almost as leet as Wil Wheaton replying to me.

    17. Re:Flaws with ICMP by Anonymous Coward · · Score: 0

      by Adult film producer (866485)

      Congratulations on having a friggin awesome job.

    18. Re:Flaws with ICMP by A_Known_Coward · · Score: 1

      do you post just for the hell of posting? Brilliant.

  2. ICMP... by Jugalator · · Score: 4, Funny

    In that case... I See More Patches. :-(

    --
    Beware: In C++, your friends can see your privates!
    1. Re:ICMP... by kesuki · · Score: 0, Offtopic

      nice.. i wonder which story will get post 13 million. at the current posting rate someone should be getting close.. I C More Posting... ;)

    2. Re:ICMP... by Anonymous Coward · · Score: 0

      Will it be this one, I wonder?

    3. Re:ICMP... by Anonymous Coward · · Score: 0

      nope posting rate was too slow

    4. Re:ICMP... by Anonymous Coward · · Score: 0

      well we can speed it up...

    5. Re:ICMP... by Anonymous Coward · · Score: 0

      Almost there, hun. I feel it cumming baby.

  3. Cliff's Notes: Start Using TCP Sequence Number by DanielMarkham · · Score: 4, Interesting

    The spec calls for a sequence number in the block. Vendors aren't checking it. There are a lot of technical details about how TCP connections can be slowed down by a ICMP attack, but if the vendors checked the sequence number it would make it almost impossible to implement these attacks.
    Researcher found the bugs, tried to work with major vendors. Lawyers got involved, turns out Cisco had been working on a fix for years (so they say). Seems like vendors are more concerned about getting credit than fixing the bugs.
    Reading between the lines, I take it the major vendors have patched their stacks and life is good. Linux implemented all the fixes for all the errors, but addressing the sequence number should be enough for now.
    Makes me wonder: what did the guys writing the code back in the 80s think about the sequence number, anyway? It was obviously there for some reason. I guess because it wasn't part of the "official" spec it was ignored? Shame, that. That was back in the day when people probably didn't think of ICMP being used as a cyber attack vector.

    Smart Identification Of Cost Savings, One Key to Program Management

    1. Re:Cliff's Notes: Start Using TCP Sequence Number by AndrewStephens · · Score: 4, Informative

      I cannot speak for the orginal implementors of the network stacks, but it was probably for performance (if they thought about it all). Back in the day, when the summers were warm and music was still good, it was not uncommon for the network stack to take a hefty portion of the processor load just processing packets. Shaving off a few cycles per packet by ignoring part of the spec probably looked like a good idea, especially since people were not as concerned with deliberate attacks back then.

      --
      sheep.horse - does not contain information on sheep or horses.
    2. Re:Cliff's Notes: Start Using TCP Sequence Number by Anonymous Coward · · Score: 2, Interesting

      There are parts of RFC's that are ignored and parts that people expand upon. This is because an RFC is more like a recommendation than an industry standard (i.e. "request for comment"). If somebody didn't implement part of an RFC, they did not think it was useful at the time. This is reasonable because it probably wasn't. This was the purpose of an RFC. Put the information out there and see how people respond (with code).

      This is the major problem with the RFC system. It was thought at the time to be a living document system. Everything created would be updated over time. Now it is a set of hard 'standards' that people follow. IEEE makes standards, so does ANSI. RFC was never meant to do that.

    3. Re:Cliff's Notes: Start Using TCP Sequence Number by twanvl · · Score: 1
      This works because all ICMP error packets are required to contain the IP header and at least 8 more bytes of the packet that caused the error in the first place.
      If I understand this correctly the specs don't actually say that the sequence number is there, it just happens to be in those eight bytes.
    4. Re:Cliff's Notes: Start Using TCP Sequence Number by w1r3sp33d · · Score: 2, Insightful

      Help me out here, I seriously want to understand you comment. How can ICMP outlined in RFC792 http://www.ietf.org/rfc/rfc0792.txt?number=792/ allow for a sequence number when it is designed as an unreliable protocol without a port number or sequence number in the header? I mean unless we rewrite ICMP as a layer four protocol I don't see how we can prevent this?

    5. Re:Cliff's Notes: Start Using TCP Sequence Number by ph0enix · · Score: 3, Informative
      The spec calls for a sequence number in the block. Vendors aren't checking it.There are a lot of technical details about how TCP connections can be slowed down by a ICMP attack, but if the vendors checked the sequence number it would make it almost impossible to implement these attacks.
      The spec does not require the sequence number be checked (or even mention it), but some OSs check it anyways. Even with the sequence number check, the attack is still not impossible, now just on par with the TCP reset attack which got tons of publicity last year. Additional fixes are required.
      --
      <sigh>
    6. Re:Cliff's Notes: Start Using TCP Sequence Number by ph0enix · · Score: 4, Informative

      The ICMP error message that's returned contains a chunk of the packet that the message refers to. The recipient of the error message uses this to demultiplex the ICMP error and apply the error to the correct connection. To do this for TCP, it needs the source and destination IP addresss and ports.

      The TCP sequence number is also there, but the protocol doesn't require it to be checked.

      By an large most protocols are designed to work, not to be secure. This needs to change. The TCPM working group needs to admit that this is a flaw, and change the standard rather than sticking their heads in the sand.

      --
      <sigh>
    7. Re:Cliff's Notes: Start Using TCP Sequence Number by jimrthy · · Score: 1

      How worried were the vendors, way back when? It's not like the internet was all that big a deal in the 80's. In almost every software project I've ever seen/worked on, there are shortcuts taken somewhere. Probably the only time this never happens is with a major open source vendor who has enough weight with the distributions to say "No, I'm not ready to release yet." Then again, the article mentioned all the problems linux had. Are these kernel flaws, or in a networking layer above the kernel? (I've been using Linux for years and don't have a clue how it works under the covers. Kind of embarassing, really).

    8. Re:Cliff's Notes: Start Using TCP Sequence Number by w1r3sp33d · · Score: 2, Insightful
      I just ran my sniffer and inspected a icmp echo request. I see the ICMP seq#, there is no TCP header on the packet. While I can see this being a potential tool to defend against a barage of ICMP echo replies (or any reply protocol under ICMP) but I still cannot see how it would be a usefull tool in other scenarios, e.g. if I were sending Echo's or Information Requests.

      Regardless I see greater challenges for ICMP with much more complicated answers needed. Until then I still see old school acl's as the best prevention, I will have to owe everyone some change on those two cents.

    9. Re:Cliff's Notes: Start Using TCP Sequence Number by ph0enix · · Score: 4, Informative
      I just ran my sniffer and inspected a icmp echo request. I see the ICMP seq#, there is no TCP header on the packet.


      Well duh, ICMP echo request/reply messages are not the ICMP error messages being discussed. From TFA:

      There are three ICMP type 3 'destination unreachable' errors that are defined in RFC 1122 as hard errors. Code 2, 'protocol unreachable', code 3, 'port unreachable', and possibly code 4, 'fragmentation needed and don't fragment bit set' are all hard errors that if received can cause a TCP stack to tear down an existing connection.
      --
      <sigh>
    10. Re:Cliff's Notes: Start Using TCP Sequence Number by Anonymous Coward · · Score: 0

      Wow, you are a prime example of today's common Internet kiddie, Mr. "w1r3sp33d".

      Clueless about the topic but with the need to add some half-assed "knowledge" to the discussion, which in turn leads to even more confusion and cluelessness amongst other kiddies who read it.

      And so the dumbing down goes on and on.

    11. Re:Cliff's Notes: Start Using TCP Sequence Number by Anonymous Coward · · Score: 1, Insightful

      Idiots like you are why we can't use PMTU discovery reliably.

      Get it through your thick skull: ICMP != PING

      ICMP is the *PROTOCOL* that ping uses, but other things use ICMP as well.

    12. Re:Cliff's Notes: Start Using TCP Sequence Number by w1r3sp33d · · Score: 1
      I asked a question, I did not "add some half-assed knowledge."

      I do think you are right about the dumbing down, and BTW, thank you for your contribution.

    13. Re:Cliff's Notes: Start Using TCP Sequence Number by w1r3sp33d · · Score: 1
      Wow, and you are calling me an idiot?

      No, I am not the reason that you can't use PMTU discovery but I am flattered that you think I am so important.

    14. Re:Cliff's Notes: Start Using TCP Sequence Number by timster · · Score: 2, Interesting

      Well, he didn't say YOU, he said "idiots like you".

      But what he meant was that some incompetent network admins think that ICMP is only for pings, decide they don't want pings, and block ICMP completely at the firewall. ICMP is responsible for the "fragmentation needed" message which allows the sender to know when to use smaller packets to avoid fragmentation (which is generally bad).

      Frustration with this issue leads people to lash out at those who don't seem to understand ICMP. I wouldn't take it too personally.

      --
      I have seen the future, and it is inconvenient.
  4. Hasn't been touched in 10 years? by xxxJonBoyxxx · · Score: 0, Flamebait

    "here we have a 20 year old protocol, a part of the Internet infrastructure that hasn't been touched in 10 years and we were all sure was right, and now is cast in doubt."

    Where the hell has this moron been?

    http://www.enterprisenetworkingplanet.com/netsecur /article.php/3498286
    http://www.ciac.org/ciac/bulletins/h-78.shtml
    http://bsd.slashdot.org/article.pl?sid=04/08/28/19 30259&tid=172&tid=7
    etc., etc., etc...

    1. Re:Hasn't been touched in 10 years? by Triumph+The+Insult+C · · Score: 1

      he's been fixing the problem. where have you been?

      --
      vodka, straight up, thank you!
    2. Re:Hasn't been touched in 10 years? by Anonymous Coward · · Score: 0
      Where the hell has this moron been?

      Theo's been at BSD's deathbed.

      Ever since Netcraft confirmed it, it's been taking a really long time to die.

    3. Re:Hasn't been touched in 10 years? by uofitorn · · Score: 3, Informative

      Nice job RTA dorkface:

      "The ICMP flaw is in the design of the protocol, not in any specific implementation."

      You listed flaws in implementations, none dealing with a flaw inherent to the ICMP protocol.

      --
      "What kind of music do pirates listen to?" -Paul Maud'dib
      "Yeeeaaarrrrr n' Bee!!" -Stilgar, Leader of Sietch Tabr
    4. Re:Hasn't been touched in 10 years? by Anonymous Coward · · Score: 0

      Your first link specifically references the work this guy was doing! If you read it, you'll see they reference a late 2004 IETF draft---that's the one this guy fucking wrote!

      As for the other two, those are problems with Microsoft's IP stack and OpenBSD's when acting as a bridge with IPsec enabled, respectively. Both of these refer to specific implementation problems, not the flaws in the TCP specifications.

    5. Re:Hasn't been touched in 10 years? by NoImNotNineVolt · · Score: 2, Interesting

      Then why is it that the OpenBSD implementation of the very same ICMP protocol is claimed to be flawless?

      --
      Chuuch. Preach. Tabernacle.
    6. Re:Hasn't been touched in 10 years? by Anonymous Coward · · Score: 0
      Ever since Netcraft confirmed it, it's been taking a really long time to die.
      Trinity's death scene was still way longer.
  5. This is ridiculous! by garcia · · Score: 4, Interesting

    While the patent issue was happening with Cisco, CERT/CC created a mailing list to allow vendors to communicate amongst themselves about the newly discovered vulnerability. "They blamed me for submitting my work," Fernando said in exasperation. "One of Cisco's managers of PSIRT said I was cooperating with terrorists, because a terrorist could have gotten the information in the paper I wrote!"

    Of course. We know of problems but we are going to go the Security by Obscurity route and then when the cover is blown we'll claim they are supporting terrorism instead of admitting that we were wrong!

    If the terrorism route doesn't work we always have the patent on the issue to sue him with!

    Way to fucking go, thanks Cisco!

    1. Re:This is ridiculous! by jrockway · · Score: 3, Insightful

      Wow. It is about time to stop buying Cisco products. Their idea of security is calling people who help them make it better "terrorists". No fucking thanks.

      --
      My other car is first.
    2. Re:This is ridiculous! by Nimrangul · · Score: 1
      Hmmm... That sounds incredibly suspicisous.

      Quick someone call the Department of Homeland Security! This terrorist is trying to bring down America by not buying American!

      Thought you could get away with it did ya? Well, we're not fooled by your shenanigans, not even for a second, terrorist.

      --
      I'm sick of following my dreams - I'm just going to ask them where they're going and hook up with them later.
    3. Re:This is ridiculous! by hethinkstoomuch · · Score: 2, Insightful
      It's really sad to realize that Cisco and other big players at this level think that they are justified in trying to patent such core infrastructure technologies or protocols (fixes).

      If Cisco wants to "Empower the Internet Generation" then they should show a little more old-fashioned Internet Netiquette and proactively share new ideas and address security issues openly with the community rather than cowardly behind lawyer's doors. (Afterall, haven't they too benefited from all the opensource code they've integrated it into their products?)

      Take a millicent, give a millicent.

    4. Re:This is ridiculous! by dcam · · Score: 3, Interesting

      That is only half of it, read the full article for the way cisco behaved:

      He continued to reply thoroughly to all their questions, until two months later when he received an email from Cisco's lawyer claiming that Cisco held a patent on his work. He asked their lawyer for specifics, but they refused to reveal any details. ...

      Fernando went on to point out that from his experience vendors seem to be more concerned about who gets credit for finding a flaw, rather than about actually fixing it. Fernando explained, "Cisco was worried about not giving me credit because they claimed to have been working on the problem for four years. They offered to set up a meeting with some people of Cisco Argentina to show me documentation that would prove they had been working on the Path MTU Discovery attack for more than a year. It didn't happen. ...

      One week prior to the eventual discloser, Fernando received a call from the CTO of Cisco Argentina who asked him for a copy of his resume. "He said he wanted to have a meeting with me, telling me they might have a job for me," Fernando shrugged. "The meeting was delayed a few times, then I never heard from him again. I wouldn't have thought much of it, but I mentioned it to other people and it turns out they'd had similar experiences. It seems this is a common practice for Cisco to offer someone work in the hopes you'll not talk to the media when the security issues are disclosed."


      Way to go Cisco!

      --
      meh
    5. Re:This is ridiculous! by Anonymous Coward · · Score: 0

      Sounds to me like it's less of a "Cisco sucks" thing than a "Argentina sucks" thing. They're not importing Americans to work there, they're hiring local - therefore the locals are the ones doing this crap.

      After corresponding with more than a few ISPs down there, this whole sly underhanded crap seems to be SOP for most Argentinian companies.

    6. Re:This is ridiculous! by Hal_Porter · · Score: 2, Funny

      Legal threats followed by job offers?

      Pussies. Microsoft would have just hired hitmen to kill the guy.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
  6. MOD THIS UP by Anonymous Coward · · Score: 0

    here I am without my mod points :(

    1. Re:MOD THIS UP by Anonymous Coward · · Score: 0

      But mod it up +1 Funny.

    2. Re:MOD THIS UP by Anonymous Coward · · Score: 0
      here I am without my mod points :(
      More like, MOD THIS PROBE!

      here I am without my kernel source :(
    3. Re:MOD THIS UP by Anonymous Coward · · Score: 0

      Yes, I think a karma bomb is in order here. >:]

  7. Re:ICMP flaw #1 on Linux: it's in the kernel by pingus · · Score: 2, Insightful

    "We don't put HTTP servers in the kernel." Umm, khttpd is pretty much an http server in the kernel. But more on topic, what a pain in the ass it would be to have to install and maintain yet another network server. I'd rather just have it in the kernel personally. If I really had a problem with it, I'd take it out. That's the beauty of Linux.

  8. Re:ICMP flaw #1 on Linux: it's in the kernel by Anonymous Coward · · Score: 4, Informative
    Where's the -1 misguided when you need it?


    ICMP is in the kernel because it's part of TCP/IP, which wouldn't be hard to remove from a Linux kernel.

    Kinda makes all your other services pointless thought, don't it.

    http://en.wikipedia.org/wiki/TCP/IP

  9. Re:ICMP flaw #1 on Linux: it's in the kernel by smash · · Score: 1
    Actually, I'd much rather just update icmpd than recompile my kernel :D

    smash.

    --
    I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  10. Re:ICMP flaw #1 on Linux: it's in the kernel by deathazre · · Score: 1

    okay, am I really confused here, or does this make no sense? Parent, if we should move ICMP to userland, what about TCP and UDP?

    --
    Karma: Negative (Mostly affected by dorm trolling)
  11. Re:ICMP flaw #1 on Linux: it's in the kernel by Anonymous Coward · · Score: 3, Informative

    This should not have been modded up. ICMP is not a service like http or smb, though if your only experience with icmp is ping, it might seem that way. ICMP is a low-level part of the network stack, used internally by TCP/IP, and as such it needs to reside wherever the network stack resides. The entire network stack could be moved to userland, but that is a separate question.

  12. Re:ICMP flaw #1 on Linux: it's in the kernel by smash · · Score: 0
    TCP and UDP are often used in high bandwidth/low latency scenarios.

    ICMP isn't.

    smash.

    --
    I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  13. Re:ICMP flaw #1 on Linux: it's in the kernel by diggem · · Score: 2, Informative

    We don't put HTTP servers in the kernel.

    I'm sure this will end up redundant but I'm going to comment anyway.

    I give you TUX

  14. Re:ICMP flaw #1 on Linux: it's in the kernel by tmasssey · · Score: 3, Informative
    You know what's ironic? You just described a microkernel...

    The whole reason for monolithic kernels like Linux is performance and simplicity. Having to do a context switch for every single packet gets expensive...

  15. Re:ICMP flaw #1 on Linux: it's in the kernel by Roofus · · Score: 1

    If you want to be pedantic about it, ICMP has nothing to do with TCP. It's part of IP only.

  16. Google search links by karvind · · Score: 2, Informative
    I wasn't really familier with ICMP, so did a quick google. Found couple of good links:

    RFC 792 dates back sep 1981.

    wikipedia

    1. Re:Google search links by rel4x · · Score: 2, Insightful

      I wasn't really familier with ICMP, so did a quick google. Found couple of good links

      You must be new around here...we don't really even advocate reading the article, and absolutely forbid background research...

      --

      Before you mod me funny, think, perhaps I was insightfully funny?
    2. Re:Google search links by Anonymous Coward · · Score: 0

      Really all you need to know is if you're packet and someone named Cisco says your TTL is up, run...

    3. Re:Google search links by Anonymous Coward · · Score: 0

      Don't feed the bots!

    4. Re:Google search links by Anonymous Coward · · Score: 0

      All it says that Google is fukn good search engine that you don't have to go beyond couple of searchs. Sounds good to me. If someone puts up the link here, I don't even have to pull up google search myself. Move on you troll.

    5. Re:Google search links by tezbobobo · · Score: 0, Offtopic

      ...and yet he got +3 informative for contibuting a little (sure not +5) whilst you recieved a total of -1. I guess that means you post was unimportant (true), irrelevant (true), or a troll (true). Maybe you should take a lesson out of his book. Perhaps it is you who does not understand the moderation process, have missed the point.

    6. Re:Google search links by tezbobobo · · Score: 1

      What is the elize/eliza board of which you speak?

    7. Re:Google search links by Anonymous Coward · · Score: 0

      go back to trolltalk Ensign Craig.

    8. Re:Google search links by Fnord666 · · Score: 1
      --
      'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
    9. Re:Google search links by the+way,+what're+you · · Score: 1

      I wasn't really familier with slashbot eliza board, so did a quick google. Found couple of good links:

      Google Search: slashbot eliza board dates back to jul 2005.

      wikipedia

      --
      example.org - powered by Linux!
  17. Re:ICMP flaw #1 on Linux: it's in the kernel by who+got+my+name · · Score: 0

    If you only had any klew of the things you are talking about, then you would sound credible. ICMP is part of TCP/IP stack. It is important part of TCP/IP stack as well. If you would read up on IPv6 you will find out why it is important or at least meant to be such.

    --
    The only person who is capable of killing my karma, is me, do not even try to help me.
  18. Re:ICMP flaw #1 on Linux: it's in the kernel by smash · · Score: 1, Interesting
    It sits on top of IP yes (layer 4).

    Put IP in the kernel, put TCP and UDP in the kernel (also layer 4, but performance intensive), move ICMP out?

    smash.

    --
    I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  19. Re:ICMP flaw #1 on Linux: it's in the kernel by Anonymous Coward · · Score: 0

    Ummm, am I missing something here? You'd rather have an httpd in the kernel, rather than userland? LOL. Is this is a joke or for real? Hmmm, compile from source, or install a binary pkg then run... OR compile/decompile from kernel, reboot production server, cause grief and down time... Why not just use Windows then??? Seriously! I sure hope you don't manage any servers other than maybe your own at home and that only YOU use, not your gf/wife or any one else for that matter.

  20. Re:ICMP flaw #1 on Linux: it's in the kernel by AndrewStephens · · Score: 2, Informative

    You have been modded up, but this is a pretty uninformed argument. ICMP is part of TCP/IP, which you definitely want in the kernel. I guess it would be possible to put it user space, but performance would be terrible. In any case, user space wouldn't protect against what the article is talking about.
    As a matter of fact, people DO put HTTP servers in the kernel. There is more than one Linux in-kernel HTTP server around, and parts of IIS run in kernel on later versions of Windows. If you really, really care about performance (hint: Apache doesn't, its strength is flexibility) then the cost of kernel calls and copying data from user space to kernel space is important.

    --
    sheep.horse - does not contain information on sheep or horses.
  21. IYAMWETAWDED by Anonymous Coward · · Score: 3, Funny

    Please google TCP/IP, then quiz yourself against your grandmother. If she knows more than you about how networks operate, read more. Once you manage to outwit her you are free to state your apologies here.

  22. ICMP Explained by Anonymous Coward · · Score: 0
    The Internet Control Messaging Protocol (ICMP) is a mechanism for communicating the health of the network. It is used all over the place.
    • TCP uses it for congestion control.
    • Ping and traceroute use it to send echo requests and echo replies.
    • IP (the lowest level protocol on the Internet) uses it to indicate a packet can not reach its destination.

    The Internet would not function without it. If you take ICMP out of the kernel, you also have to take the rest of the TCP/IP protocol stack out of the kernel.

  23. Re:ICMP flaw #1 on Linux: it's in the kernel by A+beautiful+mind · · Score: 5, Insightful

    The scary thing is that the parent is talking about ICMP without actually knowing what it is.

    You see, this is one of the failures of the moderation system: when someone posts something like this, it seems intelligent because it mentions a lot of familiar things, but overally it's not even making sense. The problem is that moderators work like this:

    Argument: check
    Clear line of thinking: check
    Windows comparison: check

    The problem is that this checklist does not include VERIFYING THINGS like what ICMP is. This is how the parent got +5, insightful while it's one of the most misinformed posts i've seen in a while.

    --
    It takes a man to suffer ignorance and smile
    Be yourself no matter what they say
  24. Re:ICMP flaw #1 on Linux: it's in the kernel by Trick · · Score: 5, Insightful

    How the heck did this get modded insightful?

    ICMP runs on a different layer than all of the services you mentioned. ICMP is a network layer protocol (like IP and IPv6, also called "layer 3"), and all the protocols you mentioned are application layer (layer 7) protocols. There's no direct comparison to be made to any of the protocols (HTTP, SMB, FTP and NFS) you mentioned.

    If you want to compare having ICMP in the kernel to other sinilar protocols, your best argument (if you can call it that) is that we should have *IP*, another layer 3 protocol, "running as an ordinary user process, not root, and especially not as a kernel process." Obviously, IP *is* included in the kernel, for plenty of good reasons. Comparing ICMP to application-layer protocols like HTTP holds no weight whatsoever, unless you're completely ignorant of network fundamentals.

    How it got modded to +5 Insightful baffles me. I'd have thought this crowd would have a better handle on the basics.

  25. Because things that need it are in the kernel by anti-NAT · · Score: 2, Informative

    Putting things in the kernel rather than user space isn't purely a performance decision, which seems to be the logic behind your comment. If that was the case, there'd be a whole lot of things that should be moved to user space, such as the dumb terminal or low speed serial port handling.

    A lot of things should be put in user space if they can. When those things are put in the kernel, it is usually because the kernel is a better location than userspace. Sometimes it is for performance, sometimes for other reasons. It is a trade off of course.

    UDP relies on ICMP to generate unreachable port messages. Coming up with a setup where the in kernel UDP code calls a userspace ICMP process to generate those messages is more complicated than having ICMP as part of the kernel.

    --
    The Internet's nature is peer to peer - 20050301_cs_profs.pdf
  26. Re:ICMP flaw #1 on Linux: it's in the kernel by OverCode@work · · Score: 4, Informative

    Yes... it could be done outside of the kernel. The problem is that it's basically a required component of IP (the two interact closely). IP uses ICMP to report errors, for instance. If ICMP were in a user process, it would have to jump the kernel/user boundary every time, which could become very expensive.

    ICMP really isn't a server. It's a protocol for performing odd tasks that don't quite belong inside IP itself but that are more or less essential for it to function. 'ping' is just one of about 16 message types ICMP supports. The others involve routing, destination unreachable messages, source quench ("slow down!"), etc.

    I think a better design would be to have the entire networking subsystem in userland.

    Incidentally, my current project is writing a tun/tap-based IP stack entirely in C#. It's mostly for fun, but when it's finished it'll be a complete userland networking subsystem. (Current status: decodes and defragments IP packets, starting to implement ICMP.)

    -John

  27. Microsoft... by Anonymous Coward · · Score: 0

    If microsoft fixes it first...I See More Patents.... :-(

    If it's not fixed soon...I See More Pwned b0xen... :-(

  28. Yeah, there's a bunch of this stuff around by mveloso · · Score: 2, Insightful

    I think you could send a redirect via ICMP too, to generate your own man-in-the-middle attack. It's been too long since I've read the RFC.

    DHCP has a whole bunch of issues too. For example, what if a DHCP client gets a DHCPACK from some machine? I'll bet that it would just reconfigure itself using the information in the packet. Bam, you've got a man-in-the-middle attack.

    1. Re:Yeah, there's a bunch of this stuff around by interweb · · Score: 2, Insightful

      Fixing the DHCP ACK issue seems like it would require a switch update/upgrade so that the switch doesn't allow traffic to any physical port by any other physical port, except the dhcp server's physical port, until the machine connected to that port gets assigned an IP address, by the DHCP server, in response to the machine's DHCP request.

    2. Re:Yeah, there's a bunch of this stuff around by pikine · · Score: 1

      Actually the client is supposed to listen to DHCP responses actively even after it has been assigned an address, so a properly configured switch should simply drop DHCP responses from all machines but the designated DHCP server. All other machines are allowed to make DHCP requests.

      Also, a more conservative switch should simply disable most activities of a port unless an interface is properly configured, indicated by a DHCP response sent to the interface. That way you can't just manually setup any IP address and start acting like you own it.

      One trick to wreck havoc on a network has always been to cause IP address conflict with some key servers on the network. Or run a DHCP server that assigns bad addresses before the real DHCP server does. You can get very angry system admins to yell at you, excerting great frustrations, if you accidentally plug in your computer and enable internet sharing on the wrong interface.

      --
      I once had a signature.
    3. Re:Yeah, there's a bunch of this stuff around by Anonymous Coward · · Score: 0

      Yeah I accidently took out a telecommunications company corporate network because I installed a box which started performing DHCPACKs without my knowledge.

    4. Re:Yeah, there's a bunch of this stuff around by orangesquid · · Score: 1

      The solution to that is to block inappropriate DHCP packets where you can, and monitor for them where you can't block them.
      That's what my school (udel.edu) does. If you accidentally run dhcpd, bam, your network port gets turned off and you have to talk to NSS (network&system services) and convince them you didn't intend to cause any trouble.

      --
      --TheOrangeSquid Is it any wonder things seem so awry? We swim in a sea of confusion and don't have to think to survive
    5. Re:Yeah, there's a bunch of this stuff around by mveloso · · Score: 1

      The problem with that is simple: what if your DHCP server fails and you have to install another one?

      Suddenly, you have to reconfigure everything while users sit there complaining that the IntarWeb is down.

      It also implies end-to-end configuration, which with more than about 5 machines becomes a real PITA.

  29. Re:ICMP flaw #1 on Linux: it's in the kernel by Anonymous Coward · · Score: 0

    The entire network stack? I'll give you APS. T maybe. N would be hard (microkernel thinking). DP? How? Each user brings his/her own NIC? Generalize the definition of user process, eh?

    Of course I'm thinking of the SSI stack. Not every network stack has to be exactly the same, though they will mirror certain parts (general condened or expanded). At some point you will have to talk to the bare metal and when you do that your kernel (by definition) is in charge.

  30. Stop the Paranoia!!!!!!!! by Anonymous Coward · · Score: 0
    This "security" obsession is as silly as saying that it's horrible that your house has "security holes" called Windows that someone can break with a stone. Or that your t-shirt has a "security problem" because it doesn't have bullet proof glass.

    Why can't people accept that there's a decent tradeoff between security and practicality in all things (cars, t-shirts, houses, and yes, even your beloved computer).

    The best companies at managing risk - financial companies like credit companies - recognise this tradeoff. So they carefully make sure that there's a ballance between how hard it is to use a credit card and how hard it is to steal a credit card. Sure they could make unstealable cards - but the difficulty in usability would more than make up for it.

    Same for ICMP. For 20 years it had no practical exploits - that's EXCELLENT security, not a security hole. Practically no apartment building or office building has that solid a record.

    1. Re:Stop the Paranoia!!!!!!!! by DrSkwid · · Score: 2, Insightful

      becuase you don't need to physically go to a computer to break into it

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    2. Re:Stop the Paranoia!!!!!!!! by Twanfox · · Score: 1

      I'm not sure where the note about 'obsession' with security came in. However, this day and age sees thousands upon thousands of viruses, scripted attacks, and other nasties out on the Internet on a daily basis. When the average time to live of a standard, freshly installed from source machine is down to 12 minutes (Windows), you have to scrutinize security a lot more than you used to.

      There is also a difference between recognizing a tradeoff between security and practicality as you mention, and simply being blind to the security problems inherant with a particular implimentation. To make a choice about the tradeoff you are making, you have to know the concerns, and for all practical purposes, that means knowing all ways in which your implimentation could break. Perhaps they knew that when implimenting the ICMP protocol, perhaps not. It's hard to tell that now.

      And, I wouldn't say that ICMP had no practical exploits. Ping flooding has been around for a while, as well as reflected attacks using ICMP (ping a broadcast address with the victim as the source, and the victim gets a swarm of packets to deal with that it didn't request). Simply because they aren't often used doesn't mean that they were not known about or used.

  31. 68 byte MTU? by Anonymous Coward · · Score: 0

    I thought the minimum Internet MTU was 576 bytes, not 68 bytes. So Path MTU should never result in a decrease of the MTU below 576, otherwise such a low MTU would cause problems with all sorts of other interactions. While 576 might slow things down a little bit, it's not 68 bytes by any means, and it's only about 1/3rd the size of the typical 1500 MTU over Ethernet links. It doesn't seem like the solution described in the article is really necessary, although it probably helps some.

    1. Re:68 byte MTU? by wwest4 · · Score: 1

      The MTU is the minimum upper limit on the frame size (a minimum maximum, if you like). The router must be able to receive 576-byte datagrams, but that doesn't mean it can't send 68-byte datagrams to its heart's content (with all of the overhead that entails on both ends).

  32. It was supposed to be simple! by BigKeys · · Score: 2, Insightful

    We knew about the problems with ICMP when we first designed applications around it in the mid 80s. But at that time it just was not critical or exposed enough for us to really spend too much time planning workarounds or suggesting changes to the specification.

    At that time we really didnt think that there would be such a huge number of users for what we thought was something with a very limited audience.

  33. Interesting ICMP exploit by OverCode@work · · Score: 5, Interesting

    Often when Internet providers disable your cable/DSL/LAN connection for security or billing reasons, they just block TCP and UDP but leave ICMP available. I've observed Georgia Tech's ResNet to do this, and reportedly Adelphia's cable ISP does the same. You can ping to your heart's content, but can't send data.

    Except that you can.

    A ping packet (ICMP echo request) can have a completely arbitrary payload. You can put any data you want there. You could even tunnel IP inside it. You would have to have to have a friendly server on the outside to receive these packets and forward the contents, but that's easily done.

    This trick might also be useful for tunnelling past content filters. I don't think any of them scan ICMP packets.

    I'm writing a simple userspace IP stack (gets packets from the tun/tap interface), and I intend to try this out once it's a bit more mature.

    -John

    1. Re:Interesting ICMP exploit by bfizzle · · Score: 1

      The results would be interesting. I hope to see it on /. when you get something working. :)

    2. Re:Interesting ICMP exploit by isometrick · · Score: 4, Informative

      Save yourself some trouble, check out PingTunnel. :)

    3. Re:Interesting ICMP exploit by Anonymous Coward · · Score: 0

      I would be damn glad to help you completly re-write this. Comcast in Bay Area allows DNS and Ping when your service has been "disconnected" :-D

      Check out my project if you'd like to know my coding ability at http://khd.sf.net/

    4. Re:Interesting ICMP exploit by geekylinuxkid · · Score: 0

      Actually, it depends where you are. Where I am located (a military base served up by Charter (yuck)) comes out and unplugs your line in their little electrical room.

      Little do they realize (or do they) that one can easily use a hanger to get into these electrical rooms and plug back in your cable. However, they employ these special fasteners that attach to your coax cable so that you cant just plug back in your cable incase you happen to get into the electrical room.

      just wish i could find one of the tools used to release the lock... :P

      Just some information.

    5. Re:Interesting ICMP exploit by complete+loony · · Score: 2, Interesting

      Wouldn't it be better implemented at the network transport level instead of only tunneling TCP? I'm thinking more like how CIPE is based on UDP packets.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
    6. Re:Interesting ICMP exploit by mikej · · Score: 1

      .oO Phrack Magazine Oo.

      Volume Seven, Issue Forty-Nine

      File 06 of 16

      [ Project Loki ]

      whitepaper by daemon9 AKA route
      sourcecode by daemon9 && alhambra
      for Phrack Magazine
      August 1996 Guild Productions, kid

      comments to route@infonexus.com/alhambra@infonexus.com

      http://www.phrack.org/phrack/49/P49-06

      --
      Ideology breeds Hypocrisy. Just how much is up to you.
    7. Re:Interesting ICMP exploit by tuomoks · · Score: 1

      And more - telcos that charge traffic don't charge ICMP - free !! data ! Actually it is very handy on wireless end to end, simple and more easy to use as your own control / auth mechanism - assuming you encrypt the payload..

  34. Some facts about this by possible · · Score: 4, Informative
    Here are some facts about these vulnerabilities in no particular order.
    1. These are blind exploits, meaning you do NOT have to be a man-in-the-middle.
    2. Sequence number checking is not enough. Therefore Linux has not fully fixed these issues yet. Only OpenBSD has fixed them all, and it must be considered the reference implementation for these fixes. TCP window sizes are fairly large these days. You can EASILY exploit this in a few seconds simply by brute forcing into the window.
    3. This is much worse than the TCP reset attacks we read about. Why? Because using these ICMP exploits, you can stall a connection without the application layer ever receiving notification that something is amiss.
    4. Why does this matter? BGP. How do people secure BGP these days? They filter TCP packets with a firewall. Or they use tunnels. Guess what? That doesn't protect you from these vulnerabilities, because they use ICMP. Guess what? Home users with firewalls aside, most ISPs do not (and cannot, if they expect the Internet to work) filter ICMP.
    5. "Responsible disclosure" is incredibly broken these days and it's getting worse. The vendors have hijacked the process. This is at least the 3rd time Cisco has tried to patent somebody else's security work. NISCC and CERT totally blew it. The IETF blew it AGAIN (remember VRRP?) Gont was asked during his presentation "Knowing what you know, how would you handle the disclosure of these issues if you had to do it over." His answer was, he would just write things up and publish them to Bugtraq without notifying anyone ahead of time. And he's not alone. More and more researchers are anonymously publishing things without notifying the vendors, because they don't want to go through this stuff every time they discover an issue.
    1. Re:Some facts about this by ph0enix · · Score: 1
      This is much worse than the TCP reset attacks we read about. Why? Because using these ICMP exploits, you can stall a connection without the application layer ever receiving notification that something is amiss.


      Also TCP MD5 authentication (one of the "official" solutions to the TCP reset attacks) provides no protection against this protocol flaw.
      --
      <sigh>
    2. Re:Some facts about this by graf0z · · Score: 3, Informative
      • These are blind exploits, meaning you do NOT have to be a man-in-the-middle.

        If the error receiving system is checking the header of the error generating tcp or udp packet (at least 8 byte have to be contained in the icmp error), the attacker has to guess the source port and - in case if tcp - the tcp sequence number to work blindly.

      • Sequence number checking is not enough. Therefore Linux has not fully fixed these issues yet. Only OpenBSD has fixed them all, and it must be considered the reference implementation for these fixes. TCP window sizes are fairly large these days. You can EASILY exploit this in a few seconds simply by brute forcing into the window.

        Again: you have to guess the source port, too. There are very few tcp protocols with predictable source ports nowadays. So it's not 2^32/windowsize but probably (2^16-1024)*2^32/windowsize. Have fun brute forcing that.

      • This is much worse than the TCP reset attacks we read about. Why? Because using these ICMP exploits, you can stall a connection without the application layer ever receiving notification that something is amiss.

        True: such an attack would feel more like a network problem than like an attack.

      • Why does this matter? BGP. How do people secure BGP these days? They filter TCP packets with a firewall. Or they use tunnels.

        And they secure them by no longer using predictable source ports (many BGP implementations used dest port = source port (179) before).

      This issue has to be considered, but as D. Adams said: Don't panic!

      /graf0z.

    3. Re:Some facts about this by shadowpuppy · · Score: 1

      Htttp(s) ssh and smpt are all fairly common protocols. And for the server side the port numbers fairly common. No real guessing if you approach things from that end.

    4. Re:Some facts about this by NotWulfen · · Score: 1

      3. Why does this matter? BGP. How do people secure BGP these days? They filter TCP packets with a firewall. Or they use tunnels. Guess what? That doesn't protect you from these vulnerabilities, because they use ICMP. Guess what? Home users with firewalls aside, most ISPs do not (and cannot, if they expect the Internet to work) filter ICMP.


      no, BGP by nature (unless you're using multihop) only communicates across a single segment (ethernet segment, sonet link), by blocking icmp unreachables/mtu changes/etc on these interfaces (which are not legitimate targets for any of these messages anyway- since no connections OTHER than the BGP one should be established from them- and if the other end crashes there's no other routers in the middle to send an unreachable) the problem is mitigated.
    5. Re:Some facts about this by NotWulfen · · Score: 1
      some more:

      cisco's response to the icmp attacks draft: http://www.cisco.com/en/US/products/products_secur ity_advisory09186a0080436587.shtml


      Cisco products that run Cisco IOS® and that have PMTUD enabled, either by default or because they have been explicitly configured to do PMTUD, are affected. All versions of IOS are impacted. The severity of the exposure depends upon the protocols and applications that rely on specific ICMP messages to perform PMTUD. IOS is not vulnerable to attacks that make use of ICMP "hard" error or "source quench" messages.
  35. Re:ICMP flaw #1 on Linux: it's in the kernel by Anonymous Coward · · Score: 0

    The moderation we need is -1, Criticizes Linux/Apple. Hell, that's what the Flamebait is used for on Apple and Linux articles anyway.

  36. Re:ICMP flaw #1 on Linux: it's in the kernel by Anonymous Coward · · Score: 0

    OMG, I am sitting here drunk posting on slashdot thinking about what a fucking loser I am, then I read this comment and laughed so hard my nuts fell off!

  37. Some facts about this-Enterprise license. by Anonymous Coward · · Score: 0

    "Sequence number checking is not enough. Therefore Linux has not fully fixed these issues yet. Only OpenBSD has fixed them all, and it must be considered the reference implementation for these fixes. TCP window sizes are fairly large these days. You can EASILY exploit this in a few seconds simply by brute forcing into the window."

    WHAT?! I thought that the GPL was better than the BSD? Our reputation is at stake. Fix! Fix! Fix!

  38. Much easier solution: by Orgasmatron · · Score: 2, Informative

    Null route any ASs that still allow spoofed egress. (Welcome to 1998)

    My network sure as hell doesn't allow any packets to leave that claim to be from an IP that isn't on our network. Does yours? It shouldn't.

    I'm pretty sure our upstreams will blackhole any packets emitted on our fiber that don't belong to our ranges too. Yours should as well (if you are an exception to this rule, you'll know).

    After that, it is only a matter of watching the managed switches. They'll alert us to MAC collissions faster than you can say "shallow grave".

    --
    See that "Preview" button?
    1. Re:Much easier solution: by Anonymous Coward · · Score: 0

      Ah yes, much easier. Rather than fix your IP stack, just black hole entire portions of the Internet. You're obviously not an ISP. Users will leave you in droves because they can't receive or send email.

    2. Re:Much easier solution: by Anonymous Coward · · Score: 0

      At the last ISP i worked for we had ip verify reverse path on all users connected to an LNS. For customers that had co-lo we did this by default too - except often we would need to create an access list due to some customers doing async routing.

      Still IMHO the amount of security issues you clear up taking this approach far outweighs the work required to open stuff up for customers who need it manually!

    3. Re:Much easier solution: by mtenhagen · · Score: 1

      Instead of null routing just dont allow any packets originating in your network

      Then the main issue remaining is the border routers, you can not trust the other routers so the only thing you can do is fix your stack.

      Its not good to think spoofed packets wont get in to you're network. They will and if you havent fixed the stack problems you're in deep shit!

      --
      Tired of those ridiculous Paypal fees? Try Greenzap and get $25 for just signing up!

      --
      200GB/2TB $7.95 Coupon: SAVE90DOLLAR
    4. Re:Much easier solution: by darylf · · Score: 1

      And you expect this to accomplish what? Spoofing is not required to send an unreachable, unless you're implying that the header inside the ICMP packet be checked?

  39. Re:ICMP flaw #1 on Linux: it's in the kernel by Anonymous Coward · · Score: 0

    Good luck for your illness, man!

  40. Typical science by pstreck · · Score: 2, Insightful
    here we have a 20 year old protocol, a part of the Internet infrastructure that hasn't been touched in 10 years and we were all sure was right, and now is cast in doubt.

    This seems very typical of science in all fields. An unproven theory goes unrebutted for some time untill someone realizes we made a big mistake. The world was once flat remember guys! One thing this should point us to is that no matter how solid something appears, it will always be broken whether it be a theory, a protocol or yes even the fortress known as open bsd *duck* Jokes a side, remember nothing is secure.

    --

    Later,
    Phil
    1. Re:Typical science by evilviper · · Score: 1
      The world was once flat remember guys!

      That was propoganda of the church, not a scientific theory.

      From the begining of time, there has been ample evidence that the world isn't actually flat, that even the most ignorant observer could pick-up on.
      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    2. Re:Typical science by tgd · · Score: 1

      And more directly, throughout most of the last few thousand years (contrary to what you were taught in grade school), the majority of the population knew perfectly well the Earth was spherical.

      During the reign of the Church in Europe, it was one of those "emperor has no clothes" things... most people knew it but you'd never say it publically. Outside of Europe, there was never really any issue with it.

  41. Re:ICMP flaw #1 on Linux: it's in the kernel by Anonymous Coward · · Score: 0

    Er... performance is *NOT* 'terrible' with a *microkernel* and a decent realtime OS, for implementing network in a non-kernel context.

    How do you think various real-time OSes like VxWorks' product (amongst others) do it? :)

    Yes, various folks do the network stack in userland just fine, and without a stunning performance loss.

    Note: microkernel != monolithic kernel.

  42. ICMP Vulnerable is by haX0rsaw · · Score: 0

    as vulnerable as my sweaty ballsack.

  43. Holy timewarp batman! by NotWulfen · · Score: 3, Insightful

    IRC networks have been plagued with ICMP unreachables for years

    http://www.rs-labs.com/papers/tacticas/ircutils/pu ke.html

    nothing new to see here, move along.

    1. Re:Holy timewarp batman! by RAMMS+EIN · · Score: 2, Insightful

      ``nothing new to see here, move along.''

      Well, no. The point is not that there is something new here, but that there isn't. These vulnerabilities are older than the www, but they still haven't been addressed properly. Now, that isn't exactly a new thing either, but it's good to give some attention to it, so that, maybe, they will be addressed soon.

      And there are interesting philosophical implications, too. Fundamentally, these messages can be spoofed to cause problems. You get the bad with the good. We probably want something like ICMP. So then, how far should we go to make it difficult to exploit? Remember, difficult to exploit here means difficult to implement, which means Mistakes Will Be Made, which hurts usability, and probably security, too. Law enforcement is starting to feel like a good option to me.

      --
      Please correct me if I got my facts wrong.
    2. Re:Holy timewarp batman! by Tzarius · · Score: 1

      Law enforcement is starting to feel like a good option to me.

      Don't get too comfortable with it.
      For a law like that to be effective, you would have to outright block that traffic from non-enforceable locations. From there it's only a small step to a nationwide firewall.

  44. Well known problems, mitigation long overdue by matman · · Score: 4, Informative

    Using spoofed unreach packets to drop TCP sessions has been around for a LONG time - it used to be called a "nuke" (before the Windows OOB attack, "WinNuke", became more widely known). I know that I've heard of the quench spoof attack, but hadn't heard of the path MTU attack, yet. Using ICMP redirect messages to arrange MITM attacks was also an old one, but I don't think that most stacks pay attention to redirect any more.

    Here's a post from 1993, for example:
    http://groups.google.ca/group/comp.protocols.tcp-i p/browse_thread/thread/439b09e36f4738eb/2eacbab1d4 9e966d?q=icmp+unreach+nuke&rnum=3&hl=en#2eacbab1d4 9e966d
    One from 2000:
    http://groups.google.ca/group/sol.lists.freebsd.se curity/browse_thread/thread/37d9a0a870080133/711f4 cc20af1a450?q=icmp+quench+spoof&rnum=1&hl=en#711f4 cc20af1a450
    One from 2003:
    http://groups.google.ca/group/linux.kernel/browse_ thread/thread/e96bd4e594c808d5/3f66eac2a5aa8665?q= icmp+path+mtu+spoof&rnum=2&hl=en#3f66eac2a5aa8665

    While these kinds of risks have been known for a long time, there hasn't really been much attempt to mitigate them. Fernando seems to be a little green, initially thinking that he discovered new vulnerabilities, but he's doing the right thing in pressuring for methods of mitigation. It's a hard fight against complacency. Some of the ideas are clever, but it'll take a lot of convincing to change something so low level as ICMP. For how simple ICMP is, it has lots of security issues; it has got to be made more complicated very carefully.

    1. Re:Well known problems, mitigation long overdue by jnf · · Score: 1

      thank you. I have 2 moderator points and i just read this entire thread looking for someone mentioning this. I would mod you up, but you are at the top already.

    2. Re:Well known problems, mitigation long overdue by darylf · · Score: 2, Informative
      Using ICMP redirect messages to arrange MITM attacks was also an old one, but I don't think that most stacks pay attention to redirect any more.

      Most stacks do not accept redirects that didn't come from their default route. However, there is still a very similar un-patched vulnerability in Windows 95 through XP, though 2000 & XP are only partially vulnerable.
  45. Freaking Cisco... two years?? HA! by Anonymous Coward · · Score: 0

    Surprised that Cisco could have known about an issue for two years and taken that long to deal with it?? hahahahaha.... I'm not saying they knew and shelved it, but if they did know, it doesn't surprise me. Look at any number of other failures they've had over the years.

    As for trying to Patent your work, no surprise. They would patent a flea on a dog's back if they could, so would Microsoft and so would any other major company of that size. They patent any and every possible concept they can! They employee firm after firm of lawyers that do nothing but file patents. It's as easy as submitting an idea through a web site and having some other guys approve it and the employee collects $3000 or so bucks up-front. So yeah, if you contact Cisco and give them an idea, that guy or gal you talked to has every incentive to submit your idea as a patent, it's big bucks to him or her!

    As for Cisco's PSIRT calling you a terrorist sympathizer or whatever, that's also not surprising. That organization is filled with a lot of people with inflated egos and impressions of themselves and they don't like it when someone is smarter than them.

    They're a giant behemoth of a corporation riddled with bureaucracy at every level! I can totally believe that this is exactly what happened as written in the article.

    I wonder why everyone thinks of Cisco as a benevolent entity with nothing but good intentions. They're no better than Microsoft in their business practices and their "domination" of the networks we all use.

    Anyone who hits a stone wall at Microsoft or Cisco and then is surprised really ought to rexamine his or her "picture" of the world.

  46. Re:ICMP flaw #1 on Linux: it's in the kernel by Anonymous Coward · · Score: 0

    Me too! Cheers!!

  47. And now for some real info by g-san · · Score: 2, Informative

    ping is actually an abbreviation, it stands for packet inter-network groper.

    1. Re:And now for some real info by Cid+Highwind · · Score: 2, Informative

      That's a backronym. "Ping" was a reference to the sound sonar makes. (see http://ftp.arl.mil/~mike/ping.html or http://en.wikipedia.org/wiki/Ping)

      --
      0 1 - just my two bits
    2. Re:And now for some real info by Anonymous Coward · · Score: 0



      Wrong. Parent is correct. BZZZZT!!!!

    3. Re:And now for some real info by surprise_audit · · Score: 1

      And besides, "ping" sounds better than "grope"...

    4. Re:And now for some real info by eikonos · · Score: 1

      packet inter-network groper

      Is this that cybersex I've heard about?

    5. Re:And now for some real info by Petersson · · Score: 1
      And don't forget the machine that does "ping": http://arago4.tn.utwente.nl/stonedead/movies/meani ng-of-life/03-the-miracle-of-birth.html.

      (Monty Python's Meaning of life reference).

      --
      I'm not insane. My mother had me tested.
  48. Re:ICMP flaw #1 on Linux: it's in the kernel by Anonymous Coward · · Score: 1, Informative

    Durrrrrr. And what happens when that very important IP datagram can't get through because of a routing issue? ICMP_DEST_UNREACH, thats what.

    Get less stupid, then try again. Or are you going to propose that the kernel sit around on its ass waiting for some userspace app to get paged in from the harddrive while its dropping the fucking "low latency" packets on the floor so that it can let you know theres a problem?

  49. Ugh... by Transcendent · · Score: 2

    Fernando was interested in discussing the ideas with his peers, but was concerned about vendors trying to patent his suggested fixes.

    Aren't patents lovely for innovation and growth of technology?

    Not to be a flame/ass/flaming-ass or whatever...

  50. Re:ICMP flaw #1 on Linux: it's in the kernel by AndrewStephens · · Score: 1
    OK, I'll conceed the point that a user-space network stack doesn't need to have terrible performance, but this implies very efficent messaging and data trasfer between kernel and user space (and probably scheduling tricks as well, off the top of my head).

    Most current OSes in common usage on the internet (which is what we are talking about here) do not have this design.

    --
    sheep.horse - does not contain information on sheep or horses.
  51. Dishes and Cilinders by HermanAB · · Score: 2, Funny

    Actually, first the world was dish shaped, then it was cilindrical, but the God Atlas has been carrying a globe on his shoulder for about 2500 years already. The American view of the world as a flat Pizza, is very modern...

    --
    Oh well, what the hell...
    1. Re:Dishes and Cilinders by soundofthemoon · · Score: 1

      The conceptualization of the titan (not god) Atlas bearing a globe on his shoulders is relatively modern - 16th century actually. In classic times he bore the vault of the heavens on his shoulders.

    2. Re:Dishes and Cilinders by HermanAB · · Score: 1

      Yeah, you are correct. According to Homer, Atlas rested the heavens on pillars, which is rather more practical: "A wave-washed island [Ogygia], a wooded island in the navel of the seas. A goddess has made her dwelling there whose father is Atlas the magician; he knows the depths of all the seas, and he, no other, guards the tall pillars that keep the sky and earth apart." -- Homer, in The Odyssey though according to Apollodorus the heavens was sometimes passed to Hercules: "Prometheus advised Herakles not to go after the apples himself, but rather to relieve Atlas of the celestial sphere and dispatch him. So when Herakles reached Atlas among the Hyperboreans, he remembered Prometheus' advice and took over the sphere." -- Apollodorus The Gods must be crazy...

      --
      Oh well, what the hell...
  52. Re:ICMP flaw #1 on Linux: it's in the kernel by Animats · · Score: 5, Informative
    Sigh.

    As someone who once implemented ICMP (in 1982, before BSD, even), I should say something.

    First, ICMP is a layer 3 protocol, like TCP and UDP. ICMP is IP protocol #1; TCP is #6 and UDP is #17.

    Second, it's quite feasible to put ICMP in user space. I'm writing this on a QNX system where it's in user space. My 1982 implementation was also in user space, as part of 3COM's UNET. Linux doesn't do it that way, but it's not fundamental that ICMP must be in the kernel. It needs to have a mechanism to pass messages to the other protocols, but that's a local message passing problem. But I'm not going to rehash the ever-growing monolithic kernel issue here.

    Third, we knew about many of those vulnerabilities back in the 1980s, but weren't as concerned about them because the Internet was a DoD/NSF operation. Destination Unreachable and Source Quench messages used to be taken more seriously than they are now. Destination Unreachable told you where the network was down, and Source Quench told you where it was congested, basic network management info back then. Today, nobody does network management that way and many TCP stacks don't do much, if anything, with ICMP information. I used to encourage the use of Source Quench for congestion management (see my RFC on this, from 1984), but it's far less appropriate today. Back then, we were concerned about packet loss through transmission errors, a frequent occurence with leased-line synchronous modems. So, when a packet was lost, the question was whether you should retransmit rapidly (appropriate for an error) or slowly (appropriate for congestion). Source Quench could disambiguate that situation. Today, it's assumed that packets are lost almost entirely through congestion, since the lower levels are of much better quality than they used to be.

  53. Theo by Anonymous Coward · · Score: 5, Insightful
    Theo may be a belligerent asshole, no question. But he is a belligerent asshole working for my side.

    I run OpenBSD stable, and some belligerent asshole stays up all night worrying about the best possible response to the latest threats. Sure, I will buy a CD http://openbsd.org/items.html#37.

    And Theo, thank you for being a belligerent asshole for the good guys.

    1. Re:Theo by Anonymous Coward · · Score: 0
      Theo is a poor lost soul. I don't know what dark troubles stain and embitter his heart. Maybe it was his family's involvement in the apartheid regime in South Africa. Or it could stem from feelings of inferiority, or even be a remnant of childhood sexual abuse. Whatever the cause for Theo's problems, there is a solution.

      Theo is the type of person for whom the Gospel message should be directed. If Theo were saved, if he were washed in the blood of the Lamb, if he gave his heart over to Jesus Christ, Theo would be born again. We would see a new Theo, a kinder and more tolerant Theo. Our Lord was nailed to a cross so that we all might have new life in Him.

      But the Gospel message is not only for Theo. It has the power to transform all our lives. Even if you aren't sure about making a decision to follow the Lord, take the time to call the counselors at CBN. Maybe you are a drug addict, or a homosexual, or a Muslim. No matter. Whatever your sin, Jesus came to save the sinner. There is much joy in heaven for each sinner who accepts the free gift of eternal life. Why not give CBN a call? Do it now - 800-759-0700.

    2. Re:Theo by BobTheAtheist · · Score: 0, Troll

      Hi, I'm a gay muslim who does drugs and other sinful stuff like pissing on statues of jebus. Will he save me? I always thought he was a lucky bastard to have 12 "disciples". I only have one slave :(

      --
      -- You're too stupid to be an atheist.
    3. Re:Theo by slazar · · Score: 1

      oh no, not another one of those GMAA posts!

    4. Re:Theo by Anonymous Coward · · Score: 1, Funny
      I tried to be a Christian, but I kept getting packets where I couldn't figure out if the message was coming from Jesus H Christ or Lucifer D Satan. When Jesus started telling me to paint myself with goats' blood and burn my neighbors to ashes as a sacrifice, I started to get suspicious.

      Until prayer is transmitted over a secure medium, or uses robust end-to-end encryption (or better yet: BOTH!), I have to recommend against religion. And even then, there's always the risk of quantum crypyanalysis, lurking like a boogieman just around the corner. You just never know.

      I think the thing to do in the mean time, is keep going to as many PGP keysigning parties as possible. One of these days, I will have three moderately trusted introducers who claim to have personally met and cross-signed with Jesus. Then maybe I'll finally be able to have a little chat with the divine forces, without worrying about the FBI running their usual MitM operation.

    5. Re:Theo by Anonymous Coward · · Score: 0

      Alice = man, Bob = God, and the church is the middleman convincing both they're hearing from one another.

      (this->is_buddhist() returns true)

  54. Re:ICMP flaw #1 on Linux: it's in the kernel by pingus · · Score: 1

    No, I'd rather run an HTTP server in userland for the very reasons that you mentioned. All I was doing was pointing out that an HTTP server has already been implemented in the kernel. Please do read the post and look at what it says before replying.

  55. No ICMP discussion w/out Orfin's papers by papaia · · Score: 2, Interesting

    There should be absolutely no discussion of ICMP without considering the fundamental research carried out by Orfin Arkin. His work should be read by anyone willing to discuss the issue beyond the /. gossiping ... P.S. ... what the heck is going on with the HTML formatted postings?!?

    --
    == With enough Will Power, one could move mountains. With enough Brains, one would just leave them where they are ==
  56. Re:ICMP flaw #1 on Linux: it's in the kernel by Breakfast+Pants · · Score: 1

    He never said "it is impossible to implement it in the kernel." He just said "we don't put it in the kernel," 'we' being 99% of all server admins.

    --

    --

    WHO ATE MY BREAKFAST PANTS?
  57. Nitpick by Vladan · · Score: 2, Informative

    What you wrote is right on except for the minor quibble that ICMP/TCP/UDP are not all layer 3 protocols.

    According to the OSI Model:

    Layer 1: Physical
    Layer 2: Data Link
    Layer 3: Network (IP goes here)
    Layer 4: Transmission (TCP goes here)
    Layer 5: Session
    Layer 6: Presentation
    Layer 7: Application

    UDP and ICMP are kind of harder to classify, although I've most often seen UDP placed in Layer 4 and ICMP in Layer 3. If you were referring to the TCP/IP network model which better represents TCP/IP (go figure), they still wouldn't be at the same layers.

    Layer 4: Application (HTTP)
    Layer 3: Transport (TCP, UDP)
    Layer 2: Internetwork (IP, ICMP)
    Layer 1: Network Access (eg Ethernet)

    1. Re:Nitpick by Anonymous Coward · · Score: 0

      Packet-wise, ICMP is layer 3 exactly like TCP and UDP. Logically, IMHO it belongs on layer 2, as a part of IP, not beside it. TCP and UDP build on (like a C program builds on stdio) ICMP, and without ICMP there would be no error handling, where as ICMP can live perfectly fine without TCP or UDP.

      If you're thinking of it like writing a program, ICMP belongs on layer 2 (below TCP and UDP), but if you are looking at the packet dump in ethereal it is layer 3.

      It depends on your point of view.

  58. Re:ICMP flaw #1 on Linux: it's in the kernel by NullProg · · Score: 1

    In response, Golf clap then Cheers

    No knowledge required to be a slashdot moderator.
    Good post.

    Enjoy.

    --
    It's just the normal noises in here.
  59. Re:ICMP flaw #1 on Linux: it's in the kernel by fsterman · · Score: 1

    Yeah, this is why OS X and Mach blow as servers. No, really.

    --
    Is there anything better than clicking through Microsoft ads on Slashdot?
  60. TCP and UDP not performance sensitive ? by anti-NAT · · Score: 1

    I think you're a bit misguided here. Why would people be wanting to offload TCP onto special TOE NICs if TCP performance wasn't important (not that I agree with doing that myself) ? TCP's processing overhead is higher than IP's, avoiding context switches for TCP, by putting it in the kernel, is a worth while benefit of putting it in kernel space rather than userspace.

    ICMP also would have to be in the kernel even if TCP and UDP weren't. ICMP is used by IP itself, for things such as fragmentation time-out messages, protocol unreachables and PMTU discovery.

    People didn't just blindly decide to place these things in the kernel space, there are good and sound reasons why they were put there, and I'm sure they've also been re-evaluated quite often since, with the same conclusion being arrived at evey time. Kernel space is best for performance for things that are very commonly used, and for ensuring that the facility is available to all applications that run on the OS, as well as the mechanisms within the kernel that rely on them (e.g., UDP relying on ICMP).

    --
    The Internet's nature is peer to peer - 20050301_cs_profs.pdf
    1. Re:TCP and UDP not performance sensitive ? by smash · · Score: 1
      Hey, i'm not saying I necessarily agree with the idea.

      Don't get me wrong, I think it probably *does* belong in the Kernel.

      My point isn't that its so inter-twined with IP that its impossible...

      smash.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    2. Re:TCP and UDP not performance sensitive ? by smash · · Score: 1

      NOT inter-twined, i mean...

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    3. Re:TCP and UDP not performance sensitive ? by anti-NAT · · Score: 1
      My point isn't that its so inter-twined with IP that its impossible...

      And that is the point I'm disagreeing with. Not impossible to move it to user space, however IP does rely on ICMP to the point where placing it in user space would likely increase unreliability.

      ICMP is quite a light weight and simple protocol. The IPv4 ICMP source code file in Linux 2.6 is only 1138 lines, going by what "wc -l icmp.c" says. Moving it to user space would increase that count, which naturally increases the possiblity of bugs.

      Moving ICMP to user space wouldn't mitigate the problems that this article is about anyway. More thorough validation of ICMP packets, and possibly a few fixes to the base protocol itself would be best.

      --
      The Internet's nature is peer to peer - 20050301_cs_profs.pdf
  61. MOD PARENT UP by anti-NAT · · Score: 1

    If it is John Nagle behind "animats", then he knows very well what he is talking about.

    --
    The Internet's nature is peer to peer - 20050301_cs_profs.pdf
    1. Re:MOD PARENT UP by b374 · · Score: 0

      Yup, he is. At least this is what "whois animats.com" gets me.

  62. Eyeroll by Spazmania · · Score: 2, Interesting

    Thing is, none of those "vulnerabilities" matter.

    Yes, they're real. Yes, you really can use them to bring non-OpenBSD servers to a halt -- for as long as you keep sending packets.

    But think it through: to use those vulnerabilities without getting very busted very fast, you have to have control of a botnet -- a significant anonymous source of packets. If you have control of a botnet, you can DDOS the server to death regardless of whether it has these vulnerabilies -- simply fill the pipe with normal packets.

    And guess what? Getting a hold of a botnet is a lot easier than exploiting these vulnerabilities.

    So, on a practical level, whats the difference between fixing these particular denial-of-service vulnerabilities and ignoring them? Damned if you do, damned if you don't. Better to spend your time worrying about problems whose solution might actually make a difference.

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
    1. Re:Eyeroll by dmiller · · Score: 3, Informative

      I'm sorry, but you are completely wrong on every one of your points.

      First, you don't need to keep sending packets to continue the DOS. You can degrade connections with the MTU attack with exactly one packet per connection. I.e. you don't need to flood.

      Second, these vulnerabilities don't require a botnet to execute or to hide your identity. By their nature you must spoof the source address of your packets so you would be difficult to find anyway.

      Next, getting hold and maintaining anonymous control of a botnet is a lot harder than running a script-kiddie tool that implements these attacks.

      Finally, fixing these problems makes them go away. They exist independantly of susceptibility to flooding. I still lock my doors despite the fact that a thief can smash my windows.

    2. Re:Eyeroll by Anthem.uxp · · Score: 1

      Why should I use up my entire botnet on one IP, when I can kill one host with each bot ?

    3. Re:Eyeroll by surprise_audit · · Score: 1
      You can degrade connections with the MTU attack with exactly one packet per connection.

      Just curious here - does the connection *stay* degraded, or does it occasionally try to revert to a less degraded condition in the hopes of getting back to normal?? I know modems step baud rate up and down when there's line noise, and it would seem to make sense for IP to try the same trick. I don't write IP stacks,though, so that may be a completely stupid idea... :)

    4. Re:Eyeroll by Anonymous Coward · · Score: 0

      RTFA.

      They revert after 10 minutes.

    5. Re:Eyeroll by schon · · Score: 1

      you are completely wrong on every one of your points

      No, he isn't; his inference that a botnet is needed is incorrect, but it's not as simple as you make it out to be.

      First, you don't need to keep sending packets to continue the DOS. You can degrade connections with the MTU attack with exactly one packet per connection.

      True, but only if you can sniff the traffic. The article states that you don't *have* to be MITM for this to work (which is correct), but if you're not, you won't know the TCP source port, and therefore will be required to brute-force the attack. And because you won't know the source port, you won't ever be sure that the attack succeeded, and so you'll have to keep sending packets - that will require a lot of bandwidth to sustain.

  63. Re:ICMP flaw #1 on Linux: it's in the kernel by ThisIsFred · · Score: 1
    You see, this is one of the failures of the moderation system
    No, it worked perfectly. And here is one of those cases where the maligned "overrated" option would be put to good use. It's a moderation system, not an instantaneous fact checker. It's very name suggests a happy medium, and it requires time to work properly. While I saw at least a half-dozen replies correcting the OP, some with informative links, I never saw the parent comment, as it was moderated under my threshold. Granted, it sits now at "-1 Flamebait", which it definitely wasn't, and there were more appropriate ratings, but hey, mission accomplished.

    Sorry to pick on you in particular.
    --
    Fred

    "A fool and his freedom are soon parted"
    -RMS
  64. Can this be used as a feature? by SpaceLifeForm · · Score: 2, Interesting
    With the BS traffic that comes down the pipe when visiting certain websites, could this actually be used to reduce the unwanted traffic?

    I'm thinking, they are attacking me, so I'll attack them back! (Normally, I drop all garbage packets).

    --
    You are being MICROattacked, from various angles, in a SOFT manner.
  65. The Real Problem With Internet Security by grumling · · Score: 3, Interesting
    From the article: On the other hand, if it were true, then it would mean that Cisco takes about two years to address these issues. I would be concerned about this if I were one of their customers.

    This is the biggest problem with large companies. Sure, it is has been pointed out adnausium over the years in various sources -The Mythical Man Month and The Innovators Dilemma being two very good ones. It is too bad that our network is now being ruled by bandits because of it. MS has become everything that it hated about IBM. Cisco has so much hardware out there that IOS has to be tested on everything before a new release. How can it be possible that when FOSS gets updated and corrected quicker? Of course, I work for a large company, and I see how long it takes to get a simple task completed. I'm guessing it has a lot to do with modivation. The open source folks really do believe in their product. For the people working in big companies, it is just a paycheck.

    Of course, there's always this possibility

    --
    "Well, good luck finding a judge that doesn't run a bestiality site."
    1. Re:The Real Problem With Internet Security by pikine · · Score: 1

      Of course, there's always this possibility

      I'm surprised someone can write a whole article just to say the contrapositive of "a wise person knows what he doesn't know."

      --
      I once had a signature.
    2. Re:The Real Problem With Internet Security by blargh-dot-com · · Score: 1

      Actually, given the reliability of new versions of IOS, I can pretty much guarantee they DON'T do much regression testing at all. We have gotten more broken things in IOS from "upgrading" than I care to think about.

    3. Re:The Real Problem With Internet Security by Creepy+Crawler · · Score: 1

      Sure you know that?

      ---wise ass ;P

      --
  66. Re:ICMP flaw #1 on Linux: it's in the kernel by Jay+Carlson · · Score: 1

    Dude, put your name somewhere that shows up with your posts. Maybe in a throw-away email address?

    As it happens, I've already read/downloaded the animats promo material, and I'm not quite in your target audience, but I'm not that far off.

    I'm sure you know this at some level, but your name is a positive marketing asset for your company. If you're going to set your slashdot username to be the name of the company and get hits that way, just go the extra step and reap the benefits.

    Besides, it'll make it easier for us fogies to adjust our Slashdot friends lists.

  67. Re:ICMP flaw #1 on Linux: it's in the kernel by smash · · Score: 1
    OK correction:

    ICMP is not sent at the rate that TCP or UDP are.

    How about you get less aggressive, and go get laid or something.

    smash.

    --
    I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  68. Minimum TCP MSS vs. minimum Internet MTU by 3l1za · · Score: 1

    The minimum TCP Maximum Segment Size is, as you say, 576 bytes (536 B TCP payload + 20 bytes TCP header + 20 bytes IP header).

    So if the MSS option isn't used during connection set-up, 576 bytes will be used by default (536-byte segment size).

    The minimum IP MTU is 68 bytes (for IPv6 it's 1280 bytes which is why there's a possibility for a Path MTU attack whereby some host sends an ICMP TooBig to the IPv6 tunnel source to force fragmentation -- since ICMP TooBigs can be spoofed...). How to detect false TooBig? How to track the source once detected?

  69. Re:ICMP flaw #1 on Linux: it's in the kernel by 5plicer · · Score: 1

    Then how do you explain the incredible performance which QNX Neutrino sports? QNX Neutrino is built around a true microkernel, yet its performance is higher than a skyscraper.

    --
    The bits on the bus go on and off... on and off... on and off...
  70. Re:ICMP flaw #1 on Linux: it's in the kernel by burns210 · · Score: 3, Informative

    Probably just a typo, but I wanted to clarify a mistype in your post.

    ICMP IS a subset of the Internet Protocol(IP). IP, part of TCP/IP, has an error reporting mechanism for when things get screwed up, it is called ICMP. It doesn't sit on top nor beside IP, it sits inside of it, logically speaking.

    Both ICMP, which is consider its own entity at times, but is a subset of IP as a whole, and IP are at layer 3. The Networking layer.

    TCP and UDP are layer 4.

    microkernels(as mentioned in another post) do exactly this: move as much OUT of the kernel as possible, including the networking (TCP/IP) stack. This isn't a bad idea, necesarily, it gives some advantages that microkernels are all about. If your networking stack gets completely destroyed, it doesn't take down your kernel, etc, etc.

    monolithic kernels, like Linux(and most OSes, since they are 'easier' and more commonly accepted design) put more things inside the kernel like the networking stack. Not everything, but more things than a microkernel.

    All that being said, even in linux, you could still write an userspace TCP/IP stack and use it, AFAIK. Though things like performance would be an issue.

  71. Re:ICMP flaw #1 on Linux: it's in the kernel by Lars+T. · · Score: 1

    No it isn't. Did you even read the article you linked?

    --

    Lars T.

    To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

  72. Re:You have to admit... by symbolic · · Score: 1

    ..that a huge company like Cisco, a name that is synonymous with the term 'network,' looks kind of silly not having addressed these issues prior to this disclosure. I can understand their defensive stance- they were clearly caught with their pants down. Just the same, that doesn't make it excusable. My level of respect for Cisco just rocketed down a few notches.

  73. DON'T DO IT! by DigiShaman · · Score: 3, Informative

    FYI, I'm a Time Warner employee in Austin, TX.

    When we disable a modem for non-payment or virus/spam abuse, we do it through rebooting the modem with a new BIN file. Once done, you will not get an IP address. The modem will still have a 10.net address attached to our network to configure. However, it's not accessible so don't bother wasting your time.

    Regardless if you could get online through a disabled modem, don't do it. Theft of cable service (including internet service through our cable) is federal crime. So don't even THINK about getting crafty with your connection that has been explicitly disabled for non-payment.

    --
    Life is not for the lazy.
    1. Re:DON'T DO IT! by OverCode@work · · Score: 1

      I'm not suggesting that anyone do this to steal service from a disabled account. I just find it interesting that disabled connections often allow ICMP to go through.

      Your network does it differently than other networks I've seen. Disabled accounts at Georgia Tech can still pull DHCP (I think), but our IPs are effective static anyway.

      (I was at GT several years ago. Their routers were cranky and would disconnect you for all sorts of reasons, such as changing your MAC address without dropping link. I actually had a legitimate reason to do that once, but the router thought I was trying to hack it and I had to get the office to turn my connection back on.)

      -John

    2. Re:DON'T DO IT! by Danj2k · · Score: 1
      "When we disable a modem for non-payment or virus/spam abuse, we do it through rebooting the modem with a new BIN file."

      Interesting. I guess that means in the US people with cable don't own their own modems? I doubt that broadband providers over here in the UK would be able to get away with such a move.

    3. Re:DON'T DO IT! by Anonymous Coward · · Score: 0

      Almost all cable modem users (or atleast the ones i've talked to) rent their modem from the provider. The modem has to be able to speak a specific protocol DOCSIS. That protocol enables the cable modem head to essentialy do anything they want to the hardware. Reboot it, turn it off, etc. This is actually one of the reasons why i'm switching to DSL (and Speakeasy DSL at that) -- I like to own my hardware, and do with it as I please. I don't need a father figure stomping electronic holes in my modems ass.

    4. Re:DON'T DO IT! by RomulusNR · · Score: 2, Interesting

      I guess that means in the US people with cable don't own their own modems?

      Cable (CATV provider broadband) modems, true. DSL (phoneline based) modems, usually true.

      I think I own my DSL modem. But I'm honestly not sure. The difference is that you CAN get your own DSL modem (as long as your provider / service agreement permits/supports it) a lot easier than you can get your own cable modem. But often, the DSL provider gives you a loaned modem as part of service without an upfront cost.

      This isn't all that odd, as CATV equipment has traditionally been cable company equipment for decades. (I can remember simple 1-2 coax splitters and antenna-leads-to-coax dongles on the back of the TV clearly saying "PROPERTY OF CABLE COMPANY -- DO NOT REMOVE".) The set-top box is usually owned by the cable company; though this subsided somewhat with the invention of cable-ready TVs, it is the norm again with the advent of digital cable. (Maybe digital cable will standardize, and we'll start seeing digital-cable-ready TVs someday. But with the number of special features in digital cable [e.g. show listings, on-demand, etc.], this isn't so simple.)

      (Subscription satellite TV is a different issue; I don't know how that works, but I'm pretty sure you can get your own satellite reciver, such as the HUMAX combination sat receiver/Tivo device, as long as it is compatible with your satellite provider.)

      Of course, a few decades ago, your telephone was loaned to you by the phone company, and you were obligated to give it back to them if it broke or you terminated service. Eventually that changed, of course -- I don't even know if you *can* loan a phone from the average telco anymore.

      --
      Terrorists can attack freedom, but only Congress can destroy it.
    5. Re:DON'T DO IT! by Anonymous Coward · · Score: 0

      Don't even THINK about it? Hell, my friend got free cable for months just because the cable company didn't show up to disconnect his service until months after he stopped paying. These aren't people to be afraid of.

    6. Re:DON'T DO IT! by Anonymous Coward · · Score: 0

      > So don't even THINK about getting crafty with your connection that has been explicitly disabled for non-payment.
      >--
      >
      > Communism = Equality at the lowest common denominator.


      Interesting how you threaten people in your post and in your sig you reference communism.

      The perfection which capitalism achieved in brainwashing little [people|minds] such as yourself could only be dreamed of by communism.

  74. if "we" were all sure by cahiha · · Score: 1

    "here we have a 20 year old protocol, a part of the Internet infrastructure that hasn't been touched in 10 years and we were all sure was right, and now is cast in doubt."

    If "we" were all sure, then maybe the wrong people are working on internet and security. The people designing the internet weren't concerned much with adversarial nodes or any of the other ills we have today, and anybody who thinks that ICMP, routing, etc., are in any way secure is a fool. The only reason it works as well as it does is because in the places that really matter (within a single large provider network infrastructure), there is some centralized control.

    But it's the system that's been deployed, everybody has to keep their eyes open for potential problems, and they need to get fixed as they get identified. Most security is being handled at a higher level now anyway (certificates, encryption, signatures, etc.), so that the primary thing we have to worry about resulting from the deficiencies of the underlying network is denial of service.

  75. The whole idea is crazy by AEton · · Score: 1

    I don't get it.

    --
    We recently had heard in the office over one of the Yellow Machine that's made by Anthology Solutions.
    1. Re:The whole idea is crazy by GillBates0 · · Score: 1

      Good reference there :) If I remember right that was the 10 millionth post.

      --
      An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
  76. However,.... by WindBourne · · Score: 2, Insightful

    it is not illegal to write the code. It would be useful to see if this hack does work. If so, then it will point out weaknesses in the networks as well as an issue with the protocol.

    Now, with that said, Yeah, it is theft, and it is federal. So, I am sure that s?he will not be using illegally. Or at least, I hope not.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  77. Re:ICMP flaw #1 on Linux: it's in the kernel by dcam · · Score: 0, Troll

    Congrats you just earned yourself a foe. You need to read up on networking, and they maybe, just maybe, you might understand how stupid comparing HTTP, SMB, FTP etc to ICMP.

    --
    meh
  78. Don't waste your time with DHCP by anti-NAT · · Score: 1

    Run ipsentinel, and configure it to "own" all possible IP addresses i.e. 0/0. It'll break ARP which means nothing will work, unless static ARP entries are configured on the hosts.

    --
    The Internet's nature is peer to peer - 20050301_cs_profs.pdf
  79. Hmmm. by jd · · Score: 2, Interesting
    Seems to me that terrorists are after slightly more spectacular targets than the Internet or the power grid. If they were fine with causing actual economic harm, rather than getting newspaper inches, they could have shut down huge swathes of the US at any time.


    The power grid is massively overloaded - especially in the Northeast and California, but Oregon has been blacked-out by single line failures before. As for the Internet, an attack on ICMP might be of academic interest, but it seems to me that they'd simply sever critical fibre. Less stoppable and would take substantially longer to repair.


    And if you really DID want to launch a data-driven attack, poisoning the router tables or DNS tables would have a larger impact, last longer and would be much harder to trace than an ICMP flood.


    In other words, you are absolutely right that the Cisco manager was playing an emotive card, rather than saying anything of any technological credibility. It is not only an utterly unlikely choice of weapon for such folk (too many alternatives that would have greater impact and would be more likely to work), but there is nothing in this new study that hasn't been known for a long time.


    If Cisco has a solution already, but competitors (by and large) don't, then Cisco obviously would have an edge in the market, if there was a panic rush to secure systems. On the other hand, they'd lose that edge if competitors upgraded their software prior to such a rush.


    The somewhat unpleasent implication would seem to be that individuals within Cisco were considering launching an ICMP-based attack of their own, to get people to switch to Cisco products. (I doubt Cisco itself would touch such a plan with a 10' barge pole.) Right about now, I'd want to know what kind of stock this manager has in Cisco, what kind of performance bonuses he gets and whether he knows DDoS-er Skript Kiddies. If there are provable means and motive, then I think we know why he was so upset at this becoming public.


    Suspicion, regardless of why or what, is just that and nothing more. However, were it to transpire that the manager could have personally profitted from an ICMP-based attack, then I think some serious questions need to get asked very quickly.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  80. I might as well claim credit as well by Sun · · Score: 2, Interesting

    When I worked at CheckPoint, back in 2002, I was project manager for SmartDefence. We integrated protection against the PMTU window size problem into SmartDefence, and we had protection against it ever since version 1 (that is - late 2002). You can set the minimal value a PMTU window can shrink to, with ~300 being the default minimum.

    The reason we didn't take credit for discovering this at the time was that I picked it up myself from a side note in one of the security mailing lists. I couldn't find at the time the place this was first published, and I sure as hell won't be able to locate it now, but this is not a newly discovered problem, nor is it non-public. The attention is new, but the problem was known even before.

    As I no longer work for CheckPoint, I don't know whether they'll make a media circus from this or not. I don't really care either.

    Shachar

  81. I does, from RFC1191 by anti-NAT · · Score: 1

    Hosts using PMTU Discovery MUST detect decreases in Path MTU as fast as possible. Hosts MAY detect increases in Path MTU, but because doing so requires sending datagrams larger than the current estimated PMTU, and because the likelihood is that the PMTU will not have increased, this MUST be done at infrequent intervals. An attempt to detect an increase (by sending a datagram larger than the current estimate) MUST NOT be done less than 5 minutes after a Datagram Too Big message has been received for the given destination, or less than 1 minute after a previous, successful attempted increase. We recommend setting these timers at twice their minimum values (10 minutes and 2 minutes, respectively).

    --
    The Internet's nature is peer to peer - 20050301_cs_profs.pdf
  82. Layer Violations by Detritus · · Score: 1
    ICMP is part of IP. TCP, and other protocols, run on top of IP. An IP packet is not required to have a sequence number.

    ICMP was designed during an era when network hosts were not assumed to be hostile. I wouldn't blame them for that.

    --
    Mea navis aericumbens anguillis abundat
  83. But a botnet can 'ease' things by Henk+Poley · · Score: 1

    Say you want to throttle a single IP address worldwide on the entier internet.

    2^32 addresses in ten minutes (600s): 7158278 ICMP packets per second

    I don't know how large ICMP packets are, but I do know they are relatively tiny, say 64 octets. That would mean you need 436Mo/s. Not an entierly trivial amount of bandwidth for an individual, but spread over a thousand botnet peers it should be doable.

    Factor in that an attacker would probably want to block a couple of addresses. For example microsoft.com's or Akamai's DNS servers. Another neat trick would be to tell everybody to throttle bandwidth to some of the intercontinental routers or the 13 root DNS servers.

    Hmm, I think the next Microsoft Windows worm might be 'interesting', due to the renewed attention on this flaw.

    1. Re:But a botnet can 'ease' things by seifried · · Score: 1

      This wouldn't really work against DNS, because DNS largely uses UDP which is an unreliable transport protocol that leaves errors/etc handling to the higher levels such as the application, and doesn't rely to heavily on ICMP (beyond things like host unreachable/etc.). In other words path MTU throttling doesn't work to well when you have small packets to begin with that use the UDP protocol which doesn't rely on connections like TCP does.

  84. Kernel/userland networking by rxmd · · Score: 2, Interesting
    ICMP is in the kernel because it's part of TCP/IP, which wouldn't be hard to remove from a Linux kernel.
    Haiku OS, formerly known as OpenBeOS, has an interesting BSD-derived network stack that is capable of running in as a normal userland program as well as in the kernel, and so are all the modules for various protocols etc. In userland, it's much slower, but (somewhat) more secure and way easier to debug.
    --
    As a state gets corrupt, its laws multiply; the most corrupt states have the most numerous laws. (Tacitus, Annales 3:27)
  85. Re:ICMP flaw #1 on Linux: it's in the kernel by slashflood · · Score: 1


    There is no flaw in the moderation system as you can see - your parent post is modded down to hell: 20 % insightful (no clue about ICMP), 40 % overrated and 10 % flamebait.

    It just takes a few minutes until enough moderators had the chance to see this post.

    After a while, your post might be modded as flamebait.

  86. Re:ICMP flaw #1 on Linux: it's in the kernel by AndrewStephens · · Score: 1
    Congrats you just earned yourself a foe. You need to read up on networking, and they maybe, just maybe, you might understand how stupid comparing HTTP, SMB, FTP etc to ICMP.

    Thats a pretty hash call there, dcam. Sure the parent post was uninformed (even for Slashdot!), but its not like he killed your dog or anything. Anyway, I am sure he is regretting it already, what with the pile-on of negative replies.

    --
    sheep.horse - does not contain information on sheep or horses.
  87. Obligatory Monty Python Reference.... by Ancient_Hacker · · Score: 1
    This is MY theory of vulnerability, I discovered it all by myself, yes, me, my theory, all mine.

    My theory is:

    COUGH! Ahimmm! Ahhiiiim! Cough!

    Here it is: ..... Cough! Ahimmm!

    .. okay, now we're ready... my theory, which is all mine... is..... ALL DINOSAURS... whoops, make that, all ICMP packets, in my theory, which is mine, all packets with information that I should act upon, and coming from a multitude of unknown, untrustable, unverifiable, unadministered, uncertified, uncertifiable, and unknowable sources, those packets, SHOULD BE PERHAPS NOT BE TREATED AS SUPER HOLY GOSPEL!

    That is my theory, it's all mine. Seriously folks, anybody looking at the ICMP design, if they have the slightest IQ, can see the problems with following unverifiable orders coming in from the ether. Perhaps if there was some way of telling that the ICMP packet came from a gosh-darn white-hat router, or using some common sense instead of just blindly following orders.... Not exactly an Einstein concept.... And don't patents have to be "non-obvious"?

  88. Sigh indeed, another "informative" incorrect post. by Some+Random+Username · · Score: 1

    ICMP is layer 3, but TCP and UDP are not. They are layer 4. ICMP and IGMP and ARP and IP(v4 and v6) are all on the same layer, IP and ICMP just happen to rely on each other rather closely.

    For what its worth, BSD's TCP/IP implimentation was released in april of 1982, so if you did yours before, it wasn't by much.

  89. Re:ICMP flaw #1 on Linux: it's in the kernel by setagllib · · Score: 1

    I'll try to be more useful than GP:

    ICMP is almost completely necessary in the kernel because it is essential to proper operation of the TCP/IP stack (at least, when anything short of a perfect session comes along). Putting it in the userland will not save anyone from the exploits - these are not the kind of exploits that result in code execution (unless somebody *REALLY* messes up), they're just side effects of a near-sighted design. It seemed like a great idea to use the system from-boot clock to time TCP packets, until people realised this reveals your uptime and, if the system does not conform to the 1-per-second requirement, your clock granularity.

    There is virtually nothing to gain from moving something as small (yet essential) as ICMP out of the kernel. I very much disapprove of the idea of putting a HTTP server in the kernel, and even an FTP proxy is really pushing it (Linux has both, and the BSDs laugh at this). However, there's no need to support micro-kernel designs by moving everything possible into userland. There are many theoretical reasons why this is the best thing possible, but then in practice it's not worth it.

    In short: you won't gain anything moving it into userland, but you stand to lose because of the potential for increased latency or lossage in ICMP errors, which could fly in the face of standards or simply confuse/annoy clients. The security issues are resolved by running OpenBSD or being particularly skilfull with how you use pf (last time I checked, iptables' capabilities for packet manipulation weren't up to scratch).

    --
    Sam ty sig.
  90. RFCs are never modified by JohnQPublic · · Score: 3, Interesting

    The whole idea behind the RFC system was that the documents, once published, are unchanging. Just like every standard ANSI and ISO publish. There can be and often are documents that revise the protocol, but that's the nature of the standards game and even the ISO does it. Despite common references to ISO standards by number, their proper names are ISO nnnnn:yyyy. For example, SGML is ISO 8879:1986, not ISO 8879, and it has been updated three times since it was issued, by ISO 8879:1986/Cor 1:1996, ISO 8879:1986/Cor 2:1999 and ISO 8879:1986/Amd 1:1988.

    And "back in the day", if you didn't implement part of an RFC for a protocol you implemented, you got lambasted for it. Search around the net for the early 1908s discussions of the TCP Bakeoffs if you want to see how serious we were about it.

    1. Re:RFCs are never modified by Tzarius · · Score: 1

      Search around the net for the early 1908s discussions of the TCP Bakeoffs if you want to see how serious we were about it.

      Hah! Back in my day we didn't have fancy schmancy ovens! We had to roast our TCP over the latest forest fire to get our data through!

    2. Re:RFCs are never modified by JohnQPublic · · Score: 1

      Nice catch on the typo - I obviously meant 1980s, not 1908s :-)

  91. Interesting by springbox · · Score: 1

    Read this with a British accent: "Additional research into the potential problems of fragmentation can be found in the 1987 paper "Fragmentation considered harmful" and the more recent "Fragmentation considered very harmful" from 2004."

    Does that remind anyone else of a sentence that Douglas Adams would write? They still can't replace my favorite, though - Go To Statement Considered Harmful

    1. Re:Interesting by chawly · · Score: 1

      I quite see what you mean, old chap. Now try reading it with a French accent and you'll see ...

      --
      How many beans make five, anyhow ? ... Charles Walmsley
  92. Re:ICMP flaw #1 on Linux: it's in the kernel by TheRaven64 · · Score: 1
    Every packet? In a well designed microkernel[1] packets would be queued in a buffer and a context switch would only ever happen every few packets, so the system call load could be less than the overhead of calling read. Since microkernels are better designed for asynchronous operation, a process waiting for data would just sleep until it received a message containing data.

    Don't be deceived by benchmarks of POSIX apps on microkernels. POSIX, by its design (i.e. synchronous system calls), favours monolithic kernels. Take a look at a system like QNX. It's slightly slower than a monolithic kernel running POSIX apps, but it really screams when you use its native, asynchronous, API. Using the native API, system calls can be queued, so you only need a single switch into kernel space for multiple system calls.

    [1] Note: Mach is not a well designed microkernel. Mach is a proof of concept microkernel.

    --
    I am TheRaven on Soylent News
  93. Only the job offer. by nnappe · · Score: 1

    The rest of the shit surely came from Cisco US. There's no software patents in Argentina, so probably the patent issue was not a problem of the subsidiary.
    He even states that the 'terrorist' accusation was made by one manager of PSIRT.
    And even with the job offer, he didnt say if the other people who had the problem where from Argentina or not.
    Disclaimer: Im argentine ;-)

  94. Brute forcing... by schon · · Score: 2, Interesting

    Again: you have to guess the source port, too. There are very few tcp protocols with predictable source ports nowadays. So it's not 2^32/windowsize but probably (2^16-1024)*2^32/windowsize. Have fun brute forcing that.

    Not only that, but unless you *are* MITM, you'll never actually know that you've succeeded. So not only do you have to bruteforce it (which will take a ton of bandwidth) you can't know when to stop - which means that you have to run the entire gamut in order to be sure you're successful.

    And if the connection restarts (I believe the timeouts listed were 10 minutes), you've gained absolutely nothing.

    If you have the bandwidth to brute force this, you might as well be doing a DDoS.

    This issue has to be considered, but as D. Adams said: Don't panic!

    Very succintly put.

  95. Blind attacks by nnappe · · Score: 1

    Correct me if I'm wrong, but the attacks you linked to were man-in-the-middle, but the attacks of TFA were blind, no need to sniff the connection.

    1. Re:Blind attacks by matman · · Score: 3, Informative

      First, while source quench is pretty blind, it isn't much of an issue - it's ignored for TCP and I'm not sure that it's used for UDP either (if it is, few important services use UDP over the internet).

      Path MTU spoofing is really just a variation of the ICMP Unreach spoof attack (same ICMP type). Unreach packets need to "quote" the header of the packet that couldn't be delivered - including source (random 1024-65535) and target port numbers - this allows the sending host to know what connection is being affected. In order for the attacked host to accept a spoofed unreach, the unreach needs to quote the right source IP/port and target IP/port. Most of the time, the source IP, and target IP/port are known but the source port could be one in a few thousand. It used to be that, on modem connections, sending thousands of unreach packets took a few minutes, but now it can be done in seconds or less. Now you can even guess the source IP (drop all connections from a network to a server). Thus, now, the attack is essentially (if not technically) blind since you don't have to find the right combo - you just send all combos.

    2. Re:Blind attacks by matman · · Score: 1

      I should clarify that when I said, "not much of an issue", I meant that it's of less concern than the unreach problem. I acknowledge that it is a vulnerability and should be mitigated if cost effective.

  96. Re:ICMP flaw #1 on Linux: it's in the kernel by tmasssey · · Score: 1
    Any type of buffering and queueing adds latency. So you have a choice: high performance and high latency, or low latency and less performance. A monolithic kernel makes the latency penalty much lower than a microkernel. The asyncronous API that heavily microkernel OS's like QNX provide helps you to lessen the effect of that increased latency, but it still exists. Total throughput may be similar (the total number of HTTP requests serviced per second, for example), but the beginning-to-end time for a specific task (servicing a singe HTTP transaction) will be longer. How important that is depends on what you're doing! :)

    Now, having said that, I will say that I prefer (in theory) the idea of a microkernel (or even a nanokernel like Adeos). Especially a microkernel with multiple OS personalities. It would be great to run multiple copies of Windows, Linux and OS X all on the same box. But right now, that's a pipe dream.

    Your point makes my point even stronger. The OP wanted to rip out a very low level piece of the network stack into userland. My point was that doing so was pretty much contrary to the design goals of the Linux kernel, and that, if done right, you'd end up with a microkernel architecture. The fact that a properly done microkernel (like QNX) is so dramatically different than a monolithic kernel like Linux just emphasizes what a crazy idea the OP was.

    Can we agree on that? :)

  97. Re:ICMP flaw #1 on Linux: it's in the kernel by dcam · · Score: 1

    I don't think it is terribly harsh. Frankly, if you are going to write comments about something you know next to nothing about then, I'm not sure I want to read your comments.

    I've read two classics on TCP/IP (TCP/IP Illustrated volume 2 - Richard W Stevens and Internetworking with TCP/IP by Douglas E Cromer, I own Comer) and written some sockets code, yet I do not consider myself competant to comment in such an authorative way.

    What is more, the comment that was made was so clearly wrong, and demonstrated a complete lack of understanding of the protocols. 5 mintues of googling on the ICMP protocol would have answered the question.

    That said, by making someone a foe I effectively give them a -1 modifier. So it is merely a means that I am less likely to see their comments. It is not a statement that I have made them an implacible enemy whom I will hunt down.

    --
    meh
  98. Userland only networking? Please mod parent DOWN by Anonymous Coward · · Score: 0

    I think a better design would be to have the entire networking subsystem in userland.

    How about moving something to userland that would cause massive context switching on a server? A wait, you already suggested it. Are you still sane?

    Incidentally, my current project is writing a tun/tap-based IP stack entirely in C#. It's mostly for fun, but when it's finished it'll be a complete userland networking subsystem.

    Incidentally, my current project is writing a event based peer to peer system. I thought about moving more networking code towards kernel and avoid extensive context switching and too many active threads. A special networking code in the kernel could to do some simple prechecking before waking up userland threads waiting for work. In theory, don't know if a event based networking extension would be liked by the maintainer of the Linux networking kernel code.

    However, I really appreciate people who code a TCP/IP stack just for fun! Read Stephen's (if you have not done so far)... I could swear he was on drugs while writing some chapters. :-)

    /Mark