Выбрать главу

And then Rob stole it all away.

Lesley was nice enough when she broke up with him. She used all the right words, like “This is going too fast for me,” and “I still want us to be friends.” But Tim knew there was more to it than that. She would never hurt him on her own. There had to be someone else, a source of malevolence lurking in the shadows.

Two weeks later he saw Lesley and Rob together in the cafeteria. That’s when the hatred began.

So Tim went back to waiting. He waited to see if Rob and Lesley would last. Then he delayed his own plans until he learned they were going to Boston College. His true feelings stayed hidden behind a happy-go-lucky façade while he remained in the picture by becoming good old life-of-the-party, just-a-close-friend-now Tim. He even waited to accept a job offer until Rob had chosen.

Tim smiled grimly as he scrolled unseeingly through another page of computer program code. A lot had changed in the seven years since high school. The one constant during all that time, however, was Tim’s certainty that he would find a way to get Lesley back.

* * *

Stan Dysart stood looking out the plate glass window of his ninth floor office. Midnight had come and gone. The other office buildings nearby were mostly dark. He had considered going home but knew he wouldn’t be able to sleep. Instead he paced in his office and waited for a bunch of keyboard tappers to tell him whether he was likely to lose his bank.

After all the years of calculating risks and hustling to make deals, everything could come crashing down because his computer people were incompetent. What an unbelievable fiasco. The muscles at the base of his neck throbbed from hours of unrelenting tension.

Dysart heard a tap on his door and John Kelleher stuck his head in.

“Got a minute?” Kelleher said.

“What do you think,” Dysart said, “I’ve got something else to do this time of night?”

“I think we’ve identified the problem,” Kelleher said as Paul Dees followed him into the room. The two men ended up standing in front of Dysart’s desk.

For the first time that night, Dysart felt a spark of optimism.

“We’ve been over the system from top to bottom,” Kelleher said, “and the only possible place the attacker’s program could be hiding is inside AMS itself.”

“I don’t follow you,” Dysart said.

“It’s called an Easter Egg,” Dees said, “when someone slips their own procedure into a larger program. It can happen with all kinds of software. For instance Rob told us he owns a computer game where if you press a weird combination of keys, like the question mark twenty times or something, then one of the female characters flashes her boobs. Apparently one of the video game programmers put it in for a joke and it ended up in the commercial version.”

Dysart felt like screaming. He should have known better than to get his hopes up.

“You’re saying that scrambling bank accounts is someone’s idea of a joke?”

“Not at all,” Dees said, “just that it’s possible to hide one program inside another.”

Dysart picked up a wooden-handled letter opener from his desk and started slapping his palm with it in agitation.

“Can you look inside AMS and see if anything nasty is in there?”

“Yes and no,” Dees said. “It’s kind of complicated because a computer program like AMS actually exists in two different forms. When we build the thing, the programmers write source code using a textual language that people can understand. Then we convert it into a different format the computer can execute. A person can make sense of the source code but the executable program is just a jumble of ones and zeros. Normally that’s no problem, since the source code tells you all you need to know.”

“I hear a ‘but’ coming,” Dysart said.

Dees nodded. “I found something strange tonight. I keep the master copy of all AMS source code files. I’m the only one who’s supposed to be able to update them and none of them should have been touched since the AMS executable was created four months ago. Tonight I discovered several files were changed a few hours after the executable was created. That means someone tampered with them, because I certainly didn’t change them.”

“Someone could have inserted a scrambling function into the source code,” Kelleher said, “and then waited until after the executable was created before changing the code back again.”

“Someone,” Dysart said. His lips were thin white lines. “You mean someone who works here.”

“It would have to be,” Dees said, “and almost certainly an AMS team member. No one else would have the system knowledge or the access privileges to pull this off.”

Dysart pointed the letter opener at Dees. “And you’re the only one who has access to the system files?”

“I’m supposed to be. Of course anyone who knows the system administrator password can do whatever they want on the whole computer. Or someone could have looked over my shoulder and stolen my password.”

“Or you’re the one who attacked my bank,” Dysart said.

A look of stunned horror spread across Dees’ face. Kelleher looked grim but said nothing.

“You can’t be serious,” Dees said.

Dysart was rapidly losing what little patience he had started with. He angrily tossed the letter opener onto his desk, where it clattered to a stop against the phone.

Glaring at Kelleher, he said, “At least tell me you can prevent more accounts from being scrambled.”

“Our best bet is to replace the AMS executable. Rob and Tim are going through the source code as we speak, making sure there are no obvious problems. Once that’s done, we’ll generate a new executable and run through the automated test suite we used four months ago.”

“And how long will that take?”

“Working around the clock, a day or two … and that’s assuming we don’t find any problems.”

“Can you protect the other accounts in the meantime?” Dysart said.

Kelleher looked at Dees, who still looked furious from Dysart’s accusation. Dees shrugged and said, “I don’t see how, except by shutting down the system. But that’d basically mean closing the bank.”

Dysart gave his desk chair a frustrated shove and turned away to face the window behind his desk. Angry blooms of condensation formed on the cool glass when he exhaled.

“Forget that,” Dysart said, turning back to face the other two. “That’s what the attackers want, not to mention what it would cost. How would we explain to our customers that we’re out of business for a couple of days? Oh, our computers are down. Bear with us. That would do a lot for customer confidence, wouldn’t it? No, the system stays up while you fix it as fast as you can. And I mean nobody even thinks about going home until it’s done. Is that clear?”

Kelleher and Dees nodded in unison.

“And,” Dysart continued, “you have to assume someone on your team is a rat. You need to smoke them out, or at least make sure they can’t do more damage.”

“How are we supposed to do that?” Kelleher said.

“How should I know?” Dysart shouted. “I don’t run the computer department.”

Kelleher’s cheeks turned a mottled purple. “And we’re not investigators. If you ask me, we need to call the police.”

“We can’t,” Dysart said. “As soon as we do, then it’s out of our control whether this thing goes public. We have to make this go away quietly.”

Dysart pointed an index finger at the two men, his face flushed with anger. “But if I find out someone working for me did this, they’re going to wish they had never been born.”