In the wake of the Melissa virus, an increasing number of warnings are being made about the dark side of our technological revolution. Because of the widespread use of the Internet we are becoming uniquely vulnerable to these mysterious threats.
Nevertheless, computer viruses are pretty much as old as the computing networks that make them communicable and can teach us valuable lessons as well as threaten us with calamity.
Returning to the birthplace of the field -- Xerox's Palo Alto Research Center, the legendary Xerox PARC gave us not only the first personal computer, the first graphical user interface and the first laser printer, but the first virus. John Shoch, inventor of this new form of programming, created the dynamic, roaming program known as the "worm" that was designed not to destroy or damage computer systems but enhance them. Nevertheless, in 1978, Shoch's worm got loose in PARC's internal network, setting him and his colleagues on the first desperate virus chase.
Shoch was a PARC engineer working on his Stanford doctorate when he created the first worm. The program took its name from the "tapeworm," a program that appeared in John Brunner's "The Shockwave Rider," a popular science-fiction novel of the time, in which it is used by the hero to destroy a sinister computer network.
The PARC worm's purpose was at first to save Shoch hours of tedious scut work. Shoch's doctoral research was an analysis of the traffic patterns of PARC's Ethernet that linked 200 of its "Altos," personal computers invented in 1973. His idea was to arrange for about 100 of the machines to spew bits into the Ethernet simultaneously, then measure the ensuing electronic gridlock. Rather than loading the same program individually into every machine, he devised the worm to do the loading automatically by seeking out idle Altos computers and transmitting the test program by wire to those that signaled they were available.
The test proved successful and soon he turned his thoughts from communicating directly with each machine to instructing them to talk among themselves. What if, rather than loading the same program onto 100 machines from one central point, he gave each machine the ability to seek out others, and pass the program on from one to another? Shoch's brainstorm hinted at a method of compounding processor power that would one day find wide application in the field of supercomputers.
"In the middle of the night, such a program could mobilize hundreds of machines in one building," he wrote later. Before morning, as users arrived to reclaim their machines, the worm would retreat. After hibernating in a machine or two during the day, it would reemerge the next evening -- an image that led one of Shoch's colleagues to liken it less to a worm than to a vampire.
Shoch eventually was able to invest his worm with the ability to seek out idle Altos, boot up a host machine through the network and replicate by sending copies of itself from machine to machine, remaining in communication with its dispersed offspring.
Still, he was also well aware that a program capable of commandeering idle computers in their owners' absence would have to be stringently controlled. It was, for example, forbidden to access any Alto's disk drive -- a necessary precaution lest it inadvertently overwrite someone's work, which he knew would be viewed as "a profoundly antisocial act."
One night, however, something unexpectedly went wrong. Shoch and two colleagues had set a small worm loose in the PARC Ethernet to test a control function. Confident that their program was suitably innocuous, they left it running and went home.
At some point -- they never figured out exactly when and why -- the program became corrupted so badly it crashed its host computer. Sensing it had lost a segment, the control worm sent out a tendril to another idle Alto. That host crashed, and the next, and the next. For hours, the silent carnage spread through the building until scores of machines were disabled.
When morning came, dozens of PARC researchers arrived for work to discover their machines had crashed. At first this did not cause any alarm -- in those early years Altos frequently crashed for no reason. Soon, however, it became obvious that this was no random occurrence. For one thing, whenever anyone stepped away from an Alto for even a few minutes, it crashed again, seized by the still-insatiable worm.
Summoned to the lab, Shoch and his colleagues began pursuing the program through the network like exterminators chasing rats through a sewer. Eventually they had no choice but to eradicate it with a sort of software bomb -- a self-destruct command Shoch had preloaded as insurance against some unpredictable disaster.
To his relief, all worm activity ceased. That was the good news. The bad news was that the entire PARC Ethernet had been figuratively reduced to a smoking ruin. Scattered around the building were 100 dead Altos. The lesson to computer and network designers today is that rather than treating the worm as a menace, PARC learned from its experience and continued to develop the concept of a roving, self-executing program. The principle survives today -- "spiders," "bots" and all sorts of other programs designed to rove the Internet, collecting information on behalf of their users.