1575 lines
55 KiB
Plaintext
1575 lines
55 KiB
Plaintext
Comparison: Products to Detect Changes to Programs
|
||
|
||
Prepared by David J. Stang, Ph.D.
|
||
and (c) 1990, 1991 by
|
||
the National Computer Security Association
|
||
Suite 309, 4401-A Connecticut Ave NW
|
||
Washington DC 20008
|
||
Voice: 202-364-8252
|
||
BBS: 202-364-1304
|
||
|
||
This document may be freely distributed, but may not be altered
|
||
in any way.
|
||
|
||
This is a review of some of those checksum or CRC comparison
|
||
programs. In it, I make an effort to concisely describe the
|
||
merits of this class of products, and then to help
|
||
you in selecting a product from their ranks.
|
||
|
||
There is a difference between checksum algorithms and CRC --
|
||
cyclic redundancy check -- algorithms. The latter usually uses a
|
||
table, and is usually a bit slower than the former. Despite the
|
||
differences, many authors seem to use the words
|
||
interchangeably, and we will continue the sloppy practice in this
|
||
chapter.
|
||
|
||
Each file has a unique fingerprint in the form of a checksum
|
||
or CRC. Changes in any character within the file likely change
|
||
the checksum or CRC. If a file's original CRC is known --
|
||
perhaps recorded in a file elsewhere -- and its current CRC is
|
||
known, the two values can be compared. Any difference indicates
|
||
that the file has been changed, and offers reason to investigate
|
||
further. For example, DELOUSE allows you to build a list of
|
||
critical system files that are normally subject to attack, and
|
||
check them periodically for changes.
|
||
|
||
If a program's size is changed, it must be concluded that some
|
||
modification has occured to the file. If the size has not changed,
|
||
some modification is still possible. A file that contains the simple
|
||
message Hi Mom! could be modified so that it contained the
|
||
message Hi Dad!, and it would not show any change in size.
|
||
|
||
A much tougher test of whether a file has been modified is to
|
||
compute the checksum or CRC cyclic redundancy check. At
|
||
this writing, there are no viruses able to modify a file without
|
||
modifying the file's CRC. Thus any checksum checker will work
|
||
just fine in catching viruses, providing that you use it to
|
||
establish checksums before a virus has modified your files.
|
||
|
||
How is the checksum computed? Simply adding the values of all
|
||
the characters in the file is not enough, as a file containing just
|
||
"AE" would produce the same result as a file with just "EA".
|
||
Rather, the first byte of a file is read, and an algorithm applied
|
||
to it. This algorithm does something to the value of the byte,
|
||
such as rotating the bits a certain number of times, and logically
|
||
ANDING or ORING the bits to something else. The result of
|
||
that algorithm is then applied to the next byte of the file. The
|
||
process is repeated until the final byte is reached, and the
|
||
remainder is recorded. During this process, different algorithms
|
||
might be used for different portions of the code being processed.
|
||
With most procedures, a small file produces a checksum value of
|
||
the same size as a large file.
|
||
|
||
Is there such as thing as "the" CRC value? No. The algorithm
|
||
used defines the result. There are two popular algorithms in use:
|
||
a standard CCITT CRC and a popular XMODEM CRC. Consider
|
||
COMMAND.COM for DOS 3.3 dated 2/2/88 and taking 25308
|
||
bytes. Here are some of the checksums produced for this file by
|
||
various programs. SSCRC and Validate (method 1) use the
|
||
CCITT standard. All others in the list use some other approach.
|
||
|
||
o BSearch, 16-bit CRC - 13369 (3439 h)
|
||
o BSearch, CRCTT - 10994 (2AC0 h)
|
||
o CHKSUM - 20011 (4E2B h)
|
||
o CRCDOS - 59676 (E91C h)
|
||
o Delouse, method 1 - 1073916 (1062FC h)
|
||
o Delouse, method 2 - 1067428 (1049A4 h)
|
||
o Delouse, method 3 - 1048666 (10005A h)
|
||
o The Detective, CRC 1 - 26939 (693B h)
|
||
o The Detective, CRC 2 - 54914 (D682 h)
|
||
o Module Integrity Check - 24922 (615A)
|
||
o SSCRC - 52167 (CBC7 h)
|
||
o Validate, method 1 - 52167 (CBC7 h)
|
||
o Validate, method 2 - 4024 (0FB8 h)
|
||
o VCheck - 2141344 (0020ACA0 h)
|
||
|
||
|
||
|
||
WHY DETECT CHANGES?
|
||
|
||
|
||
|
||
There are several good reasons.
|
||
|
||
o Viruses have great difficulty infecting your machine
|
||
without making some change in it. To detect a change
|
||
is to begin the process of detecting a virus. Although
|
||
some are concerned that a change-detecting program
|
||
cannot prove there isn't already a virus in your
|
||
computer, the fact is that you needn't worry about this.
|
||
If you infect your computer with a dozen viruses, then
|
||
measure its state, one of these viruses will change that
|
||
state in the next hour or so; a remeasurement
|
||
establishes that something is afoot.
|
||
|
||
o Occasionally things go wrong with computer hardware
|
||
and software. You run CHKDSK and discover a
|
||
number of lost clusters in a number of lost chains. You
|
||
scrap these clusters, but wonder what files you've lost.
|
||
A proper change-detection program will give you a list
|
||
of files deleted since your last run. You can then
|
||
restore them from your backups.
|
||
|
||
o In many organizations, we only want to permit the use
|
||
of "authorized software." Using a proper
|
||
change-detection program, you can establish what
|
||
software was added to the machine since your last run.
|
||
Any "extra" software will quickly come to your
|
||
attention.
|
||
|
||
|
||
|
||
CAN A VIRUS BEAT THE SYSTEM?
|
||
|
||
|
||
The answer may be yes. You need to know how, so it doesn't
|
||
happen to you. The defeat can come at the hands of a
|
||
CRC-aware virus (none exists yet) or at the hands of a stealth
|
||
virus (there are several now).
|
||
|
||
|
||
|
||
CRC-AWARE VIRUSES
|
||
|
||
|
||
In theory, a virus could be written that would compute a file's
|
||
CRC, add itself to the file, then replace additional characters
|
||
from the file until the new CRC was the same as the old one.
|
||
Such a virus would escape the attention of many checksum
|
||
checkers.
|
||
|
||
Programs could catch such a virus by using an incremental
|
||
cyclic redundancy check approach. In this approach, files are
|
||
dissected into randomly-sized blocks of data, using dynamic
|
||
block size allocations that allow files as small as one byte to be
|
||
accurately checked. CHECKUP uses this approach. It scans and
|
||
compares every byte of the target files on a block-by-block basis.
|
||
If the recorded file sizes, any of the block CRC comparisons, or
|
||
the CRC totals do not match, CHECKUP alerts users that the
|
||
target files have been altered.
|
||
|
||
Another approach to the problem is to compute the check in two
|
||
different ways. For example, if both a checksum and a file size
|
||
were to be calculated and recorded for later comparison, it is
|
||
unlikely that a virus could be modified without mismatching on
|
||
one of the comparisons. Or if checksums were to be calculated
|
||
using two different algorithms, the virus would again likely fail
|
||
to fool both techniques.
|
||
|
||
Thus if some future virus were to compute checksums prior to
|
||
infections, pad their viral code with characters that maintain
|
||
checksum integrity and then infect, CHECKUP could catch it.
|
||
|
||
|
||
|
||
STEALTH VIRUSES
|
||
|
||
|
||
A stealth virus is able to defeat a checksum program if it loads
|
||
into memory before the checksum program runs. The stealth
|
||
virus can then detect the checksum program as it attempts to
|
||
read each program on the disk, and before letting the checksum
|
||
program see the file it is trying to read, extracting the virus
|
||
from it. After the checksum program is satisfied that there is no
|
||
virus in the file, the virus in memory can re-insert it into the
|
||
file just checked.
|
||
|
||
Such a problem can be easily avoided: simply boot the system
|
||
from an uninfected floppy, then run your checksum program
|
||
from it.
|
||
|
||
In the tables presented here, space has been provided for you to
|
||
rate an additional product.
|
||
|
||
|
||
|
||
PRODUCT COMPARISONS
|
||
|
||
|
||
|
||
|
||
EASE OF USE
|
||
|
||
|
||
Conducting these evaluations was not easy. In the table below, I
|
||
record my joy or frustration in trying to master the program.
|
||
|
||
Alert
|
||
|
||
This program makes claims of ease of use, with a
|
||
pop-up, drop-down menus, mouse support, nifty sound
|
||
effects, and the like. But the blinking text on the
|
||
screen will certainly drive you crazy, if you are still
|
||
sane after waiting, Alert would like to run McAfee's
|
||
scan every time you add a file to the list it will check;
|
||
it doesn't accept wild cards, so if you thought you
|
||
would do a checksum on all of your files, assume that
|
||
you won't be able to install it in less than a week.
|
||
Installation and simple evaluation took 53 minutes.
|
||
|
||
The Antibody Test
|
||
|
||
Antibody's installation is extremely easy, if it works.
|
||
You cannot simply copy the files to your hard disk --
|
||
you must let Antibody do it for you. In the process,
|
||
Antibody wants to check the integrity of your
|
||
distribution disk. If you have any alien file on this
|
||
disk, Antibody will abort after 3 or 4 minutes of
|
||
self-examination. Beat the system by clearing the
|
||
read-only and hidden attributes of SIGNATURE.DAT,
|
||
then rename it. Antibody will create a new file for you
|
||
and proceed. The manual includes a comprehensive list
|
||
of error messages and their meanings.
|
||
|
||
BSearch
|
||
|
||
No installation required! Copy BSEARCH.EXE to
|
||
anywhere on your hard disk, and run it with the
|
||
obvious wildcards. For example, BSEARCH C:\*.* will
|
||
examine everything.
|
||
|
||
CHKSUM
|
||
|
||
Simply copy to anywhere on your hard disk and enter
|
||
"CHKSUM". You'll be prompted for what you should
|
||
have entered.
|
||
|
||
Checkup
|
||
|
||
The most difficult of all the packages reviewed here.
|
||
Documentation spans five files, and numbers almost
|
||
100 pages. With such a mass of instructions, you are
|
||
unlikely to have any success in installing the program.
|
||
The verbosity extends to the log file, which you can
|
||
create to record any file mismatches. The log file for a
|
||
single run on 183 files was 270K - nearly 2K per file.
|
||
Should you try to use the product on a large hard disk,
|
||
your log would be worthless.
|
||
|
||
CRCDOS
|
||
|
||
As with CHKSUM, simply copy to anywhere and go!
|
||
Instructions will appear on the screen if you simply
|
||
enter "CRCDOS."
|
||
|
||
Delouse
|
||
|
||
It took just four minutes to completely understand how
|
||
Delouse works and to begin building the file of CRC
|
||
values. Installation is nothing more than copying a few
|
||
files to anywhere on your hard disk. Delouse can also
|
||
be run from a floppy.
|
||
|
||
The Detective
|
||
|
||
Copy and go. When first run, the program pops up a
|
||
simple menu that works very well. You'll be asked
|
||
what drives to process and what file extensions to
|
||
check. Entering * will process everything. You'll be
|
||
asked if you also wish to scan for viruses (meaning to
|
||
compute CRCs) as you produce the file list for
|
||
subsequent checks. Also, The Detective keeps itself
|
||
up-to-date with each run. On every run, the most
|
||
recent signatures are copied to the "old" list, and new
|
||
signatures are computed for comparison.
|
||
|
||
F-Prot
|
||
|
||
Copy F-OSCHK to any location on your hard disk and
|
||
enter F-OSCHK. It will display five numbers which are
|
||
encrypted checksums of the partition table, boot record,
|
||
and three operating system files. AUTOEXEC.BAT can
|
||
then be given a line beginning with (path) F-OSCHK
|
||
and followed by these five values.
|
||
|
||
FICHECK
|
||
|
||
Seemingly easy to use. Can be run from a menu or as a
|
||
command line in a batch file. However documentation
|
||
for the command line operation is poor, and misleading.
|
||
|
||
Module Integrity Check
|
||
|
||
Copy the file MIC to anywhere on your hard disk and
|
||
enter MIC. There are no menus, nothing to select.
|
||
You'll create a list of CRCs, if none exists, in your root.
|
||
If one exists, it will be renamed "OLD", and another
|
||
will be created. The two will be automatically
|
||
compared. You'll be notified of any changes, any added
|
||
files, and any deleted files. You'll also be notified if
|
||
nothing has changed. All information is automatically
|
||
sent to reports in the root. Nothing could be simpler.
|
||
|
||
Novirus
|
||
|
||
Copy the program to anywhere on your hard disk, and
|
||
it makes a hidden file in the root containing what it
|
||
claims is encrypted CRC, file date, time, and size
|
||
information for each of the three system files.
|
||
Installation and use are very easy.
|
||
|
||
SSCRC
|
||
|
||
Very easy. Copy the file to your hard disk, and run the
|
||
program. Onscreen instructions tell you to enter /F to
|
||
create the File of CRCs or /C to Check files against
|
||
these CRCs. Requires ANSI.SYS
|
||
|
||
Validate
|
||
|
||
Very easy to use for finding the CRC of a single file.
|
||
Simply copy VALIDATE to your drive, and run it.
|
||
Impossible to use for checking the CRCs of all files, as
|
||
it does not work with a list, does not accept wildcards,
|
||
and will not compare current CRC with stored CRC.
|
||
|
||
VCheck
|
||
|
||
Fairly straightforward. You may need to follow the
|
||
example in the manual to guess the spacing required
|
||
for parameters in the command line. Results are
|
||
displayed on your screen, and you'll need to press a key
|
||
to continue scanning, after the screen fills. This
|
||
ensures you'll spot a surprise change in a file, but
|
||
doesn't deliver the kind of power that suits it for a
|
||
batch file. Not menu-driven.
|
||
|
||
VirusGuard
|
||
|
||
Simply type INSTALL. VirusGuard will install itself on
|
||
your hard disk and scan all COM and EXE files for
|
||
their signatures. It will also modify your
|
||
AUTOEXEC.BAT to automatically invoke RAMWATCH
|
||
on subsequent boots. Our copy of the program did not
|
||
come with documentation, however, so we are a bit
|
||
limited in our review here.
|
||
|
||
|
||
|
||
NUMBER OF TECHNIQUES
|
||
|
||
|
||
|
||
The program should compute checksums using two different
|
||
approaches, or compute both file size and checksum, to ensure
|
||
that a virus doesn't modify a file in such a way that the
|
||
checksum isn't changed. Gilmore Systems has a program called
|
||
PROVECRC that creates a modified version of a file that is
|
||
different, but that has the same CRC as the original. The
|
||
program proves that a single CRC is not fool-proof for virus
|
||
detection, for it is possible to write a virus -- much like they
|
||
wrote PROVECRC -- which can add code to your programs
|
||
without changing the CRC. When two algorithms are used,
|
||
PROVECRC creates changes undetected by one, but detected by
|
||
the other.
|
||
|
||
Alert
|
||
|
||
Alert uses different algorithms on different portions of
|
||
each file. A file records the results of these algorithms
|
||
in encrypted form in a file which covers all of a group
|
||
of files you wish to check. It is very unlikely that any
|
||
virus author would have the interest or patience to
|
||
break the scheme.
|
||
|
||
The Antibody Test
|
||
|
||
Antibody lists all files added or deleted since the last
|
||
comparison, as well as showing any changes in size,
|
||
date, time, or attributes.
|
||
|
||
BSearch
|
||
|
||
Stores filenames (with paths), file sizes, 16-bit and
|
||
32-bit checksums in an indexed databases. Uses a
|
||
binary tree indexed database structure to store the files
|
||
quickly and allow even quicker searches and updates.
|
||
|
||
CHKSUM
|
||
|
||
Uses a single 16-bit checksum approach.
|
||
|
||
Checkup
|
||
|
||
Offers three different options for calculation:
|
||
table-driven incremental CRC, cumulative CRC, and
|
||
cumulative checksum.
|
||
|
||
CRCDOS
|
||
|
||
Uses a single 16-bit checksum approach.
|
||
|
||
Delouse
|
||
|
||
Uses three different checksum algorithms. All are
|
||
simple, but slightly different in the way they calculate
|
||
the checksum. One of these algorithms is chosen at
|
||
random when Delouse starts, and the method number
|
||
is recorded in a data file. You can force Delouse to
|
||
choose one of the three methods if you wish.
|
||
|
||
The Detective
|
||
|
||
Uses two different 16-bit CRC algorithms.
|
||
|
||
F-Prot
|
||
|
||
F-OSCHK uses just one algorithm.
|
||
|
||
FICHECK
|
||
|
||
FICHECK uses one 16-bit algorithm, MFICHECK uses
|
||
another. Both are bundled in the same package.
|
||
|
||
Module Integrity Check
|
||
|
||
Uses one 16-bit algorithm.
|
||
|
||
Novirus
|
||
|
||
Appears from testing that Novirus uses no checksum or
|
||
CRC algorithm, despite the claims of its
|
||
documentation. Using a sector editor, for instance, the
|
||
word "Microsoft" was changed to "Machosoft" in
|
||
COMMAND.COM. Novirus was unable to recognize
|
||
this. I changed the attributes of the hidden system
|
||
files, and again Novirus failed to detect the change. I
|
||
renamed COMMAND.COM, infected it with Jerusalem,
|
||
and renamed it to COMMAND.COM. Novirus
|
||
recognized the change, but only because of the
|
||
increased file size. When I used NU to reduce the size
|
||
of the infected file to its original size, as listed in the
|
||
root directory, Novirus did not recognize it as a
|
||
problem. It appears that no checksumming is done,
|
||
although this is claimed in the documentation. Checks
|
||
on file existence, date, size, and time do appear to be
|
||
done. For instance, I booted, deleted COMMAND.COM,
|
||
and ran Novirus. Novirus halted the system. It also
|
||
halted the system when I used NU to increase the size
|
||
of COMMAND.COM to 999999999.
|
||
|
||
SSCRC
|
||
|
||
Uses one 16-bit CCITT CRC algorithm.
|
||
|
||
Validate
|
||
|
||
Uses two 16-bit algorithms, one of which is CCITT
|
||
CRC.
|
||
|
||
VCheck
|
||
|
||
Uses one 32-bit algorithm.
|
||
|
||
VirusGuard
|
||
|
||
Appears to use one algorithm. CRCs are encrypted.
|
||
|
||
|
||
|
||
SCANNING OF CRITICAL SYSTEM FILES
|
||
|
||
|
||
|
||
On an MS-DOS hard disk, there are five critical system files
|
||
that are read during the boot process: the partition table, the
|
||
boot record, two hidden system files, and COMMAND.COM.
|
||
Because many viruses take up residence in the partition table,
|
||
boot record, or COMMAND.COM, it may be desirable to check
|
||
these files on each boot. Not all CRC programs, however, can
|
||
check all of these files. Two points are awarded for each file it
|
||
can check. Note that viruses rarely touch the two hidden system
|
||
files, and many do not touch COMMAND.COM Quite a few,
|
||
however, get into the partition table of the hard disk or boot
|
||
record of floppies.
|
||
|
||
Alert
|
||
|
||
Alert cannot examine the partition table or boot record.
|
||
It can check the other three files.
|
||
|
||
The Antibody Test
|
||
|
||
Antibody does not check the partition table. It does
|
||
check the other four files automatically, however.
|
||
|
||
BSearch
|
||
|
||
Does not scan partition table or boot record.
|
||
|
||
CHKSUM
|
||
|
||
Does not scan partition table or boot record.
|
||
|
||
Checkup
|
||
|
||
Does not scan partition table or boot record.
|
||
|
||
CRCDOS
|
||
|
||
Does not scan partition table or boot record.
|
||
|
||
Delouse
|
||
|
||
Does not scan partition table or boot record.
|
||
|
||
The Detective
|
||
|
||
Does not scan partition table or boot record. Further,
|
||
the evaluation version (reviewed here) will not examine
|
||
anything in the root, which is certainly the two hidden
|
||
system files and likely COMMAND.COM.
|
||
|
||
F-Prot
|
||
|
||
F-OSCHK scans all five files.
|
||
|
||
FICHECK
|
||
|
||
Automatically checks the CRC of the partition table
|
||
and the boot record, and logs this along with available
|
||
disk space and FAT ID byte. For all files checked, logs
|
||
date, time, size, attributes, and CRC, and reports any
|
||
discrepancies. Checking of hidden system files,
|
||
COMMAND.COM, etc. is at user discretion.
|
||
|
||
Module Integrity Check
|
||
|
||
Does not scan partition table or boot record.
|
||
|
||
Novirus
|
||
|
||
Does not scan partition table or boot record.
|
||
|
||
SSCRC
|
||
|
||
Does not scan partition table or boot record.
|
||
|
||
Validate
|
||
|
||
Does not scan partition table or boot record.
|
||
|
||
VCheck
|
||
|
||
Does not scan partition table or boot record.
|
||
|
||
VirusGuard
|
||
|
||
Does not scan partition table or boot record.
|
||
|
||
|
||
|
||
COMPLEXITY OF CHECKING ALGORITHM
|
||
|
||
|
||
|
||
A 32-bit CRC is potentially harder for a virus to beat than a
|
||
32-bit CRC; a pair of calculations is harder than a single
|
||
calculation. In this table, 10 points are awarded for the use of a
|
||
32-bit CRC or two 16-bit CRCs; 5 points for a single 16-bit CRC;
|
||
0 for no CRC.
|
||
|
||
Alert
|
||
|
||
Algorithm is not discussed in the documentation.
|
||
However, the encrypted CRC for just one file is 748
|
||
bytes - about 5% of the checked file's length. This
|
||
suggests that the algorithm is essentially unbreakable.
|
||
|
||
The Antibody Test
|
||
|
||
Algorithm is not discussed in the documentation.
|
||
However, the encrypted CRC for just each file is 128
|
||
bytes. This suggests that the algorithm is essentially
|
||
unbreakable.
|
||
|
||
BSearch
|
||
|
||
Performs both 16-bit and 32-bit checksums.
|
||
|
||
CHKSUM
|
||
|
||
Performs CRC-16 -- 16 bit cyclic redundancy check.
|
||
|
||
Checkup
|
||
|
||
Performs CRC-16 -- 16 bit cyclic redundancy check.
|
||
Results are encrypted.
|
||
|
||
CRCDOS
|
||
|
||
Performs CRC-16 -- 16 bit cyclic redundancy check.
|
||
|
||
Delouse
|
||
|
||
Performs CRC-16 -- 16 bit cyclic redundancy check.
|
||
|
||
The Detective
|
||
|
||
Performs both 16-bit and 32-bit cyclic redundancy
|
||
checks.
|
||
|
||
F-Prot
|
||
|
||
Not described in documentation. Encrypts recorded
|
||
checksums. Uses only one algorithm.
|
||
|
||
FICHECK
|
||
|
||
Computes CRC with FICHECK, modified CRC with
|
||
MFICHECK. You can run both, if you wish, to defeat
|
||
any imaginary virus that is able to defeat one of these
|
||
approaches.
|
||
|
||
Module Integrity Check
|
||
|
||
Computes a checksum on part of the file. Uses only one
|
||
algorithm.
|
||
|
||
Novirus
|
||
|
||
Does not appear to do any CRC/checksum computation.
|
||
|
||
SSCRC
|
||
|
||
Uses only one algorithm -- a 16-bit CCITT standard
|
||
CRC.
|
||
|
||
Validate
|
||
|
||
Uses two 16-bit algorithms, one of which is CCITT
|
||
CRC.
|
||
|
||
VCheck
|
||
|
||
Uses one 32-bit algorithm.
|
||
|
||
VirusGuard
|
||
|
||
Unknown.
|
||
|
||
|
||
|
||
SPEED WHEN CHECKING ALL FILES
|
||
|
||
|
||
|
||
From time to time, it may be desirable to check all files on the
|
||
hard disk for changes. However, if this process takes a long
|
||
time, users will not do it as often as they should. What is the
|
||
speed of checking files?
|
||
|
||
For our tests, we did CRC calculations on a 20Mb hard disk in a
|
||
12Mhz XT. The XT had a Norton SI of 1.8 for its computing
|
||
index, and 1.4 for its disk index, an overall performance index of
|
||
1.6 that of an IBM XT. It had a total of 2.3 Mb in 134 files in 19
|
||
directories. In each case, the checksum program was run from a
|
||
floppy. Timing was done with a shareware program called
|
||
TIMER. Numbers reported here are per file. Since it is not the
|
||
number of files, but the number of bytes, that determines the
|
||
overall speed of operation, your times will vary if your files are
|
||
larger or smaller, on average, than those in the test suite. Our
|
||
average file was 18,651 bytes. So to say that scanning files took
|
||
about 2 seconds a piece is to say that the program could scan
|
||
9,325 bytes per second. A 20 Mb hard disk, full to the brim,
|
||
would take such a program 37 minutes to scan fully. If you
|
||
restricted the program to COM, EXE, OVL, BIN, SYS, and other
|
||
executable files (an intelligent restriction), you might cut this
|
||
time in half or more.
|
||
|
||
Alert
|
||
|
||
I could not imagine waiting while Alert checked all
|
||
files on the hard disk. Scanning just one file took 13.5
|
||
seconds. Checking the 2.3 Mb on the test hard disk
|
||
would have taken about 17.5 minutes. This is
|
||
unacceptable.
|
||
|
||
The Antibody Test
|
||
|
||
Antibody is slow, but not as slow as some of the others
|
||
tested here. It took 6 minutes, 14 seconds to scan all
|
||
programs on the hard disk -- 71 files, about 5 seconds a
|
||
piece.
|
||
|
||
BSearch
|
||
|
||
Building the initial database of all files -- including
|
||
manuals and other files -- took BSearch 10 minutes, 35
|
||
seconds -- about 4.7 seconds each. Then scanning
|
||
against this file took 10 minutes, 20 seconds -- about
|
||
4.6 seconds each.
|
||
|
||
CHKSUM
|
||
|
||
To compare the three DOS files with CRCs previously
|
||
computed took 5.6 seconds, about 1.9 seconds each.
|
||
Testing everything in the root took 13 seconds for 8
|
||
files, about 1.6 seconds each.
|
||
|
||
Checkup
|
||
|
||
To build a list of CRCs for 183 files took 9 minutes, 16
|
||
seconds, about 3 seconds each. It took 8 minutes, 35
|
||
seconds to use the author's proprietary "enhanced"
|
||
CRCs, about 2.8 seconds each. Using the checksum
|
||
approach took about 2.8 seconds each.
|
||
|
||
CRCDOS
|
||
|
||
To build a list of CRCs for 146 files, CRCDOS took 6
|
||
minutes 27 seconds, about 2.6 seconds each. Testing
|
||
everything on this list took 6 minutes, 24 seconds,
|
||
again about 2.6 seconds each.
|
||
|
||
Delouse
|
||
|
||
To build a list of CRCs for 146 files, Delouse took 2
|
||
minutes 38 seconds, about 1.1 seconds each. Testing
|
||
everything on this list took 2 minutes, 35 seconds,
|
||
again about 1.1 seconds each.
|
||
|
||
The Detective
|
||
|
||
To build a list of CRCs for 146 files, The Detective took
|
||
3 minutes 57 seconds, about 1.6 seconds each. Testing
|
||
everything on this list took exactly the same length of
|
||
time.
|
||
|
||
F-Prot
|
||
|
||
Scans five system files in 10.0 seconds, 2 seconds per
|
||
file. However, F-OSCHK cannot be made to calculate
|
||
checksums on any files but these.
|
||
|
||
FICHECK
|
||
|
||
To build a list of CRCs for 146 files, FICHECK took 5
|
||
minutes 27 seconds, about 2.2 seconds each. Testing
|
||
everything on this list took 5 minutes, 24 seconds,
|
||
again about 2.2 seconds each.
|
||
|
||
Module Integrity Check
|
||
|
||
To build a list of CRCs for 146 files, MIC took only 1
|
||
minute 30 seconds, about .6 seconds each! Testing
|
||
everything on this list took the same length of time.
|
||
The program achieves this blazing speed by performing
|
||
a checksum only on the parts of the file that a virus is
|
||
likely to infect: the top and the bottom.
|
||
|
||
Novirus
|
||
|
||
Scans three system files in 1.54 seconds, .5 seconds per
|
||
file. However, cannot be made to check any files but
|
||
these, and does not appear to calculate checksums.
|
||
|
||
SSCRC
|
||
|
||
To build a list of CRCs for 146 files, SSCRC took 6
|
||
minutes 27 seconds, about 2.6 seconds each. Testing
|
||
everything on this list took 6 minutes, 10 seconds,
|
||
about 2.5 seconds each.
|
||
|
||
Validate
|
||
|
||
To validate a selected file requires issuing the validate
|
||
command for that file, then looking the result up
|
||
on-line, from a BBS in California. Minimum time
|
||
required: perhaps 3 minutes per file.
|
||
|
||
VCheck
|
||
|
||
To build a list of CRCs for 87 COM and EXE files,
|
||
VCheck took 1 minute 55 seconds, about 1.3 seconds
|
||
each. Testing everything on this list took 1 minutes, 25
|
||
seconds, about 1 second each.
|
||
|
||
VirusGuard
|
||
|
||
To build a list of CRCs for 87 COM and EXE files,
|
||
VirusGuard took 1 minute 39 seconds, about 1.2
|
||
seconds each. Testing everything on this list took 1
|
||
minute, 42 seconds, again about 1.2 seconds each.
|
||
|
||
|
||
|
||
EFFICIENCY IN CHECKING ALL FILES
|
||
|
||
|
||
|
||
Does the program permit checking of all files with some option
|
||
such as "/ALL", or is it necessary to feed the program a list of
|
||
all the files you wish checked? The latter approach can be
|
||
grueling for any user with a large hard disk! Is there an upper
|
||
limit to the number of files that can be checked? Is the program
|
||
smart enough to check other logical drives, such as D:?
|
||
|
||
Alert
|
||
|
||
No. There does not seem to be any such efficiency
|
||
possible. The programwants to scan one file at a time,
|
||
and add one at a time to its list. Alert can only manage
|
||
a list of about 200 files. Alert does not know that
|
||
viruses do not inhabit documentation, and is likely to
|
||
begin by scanning its own manual! Creating a list to be
|
||
checked is very labor-intensive.
|
||
|
||
The Antibody Test
|
||
|
||
Antibody automatically scans the entire hard disk upon
|
||
installation. It can manage about 3900 file signatures.
|
||
Antibody ignores drives D:, E:, etc., however.
|
||
|
||
BSearch
|
||
|
||
There is no upper limit to the number of files that can
|
||
be checked. Ignores D:, E:. As with Antibody, BSearch
|
||
can be called from a batch file that scans specified
|
||
drives, directories. Output showing changes can be
|
||
routed to the printer, if this is desired.
|
||
|
||
CHKSUM
|
||
|
||
Power is about equivalent to BSearch. You can do
|
||
almost anything with batch files, but you will need to
|
||
be a bit handy with an ASCII editor to do so. You'll
|
||
need to specify if you want CHKSUM to look at D: for
|
||
you. There is no limit on the number of files that can
|
||
be checked. Unlike BSearch, CHKSUM will not look at
|
||
subdirectories of the specified target, unless you tell it
|
||
to.
|
||
|
||
Checkup
|
||
|
||
Checkup simply processes everything on your hard
|
||
disk, and does not work from any input list. There is
|
||
no upper limit on the number of files that can be
|
||
scanned, other than your patience. Checkup is happy to
|
||
point out that files have been changed, when they
|
||
haven't been. This occurs because Checkup creates one
|
||
X.XUP for every file beginning with X. Thus the
|
||
signature for X.BAT is stored in X.XUPand the
|
||
signatures for X.COM, X.SYS, X.BAK, etc. are
|
||
compared with the contents of this file. With perhaps
|
||
10% of such "claims" wrong, you will lose patience with
|
||
it quickly. Checkup gets a 10 for efficiency, a 0 for
|
||
accuracy.
|
||
|
||
CRCDOS
|
||
|
||
CRCDOS will process an ASCII list of files you give it,
|
||
a list you can create by entering CHKDSK *.* /v >>
|
||
filelist You can then feed CRCDOS this list with a
|
||
command such as CRCDOS -m crclist filelist. There is
|
||
no upper limit on the number of files that can be
|
||
scanned. D: and other drives are ignored unless
|
||
CRCDOS is told to work them over. Like CHKSUM,
|
||
CRCDOS will not automatically look at subdirectories
|
||
of the specified target, unless you tell it to.
|
||
|
||
Delouse
|
||
|
||
Much like CRCDOS. Delouse will process an ASCII list
|
||
of files you give it, a list you can create by
|
||
entering CHKDSK *.* /v >> delouse.dat You can then
|
||
feed Delouse this list with a command such as
|
||
DELOUSE MAKE. This creates a file DELOUSE.CHK
|
||
file, used during checking. To check, you enter
|
||
DELOUSE CHECK. There is no upper limit on the
|
||
number of files that can be scanned. D: and other
|
||
drives are ignored unless Delouse is told to work them
|
||
over. Like CHKSUM and CRCDOS, Delouse will not
|
||
automatically look at subdirectories of the specified
|
||
target, unless you tell it to.
|
||
|
||
The Detective
|
||
|
||
Intelligent menu-driven design. Prompts for drives, file
|
||
extensions. It is easier (and more sensible) to make it
|
||
simply check everything than to be selective.
|
||
|
||
F-Prot
|
||
|
||
Very efficient, but scans only the five system files.
|
||
|
||
FICHECK
|
||
|
||
Intelligent menu-driven design. Prompts for drives, file
|
||
extensions. It is easier (and more sensible) to make it
|
||
simply check everything than to be selective. Some
|
||
selectivity (with *.COM, *.EXE, etc.) is easy; other
|
||
selectivity (specific files) is harder to do.
|
||
|
||
Module Integrity Check
|
||
|
||
Checks all files automatically. Processes only the
|
||
current logical drive. Cannot be made to scan
|
||
selectively. Creates all reports, as disk files,
|
||
automatically. Because it is so fast, we award nearly
|
||
full points here.
|
||
|
||
Novirus
|
||
|
||
Cannot be made to check multiple drives. Cannot be
|
||
made to check files other than the three system files.
|
||
|
||
SSCRC
|
||
|
||
There is no upper limit to the number of files that can
|
||
be checked. Ignores D:, E:. As with Antibody and
|
||
BSearch, can be called from a batch file that scans
|
||
specified drives, directories. Output showing changes
|
||
can be routed to the printer, if this is desired.
|
||
|
||
Validate
|
||
|
||
No. There does not seem to be any efficiency possible.
|
||
The programwants to scan one file at a time, and is
|
||
unable to compare its results with anything in a list of
|
||
recorded checksums.
|
||
|
||
VCheck
|
||
|
||
Checks all COM and EXE files automatically. Processes
|
||
whatever logical drive you specify on the command line.
|
||
Cannot be made to scan selectively. Cannot be made to
|
||
scan SYS, BIN, OVL, or other files that might become
|
||
infected. Creates all reports, as disk files,
|
||
automatically.
|
||
|
||
VirusGuard
|
||
|
||
Checks all COM and EXE files automatically. Processes
|
||
whatever logical drive you specify on the command line.
|
||
Cannot be made to scan selectively. Cannot be made to
|
||
scan SYS, BIN, OVL, or other files that might become
|
||
infected. If a file is changed, the machine pauses
|
||
during signature checking, with the message "X.X has
|
||
been modified. Press F1 to acknowledge."
|
||
|
||
|
||
|
||
USER CONTROL OF FILES TO BE CHECKED
|
||
|
||
|
||
|
||
Because checking all files can take some time, users may wish to
|
||
provide the program with a list of files to be checked. Can this
|
||
be done? Can the user use their text editor or other convenient
|
||
tool to build the file list?
|
||
|
||
Alert
|
||
|
||
Yes. Users select those files they wish to check, via
|
||
menu. The menu system can be used to build a file list
|
||
for subsequent use. The file list is encrypted and not
|
||
editable with any program other than Alert, however.
|
||
|
||
The Antibody Test
|
||
|
||
No. Antibody cannot be given a short list. You may add
|
||
to its understanding of what should be checked, but
|
||
cannot subtract.
|
||
|
||
BSearch
|
||
|
||
You can only list by file type and directory. Thus you
|
||
can specify all COM files within each of 4 directories,
|
||
all EXEs within another 2 directories, etc. Each
|
||
instruction is offered on a separate command line, and
|
||
can be run from a batch file. The database cannot be
|
||
edited with most word processing programs, however.
|
||
|
||
CHKSUM
|
||
|
||
Building the list of files to check can be done easily by
|
||
redirecting the program's output (">>") to a file, then
|
||
editing this file into a batch file.
|
||
|
||
Checkup
|
||
|
||
No control.
|
||
|
||
CRCDOS
|
||
|
||
Extremely easy to use here. Hand CRCDOS a list of
|
||
files, and it builds a list of CRCs for those files. Hand
|
||
it this list, and it compares current and stored CRCs
|
||
for changes.
|
||
|
||
Delouse
|
||
|
||
A bit easier than CRCDOS, even, in that file names to
|
||
scan and to compare are hard-coded, so the command
|
||
line is simpler: you only need to enter "Delouse Make"
|
||
or "Delouse Check"
|
||
|
||
The Detective
|
||
|
||
The user controls the drive(s) to check, and the file
|
||
extensions to check, but cannot control the directories
|
||
to check or provide a list of specific files.
|
||
|
||
F-Prot
|
||
|
||
The user can choose to not check any of the five system
|
||
files. But the user cannot get F-OSCHK to scan any
|
||
other files than these.
|
||
|
||
FICHECK
|
||
|
||
The user controls the drive(s) to check, and the file
|
||
extensions to check, but cannot control the directories
|
||
to check or provide a list of specific files.
|
||
|
||
Module Integrity Check
|
||
|
||
MIC is so fast that it doesn't make any sense to
|
||
attempt to force it to scan selectively. Let it scan
|
||
everything. You're done. MIC is certainly the easiest to
|
||
use, most efficient of all the programs described in this
|
||
chapter.
|
||
|
||
Novirus
|
||
|
||
Offers no control over the checking process. Takes only
|
||
one command line - /I makes it start over with a new
|
||
database of information on the three files.
|
||
|
||
SSCRC
|
||
|
||
Offers no control over the checking process other than
|
||
permitting scan of a directory, rather than the entire
|
||
drive.
|
||
|
||
Validate
|
||
|
||
You can make it scan any file in any directory. But
|
||
scanning two files requires two commands. Not
|
||
practical for real-life.
|
||
|
||
VCheck
|
||
|
||
Offers no control over the checking process other than
|
||
permitting scan of a directory, rather than the entire
|
||
drive.
|
||
|
||
VirusGuard
|
||
|
||
VirusGuard is so fast that it doesn't make any sense to
|
||
attempt to force it to scan selectively. Let it scan
|
||
everything. You're done. MIC is certainly the easiest to
|
||
use, most efficient of all the programs described in this
|
||
chapter.
|
||
|
||
|
||
|
||
ADDING SELF-CHECKING TO FILES
|
||
|
||
|
||
|
||
The most efficient approach to checking files is not to check only
|
||
critical files, or all files, but rather to check files as they are
|
||
run. This checking can be done with either code which is added
|
||
to each file, or with a memory-resident driver, that monitors file
|
||
access.
|
||
|
||
Adding code to a file is the idea of "vaccination." The file is
|
||
modified so that when it is run, control is first passed to the
|
||
appended code, which then calculates the checksum of the file
|
||
with the checksum that was stored in that file at the time of
|
||
vaccination. A failed comparison can result in an alert to the
|
||
user.
|
||
|
||
There are a few drawbacks to the approach. It slows processing
|
||
a small amount, it enlarges each file a small amount, it may not
|
||
work on COM files that are nearly 64K in size, since 64K is the
|
||
largest size supported by the COM format; it cannot work with
|
||
BIN, SYS, and OVL files; it cannot work with archived,
|
||
self-extracting EXE files, and so on. While some authorities,
|
||
such as Rich Levin, view such approaches as substantially
|
||
flawed, we are unconvinced.
|
||
|
||
Alert
|
||
|
||
This feature is not offered.
|
||
|
||
The Antibody Test
|
||
|
||
This feature is not offered.
|
||
|
||
BSearch
|
||
|
||
This feature is not offered.
|
||
|
||
CHKSUM
|
||
|
||
This feature is not offered.
|
||
|
||
Checkup
|
||
|
||
This feature is not offered.
|
||
|
||
CRCDOS
|
||
|
||
This feature is not offered.
|
||
|
||
Delouse
|
||
|
||
This feature is not offered.
|
||
|
||
The Detective
|
||
|
||
This feature is not offered.
|
||
|
||
F-Prot
|
||
|
||
The F-Prot package includes F-XLOCK, a program that
|
||
can make any other COM or EXE self-checking.
|
||
Entering F-XLOCK *.* will protect all COM and EXE
|
||
files in the current directory. When infected, the
|
||
program will hang the system and report "THIS
|
||
PROGRAM HAS BEEN INFECTED!" and the system
|
||
hangs.
|
||
|
||
FICHECK
|
||
|
||
This feature is not offered.
|
||
|
||
Module Integrity Check
|
||
|
||
This feature is not offered.
|
||
|
||
Novirus
|
||
|
||
This feature is not offered.
|
||
|
||
SSCRC
|
||
|
||
This feature is not offered.
|
||
|
||
Validate
|
||
|
||
This feature is not offered.
|
||
|
||
VCheck
|
||
|
||
This feature is not offered.
|
||
|
||
VirusGuard
|
||
|
||
This feature is not offered.
|
||
|
||
|
||
|
||
OPTIONAL SYSTEM LOCKUP ON DETECTION OF
|
||
MODIFICATION
|
||
|
||
|
||
|
||
Many things can modify a program: a virus, a hacker, an error
|
||
in using a sector editor. If a program has been modified, do you
|
||
want to try to run it? The smart money says no, let's stop right
|
||
now and see what has happened here. Running any program
|
||
that contains a virus is certain to spread the virus. It might be
|
||
desirable if the system is able to prevent any modified program
|
||
from running.
|
||
|
||
Alert
|
||
|
||
You are given ample warning about what files have
|
||
been modified. The warning is both auditory and
|
||
visual, and the screen requires you to press a key after
|
||
reading what has happened. The warning may not be
|
||
accurate, however. I swapped the names of two test
|
||
files, and Alert was unable to find one, told me the
|
||
other was the wrong size. Both, in fact, were where
|
||
they had been, but were completely modified. Further,
|
||
the warning on the screen tells the user to consult the
|
||
manual, rather than telling the user what to do next.
|
||
|
||
The Antibody Test
|
||
|
||
The log shows what has changed, and how. Optionally,
|
||
you may ask the program to display any text in any
|
||
file which has been changed since the last check.
|
||
However, there is no system lockup if a modification is
|
||
detected, nor are there any audible warnings.
|
||
|
||
BSearch
|
||
|
||
The log shows what has changed, and how. There is no
|
||
system lockup if a modification is detected. A faint beep
|
||
can be heard when any change is detected.
|
||
|
||
CHKSUM
|
||
|
||
Upon detecting a changed file, CHKSUM beeps and
|
||
displays a message. But it doesn't pause in its labors,
|
||
and the result of a massive infection is likely to go
|
||
scrolling off the screen. No lockup takes place on
|
||
mismatches.
|
||
|
||
Checkup
|
||
|
||
The documentation indicates that the system can be set
|
||
to lockup upon detection of a mismatch. We were not
|
||
able to create this effect on our test machine, however.
|
||
Further, although the documentation claims to permit
|
||
production of a log file, we were not able to do this.
|
||
Our copy was downloaded from the author's BBS.
|
||
|
||
CRCDOS
|
||
|
||
There is an extensive screen message whenever a
|
||
change is detected, but the system does not beep. No
|
||
lockup takes place on mismatches, either.
|
||
|
||
Delouse
|
||
|
||
There is a modest screen message whenever a change
|
||
is detected, but the system does not beep. No lockup
|
||
takes place on mismatches, either.
|
||
|
||
The Detective
|
||
|
||
You won't get a beep or message on the screen. A
|
||
report, sent to disk or your printer, lists the files that
|
||
have been added, deleted, or changed since the last run
|
||
of The Detective. Far too subtle for most users.
|
||
|
||
F-Prot
|
||
|
||
If any of the programs in the F-Prot package becomes
|
||
infected with any virus, or changed in any way, it
|
||
reports "THIS PROGRAM HAS BEEN INFECTED!". If
|
||
any program is protected with F-XLOCK, it will then
|
||
hang the system.
|
||
|
||
FICHECK
|
||
|
||
You won't get a beep or message on the screen. A
|
||
report, sent to disk or your printer, lists the files that
|
||
have been added, deleted, or changed since the last run
|
||
of FICHECK. Changes noted can include size, date,
|
||
time, crc. If the report is not requested, or not
|
||
requested correctly, or sent to disk, users may not
|
||
become aware of virus-induced changes.
|
||
|
||
Module Integrity Check
|
||
|
||
You get several very nice reports, automatically placed
|
||
in your root, showing files removed, added, and
|
||
changed since the last run. If a file has been changed
|
||
for any reason, MIC will tell you, and will tell you to
|
||
read the change report.
|
||
|
||
Novirus
|
||
|
||
If Novirus does manage to find a problem with a
|
||
change in the time, date, size or presence of one of your
|
||
three system files, it will halt the system and display a
|
||
full-screen warning message.
|
||
|
||
SSCRC
|
||
|
||
You won't hear a beep. You might see a notice go past
|
||
on the screen when a changed file is found. At the end
|
||
of the scan, you'll see a summary table, including a row
|
||
showing number of files failing CRC. Their names are
|
||
listed at the top of REPORT.CRC, placed in the root.
|
||
Your batch file that invokes SSCRC could send this
|
||
report to the printer, if you wished. There is no system
|
||
lockup. We might want this less subtle.
|
||
|
||
Validate
|
||
|
||
Because Validate makes no comparison with
|
||
pre-recorded CRCs, it cannot know if there is a
|
||
problem with a file. It is happy to scan infected files
|
||
and report their CRCs.
|
||
|
||
VCheck
|
||
|
||
You won't hear a beep. You will see a list, on screen, of
|
||
exactly which COM and EXE files have different CRCs
|
||
or sizes. Their names can be listed in a report you
|
||
create, which can be sent to the printer. There is no
|
||
system lockup.
|
||
|
||
VirusGuard
|
||
|
||
No beeps. But you'll see the changed program listed on
|
||
the screen, with the message that it has been modified.
|
||
You'll need to tap a key to remove the message from
|
||
the screen. There is no system lockup, and no hard
|
||
copy report or file of changes is created.
|
||
|
||
|
||
|
||
SELF-PROTECTION OF CHECKSUM PROGRAM
|
||
|
||
|
||
|
||
If a checksum program becomes infected, it then puts the virus
|
||
into memory before it begins to run. A stealth virus in memory
|
||
is able to remove itself from any file as the file is checksummed,
|
||
preventing the checker from finding the virus. Thus we need
|
||
some notification that the checksum program has been infected.
|
||
Ideally, the checker reports that it has been infected and quits
|
||
running.
|
||
|
||
To test this, we infected each checker with Jerusalem-B, and
|
||
tried running it.
|
||
|
||
Alert
|
||
|
||
Alert runs no worse with an infection than without one,
|
||
and never seems to notice that it has become a carrier
|
||
of Jerusalem.
|
||
|
||
The Antibody Test
|
||
|
||
As with Alert, Antibody runs just fine after infection.
|
||
|
||
BSearch
|
||
|
||
As with Alert and Antibody, BSearch runs just fine
|
||
with a Jerusalem infection.
|
||
|
||
CHKSUM
|
||
|
||
Runs well when infected.
|
||
|
||
Checkup
|
||
|
||
Runs as well when infected as when not infected --
|
||
poorly.
|
||
|
||
CRCDOS
|
||
|
||
Runs well when infected.
|
||
|
||
Delouse
|
||
|
||
Runs well when infected.
|
||
|
||
The Detective
|
||
|
||
Runs well when infected.
|
||
|
||
F-Prot
|
||
|
||
F-OSCHK reports that it has been infected. F-XLOCK
|
||
reports that it has been infected, and hangs the
|
||
system.
|
||
|
||
FICHECK
|
||
|
||
Runs well when infected. Includes an option to
|
||
self-check for virus infection. The self-check works.
|
||
After a few moments, it will report "Error - This
|
||
program has been altered or tampered with!" However,
|
||
the user must invoke this option deliberately and
|
||
manually.
|
||
|
||
Module Integrity Check
|
||
|
||
Runs well when infected.
|
||
|
||
Novirus
|
||
|
||
Runs well when infected.
|
||
|
||
SSCRC
|
||
|
||
Runs well when infected.
|
||
|
||
Validate
|
||
|
||
Runs well when infected.
|
||
|
||
VCheck
|
||
|
||
Runs well when infected.
|
||
|
||
VirusGuard
|
||
|
||
Runs well when infected.
|
||
|
||
|
||
|
||
VENDOR INFORMATION
|
||
|
||
|
||
|
||
o Alert. Version 2.20, available from the NCSA BBS as
|
||
ALERT220.ZIP. Also available from Robert W. Reed,
|
||
3858 Waterview Loop, Winter Park, FL 32792. Price:
|
||
$25 each for 1-10 licensees.
|
||
|
||
o The Antibody Test, version 1.03B. Available from
|
||
the NCSA BBS as ANTIBODY.ZIP. Also available at
|
||
no charge from Commander, TRADOC, ATTN: ATIS-S
|
||
(Major Richard W. Adams), Ft. Monroe, VA
|
||
23651-5000.
|
||
|
||
o BSearch. "If you find BSearch of value, a contribution
|
||
of $10 would be helpful." Available from the NCSA
|
||
BBS as BSEARCH.ZIP, or from David Harris, POB
|
||
2058, El Paso, TX 79951.
|
||
|
||
o CHKSUM is available from the NCSA BBS in a file
|
||
called CHKSUM.ZIP. It is also available from its
|
||
author, Bob Taylor, 8602 Woodlake Drive, Richmond,
|
||
VA 23229. The author does not request a contribution.
|
||
The package includes C source code.
|
||
|
||
o Checkup v. 3.9 (Levin) "This is not free software.
|
||
You are granted a limited license to evaluate this
|
||
program for ten days in your home or office. If you
|
||
continue to use this program, you must register with
|
||
the author. Registration fees are $24.95 per copy for
|
||
home users and $49.95 per copy for office users."
|
||
Available from the NCSA BBS as CHKUP39.ZIP or
|
||
from Richard B. Levin, POB 14546, Philadelphia, PA
|
||
19115.
|
||
|
||
o CRCDOS version 1.0. Available from the NCSA BBS
|
||
as CRCDOS.ZIP. This ZIP file includes C source
|
||
code. Written by R.E. Faith, January 11, 1988.
|
||
Released to the public domain, on condition that no fee
|
||
be charged for distribution, that authorship information
|
||
concerning source and any modifications will be
|
||
retained, and that the code is not included as part of a
|
||
commercial package.
|
||
|
||
o Delouse version 0.9 Available from the NCSA BBS as
|
||
DELOUSE.ZIP. Written by Phillip M. Nickell, February
|
||
28, 1988. Includes Pascal source code. No fee is
|
||
requested. No copyright is taken. Appears to be public
|
||
domain. Thanks, Mr. Nickell!
|
||
|
||
o The Detective version 1.2 Available from the NCSA
|
||
BBS as DETECT.ZIP. "The free version of The
|
||
Detective is expressly prohibited for use in commercial,
|
||
educational, and governmental institutions except for
|
||
the purpose of evaluation." The price per computer, if
|
||
you choose to register, is $25 for 1-50 computers, and
|
||
less with more. You may order the current version from
|
||
PC Solutions, POB 742, Mequon, WI 53092. (414)
|
||
241-9119. The shareware version, distributed via
|
||
bulletin boards, is unable to process files in the root
|
||
directory.
|
||
|
||
o F-Prot, version 1.12, is available from the NCSA's BBS
|
||
as FPROT112.ZIP. Version 1.12 of this package
|
||
contains a large number of extremely useful anti-virus
|
||
tools. From the standpoint of the present review, only
|
||
two are relevant, however: F-XLOCK (which permits all
|
||
programs to check for CRC changes as they are
|
||
executed) and F-OSCHK (which checks the partition
|
||
table, boot record, two hidden system files, and
|
||
COMMAND.COM) F-Prot is available from Fridrik
|
||
Skulason, Box 7180, IS-127 Reykjavik, Iceland. Pricing:
|
||
Skulason suggests $15 for 1-7 computers, and lower
|
||
payments on larger volumes.
|
||
|
||
o FICHECK, version 5.0, comes bundled with
|
||
MFICHECK 5.0 and PROVECRC ver 1.0. It may be
|
||
downloaded from the NCSA BBS as FICHECK5.ZIP. It
|
||
is available from the author, Chuck Gilmore, Gilmore
|
||
Systems, POB 3831, Beverly Hills, CA 90212-0831.
|
||
Pricing: "A 30 day trial period is granted. Afterward,
|
||
you may either order one of the commercial versions or
|
||
destroy the evaluation copies." Two commerical
|
||
versions are available: XFICHECK (eXtended
|
||
FICHECK) for $15 and PFICHECK (Professional
|
||
FICHECK) for $20.
|
||
|
||
o Module Integrity Check, version 1.0, is available
|
||
from the NCSA BBS in a file called MIC10.ZIP.
|
||
Pricing: "This program may be used by anyone free of
|
||
charge... Anyone who finds this program of value is
|
||
encouraged to make a voluntary donation to the
|
||
author... Even if you do not make a donation you are
|
||
still free to use this program as you see fit." Author:
|
||
Steve Leonard, 260 Dunbar Road, Hilton, NY 14468.
|
||
|
||
o Novirus version 3.0, accompanied by documentation
|
||
for version 2.0, is available in a file called
|
||
NOVIRUS3.ZIP on the NCSA BBS. It is also available
|
||
from the Interconnect BBS, 703-827-5762. Author:
|
||
Jeffrey Morley. Price: free.
|
||
|
||
o SSCRC, version 1.4, is available in a file called
|
||
SSCRC.ZIP from the NCSA BBS. Pricing: "If you use
|
||
this utility to protect your system, do the right thing
|
||
and send us $10", says the author. It is available from
|
||
OSR, 561 Blaxland Road, Eastwood, 2122, NSW,
|
||
Australia.
|
||
|
||
o Validate, version 0.3, is available in a file called
|
||
VALIDAT3.ZIP from the NCSA BBS. It is also
|
||
available at no charge from Computer Virus Industry
|
||
Association, 4423 Cheeney St., Santa Clara, CA 95054.
|
||
(408)-727-4559. Price: free.
|
||
|
||
o VCheck, version 1.1E, is available in a file called
|
||
VCHECK.ZIP on the NCSA BBS. Pricing: "If you use
|
||
VCHECK, send a registration of $25 to
|
||
Systemberatung Axel Dunkel, Robert-Schuman-Ring
|
||
37, D 6239 Kriftel, West Germany."
|
||
|
||
o VirusGuard.
|
||
|
||
|
||
|
||
SOME OBSERVATIONS
|
||
|
||
|
||
|
||
Once again, the correlation between price and value is upset.
|
||
Many of our highest scoring packages were the cheapest.
|
||
|
||
We note also the contradiction betwen our ratings and those
|
||
published elsewhere. The documentation accompanying Checkout
|
||
notes that the product is Compute!'s PC Magazine Editors choice
|
||
for virus protection, is the featured virus detection system in
|
||
Dvorak and Anis' "Dvorak's Guide to PC Telecommunications",
|
||
etc. We found it at the bottom of our scoring system. You may
|
||
wish to review our ratings of this product.
|
||
|
||
|
||
|
||
OTHER EVALUATION CONSIDERATIONS
|
||
|
||
|
||
|
||
We did not compare products on the following items, but you
|
||
may wish to:
|
||
|
||
o Can the program work on files with hidden, system,
|
||
read-only attributes.
|
||
|
||
o Can the program work from floppy disk? This is
|
||
valuable if you wish to use the program to monitor
|
||
another user's machine, for instance, to see if they are
|
||
clandestinely running a golf game that is not on the
|
||
approved corporate software list. It is also valuable for
|
||
guarding against stealth viruses.
|
||
|
||
o Can the program produces separate lists of deleted
|
||
files, added files, and changed files? Separate lists may
|
||
have benefits over a massive list of changes.
|
||
|
||
o Do you have control over whether the program updates
|
||
its baseline database? If the program updates this
|
||
everytime it is run, you will lose your history file.
|
||
|
||
|
||
|
||
+++++
|
||
|
||
|