Path: bloom-beacon.mit.edu!senator-bedfellow.mit.edu!faqserv
From: "Kenneth R. van Wyk" <krvw@cert.org>
Newsgroups: comp.virus,comp.answers,news.answers
Subject: VIRUS-L/comp.virus Frequently Asked Questions (FAQ)
Supersedes: <computer-virus-faq_764764458@rtfm.mit.edu>
Followup-To: comp.virus
Date: 29 Apr 1994 21:53:01 GMT
Organization: CERT Coordination Center
Lines: 1751
Approved: news-answers-request@MIT.Edu
Expires: 12 Jun 1994 21:51:38 GMT
Message-ID: <computer-virus-faq_767656298@rtfm.mit.edu>
Reply-To: <VIRUS-L@Lehigh.edu>
NNTP-Posting-Host: bloom-picayune.mit.edu
Summary: This posting contains a list of Frequently Asked Questions,
         and their answers, about computer viruses.  It should be read
         by anyone who wishes to post to VIRUS-L/comp.virus.
X-Last-Updated: 1993/02/08
Originator: faqserv@bloom-picayune.MIT.EDU
Xref: bloom-beacon.mit.edu comp.virus:4660 comp.answers:5100 news.answers:18757

Archive-name: computer-virus-faq
Last-modified: 18 November 1992, 7:45 AM EST

           Frequently Asked Questions on VIRUS-L/comp.virus
             Last Updated: 18 November 1992, 7:45 AM EST

====================
= Preface Section: =
====================

This document is intended to answer the most Frequently Asked
Questions (FAQs) about computer viruses.  As you can see, there are
many of them!  If you are desperately seeking help after recently
discovering what appears to be a virus on your computer, consider
skimming through sections A and B to learn the essential jargon, then
concentrate on section C.

If you may have found a new virus, or are not quite sure if some file
or boot sector is infected, it is important to understand the protocol
for raising such questions, e.g. to avoid asking questions that can be
answered in this document, and to avoid sending "live" viruses except
to someone who is responsible (and even then in a safe form!).

Above all, remember the time to really worry about viruses is BEFORE
your computer gets one!

The FAQ is a dynamic document, which changes as people's questions
change.  Contributions are gratefully accepted -- please e-mail them
to me at krvw@cert.org.  The most recent copy of this FAQ will always
be available on the VIRUS-L/comp.virus archives, including the
anonymous FTP on cert.org (192.88.209.5) in the file:
pub/virus-l/FAQ.virus-l

Ken van Wyk, moderator VIRUS-L/comp.virus

Primary contributors (in alphabetical order):
    Mark Aitchison <phys169@csc.canterbury.ac.nz>
    Vaughan Bell <vaughan@computing-department.poly-south-west.ac.uk>
    Matt Bishop <matt.bishop@dartmouth.edu>
    Vesselin Bontchev <bontchev@fbihh.informatik.uni-hamburg.de>
    Olivier M.J. Crepin-Leblond <umeeb37@vaxa.cc.ic.ac.uk>
    David Chess <chess@watson.ibm.com>
    John-David Childs <con_jdc@lewis.umt.edu>
    Nick FitzGerald <cctr132@csc.canterbury.ac.nz>
    Claude Bersano-Hayes <hayes@urvax.urich.edu>
    John Kida <jhk@washington.ssds.COM>
    Donald G. Peters <Peters@Dockmaster.NCSC.Mil>
    A. Padgett Peterson <padgett%tccslr.dnet@mmc.com>
    Y. Radai <radai@hujivms.huji.ac.il>
    Rob Slade <rslade@sfu.ca>
    Gene Spafford <spaf@cs.purdue.edu>
    Otto Stolz <rzotto@nyx.uni-konstanz.de>

====================

             Questions answered in this document

Section A:   Sources of Information and Anti-viral Software
             (Where can I find HELP..!)

A1)  What is VIRUS-L/comp.virus?
A2)  What is the difference between VIRUS-L and comp.virus?
A3)  How do I get onto VIRUS-L/comp.virus?
A4)  What are the guidelines for VIRUS-L?
A5)  How can I get back-issues of VIRUS-L?
A6)  What is VALERT-L?
A7)  What are the known viruses, their names, major symptoms and
     possible cures?
A8)  Where can I get free or shareware anti-virus programs?
A9)  Where can I get more information on viruses, etc.?


Section B:   Definitions
             (What is ...?)

B1)  What are computer viruses (and why should I worry about them)?
B2)  What is a Trojan Horse?
B3)  What are the main types of PC viruses?
B4)  What is a stealth virus?
B5)  What is a polymorphic virus?
B6)  What are fast and slow infectors?
B7)  What is a sparse infector?
B8)  What is a companion virus?
B9)  What is an armored virus?
B10) Miscellaneous Jargon and Abbreviations


Section C:   Virus Detection
             (Is my computer infected?  What do I do?)

C1)  What are the symptoms and indications of a virus infection?
C2)  What steps should be taken in diagnosing and identifying viruses?
C3)  What is the best way to remove a virus?
C4)  What does the <insert name here> virus do?
C5)  What are "false positives" and "false negatives"?
C6)  Could an anti-viral program itself be infected?
C7)  Where can I get a virus scanner for my Unix system?
C8)  Why does an antiviral scanner report an infection only sometimes?
C9)  Is my disk infected with the Stoned virus?
C10) I think I have detected a new virus; what do I do?
C11) CHKDSK reports 639K (or less) total memory on my system; am I
     infected?
C12) I have an infinite loop of sub-directories on my hard drive; am I
     infected?


Section D:   Protection Plans
             (What should I do to prepare against viruses?)

D1)  What is the best protection policy for my computer?
D2)  Is it possible to protect a computer system with only software?
D3)  Is it possible to write-protect the hard disk with only software?
D4)  What can be done with hardware protection?
D5)  Will setting DOS file attributes to READ ONLY protect them from
     viruses?
D6)  Will password/access control systems protect my files from
     viruses?
D7)  Will the protection systems in DR DOS work against viruses?
D8)  Will a write-protect tab on a floppy disk stop viruses?
D9)  Do local area networks (LANs) help to stop viruses or do they
     facilitate their spread?
D10) What is the proper way to make backups?


Section E:    Facts and Fibs about computer viruses
              (Can a virus...?)

E1)  Can boot sector viruses infect non-bootable floppy disks?
E2)  Can a virus hide in a PC's CMOS memory?
E3)  Can a virus hide in Extended or in Expanded RAM?
E4)  Can a virus hide in Upper Memory or in High Memory?
E5)  Can a virus infect data files?
E6)  Can viruses spread from one type of computer to another?
E7)  Can DOS viruses run on non-DOS machines (e.g. Mac, Amiga)?
E8)  Can mainframe computers be susceptible to computer viruses?
E9)  Some people say that disinfecting files is a bad idea. Is that
     true?
E10) Can I avoid viruses by avoiding shareware/free software/games?
E11) Can I contract a virus on my PC by performing a "DIR" of an
     infected floppy disk?
E12) Is there any risk in copying data files from an infected floppy
     disk to a clean PC's hard disk?
E13) Can a DOS virus survive and spread on an OS/2 system using the
     HPFS file system?
E14) Under OS/2 2.0, could a virus infected DOS session infect another
     DOS session?
E15) Can normal DOS viruses work under MS Windows?


Section F:    Miscellaneous Questions
              (I was just wondering...)

F1) How many viruses are there?
F2) How do viruses spread so quickly?
F3) What is the plural of "virus"?  "Viruses" or "viri" or "virii" or...
F4) When reporting a virus infection (and looking for assistance), what
    information should be included?
F5) How often should we upgrade our anti-virus tools to minimize
    software and labor costs and maximize our protection?


Section G:    Specific Virus and Anti-viral software Questions...

G1) I was infected by the Jerusalem virus and disinfected the infected
    files with my favorite anti-virus program.  However, Wordperfect
    and some other programs still refuse to work.  Why?
G2) I was told that the Stoned virus displays the text "Your PC is now
    Stoned" at boot time.  I have been infected by this virus several
    times, but have never seen the message.  Why?
G3) I was infected by both Stoned and Michelangelo.  Why has my
    computer became unbootable?  And why, each time I run my favorite
    scanner, does it find one of the viruses and say that it is
    removed, but when I run it again, it says that the virus is still
    there?


================================================================
= Section A.   Sources of Information and Anti-viral Software. =
================================================================

A1) What is VIRUS-L/comp.virus?

It is a discussion forum with a focus on computer virus issues.  More
specifically, VIRUS-L is an electronic mailing list and comp.virus is
a USENET newsgroup.  Both groups are moderated; all submissions are
sent to the moderator for possible inclusion in the group.  For more
information, including a copy of the posting guidelines, see the file
virus-l.README, available by anonymous FTP on cert.org in the
pub/virus-l directory.  (FTP is the Internet File Transfer Protocol,
and is described in more detail in the monthly VIRUS-L/comp.virus
archive postings - see below.)

Note that there have been, from time to time, other USENET
cross-postings of VIRUS-L, including the bit.listserv.virus-l.  These
groups are generally set up by individual site maintainers and are not
as globally accessible as VIRUS-L and comp.virus.


A2) What is the difference between VIRUS-L and comp.virus?

As mentioned above, VIRUS-L is a mailing list and comp.virus is a
newsgroup.  In addition, VIRUS-L is distributed in digest format (with
multiple e-mail postings in one large digest) and comp.virus is
distributed as individual news postings.  However, the content of the
two groups is identical.


A3) How do I get onto VIRUS-L/comp.virus?

Send e-mail to LISTSERV@LEHIGH.EDU stating: "SUB VIRUS-L your-name".
To "subscribe" to comp.virus, simply use your favorite USENET news
reader to read the group (assuming that your site receives USENET
news).


A4) What are the guidelines for VIRUS-L?

The list of posting guidelines is available by anonymous FTP on
cert.org.  See the file pub/virus-l/virus-l.README for the most recent
copy.  In general, however, the moderator requires that discussions
are polite and non-commercial.  (Objective postings of product
availability, product reviews, etc., are fine, but commercial
advertisements are not.)  Also, requests for viruses (binary or
disassembly) are not allowed.  Technical discussions are strongly
encouraged, however, within reason.


A5) How can I get back-issues of VIRUS-L?

VIRUS-L/comp.virus includes a series of archive sites that carry all
the back issues of VIRUS-L, as well as public anti-virus software (for
various computers) and documents.  The back-issues date back to the
group's inception, 21 April 1988.  The list of archive sites is
updated monthly and distributed to the group; it includes a complete
listing of the sites, what they carry, access instructions, as well as
information on how to access FTP sites by e-mail.  The anonymous FTP
archive at cert.org carries all of the VIRUS-L back issues.  See the
file pub/virus-l/README for more information on the cert.org archive
site.


A6) What is VALERT-L?

VALERT-L is a sister group to VIRUS-L, but is intended for virus
alerts and warnings only -- NO DISCUSSIONS.  There is no direct USENET
counterpart to VALERT-L; it is a mailing list only.  All VALERT-L
postings are re-distributed to VIRUS-L/comp.virus later.  This group
is also moderated, but on a much higher priority than VIRUS-L.  The
group is monitored during business hours (East Coast, U.S.A.,
GMT-5/GMT-4); high priority off-hour postings can be made by
submitting to the group and then telephoning the CERT/CC hotline at +1
412 268 7090 -- instruct the person answering the hotline to call or
page Ken van Wyk.

Subscriptions to VALERT-L are handled identically to VIRUS-L --
contact the LISTSERV.


A7) What are the known viruses, their names, major symptoms and
    possible cures?

First of all, the reader must be aware that there is no universally
accepted naming convention for viruses, nor is there any standard
means of testing.  As a consequence nearly ALL viral information is
highly subjective and subject to interpretation and dispute.

There are several major sources of information on specific viruses.
Probably the biggest one is Patricia Hoffman's hypertext VSUM.  It
describes only DOS viruses, but almost all of them which are known
at any given time.  Unfortunately, it is regarded by many in the field
as being inaccurate, so we do not advise people to rely solely on it.
It can be downloaded from most major archive sites except SIMTEL20.

The second one is the Computer Virus Catalog, published by the Virus
Test Center in Hamburg.  It contains a highly technical description of
computer viruses for several platforms: DOS, Mac, Amiga, Atari ST,
Unix.  Unfortunately, the DOS section is quite incomplete.  The CVC
is available for anonymous FTP from ftp.informatik.uni-hamburg.de
(IP=134.100.4.42), directory pub/virus/texts/catalog.  (A copy of the
CVC is also available by anonymous FTP on cert.org in the
pub/virus-l/docs/vtc directory.)

A third source of information is the monthly Virus Bulletin, published
in the UK.  Among other things, it gives detailed technical
information on viruses (see also A9 below).  Unfortunately, it is very
expensive (the subscription price is $395 per year).  US subscriptions
can be obtained by calling 203-431-8720 or writing to 590 Danbury
Road, Ridgefield, CT 06877; for European subscriptions, the number is
+44-235-555139 and the address is: The Quadrant, Abingdon, OX14 3YS,
England.

A fourth good source of information on DOS viruses is the "Computer
Viruses" report of the National/International Computer Security
Association.  This is updated regularly, and is fairly complete.
Copies cost approximately $75, and can be ordered by calling +1-
202-244-7875.  ICSA/NCSA also publishes the monthly "Virus News and
Reviews" and other publications.

Another source of information is the documentation of Dr. Solomon's
Anti-Virus ToolKit.  It is more complete than the CVC list, just as
accurate (if not more), but lists only DOS viruses.  However, it is
not available electronically; you must buy his anti-virus package and
the virus information is part of the documentation.

Yet another source of information is "Virus News International",
published by S & S International.  And, while not entirely virus-
related, "Computers & Security" provides information on many
aspects of computer security, including viruses.

The best source of information available on Apple Macintosh viruses is
the on-line documentation provided with the freeware Disinfectant
program by John Norstad.  This is available at most Mac archive sites.


A8) Where can I get free or shareware anti-virus programs?

The VIRUS-L/comp.virus archive sites carry publicly distributable
anti-virus software products.  See a recent listing of the archive
sites (or ask the moderator for a recent listing) for more information
on these sites.

Many freeware/shareware anti-virus programs for DOS are available via
anonymous FTP on WSMR-SIMTEL20.ARMY.MIL (192.88.110.20), in the
directory PD1:<MSDOS.TROJAN-PRO>.  Note that the SIMTEL20 archives
are also "mirrored" at many other anonymous FTP sites, including
oak.oakland.edu (141.210.10.117, pub/msdos/trojan-pro),
wuarchive.wustl.edu (128.252.135.4, /mirrors/msdos/trojan-pro),
and nic.funet.fi (128.214.6.100, /pub/msdos/utilities/trojan-pro).
They can also be obtained via e-mail in uuencoded form from various
TRICKLE sites, especially in Europe.

Likewise, Macintosh anti-virus programs can be found on SIMTEL20 in
the PD3:<MACINTOSH.VIRUS> directory.

A list of many anti-viral programs, incl. commercial products and one
person's rating of them, can be obtained by anonymous ftp from
cert.org (192.88.209.5) in pub/virus-l/docs/reviews as file
slade.quickref.rvw.


A9)  Where can I get more information on viruses, etc.?

There are four excellent books on computer viruses available that
should cover most of the introductory and technical questions you
might have:

    * "Computers Under Attack: Intruders, Worms and Viruses," edited by
   Peter J. Denning, ACM Press/Addison-Wesley, 1990.  This is a book of
   collected readings that discuss computer viruses, computer worms,
   break-ins, legal and social aspects, and many other items related to
   computer security and malicious software.  A very solid, readable
   collection that doesn't require a highly-technical background.
   Price: $20.50.

     * "Rogue Programs: Viruses, Worms and Trojan Horses," edited by
   Lance J. Hoffman, Van Nostrand Reinhold, 1990.  This is a book of
   collected readings describing in detail how viruses work, where they
   come from, what they do, etc.  It also has material on worms, trojan
   horse programs, and other malicious software programs.  This book
   focuses more on mechanism and relatively less on social aspects than
   does the Denning book; however, there is an excellent piece by Anne
   Branscomb that covers the legal aspects.  Price: $32.95.

     * "A Pathology of Computer Viruses," by David Ferbrache,
   Springer-Verlag, 1992.  This is a recent, in-depth book on the
   history, operation, and effects of computer viruses.  It is one of the
   most complete books on the subject, with an extensive history section,
   a section on Macintosh viruses, network worms, and Unix viruses (if
   they were to exist).

     * "A Short Course on Computer Viruses", by Dr. Fred B. Cohen, ASP
   Press, 1990.  This book is by a well-known pioneer in virus research,
   who has also written dozens of technical papers on the subject.  The
   book can be obtained by writing to ASP Press, P.O. Box 81270,
   Pittsburgh, PA 15217.  Price: $24.00.

A somewhat dated, but still useful, high-level description of viruses,
suitable for a complete novice without extensive computer background
is in "Computer Viruses: Dealing with Electronic Vandalism and
Programmed Threats," by Eugene H. Spafford, Kathleen A. Heaphy, and
David J. Ferbrache, ADAPSO (Arlington VA), 1989.  ADAPSO is a
computer industry service organization and not a publisher, so the
book cannot be found in bookstores; copies can be obtained directly
from ADAPSO @ +1 703-522-5055).  There is a discount for ADAPSO
members, educators, and law enforcement personnel.  Many people have
indicated they find this a very understandable reference; portions of
it have been reprinted many other places, including Denning &
Hoffman's books (above).

It is also worth consulting various publications such as _Computers &
Security_ (which, while not restricted to viruses, contains many of
Cohen's papers) and the _Virus Bulletin_ (published in the UK; its
technical articles are considered good, although there has been much
criticism in VIRUS-L of some of its product evaluations).


======================================================
= Section B.   Definitions and General Information   =
======================================================

B1) What are computer viruses (and why should I worry about them)?

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 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.


B2) What is a Trojan Horse?

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 which 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.


B3) What are the main types of PC viruses?

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 which 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
which 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 which 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.


B4) What is a stealth virus?

A STEALTH virus is one which 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 (= 4096 = 4K).

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.


B5) What is a polymorphic virus?

A POLYMORPHIC virus is one which produces varied (yet fully
operational) copies of itself, in the hope that virus scanners (see
D1) 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.


B6) What are fast and slow infectors?

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 which, 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.


B7) What is a sparse infector?

The term "SPARSE infector" is sometimes given to a virus which
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.


B8) What is a companion virus?

A COMPANION virus is one which, 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 that 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.)


B9) What is an armored virus?

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


B10) Miscellaneous Jargon and Abbreviations

BSI = Boot Sector Infector: a virus which takes control when the
 computer attempts to boot (as opposed to a file infector).

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.

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.

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).

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.

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 (see
 C11).  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.  These can often be seen using utilities such as
 MEM, MAPMEM, PMAP, F-MMAP and INFOPLUS.


=================================
= Section C.    Virus Detection =
=================================

C1)  What are the symptoms and indications of a virus infection?

Viruses try to spread as much as possible before they deliver their
"payload", but there can be symptoms of virus infection before this,
and it is important to use this opportunity to spot and eradicate the
virus before any destruction.

There are various kinds of symptoms which some virus authors have
written into their programs, such as messages, music and graphical
displays.  However, the main indications are changes in file sizes and
contents, changing of interrupt vectors or the reassignment of other
system resources.  The unaccounted use of RAM or a reduction in the
amount known to be in the machine are important indicators.  The
examination of the code is valuable to the trained eye, but even the
novice can often spot the gross differences between a valid boot
sector and an infected one.  However, these symptoms, along with
longer disk activity and strange behavior from the hardware, can also
be caused by genuine software, by harmless "prank" programs, or by
hardware faults.

The only foolproof way to determine that a virus is present is for an
expert to analyze the assembly code contained in all programs and
system areas, but this is usually impracticable.  Virus scanners go
some way towards that by looking in that code for known viruses; some
will even try to use heuristic means to spot viral code, but this is
not always reliable.  It is wise to arm yourself with the latest
anti-viral software, but also to pay close attention to your system;
look particularly for any change in the memory map or configuration as
soon as you start the computer.  For users of DOS 5.0, the MEM program
with the /C switch is very handy for this.  If you have DRDOS, use MEM
with the /A switch; if you have an earlier version, use CHKDSK or the
commonly-available PMAP or MAPMEM utilities.  You don't have to know
what all the numbers mean, only that they change.  Mac users have
"info" options that give some indication of memory use, but may need
ResEdit for more detail.


C2)  What steps should be taken in diagnosing and identifying viruses?

Most of the time, a virus scanner program will take care of that for
you.  (Remember, though, that scanning programs must be kept up to
date.  Also remember that different scanner authors may call the same
virus by different names.  If you want to identify a virus in order to
ask for help, it is best to run at least two scanners on it and, when
asking, say which scanners, and what versions, gave the names.)  To
help identify problems early, run it on new programs and diskettes;
when an integrity checker reports a mismatch, when a generic
monitoring program sounds an alarm; or when you receive an updated
version of a scanner (or a different scanner than the one you have
been using).  However, because of the time required, it is not
generally advisable to insert into your AUTOEXEC.BAT file a command to
run a scanner on an entire hard disk on every boot.

If you run into an alarm that the scanner doesn't identify, or
doesn't properly clean up for you, first verify that the version that
you are using is the most recent, and then get in touch with one of
the reputable antivirus researchers, who may ask you to send a copy
of the infected file to him.  See also question C10.


C3) What is the best way to remove a virus?

In order that downtime be short and losses low, do the minimum that
you must to restore the system to a normal state, starting with
booting the system from a clean diskette.  It is very unlikely that
you need to low-level reformat the hard disk!

If backups of the infected files are available and appropriate care
was taken when making the backups (see D10), this is the safest
solution, even though it requires a lot of work if many files are
involved.

More commonly, a disinfecting program is used.  If the virus is a boot
sector infector, you can continue using the computer with relative
safety if you boot it from a clean system diskette, but it is wise to
go through all your diskettes removing infection, since sooner or
later you may be careless and leave a diskette in the machine when it
reboots.  Boot sector infections on PCs can be cured by a two-step
approach of replacing the MBR (on the hard disk), either by using a
backup or by the FDISK/MBR command (from DOS 5 and up), then using the
SYS command to replace the DOS boot sector.


C4) What does the <insert name here> virus do?

If an anti-virus program has detected a virus on your computer, don't
rush to post a question to this list asking what it does.  First, it
might be a false positive alert (especially if the virus is found only
in one file), and second, some viruses are extremely common, so the
question "What does the Stoned virus do?" or "What does the Jerusalem
virus do?" is asked here repeatedly.  While this list is monitored by
several anti-virus experts, they get tired of perpetually answering
the same questions over and over again.  In any case, if you really
need to know what a particular virus does (as opposed to knowing
enough to get rid of it), you will need a longer treatise than could
be given to you here.

For example, the Stoned virus replaces the disk's boot record with its
own, relocating the original to a sector on the disk that may (or may
not) occur in an unused portion of the root directory of a DOS
diskette; when active, it sits in an area a few kilobytes below the
top of memory.  All this description could apply to a number of common
viruses; but the important points of where the original boot sector
goes - and what effect that has on networking software, non-DOS
partitions, and so on are all major questions in themselves.

Therefore, it is better if you first try to answer your question
yourself.  There are several sources of information about the known
computer viruses, so please consult one of them before requesting
information publicly.  Chances are that your virus is rather well known
and that it is already described in detail in at least one of these
sources.  (See the answer to question A7, for instance.)


C5) What are "false positives" and "false negatives"?

A FALSE POSITIVE (or Type-I) error is one in which the anti-viral
software claims that a given file is infected by a virus when in
reality the file is clean.  A FALSE NEGATIVE (or Type-II) error is one
in which the software fails to indicate that an infected file is
infected.  Clearly false negatives are more serious than false
positives, although both are undesirable.

It has been proven by Dr. Fred Cohen that every virus detector must
have either false positives or false negatives or both.  This is
expressed by saying that detection of viruses is UNDECIDABLE.
However his theorem does not preclude a program which has no false
negatives and *very few* false positives (e.g. if the only false
positives are those due to the file containing viral code which is
never actually executed, so that technically we do not have a virus).

In the case of virus scanners, false positives are rare, but they can
arise if the scan string chosen for a given virus is also present in
some benign programs because the string was not well chosen.  False
negatives are more common with virus scanners because scanners will
miss a completely new or a heavily modified virus.

One other serious problem could occur: A positive that is misdiagnosed
(e.g., a scanner that detects the Empire virus in a boot record but
reports it as the Stoned).  In the case of a boot sector infector, use
of a Stoned specific "cure" to recover from the Empire could result in
an unreadable disk or loss of extended partitions.  Similarly,
sometimes "generic" recovery can result in unusable files, unless a
check is made (e.g. by comparing checksums) that the recovered file is
identical to the original file.  Some more recent products store
information about the original programs to allow verification of
recovery processes.


C6) Could an anti-viral program itself be infected?

Yes, so it is important to obtain this software from good sources, and
to trust results only after running scanners from a "clean" system.
But there are situations where a scanner appears to be infected when
it isn't.

Most antiviral programs try very hard to identify only viral
infections, but sometimes they give false alarms.  If two different
antiviral programs are both of the "scanner" type, they will contain
"signature strings" to identify viral infections.  If the strings are
not "encrypted", then they will be identified as a virus by another
scanner type program.  Also, if the scanner does not remove the
strings from memory after they are run, then another scanner may
detect the virus string "in memory".

Some "change detection" type antiviral programs add a bit of code or
data to a program when "protecting" it.  This might be detected by
another "change detector" as a change to a program, and therefore
suspicious.

It is good practice to use more than one antiviral program.  Do be
aware, however, that antiviral programs, by their nature, may confuse
each other.


C7) Where can I get a virus scanner for my Unix system?

Basically, you shouldn't bother scanning for Unix viruses at this
point in time.  Although it is possible to write Unix-based viruses,
we have yet to see any instance of a non-experimental virus in that
environment.  Someone with sufficient knowledge and access to write an
effective virus would be more likely to conduct other activities than
virus-writing.  Furthermore, the typical form of software sharing in
an Unix environment would not support virus spread.

This answer is not meant to imply that viruses are impossible, or that
there aren't security problems in a typical Unix environment -- there
are.  However, true viruses are highly unlikely and would corrupt file
and/or memory integrity.  For more information on Unix security, see
the book "Practical Unix Security" by Garfinkel and Spafford, O'Reilly
& Associates, 1991 (it can be ordered via e-mail from nuts@ora.com).

However, there are special cases for which scanning Unix systems for
non-Unix viruses does make sense.  For example, a Unix system which is
acting as a file server (e.g., PC-NFS) for PC systems is quite capable
of containing PC file infecting viruses that are a danger to PC clients.
Note that, in this example, the UNIX system would be scanned for PC
viruses, not UNIX viruses.

Another example is in the case of a 386/486 PC system running Unix,
since this system is still vulnerable to infection by MBR infectors
such as Stoned and Michelangelo, which are operating system
independent.  (Note that an infection on such a Unix PC system would
probably result in disabling the Unix disk partition(s) from booting.)

In addition, a file integrity checker (to detect unauthorized changes
in executable files) on Unix systems is a very good idea.  (One free
program which can do this test, as well as other tests, is the COPS
package, available by anonymous FTP on cert.org.)  Unauthorized
file changes on Unix systems are very common, although they usually
are not due to virus activity.


C8) Why does my anti-viral scanner report an infection only sometimes?

There are circumstances where part of a virus exists in RAM without
being active:  If your scanner reports a virus in memory only
occasionally, it could be due to the operating system buffering disk
reads, keeping disk contents that include a virus in memory
(harmlessly), in which case it should also find it on disk.  Or after
running another scanner, there may be scan strings left (again
harmlessly) in memory.  This is sometimes called a "ghost positive"
alert.


C9) Is my disk infected with the Stoned virus?

Of course the answer to this, and many similar questions, is to obtain
a good virus detector.  There are many to choose from, including ones
that will scan diskettes automatically as you use them.  Remember to
check all diskettes, even non-system ("data") diskettes.

It is possible, if you have an urgent need to check a system when
you don't have any anti-viral tools, to boot from a clean system
diskette, and use the CHKDSK method (mentioned in C1) to see if it is
in memory, then look at the boot sector with a disk editor.  Usually
the first few bytes will indicate the characteristic far jump of the
Stoned virus; however, you could be looking at a perfectly good disk
that has been "innoculated" against the virus, or at a diskette that
seems safe but contains a totally different type of virus.


C10) I think I have detected a new virus; what do I do?

Whenever there is doubt over a virus, you should obtain the latest
versions of several (not just one) major virus scanners. Some scanning
programs now use "heuristic" methods (F-PROT, CHECKOUT and SCANBOOT
are examples), and "activity monitoring" programs can report a disk or
file as being possibly infected when it is in fact perfectly safe
(odd, perhaps, but not infected).  If no string-matching scan finds a
virus, but a heuristic program does (or there are other reasons to
suspect the file, e.g., change in size of files) then it is possible
that you have found a new virus, although the chances are probably
greater that it is an odd-but-okay disk or file.  Start by looking in
recent VIRUS-L postings about "known" false positives, then contact
the author of the anti-virus software that reports it as virus-like;
the documentation for the software may have a section explaining what
to do if you think you have found a new virus.  Consider using the
BootID or Checkout programs to calculate the "hashcode" of a diskette
in the case of boot sector infectors, rather than send a complete
diskette or "live" virus until requested.


C11) CHKDSK reports 639K (or less) total memory on my system; am I
     infected?

If CHKDSK displays 639K for the total memory instead of 640K (655,360
bytes) - so that you are missing only 1K - then it is probably due to
reasons other than a virus since there are very few viruses which take
only 1K from total memory.  Legitimate reasons for a deficiency of 1K
include:

1) A PS/2 computer.  IBM PS/2 computers reserve 1K of conventional
  RAM for an Extended BIOS Data Area, i.e. for additional data storage
  required by its BIOS.
2) A computer with American Megatrends Inc. (AMI) BIOS, which is set
  up (with the built-in CMOS setup program) in such a way that the BIOS
  uses the upper 1K of memory for its internal variables.  (It can be
  instructed to use lower memory instead.)
3) A SCSI controller.
4) The DiskSecure program.
5) Mouse buffers for older Compaqs.

If, on the other hand, you are missing 2K or more from the 640K, 512K,
or whatever the conventional memory normally is for your PC, the
chances are greater that you have a boot-record virus (e.g. Stoned,
Michelangelo), although even in this case there may be legitimate
reasons for the missing memory:

1) Many access control programs for preventing booting from a floppy.
2) H/P Vectra computers.
3) Some special BIOSes which use memory (e.g.) for a built-in calendar
  and/or calculator.

However, these are only rough guides.  In order to be more certain
whether the missing memory is due to a virus, you should:
(1) run several virus detectors;
(2) look for a change in total memory every now and then;
(3) compare the total memory size with that obtained when cold booting
  from a "clean" system diskette.  The latter should show the normal
  amount of total memory for your configuration.

Note: in all cases, CHKDSK should be run without software such as
MS-Windows or DesqView loaded, since GUIs seem to be able to open DOS
boxes only on whole K boundaries (some seem to be even coarser); thus
CHKDSK run from a DOS box may report unrepresentative values.

Note also that some machines have only 512K or 256K instead of 640K of
conventional memory.


C12) I have an infinite loop of sub-directories on my hard drive; am I
     infected?

Probably not.  This happens now and then, when something sets the
"cluster number" field of some subdirectory the same cluster as an
upper-level (usually the root) directory.  The /F parameter of CHKDSK,
and any of various popular utility programs, should be able to fix
this, usually by removing the offending directory.  *Don't* erase any
of the "replicated" files in the odd directory, since that will erase
the "copy" in the root as well (it's really not a copy at all; just a
second pointer to the same file).


===================================
= Section D.    Protection plans  =
===================================

D1) What is the best protection policy for my computer?

There is no "best" anti-virus policy.  In particular, there is no
program that can magically protect you against all viruses.  But you
can design an anti-virus protection strategy based on multiple layers
of defense.  There are three main kinds of anti-viral software, plus
several other means of protection (such as hardware write-protect
methods).

1) GENERIC MONITORING programs.  These try to prevent viral activity
   before it happens, such as attempts to write to another executable,
   reformat the disk, etc.
   Examples: SECURE and FluShot+ (PC), and GateKeeper (Macintosh).

2) SCANNERS.  Most look for known virus strings (byte sequences which
   occur in known viruses, but hopefully not in legitimate software) or
   patterns, but a few use heuristic techniques to recognize viral
   code.  A scanner may be designed to examine specified disks or
   files on demand, or it may be resident, examining each program
   which is about to be executed.  Most scanners also include virus
   removers.
   Examples: FindViru in Dr Solomon's Anti-Virus Toolkit, FRISK's
   F-Prot, McAfee's VIRUSCAN (all PC), Disinfectant (Macintosh).
   Resident scanners: McAfee's V-Shield, and VIRSTOP.
   Heuristic scanners: the Analyse module in FRISK's F-PROT package,
   and SCANBOOT.

3) INTEGRITY CHECKERS or MODIFICATION DETECTORS.  These compute a
   small "checksum" or "hash value" (usually CRC or cryptographic)
   for files when they are presumably uninfected, and later compare
   newly calculated values with the original ones to see if the files
   have been modified.  This catches unknown viruses as well as known
   ones and thus provides *generic* detection.  On the other hand,
   modifications can also be due to reasons other than viruses.
   Usually, it is up to the user to decide which modifications are
   intentional and which might be due to viruses, although a few
   products give the user help in making this decision.  As in the
   case of scanners, integrity checkers may be called to checksum
   entire disks or specified files on demand, or they may be resident,
   checking each program which is about to be executed (the latter is
   sometimes called an INTEGRITY SHELL).  A third implementation is as
   a SELF-TEST, i.e. the checksumming code is attached to each
   executable file so that it checks itself just before execution.
   Examples: Fred Cohen's ASP Integrity Toolkit (commercial), and
   Integrity Master and VDS (shareware), all for the PC.

3a) A few modification detectors come with GENERIC DISINFECTION.  I.e.,
   sufficient information is saved for each file that it can be
   restored to its original state in the case of the great majority
   of viral infections, even if the virus is unknown.
   Examples: V-Analyst 3 (BRM Technologies, Israel), marketed in the
   US as Untouchable (by Fifth Generation), and the VGUARD module of
   V-care.

Of course, only a few examples of each type have been given.  All of
them can find their place in the protection against computer viruses,
but you should appreciate the limitations of each method, along with
system-supplied security measures that may or may not be helpful in
defeating viruses.  Ideally, you would arrange a combination of
methods that cover the loopholes between them.

A typical PC installation might include a protection system on the
hard disk's MBR to protect against viruses at load time (ideally this
would be hardware or in BIOS, but software methods such as DiskSecure
and PanSoft's Immunise are pretty good).  This would be followed by
resident virus detectors loaded as part of the machine's startup
(CONFIG.SYS or AUTOEXEC.BAT), such as FluShot+ and/or VirStop together
with ScanBoot.  A scanner such as F-Prot or McAfee's SCAN could be
put into AUTOEXEC.BAT to look for viruses as you start up, but this
may be a problem if you have a large disk to check (or don't reboot
often enough).  Most importantly, new files should be scanned as they
arrive on the system.  If your system has DR DOS installed, you should
use the PASSWORD command to write-protect all system executables and
utilities.  If you have Stacker or SuperStore, you can get some
improved security from these compressed drives, but also a risk that
those viruses stupid enough to directly write to the disk could do
much more damage than normal; using a software write-protect system
(such as provided with Disk Manager or Norton Utilities) may help, but
the best solution (if possible) is to put all executables on a disk of
their own, protected by a hardware read-only system that sounds an
alarm if a write is attempted.

If you do use a resident BSI detector or a scan-while-you-copy
detector, it is important to trace back any infected diskette to its
source; the reason why viruses survive so well is that usually you
cannot do this, because the infection is found long after the
infecting diskette has been forgotten with most people's lax scanning
policies.

Organizations should devise and implement a careful policy, that may
include a system of vetting new software brought into the building and
free virus detectors for home machines of employees/students/etc who
take work home with them.

Other anti-viral techniques include:
(a) Creation of a special MBR to make the hard disk inaccessible when
    booting from a diskette (the latter is useful since booting from a
    diskette will normally bypass the protection in the CONFIG.SYS and
    AUTOEXEC.BAT files of the hard disk).  Example: GUARD.
(b) Use of Artificial Intelligence to learn about new viruses and
    extract scan patterns for them.  Examples: V-Care (CSA Interprint,
    Israel; distributed in the U.S. by Sela Consultants Corp.), Victor
    Charlie (Bangkok Security Associates, Thailand; distributed in the
    US by Computer Security Associates).
(c) Encryption of files (with decryption before execution).


D2) Is it possible to protect a computer system with only software?

Not perfectly; however, software defenses can significantly reduce
your risk of being affected by viruses WHEN APPLIED APPROPRIATELY.
All virus defense systems are tools - each with their own capabilities
and limitations.  Learn how your system works and be sure to work
within its limitations.

From a software standpoint, a very high level of protection/detection
can be achieved with only software, using a layered approach.

1)  ROM BIOS - password (access control) and selection of boot disk.
    (Some may consider this hardware.)

2)  Boot sectors - integrity management and change detection.

3)  OS programs - integrity management of existing programs,
    scanning of unknown programs.  Requirement of authentication
    values for any new or transmitted software.

4)  Locks that prevent writing to a fixed or floppy disk.

As each layer is added, invasion without detection becomes more
difficult.  However complete protection against any possible attack
cannot be provided without dedicating the computer to pre-existing or
unique tasks.  The international standardization of the world on the
IBM PC architecture is both its greatest asset and its greatest
vulnerability.


D3) Is it possible to write-protect the hard disk with only software?

The answer is no.  There are several programs which claim to do that,
but *all* of them can be bypassed using only the currently known
techniques that are used by some viruses.  Therefore you should
never rely on such programs *alone*, although they can be useful in
combination with other anti-viral measures.


D4) What can be done with hardware protection?

Hardware protection can accomplish various things, including: write
protection for hard disk drives, memory protection, monitoring and
trapping unauthorized system calls, etc.  Again, no tool is foolproof.

The popular idea of write-protection (see D3) may stop viruses
spreading to the disk that is protected, but doesn't, in itself,
prevent a virus from running.

Also, some of the existing hardware protections can be easily
bypassed, fooled, or disconnected, if the virus writer knows them
well and designs a virus which is aware of the particular defense.


D5) Will setting DOS file attributes to READ ONLY protect them from
    viruses?

No.  While the Read Only attribute will protect your files from a few
viruses, most simply override it, and infect normally.  So, while
setting executable files to Read Only is not a bad idea, it is
certainly not a thorough protection against viruses!


D6) Will password/access control systems protect my files from
    viruses?

All password and other access control systems are designed to protect
the user's data from other users and/or their programs.  Remember,
however, that when you execute an infected program the virus in it
will gain your current rights/privileges.  Therefore, if the access
control system provides *you* the right to modify some files, it will
provide it to the virus too.  Note that this does not depend on the
operating system used - DOS, Unix, or whatever.  Therefore, an access
control system will protect your files from viruses no better than it
protects them from you.

Under DOS, there is no memory protection, so a virus could disable the
access control system in memory, or even patch the operating system
itself.  On the more advanced operating systems (Unix) this is not
possible, so at least the protection cannot be disabled by a virus.
However it will still spread, due to the reasons noted above.  In
general, the access control systems (if implemented correctly) are
able only to slow down the virus spread, not to eliminate viruses
entirely.

Of course, it's better to have access control than not to have it at
all.  Just be sure not to develop a false sense of security and to
rely *entirely* on the access control system to protect you.


D7) Will the protection systems in DR DOS work against viruses?

Partially.  Neither the password file/directory protection available
from DR DOS version 5 onwards, nor the secure disk partitions
introduced in DR DOS 6 are intended to combat viruses, but they do to
some extent.  If you have DR DOS, it is very wise to password-protect
your files (to stop accidental damage too), but don't depend on it as
the only means of defense.

The use of the password command (e.g. PASSWORD/W:MINE *.EXE *.COM)
will stop more viruses than the plain DOS attribute facility, but that
isn't saying much!  The combination of the password system plus a disk
compression system may be more secure (because to bypass the password
system they must access the disk directly, but under SuperStore or
Stacker the physical disk is meaningless to the virus). There may be
some viruses which, rather than invisibly infecting files on
compressed disks in fact very visibly corrupt the disk.

The "secure disk partitions" system introduced with DR DOS 6 may be of
some help against a few viruses that look for DOS partitions on a
disk.  The main use is in stopping people fiddling with (and
infecting) your hard disk while you are away.

Furthermore, DR DOS is not very compatible with MS/PC-DOS, especially
down to the low-level tricks that some viruses are using.  For
instance, some internal memory structures are "read-only" in the sense
that they are constantly updated (for DOS compatibility) but not
really used by DR DOS, so that even if a sophisticated virus modifies
them, this does not have any effect.

In general, using a less compatible system diminishes the number of
viruses that can infect it.  For instance, the introduction of hard
disks made the Brain virus almost disappear; the introduction of 80286
and DOS 4.x+ made the Yale and Ping Pong viruses extinct, and so on.


D8) Will a write-protect tab on a floppy disk stop viruses?

In general, yes.  The write-protection on IBM PC (and compatible) and
Macintosh floppy disk drives is implemented in hardware, not software,
so viruses cannot infect a diskette when the write-protection mechanism
is functioning properly.

But remember:

(a) A computer may have a faulty write-protect system (this happens!)
    - you can test it by trying to copy a file to the diskette when it
    is presumably write-protected.
(b) Someone may have removed the tab for a while, allowing a virus on.
(c) The files may have been infected before the disk was protected.
    Even some diskettes "straight from the factory" have been known to be
    infected in the production processes.

So it is worthwhile scanning even write-protected disks for viruses.


D9) Do local area networks (LANs) help to stop viruses or do they
    facilitate their spread?

Both.  A set of computers connected in a well managed LAN, with
carefully established security settings, with minimal privileges for
each user, and without a transitive path of information flow between
the users (i.e., the objects writable by any of the users are not
readable by any of the others) is more virus-resistant than the same
set of computers if they are not interconnected.  The reason is that
when all computers have (read-only) access to a common pool of
executable programs, there is usually less need for diskette swapping
and software exchange between them, and therefore less ways through
which a virus could spread.

However, if the LAN is not well managed, with lax security, it could
help a virus to spread like wildfire.  It might even be impossible to
remove the infection without shutting down the entire LAN.

A network that supports login scripting is inherently more resistant
to viruses than one that does not, if this is used to validate the
client before allowing access to the network.


D10) What is the proper way to make backups?

Data and text files, and programs in source form, should be backed up
each time they are modified.  However, the only backups you should
keep of COM, EXE and other *executable* files are the *original*
versions, since if you back up an executable file on your hard disk
over and over, it may have become infected meanwhile, so that you may
no longer have an uninfected backup of that file.  Therefore:
  1. If you've downloaded shareware, copy it (preferably as a ZIP or
other original archive file) onto your backup medium and do not
re-back it up later.
  2. If you have purchased commercial software, it's best to create a
ZIP (or other) archive from the original diskettes (assuming they're
not copy protected) and transfer the archive onto that medium.  Again,
do not re-back up.
  3. If you write your own programs, back up only the latest version
of the *source* programs.  Depend on recompilation to reproduce the
executables.
  4. If an executable has been replaced by a new version, then of
course you will want to keep a backup of the new version.  However, if
it has been modified as a result of your having changed configuration
information, it seems safer *not* to back up the modified file; you
can always re-configure the backup copy later if you have to.
  5. Theoretically, source programs could be infected, but until such
a virus is discovered, it seems preferable to treat such files as
non-executables and back them up whenever you modify them.  The same
advice is probably appropriate for batch files as well, despite the
fact that a few batch file infectors have been discovered.


=======================================================
= Section E.    Facts and Fibs about computer viruses =
=======================================================

E1) Can boot sector viruses infect non-bootable floppy disks?

Any diskette that has been properly formatted contains an executable
program in the boot sector.  If the diskette is not "bootable," all
that boot sector does is print a message like "Non-system disk or disk
error; replace and strike any key when ready", but it's still
executable and still vulnerable to infection.  If you accidentally
turn your machine on with a "non-bootable" diskette in the drive, and
see that message, it means that any boot virus that may have been on
that diskette *has* run, and has had the chance to infect your hard
drive, or whatever.  So when thinking about viruses, the word
"bootable" (or "non-bootable") is really misleading.  All formatted
diskettes are capable of carrying a virus.


E2) Can a virus hide in a PC's CMOS memory?

No.  The CMOS RAM in which system information is stored and backed up
by batteries is ported, not addressable.  That is, in order to get
anything out, you use I/O instructions.  So anything stored there is
not directly sitting in memory.  Nothing in a normal machine loads the
data from there and executes it, so a virus that "hid" in the CMOS RAM
would still have to infect an executable object of some kind in order
to load and execute whatever it had written to CMOS.  A malicious
virus can of course *alter* values in the CMOS as part of its payload,
but it can't spread through, or hide itself in, the CMOS.

A virus could also use the CMOS RAM to hide a small part of its
body (e.g., the payload, counters, etc.).  However, any executable
code stored there must be first extracted to ordinary memory in order
to be executed.


E3) Can a virus hide in Extended or in Expanded RAM?

Theoretically yes, although no such viruses are known yet.  However,
even if they are created, they will have to have a small part resident
in conventional RAM; they cannot reside *entirely* in Extended or in
Expanded RAM.


E4) Can a virus hide in Upper Memory or in High Memory?

Yes, it is possible to construct a virus which will locate itself
in Upper Memory (640K to 1024K) or in High Memory (1024K to 1088K),
and a few currently known viruses (e.g. EDV) do hide in Upper Memory.

It might be thought that there is no point in scanning in these areas
for any viruses other than those which are specifically known to
inhabit them.  However, there are cases when even ordinary viruses can
be found in Upper Memory.  Suppose that a conventional memory-resident
virus infects a TSR program and this program is loaded high by the
user (for instance, from AUTOEXEC.BAT).  Then the virus code will also
reside in Upper Memory.  Therefore, an effective scanner must be able
to scan this part of memory for viruses too.


E5) Can a virus infect data files?

Some viruses (e.g., Frodo, Cinderella) modify non-executable files.
However, in order to spread, the virus must be executed.  Therefore
the "infected" non-executable files cannot be sources of further
infection.

However, note that it is not always possible to make a sharp
distinction between executable and non-executable files.  One man's
code is another man's data and vice versa.  Some files that are not
directly executable contain code or data which can under some
conditions be executed or interpreted.

Some examples from the IBM PC world are .OBJ files, libraries, device
drivers, source files for any compiler or interpreter, macro files
for some packages like MS Word and Lotus 1-2-3, and many others.
Currently there are viruses that infect boot sectors, master boot
records, COM files, EXE files, BAT files, and device drivers, although
any of the objects mentioned above can theoretically be used as an
infection carrier.  PostScript files can also be used to carry a virus,
although no currently known virus does that.


E6) Can viruses spread from one type of computer to another?

The simple answer is that no currently known viruses can do this.
Although the disk formats may be the same (e.g. Atari ST and DOS), the
different machines interpret the code differently.  For example, the
Stoned virus cannot infect an Atari ST as the ST cannot execute the
virus code in the bootsector.  The Stoned virus contains instructions
for the 80x86 family of CPU's that the 680x0-family CPU (Atari ST)
can't understand or execute.

The more general answer is that such viruses are possible, but
unlikely.  Such a virus would be quite a bit larger than current
viruses and might well be easier to find.  Additionally, the low
incidence of cross-machine sharing of software means that any such
virus would be unlikely to spread -- it would be a poor environment
for virus growth.


E7) Can DOS viruses run on non-DOS machines (e.g. Mac, Amiga)?

In general, no.  However, on machines running DOS emulators (either
hardware or software based), DOS viruses - just like any DOS program -
may function.  These viruses would be subject to the file access
controls of the host operating system.  An example is when running a
DOS emulator such as VP/ix under a 386 UNIX environment, DOS
programs are not permitted access to files which the host UNIX system
does not allow them to.  Thus, it is important to administer these
systems carefully.


E8) Can mainframe computers be susceptible to computer viruses?

Yes.  Numerous experiments have shown that computer viruses spread
very quickly and effectively on mainframe systems.  However, to our
knowledge, no non-research computer virus has been seen on mainframe
systems.  (The Internet worm of November 1988 was not a computer virus
by most definitions, although it had some virus-like characteristics.)

Computer viruses are actually a special case of something else called
"malicious logic", and other forms of malicious logic -- notably
Trojan horses -- are far quicker, more effective, and harder to detect
than computer viruses.  Nevertheless, on personal computers many more
viruses are written than Trojans.  There are two reasons for this:
(1) Since a virus propagates, the number of users to which damage can
be caused is much greater than in the case of a Trojan; (2) It's
almost impossible to trace the source of a virus since viruses are
not attached to any particular program.

For further information on malicious programs on multi-user systems,
see Matt Bishop's paper, "An Overview of Malicious Logic in a Research
Environment", available by anonymous FTP on Dartmouth.edu
(129.170.16.4) as "pub/security/mallogic.ps".


E9) Some people say that disinfecting files is a bad idea.  Is that
    true?

Disinfecting a file is completely "safe" only if the disinfecting
process restores the non-infected state of the object completely.  That
is, not only the virus must be removed from the file, but the original
length of the file must be restored exactly, as well as its time and
date of last modification, all fields in the header, etc.  Sometimes
it is necessary to be sure that the file is placed on the same
clusters of the disk that it occupied prior to infection.  If this is
not done, then a program which uses some kind of self-checking or
copy protection may stop functioning properly, if at all.

None of the currently available disinfecting programs do all this.
For instance, because of the bugs that exist in many viruses, some of
the information of the original file is destroyed and cannot be
recovered. Other times, it is even impossible to detect that this
information has been destroyed and to warn the user.  Furthermore,
some viruses corrupt information very slightly and in a random way
(Nomenklatura, Phoenix), so that it is not even possible to tell which
files have been corrupted.

Therefore, it is usually better to replace the infected objects with
clean backups, provided you are certain that your backups are
uninfected (see D10).  You should try to disinfect files only if they
contain some valuable data that cannot be restored from backups or
compiled from their original source.


E10) Can I avoid viruses by avoiding shareware/free software/games?

No.  There are many documented instances in which even commercial
"shrink wrap" software was inadvertently distributed containing
viruses.  Avoiding shareware, freeware, games, etc. only isolates you
from a vast collection of software (some of it very good, some of it
very bad, most of it somewhere in between...).

The important thing is not to avoid a certain type of software, but to
be cautious of ANY AND ALL newly acquired software.  Simply scanning
all new software media for known viruses would be rather effective at
preventing virus infections, especially when combined with some other
prevention/detection strategy such as integrity management of
programs.


E11) Can I contract a virus on my PC by performing a "DIR" of an
     infected floppy disk?

If you assume that the PC you are using is virus free before you
perform the DIR command, then the answer is no.  However, when you
perform a DIR, the contents of the boot sector of the diskette are
loaded into a buffer for use when determining disk layout etc., and
certain anti-virus products will scan these buffers.  If a boot sector
virus has infected your diskette, the virus code will be contained in
the buffer, which may cause some anti-virus packages to give the
message "xyz virus found in memory, shut down computer immediately".
In fact, the virus is not a threat at this point since control of the
CPU is never passed to the virus code residing in the buffer.  But,
even though the virus is really not a threat at this point, this
message should not be ignored.  If you get a message like this, and
then reboot from a clean DOS diskette and scan your hard-drive and
find no virus, then you know that the false positive was caused by the
fact that the infected boot-sector was loaded into a buffer, and the
diskette should be appropriately disinfected before use.  The use of
DIR will not infect a clean system, even if the diskette it is being
performed on does contain a virus.


E12) Is there any risk in copying data files from an infected floppy
    disk to a clean PC's hard disk?

Assuming that you did not boot or run any executable programs from the
infected disk, the answer is generally no.  There are two caveats: 1)
you should be somewhat concerned about checking the integrity of these
data files as they may have been destroyed or altered by the virus,
and 2) if any of the "data" files are interpretable as executable by
some other program (such as a Lotus macro) then these files should be
treated as potentially malicious until the symptoms of the infection
are known.  The copying process itself is safe (given the above
scenario).  However, you should be concerned with what type of files
are being copied to avoid introducing other problems.


E13) Can a DOS virus survive and spread on an OS/2 system using the
     HPFS file system?

Yes, both file-infecting and boot sector viruses can infect HPFS
partitions.  File-infecting viruses function normally and can activate
and do their dirty deeds, and boot sector viruses can prevent OS/2
from booting if the primary bootable partition is infected.  Viruses
that try to directly address disk sectors cannot function because OS/2
prevents this activity.


E14) Under OS/2 2.0, could a virus infected DOS session infect another
    DOS session?

Each DOS program is run in a separate Virtual DOS Machine (their
memory spaces are kept separated by OS/2).  However, any DOS program
has almost complete access to the files and disks, so infection can
occur if the virus infects files; any other DOS session that executes
a program infected by a virus that makes itself memory resident would
itself become infected.

However, bear in mind that all DOS sessions share the same copy of the
command interpreter.  Hence if it becomes infected, the virus will be
active in *all* DOS sessions.


E15) Can normal DOS viruses work under MS Windows?

Most of them cannot.  A system that runs exclusively MS Windows is,
in general, more virus-resistant than a plain DOS system.  The reason
is that most resident viruses are not compatible with the memory
management in Windows.  Furthermore, most of the existing viruses will
damage the Windows applications if they try to infect them as normal
EXE files.  The damaged applications will stop working and this will
alert the user that something is wrong.

However, virus-resistant is by no means virus-proof.  For instance,
most of the well-behaved resident viruses that infect only COM files
(Cascade is an excellent example), will work perfectly in a DOS
window.  All non-resident COM infectors will be able to run and infect
too.  And currently there exists at least one Windows-specific virus
which is able to properly infect Windows applications (it is
compatible with the NewEXE file format).

Any low level trapping of Interrupt 13, as by resident boot sector and
MBR viruses, can also affect Windows operation, particularly if
protected disk access (32BitDiskAccess=ON in SYSTEM.INI) is used.


=========================================
= Section F.    Miscellaneous Questions =
=========================================

F1) How many viruses are there?

It is not possible to give an exact number because new viruses are
being created literally every day.  Furthermore, different anti-virus
researchers use different criteria to decide whether two viruses are
different or one and the same.  Some count viruses as different if
they differ by at least one bit in their non-variable code.  Others
group the viruses in families and do not count the closely related
variants in one family as different viruses.

Taking a rough average, as of October 1992 there were about 1,800 IBM
PC viruses, about 150 Amiga viruses, about 30 Macintosh viruses, about
a dozen Acorn Archimedes viruses, several Atari ST viruses, and a few
Apple II viruses.

However, very few of the existing viruses are widespread.  For
instance, only about three dozen of the known IBM PC viruses are
causing most of the reported infections.


F2) How do viruses spread so quickly?

This is a very complex issue.  Most viruses don't spread very quickly.
Those that do spread widely are able to do so for a variety of
reasons.  A large target population (i.e., millions of compatible
computers) helps...  A large virus population helps...  Vendors whose
quality assurance mechanisms rely on, for example, outdated scanners
help...  Users who gratuitously insert new software into their systems
without making any attempt to test for viruses help...  All of these
things are factors.


F3) What is the plural of "virus"?  "Viruses" or "viri" or "virii" or...

The correct English plural of "virus" is "viruses."  The Latin word is
a mass noun (like "air"), and there is no correct Latin plural.
Please use "viruses," and if people use other forms, please don't use
VIRUS-L/comp.virus to correct them.


F4) When reporting a virus infection (and looking for assistance), what
    information should be included?

People frequently post messages to VIRUS-L/comp.virus requesting
assistance on a suspected virus problem.  Quite often, the information
supplied is not sufficient for the various experts on the list to be
able to help out.  Also note that any such assistance from members of
the list is provided on a volunteer basis; be grateful for any help
received.  Try to provide the following information in your requests
for assistance:
        - The name of the virus (if known);
        - The name of the program that detected it;
        - The version of the program that detected it;
        - Any other anti-virus software that you are running and
whether it has been able to detect the virus or not, and if yes, by
what name did it call it;
        - Your software and hardware configuration (computer type,
kinds of disk(ette) drives, amount of memory and configuration
(extended/expanded/conventional), TSR programs and device drivers
used, OS version, etc.)

It is helpful if you can use more than one scanning program to
identify a virus, and to say which scanner gave which identification.
However, some scanning programs leave "signatures" in memory which
will confuse others, so it is best to do a "cold reboot" between runs
of successive scanners, particularly if you are getting confusing
results.


F5) How often should we upgrade our anti-virus tools to minimize
    software and labor costs and maximize our protection?

This is a difficult question to answer.  Antiviral software is a kind
of insurance, and these type of calculations are difficult.

There are two things to watch out for here: the general "style" of the
software, and the signatures which scanners use to identify viruses.
Scanners should be updated more frequently than other software, and it
is probably a good idea to update your set of signatures at least once
every two months.

Some antiviral software looks for changes to programs or specific
types of viral "activity," and these programs generally claim to be
good for "all current and future viral programs."  However, even these
programs cannot guarantee to protect against all future viruses, and
should probably be upgraded once per year.

Of course, not every anti-virus product is effective against all
viruses, even if upgraded regularly.  Thus, do *not* depend on the
fact that you have upgraded your product recently as a guarantee that
your system is free of viruses!


=====================================================================
= Section G.    Specific Virus and Anti-viral software Questions... =
=====================================================================


G1) I was infected by the Jerusalem virus and disinfected the infected
    files with my favorite anti-virus program.  However, Wordperfect
    and some other programs still refuse to work.  Why?

The Jerusalem virus and WordPerfect 4.2 program combination is an
example of a virus and program that cannot be completely disinfected
by an anti-virus tool.  In some cases such as this one, the virus will
destroy code by overwriting it instead of appending itself to the
file.  The only solution is to re-install the programs from clean
(non-infected) backups or distribution media.  (See question D10.)


G2) I was told that the Stoned virus displays the text "Your PC is now
    Stoned" at boot time.  I have been infected by this virus several
    times, but have never seen the message.  Why?

The "original" Stoned message was ".Your PC is now Stoned!", where the
"." represents the "bell" character (ASCII 7 or "PC speaker beep").
The message is displayed with a probability of 1 in 8 only when a PC is
booted from an infected diskette.  When booting from an infected hard
disk, Stoned never displays this message.

Recently, versions of Stoned with no message whatsoever or only the
leading bell character have become very common.  These versions of
Stoned are likely to go unnoticed by all but the most observant, even
when regularly booting from infected diskettes.

Contrary to some reports, the Stoned virus -does NOT- display the
message "LEGALISE MARIJUANA", although such a string is quite clearly
visible in the boot sectors of diskettes infected with the "original"
version of Stoned in "standard" PC's.


G3) I was infected by both Stoned and Michelangelo.  Why has my
    computer became unbootable?  And why, each time I run my favorite
    scanner, does it find one of the viruses and say that it is
    removed, but when I run it again, it says that the virus is still
    there?

These two viruses store the original Master Boot Record at one and the
same place on the hard disk.  They do not recognize each other, and
therefore a computer can become infected with both of them at the same
time.

The first of these viruses that infects the computer will overwrite
the Master Boot Record with its body and store the original MBR at a
certain place on the disk.  So far, this is normal for a boot-record
virus.  But if now the other virus infects the computer too, it will
replace the MBR (which now contains the virus that has come first)
with its own body, and store what it believes is the original MBR (but
in fact is the body of the first virus) AT THE SAME PLACE on the hard
disk, thus OVERWRITING the original MBR.  When this happens, the
contents of the original MBR are lost.  Therefore the disk becomes
non-bootable.

When a virus removal program inspects such a hard disk, it will see
the SECOND virus in the MBR and will try to remove it by overwriting
it with the contents of the sector where this virus normally stores
the original MBR.  However, now this sector contains the body of the
FIRST virus.  Therefore, the virus removal program will install the
first virus in trying to remove the second.  In all probability it
will not wipe out the sector where the (infected) MBR has been stored.

When the program is run again, it will find the FIRST virus in the
MBR.  By trying to remove it, the program will get the contents of the
sector where this virus normally stores the original MBR, and will
move it over the current (infected) MBR.  Unfortunately, this sector
still contains the body of the FIRST virus.  Therefore, the body of
this virus will be re-installed over the MBR ad infinitum.

There is no easy solution to this problem, since the contents of the
original MBR is lost.  The only solution for the anti-virus program is
to detect that there is a problem, and to overwrite the contents of
the MBR with a valid MBR program, which the anti-virus program will
have to carry with itself.  If your favorite anti-virus program is not
that smart, consider replacing it with a better one, or just boot from
a write-protected uninfected DOS 5.0 diskette, and execute the program
FDISK with the option /MBR.  This will re-create the executable code
in the MBR without modifying the partition table data.

In general, infection by multiple viruses of the same file or area is
possible and vital areas of the original may be lost.  This can make
it difficult or impossible for virus disinfection tools to be
effective, and replacement of the lost file/area will be necessary.

====================
[End of VIRUS-L/comp.virus FAQ]

