Computer virus

Page protected with pending changes
Source: Wikipedia, the free encyclopedia.
Hex dump of the Brain virus, generally regarded as the first computer virus for the IBM Personal Computer (IBM PC) and compatibles

A computer virus

computer programs and inserting its own code into those programs.[2][3] If this replication succeeds, the affected areas are then said to be "infected" with a computer virus, a metaphor derived from biological viruses.[4]

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

cybersecurity issues, artificial life and evolutionary algorithms.[9]

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

University of Dortmund.[15]
In his work Kraus postulated that computer programs can behave in a way similar to biological viruses.

The MacMag virus 'Universal Peace', as displayed on a Mac in March 1988

The

BBN Technologies in 1971.[17] Creeper used the ARPANET to infect DEC PDP-10 computers running the TENEX operating system.[18] Creeper gained access via the ARPANET and copied itself to the remote system where the message, "I'M THE CREEPER. CATCH ME IF YOU CAN!" was displayed.[19] The Reaper program was created to delete Creeper.[20]

In 1982, a program called "

Mount Lebanon High School near Pittsburgh, it attached itself to the Apple DOS 3.3 operating system and spread via floppy disk.[21] On its 50th use the Elk Cloner
virus would be activated, infecting the personal computer and displaying a short poem beginning "Elk Cloner: The program with a personality."

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.

hard drive (or some combination of all of these).[42][43]

A memory-resident virus (or simply "resident virus") installs itself as part of the operating system when executed, after which it remains in

functions, and when the operating system attempts to access the target file or disk sector, the virus code intercepts the request and redirects the control flow to the replication module, infecting the target. In contrast, a non-memory-resident virus (or "non-resident virus"), when executed, scans the disk for targets, infects them, and then exits (i.e. it does not remain in memory after it is done executing).[44]

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

CIH virus, or Chernobyl Virus, infects Portable Executable files. Because those files have many empty gaps, the virus, which was 1 KB in length, did not add to the size of the file.[52] Some viruses try to avoid detection by killing the tasks associated with antivirus software before it can detect them (for example, Conficker). A Virus may also hide its presence using a rootkit by not showing itself on the list of system processes or by disguising itself within a trusted process.[53] In the 2010s, as computers and operating systems grow larger and more complex, old hiding techniques need to be updated or replaced. Defending a computer against viruses may demand that a file system migrate towards detailed and explicit permission for every kind of file access.[citation needed] In addition, only a small fraction of known viruses actually cause real incidents, primarily because many viruses remain below the theoretical epidemic threshold.[54]

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

NTFS file system is proprietary. This leaves antivirus software little alternative but to send a "read" request to Windows files that handle such requests. Some viruses trick antivirus software by intercepting its requests to the operating system. A virus can hide by intercepting the request to read the infected file, handling the request itself, and returning an uninfected version of the file to the antivirus software. The interception can occur by code injection of the actual operating system files that would handle the read request. Thus, an antivirus software attempting to detect the virus will either not be permitted to read the infected file, or, the "read" request will be served with the uninfected version of the same file.[55]

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

hashes" for Windows OS files, so the security software can identify altered files, and request Windows installation media to replace them with authentic versions. In older versions of Windows, file cryptographic hash functions of Windows OS files stored in Windows—to allow file integrity/authenticity to be checked—could be overwritten so that the System File Checker would report that altered system files are authentic, so using file hashes to scan for altered files would not always guarantee finding an infection.[58]

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

rebooted.[62] This is called cryptovirology
.

decryption module. In the case of polymorphic viruses, however, this decryption module is also modified on each infection. A well-written polymorphic virus therefore has no parts which remain identical between infections, making it very difficult to detect directly using "signatures".[63][64] Antivirus software can detect it by decrypting the viruses using an emulator, or by statistical pattern analysis of the encrypted virus body. To enable polymorphic code, the virus has to have a polymorphic engine (also called "mutating engine" or "mutation engine") somewhere in its encrypted body. See polymorphic code for technical detail on how such engines operate.[65]

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

W32/Simile consisted of over 14,000 lines of assembly language code, 90% of which is part of the metamorphic engine.[66][67]

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

CPU power dissipation (thermal energy output for the central processing units).[69] Computer cooling apparatus are designed to dissipate power up to the thermal design power, rather than maximum power, and a power virus could cause the system to overheat if it does not have logic to stop the processor. This may cause permanent physical damage. Power viruses can be malicious, but are often suites of test software used for integration testing and thermal testing of computer components during the design phase of a product, or for product benchmarking.[70]

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

flash drives. The drives may be left in a parking lot of a government building or other target, with the hopes that curious users will insert the drive into a computer. In a 2015 experiment, researchers at the University of Michigan found that 45–98 percent of users would plug in a flash drive of unknown origin.[74]

The vast majority of viruses target systems running

desktop environments, packaging tools, etc., which means that malicious code targeting any of these systems will only affect a subset of all users. Many Windows users are running the same set of applications, enabling viruses to rapidly spread among Microsoft Windows systems by targeting the same exploits on large numbers of hosts.[76][77][78][79]

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

vectors for viruses on BBSs.[82][83] Viruses can increase their chances of spreading to other computers by infecting files on a network file system or a file system that is accessed by other computers.[84]

Macintosh computers. Although most of these viruses did not have the ability to send infected email messages, those viruses which did take advantage of the Microsoft Outlook Component Object Model (COM) interface.[85][86] Some old versions of Microsoft Word allow macros to replicate themselves with additional blank lines. If two macro viruses simultaneously infect a document, the combination of the two, if also self-replicating, can appear as a "mating" of the two and would likely be detected as a virus unique from the "parents".[87]

A virus may also send a

web address link as an instant message to all the contacts (e.g., friends and colleagues' e-mail addresses) stored on an infected machine. If the recipient, thinking the link is from a friend (a trusted source) follows the link to the website, the virus hosted at the site may be able to infect this new computer and continue propagating.[88] Viruses that spread using cross-site scripting were first reported in 2002,[89] and were academically demonstrated in 2005.[90] There have been multiple instances of the cross-site scripting viruses in the "wild", exploiting websites such as MySpace (with the Samy worm) and Yahoo!
.

Countermeasures

Ubuntu Linux

In 1989 The

ADAPSO Software Industry Division published Dealing With Electronic Vandalism,[91] in which they followed the risk of data loss by "the added risk of losing customer confidence."[92][93][94]

Many users install

download or run the executable file (which may be distributed as an email attachment, or on USB flash drives, for example). Some antivirus software blocks known malicious websites that attempt to install malware. Antivirus software does not change the underlying capability of hosts to transmit viruses. Users must update their software regularly to patch security vulnerabilities ("holes"). Antivirus software also needs to be regularly updated to recognize the latest threats. This is because malicious hackers and other individuals are always creating new viruses. The German AV-TEST Institute publishes evaluations of antivirus software for Windows[95] and Android.[96]

Examples of Microsoft Windows

Windows Defender (an optional download in the case of Windows XP).[99] Additionally, several capable antivirus software programs are available for free download from the Internet (usually restricted to non-commercial use).[100]
Some such free programs are almost as good as commercial competitors.
Ransomware and phishing scam alerts appear as press releases on the Internet Crime Complaint Center noticeboard. Ransomware is a virus that posts a message on the user's screen saying that the screen or system will remain locked or unusable until a ransom payment is made. Phishing is a deception in which the malicious individual pretends to be a friend, computer security expert, or other benevolent individual, with the goal of convincing the targeted individual to reveal passwords
or other personal information.

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

zero-day attack").[106]

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

flash drives.[108][109]

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

Windows Defender
that has been upgraded to an antivirus product in Windows 8.

Some viruses disable

CMD. An example of a virus that does this is CiaDoor. Many such viruses can be removed by rebooting the computer, entering Windows "safe mode" with networking, and then using system tools or Microsoft Safety Scanner.[113] System Restore on Windows Me, Windows XP, Windows Vista and Windows 7 can restore the registry and critical system files to a previous checkpoint. Often a virus will cause a system to "hang" or "freeze", and a subsequent hard reboot will render a system restore point from the same day corrupted. Restore points from previous days should work, provided the virus is not designed to corrupt the restore files and does not exist in previous restore points.[114][115]

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

FORTRAN that Benford had created and run on the lab computer in the 1960s, as a proof-of-concept, and which he told John Brunner about in 1970.[119]

The idea was explored further in two 1972 novels,

The 1973

better source needed] Alan Oppenheimer's character summarizes the problem by stating that "...there's a clear pattern here which suggests an analogy to an infectious disease process, spreading from one...area to the next." To which the replies are stated: "Perhaps there are superficial similarities to disease" and, "I must confess I find it difficult to believe in a disease of machinery."[122]

Other malware

The term "virus" is also misused by extension to refer to other types of

hard disk space or central processing unit (CPU) time, accessing and stealing private information (e.g., credit card numbers, debit card numbers, phone numbers, names, email addresses, passwords, bank information, house addresses, etc.), corrupting data, displaying political, humorous or threatening messages on the user's screen, spamming their e-mail contacts, logging their keystrokes, or even rendering the computer useless. However, not all viruses carry a destructive "payload
" and attempt to hide themselves—the defining characteristic of viruses is that they are self-replicating computer programs that modify other software without user consent by injecting themselves into the said programs, similar to a biological virus which replicates within living cells.

See also

Notes

  1. ^ This is analogous to how genetic diversity in a population decreases the chance of a single disease wiping out a population in biology.

References

  1. ^ "The Internet comes down with a virus". The New York Times. August 6, 2014.
  2. "Worm vs. Virus: What's the Difference and Does It Matter?"
. Avast Academy. Avast Software s.r.o. Retrieved 9 March 2021.
  • .
  • .
  • ^ "Worm vs. Virus: What's the Difference and Does It Matter?". Avast Academy. Avast Software s.r.o. Retrieved 9 March 2021.
  • OCLC 897634290
    .
  • .
  • .
  • .
  • ^ a b "Viruses that can cost you". Archived from the original on 2013-09-25.
  • ^ Granneman, Scott. "Linux vs. Windows Viruses". The Register. Archived from the original on September 7, 2015. Retrieved September 4, 2015.
  • ^ von Neumann, John (1966). "Theory of Self-Reproducing Automata" (PDF). Essays on Cellular Automata. University of Illinois Press: 66–87. Archived (PDF) from the original on June 13, 2010. Retrieved June 10, 2010.
  • .
  • ^ Risak, Veith (1972), "Selbstreproduzierende Automaten mit minimaler Informationsübertragung", Zeitschrift für Maschinenbau und Elektrotechnik, archived from the original on 2010-10-05
  • ^ Kraus, Jürgen (February 1980), Selbstreproduktion bei Programmen (PDF), archived from the original (PDF) on 2015-07-14, retrieved 2015-05-08
  • ^ "Virus list". Archived from the original on 2006-10-16. Retrieved 2008-02-07.
  • ^ Thomas Chen; Jean-Marc Robert (2004). "The Evolution of Viruses and Worms". Archived from the original on 2013-08-09. Retrieved 2009-02-16.
  • from the original on 2017-03-16.
  • ^ "The Creeper Worm, the First Computer Virus". History of information. Retrieved 16 June 2022.[unreliable source?]
  • .
  • ^ a b Anick Jesdanun (1 September 2007). "School prank starts 25 years of security woes". CNBC. Archived from the original on 20 December 2014. Retrieved April 12, 2013.
  • ^ Cohen, Fred (1984), Computer Viruses – Theory and Experiments, archived from the original on 2007-02-18
  • ^ Cohen, Fred, An Undetectable Computer Virus Archived 2014-05-25 at the Wayback Machine, 1987, IBM
  • ^ Burger, Ralph, 1991. Computer Viruses and Data Protection, pp. 19–20
  • .
  • ^ Alan Solomon (2011-06-14). "All About Viruses". VX Heavens. Archived from the original on 2012-01-17. Retrieved 2014-07-17.
  • ISSN 0163-6006
    .
  • ^ "Boot sector virus repair". Antivirus.about.com. 2010-06-10. Archived from the original on 2011-01-12. Retrieved 2010-08-27.
  • ^ "Amjad Farooq Alvi Inventor of first PC Virus post by Zagham". YouTube. Archived from the original on 2013-07-06. Retrieved 2010-08-27.
  • ^ "winvir virus". Archived from the original on 8 August 2016. Retrieved 10 June 2016.
  • .
  • ^ "SCA virus". Virus Test Center, University of Hamburg. 1990-06-05. Archived from the original on 2012-02-08. Retrieved 2014-01-14.
  • .
  • ^ .
  • .
  • ^ "Basic malware concepts" (PDF). cs.colostate.edu. Archived (PDF) from the original on 2016-05-09. Retrieved 2016-04-25.
  • .
  • ^ "Payload". encyclopedia.kaspersky.com. Retrieved 2022-06-26.
  • ^ "What is a malicious payload?". CloudFlare. Retrieved 2022-06-26.
  • .
  • ^ Serazzi, Giuseppe; Zanero, Stefano (2004). "Computer Virus Propagation Models" (PDF). In Calzarossa, Maria Carla; Gelenbe, Erol (eds.). Performance Tools and Applications to Networked Systems. Lecture Notes in Computer Science. Vol. 2965. pp. 26–50. Archived (PDF) from the original on 2013-08-18.
  • from the original on 2017-03-16.
  • ^ Brain, Marshall; Fenton, Wesley (April 2000). "How Computer Viruses Work". HowStuffWorks.com. Archived from the original on 29 June 2013. Retrieved 16 June 2013.
  • .
  • .
  • from the original on 2017-03-16.
  • ^ "What is boot sector virus?". Archived from the original on 2015-11-18. Retrieved 2015-10-16.
  • from the original on 2014-07-06.