[comp.virus] Universal virus detector / Biological analogy

XPUM01@prime-a.central-services.umist.ac.uk (Dr. A. Wood) (02/10/90)

There has been much rhubarbiage about the possibility of writing a
program which will detect <all> viruses in incoming programs, not only
a set list of viruses that it has been told about. I suspect that this
is partly motivated by trying to achieve the efficiency of biological
immune systems - there have been a few 'biological analogy' articles
in Virus-L before. This analogy will not work - biological immune
systems are set up in a different way.

Long before birth, all possible antibody-producing cell types appear
in the body.  As in the womb before birth in the normal case, no
foreign matter can get in, everything in the fetus is native and
belongs. And, at that stage, every antibody-producing cell that loses
its antibody, dies, for it must have lost its antibody by an
auto-immume reaction. Thus all auto-immune antibody-producing cell
lines are eliminated.  Time passes and the baby is born.  Then, any
antibody-producing cell that loses its antibody must have lost it to
some foreign matter. So it multiplies, and its descendants produce
much antibody to combat the invader. After birth, nothing else gets
unopposed into the body.

The only way to imitate this in computers is to have an immune program
which knows every program which will be run on that computer, and
rejects all strange programs. No good! So, is there any point in this
email-space-wasting discussion continuing? Bodies have a permitted
list and exclude all others; computers have a forbidden list and admit
all others. To a computer, a new virus is merely a new program, and
some human has to find that it is harmful and then add it to the
forbidden list.

Also, any two bodies' cells (except identical twins) have different
immunotypes, and attempted grafting fails, thus any bacterium that
learns to masquerade as a legal cell of body A, is rejected on trying
to invade body B. The computer analogy of this would be for each
individual microcomputer's copy of each authorized program to be
different.

The only thing that I can suggest is for microcomputer designers to
start using the mainframe technique of preventing programs running
under ordinary mode from writing to system areas, and for only the
suppliers of the computer to be allowed to write system programs which
run under everything-permitted mode. That will exclude damaging
viruses, but will still allow the sort of virus that merely multiplies
and wastes time and storage space.

{A.Appleyard} (email: APPLEYARD@UK.AC.UMIST), Fri, 09 Feb 90 15:38:12 GMT

wilkins@jarthur.Claremont.edu (Mark Wilkins) (02/13/90)

XPUM01@prime-a.central-services.umist.ac.uk (Dr. A. Wood) writes:

>        there have been a few 'biological analogy' articles
>in Virus-L before. This analogy will not work - biological immune
>systems are set up in a different way.

[stuff deleted]

>Also, any two bodies' cells (except identical twins) have different
                                                      ^^^^^^^^^^^^^^
>immunotypes, and attempted grafting fails, thus any bacterium that
 ^^^^^^^^^^^
>learns to masquerade as a legal cell of body A, is rejected on trying
>to invade body B. The computer analogy of this would be for each
>individual microcomputer's copy of each authorized program to be
>different.

   First, identical twins are not the only humans with identical
immunotypes.  Any individual's full brother or sister has a 1/4 chance
of having an exactly identical immunotype, or rather just slightly
less because of crossing-over.  But that doesn't belong in this group.

  This, however, does: It is true that tissue typing analogies are
poor for computerized anti-invasive agents.  However, the body's
system might provide some clues regarding possibilities for such
things.

  Suppose one wants to implement a system which, like the human body,
is adaptive.  How about this: Each low level write call causes a
checksum of the data written to be computed, or, better, the checksum
is computed 12 hours of uptime later, to avoid some shrewdly-done
virus from writing the data out in some randomized fashion.

  This checksum is then stored and indexed with the program or
programs which made the alterations leading to them. If the same
checksum starts cropping up repeatedly in calls from several different
programs which have never before exhibited such behavior then that
indicates that some uniform, self-replicating piece of code MIGHT have
infected those programs.

  Of course, there are likely to be cases where changes in system
configuration will cause this to happen, but all this routine would do
is produce a log from which a reasonably technically competent
individual could detect the infection.

  There might, also, be ways to improve it to actually prevent
spreading under certain circumstances.

- -- Mark Wilkins
   wilkins@jarthur.claremont.edu