Xerparc (the official Virus Encyclopedia name for the Xerox PARC Worms) is a family of network worms created by Xerox researchers John F. Schoch and Jon A. Hupp that were intended for various beneficial purposes.
The worm searches for new machines by checking its own local host number and sending its packet to the next highest host number and keeps going up one until it finds an available host. It sends a packet to the machines that it finds to see if they are being used. When it finds an idle machine, it boots it and sends a copy of itself to the new machine. At no point does the worm ever save itself to any disk, staying completely in memory.
The worms on different machines communicate with each other. Each one contains a list of all the other worms. When the worm is finished with the machine, it invokes the standard network boot procedure, which will reload a memory diagnostic program that is normally run on an Alto when it is idle.
All variants presumably had the same spreading techniques and took control of the computer in the same way. The only differences between them are the purposes for which they were created. These are:
- Existential (the first worm, it does nothing but spread)
- Alarm Clock
- Ethernet Diagnostic
As the Xerparc worms were authorised experiments conducted at Xerox's Palo Alto Reasearch Center, what little damage they caused was confined to that location. The facility contained over 100 Alto computers, all of which were presumably infected with a worm at one point.
In an early experiment with a worm, a worm had been intentionally left running overnight to exercise its control mechanisms and was only supposed to use a small number of computers. Upon returning the next day, the researchers found that the worm had crashed dozens of computers. Some machines were located in locked rooms that the researchers had no access to, still running worms looking for new systems. This was remedied with a packet injected into the network whose sole purpose was to tell the worms to stop running.
This is the first program described as a "worm". The creators authored a paper on their experiments with the worm programs, which includes a reference to the Tapeworm of John Brunner's "Shockwave Rider".
John F. Shoch, Jon A. Hupp. The "Worm" Programs-Early Experience with a Distributed Computation. 1982