Slashdot Mirror


Analysis of the Witty Worm

DavidMoore writes "The Cooperative Association for Internet Data Analysis (CAIDA) and the University of California, San Diego Computer Science Department have an analysis of the recent Witty worm. Among other things, Witty was started in an organized manner with an order of magnitude more ground-zero hosts than any previous Internet worm."

28 of 415 comments (clear)

  1. Save yourself some reading by Anonymous Coward · · Score: 5, Informative

    Conclusion:

    The Witty worm incorporates a number of dangerous characteristics. It is the first widely spreading Internet worm to actively damage infected machines. It was started from a large set of machines simultaneously, indicating the use of a hit list or a large number of compromised machines. Witty demonstrated that any minimally deployed piece of software with a remotely exploitable bug can be a vector for wide-scale compromise of host machines without any action on the part of a victim. The practical implications of this are staggering; with minimal skill, a malevolent individual could break into thousands of machines and use them for almost any purpose with little evidence of the perpetrator left on most of the compromised hosts.

    While many of these Witty features are novel in a high-profile worm, the same virulence combined with greater potential for host damage has been a feature of bot networks (botnets) for years. Any vulnerability or backdoor that can be exploited by a worm can also be exploited by a vastly stealthier botnet. While all of the worms seen thus far have carried a single payload, bot functionality can be easily changed over time. Thus while worms are a serious threat to Internet users, the capabilities and stealth of botnets make them a more sinister menace. The line separating worms from bot software is already blurry; over time we can expect to see increasing stealth and flexibility in Internet worms.

    Witty was the first widespread Internet worm to attack a security product. While technically the use of a buffer overflow exploit is commonplace, the fact that all victims were compromised via their firewall software the day after a vulnerability in that software was publicized indicates that the security model in which end-users apply patches to plug security holes is not viable.

    It is both impractical and unwise to expect every individual with a computer connected to the Internet to be a security expert. Yet the current mechanism for dealing with security holes expects an end user to constantly monitor security alert websites to learn about security flaws and then to immediately download and install patches. The installation of patches is often difficult, involving a series of complex steps that must be applied in precise order.

    The patch model for Internet security has failed spectacularly. To remedy this, there have been a number of suggestions for ways to try to shoehorn end users into becoming security experts, including making them financially liable for the consequences of their computers being hijacked by malware or miscreants. Notwithstanding the fundamental inequities involved in encouraging people sign on to the Internet with a single click, and then requiring them to fix flaws in software marketed to them as secure with technical skills they do not possess, many users do choose to protect themselves at their own expense by purchasing antivirus and firewall software. Making this choice is the gold-standard for end user behavior -- they recognize both that security is important and that they do not possess the skills necessary to effect it themselves. When users participating in the best security practice that can be reasonably expected get infected with a virulent and damaging worm, we need to reconsider the notion that end user behavior can solve or even effectively mitigate the malicious software problem and turn our attention toward both preventing software vulnerabilities in the first place and developing large-scale, robust and reliable infrastructure that can mitigate current security problems without relying on end user intervention.

    1. Re:Save yourself some reading by Ralph+JH+Nader · · Score: 5, Informative

      The parent is incorrect. It is not a Windows worm and the worm is not the fault of Microsoft. The worm exploits a vulnerability in BlackIce, a "personal firewall" that runs on Windows.

      While the vulnerability will not show up on non-Windows machines, it is not because it is a Windows vulnerability.

      The parent is very misleading at best.

    2. Re:Save yourself some reading by Ralph+JH+Nader · · Score: 3, Informative

      From here:

      The Witty worm exploits a stack-based overflow in ICQ response parsing in the Protocol Analysis Module (PAM) of ISS products.

      That has nothing to do with the internal architecture of Windows. That's a bug in ZoneAlarm. There is no reason to blame Windows at all for a bug in a software product written to run on Windows.

    3. Re:Save yourself some reading by SlightOverdose · · Score: 3, Informative

      Neither does Linux. At the moment if you need protection your choices are to use a VM (Java,.NET) or a high level scripting language.

    4. Re:Save yourself some reading by thogard · · Score: 3, Informative

      For a small payload, you need to know the address of every function the code needs. If you take something that is very standard such as a apche and then look at how common the binary is. If you do an md5 of solitare on windows systems, your only going to find about 5 to 10 different versions for all versions of windows. Apache on the other hand is often built from source so there are thousands of different variations of the same version.

      On systems I need to secure, I will often throw in a few extra variables in main (which shifts the entire heap), or sometimes I'll take and older version and just apply the patches I need from the current version. There are other tricks as well such as turn on debugging or profileing on in just one of the source modules. With open source, its trivial to make a unique binary so why not do it?

    5. Re:Save yourself some reading by Malc · · Score: 2, Informative

      That still assumes that the interpreter, VM, JIT, whatever doesn't have a vulnerability that can be exploited. It also doesn't protect you against attacks that use SQL injection, cross-scripting, exploit the developers use of the wrong (i.e. too high) security permissions, etc. You;re right in that the approach you recommend will probably lower your risk, but it won't remove it altogether.

  2. More information on the Witty Worm by Ralph+JH+Nader · · Score: 3, Informative

    You can find more information here.

    1. Re:More information on the Witty Worm by inode_buddha · · Score: 4, Informative
      Better info here.

      Before it gets slashdotted even.

      --
      C|N>K
  3. Re: Windows Security Model Needs Fixing! by seaswahoo · · Score: 5, Informative

    In contrast, the Witty worm infected a population of hosts that were proactive about security -- they were running firewall software.

    This makes me feel a bit safer, since we used to run Windows-based boxen directly on the Internet but now they all hide behind a Linksys NAT Router and firewall.

    From what I've learned, the general rule is NEVER to put a Windows machine directly on an unsecure network. Unfortunately, the machine I'm typing on here at the University of Virginia is directly connected and yes, it runs Windows. I turned on the Internet Connection Firewall...but this kind of worm vulnerability makes me nervous. Today, someone attacks the eEye security software; tomorrow, someone takes out Microsoft's ICF.

    Similarly, end users may also be unaware that perceived slowness of their computer or Internet connection is caused by a worm, and they may reboot their computers in the hope that that will fix the problem.

    I find this problem with spyware and adware too. I recently cleaned out the computer of a family friend that was very slow and would no longer connect to the Internet. Removed a huge gob of spyware with Ad-Aware and Bazooka, and BAM! we were back online.

    Goes to show you. I'm thinking that Microsoft's security model in Windows may need to be revised, considering in XP Home at least, all users run as Administrator (root) and system services have way too many privileges.

    Makes me glad I replaced my aging NT file server with Linux/Samba.

  4. Re:ground zero hosts? by 2MuchC0ffeeMan · · Score: 3, Informative

    i believe it's the first host to be infected, the 'master server', but it might just be that the master server just had server 'baby' master servers.

    --
    Runnin' On Empty .... I'm Still Alive
  5. Re:ground zero hosts? by centralizati0n · · Score: 5, Informative

    A ground zero host/vector is a host that wasn't infected by another machine, but by an individual who wished the machine to infect other machines. A ground zero host does not necessarily need to have the same exact code as the code it sends out, for example, in this case, it would be unproductive for the ground zero host to have the original code since it erodes the filesystem of the host.

  6. Re:vulnerability to worm time by InfiniteWisdom · · Score: 3, Informative

    I guess the writer had written the payload in advance and waited for an appropriated vulnerability to show up to use as a vectir. Generating exploits isn't rocket-science... in fact there are automated tools out there that will generate exploits for common holes like buffer/stack overflows.

    There is also the chance that the author discovered the bug either himself or through "black hat" groups before the advisory was put out.

  7. Re:Interesting conclusion by gordyf · · Score: 3, Informative

    That was not their conclusion. If you continued the quote, you'd see that they said much the same thing as you.

    When users participating in the best security practice that can be reasonably expected get infected with a virulent and damaging worm, we need to reconsider the notion that end user behavior can solve or even effectively mitigate the malicious software problem and turn our attention toward both preventing software vulnerabilities in the first place and developing large-scale, robust and reliable infrastructure that can mitigate current security problems without relying on end user intervention.

  8. Re:What's It going To Take by ryanjensen · · Score: 2, Informative

    ZDNet UK had a preview of Windows XP SP2 recently (see link) that included discussion of the pack's implementation of software-based overflow protection. It also mentions that 64-bit processors include this protection in hardware (NX or "no eXecute"). So, there is a little progress being made.

  9. Re:ground zero hosts? by evilad · · Score: 2, Informative

    The proper term in epidemiology would probably be "index cases."

  10. You Underestimate 17-year-olds by mdarksbane · · Score: 2, Informative

    Read Gibson's report of the DDOS on his website, and you'll have a completely different view of the possible reach of a 17-year-old in our current times of insecure computing.

    http://www.grc.com/dos/grcdos.htm

    In short, anyone with basic scripting knowledge and some time can create a reasonably-sized network (of a few hundred system, at least) of remote-controlled "bots" or zombies, generally home users on cable modems. Quickly-propagating worms are more easily come by. It doesn't take much to add a "delete IMPORTANTFILE.SYS" to one of those.

    It takes even less effort to then combine the two.

    While this action may appear to require large-scale planning and intent, it can accomplished fairly easily by one kid with issues and a bit of time to work on it. Not to say that it *isn't* an easy way for cyber-terrorists to strike (if a kid can do it well, a trained terrorist could probably add something more interesting), but it is definitely within the reach of an oddball kid.

  11. Re:Can IPv6 help? by dunedan · · Score: 2, Informative

    That will depend on how ipv6 addresses are allocate. IPv6 pushes address space from 32 bits(~4 billion) to 128 bits (~4billion^4) if everyone spread out over the whole range it could slow down the spread of viruses since each random address would have a much lower chance of hitting a live machine. If however we all cluster in the same part of that range it won't help at all.

  12. There is more you CAN do for Linux by gotr00t · · Score: 2, Informative
    Though you're right in the respect that a stock disto of Linux or *BSD is just about as secure as Windows (perhaps a bit more), there is simply more you CAN do to secure Linux, versus Windows, in which almost all security has to be installed seperately.

    You can massively limit the damage done by a worm in Linux simply by running all processes that leave a port open in a chroot jail, or by doing so as a lesser privledeged user. This is one of the many simple solutions avaliable, while in Windows, its not so easy.

  13. That is by design by isaac_akira · · Score: 4, Informative

    From the article text:

    "The worm payload of 637 bytes is padded with data from system memory to fill this random size..."

    So you are seeing some random grabage that was in memory on the victim's machine while the worm was being sent out. That helps to avoid detection as it is harder to profile the worm.

  14. Re:Interesting conclusion by Anonymous Coward · · Score: 2, Informative


    I believe the US government gave M$ a "pass" on security and allowed it to sell software to, for example, the Navy. (I am too lazy to look up the details.)

    Cringeley... (the real one, not the fake ghost-written InfoWorld column version) discussed this very subject in his two latest columns...

    1

    2

  15. Re:Net Telescope by iworm · · Score: 2, Informative

    No. There are exactly 126 Class A addresses. They probably DO have a Class A, if their claim is correct, but there are not 256 of them, just 126...

  16. Re:Call me crazy, but... by Walkiry · · Score: 2, Informative

    More destructive worms = less apathetic/ignorant users out there

    I'm not going to bother replying to your "it's the victim's fault" tripe, but I'll just point out that the problem with this particular worm is that it's destroying computers from users that are NOT apathetic, it's targeted at people who have bothered to get a firewall up and running, using a exploit that was detected just a day before the spread.

    Of course, you'd know that if you had bothered to RTFA. Wishful thinking, I know...

    --
    ---- Take the Space Quiz!
  17. Re:The cost of C/C++ and no bounds checking by Minna+Kirai · · Score: 3, Informative

    But native compiled Java, with Java's bounds checks, would be far safer than C++.

    Or how about native compiled C++, with bounds checks?

    There's nothing about C++ that means you can't have bounds checking! The specification allows for undefined behavior when an array is accessed incorrectly. The compiler author can decide for himself what that undefined response could be. It might be an invalid access (like most current compilers do), but there's no reason it couldn't hit a boundary-check and abort the program.

    Assorted add-in libraries to C++ compilers do this. They're not very popular, of course. But if programmers cared about safe insurance against memory overruns, they could achieve it without switching languages.

  18. Re:Anyone else see this? by DarkHelmet · · Score: 2, Informative
    ...as I downloaded patches off of the net on a virgin XP install

    Windows Update is nice for keeping up to date with all the patches for windows as they are released. But using it to patch a series of machines doing fresh installs is silly.

    At the height of the Blaster worm, I had to reinstall Windows for a friend of mine. I connected to the net in order to update Window XP, and her machine was reinfected within five minutes of connecting: before the machine could be patched.

    I learned my lesson. Here is a guide on how to slipstream an installation of Windows XP and SP1.

    Although I wouldn't recommend it, you can also slipstream a copy of Windows SP2 Beta 1. When SP2 is finalized, I fully intend to create a slipstream version of that for the next time I have to reinstall windows somewhere.

    See, this is why service packs are a Good Thing (TM).

    --
    /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
  19. Re:Anyone else see this? by kayen_telva · · Score: 2, Informative

    XP has a built in firewall you could have enabled BEFORE you connected the ethernet cable

    more than enough protection during your race to download patches.
    frankly, enough protection for concientious users ALL the time

  20. Security defined...and Microsoft (may) succeed by Faies · · Score: 3, Informative
    I just recently visited the Microsoft Mobile Developers Conference held this week. Bill Gates himself gave the keynote on Wednesday, the highlight of which was the release of the new Speech Server. A transcript of his presentation is available at the following location:
    http://www.microsoft.com/billgates/speeches/2004/0 3-24-VSLive.asp

    The parent comment caught my eye in particular because security was brought up as an issue when discussing the future roadmap for Visual Studio. Gates said the following:
    I mentioned quality and security is a very particular focus here, certainly for Microsoft that's been our top priority, even more than the new features we're doing, the development of "Longhorn," all the things about isolating networks, so that malicious code can't spread and do bad things, that's been a huge effort. And the Visual Studio group has participated in that. In fact, as part of our security effort we've invented a lot of tools that look at code and examine it, statically, for certain types of flaws. So we're using that ourselves, it's called PREfast, and we decided wow, this has been so effective at finding flaws we actually need to get it out for developers. So this PREfast capability will be built into the Visual Studio product. In fact, it's a very sensible thing, if there's development patterns that might be in error, you can put in recognition rules in those, so extend it into your application domain to find an even broader set that we preprogram it to find.

    We have security capabilities, like, if you're developing an application that you don't want to force people to be in admin mode, you can ask the development tool to run in a way that it will error-out anything that doesn't work in normal user mode. And there's big push for Windows applications to make sure they don't require administrative mode. There's the new managed APIs, there's new compiler switches to generate code that is immune from certain types of attacks. So I would say a substantial number of features related very specifically to the quality and security initiatives.
    So, in a nutshell, Microsoft's next release of Visual Studio, 2005, will have new features that try to detect common flaws in development patterns and warn the programmer ahead of time.

    Applications can also make a distinction between administration/user modes, and if this is what I think it is + Microsoft implements this correctly, then Windows security could move up a step closer to that of Unix-based permissions systems with a rough emulation of the relation between root/user modes.

    And most importantly, with compiler options to automatically write in extra security checks, developers may not have to ever even know that a particular bug exists and still be a-ok.

    Will this warn the developer of every bug? Probably, and almost 100% certainly not. For that matter, it's an extremely bad thing if you designed your code poorly and don't know that it is so- programmers should not be initially taught using tools like this.

    But, as the parent mentions, this will lead to somewhat-more-secure code, and help in the long run.

    In fact, I don't see anything bad about writing developer tools such that the environment can sensibly pop up a dialog asking "Are you sure you don't want to check input xyz?". At the very least, something like this is needed in both Microsoft and OSS development platforms.
  21. Re:A whole lot of point missing going on... by HolyCoitus · · Score: 3, Informative

    He isn't saying this specific vulnerability was the one that could have done it. He's saying that if a vulnerabilty did come along that could enable someone to do it, that he would not have patched until it was too late.

    I wouldn't have either possibly, the point being you have to be sure that people can't get to your boxes like that. Either by patching or having layers of abstractions to stop it from happening. Most likely both.

    It's more of a hypothetical at this point, but saying "it will never happen to me/us!" is bad policy.

    --
    That's scary.
  22. Re:...and this is why... by Anonymous Coward · · Score: 1, Informative
    Then the worst that can happen in the case of a firewall compromise is that the firewall will stop performing its functions


    No, that's not the worst case. The attacker would own the firewall. In a second step he could then attack the now unprotected system. If the firewall is hacked, the defender has lost - it's that sipmple.

    But it might be a could idea, to put the IDS outside of the firewall.