Virus Behavior
Viruses come in a great many different forms, but they all potentially have
two phases to their execution, the infection phase and the attack phase:
Infection Phase
Virus writers have
to balance how and when their viruses infect against the possibility
of being detected. Therefore, the spread of an infection may not be
immediate. |
When the virus executes it has the potential to infect other programs. What's
often not clearly understood is precisely when it will infect the other programs.
Some viruses infect other programs each time they are executed; other viruses
infect only upon a certain trigger. This trigger could be anything; a day
or time, an external event on your PC, a counter within the virus, etc. Virus
writers want their programs to spread as far as possible before anyone notices
them.
It is a serious mistake to execute a program a few times - find nothing infected
and presume there are no viruses in the program. You can never be sure the
virus simply hasn't yet triggered its infection phase!
Many viruses go resident in the memory of your PC in the same or similar way
as terminate and stay resident (TSR) programs. (For those not old enough to
remember TSRs, they were programs that executed under DOS but stayed in memory
instead of ending.) This means the virus can wait for some external event
before it infects additional programs. The virus may silently lurk in memory
waiting for you to access a diskette, copy a file, or execute a program, before
it infects anything. This makes viruses more difficult to analyze since it's
hard to guess what trigger condition they use for their infection.
On older systems, standard (640K) memory is not the only memory vulnerable
to viruses. It is possible to construct a virus which will locate itself in
upper memory (the space between 640K and 1M) or in the High Memory Area (the
small space between 1024K and 1088K). And, under Windows, a virus can effectively
reside in any part of memory.
Resident viruses frequently take over portions of the system software on the
PC to hide their existence. This technique is called stealth. Polymorphic
techniques also help viruses to infect yet avoid detection.
Note that worms often take the opposite approach and spread as fast as possible.
While this makes their detection virtually certain, it also has the effect
of bringing down networks and denying access; one of the goals of many worms.
Attack Phase
| Viruses
need time to infect. Not all viruses attack, but all use system resources
and often have bugs. |
Many viruses do unpleasant things such as deleting files or changing random
data on your disk, simulating typos or merely slowing your PC down; some viruses
do less harmful things such as playing music or creating messages or animation
on your screen. Just as the infection phase can be triggered by some event,
the attack phase also has its own trigger.
Does this mean a virus without an attack phase is benign? No. Most viruses
have bugs in them and these bugs often cause unintended negative side effects.
In addition, even if the virus is perfect, it still steals system resources.
(Also, see the "good" virus discussion.)
Viruses often delay revealing their presence by launching their attack only
after they have had ample opportunity to spread. This means the attack could
be delayed for days, weeks, months, or even years after the initial infection.
The attack phase is optional, many viruses simply reproduce and have no trigger
for an attack phase. Does this mean that these are "good" viruses?
No! Anything that writes itself to your disk without your permission is stealing
storage and CPU cycles. (Also see the "good" virus discussion.)
This is made worse since viruses that "just infect," with no attack
phase, often damage the programs or disks they infect. This is not an intentional
act of the virus, but simply a result of the fact that many viruses contain
extremely poor quality code.
An an example, one of the most common past viruses, Stoned, is not intentionally
harmful. Unfortunately, the author did not anticipate the use of anything
other than 360K floppy disks. The original virus tried to hide its own code
in an area of 1.2MB diskettes that resulted in corruption of the entire diskette
(this bug was fixed in later versions of the virus).