Part I

The Nature of the Beast

Chapter One: Opening Moves

And when the thousand years are expired, Satan shall be loosed out of his prison... Revelation 20:7

"It ate itself."

I stared at the note, which was taped to the monitor screen of my workstation. It was Thursday, March eleventh, a little after midnight, and I had just gotten home from the airport to find the strange note, and seven messages on my answering machine, which was also odd, because I'd called to check for messages earlier in the day.

I picked up the phone and called The Dodo. It was late, but if you're going to leave cryptic messages on people's computers, you're going to have to deal with the consequences. Anyway, he was awake, as I knew he would be. The wee hours are prime hacking time. "Hello?"

"What the hell does this mean?"

"Hello Michael. Welcome back." The Dodo, or TD to his friends, was a hacker of my acquaintance whom I'd asked to come over and check out a problem I was having with a newly-upgraded operating system. The latest upgrade to MABUS/2k had just been released with the usual fanfare by Macrobyte Software, and of course you couldn't get through on the tech support line to save your life. My particular problem was the delete program, a routine for removing unwanted files. You just selected the file or files you wanted to trash, then clicked on the "pit" icon. But it had mysteriously stopped working shortly after installation.

"Thanks. But your note...?"

"Yes. The problem seems to be idiosyncratic to your computer system. If you double-click on the delete icon, the delete routine deletes itself. Unfortunately, I wasn't able to divine why it does this. You can simply re-install it from the system disks, but you'll have to remember not to double-click, or it will do it again."

"You think this is funny, don't you?"

"It has a certain perverse appeal," he admitted.

"I suppose it does."

"Well, if you're able to work out the exact nature of the problem with the delete function, let me know. I'm rather curious about it."

"Me too. Okay, will do. I'd better go now; my answering machine is about to have a nervous breakdown."

"Roger."

I played back the answering machine tape. A quick run-through revealed that the messages were all from the same person; George Bard, an old college buddy I'd not heard from in years. The messages were all the same, just "call right away" and a number with a San Francisco area code. I dialed it, figuring that it was at least moderately urgent. It was busy.

I set the phone for automatic re-dial, and turned to boot up my workstation. I have a second line for my modem, so I was able to check my electronic mail while the phone tried to reach George. My four E-mail accounts were bulging with the usual junk, but there was something else; more messages from George. The earliest one had come at about nine o'clock, Eastern Time. By now I was more than a little curious about what had George in such a frenzy. I switched on the TV to a rerun of "To Tell the Truth" to provide a little background noise while I paged through the E-mail. It was about the same as what was on the answering machine, just "call this number ASAP." The phone was still redialing his number with mechanical patience, and still, evidently, getting a busy signal.

By the time I checked all my mail--electronic and otherwise--it was nearly one thirty, and Tom Poston was grilling some guys who claimed to have fallen out of a plane. All three of them looked like they'd been dropped on their heads from a great height, so it was a tough call. I was about ready to pack it in and get some sleep; I'd been at a conference in London and was suffering from near-terminal jet-lag. I was curious about what George's problem might be, but couldn't see anything to do about it but wait until there was a chance to talk to him. I tried to think of what kind of work he might be doing, but my memories of him were mostly in terms of types and quantities of beer consumed. He had been a pretty fair Lisp hacker, so he might still be doing something in artificial intelligence. Then I had a bright idea.

I turned to a small stack of compact disks that were still in their mailing cartons--I hadn't gotten around to opening them. The one I wanted was on top of the stack; Computer Periodicals 1998. I unpacked it, flipped it into the CD-ROM drive and started a search. My efforts were rewarded with a solitary reference: Computer Chess, a small, obscure and, obviously, highly specialized publication. I pulled up the citation, which was dated January, 1998:

STANFORD PROGRAMMERS TRY NOVEL APPROACH

Programmers at Stanford University received a grant from Tokoyo Corporation to continue work on a program they hope will challenge Mephisto, the reigning computer chess world champion. In a departure from prevailing competition-level chess programs which emphasize speed, number-crunching, and the ability to look ahead as many moves as possible, the Stanford team hopes to make use of some newer developments in artificial intelligence. Team leader Jason Wright explained, "We would like to create a program that 'thinks' about chess the way human grandmasters do."

The story went on a few more paragraphs in a similar vein, without much more detail. The programmers were not giving away too much about their project--nothing, really, since programming a computer to think "the way human grandmasters do" was something that programmers always said. Well, correction: it was something programmers used to say, and have recently started saying again.

They had stopped for a while, in the eighties and early nineties, because, with the advent of programs like Belle and Deep Thought and Deep Blue, the emphasis had shifted away from artificial intelligence. Those programs were very simple algorithms designed to take advantage of the rapidly improving speed of computer hardware. Since the rate of improvement of simple, speed-oriented programs had started tailing off, artificial intelligence was making a comeback.

Still, a programmer talking about making a computer "think about chess like a human grandmaster" was like a politician saying "we're studying the problem"; despite having the superficial appearance of an English sentence, it didn't actually mean anything. The last paragraph listed the names of the rest of the project team, including George. That was enough to tell me the probable cause of George's call; they were having parasite problems with their program, and wished to retain me in my professional capacity.

I started to get up to turn off the phone when I had another idea. I went back to the computer and did a wire-service search cross-referencing computers and San Francisco. With the parameters set for the past week, there were more than a hundred items. I added "chess" to the search, which narrowed it down to the following:

SAN FRANCISCO--The annual Pacific Open Chess Tournament begins this week at the Mosconi Conference Center. The tourney, which is open to both human and computer competitors is now in its third year. This year, tournament organizers were able to announce the participation of reigning world chess champion Dragan Zivojinovic. This marks the first time the reigning world champion has participated in an "open" tournament--one with computers as well as people. The Serbian grandmaster, who has now held the world championship for two years, was not available for comment. Mephisto, the current computer world champion, will also compete. To date, no computer has ever won a tournament against human grandmaster-level competition, although several chess-playing programs are rated at grandmaster strength, according to the United States Chess Federation, which sanctions the tournament.

Even I knew that the last sentence wasn't completely accurate; computers have been trouncing human grandmasters in "blitz" chess since the early nineties.

In any event, I could now guess what the panic was all about. George's program must be an entry in this tournament, and was infected with a software virus or worm. I switched off the computer and went to the phone to turn off the autodialer. The second I did, it rang. I picked up.

"Michael?" George's soft, Louisiana drawl was still unchanged by years of living in California.

"Hi, George."

"Mike! I've been trying to reach you for hours! I got a busy signal over an hour ago, so I figured you were home. I've been autodialing you for the last hour trying to get through."

"It figures. I've been autodialing you for the last hour. That's why we were both getting busy signals."

"Huh. Well, much as I hate to bother you with my troubles..."

"Trouble," I said, "is my business."

He chuckled. "Raymond Chandler, right? I like it. It's corny, but it's you."

"Smart ass."

"Anyway, now that I've got you, let me tell you why I called..."

"You've got a chess program entered in the Pacific Open, and you think it's picked up a software parasite."

"What? How did you know that?"

"Lucky guess. I take it your group is interested in retaining me for consultation?"

"Yes! Can you come here right away?"

"Can you afford me, or am I doing this as a personal favor?"

"Hell yes! We've got corporate sponsorship. So, you don't know everything after all."

"Oh, right. Tokoyo?"

"You're so well-informed it's a little scary. Listen, we'll pay you, and I'll consider it a personal favor. How soon can you get here?"

"Let me see." I turned once more to the computer, rebooted it, and dialed for an airline reservation service. "American has a flight out of LaGuardia at 3:10. If I leave now, I can just make it."

"Great! But don't you have to pack?"

I glanced over at the bags I'd just brought back from London. "I'm already packed."

Less than two hours later I was ensconced in an airliner coach seat and bound for the west coast. A small carry-on containing various necessities I didn't want to give the airline a chance to lose was under the seat in front of me. A briefcase was on my knees, containing my mobile antivirus lab: a laptop computer, CD-ROM, and a modem. Some people ask me why I still lug a laptop around, when the newer notebook and palmtop computers are so light, compact and powerful. For one thing, I like a real keyboard; chiclets are fine for chewing, lousy for typing on. For another, my laptop contains three coprocessor boards so that I can run just about any currently used operating system; try that with a palmtop.

Once we were airborne, I called George again so he could fill me in with some more details.

"Goodknight," he said, "is an AI program that is supposed to teach itself how to play chess."

"Okay, I'll bite. Exactly how is it supposed to do that?"

"The same way human grandmasters do, by studying master games. It has 'fuzzy logic' routines for evaluating moves and positions, and it revises those routines based on what it learns. Goodknight can analyze a game in about fifteen minutes, and it's been analyzing games continuously for almost a year."

"There are that many games for it to study?"

"Sure, books full of them. Plus, we have all the back issues of Chess Life and Review. One way to look at it is like this: Goodknight is an organism that eats chess games. It assimilates good moves and excretes bad ones."

"Excretes?"

"In a manner of speaking."

"How's your baby doing in the tournament?"

"We won our first two rounds, but against fairly weak competition; one of the older programs, and a human international master."

"So what's the problem?"

"For some reason Goodknight has slowed down. Not enough to get in time trouble in the first two rounds, but it's not performing like it did before."

"Are you sure it's not a hardware problem?"

"That's what I said, but our hardware people swear there's nothing wrong from their end. The only way to know for sure would be to purge the whole program, test the hardware, then reboot, and we don't have that kind of time."

"How much time do you have?"

"Round three starts at ten tomorrow morning."

I mulled over what George had told me about Goodknight. This was a first for me; I usually consult to corporations that are having troubles with their business software caused by worms or viruses--small computer programs or program fragments that can infect a large program. There is no single, general term encompassing all kinds of parasitic, self-replicationg programs--"bugs" would have been good, but that was already taken (a bug is a programming error). I just call them "beasties". Beasties can wreak all kinds of havoc in their host programs, ranging from the innocuous, such as rude messages appearing on the monitor, to the catastrophic, such as major data loss.

What's the difference between a virus and a worm? It depends on who's talking. According to some people, a virus is a program which must infect a host program in order to reproduce. In contrast, a worm can survive and reproduce independently. Others define virus as a program that infects other systems, whereas a worm is a program that may stay in the same system, but causes a characteristic pattern of data loss ("worm tracks"). According to the first pair of definitions, worms and viruses are mutually exclusive categories. According to the second, the same program can be both a worm and a virus. To make things more confusing (in case you were still following any of this) the terms are often used interchangeably.

But let me simplify things for you; start by ignoring the preceding paragraph, and let me give you my definitions. A virus is a parasitic program that spreads via magnetic media; whenever you carry a disk from one computer to another, you may be transmitting viruses. A worm is also a parasitic program, but one that spreads through a network via the network connections.

For several years now, all new large-scale software packages have contained integrated anti-virus routines; informational immune systems, if you will. If you think that development has cut into my business, think again--there's a lot of old software out there, and even the new systems get infected sometimes. Also, with a newer system an infection is generally with something especially tricky, beyond what the company's own software people can deal with. Enter yours truly, the fearless virus hunter.

One drawback of having antiviral and anti-worm routines imbedded in a program or operating system is that it slows things down a bit; the computer's microprocessor must spend a certain amount of time executing the antivirus routine (usually watching out for suspicious commands, like low-level formatting instructions, or checking for the program's own self-identification codes). In most cases this is a small price to pay for the level of protection offered. But for certain applications, such as competition-level chess programs, speed is too important to sacrifice. The programmers are careful not to expose their program to any potential source of contamination, such as disks and other media that have been used with other operating systems, and the system would be accessible only through a few dedicated terminals. Usually, that's good enough. As the present case suggests, sometimes it isn't.

George agreed to meet me at the airport and drive us to Palo Alto, and we said good-bye and hung up. I wanted to try to get some sleep on the plane. I'd been up since seven in the morning, London time, which was one A.M. Eastern Time and 10 P.M. Pacific Time, which meant I had now been awake for twenty-seven hours. I tried to get comfortable in the cramped confines of my Procrustean economy seat, but it was impossible. Also, the woman next to me snored.

We touched down in San Francisco at 5:25 A.M., local time. I desperately needed a shower and a meal, but I would have gladly traded both for a good night's sleep in a decent bed. George was waiting at the gate, looking very much the same as when I last saw him; tall enough to stand out on the crowded concourse, blue-eyed, square-jawed, and appearing as much in need of sleep as I was. In school his height, combined with his balding pate, had given rise to the predictable jokes about how he had grown through his hair. One difference was that he was no longer prematurely balding--he was now prematurely bald.

George pumped my hand with a vigor that belied his walking-wounded appearance, and added a few completely unnecessary back-slaps which somehow left me still standing.

"Good to see you Mike, even though you look terrible. Did you give up sleeping for Lent?"

"Might as well have. You're not looking too hot yourself."

"I've been up all night. Just don't let me fall asleep on the drive back to Palo Alto."

"I remember your driving. Asleep might be an improvement."

It is an indication of how tired we both were that we actually chuckled over that one as we headed to the baggage claim area. Twenty minutes later I was not laughing as I watched the last few pieces of luggage making their forlorn way around the conveyor. My suitcase was not among them.

I reported the missing suitcase to the airline and gave them George's Palo Alto address and phone number. We then headed for the parking lot to collect George's battered old Dodge Charger; as we went outside, George pulled on a baseball cap with a New Orleans Saints logo, apparently intended to protect his hairless scalp from the California sun.

"Are you still expecting those guys to win something?" I asked.

He grinned. "Not without divine intervention--but this could be the year for it."

"It could at that."

Before heading down Route 101 to Palo Alto, we stopped for breakfast at a restaurant near the airport, the first time I'd eaten anything but airline food--forgive the oxymoron--since yesterday morning. After a breakfast of orange juice, waffles, bacon, and three cups of coffee, I felt nearly human again. The three cups of coffee necessitated a trip to the facilities prior to getting back on the road. Someone had placed a sticker on the men's room wall that read, "Jesus is Coming"; underneath it was scrawled, "Look busy!"

On my way back to the table to collect George, I noticed that his was not the only hairless scalp in the restaurant; three guys in leather with multiple tattoos and body-piercings were sitting at the counter. Their coiffures ranged from a mohawk to a complete skinhead, and the tattoos ran to things like snakes, skulls and swastikas. That sort of thing was, unfortunately, becoming pretty common, and it wasn't what attracted my attention. The notable thing was the guy with the mohawk, who had "666" tattooed on his scalp. Beastly.

Once George and I were back in the car, I said, "Now that I've got a few more synapses firing, let me ask you some questions."

George shrugged, "I'm not sure that I can say the same, but shoot."

"What kind of hardware are you using?"

"Nothing too fancy--our sponsor wasn't that generous. There's some real heavy metal in this tournament; massively parallel devices and stuff. And that's just the newer hardware; all the older established programs run on ultra-fast dedicated machines. Our sponsor just gave us a used Tokoyo IV. We've probably got the only machine in the competition that runs MABUS/2k and off-the-shelf software."

I was surprised. "That sounds crazy." MABUS/2k (which stands for Macrobyte Utilization System/2000) might have been the industry standard microcomputer operating system, but you certainly wouldn't expect to see it running on anything as exotic as a competitive chess computer.

"Not if you're planning to develop a commercial chess program; we're hoping to be able to enter this baby in the Harvard Cup tournament next fall."

"You really think a commercial version is feasible? I can't imagine the average user reading chess books to his computer."

"The commercial version won't have learning capabilities; even the latest generation of home computers isn't powerful enough to handle that part. We let the learning phase run for a while, then freeze the algorithm, graft on a point and grunt interface, package it with a manual printed on drool-proof paper and presto! Goodknight for the unwashed masses. But there's another reason for using MABUS/2k, even aside from the commercial angle. It turns out that MABUS/2k is structured in a way that's ideal for the kind of AI applications we had in mind. It's built around a smart compiler, which is particularly important for a program like Goodknight."

"Why is that?"

"Well, since Goodknight really programs its own chess algorithm, it's constantly changing. The smart compiler gets feedback when the program is running, and continuously tunes the operating system to maximize speed and efficiency. Also, having an operating system that came out of a box let us concentrate on writing our program, without having spend a lot of time programming on the bare metal. We've made a few modifications, of course, but it's basically MABUS/2k."

"That's probably why you've got a virus."

"No doubt. Also, our hardware isn't as fast as the current generation of supercomputers, but," he grinned, "we expect to make up in programming elegance what we lack in brute force."

"Can you really make up for that much difference in speed?"

"Seriously, yes we can. The number of possible chess moves increases exponentially with each further move you examine, so even the fastest computer in the tournament would be able to see maybe one move further than Goodknight. But Goodknight can compensate by weeding out less promising lines at the outset. Plus, since it has more strategic sense, it should play itself into superior positions where there are more potential combinations in its favor."

"That sounds like a good theory. How is it working out in practice?"

"One of our team members, Alex Krakowski, is an international master, the rank just below grandmaster. He says Goodknight is improving at an amazing rate and that its positional play is already superior to any of the current programs." He grimaced. "Truthfully, this tournament entry is a little premature. We wanted to have a few more months to let the learning phase run, and work out some minor bugs. But our sponsor was pressuring us to see some results."

We arrived at SAIL, the Stanford Artificial Intelligence Laboratory--a storied place in the history of AI--a little before seven A.M. SAIL was currently housed in Margaret Jacks Hall, known to its denizens as "Marginal Hacks". George introduced me to the other members of his team, including Jason Wright, a short guy with thick glasses, a gold earring, and red hair that he wore in a pony tail. He made you think "whiz kid," except there was just enough gray at the temples that he could no longer quite get away with that particular sobriquet.

After a very abbreviated exchange of social pleasantries, we got down to business. "We thought about trying some of the commercial antivirals," Jason said, "in case it's anything run-of-the-mill, but George talked us out of it. I went along with him because nobody on this team knows too much about this stuff, and I didn't want to make things worse by screwing around."

I nodded. "If I can say this without sounding too self-serving, you did the right thing. I've encountered some copies of commercial anti-virus software that were themselves contaminated with viruses. Admittedly that's not something you see too often, but I think you guys have got too much time and effort invested in this thing to mess around with half-assed approaches to the problem.

"Now tell me this: do you think there is any possibility that somebody deliberately inserted a virus or worm in your software?"

They looked at each other, then shook their heads. Jason said, "No way."

I said, "Wrong."

Eyes opened wide. Jaws dropped. Veins popped out on foreheads. Expressions ranged from shock, through rage, to dumbfounded horror. Jason sputtered for a few seconds, and finally managed to come out with, "WHAT? What do you mean? Who..."

I held up a hand. "What I mean is that, in my experience, contamination of a secure system is almost always an 'inside job.' And it's always possible. You might think that there's no one who would want to do it. You might think there's no way they could, even if they wanted to. There's always a way.

"I'm telling you this because I want you all to start thinking about who might have had a motive to screw you, or the opportunity to insert a contaminant in the program. I'll check your system for 'wormsign,' and vaccinate you against known beasties, and," I patted my briefcase, "I've got quite a few in here that aren't covered by any of the commercial programs. But if somebody wrote a virus that's specific to this program, our best bet is to find out who, how and when.

"Now, in addition to checking your program, we need to screen every other piece of software it's come in contact with; language, operating system, the works. Also, if your system has any cache-like memory on a serial or parallel port, we'll need to check that too. George, you said this thing reads books of chess games, so I'm assuming you're using a scanner with optical character recognition software?"

"That's right; we've got the latest version of Cyclops, Macrobyte's OCR software."

"Okay, then we need to screen Cyclops too."

I interfaced my laptop with Goodknight in order to allow any resident virus to infect one of my hard disks. The disk was protected by a system that would pick up an intruder and "quarantine" it. I also worked with the Goodknight programmers to adapt one of my screening routines, and we loaded it. It would check Goodknight's umpteen lines of code for any known virus or worm, as well as looking for various indicators of infection, such as suspicious text messages or low-level formatting commands. Because of the uniqueness of their set-up, I couldn't really predict how long this would take--a few hours at least, I guessed. It would be a good time to get some much-needed sleep. But I was wired on a combination of caffeine and adrenalin, so instead I suggested to George that I tag along to the Mosconi Center for their third round match.

"Sure," he said. "I thought you'd want to hang around here though, or maybe grab some Z's."

"I shrugged. There's not much I can do right now except wait. I'd be interested in seeing if any of the competition is having similar problems."

Jason must have overheard us, because he approached, shaking his head. "I don't want anyone to know about this."

"Okay, I won't breathe a word about it. But I might overhear something suggestive. Besides, I would think your competition would be the most likely suspects if somebody did deliberately infect you."

Jason considered that one. He looked like he was going to say no anyway, but George chimed in "C'mon Jase, let him come. If anybody asks, he's just an old college chum of mine who came to see some of the action."

Jason squinted behind his horn-rims. "Okay. But remember, not a word about this to anyone."

We took George's car back up the highway to San Francisco, with two of the other programmers jammed into the tiny back seat. One was Alex Krakowski, the team's chess expert, a thirtyish man with black curly hair and beard. The other was Harvey Wang, an undergraduate who was as tall as George. I offered him my spot in the front seat, but George insisted on having me ride shotgun. Harvey just smiled and said if George didn't mind having Harvey's knees jammed into his back all the way to San Francisco, he wouldn't mind either.

Not surprisingly, there was an air of tension and excitement in the car. "So," I said, "who's this morning's victim?"

I think I've got a pretty decent sense of humor, but they laughed a little too hard at that one. George said "Our victim? Some stiff named Zivojinovic."

Goodknight would have the white pieces against the world champion. Alex Krakowski was hoping that would be enough to get them a draw.

"A draw," he said, "against the 'Dragon' would be a coup. Our best chance is to use a queen pawn's opening." Alex went on to explain that Zivojinovic was considered so dangerous with his favorite Sicilian Defense, that hardly anyone dared open pawn-to-king-four against him in competition. "At the interzonals three years ago, he won five match games with the black pieces, all with the Sicilian Defense. Five! Nobody has done that against that caliber of competition since Bobby Fischer shut out two grandmasters in the 1972 interzonals."

I said, "How do you know that Goodknight won't open with the king's pawn?"

Alex said, "Well, we're not allowed to stipulate a particular first move, that would violate tournament rules. The programs have to make all of their own moves. But they are allowed to take the opposition into consideration; after all, any human player would do the same. Goodknight has studied all of Zivojinovic's games, and it knows it's going up against him today. If, after all that, it's dumb enough to get into a Sicilian with the Dragon, I'm gonna go back to SAIL and kick it in the motherboard.

"Actually, the rules in this tournament tend to favor the human players--two hours to make all of your moves tends to blunt the computers' speed advantage. But that's okay--number crunching isn't our strong suit anyway; this program plays great strategic chess. I think we might get a draw."

"Don't get your hopes up," George said.

"He's being modest," Alex said to me in a confidential tone. "Even if we don't win this tournament, George's program is going to represent a major advance over the competition."

"George's program? I thought Jason was the team leader."

"Jason is a good programmer and a decent administrator. But George is the programming genius behind Goodknight."

"Aw, come on, you're making me blush," said George, who didn't look a bit red-faced. "Don't worry though, I'm not suffering any sudden throes of false modesty; if Goodknight was running at a hundred percent I'd be hoping for a win. But something's wrong. I just hope we're not going to have to withdraw from the tournament." He glanced over at me; I squirmed. For the first time it really hit me how much George and his colleagues had riding on this program, and how much they were counting on me to help them. Up until now it had been a bit of a lark. After all, I usually deal with clients who have megabucks at stake; infections in their software systems can cost jobs, ruin careers and destroy whole companies. This, for Christ's sake, was a program that played a game.

But it was a lot more than that, I was beginning to realize. Jason Wright and Alex Krakowski and Harvey Wang, and my friend George Bard, and others had poured their hearts into making Goodknight work. If it turned out that somebody else's program was better, that's one thing. But they deserved their shot without having it screwed up by a software virus.

I'm not saying I hate all hackers. No doubt, the vast majority of them are decent, ethical, trustworthy, loyal, and even have reasonably good personal hygiene. Even most of that minority of hackers who get their kicks writing viruses are not truly malicious. Usually, they're just trying to be clever and have a good time without really hurting anybody, although they cause a lot of damage they never intended. But the few virus hackers who are really trying to screw people are, in the great scheme of things, several levels below pond scum.

A malicious virus hacker is really nothing more than a bully. Just like a bully beats you up in order to enjoy the fact that he's bigger and stronger than you are, the virus hacker destroys your property and your work to prove to himself that he's more clever and knowledgeable about computers than the average user. Big whoop.

Not that I've ever actually met one of these pea-brains. My job is to undo the damage, not find the cretins who are responsible for it. That's a job for computer crime divisions within the Secret Service, FBI, SEC, FCC and an alphabet soup of other federal agencies. So no, I haven't met any virus hackers personally. But I've got a little list.

One of the tip-offs that a particular hacker is on an ego-trip is when he signs his masterpiece. Not with his real name, of course. But most hackers have computer noms-de-guerre or "hacker handles" and they like to include clever little messages, such as "You have been screwed by the Prince of Passion. Did you enjoy it?" Some of the repeat offenders I've encountered in my work are Astaroth, Dr. Entropy, Pain Man, The Wizard of Odds, and MetLhed, who is such a pathetic programmer that it takes him about a hundred lines of code to do what anyone else could accomplish in four. Astaroth is, unfortunately, a very good programmer, and has written some particularly loathsome specimens.

Astaroth is good, but then there's Beelzebub. Beelzebub has written some of the most deviously destructive viruses that I've encountered. His viruses are stealthy, highly infective, difficult to eradicate, and malicious in the extreme. Some virus hackers seem to do what they do because of a warped sense of humor. There's nothing remotely funny about Beelzebub's stuff; he just wants to screw people.

At the opposite end of the spectrum is Vamana. Vamana's viruses are not only not intentionally destructive; I've never encountered one that caused even inadvertent damage, other than people panicking when they realized their system was infected. This is practically impossible, because viruses almost always cause some unforeseen effects. Not Vamana's. Some of Vamana's viruses are even beneficial, like Fred Cohen's compressor virus, which saved disk space by compressing files (and asked the user's permission first). Also, unlike the preadolescent level of humor displayed by most virus hackers, Vamana's stuff is actually pretty funny at times. And the guy is an unbelievably talented programmer. Writing viruses is still wrong, but he does it so well that I've developed a grudging admiration for him.

The exhibition hall where the world chess champion would play against Goodknight was already crowded with spectators. A table was set up on a dais with a chess board and a telephone. Alex Krakowski would sit at that table opposite the champion, moving the pieces for Goodknight, and relaying the Dragon's moves over the phone. I wondered briefly why they didn't use a direct hook-up via modem, then figured it was an additional precaution against contamination.

Two large projection-TV screens were set up on either side of the dais. One showed a close-up of the actual chess board, the other a schematic of the board.

The 'Dragon's' arrival was apparently considered imminent, because there was a lot of excited murmuring and neck-craning. I looked over in the direction that necks were being craned, and did a double-take.

"What is it?" asked George.

"Al Meade is here."

"Who's he?"

"That," I pointed, "is she. Al is for Alice." In the mostly male crowd, she was not hard to pick out. Her back was to us, but I'd recognize that back anywhere. Her jet black hair was cut short, resembling a helmet of polished ebony, and her charcoal gray suit had a fashionably short skirt revealing slender but shapely legs. Even in her high heeled pumps, the top of her head was at shoulder level to the men standing next to her.

"Huh," George said. It was an appreciative "huh". "Those guys she's with--they're with the Mephisto team."

Maybe she had a feeling she was being watched, because she glanced back at us with large, dark eyes. She looked well-rested, clean, and impeccably groomed. I thought about how I must look after thirty-six hours without sleep, wearing the same clothes I had put on in London yesterday morning and worn through two long airplane rides.

"Damn," I said. "She saw me."

George looked at me quizzically. "So?"

"Your boss didn't want anyone to know that you guys may have a virus. Now somebody will. I hope he'll be comforted by the knowledge that the Mephisto people seem to have the same problem."

"You mean she's..?"

I nodded. "Another bugbuster. Which actually doesn't make sense, because didn't you tell me the older programs are hard-wired?" "Hard-wiring" refers to converting software into electronic circuitry. It makes things run faster and, incidentally, is a perfect defense against viruses and worms, as long as none are in the software at the time of the conversion.

"Not Mephisto. They preferred to trade a little speed in order to maintain programming flexibility. Mephisto is also supposed to learn and improve. Not as well as Goodknight, of course."

"Of course."

I saw Al turn and say something to the man on her left, a beefy guy with a blond crew-cut. He glanced back at me. "The cat is out of the bag," I told George. "I'm going over there to talk to her." After about three steps I realized George was right behind me. He grinned. "Introduce me, huh?" I shrugged.

"Hi Al," I said, once we'd wormed our way through the crowd. "I'd like you to meet George Bard, an old college friend."

She offered George a professional, if perfunctory, handshake and smiled thinly at me. "Darryl Taggart, this is Michael Arcangelo. Hello, Michael. I didn't know you had an interest in chess."

"I think you know what my interests are, just as I know about yours."

Taggart looked uncomfortable. He cleared his throat. "Maybe we should have this conversation somewhere more private."

"I don't think any further conversation is necessary," said Al.

"I hate to be disagreeable, but I think it may be very necessary," I said.

Taggart looked interested. "What do you mean?"

"Ms. Meade and I both help people with certain kinds of problems. We may be able to help each other by sharing certain information."

Al smiled sweetly. "I wouldn't be surprised if Mr. Arcangelo needs help, but I can assure you that I don't need any from him."

I glanced at Taggart; he shrugged. Apparently he was going to let her call the shots on this. I said, "Fine. The offer is open. If you reconsider, I'll be around."

Al continued to smile her saccharine smile. "That's not even a remote possibility."

George and I headed over to where Alex waited near the dais. He was grinning, which pissed me off. I said, "What?"

"You know," he said, "I think she likes you."

At that moment an excited murmur greeted the arrival of Dragan Zivojinovic. I caught sight of him as he mounted the dais, and felt that odd sense of unreality that always accompanies seeing anyone famous in the flesh--as if some little part of my brain can't quite believe that a face that's familiar from TV, magazines and newspapers could also be hanging on the front of somebody's actual head.

The "Dragon" was tall, slender, hawk-faced, white-haired despite his thirty-something years. He looked confident. Hell, he looked invincible. It's a good thing that computers aren't intimidated by looks, or Goodknight might have turned over its king right then and there.

Alex said something to the champion that I couldn't hear. The Dragon smiled and nodded. Alex spoke into the phone, reached for the chess board, then paused, his hand hovering over the white pieces. His mouth hung open. Then, with a look of resignation, he made the move. Zivojinovic looked startled too, for a moment, then he smiled again. It was not a smile you would want to see across a chess board. I glanced at the video monitor with the board schematic.

The white king-pawn was on K-4.

The first half dozen or so moves went pretty rapidly. Then Goodknight evidently did something unexpected, because the "Dragon" was taking some time to think about it. My knowledge of chess doesn't go much beyond how the pieces move, so for me it's not exactly thrilling as a spectator sport. I decided I had seen enough. "George, will your sponsor cover putting me up at a decent hotel?"

He raised an eyebrow. "You mean you don't want to stay at Chez Bard in scenic Palo Alto?"

"I'd be happy to stay with you, but I'd like to have a place in the city to use as a base. And right now, I want to crash."

He nodded. "Get a room at the Marriott, it's right nearby."

"Okay. Give me a call when the game is over."

There were a couple of small conventions in town sharing the Mosconi Center with the chess tournament, but otherwise not much going on, which is probably why I was able to get a room at the Marriott. I registered, called the airline to tell them to send my bag to the hotel if they ever found it, and called Jason Wright to tell him where I'd be. I made these calls while stretched out on the bed, which was a mistake, because I fell asleep with my clothes on. What the hell, they already looked like I'd slept in them.

A rapping at my chamber door awakened me from a dream in which Dragan Zivojinovic was wrapping his scaly coils around a fair maiden with big, dark eyes and a saccharine smile. I think I just missed seeing him bite her head off. Damn.

I stumbled to the door and opened it, revealing George's big dumb grin. "What's so funny?" I said. It was not quite a growl.

His grin broadened. "Nothing at all. I was just thinking that there are some advantages to not having hair--like you don't have to worry about how silly it looks when you first get up. That and...drum roll please."

"We're fresh out of drum rolls. Will you settle for a knuckle sandwich?"

"You are cranky when you wake up. When we were in college I thought that was just from being hung over all the time. I didn't realize it was a character trait."

"When you're through critiquing my appearance and personality, would you please tell me what's going on?"

"Well you might ask what's going on. While you were over here committing the deadly sin of sloth, the Goodknight team was writing a page of chess history."

"You mean your program beat Zivojinovic?"

I thought his grin was going to split his face. "It's going out on the wire services even as we speak." He chuckled. "I thought Alex was going to faint."

"Hell," I said, "he nearly fainted after the first move."

"C'mon. Jason said no celebrating until after the tournament, but I'm gonna buy you a beer."

I looked at my watch. It was two o'clock. "Gee, it's a little early for me. But what the hell, it's eleven o'clock in London. Let's go."

George managed to rein in his enthusiasm long enough for me to have a quick shower and shave. I hung my clothes in the bathroom, hoping the steam from the shower would take out some of the wrinkles. It didn't work.

George was hanging up the phone as I came out of the bathroom. "I was just talking to Jason. He wants us to come back to SAIL right now, but he wouldn't say why. I'm afraid this virus business is aggravating his natural paranoia. What you said didn't help much, either."

I shrugged. "I'm not naturally paranoid, just professionally paranoid. Well, let's go. Don't forget though, you owe me a beer."

The atmosphere back at Stanford was a curious mixture of euphoria and panic. Alex Krakowski was walking around muttering "Pawn to king-four...pawn to king four..." The rubber band on Jason Wright's pony tail had broken, and his hair was going in about fourteen different directions. Circumstantial evidence suggested that his prohibition on premature celebrating was being widely, if surreptitiously, ignored.

Jason collared us as we came in and herded us toward his office. Progress was slowed a bit by George exchanging high fives with the other programmers, but we got there eventually.

Jason's office was a small windowless cubicle with most of its space occupied by a computer workstation. Most available surfaces were covered with print-outs, stacks of floppies, and Coke cans filled with cigarette butts. In addition to the swivel chair facing the workstation, there were a couple of plastic stacking chairs in the corner. Jason swept the detritus from the latter onto the floor and motioned for us to sit.

"Okay," I said, "what's going on?"

He squinted at me. "I was hoping you could tell me that." He handed me a sheaf of fan-folded printer paper. I riffled through it.

"So, there was a virus in the OCR software. Did you kill it?"

Jason shook his head. "Read on."

I looked at the rest of the print-out. "The virus was in the OCR software, but not in Goodknight." I looked at George. "You didn't tell me Goodknight had an immune system."

He and Jason chorused, "It doesn't."

"MABUS/2k has one, of course," George added, "but we took it out."

I thought about it. "Then you've got a mutator."

"We've got what?" Jason yanked at a stray wisp of hair that kept falling over his face.

"A mutator is a worm or virus that alters its own code each generation. The concept was originated by Fred Cohen back in the eighties, and, unfortunately, put into practice by a Bulgarian virus hacker known as 'Dark Avenger'. Much more difficult to kill, but it can be done."

Jason said, "I'm all ears." Actually, at the moment he appeared to be at least eighty percent hair, but I wasn't in the mood to quibble.

"The surest way is to decompile the code. Even a mutator usually has some areas of code which are constant--the mutation instructions, for example. If those mutate, then it can't mutate any more. If you have the source code to work with, you can identify those areas and zero in on them."

Jason looked skeptical. "You've done this before?"

"A few times."

"And if you can't decompile the code?"

"If you have at least two generations of the mutator, you can compare them for areas of constancy. It's not as sure as the other way though, because you don't know whether you've identified a true invariance, or just an area that didn't happen to mutate last generation, but might next time."

"Who would know how to program a virus like this?"

"Just a few thousand hackers. And certainly anybody in my line of work."

George said, "Like Al Meade?"

I said, "Actually, yes," as Jason was saying "Who's Al Meade?"

George and I exchanged a look. We had not yet told Jason about Al, and the fact that the Mephisto team now knew or could guess about Goodknight's "illness." The look did not go unnoticed by Jason, who demanded, "Will somebody tell me what the hell is going on?"

We told Jason. He ranted and raved a bit, but after he calmed down he had to agree that it was just bad luck, and there wasn't anything we could have done about it.

"Besides," George added, "as a result of Mike being there, we know that Mephisto has problems too."

"Are you sure?" Jason said. "How do you know the Mephisto team didn't hire this person to infect their competition?"

"You think they would really do that?" asked George.

"Isn't that what you were implying when you asked Mike if she'd know how to program a mutating virus? And yes, I do think they would do it. I knew Darryl Taggart when we were both grad students, and he is a scuzzball. The only reason I have any doubt he'd do it is he's too arrogant to think we'd have a chance against him. But maybe he'd do it anyway, just to be an asshole."

I shook my head. "Look, I've known Al a long time. Professionally, not personally"--that in response to a significant look from George--"but I really don't think she would do anything like that. It would be like a doctor poisoning her patient."

"Somebody else's patient," George said. When I winced, he added loyally, "But I don't think she'd do it either."

"Wait a minute, Mike," Jason said. "Weren't you the one who was telling us that this was probably done deliberately?"

"What I said was that it was likely to be an inside job."

"You also pointed out that our competitors would have the most obvious motive."

"Motive is one thing. You also have to have opportunity."

"You think they wouldn't have any opportunity? It's not exactly Fort Knox around here." said Jason. "What I want to know is why this Meade person wouldn't cooperate with you when you suggested it. That doesn't exactly inspire confidence. I think Taggart is up to something."

"So what do we do?" George asked. "Take some rubber hoses over to the Mosconi Center and beat a confession out of them?"

"Before we do that," I said, "I want to take a look at this virus."


Excerpted from Wyrm by Mark Fabi. Copyright 1997 by Mark Fabi. Reprinted by permission of Bantam Spectra Books, a division of Bantam Doubleday Dell Publishing Group, Inc. No part of this excerpt may be reproduced or republished without permission in writing from the publisher. For more information about this and other Bantam Spectra books, please visit the Spectra Forum.


Home