General Navigation Buttons - Home | Search | Contact Us | Site Map | Whats New
products graphic
white space
products
Software Technology Roadmap
Background & Overview
Technology Descriptions
Defining Software Technology
Technology Categories
Template for Technology Descriptions
Taxonomies
Glossary & Indexes
white space
About SEI|Mgt|Eng|Acq|Collaboration|Prod.& Services|Pubs
pixel
Rollover Popup Hints for Topic Navigation Buttons above
pixel
Virus Detection


Status

Advanced

Note

We recommend Computer System Security- an Overview, as prerequisite reading for this technology description.

Purpose and Origin

Technologies for Computer System Security in C4I Systems (see Computer System Security- an Overview) introduced virus detection software as one of the system security mechanisms included in Intranets used to support C4I systems. Viruses are malicious segments of code, inserted into legitimate programs, that execute when the legitimate program is executed. The primary characteristic of a virus is that it replicates itself when it is executed and inserts the replica into another program which will replicate the virus again when it executes. A computer is said to be infected if it contains a virus. Detecting that a computer is infected is the process of virus detection. Viruses have existed since the early 1980s and programs to detect them have been developed since then [Denning 90].

Technical Detail

Since viruses are executable code, they are written for a particular processor. They have been written for mainframes, for UNIX machines, and for personal computers (IBM PC compatibles and Apple Macintoshes). By far the most viruses have been developed to attack 80x86-based IBM PC compatible computers. By 1996, there have been over 2000 kinds of viruses developed that attack IBM PC compatible computers. The IBM PC compatible is a frequent target of viruses because there are so many of that type of computer in use and the operating system (DOS and Windows) has no provision to prevent code from being modified. A few viruses, written using word processing or spreadsheet macros, infect any processor that runs the word processor or spreadsheet program that can interpret those macros. There were some early, much publicized, viruses on UNIX machines, but they are rare. The 1988 Morris Worm was an early example of malicious code that attacked UNIX machines [Spafford 88]. Viruses are hard to write because they require detailed knowledge of how the operating system works; there are much easier ways to damage or copy information on a UNIX computer. There have been a few mainframe viruses but they are also rare because mainframe operating systems make it difficult for a program to gain access to and modify other programs.

Within some viruses is a portion of code called the payload. The payload is designed to do something malicious such as corrupt files, display a message on the screen, or prevent the computer from booting. When the virus executes or at some future execution after a trigger condition has been met, the virus will execute the payload. A favorite trigger condition is the occurrence of a particular date, such as Friday the 13th. A virus still causes harm, even if it does not contain a payload, by consuming processor and storage resources as it replicates itself.

The two general types of PC viruses are boot-record infectors and program file infectors. The type is determined by where the virus code copy is written when it is replicated.

Boot-record infectors, also called system infectors, infect the boot records on hard disks and floppy disks. When the system is booted, they are loaded into memory. They may execute and replicate themselves every time a disk is loaded. Once a hard disk boot record is infected the virus will be loaded into memory each time the system is booted from the hard disk.

The program file infectors attach their replicas to program file (.EXE or .COM files) hosts on disk whenever the virus is executed. When the host is executed the virus replicates itself again. When the virus is added to a file it makes the file larger. In order to not cause an obvious growth in a file, viruses include a signature pattern in the copy that it can recognize so that it will not add to a file again if the virus is there already.

There are three basic types of virus detection software:

  • virus scanner
  • activity monitor
  • change detection
Virus scanner software looks for the virus signature in memory or in program files and looks for code in the boot record that is not boot code. Once suspicious code is found, a message is displayed to the operator that the system is infected. Some virus scanners have the capability to remove viruses as well as to detect them.

Activity monitors are memory resident programs that watch for suspicious activity such as a program other than the operating system trying to format disks, delete an executable file, or change the file allocation table on a disk. They also may look for programs trying to go memory resident, scanning for other program files, or trying to modify their own code [Slade 96b].

Change detection software scans the executable program files in the system before a system is used and records vital statistics about each program, such as program file length or a calculated CRC or checksum. After the system is in operation, the change detection software periodically scans the program files looking for changes compared to the pre-stored data. These changes could have been caused by a virus.

Usage Considerations

Virus scanners are executed periodically, when the system is started up, or whenever a disk is initially put into the system. When new software (commercial, freeware, or downloaded) is added to the system, it should be checked with a virus scanner before the new software is executed to identify known viruses if they are present. Although virus scanners are very useful in finding known viruses they will not detect new kinds of viruses. They therefore must be updated frequently to include the "signatures" of new viruses.

Activity monitors are more likely to find new types of viruses than virus scanners since activity monitors are not limited to finding a known bit pattern in memory or on disk. Activity monitors have considerable performance overhead since they must be constantly scanning for unusual activity. Activity monitors also must be incorporated into software change processes so that its baseline of "correct" software files can be maintained.

Of the three types of virus detection software, change detection software has the best chance of detecting current and future virus types but is most likely to produce false alarms [Slade 96b]. The database for change detection software must be updated every time system files or executable program files are updated. This adds maintenance overhead to the system if the system is frequently modified.

Maturity

More than 100 virus detection products are listed on the National Institute of Standards and Technology (NIST) list of products reviewed [Slade 96a]. Most of those products are virus scanners. Virus scanners are also the most rapidly changing as they must be updated to check for new virus "signatures" as new viruses are identified. The challenge to virus detection product vendors is in the constant race to keep up with the host of smart computer hackers and malicious software developers creating new strains of viruses.

Costs and Limitations

Effective use of virus detection software requires system administrators familiar with virus types and their mode of attack, the operation of the virus detection software, the ability to evaluate the virus detection program output, and the ability to recognize a true attack versus a false alarm. This requires knowledge of the system and its normal operation, training in the use of the virus detection software, and frequent retraining as the virus detection software is routinely updated.

Index Categories

This technology is classified under the following categories. Select a category for a list of related topics.

Name of technology

Virus Detection

Application category

Information Security (AP.2.4)

Quality measures category

Security (QM.2.1.5)
Denial of Service (QM.2.1.4.1.3)

Computing reviews category

Operating Systems Security and Protection (D.4.6)
Security and Protection (K.6.5)

References and Information Sources

[Abrams 95] Abrams, Marshall D.; Jajodia, Sushil; & Podell, Harold J. Information Security An Integrated Collection of Essays. Los Alamitos, CA: IEEE Computer Society Press, 1995.
[Denning 90] Denning, Peter J. Computers Under Attack Intruders, Worms and Viruses. New York, NY: ACM Press, 1990.
[Garfinkel 96] Garfinkel, Simson & Spafford, Gene. Practical UNIX and Internet Security Second Edition. Sebastopol, CA: O'Reilly & Associates, Inc., 1996.
[Russel 91] Russel, Deborah & Gangemi, G.T. Sr. Computer Security Basics. Sebastopol, CA: O'Reilly & Associates, Inc., 1991.
[Slade 96a] Slade, Robert. Quick Reference Antiviral Review Chart [online]. Available WWW
<URL: http://csrc.ncsl.nist.gov/virus/quickref.rvw> (1996).
[Slade 96b] Slade, Robert. Reviewing Anti-virus Products [online]. Available WWW
<URL: http://www.bocklabs.wisc.edu/~janda/sladerev.html> (1996).
[Spafford 88] Spafford, Eugene H. The Internet Worm Program: An Analysis (CSD-TR-823). West Lafayette, IN: Purdue University, 1988.

Current Author/Maintainer

Tom Mills, Loral

Modifications

10 Jan 97 (original)


The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defense and operated by Carnegie Mellon University.

Copyright 2008 by Carnegie Mellon University
Terms of Use
URL: http://www.sei.cmu.edu/str/descriptions/virus_body.html
Last Modified: 24 July 2008