February 21, 2008
Here We Go Again: The "Good Worm" Debate
A new paper by Milan Vojnovic, Varun Gupta, Thomas Karagiannis and Christos Gkantsidis from Microsoft Research examining the best ways of propagating information across a network has resurrected the oft-discredited idea of "good" viruses spreading peace, harmony and security patches across computer networks.
I feel a bit sorry for the researchers, because in the manner of good scientists everywhere, they tried to be objective, and remove the ethical considerations of the methods they were studying, and focus simply on the technical factors involved in network propagation. The idea is to get the knowledge first, then worry about the ethical considerations. Ethical judgements without knowledge of the facts are usually bad judgements. But of course, this is a touchy subject, and anyone even hinting that there might be benefit to delivering information in what the researchers term an "epidemic style" is likely to get an earful of criticism.
Indeed, the very birth of the worm itself seems a cautionary tale. The first worm was created by John F Shock and Jon A Hupp of Xerox PARC, and its initial intent was good. Depending on which sources you read, it was either intended to help implement some sort of CPU load sharing, or to install tools to measure network performance. But a bug in the program caused it to spread mayhem instead, crashing each machine it touched as it travelled around the network.
So why do people keep talking about "good" worms for delivering updates and patches? Two reasons that I can see: It saves load on a central server, and it makes much more efficient use of network bandwidth to distribute the code to all users. This becomes especially attractive for delivering security patches when you consider that traditional means of patching are necessarily much slower than the speed at which the virus propagates. There's never any hope of getting ahead of the malicious code to stop its spread. All you can do is heal infected machines after the fact, slowly hardening the network as you go.
But the two main arguments against "good" worms are pretty compelling: First, they're too risky, and second, they're too sneaky. They're too risky because a very tiny bug can turn a beneficial worm into an unintentionally malicious worm, even if all that buggy worm does is bog down a machine, or eat up endless network resources. Those flaws alone can bring down an entire network. And they're too sneaky because they have to do what they do without permission from the user if they are to propagate with any sort of efficiency. It isn't just that we feel our sense of control violated by this—it's bad design. A system that changes itself without our permission or knowledge is, for all intents and purposes, an unstable system that we can't count on.
Posted by Kevin Carlson at 02:56 PM Permalink
|