“Will do.” Eichhorn and the deputies soon found themselves being hustled out of their own training room. The door closed behind them, and the five men stood in the hallway.
Sebeck gestured to his rejected report. “Hell of a morning.”
Eichhorn pointed. “I want to see that revised report before you hand it to Decker.” He turned to the others. “Burkow, Larson, come with me. We’ve got to scare up some manpower.” They moved off toward the division offices.
Mantz slapped Sebeck on the back. “Don’t let him get to you, Pete. I’ll hook up with you after the permit office.” Mantz headed down the hall.
Sebeck watched him go. Just then, two FBI agents emerged from a nearby interrogation room. They had one of the suspects from Alcyone Insurance in tow—an exhausted-looking Jon Ross. Ross’s laptop bag was slung over his shoulder, and he was folding up his flip phone. One of the agents turned to shake his hand. “Mr. Ross, thanks for your cooperation. We know this has been disruptive to your business.”
Ross slipped the phone into his pocket. “Disruptive? I just got a voice mail from Alcyone’s lawyers. They’re threatening a lawsuit, and they canceled my contract. I have messages from two other clients who are putting my projects on hold, no doubt because of you guys.”
“Be sure to let us know where to get in touch with you if you leave town.” The agent handed Ross a business card. “And don’t leave the country.”
Ross stared at the card. “Don’t leave the country? I have a project in Toronto next month.” He studied the unsympathetic expressions on the agents’ faces, then pocketed the card. “Any chance of getting a ride back to Woodland Hills?”
“Check with the sheriff’s. But it might be quicker to call a cab. Thanks again.” Both agents made a beeline for the training room door. They knocked twice and ducked inside, leaving Ross staring after them in the busy corridor.
Sebeck called across the hallway, “I see the Feds haven’t lost their light touch.”
Ross regarded Sebeck warily.
Sebeck approached and extended his hand. “Detective Sebeck.”
“I know who you are, Sergeant. You were at Alcyone last night.”
“You need a ride someplace?”
“I can call a cab.”
“C’mon, it’s the least I can do. It looks like you’ve gotten the short end of the stick in this whole thing. I’m heading out, anyway.”
Ross hesitated, then nodded. “Thanks.”
Sebeck and Ross drove in silence for a few minutes. Ross was absorbed by a smart phone in his hand. He brushed his finger through several screens, reading intently. Eventually he looked up. “Interesting.”
Sebeck glanced at him. “What’s that?”
“I finally got a chance to read the news. It’s nice to know what I was almost accused of.”
Sebeck said nothing.
“Your murder case is all over the headlines. Look, there’s you.” Ross held up the phone to show a news Web site with a photo of Sebeck at the press conference.
Sebeck barely looked. “Well, it’s not my case anymore.” They drove on for a few moments in silence. “So, you’re some kind of computer consultant, is that it?”
“Yes. I design relational database management systems.”
“How does a young guy like you get such big clients?”
“Word of mouth. I’m good at what I do. You look young to be a sergeant of detectives.”
Sebeck grimaced. “I got an early start.” They came up on the entrance ramp to the 101 freeway, but Sebeck headed across the bridge to the far side of town.
“Sergeant, you just missed the freeway ramp.”
“I need to stop off somewhere first. Listen, can I ask you some computer questions?”
Ross looked uncertain. “What about?”
“That virus at Alcyone. Everybody there was looking to you for help. So, you know a lot about viruses?”
“I already told all this to the FBI. I’ve been cleared, remember?”
Sebeck waved his hand in acknowledgment. “I know, I know. But our in-house guy doesn’t have the chops to deal with much more than teen hackers and drug dealers.”
“Sergeant, the FBI has a cyber crime unit to deal with this. They don’t need my help.”
“It’s not the FBI that’s asking.”
Ross looked to Sebeck. “Ah…I see.” He raised his hands to represent headlines. “Local cop cracks case.”
Sebeck looked darkly at Ross. “I’m just trying to stop a killer.”
“To be frank, Sergeant, you’re going to have a difficult time finding whoever killed those men. This is essentially a computer forensics case, and the FBI is better equipped for that.”
Sebeck took a chance. “What if I told you I know who the killer is?”
Ross tensed visibly.
“No, not you.”
“That’s why the FBI let me go?”
Sebeck nodded. “What if I also told you that the killer was dead at the time of the murders?”
Ross looked puzzled for a moment—but then a look of realization came over his face. “No way.”
“That’s what I need to know. Is it possible?”
“Holy shit, you’re serious.”
“The Feds believe it. But I don’t. I think the real killer is over at CyberStorm and that he’s framing this dead guy for the murders.”
“It’s Matthew Sobol, isn’t it?”
Sebeck cast a surprised look at Ross. “Where the hell did you hear that?”
Ross gestured to his phone. “The news said Sobol died this week from brain cancer. He’s your dead killer, isn’t he, Sergeant?”
Sebeck realized he might be in trouble. “Whatever you learn here doesn’t go to the media, your friends—anyone. If I even think you leaked this, I’ll charge you with interfering with a police investigation. Do you understand?”
“Your secret’s safe with me. But if I were you, I’d be more concerned about Sobol. If that’s who’s behind this, then there’s more going on than just these murders.”
“How come everyone but me has heard of this Sobol guy?”
“I’m a hard-core gamer, Sergeant. Sobol was a legend. He helped build the online gaming industry.”
“Legend or not, how could a dead man have known when to trigger his traps? He’d have to know in advance the exact day he’d be dead.”
“Not necessarily.” Ross held up his phone again. “He could be reading the news.”
“Don’t talk science fiction crap.“
“Sergeant, it’s a trivial matter for a computer program to monitor Web site content. It’s just text. All Sobol would have to do is create a program to scan news sites for specific phrases—like his obituary, or stories about the deaths of certain programmers. A simple key word search.”
Sebeck considered this. “That virus you stopped over at Alcyone Insurance. Could that be the program that was waiting for Sobol’s death?”
“Maybe. And it sent packets to thousands of IP addresses.”
“Packets containing what?”
“Probably commands.”
“To thousands of addresses?”
Ross nodded grimly.
“Jesus. Would the Feds know this?”
“Oh yeah. The type of program I stopped at Alcyone is fairly common in computing. It’s known as a daemon. It runs in the background waiting for some event to take place. Usually it’s something simple like a request to print. In this case it would be news of Sobol’s death. Then it activates.”
“And triggers the killings.”
Ross nodded. “It’s possible.”
“Just one problem. Sobol couldn’t call me on the phone. I got a phone call this morning from someone pretending to be an FBI agent. They told me to check my e-mail—and that’s what led me to Sobol. So someone else is coordinating this.”
Ross was shaking his head. “It could have been VOIP—voice over Internet protocol.”
Sebeck glared at him. “Have I stepped thr
ough a fucking time machine? Was I asleep for the last decade or something?”
“VOIP went mainstream in the corporate world years ago. It saves on phone bills by directing voice communications over Internet servers instead of long-distance telephone lines.”
“So you’re telling me this Daemon program can talk to people over the phone?”
“Playing a prerecorded message over a phone line is easy. The Daemon could manage the sequence and schedule the calls based on what it reads in the news.”
“So it’s not actually a computer talking? Someone must have recorded the message?”
“Probably. Although there are programs that can convert text streams into pretty convincing synthetic voices. Call any airline reservation desk—you’ll be talking to a computer pretty quick. It’s used to announce flight schedules, credit card balances, things like that.”
They drove on for a few moments in silence.
Sebeck sighed. “Well, at least you got the Alcyone server. That’ll put a kink in the killer’s plans—whether he’s alive or dead.”
Ross didn’t look comforted. “You really should play one of Sobol’s games, Sergeant.”
Chapter 9:// Herr Oberstleutnant
Over the Rhine was the only first-person shooter to which Brian Gragg had ever become addicted. He’d played and mastered a score of PC action games. All of them had incredible 3-D graphics, volumetric smoke, realistic physics engines, thirty-two-voice sound, vast levels, and multi-player Internet features. But OTR was different: Its AI was scary smart.
Where enemies in other games poured through doorways, wave after wave, only to be slaughtered, OTR’s AI engine deployed Nazi soldiers realistically. In a house-to-house search, groups of three or four would peel off from the main group, kicking in doors. If you shot one or two or even three, the officer in the street would blow his whistle and shout orders. Then you’d better haul ass because dozens of soldiers would surround your cottage. They wouldn’t storm the place like mindless automatons. Instead, they’d take cover behind fences, walls, and vehicles, and they’d shout in German for you to come out. When you didn’t (and, of course, why would you?) they’d start tossing grenades through the windows or set fire to the house. If you tried to look out a window to see what they were doing, a sniper might cap you.
But what was even more fascinating to Gragg was that they didn’t do it the same way each time. There were smart and dumb soldiers, and varying qualities of Nazi officers. If you holed up in a particularly defensible spot, they might call in a Stug to batter the place into rubble—or worse yet, a Flamenwerfer. And if the siege went on for a while, the Gestapo would arrive to take charge of the situation, and that meant only one thing: SS Oberstleutnant Heinrich Boerner, an adversary so wily and twisted, this fictional character had become a cause célèbre at the E3 gaming convention. There was a thirty-foot color banner of his face hanging over CyberStorm Entertainment’s booth. He was literally the poster boy for evil.
OTR’s AI cemented the impression that you were fighting against a rational opponent—and a challenging one. Gragg appreciated the endless hours of distraction this afforded, particularly since his real-life incident with the Filipinos.
Heider’s body had been found in a rail yard near Hobby Airport, south of Houston. Heider had been bound, gagged, and beaten to death—left as a warning to the carder community. It was at times like these that Gragg was thankful for his limited social circle.
Few, if any, would be able to connect him to Heider, but just in case he decided to lay low for a few weeks.
He had about fifty or sixty thousand in cash on hand at various banks under various identities. Good thing, because he couldn’t trade the identity database he had copied from the Filipino server with any of his Abkhazian contacts. It was just too hot. He felt a wave of humiliation again. Over twenty thousand high-net-worth identities down the drain—a fortune on the open market. How did they know it was him?
Gragg had cracked their database through a Unicode directory traversal that allowed him to install a back door on their Web server. They hadn’t properly patched it, and the sample applications were still on the server, so it was a fairly trivial matter to gain Administrator rights. He was pretty certain that a network admin was lying at the bottom of Manila Harbor over that simple mistake.
But how the hell did they trace the hack to him? Gragg ran the exploit through a zombied machine somewhere in Malaysia and a hijacked 803.11g wireless connection in a Houston subdivision. Even if they tracked the file transfer to the destination IP address, how did that lead them back to him? Even if they beat the hell out of the poor suburban sap whose Wi-Fi access point he’d hijacked, that wouldn’t tell them anything. Nonetheless, Gragg had spent a couple sleepless nights waiting for his front door to be kicked in while pondering the question. He just couldn’t figure it. What had he missed?
Only recently did it occur to Gragg that he might have been the Filipinos’ only partner in Houston. By staging the attack from a Houston domain, Gragg had made a pathetically obvious mistake. The carder, Loki, from Houston, Texas, was an obvious suspect.
But as the days slipped by, it became apparent that either the gang was satisfied that Loki was dead or they had no idea of Gragg’s real identity. Until he was positive, Gragg spent his waking hours hiding in the rough industrial space that served as his apartment, playing endless hours of OTR. And OTR was quite a challenge, after all.
Gragg usually chose the Nazi side, and his preferred weapon was the sniper rifle, which he’d use to pick off newbies from a hiding place in a bell tower or garret window. He combined this with a liberal amount of verbal abuse, using hot keys to launch the taunts built into the game: I’ve seen French schoolgirls shoot straighter!
His cable Internet connection usually gave him a ping in the 20-to 50-millisecond range, which was a major advantage against lamers with pings of 150-plus. Their in-game avatars would hesitate as Gragg dropped them. He never tired of piling up the bodies in front of his hiding place.
Deathmatch OTR was a distributed network game—that is, one of the players hosted the game map off of his machine and made the match available for anyone to join over the Internet. There were deathmatch clients available that listed all available matches by geographical region—each machine sending out a message that it was available. The server listings numbered in the thousands.
Since Gragg had been playing OTR off and on for the last six months—well before the Filipino problem—he was intimately familiar with every game map. He knew that if he tossed a potato masher grenade from the end of the park in the Saint-Lô map, it would land just behind the vegetable cart on the far end, killing anyone hiding there. He knew a place on the Tunisian map where he could jump up onto shattered rooftops and snipe people with impunity. It took an experienced jumper to make the leap without falling to his death off the balcony.
Frankly, deathmatch had begun to lose its luster until CyberStorm released the custom map editor. Since then, a score of popular custom maps had appeared in the deathmatch server listing. Most of these maps were the out-of-control Rambo fantasies of fourteen-year-old boys, with ridiculous numbers of mounted machine guns and no logic in the placement and design of fortifications. Gragg knew he could do much better, but he didn’t have the inclination to learn the scripting language used to create the maps—no money in it.
So it was with low expectations that Gragg downloaded a new custom map named Monte Cassino. The reasonably historic name was unusual, since the fourteen-year-old crowd usually named maps something like “Fuckmeister Shitfest.”
Gragg quickly found a server named Houston Central running the Monte Cassino map. Since it was geographically local, it gave him a killer ping of twenty milliseconds, and he joined the deathmatch already under way.
The moment the map loaded, he noticed differences from other custom maps. First off, he wasn’t even allowed to join the Axis team. The map permitted Internet team play only for the Allied forces. The Ge
rmans were bots. It was humans against the AI, which irked Gragg because he loved playing the German side—they were the villains, after all.
Likewise, respawning was different in this map. It wasn’t a straight team match, where you respawned elsewhere after dying. Instead it was described as an “objective” map, where you stayed dead until the last member of your team died or until you defeated all the Germans—at which point the map reset and everyone was alive again.
Also, this map had radically different terrain and textures—as though it was all done from scratch. The map consisted of a steep mountain topped by the ruins of a large Benedictine monastery. The scenario description said U.S. heavy bombers had struck the monastery. The resulting ruins turned out to be a maze of shattered walls, charred wooden beams, and entrances to cellars. It provided excellent cover for the Germans, and the designer placed MG42s with interlocking fields of fire along the approaches to the hilltop. The Germans also had light mortars to kill you if you hid behind boulders. It was as if they’d “registered” the coordinates of all the good cover in advance—which was something the Germans might actually do. As a result, Gragg was determined to beat it.
It was quickly apparent that a pack of lone gunmen could not take the monastery. It required an orchestrated attack. It took an hour of goading other teammates using the chat window, but Gragg finally convinced them to coordinate their attack—instead of running hell-bent for leather up the hill. With some experimentation, they soon discovered that half the squad could draw fire from the Krauts while the other half of the force outflanked them on the left, using the steeper incline for cover. If they ran, they’d be spotted and cut down, but if they crawled on their bellies, they could usually get to within grenade-tossing distance of the outer fortifications. Once the grenades exploded, they’d charge into the ruins and the rest of the battle would be room-to-room fighting.
By this time, the squad distracting the Germans would be mostly dead from mortar rounds and heavy machine guns, so they couldn’t contribute much. It was a tough slog, and Gragg was still at it two days later. He hadn’t slept and had eaten very little, but he would not disconnect from the Houston Monte Cassino server without beating this map. The closest he’d come had been yesterday, when he made it into the wine cellars. There, an SS officer shot him in the back after Gragg raced past a row of wine tuns.