Up-Link Home Page  Up-Link Home Page

""

 Internet Setup

""

 E-Mail Help

""

 Computer Clinic

""

 Hardware Help

""

 Windows Help Links
""
 
 

Anti-Virus Labs Tutorial

Portions of the following have been excerpted from the Frequently Asked Questions document compiled and made available by the Virus-L mailing list and the comp.virus news group.

Q: What exactly are computer viruses?

Q: What is a worm?

Q: What is a Trojan Horse?

Q: What are the main types of PC viruses?

Q: What is a stealth virus?

Q: What is a polymorphic virus?

Q: What are fast and slow infectors?

Q: What is a sparse infector?

Q: What is a companion virus?

Q: What is an armored virus?

Q: What is a macro virus?

Q: What is a virus hoax?

Q: Related glossary

""

Q: What exactly are computer viruses?

A: According to Fred Cohen's well-known definition, a computer virus is a computer program that can infect other computer programs by modifying them in such a way as to include a (possibly evolved) copy of itself. Note that a program does not have to perform outright damage (such as deleting or corrupting files) in order to be called a "virus". However, Cohen uses the terms within his definition (e.g. "program" and "modify") a bit differently from the way most anti-virus researchers use them, and classifies as viruses some things which most of us would not consider viruses.

Many people use the term loosely to cover any sort of program that tries to hide its (malicious) function and tries to spread onto as many computers as possible. (See the definition of "Trojan".) Be aware that what constitutes a "program" for a virus to infect may include a lot more than is at first obvious - don't assume too much about what a virus can or can't do!

These software "pranks" are very serious; they are spreading faster than they are being stopped, and even the least harmful of viruses could be fatal. For example, a virus that stops your computer and displays a message, in the context of a hospital life-support computer, could be fatal. Even those who created the viruses could not stop them if they wanted to; it requires a concerted effort from computer users to be "virus-aware", rather than the ignorance and ambivalence that have allowed them to grow to such a problem.

""

Q: What is a worm?

A computer worm is a self-contained program (or set of programs), that is able to spread functional copies of itself or its segments to other computer systems (usually via network connections). Note that unlike viruses, worms do not need to attach themselves to a host program. There are two types of worms--host computer worms and network worms.

Host computer worms are entirely contained in the computer they run on and use network connections only to copy themselves to other computers. Host computer worms where the original terminates itself after launching a copy on another host (so there is only one copy of the worm running somewhere on the network at any given moment), are sometimes called "rabbits."

Network worms consist of multiple parts (called "segments"), each running on different machines (and possibly performing different actions) and using the network for several communication purposes. Propagating a segment from one machine to another is only one of those purposes. Network worms that have one main segment which coordinates the work of the other segments are sometimes called "octopuses."

""

Q: What is a Trojan Horse?

A: A Trojan Horse is a program that does something undocumented which the programmer intended, but that the user would not approve of if he knew about it. According to some people, a virus is a particular case of a Trojan Horse, namely one that is able to spread to other programs (i.e., it turns them into Trojans too). According to others, a virus that does not do any deliberate damage (other than merely replicating) is not a Trojan. Finally, despite the definitions, many people use the term "Trojan" to refer only to a *non-replicating* malicious program, so that the set of Trojans and the set of viruses are disjoint.

""

Q: What are the main types of PC viruses?

A: Generally, there are two main classes of viruses. The first class consists of the file infectors which attach themselves to ordinary program files. These usually infect arbitrary .COM and/or .EXE programs, though some can infect any program for which execution is requested, such as .SYS, .OVL, .PRG, & .MNU files.

File infectors can be either direct action or resident. A direct- action virus selects one or more other programs to infect each time the program that contains it is executed. A resident virus hides itself somewhere in memory the first time an infected program is executed, and thereafter infects other programs when *they* are executed (as in the case of the Jerusalem) or when certain other conditions are fulfilled. The Vienna is an example of a direct-action virus. Most other viruses are resident.

The second category is system or boot-record infectors: those viruses that infect executable code found in certain system areas on a disk which are not ordinary files. On DOS systems, there are ordinary boot-sector viruses, which infect only the DOS boot sector, and MBR viruses which infect the Master Boot Record on fixed disks and the DOS boot sector on diskettes. Examples include Brain, Stoned, Empire, Azusa, and Michelangelo. Such viruses are always resident viruses.

Finally, a few viruses are able to infect both (the Tequila virus is one example). These are often called "multi-partite" viruses, though there has been criticism of this name; another name is "boot-and-file" virus.

File system or cluster viruses (e.g. Dir-II) are those that modify directory table entries so that the virus is loaded and executed before the desired program is. Note that the program itself is not physically altered, only the directory entry is. Some consider these infectors to be a third category of viruses, while others consider them to be a sub-category of the file infectors.

""

Q: What is a stealth virus?

A: A stealth virus is one that hides the modifications it has made in the file or boot record, usually by monitoring the system functions used by programs to read files or physical blocks from storage media, and forging the results of such system functions so that programs which try to read these areas see the original uninfected form of the file instead of the actual infected form. Thus the viral modifications go undetected by anti-viral programs. However, in order to do this, the virus must be resident in memory when the anti-viral program is executed.

Example: The very first DOS virus, Brain, a boot-sector infector, monitors physical disk I/O and re-directs any attempt to read a Brain-infected boot sector to the disk area where the original boot sector is stored. The next viruses to use this technique were the file infectors Number of the Beast and Frodo.

Countermeasures: A "clean" system is needed so that no virus is present to distort the results. Thus the system should be built from a trusted, clean master copy before any virus-checking is attempted; this is "The Golden Rule of the Trade." With DOS, (1) boot from original DOS diskettes (i.e. DOS Startup/Program diskettes from a major vendor that have been write-protected since their creation); (2) use only tools from original diskettes until virus-checking has completed.

""

Q: What is a polymorphic virus?

A: A polymorphic virus is one that produces varied (yet fully operational) copies of itself, in the hope that virus scanners will not be able to detect all instances of the virus.

One method to evade signature-driven virus scanners is self-encryption with a variable key; however these viruses (e.g. Cascade) are not termed "polymorphic," as their decryption code is always the same and thus can be used as a virus signature even by the simplest, signature- driven virus scanners (unless another virus or program uses the identical decryption routine).

One method to make a polymorphic virus is to choose among a variety of different encryption schemes requiring different decryption routines: only one of these routines would be plainly visible in any instance of the virus (e.g. the Whale virus). A signature-driven virus scanner would have to exploit several signatures (one for each possible encryption method) to reliably identify a virus of this kind.

A more sophisticated polymorphic virus (e.g. V2P6) will vary the sequence of instructions in its copies by interspersing it with "noise" instructions (e.g. a No Operation instruction, or an instruction to load a currently unused register with an arbitrary value), by interchanging mutually independent instructions, or even by using various instruction sequences with identical net effects (e.g. Subtract A from A, and Move 0 to A). A simple-minded, signature-based virus scanner would not be able to reliably identify this sort of virus; rather, a sophisticated "scanning engine" has to be constructed after thorough research into the particular virus.

The most sophisticated form of polymorphism discovered so far is the MtE "Mutation Engine" written by the Bulgarian virus writer who calls himself the "Dark Avenger". It comes in the form of an object module. Any virus can be made polymorphic by adding certain calls to the assembler source code and linking to the mutation-engine and random-number-generator modules.

The advent of polymorphic viruses has rendered virus-scanning an ever more difficult and expensive endeavor; adding more and more search strings to simple scanners will not adequately deal with these viruses.

""

Q: What are fast and slow infectors?

A: A typical file infector (such as the Jerusalem) copies itself to memory when a program infected by it is executed, and then infects other programs when they are executed.

A fast infector is a virus which, when it is active in memory, infects not only programs which are executed, but even those which are merely opened. The result is that if such a virus is in memory, running a scanner or integrity checker can result in all (or at least many) programs becoming infected all at once. Examples are the Dark Avenger and the Frodo viruses.

The term "slow infector" is sometimes used for a virus that, if it is active in memory, infects only files as they are modified (or created). The purpose is to fool people who use integrity checkers into thinking that the modification reported by the integrity checker is due solely to legitimate reasons. An example is the Darth Vader virus.

""

Q: What is a sparse infector?

A: The term "sparse infector" is sometimes given to a virus that infects only occasionally, e.g. every 10th executed file, or only files whose lengths fall within a narrow range, etc. By infecting less often, such viruses try to minimize the probability of being discovered by the user.

""

Q: What is a companion virus?

A: A companion virus is one that, instead of modifying an existing file, creates a new program which (unknown to the user) gets executed by the command-line interpreter instead of the intended program. (On exit, the new program executes the original program so things will appear normal.) The only way this has been done so far is by creating an infected .COM file with the same name as an existing .EXE file. Note that those integrity checkers which look only for *modifications* in *existing* files will fail to detect such viruses.

(Note that not all researchers consider this type of malicious code to be a virus, since it does not modify existing files.)

""

Q: What is an armored virus?

A: An armored virus is one that uses special tricks to make the tracing, disassembling and understanding of their code more difficult. A good example is the Whale virus.

""

Q: What is a macro virus?

A: Many applications allow you to create macros.  A macro is a series of commands to perform an application-specific task.  Those commands can be stored as a series of keystrokes, or in a special macro language. 

A macro virus is a virus that propagates through only one type of program, usually either Microsoft Word or Microsoft Excel.  It can do this because these types of programs contain auto open macros, which are automatically run when you open a document or a spreadsheet.  Along with infecting  auto open macros, the macro virus infects the global macro template, which is executed anytime you run the program. Thus, once your global macro template is infected, any file you open after that becomes infected and the virus spreads. 

""

Q: What is a virus hoax?

A: As if viruses weren't enough to deal with, there are people out there with so much time on their hands that they create virus hoaxes.  A virus hoax generally appears as an email message that describes a particular virus that does not exist.  These emails almost always carry the same basic story:  that if you download an email with a particular subject line, your hard drive will be erased (an impossibility because the text of an email cannot harbor a virus). 

Such messages are designed to panic computer users.  The writer or writers email the warning and include a plea for the reader to forward it to others.  The message then acts much like a chain letter, propagating throughout the Internet as individuals receive it and then innocently forward it.  An example of a virus hoax is the "Good Times" virus -- which was written by a couple of people in 1994 and since then has circled the globe many times over.  The best thing to do when you receive such an email is to ignore and delete it, and to depend on your anti-virus software, and good computing habits, to protect yourself.

""

Q: Related glossary

Boot Sector Virus = A virus that takes control when the computer attempts to boot (as opposed to a file infector).   Boot sector viruses can infect the boot records of both hard disks and diskettes.  They do so by replacing the existing boot record with their own code.  The virus is executed when the system is booted from the hard disk or diskette, and installs its own code in the system's memory so that it can infect other hard disks or diskettes later.

CMOS = Complementary Metal Oxide Semiconductor: A memory area that is used in AT and higher class PCs for storage of system information. CMOS is battery backed RAM (see below), originally used to maintain date and time information while the PC was turned off. CMOS memory is not in the normal CPU address space and cannot be executed. While a virus may place data in the CMOS or may corrupt it, a virus cannot hide there.

DBS = DOS Boot Sector: the first sector of a logical DOS partition on a hard disk or the first absolute sector of a diskette.  This sector contains the startup code that actually loads DOS.  Some boot sector viruses infect the DBS rather than the MBR when infecting hard disks.

DOS = Disk Operating System. We use the term "DOS" to mean any of the MS-DOS, PC-DOS, or DR DOS systems for PCs and compatibles, even though there are operating systems called "DOS" on other (unrelated) machines.

File Infecting Virus = A virus that infects executable files.   The virus will get control when the program is first executed.

MBR = Master Boot Record: the first Absolute sector (track 0, head 0, sector 1) on a PC hard disk, that usually contains the partition table (but on some PCs may simply contain a boot sector). This is not the same as the first DOS sector (Logical sector 0).

Multipartite = A virus that infects both boot records and files.   Sometimes called bimodal or bipartite.

Polymorphic = A virus that attempts to hide from anti-virus programs by by keeping most its its own code garbled in some way, and changing the garbling each time it spreads.

RAM = Random Access Memory: the place programs are loaded into in order to execute; the significance for viruses is that, to be active, they must grab some of this for themselves. However, some virus scanners may declare that a virus is active simply when it is found in RAM, even though it might be simply left over in a buffer area of RAM rather than truly being active.

Scan String = A sequence of bytes (characters) that occur in a known virus but (one hopes) not in legitimate programs.  "Signature" is sometimes used for Scan String. Authors of virus scanners reduce the likelihood of false positives by carefully selecting their scan strings.

TOM = Top Of Memory: the end of conventional memory, an architectural design limit at the 640K mark on most PCs. Some early PCs may not be fully populated, but the amount of memory is always a multiple of 64K. A boot-record virus on a PC typically resides just below this mark and changes the value which will be reported for the TOM to the location of the beginning of the virus so that it won't get overwritten. Checking this value for changes can help detect a virus, but there are also legitimate reasons why it may change.  A very few PCs with unusual memory managers/settings may report in excess of 640K.

TSR = Terminate but Stay Resident: these are PC programs that stay in memory while you continue to use the computer for other purposes; they include pop-up utilities, network software, and the great majority of viruses.  Resident viruses wait in the memory for some external event such as copying a file or inserting a diskette to infect another program.

 
""
Disclaimer:  These pages are provided for information purposes only.  We cannot be held responsible for any damage you might inflict on your system while using the information contained herein.  We recommend you always refer any technical matter that is "over your head" to a qualified computer technician.
""

2011 Double-Hammer Computer Services.  All rights reserved.
Last Updated: September 04, 2011

Hit Counter