This article is about coding of a worm.
A computer worm is a standalonemalware computer program that replicates itself in order to spread to other computers.
Often, it uses acomputer network to spread itself, relying on security failures on the target computer to access it.
Worms almost always cause at least some harm to the network, even if only by consuming bandwidth, whereas viruses almost always corrupt or modify files on a targeted computer.
Many worms that have been created are designed only to spread, and do not attempt to change the systems they pass through.
However, as the Morris worm and Mydoom showed, even these “payload-free” worms can cause major disruption by increasing network traffic and other unintended effects.
worm source code floppy diskette at the Computer History Museum
The actual term “worm” was first used in John Brunner’s 1975 novel, The Shockwave Rider.
In that novel, Nichlas Haflinger designs and sets off a data-gathering worm in an act of revenge against the powerful men who run a national electronic information web that induces mass conformity.
“You have the biggest-ever worm loose in the net, and it automatically sabotages any attempt to monitor it… There’s never been a worm with that tough a head or that long a tail!”
On November 2, 1988, Robert Tappan Morris, a Cornell University computer science graduate student, unleashed what became known as the Morris worm, disrupting a large number of computers then on the Internet, guessed at the time to be one tenth of all those connected.
During the Morris appeal process, the U.S. Court of Appeals estimated the cost of removing the virus from each installation at between $200 and $53,000; this work prompted the formation of the CERT Coordination Center and Phage mailing list.
Morris himself became the first person tried and convicted under the 1986Computer Fraud and Abuse Act.
Any code designed to do more than spread the worm is typically referred to as the “payload”.
Typical malicious payloads might delete files on a host system (e.g., the ExploreZip worm), encrypt files in a ransomware attack, orexfiltrate data such as confidential documents or passwords.
Probably the most common payload for worms is to install a backdoor.
This allows the computer to be remotely controlled by the worm author as a “zombie”.
Networks of such machines are often referred to as botnets and are very commonly used for a range of malicious purposes, including sendingspam or performing DoSattacks.
Worms spread by exploiting vulnerabilities in operating systems.
Vendors with security problems supply regular security updates (see “Patch Tuesday”), and if these are installed to a machine then the majority of worms are unable to spread to it.
If a vulnerability is disclosed before the security patch released by the vendor, a zero-day attack is possible.
Users need to be wary of opening unexpected email,and should not run attached files or programs, or visit web sites that are linked to such emails.
However, as with the ILOVEYOU worm, and with the increased growth and efficiency of phishing attacks, it remains possible to trick the end-user into running malicious code.
Anti-virus and anti-spyware software are helpful, but must be kept up-to-date with new pattern files at least every few days.
The use of a firewall is also recommended.
In the April–June 2008 issue of IEEETransactions on Dependable and Secure Computing, computer scientists described a new and potentially effective way to combat internet worms.
The researchers discovered how to contain worms that scanned the Internet randomly, looking for vulnerable hosts to infect.
They found that the key was to use software to monitor the number of scans that machines on a network send out.
When a machine started to send out too many scans, it was a sign that it has been infected, which allowed administrators to take it off line and check it for malware.
In addition, machine learning techniques can be used to detect new worms, by analyzing the behavior of the suspected computer.
Users can minimize the threat posed by worms by keeping their computers’ operating system and other software up to date, avoiding opening unrecognized or unexpected emails and runningfirewall and antivirus software.
Mitigation techniques include:
- ACLs in routers and switches
- TCP Wrapper/ACL enabled network service daemons
Worms with good intent
Beginning with the very first research into worms at Xerox PARC, there have been attempts to create useful worms.
Those worms allowed testing by John Shoch and Jon Hupp of the Ethernetprinciples on their network of Xerox Alto computers.
The Nachi family of worms tried to download and install patches from Microsoft’s website to fix vulnerabilities in the host system—by exploiting those same vulnerabilities.
In practice, although this may have made these systems more secure, it generated considerable network traffic, rebooted the machine in the course of patching it, and did its work without the consent of the computer’s owner or user.
Regardless of their payload or their writers’ intentions, most security experts regard all worms as malware.
Several worms, like XSS worms, have been written to research how worms spread.
For example, the effects of changes in social activity or user behavior.
One study proposed what seems to be the first computer worm that operates on the second layer of the OSI model (Data link Layer), it utilizes topology information such as Content-addressable memory (CAM) tables and Spanning Tree information stored in switches to propagate and probe for vulnerable nodes until the enterprise network is covered.