Jul 90 Letters
By Kirk Chase, Editor, MacTutor
Viruses, Worms, And Trojan Horses
3126 Brinkley Road, #204
Temple Hills, MD 20748-6308
For those who dont know who I am, I wrote SecurityPatrol, which was published in the February 1989 issue. Im writing in response to the April 1990 issues Mousehole report of the first two destructive Mac programs, which were of the trojan horse and time bomb types.
In discussing the general topic of defense, typical success stories have involved many simple defenses that overlap and reinforce one another, so that if one subsystem temporarily breaks down, another can take up the slack until total defenses can be shored up. Thats where were heading now, with many tools, of different types, from different sources. There will soon be so many tools that no new virus, worm, trojan horse or whatever can be programmed to evade them all. Ours is becoming an environment both sensitive and hostile to destructive software. We can now, if we so choose, swarm like bees (or Maryland police cars, an awesome sight to behold) around new releases of harmful software, isolate their spread and track them back to their source.
What we need now are our own success stories. We need to catch people with unbroken threads of evidence that lead to convictions in court. We need to make our environment even more sensitive and even more hostile to destructive software. We need to force anyone who contemplates releasing destruction into our world to think long and hard on the question: Just how certain am I that I wont get caught?
To start working toward our own success stories, we need to start doing three things we havent been doing, namely: audit-trails, cooperation among anti-virus software developers and glorifying the hero:
By audit-trails, I mean the unbroken threads of evidence that lead to convictions in court. Keeping an audit-trail takes the most work, by far, from everyone. It means keeping track of where everything came from: every disk, every document, every application, every system file. (Yes, yes, every disk and document too.) It means keeping track of people: who they say they are, what they look like (height, weight, pitch of voice, color of eyes, race, identifying marks and scars, etc), where and when you met them, what information they used to convince you they were who they said they were, whether or not they could have overheard that information, etc. They dont have to be extensive notes, but take notes. And if you run a BBS, multiply everything I just said times the number of users on your system.
This may sound like too much work, but consider your own liability: If someone gave you an application program, and you gave it to someone else, and it turned out to contain the worse virus ever released, and they traced it back to you, how much could you tell them about the person who gave it to you? Will they believe you? Its for your own protection too. In situations of mutual defense, it often makes little sense to distinguish between self-defense and defense of others.
So if a guy you dont know very well offers you a disk, the very least you should do is ask to see some photo-id and take down the numbers. If this provokes a fearful reply What do you want to see that for?, just tell the truth I like to keep a record of where I get everything, just in case it turns out to contain a virus or something. If he balks, its probably because he hasnt been keeping records himself and has just realized with force his own precarious legal position. (Dont be surprised to see his face go pale.) Be compassionate, calm his fears that people are going to be out to get him and explain the need for group solidarity in fighting this war. Youve just encouraged another citizen to keep records of everyone and everything, and youre probably better off not accepting anything from him till he does anyway.
Cooperation Among Anti-Virus Developers
While I was finishing up SecurityPatrol for publication, some new viruses were discovered that I had not contracted. Since I needed to have an actual copy of a virus in order to fingerprint it (see the MacTutor article), I talked to various companies that were working on anti-virus software. I explained a secure arrangement that would allow them to send the viruses safely through MacTutor or the Washington Apple Pi users group. If I listened with my ears, I heard them say Our lawyers have advised us we would be in a dangerous legal position if we sent anyone a virus.. But if I listened with my heart and to the tones of their voices, I got the very strong feeling that they didnt want to help out a magazine article that might undercut their own future profits.
The real reasons behind their non-cooperation are irrelevant. The key points are that non-cooperation exists and that it slows the progress of every one of the commercial product developers. Even if Apple were to work out a virus distribution system to get out copies of newer viruses to developers, theres still the problem of analysis. What one of them knows about a new virus, they all should know, so that no ones product is caught by surprise. In other words, we should be fighting the enemy, not one another.
Please understand, Im not a mawkish ivory-tower-dwelling sophomore who thinks profit is a dirty word. Far from it. Profit is an excellent motive to dedicate people to a task, and security is a task to which Id like to see many more people dedicate themselves. But I also believe security is a special case that threatens everyones profit, and as such, deserves special treatment. The survival of an anti-virus product should be based on approach, cost, ease-of-use, interface, performance, stability, support, upgrades to deal with new viruses, etc, but not on secrecy. Vermin hide in the dark, not in the sunlight.
I might add that Mainstay was the only group that gave me any help to speak of. If youre undecided among anti-virus products, I think they should be rewarded for their attitude. But no one provided copies of the newer viruses.
As a result, I was unable to finish SecurityPatrol with defenses against the newer viruses in time for publication. My hope was then, as it is now, that MacTutor readers would, when they encountered a new virus, analyze whether its fingerprints vary according to variable data stored in the virus, fingerprint it over its invariant parts and mail the code and fingerprint numbers to MacTutor so that everyone would benefit from their analysis. That would extend cooperation throughout the developer community.
Glorifying the Hero
You cant blame the press for needing to find something to write about. Thats the situation theyre in. Many virus writers are unconsciously eager to become infamous for the number of people theyve hurt or angered, and when caught, freely provide interviews citing grandiose motivations, intended to show that they were actually doing the community a service (to get Apple to clean up its act on security, for example). The press should see through such claims which endanger the foundations of their own freedoms:
The 1st Amendment protects the idea by protecting its author. It does not confer unlimited mode of expression. If you express anger in words, in print or in paint on a canvas you bought, you are protected by the 1st Amendment. But if you express anger with fists or bullets, or in paint on the side of someone elses building, even a government building, you are not. (If virus writers want Apple to clean up their act on security, they should say so, and how to do so, in print, or they should publish application programs that shore up the defenses. Those modes of expression are protected by the 1st Amendment. And in the free exchange of ideas, the stronger ones, possibly their own, will win out.)
We are partly to blame for the press having nothing to write about except bad news. When someone does something good, we dont issue a press release about it. In effect, we dont give them anything to write about except bad news. The only time anyone ever issues a good news press release, its a vendor touting a new product. (The press is loathe to provide free publicity; vendors are normally expected to pay for publicity.)
But make no mistake. The press is just as eager to print good news if they think itll sell, and news about viruses sells big. If you figure out exactly how a virus works or can be detected, produce a detailed description and send it in to a Mac magazine. (MacWEEK is a timely place for such info, and they helped me find people who knew about viruses, so they deserve to be rewarded.) That, friend, is a press release, and itll be your name thatll be printed along with the description, not the name of the person who wrote the virus. Youre the hero, and you deserve recognition for your efforts. If you figure out how to modify SecurityPatrol to detect it, send in the code and fingerprints to MacTutor, and itll be your name again.
The popular press also has trouble distinguishing gifted programmers. Their only measures are how many people were affected and how severely. They dont know that most viruses are written by junior and mid-level programmers who wish to be regarded as senior simply because theyve figured out how to read Inside Macintosh and Tech Notes. But true seniority in programming reveals itself in the thoughtfulness with which flexible human needs are matched to inflexible machine realities. Its a kind of maturity that comes from working on many projects, making many people happy and being happy that you made them happy. In other words, senior programmers have a joy of relating to people that virus writers know nothing about. And the popular press doesnt know it either.
So at the same time as you provide your analysis of the new virus, be sure to point out what a simpleton its programmer was for understanding only the computer, and not even very well. If the virus does something particularly mindless, such as an INIT that installs itself into every file, not just INIT files, say so. If it skips a CODE resource-id number because it lost track of its own counter, say so. If its exactly the same as another virus except for a minor variation, say so. And always, always, always point out that its author isnt fit to lick the dog poop off the boots of the programmers whose programs it infects. Maybe by the time its author is revealed, the press will be less inclined to talk about him as if hes a genius or to analyze his ideas and motivations in depth as if theres something there profound to be found.
I sincerely believe that, by shining bright light on all areas of Mac security, opening our eyes wide and paying very close attention to detail, we will create a place where vermin will have no place to hide. Please help.
More on Modula-2
This letter summarizes my experience with Modula-2 compilers on the Macintosh; it responds to the letter from Thorsten Kramp in the April 1990 MacTutor.
I have used both the SemperSoft compiler and the Metrowerks standalone (PSE) system. The SemperSoft compiler is well-integrated into the MPW environment. It produces good code and runs fairly quickly. (Is SemperSoft still in business? They dont advertise in MacTutor anymore, and APDA no longer carries the compiler.)
The Metrowerks standalone system is also fairly fast, but produces very peculiar-looking code. Apparently each procedure is called through some sort of jump table. Also the linked applications are very large (100K for a 20-line program); most of this seems to be library routines. There are no MacsBug symbols. The Metrowerks system comes with a very nice symbolic debugger, which allows breakpoints to be set and shows formatted dumps of Macintosh structures. It also allows faster turnaround than the SemperSoft system (the Metrowerks compiler itself is about half as fast, but the link takes almost no time, compared to SemperSoft where you have to go through the slow MPW linker). The SemperSoft system has a few obscure bugs; the Metrowerks system has a few less-obscure bugs. The most annoying Metrowerks bug was that the very nice symbolic debugger refused to work on the program where I really needed it (it turned out that the debugger doesnt like anchored variables).
For learning and miscellaneous fooling around (which seems to be Mr. Kramps need) the Metrowerks system seems to be the better choice. Its bulky object code makes it less attractive than the SemperSoft system for application development.
Metrowerks also makes an MPW version. In addition TML Systems is reported to sell a Modula-2 system. But I have not had experience with any of these, nor have I heard any reports on them.
World Wide Developers Note
Just a short note about the World Wide Developer's Conference in San Jose last May. Practically every session the speaker was asking for input from us developers. Apple is making some far reaching changes in the future. Now is a good time to send some feedback through AppleLink.