| vfind(1) | CyberSoft VFind Security Toolkit | vfind(1) |
| vfind - Heterogeneous Antivirus Tool |
|
VFind is a heterogeneous virus scanner that
simultaneously scans for UNIX, Amiga, Macintosh, Windows
95/NT, and Dos viruses, including Denial of Service
attacks, Back Door attacks, hostile Java Applications and
Applets, OLE/VB5 Macro viruses, and common hacks.
OPTIONS
|
LICENSESVFind requires a LICENSE file to run. This LICENSE file is host specific, therefore vfind will only run on the licensed machine. Additional licenses may be purchased by contacting:CyberSoft, Inc.At start-up, vfind searches for the LICENSE file in these locations:
INPUTVFind can be run in three ways.
OUTPUTVFind's output can be very verbose at times. In order to cut down the output we recommend using the choke method.The choke method is as simple as piping the output from vfind into grep, or a similar tool. Each line of output from vfind starts with a chevron as follows:
Example: find / -type f | vfind | grep '##==>>>' > REPORT The above example would only show errors and virus detection messages. SMARTSCANVFind is a SmartScan compliant tool. Specifying the -ssr option to vfind will cause vfind to read a SmartScan stream from stdin. For example:
find /export/home -type f -print | uad -s -ssw | \
vfind -ssr > REPORT
SPEEDWhy would you ever want to use less than the maximum speed? Most users will never have to worry about this; however, here are a couple of reasons someone might.One reason is that there is a space/speed trade-off. With --speed=2, vfind typically takes about 8 Megabytes of dynamic space to run. If this is prohibitive on your machine (i.e., vfind can't run or there is excessive paging), try --speed=1. Another reason involves the trade-off between start-up time and marginal scan time. With --speed=2 there is a substantial start-up time as vfind initializes various internal structures. This might be on the order of, e.g., a second. When scanning a single small file, this might be a waste of time. On the other hand, --speed=2 provides the fastest marginal scan time, that is, the time needed to scan each extra byte of data. Thus, when scanning large amounts of data with a single invocation of vfind (such as when handling SmartScan data from uad(1) or handling a large number of file names piped in via standard input), --speed=2" (if you have the space for it) is a good idea despite the start-up time. |
||||||||||||||
|
VFind includes an internal locking mechanism to facilitate VDL updates.
This is useful for systems where vfind processes are started continuously,
for example a mail server which runs vfind automatically to process one
or more newly arrived mail messages. If updated VDL files were installed
at the same time that a vfind process was started, the VDL data read by
vfind could be wrong or missing. This problem is avoided by using
lvfind and Lvfind links to vfind which use internal locking.
A dummy file, $VSTK_HOME/data/LOCK by default, is used for the fcntl() locking.
There is also a --lock= command-line option to specify an alternate lock file.
If vfind is invoked using a name starting with 'l', (e.g. an lvfind symlink to vfind), then it attempts to acquire a shared (read-only) lock on the LOCK file. If invoked using a name starting with 'L' (e.g. Lvfind), then it attempts to acquire an exclusive (read-write) lock on the LOCK file. Shared locks do not interfere with other shared locks, but will fail if there is an existing exclusive lock. An exclusive lock will fail if there are any other locks of either type. Shared locks require only read access to the LOCK file, but an exclusive lock requires read-write access. lvfind will release the lock only after reading all VDL files, including those from the data/vfind/vdl.list VDL list file plus any others specified using --vdl=, --vdlc=, etc. command-line options. Lvfind simply waits up to 60 seconds (Lsleep option) and then exits, it does not read any VDL files or scan any input data. It prints the process id to stderr (as though --pid was specified) to facilitate killing it. The default values for command-line options are equivalent to specifying: lvfind 60 Lvfind 60 60If locking fails due to interfering locks, it is retried up to 59 more times (lcount_max option), with a 1 second delay between attempts. The locking could fail, for example, if a VDL update process is started while an lvfind process holds a shared lock. If the locking fails due to some reason other than interfering locks, that is a fatal locking error; lvfind will set the vfind error flag, give up on the locking, and continue; Lvfind will just exit. After 60 failed locking attempts (lcount_max option), lvfind will set the vfind error flag and give up, continuing with the rest of the program; but Lvfind will just exit. |
| VFind will restart using execvp() when receiving signal SIGHUP. This is useful with the -i,--ignore-eof option when running vfind as a daemon, to restart after updating VDLs. VFind should only be restarted when input is at EOF, otherwise stdio buffering can cause a loss of data and/or smartscan desyncronization. |
| LICENSE |
| uad(1), cit(1), thd(1), bhead(1), jdis(1), find(1), dd(1), grep(1) |
| Please report all bugs to support@cyber.com Make sure to include the version of vfind, the platform and OS, the script or command used, the complete output showing the bug, a short description of the problem, and contact information. |
| © 1991-2003 by CyberSoft, Inc. All rights reserved. |
| vfind(1) | CyberSoft VFind Security Toolkit | vfind(1) |