249 lines
14 KiB
Plaintext
249 lines
14 KiB
Plaintext
|
Polymorphic viruses escape detection but get our attention
|
|||
|
|
|||
|
Last week, we faced the implications of the next-generation
|
|||
|
ultrastealth viruses that are now reproducing themselves among us.
|
|||
|
Because a few of these viruses have already been found to be
|
|||
|
employing this new scanner-beating self-modifying technology and
|
|||
|
because their is nothing particularly difficult about writing such
|
|||
|
a polymorphic virus, I feel there is more good than harm in a
|
|||
|
public discussion of this nasty new breed.
|
|||
|
(I know that many readers are wondering what happened to my
|
|||
|
promised solution to the spread of these viruses; it will come next
|
|||
|
week after I illustrate the danger of these new germs.)
|
|||
|
viruses can be detested by recognizing either their dynamic
|
|||
|
actions or their static presence. Dynamic-action recognition
|
|||
|
provides the potential benefit of stopping unknown viruses.
|
|||
|
Nevertheless, today's smarter viruses can circumvent such
|
|||
|
interception easily. If the virus wishes to have a higher level of
|
|||
|
software access to the system, several techniques are known for
|
|||
|
getting underneath DOS and BIOS interception, so resident blockers
|
|||
|
are all but useless.
|
|||
|
Static-presence recognition scans the entire system for the
|
|||
|
"fingerprints" of known viruses. Today's deliberately elusive
|
|||
|
polymorphic viruses can evade this detection entirely.
|
|||
|
The simple idea behind the polymorphic virus is that the bulk of
|
|||
|
the virus can be scrambled by a random number. Every IBM-compatible
|
|||
|
PC has a counter/timer chip that can be used as the source for a
|
|||
|
completely nondeterministic 16-bit random number. When the virus
|
|||
|
clones itself into a new environment, it can use the instantaneous
|
|||
|
value of the counter/timer as a scrambling starting point. By
|
|||
|
algorithmically altering every byte of itself based upon this
|
|||
|
initial number, the newly propagated virus will be immune to
|
|||
|
fingerprint detection.
|
|||
|
There's one flaw in this approach: The small kernel of code used
|
|||
|
to unscramble the body of the virus must be left in an unscrambled
|
|||
|
state so the computer can execute it and unscramble the balance of
|
|||
|
the virus. This means the unscrambling portion could still be
|
|||
|
fingerprinted and identified.
|
|||
|
This problem could be easily solved: By deliberately interlacing
|
|||
|
irrelevant "do nothing" instructions among those that perform the
|
|||
|
unscrambling work, every stored instance of the unscrambling kernel
|
|||
|
could be completely different from all the others. As the virus
|
|||
|
copies itself to a new destination, it randomly draws from a
|
|||
|
repertory of superfluous instructions, peppering them liberally
|
|||
|
throughout the new copy of itself.
|
|||
|
As you can see, these techniques can be teamed up with activity
|
|||
|
interception avoidance to create a new breed of viruses that would
|
|||
|
be virtually impossible to detect.
|
|||
|
It is quite annoying that we must expend our resources in the
|
|||
|
prevention of this software terrorism. But there may be some value
|
|||
|
in experiencing this terrorism now. Most viruses have been the work
|
|||
|
of amateurs and are far from devastating.
|
|||
|
Being told on Friday the 13th that your computer is "stoned" is
|
|||
|
annoying as hell, and having to type "Happy Birthday to Joshi"
|
|||
|
early in January makes you wonder who's in charge. But it sure
|
|||
|
beats being informed that your company's customer list and the
|
|||
|
archived source code for your next unreleased product have just
|
|||
|
been transmitted by modem to your competition. When your network's
|
|||
|
database and modem servers receive remote procedure calls (RPCs)
|
|||
|
from remote workstations, are you sure they should answer that
|
|||
|
call?
|
|||
|
We need to begin tightening up our systems and taking security
|
|||
|
very seriously. Personal computing is not just a diversion from the
|
|||
|
tedium of sharpening pencils; it is a serious endeavor that is
|
|||
|
extremely prone to organized and deliberate attack. If a bored,
|
|||
|
pimply faced highschool kid is capable of penetrating your
|
|||
|
corporation's security with his annoying but benign virus, you had
|
|||
|
better hope he never wants to hurt you.
|
|||
|
|
|||
|
Steve Gibson is the developer and publisher of SpinRite and
|
|||
|
president of Gibson Research Corp., based in Irvine California.
|
|||
|
From April 20,1992 issue of InfoWorld\
|
|||
|
At last, how to protect yourself from polymorphic viruses
|
|||
|
|
|||
|
My past two columns concerning the threat presented by polymorphic
|
|||
|
viruses triggered an informative conversation with the industry's
|
|||
|
chief virus researcher, John McAfee. During that conversation I
|
|||
|
learned that things are even worse than I'd supposed.
|
|||
|
It turns out that the " Dark Avenger" bulletin board system, which
|
|||
|
disseminates virus code, has recently published the complete source
|
|||
|
code for the Dark Avenger Mutation engine. The mutation engine is
|
|||
|
nothing less than a first-class code kernel that can be tacked on
|
|||
|
to any existing or future virus to turn it into a nearly impossible
|
|||
|
to detect self-encrypting polymorphic virus.
|
|||
|
My examination of a sample virus encrypted by the Mutation Engine
|
|||
|
provided by McAfee revealed alarming capabilities. Not only do Dark
|
|||
|
Avenger Mutation Engine viruses employ all of the capabilities I
|
|||
|
outlined in last week's theoretical polymorphic virus column, but
|
|||
|
they also use a sophisticated reversible encryption algorithm
|
|||
|
generator.
|
|||
|
The Mutation Engine uses a metalanguage-driven algorithm generator
|
|||
|
that allows it to create an infinite variety of completely original
|
|||
|
encryption algorithms. The resulting unique algorithms are then
|
|||
|
salted with superflous instructions, resulting in decryption
|
|||
|
algorithms varying from 5 to 200 bytes long.
|
|||
|
Because McAfee has already received many otherwise known viruses
|
|||
|
that are now encapsulated with the Mutation Engine's polymorphic
|
|||
|
encryption, it's clear that viruses of this new breed are now
|
|||
|
traveling among us.
|
|||
|
It is clear that the game is forever changed; the sophistication
|
|||
|
of the Mutating Engine is amazing and staggering. Simple pattern-
|
|||
|
matching virus scanners will still reliably detect the several
|
|||
|
thousand well-known viruses; however these scanners are completely
|
|||
|
incapable of detecting any of the growing number of viruses now
|
|||
|
being cloaked by the Dark Avenger Mutation Engine.
|
|||
|
So what can we ultimately do to twart current and future software
|
|||
|
viruses? After brainstorming through the problem with some of our
|
|||
|
industry's brightest developers and systems architects, I've
|
|||
|
reached several conclusions:
|
|||
|
First, scanning for known viruses within executable program code
|
|||
|
is fundamentally a dead end. It's the only solution we have for the
|
|||
|
moment, but the detectors can only find the viruses they are aware
|
|||
|
of, and new developments such as the Mutation Engine render even
|
|||
|
these measures obsolete.
|
|||
|
Second, detecting the reproductive proclivities of viruses on the
|
|||
|
prowl is prone to frequent false alarms and ultimately complete
|
|||
|
avoidance. With time the viruses will simply circumvent the
|
|||
|
detectors, at which time the detectors will only misfire for self-
|
|||
|
modifying benign programs.
|
|||
|
Third, the Achilles' heel of our current DOS-based PC is its
|
|||
|
entirely unprotected nature. As long as executable programs( such
|
|||
|
as benign and helpful system utilities) are able to freely and
|
|||
|
directly access and alter the operating system and its file system,
|
|||
|
our machines will be vulnerable to deliberate viral attack.
|
|||
|
So here's my recommendation.
|
|||
|
Only a next-generation protected mode operating system can enforce
|
|||
|
the levels of security required to provide complete viral immunity.
|
|||
|
By marking files and code overlays as "read and execute only" and
|
|||
|
by prohibiting the sorts of direct file system tampering performed
|
|||
|
by our current crop of system utilities, such operating systems
|
|||
|
will be able to provide their client programs with complete viral
|
|||
|
immunity.
|
|||
|
The final Achilles' heel of a protected-mode operating system is
|
|||
|
the system boot process, before and during which it is still
|
|||
|
potentially vulnerable. By changing the system ROM-BIOS' boot
|
|||
|
priorty to favor hard disc booting over floppy, thios last viral
|
|||
|
path can be closed and blocked as well.
|
|||
|
|
|||
|
note; Steve Gibson is the developer and publisher of SpinRite and
|
|||
|
president of Gibson Research Corp., based in Irvine, Calif. Send
|
|||
|
comments to InfoWorld via MCImail (259-2147) or fax them to (415)
|
|||
|
358-1269
|
|||
|
Subject: Polymorphic Virus
|
|||
|
|
|||
|
Here is a new entry from the Computer Virus Catalog, produced and
|
|||
|
distributed by the Computer Anti-Virus Researcher's Organization (CARO),
|
|||
|
at the University of Hamburg.
|
|||
|
|
|||
|
Note the description of the Polymorphic Method, below, and that this
|
|||
|
virus can presently be detected in a file only by the file change it
|
|||
|
produces.
|
|||
|
|
|||
|
|
|||
|
==== Computer Virus Catalog 1.2: Dedicated Virus (31-January 1992) ===
|
|||
|
Entry...............: Dedicated Virus
|
|||
|
Alias(es)...........: ---
|
|||
|
Virus Strain........: ---
|
|||
|
Polymorphism engine.: Mutating Engine (ME) 0.9
|
|||
|
Virus detected when.: UK
|
|||
|
where.: January 1992
|
|||
|
Classification......: Polymorphic encrypted program (COM) infector,
|
|||
|
non-resident
|
|||
|
Length of Virus.....: 3,5 kByte (including Mutating Engine)
|
|||
|
--------------------- Preconditions ----------------------------------
|
|||
|
Operating System(s).: MS-DOS
|
|||
|
Version/Release.....: 2.xx upward
|
|||
|
Computer model(s)...: IBM - PCs, XT, AT, upward and compatibles
|
|||
|
--------------------- Attributes -------------------------------------
|
|||
|
Easy Identification.: COM file growth (no other direct detection means
|
|||
|
are known as virus encrypts itself, and due
|
|||
|
to the installed mutation engine, all occu-
|
|||
|
rences of this virus differ widely)
|
|||
|
Type of infection...: COM file infector: all COM files in current
|
|||
|
directory on current drive (disk,diskette)
|
|||
|
are infected upon executing an infected file.
|
|||
|
Infection Trigger...: Execution of an infected COM file.
|
|||
|
Media affected......: Hard disk, any floppy disk
|
|||
|
Interrupts hooked...: ---
|
|||
|
Crypto method.....: The virus encrypts itself upon infecting a COM
|
|||
|
file using its own encryption routine; upon
|
|||
|
execution, the virus decrypts itself using
|
|||
|
its own small algorithm.
|
|||
|
Polymorphic method..: After decryption, the virus' envelope consisting
|
|||
|
of Mutating Engine 0.9 will widely vary the
|
|||
|
virus' coding before newly infecting another
|
|||
|
COM file. Due to this method, common pieces
|
|||
|
of code of more than three bytes (=signatures)
|
|||
|
of any two instances of this virus are highly
|
|||
|
improbable.
|
|||
|
Remark: Mutating Engine 0.9 very probably was
|
|||
|
developed by the Bulgarian virus writer
|
|||
|
"Dark Avenger"; such a program was announced
|
|||
|
early 1991 as permutating more than 4 billion
|
|||
|
times, and it appeared in October 1991 or
|
|||
|
before.
|
|||
|
The class of permutating viruses is named
|
|||
|
"polymorphic" to indicate the changing
|
|||
|
structure which may not be identified with
|
|||
|
contemporary means. To indicate the relation
|
|||
|
to such common engine, the term "Polymorhic
|
|||
|
engine (method)" has been introduced.
|
|||
|
ME 0.9 was distributed via several Virus
|
|||
|
Exchange Bulletin Boards, so it is possible
|
|||
|
that other ME 0.9 related viruses appear.
|
|||
|
According to (non-validated) information, an-
|
|||
|
other ME 0.9 based virus (Pogue?) has been
|
|||
|
detected in North America: COM file infector,
|
|||
|
memory resident, length about 3,7 kBytes.
|
|||
|
Damage..............: Virus overwrites at random times random sectors
|
|||
|
(one at a time) with garbage (INT 26 used).
|
|||
|
Damage Trigger......: Random time
|
|||
|
Similarities........: ---
|
|||
|
Particularities.....: The virus contains a text greeting a US based
|
|||
|
female hacker; this text is visible after
|
|||
|
decryption.
|
|||
|
--------------------- Agents -----------------------------------------
|
|||
|
Countermeasures.....: Contemporarily, no automatic method for reliable
|
|||
|
identification of polymorphic viruses known.
|
|||
|
- ditto - successful: ---
|
|||
|
Standard means......: ---
|
|||
|
--------------------- Acknowledgement --------------------------------
|
|||
|
Location............: Virus Test Center, University Hamburg, Germany
|
|||
|
Classification by...: Vesselin Bontchev, Klaus Brunnstein
|
|||
|
Documentation by....: Dr. Alan Solomon
|
|||
|
Date................: 31-January-1992
|
|||
|
===================== End of Dedicated Virus =========================
|
|||
|
|
|||
|
======================================================================
|
|||
|
== Critical and constructive comments as well as additions are ==
|
|||
|
== appreciated. Descriptions of new viruses are appreaciated. ==
|
|||
|
======================================================================
|
|||
|
== The Computer Virus Catalog may be copied free of charges provided =
|
|||
|
== that the source is properly mentioned at any time and location ==
|
|||
|
== of reference. ==
|
|||
|
======================================================================
|
|||
|
== Editor: Virus Test Center, Faculty for Informatics ==
|
|||
|
== University of Hamburg ==
|
|||
|
== Vogt-Koelln-Str.30, D2000 Hamburg 54, FR Germany ==
|
|||
|
== Prof. Dr. Klaus Brunnstein, Vesselin Bontchev, ==
|
|||
|
== Simone Fischer-Huebner, Wolf-Dieter Jahn ==
|
|||
|
== Tel: (+40) 54715-406 (KB), -225 (Bo/Ja), -405(Secr.) ==
|
|||
|
== Fax: (+40) 54 715 - 226 ==
|
|||
|
== Email (EAN/BITNET): brunnstein@rz.informatik.uni-hamburg.dbp.de ==
|
|||
|
== bontchev@rz.informatik.uni-hamburg.de> ==
|
|||
|
== FTP site: ftp.informatik.uni-hamburg.de ==
|
|||
|
== Adress: 134.100.4.42 ==
|
|||
|
== login anonymous; password: your-email-adress; ==
|
|||
|
== directory: pub/virus/texts/catalog ==
|
|||
|
======================================================================
|
|||
|
|