CERBERUS and Infected Program Reconstruction
Entries in ISEF '94 and ISEF '96, respectively.
Time frame: Spring 1994, Spring 1996
Remember the times when MS-DOS was still the operating system for PCs and the main
means of transferring files from one computer to another were floppy disks? Back in that era,
I managed to get my hands on "Computer Virusology," an extremely rare book by N. N. Bezrukov.
I was in the 8th grade, I had just learned C and MS-DOS programming a couple of years ago
and got very excited about the subject.
One of the major claims made in the book was that it was impossible to invent a universal
anti-virus cure. I wanted to disprove that by creating one.
My first attempt was a program called CEREBERUS (named after the multi-headed guardian dog from Greek mythology), which basically
was a selective backup-based virus detector (it backed up just the chunks of executables that
were most at danger of being modified by a computer virus). With that project, I entered the local
Science Fair (Flint Area Science Fair, from here on referred to as FASF) and got a Second Place.
As the 2nd place winner, my project was entered into the International Science Fair (ISEF) which in 1996
took place in Birmingham, Alabama. Our trip was paid for by the General Motors and the local
science/education funds, and we besides the 1st place winner (Jason Warda, football player who
designed a brace to be worn by football players to prevent spine injury) and me, there were also
a number of student observers that were sent along with us to see how the ISEF was conducted.
The only thing that I can say about that trip to Alabama is that it was one of the most fun trips
I had in my life, and I have got the photos to prove it. Unfortunately, due to incriminating nature
of these photos, I cannot publish them on the web. As far as the project went, it earned
an honorable mention, but did not place.
The loss at ISEF '94 really changed my whole attitude towards the project. I was shown
my project's weaknesses and I had seen the stiff competition. So I decided to put a lot of thought and
work into my next entry into the science fair, and be more scientific about it. First,
I formed somewhat a hypothesis: "When all of the ways for a given operating system which allow
the virus to infect the program without corrupting it are known, then it is possible to create a universal anti-virus
program." My reasoning was that for a computer virus to become the cause of an epidemic,
it has to hide its presence/effects long enough to replicate itself and
spread itself. If the viruses' harmful actions are immediately obvious, or
if it becomes obvious that the infected program is corrupted soon after the
ifnection, then some action will immediately be taken to isolate
the infected computer from others and the virus is not going to get very
far from the origin computer. So to proliferate itself, the virus has to insert itself into a program in such
a way to allow it to function normally. And if there are limited ways of doing that for an
operating system, which was the case for MS-DOS, then it is possible to create a universal cure.
Then I researched the literature. As I have come to find
out, most of the MS-DOS viruses followed a limited number of patterns for
infecting a program precisely because the OS limited their choices for
stealthy infection.
I then came up with an algorithm called Infected Program Reconstruction, which counteracted
most of these patterns. After backing up tiny digests comprised of the
contents of your computer's executables onto a floppy disk, it was possible
to use these digests not only to detect and purge viruses from your
programs and hard drives, but also in some cases vaccinate the infected programs to guarantee that
the same virus will not infect it again. And it was all possible without
any prior knowledge about particular computer viruses. I wrote a program called PC-Phage which implemented the algorithm.
It booted from a floppy containing both a "clean" copy of the operating system and also the backed up
chunks of executables on the hard drives. I then obtained 24 of the most advanced computer viruses available
at the time (including Mother Fish, Frodo, Michelangelo, Anthrax etc.),
infected my computer and ran PC-Page, recording the results
of my experiments. The results
were very appealing. My program had a 100% percent detection rate, a 95% cleaning rate (it couldn't clean
a Windows virus which I used in my test set just to see what happens), and a 62% vaccination rate
(some of the viruses used methods to check if a program is already infected
that excluded the possibility of vaccination).
With that project, I won 2nd places in FASF, the State Science Fair in Detroit, and I also placed 2nd
in the 47th International Science and Engineering Fair in Tucson, Arizona.
Currently, I think that computer viruses are no longer a major issue just because nowadays
it takes a very short time to report a virus to an anti-virus company and receive a cure
from them over the Internet. It is true that the Internet is a much larger and much more
accessible breeding grounds for new viruses, and I keep seeing new kinds of viruses out there,
some explicitly tailored to be spread over the Internet. However, in most of the cases the cure
is available for download within a factor of days, and not months as it used to be.