Computer virus
A computer virus
Computer viruses generally require a host program.[5] The virus writes its own code into the host program. When the program runs, the written virus program is executed first, causing infection and damage. By contrast, a computer worm does not need a host program, as it is an independent program or code chunk. Therefore, it is not restricted by the host program, but can run independently and actively carry out attacks.[6][7]
Virus writers use
As of 2013, computer viruses caused billions of dollars' worth of economic damage each year.[10] In response, an industry of antivirus software has cropped up, selling or freely distributing virus protection to users of various operating systems.[11]
History
The first academic work on the theory of self-replicating computer programs was done in 1949 by
The
In 1982, a program called "
In 1984, Fred Cohen from the University of Southern California wrote his paper "Computer Viruses – Theory and Experiments".[22] It was the first paper to explicitly call a self-reproducing program a "virus", a term introduced by Cohen's mentor Leonard Adleman. In 1987, Fred Cohen published a demonstration that there is no algorithm that can perfectly detect all possible viruses.[23] Fred Cohen's theoretical compression virus[24] was an example of a virus which was not malicious software (malware), but was putatively benevolent (well-intentioned). However, antivirus professionals do not accept the concept of "benevolent viruses", as any desired function can be implemented without involving a virus (automatic compression, for instance, is available under Windows at the choice of the user). Any virus will by definition make unauthorised changes to a computer, which is undesirable even if no damage is done or intended. The first page of Dr Solomon's Virus Encyclopaedia explains the undesirability of viruses, even those that do nothing but reproduce.[25][26]
An article that describes "useful virus functionalities" was published by J. B. Gunn under the title "Use of virus functions to provide a virtual APL interpreter under user control" in 1984.[27] The first IBM PC compatible virus in the "wild" was a boot sector virus dubbed (c)Brain,[28] created in 1986 and was released in 1987 by Amjad Farooq Alvi and Basit Farooq Alvi in Lahore, Pakistan, reportedly to deter unauthorized copying of the software they had written.[29] The first virus to specifically target Microsoft Windows, WinVir was discovered in April 1992, two years after the release of Windows 3.0.[30] The virus did not contain any Windows API calls, instead relying on DOS interrupts. A few years later, in February 1996, Australian hackers from the virus-writing crew VLAD created the Bizatch virus (also known as "Boza" virus), which was the first known virus to target Windows 95. In late 1997 the encrypted, memory-resident stealth virus Win32.Cabanas was released—the first known virus that targeted Windows NT (it was also able to infect Windows 3.0 and Windows 9x hosts).[31]
Even home computers were affected by viruses. The first one to appear on the Amiga was a boot sector virus called SCA virus, which was detected in November 1987.[32]
Design
Parts
A computer virus generally contains three parts: the infection mechanism, which finds and infects new files, the payload, which is the malicious code to execute, and the trigger, which determines when to activate the payload.[33]
- Infection mechanism
- Also called the infection vector, this is how the virus spreads. Some viruses have a search routine, which locate and infect files on disk.[34] Other viruses infect files as they are run, such as the Jerusalem DOS virus.
- Trigger
- Also known as a logic bomb, this is the part of the virus that determines the condition for which the payload is activated.[35] This condition may be a particular date, time, presence of another program, size on disk exceeding a threshold,[36] or opening a specific file.[37]
- Payload
- The payload is the body of the virus that executes the malicious activity. Examples of malicious activities include damaging files, theft of confidential information or spying on the infected system.[38][39] Payload activity is sometimes noticeable as it can cause the system to slow down or "freeze".[34] Sometimes payloads are non-destructive and their main purpose is to spread a message to as many people as possible. This is called a virus hoax.[40]
Phases
Virus phases is the life cycle of the computer virus, described by using an analogy to biology. This life cycle can be divided into four phases:
- Dormant phase
- The virus program is idle during this stage. The virus program has managed to access the target user's computer or software, but during this stage, the virus does not take any action. The virus will eventually be activated by the "trigger" which states which event will execute the virus. Not all viruses have this stage.[34]
- Propagation phase
- The virus starts propagating, which is multiplying and replicating itself. The virus places a copy of itself into other programs or into certain system areas on the disk. The copy may not be identical to the propagating version; viruses often "morph" or change to evade detection by IT professionals and anti-virus software. Each infected program will now contain a clone of the virus, which will itself enter a propagation phase.[34]
- Triggering phase
- A dormant virus moves into this phase when it is activated, and will now perform the function for which it was intended. The triggering phase can be caused by a variety of system events, including a count of the number of times that this copy of the virus has made copies of itself.[34] The trigger may occur when an employee is terminated from their employment or after a set period of time has elapsed, in order to reduce suspicion.
- Execution phase
- This is the actual work of the virus, where the "payload" will be released. It can be destructive such as deleting files on disk, crashing the system, or corrupting files or relatively harmless such as popping up humorous or political messages on screen.[34]
Targets and replication
Computer viruses infect a variety of different subsystems on their host computers and software.
A memory-resident virus (or simply "resident virus") installs itself as part of the operating system when executed, after which it remains in
Many common applications, such as
While not opening attachments in e-mails from unknown persons or organizations can help to reduce the likelihood of contracting a virus, in some cases, the virus is designed so that the e-mail appears to be from a reputable organization (e.g., a major bank or credit card company).Boot sector viruses specifically target the
The most common way of transmission of computer viruses in boot sector is physical media. When reading the VBR of the drive, the infected floppy disk or USB flash drive connected to the computer will transfer data, and then modify or replace the existing boot code. The next time a user tries to start the desktop, the virus will immediately load and run as part of the master boot record.[49]
Email viruses are viruses that intentionally, rather than accidentally, use the email system to spread. While virus infected files may be accidentally sent as email attachments, email viruses are aware of email system functions. They generally target a specific type of email system (Microsoft Outlook is the most commonly used), harvest email addresses from various sources, and may append copies of themselves to all email sent, or may generate email messages containing copies of themselves as attachments.[50]
Detection
To avoid detection by users, some viruses employ different kinds of
Read request intercepts
While some kinds of antivirus software employ various techniques to counter stealth mechanisms, once the infection occurs any recourse to "clean" the system is unreliable. In Microsoft Windows operating systems, the
The only reliable method to avoid "stealth" viruses is to boot from a medium that is known to be "clear". Security software can then be used to check the dormant operating system files. Most security software relies on virus signatures, or they employ
Self-modification
Most modern antivirus programs try to find virus-patterns inside ordinary programs by scanning them for so-called virus signatures.[59] Different antivirus programs will employ different search methods when identifying viruses. If a virus scanner finds such a pattern in a file, it will perform other checks to make sure that it has found the virus, and not merely a coincidental sequence in an innocent file, before it notifies the user that the file is infected. The user can then delete, or (in some cases) "clean" or "heal" the infected file. Some viruses employ techniques that make detection by means of signatures difficult but probably not impossible. These viruses modify their code on each infection. That is, each infected file contains a different variant of the virus.[citation needed]
One method of evading signature detection is to use simple
Some viruses employ polymorphic code in a way that constrains the mutation rate of the virus significantly. For example, a virus can be programmed to mutate only slightly over time, or it can be programmed to refrain from mutating when it infects a file on a computer that already contains copies of the virus. The advantage of using such slow polymorphic code is that it makes it more difficult for antivirus professionals and investigators to obtain representative samples of the virus, because "bait" files that are infected in one run will typically contain identical or similar samples of the virus. This will make it more likely that the detection by the virus scanner will be unreliable, and that some instances of the virus may be able to avoid detection.
To avoid being detected by emulation, some viruses rewrite themselves completely each time they are to infect new executables. Viruses that utilize this technique are said to be in
Effects
Damage is due to causing system failure, corrupting data, wasting computer resources, increasing maintenance costs or stealing personal information.[10] Even though no antivirus software can uncover all computer viruses (especially new ones), computer security researchers are actively searching for new ways to enable antivirus solutions to more effectively detect emerging viruses, before they become widely distributed.[68]
A power virus is a computer program that executes specific machine code to reach the maximum
Stability test applications are similar programs which have the same effect as power viruses (high CPU usage) but stay under the user's control. They are used for testing CPUs, for example, when overclocking. Spinlock in a poorly written program may cause similar symptoms, if it lasts sufficiently long.
Different micro-architectures typically require different machine code to hit their maximum power. Examples of such machine code do not appear to be distributed in CPU reference materials.[71]
Infection vectors
As software is often designed with security features to prevent unauthorized use of system resources, many viruses must exploit and manipulate security bugs, which are security defects in a system or application software, to spread themselves and infect other computers. Software development strategies that produce large numbers of "bugs" will generally also produce potential exploitable "holes" or "entrances" for the virus.
To replicate itself, a virus must be permitted to execute code and write to memory. For this reason, many viruses attach themselves to
The vast majority of viruses target systems running
While Linux and Unix in general have always natively prevented normal users from making changes to the operating system environment without permission, Windows users are generally not prevented from making these changes, meaning that viruses can easily gain control of the entire system on Windows hosts. This difference has continued partly due to the widespread use of administrator accounts in contemporary versions like Windows XP. In 1997, researchers created and released a virus for Linux—known as "Bliss".[80] Bliss, however, requires that the user run it explicitly, and it can only infect programs that the user has the access to modify. Unlike Windows users, most Unix users do not log in as an administrator, or "root user", except to install or configure software; as a result, even if a user ran the virus, it could not harm their operating system. The Bliss virus never became widespread, and remains chiefly a research curiosity. Its creator later posted the source code to Usenet, allowing researchers to see how it worked.[81]
Before computer networks became widespread, most viruses spread on
A virus may also send a
Countermeasures
In 1989 The
Many users install
Examples of Microsoft Windows
Other commonly used preventive measures include timely operating system updates, software updates, careful Internet browsing (avoiding shady websites), and installation of only trusted software.[103] Certain browsers flag sites that have been reported to Google and that have been confirmed as hosting malware by Google.[104][105]
There are two common methods that an antivirus software application uses to detect viruses, as described in the
A second method to find viruses is to use a heuristic algorithm based on common virus behaviors. This method can detect new viruses for which antivirus security firms have yet to define a "signature", but it also gives rise to more false positives than using signatures. False positives can be disruptive, especially in a commercial environment, because it may lead to a company instructing staff not to use the company computer system until IT services have checked the system for viruses. This can slow down productivity for regular workers.
Recovery strategies and methods
One may reduce the damage done by viruses by making regular
Many websites run by antivirus software companies provide free online virus scanning, with limited "cleaning" facilities (after all, the purpose of the websites is to sell antivirus products and services). Some websites—like
Some viruses disable
Microsoft's
Popular culture
The first known description of a self-reproducing program in fiction is in the 1970 short story The Scarred Man by
The idea was explored further in two 1972 novels,
The 1973
Other malware
The term "virus" is also misused by extension to refer to other types of
See also
- Botnet
- Comparison of computer viruses
- Computer fraud and abuse act
- Computer security
- Crimeware
- Core Wars
- Cryptovirology
- Keystroke logging
- Malware
- Source code virus
- Spam (electronic)
- Technical support scam
- Trojan horse (computing)
- Virus hoax
- Windows 7 File Recovery
- Windows Action Center
- Zombie (computer science)
Notes
- ^ This is analogous to how genetic diversity in a population decreases the chance of a single disease wiping out a population in biology.
References
- ^ "The Internet comes down with a virus". The New York Times. August 6, 2014.
- . Avast Academy. Avast Software s.r.o. Retrieved 9 March 2021.
{{cite journal}}
: Cite journal requires |journal=
(help)CS1 maint: numeric names: authors list (link)
{{cite web}}
: CS1 maint: unfit URL (link)
And there's a clear pattern here which suggests an analogy to an infectious disease process, spreading from one resort area to the next." ... "Perhaps there are superficial similarities to disease." "I must confess I find it difficult to believe in a disease of machinery.
{{cite AV media}}
: CS1 maint: location (link)