Are “Good” Computer Viruses Still a Bad Idea?Are “Good” Computer Viruses Still a Bad Idea?Vesselin BontchevResearch AssociateVirus Test CenterUniversity of HamburgVogt-Koelln-Str. 30, 22527 Hamburg, Germanyemailprotected Editor’s note: Vesselin’scurrent email address is emailprotectedDuring the past six years, computer viruses have caused unaccountable amount ofdamage – mostly due to loss of time and resources. For most users, the term”computer virus” is a synonym of the worst nightmares that can happen on theirsystem. Yet some well-known researchers keep insisting that it is possible touse the replication mechanism of the viral programs for some useful andbeneficial purposes.
This paper is an attempt to summarize why exactly the general public appreciatescomputer viruses as something inherently bad. It is also considering several ofthe proposed models of “beneficial” viruses and points out the problems in them.A set of conditions is listed, which every virus that claims to be beneficialmust conform to. At last, a realistic model using replication techniques forbeneficial purposes is proposed and directions are given in which this techniquecan be improved further.The paper also demonstrates that the main reason for the conflict between thosesupporting the idea of a “beneficial virus” and those opposing it, is that thetwo sides are assuming a different definition of what a computer virus is.1. What Is a Computer Virus?The general public usually associates the term “computer virus” with a small,nasty program, which aims to destroy the information on their machines.
As usual,the general public’s understanding of the term is incorrect. There are manykinds of destructive or otherwise malicious computer programs and computerviruses are only one of them. Such programs include backdoors, logic bombs,trojan horses and so on Bontchev94.
Furthermore, many computer viruses are notintentionally destructive – they simply display a message, play a tune, or evendo nothing noticeable at all. The important thing, however, is that even thosenot intentionally destructive viruses are not harmless – they are causing a lotof damage in the sense of time, money and resources spent to remove them -because they are generally unwanted and the user wishes to get rid of them.A much more precise and scientific definition of the term “computer virus” hasbeen proposed by Dr.
Fred Cohen in his paper Cohen84. This definition ismathematical – it defines the computer virus as a sequence of symbols on thetape of a Turing Machine. The definition is rather difficult to express exactlyin a human language, but an approximate interpretation is that a computer virusis a “program that is able to infect other programs by modifying them to includea possibly evolved copy of itself”.Unfortunately, there are several problems with this definition. One of them isthat it does not mention the possibility of a virus to infect a program withoutmodifying it – by inserting itself in the execution path. Some typical examplesare the boot sector viruses and the companion viruses Bontchev94.
However,this is a flaw only of the human-language expression of the definition – themathematical expression defines the terms “program” and “modify” in a way thatclearly includes the kinds of viruses mentioned above.A second problem with the above definition is its lack of recursiveness. That is,it does not specify that after infecting a program, a virus should be able toreplicate further, using the infected program as a host.Another, much more serious problem with Dr.
Cohen’s definition is that it is toobroad to be useful for practical purposes. In fact, his definition classifies as”computer viruses” even such cases as a compiler which is compiling its ownsource, a file manager which is used to copy itself, and even the programDISKCOPY when it is on diskette containing the operating system – because it canbe used to produce an exact copy of the programs on this diskette.In order to understand the reason of the above problem, we should pay attentionto the goal for which Dr.
Cohen’s definition has been developed. His goal hasbeen to prove several interesting theorems about the computational aspects ofcomputer viruses Cohen89. In order to do this, he had to develop amathematical (formal) model of the computer virus. For this purpose, one needs amathematical model of the computer. One of the most commonly used models is theTuring Machine (TM). Indeed, there are a few others (e.g.
, the Markoff chains,the Post Machine, etc.), but they are not as convenient as the TM and all ofthem are proven to be equivalent to it.Unfortunately, in the environment of the TM model, we cannot speak about”programs” which modify “other programs” – simply because a TM has only one,single program – the contents of the tape of that TM. That’s why Cohen’s modelof a computer virus considers the history of the states of the tape of the TM.
If a sequence of symbols on this tape appears at a later moment somewhere elseon the tape, then this sequence of symbols is said to be a computer virus forthis particular TM. It is important to note that a computer virus should bealways considered as related to some given computing environment – a particularTM. It can be proven (Cohen89) that for any particular TM there exists asequences of symbols which is a virus for that particular TM.
Finally, the technical computer experts usually use definitions for the term”computer virus”, which are less precise than Dr. Cohen’s model, while in thesame time being much more useful for practical reasons and still being much morecorrect than the general public’s vague understanding of the term. One of thebest such definitions is (Seborg):”We define a computer ‘virus’ as a self-replicating program that can’infect’ other programs by modifyingthem or their environment such that a call to an ‘infected’ program impliesa call to a possibly evolved, and inmost cases, functionally similar copy of the ‘virus’.”The important thing to note is that a computer virus is a program that is ableto replicate by itself.
The definition does not specify explicitly that it is amalicious program. Also, a program that does not replicate is not a virus,regardless of whether it is malicious or not. Therefore the maliciousness isneither a necessary, nor a sufficient property for a program to be a computervirus.Nevertheless, in the past ten years a huge number of intentionally or nonintentionally destructive computer viruses have caused an unaccountable amountof damage – mostly due to loss of time, money, and resources to eradicate them -because in all cases they have been unwanted. Some damage has also been causedby a direct loss of valuable information due to an intentionally destructivepayload of some viruses, but this loss is relatively minor when compared to themain one. Lastly, a third, indirect kind of damage is caused to the society -many users are forced to spend money on buying and time on installing and usingseveral kinds of anti-virus protection.
Does all this mean that computer viruses can be only harmful? Intuitively,computer viruses are just a kind of technology. As with any other kind oftechnology, they are ethically neutral – they are neither “bad” nor “good” – itis the purposes that people use them for that can be “bad” or “good”. So farthey have been used mostly for bad purposes. It is therefore natural to ask thequestion whether it is possible to use this kind of technology for good purposes.Indeed, several people have asked this question – with Dr. Cohen being one ofthe most active proponents of the idea Cohen91.
Some less qualified peoplehave attempted even to implement the idea, but have failed miserably (seesection 3). It is natural to ask – why? Let’s consider the reasons why the ideaof a “good” virus is usually rejected by the general public. In order to do this,we shall consider why people think that a computer virus is always harmful andcannot be used for beneficial purposes.2.
Why Are Computer Viruses Perceived as Harmful?About a year ago, we asked the participants of the electronic forum Virus-L/comp.virus, which is dedicated to discussions about computer viruses, to listall reasons they could think about why do they perceive the idea of a”beneficial” virus as a bad one. What follows is a systematized and generalizedlist of those reasons.2.1. Technical ReasonsThis section lists the arguments against the “beneficial virus” idea, which havea technical character.
They are usually the most objective ones.2.1.1. Lack of ControlOnce released, the person who has released a computer virus has no control onhow this virus will spread. It jumps from machine to machine, using theunpredictable patterns of software sharing among the users. Clearly, it caneasily reach systems on which it is not wanted or on which it would beincompatible with the environment and would cause unintentional damage.
It isnot possible for the virus writer to predict on which systems the virus will runand therefore it is impossible to test the virus on all those systems forcompatibility. Furthermore, during its spread, a computer virus could reach evena system that had not existed when that virus has been created – and thereforeit had been impossible to test the virus for compatibility with this system.The above is not always true – that is, it is possible to test the virus forcompatibility on a reasonably large number of systems that are supposed to runit. However, it is the damaging potential of a program that is spreading out ofcontrol which is scaring the users.
Recognition DifficultyCurrently a lot of computer viruses already exist, which are eitherintentionally destructive or otherwise harmful. There are a lot of anti-virusprograms designed to detect and stop them. All those harmful viruses are notgoing to disappear overnight. Therefore, if one develops a class of beneficialviruses and people actually begin to use them, then the anti-virus programs willhave to be able to make the difference between the “good” and the “bad” viruses- in order to let the former in and keep the latter out.Unfortunately, in general it is theoretically impossible even to distinguishbetween a virus and a non-viral program (Cohen89). There is no reason to thinkthat distinguishing between “good” and “bad” viruses will be much easier.
Whileit might be possible to distinguish between them using virus-specific anti-virussoftware (e.g., scanners), we should not forget that many people are relying ongeneric anti-virus defenses, for instance based on integrity checking. Suchsystems are designed to detect modifications, not specific viruses, andtherefore will be triggered by the “beneficial” virus too, thus causing anunwanted alert. Experience shows that the cost of such false positives is thesame as of a real infection with a malicious virus – because the users waste alot of time and resources looking for a non-existing problem.
2.1.3. Resource WastingA computer virus would eat up disk space, CPU time, and memory resources duringits replication. A computer virus is a self-replicating resource eater. Onetypical example is the Internet Worm, accidentally released by a Carnegie-Mellonstudent. It was not designed to be intentionally destructive, but in the processof its replication, the multiple copies of it used so much resources, that theypractically brought down a large portion of the Internet.
Even when the computer virus uses a limited amount of resources, it isconsidered as a bad thing by the owner of the machine on which the virus isdoing it, if it happens without authorization.2.1.4.
Bug ContainmentA computer virus can easily escape the controlled environment and this makes itvery difficult to test such programs properly. And indeed – experience showsthat almost all computer viruses released so far suffer from significant bugs,which would either prevent them from working in some environments, or even causeunintentional damage in those environments.Of course, any program can (and usually does) contain bugs. This is especiallytrue for the large and complex software systems.
However, a computer virus isnot just a normal buggy program. It is a self-spreading buggy program, which isout of control. Even if the author of the virus discovers the bug at a latertime, there is the almost untreatable problem of revoking all existing copies ofthe virus and replacing them with fixed new versions.2.
1.5. Compatibility ProblemsA computer virus that can attach itself to any of the user’s programs woulddisable the several programs on the market that perform a checksum on themselvesat runtime and refuse to run if modified. In a sense, the virus will perform adenial-of-service attack and thus cause damage.Another problem arises from some attempts to solve the “lack of control” problemby creating a virus that asks for permission before infecting. Unfortunately,this causes an interruption of the task being currently executed until the userprovides the proper response.
Besides of being annoying for the user, it couldbe sometimes even dangerous. Consider the following example.It is possible that a computer is used to control some kind of life-criticalequipment in a hospital. Suppose that such a computer gets infected by a”beneficial” computer virus, which asks for permission before infecting anyparticular program. Then it is perfectly possible that a situation arises, whena particular program has to be executed for the first time after the virus hasappeared on the computer, and that this program has to urgently perform sometask which is critical for the life of a patient. If at that time the virusinterrupts the process with the request for permission to infect this program,then the caused delay (especially if there is no operator around to authorize ordeny the request) could easily result in the death of the patient.2.
1.6. EffectivenessIt is argued that any task that could be performed by a “beneficial” virus couldalso be performed by a non-replicating program. Since there are some risksfollowing from the capability of self-replication, it would be therefore muchbetter if a non-replicating program is used, instead of a computer virus.2.2.
Ethical and Legal ReasonsThe following section lists the arguments against the “beneficial virus” idea,which are of ethical or legal kind. Since neither ethics, nor the legal systemsare universal among the human society, it is likely that those arguments willhave different strength in the different countries. Nevertheless, they have tobe taken into account.2.2.
1. Unauthorized Data ModificationIt is usually considered unethical to modify other people’s data without theirauthorization. In many countries this is also illegal.
Therefore, a virus whichperforms such actions will be considered unethical and/or illegal, regardless ofany positive outcome it could bring to the infected machines. Sometimes thisproblem is perceived by the users as “the virus writer claims to know betterthan me what software should I run on my machine”.2.2.2. Copyright and Ownership ProblemsIn many cases, modifying a particular program could mean that copyright,ownership, or at least technical support rights for this program are voided.
We have witnessed such an example at the VTC-Hamburg. One of the users whocalled us for help with a computer virus was a sight-impaired lawyer, who wasusing special Windows software to display the documents he was working on with alarge font on the screen – so that he could read them. His system was infectedby a relatively non-damaging virus. However, when the producer of the softwarelearned that the machine was infected, they refused any technical support to theuser, until the infection was removed and their software – installed from cleanoriginals.2.2.
3. Possible MisuseAn attacker could use a “good” virus as a means of transportation to penetrate asystem. For instance, a person with malicious intent could get a copy of a”good” virus and modify it to include something malicious. Admittedly, anattacker could trojanize any program, but a “good” virus will provide theattacker with means to transport his malicious code to a virtually unlimitedpopulation of computer systems. The potential to be easily modified to carrymalicious code is one of the things that makes a virus “bad”.2.
2.4. ResponsibilityDeclaring some viruses as “good” and “beneficial” would just provide an excuseto the crowd of irresponsible virus writers to condone their activities and toclaim that they are actually doing some kind of “research”. In fact, this isalready happening – the people mentioned above are often quoting Dr. FredCohen’s ideas for beneficial viruses as an excuse of what they are doing – oftenwithout even bothering to understand what Dr. Cohen is talking about.2.
3. Psychological ReasonsThe arguments listed in this section are of psychological kind. They are usuallya result of some kind of misunderstanding and should be considered an obstaclethat has to be “worked around”.2.3.
1. Trust ProblemsThe users like to think that they have full control on what is happening intheir machine. The computer is a very sophisticated device. Most computer usersdo not understand very well how it works and what is happening inside.
The lackof knowledge and uncertainty creates fear. Only the feeling that the reactionsof the machine will be always known, controlled, and predictable could help theusers to overcome this fear.However, a computer virus steals the control of the computer from the user.
Thevirus activity ruins the trust that the user has in his/her machine, because itcauses the user to lose his/her belief that s/he can control this machine. Thismay be a source of permanent frustrations.2.3.2. Negative Common MeaningFor most people, the word “computer virus” is already loaded with negativemeaning.
The media has already widely established the belief that a computervirus is a synonym for a malicious program. In fact, many people call “viruses”many malicious programs that are unable to replicate – like trojan horses, oreven bugs in perfectly legitimate software. People will never accept a programthat is labelled as a computer virus, even if it claims to do something useful.
3. Some Bad Examples of “Beneficial” VirusesRegardless of all the objections listed in the previous section, several peoplehave asked themselves the question whether a computer virus could be used forsomething useful, instead of only for destructive purposes.And several people have tried to positively answer this question. Some of themhave even implemented their ideas in practice and have been experimenting withthem in the real world – unfortunately, without success. In this section weshall present some of the unsuccessful attempts to create a beneficial virus sofar, and explain why they have been unsuccessful.3.
1. The “Anti-Virus” VirusSome computer viruses are designed to work not only in a “virgin” environment ofinfectable programs, but also on systems that include anti-virus software andeven other computer viruses. In order to survive successfully in suchenvironments, those viruses contain mechanisms to disable and/or remove the saidanti-virus programs and “competitor” viruses. Examples for such viruses in theIBM PC environment are Den_Zuko (removes the Brain virus and replaces it withitself), Yankee_Doodle (the newer versions are able to locate the older ones and”upgrade” the infected files by removing the older version of the virus andreplacing it with the newer one), Neuroquila (disables several anti-virusprograms), and several other viruses.Several people have had the idea to develop the above behaviour further and tocreate an “anti-virus” virus – a virus which would be able to locate other(presumably malicious) computer viruses and remove them. Such a self-replicatinganti-virus program would have the benefits to spread very fast and update itselfautomatically.
Several viruses have been created as an implementation of the above idea. Someof them locate a few known viruses and remove them from the infected files,others attach themselves to the clean files and issue an error message ifanother piece of code becomes attached after the virus (assuming that it has tobe an unwanted virus), and so on. However, all such pieces of “self-replicatinganti-virus software” have been rejected by the users, who have considered the”anti-virus” viruses just as malicious and unwanted as any other real computervirus. In order to understand why, it is enough to realize that the “anti-virusviruses” matches several of the rules that state why a replicating program isconsidered malicious and/or unwanted. Here is a list of them for this particularidea.First, this idea violates the Control condition.
Once the “anti-virus” virus isreleased, its author has no means to control it.Second, it violates the Recognition condition. A virus that attaches itself toexecutable files will definitely trigger the anti-virus programs based onmonitoring or integrity checking.
There is no way for those programs to decidewhether they have been triggered by a “beneficial” virus or not.Third, it violates the Resource Wasting condition. Adding an almost identicalpiece of code to every executable file on the system is definitely a waste – thesame purpose can be achieved with a single copy of the code and a single file,containing the necessary data.
Fourth, it violates the Bug Containment condition. There is no easy way tolocate and update or remove all instances of the virus.Fifth, it causes several compatibility problems, especially to the selfcheckingprograms, thus violating the Compatibility condition.Sixth, it is not as effective as a non-viral program, thus violating theEffectiveness condition. A virus-specific anti-virus program has to carrythousands of scan strings for the existing malicious viruses – it would be veryineffective to attach a copy of it to every executable file.
Even a genericanti-virus (i.e., based on monitoring or integrity checking) would be moreeffective if it exists only in one example and is executed under the control ofthe user.Seventh, such a virus modifies other people’s programs without theirauthorization, thus violating the Unauthorized Modification condition.
In somecases such viruses ask the user for permission before “protecting” a file byinfecting it. However, even in those cases they cause unwanted interruptions,which, as we already demonstrated, in some situations can be fatal.Eight, by modifying other programs such viruses violate the Copyright condition.Ninth, at least with the current implementations of “anti-virus” viruses, it istrivial to modify them to carry destructive code – thus violating the Misusecondition.
Tenth, such viruses are already widely being used as examples by the viruswriters when they are trying to defend their irresponsible actions and todisguise them as legitimate research – thus the idea violates the responsibilitycondition too.As we can see from the above, the idea of a beneficial anti-virus virus is “bad”according to almost any of the criteria listed by the users.3.
2. The “File Compressor” VirusThis is one of the oldest ideas for “beneficial” viruses. It is first mentionedin Dr. Cohen’s original work Cohen84. The idea consists of creating a self-replicating program, which will compress the files it infects, before attachingitself to them. Such a program is particularly easy to implement as a shellscript for Unix, but it is perfectly doable for the PC too. And it has alreadybeen done – there is a family of MS-DOS viruses, called Cruncher, which appendsitself to the executable files, then compresses the infected file using Lempel-Zev-Huffman compression, and then prepends a small decompressor which woulddecompress the file in memory at runtime.Regardless of the supposed benefits, this idea also fails the test of thecriteria listed in the previous section. Here is why.First, the idea violates the Control condition. Once released, the author of thevirus has no means to controls its spread. In the particular implementation ofCruncher, the virus writer has attempted to introduce some kind of control. Thevirus asks the user for permission before installing itself in memory, causingunwanted interruptions. It is also possible to tell the virus to install itselfwithout asking any questions – by the means of setting an environment variable.However, there are no means to tell the virus not to install itself and not toask any questions – which should be the default action.Second, the idea violates the Recognition condition. Several virus scannersdetect and recognize Cruncher by name, the process of infecting an executabletriggers most monitoring programs, and the infected files are, of course,modified, which triggers most integrity checkers.Third, the idea violates the Resource condition. A copy of the decompressor ispresent in every infected file, which is obviously unnecessary.Fourth, the idea violates the Bug Containment condition. If bugs are found inthe virus, the author has no simple means to distribute the fix and to upgradeall existing copies of the virus.Fifth, the idea violates the Compatibility condition. There are many files whichstop working after being compressed. Examples include programs that perform aself-check at runtime, self-modifying programs, programs with internal overlaystructure, Windows executables, and so on. Admitedly, those programs stopworking even after being compressed with a stand-alone (i.e., non-viral)compression program. However, it is much more difficult to compress them byaccident when using such a program – quite unlike the case when the user isrunning a compression virus.Sixth, the idea violates the Effectiveness condition. It is perfectly possibleto use a stand-alone, non-viral program to compress the executable files andprepend a short decompressor to them. This has the added advantage that the codefor the compressor does not have to reside in every compressed file, and thus wedon’t have to worry about its size or speed – because it has to be executed onlyonce. True, the decompressor code still has to be present in each compressedfile and many programs will still refuse to work after being compressed. Thesolution is to use not compression at a file level, but at a disk level. Andindeed, compressed file systems are available for many operating environments(DOS, Novell, OS/2, Unix) and they are much more effective than a file-levelcompressor that spreads like a virus.Seventh, the idea still violates the Copyright condition. It could be arguedthat it doesn’t violate the Data Modification condition, because the user isasked to authorize the infection. We shall accept this, with the remarkmentioned above – that it still causes unwanted interruptions. It is also notvery trivial to modify the virus in order to make it malicious, so we’ll assumethat the Misuse condition is not violated too – although no serious attempts aremade to ensure that the integrity of the virus has not been compromised.Eighth, the idea violates the responsibility condition. This particular virus -Cruncher – has been written by the same person who has released many otherviruses – far from “beneficial” ones – and Cruncher is clearly used as anattempt to condone virus writing and to masquerade it as legitimate “research”.3.3. The “Disk Encryptor” VirusThis virus has been published by Mark Ludwig – author of two books and anewsletter on virus writing, and of several real viruses, variants of many ofwhich are spreading in the real world, causing real damage.The idea is to write a boot sector virus, which encrypts the disks it infectswith a strong encryption algorithm (IDEA in this particular case) and a user-supplied password, thus ensuring the privacy of the user’s data. Unfortunately,this idea is just as flawed as the previous ones.First, it violates the Control condition. True, the virus author has attemptedto introduce some means of control. The virus is supposed to ask the user forpermission before installing itself in memory and before infecting a disk.However, this still causes unwanted interruptions and reportedly in some casesdoesn’t work properly – that is, the virus installs itself even if the user hastold it not to.Second, it violates the Recognition condition. Several virus-specific scannersrecognize this virus either by name or as a variant of Stealth_Boot, which itactually is. Due to the fact that it is a boot sector infector, it is unlikelyto trigger the monitoring programs. However, the modification that it causes tothe hard disk when infecting it, will trigger most integrity checkers. Thosethat have the capability to automatically restore the boot sector, thus removingany possibly present virus, will cause the encrypted disk to become inaccessibleand therefore cause serious damage.Third, the idea violates the Compatibility condition. A boot sector virus thatis permanently resident in memory usually causes problems to Windows