Now it was time to post his revised Raconteur source code to the network. Strickland manually copied this version, as he had all previous ones, into a new directory, following his previous folder-naming conventions. He did this outside of the official version control system just as he had in the past, so that this new directory wouldn’t seem unusual to anyone monitoring the share. Strickland had been doing it to avoid Prakash and the others’ knowing how much after-hours analysis of their code he’d needed just to keep up. So in that sense, Prakash had his own judgmental nature to blame for Strickland’s placing the code in jeopardy in the first place-or was that just a rationalization?
That was it, then. The booby-trapped source code had been posted. Strickland stared at the screen, then closed the window with a single click. The die had been cast. Now he found himself staring at the desktop. He was all keyed up, and late or not, he decided he wasn’t ready to head back to his studio apartment-to stare at ironic garage-sale clown paintings. They wouldn’t seem so ironic a few years from now. Instead he decided to build a service to alert him to any data coming back from his surreptitious phone-home code. It felt good to be writing software again, and he decided to write the detection service in C#. Prakash always railed against. NET, saying real programmers didn’t use managed code. Fuck him.
Strickland set up an app on one of his research domains that would place the IP addresses of incoming pings onto a world map. Might as well make it slick.
When he was done he nodded. He felt pretty good about himself. Hanging out with all these supergeniuses it was easy to forget that a little deviousness could make up for a lot of IQ points. Maybe he wasn’t the next Sergey Brin or Larry Page, but he’d do okay. He’d recover from this.
As he stared at the screen, at some point he nodded off to sleep.
Strickland jolted awake as the iPhone in his pocket sounded a klaxon warning-the sound effect he’d assigned for incoming messages from his phone-home code. He shook his head clear as the klaxon sound effect played again. He looked around the lab cluster to notice it was still deserted. What time was it?
The klaxon again. He pulled the phone out of his pocket, and, sure enough, there was an e-mail from his Web service. It had been less than thirty minutes since he’d posted the revised source code for Raconteur on the Leland SharePoint.
Thirty minutes.
Someone-or some software bot-was monitoring his SharePoint for changes. That meant he had been compromised. But by whom? Strickland switched over to his desktop, logged on, and then checked his mapping Web page. There, on a digital globe, he saw where the IP address of the machine that had just run his modified code resolved to: Shenyang, China.
He stared at the screen for several minutes without moving. The Chinese were stealing the Raconteur source code. They’d somehow slipped a back door into the Stanford network. While Strickland pondered what his next steps should be, the klaxon sounded again. He peered at his phone. Another message. He stabbed the refresh button on the Web page, and another IP address had been added to the map. This one in Washington, D.C.
What the hell?
Seconds later another klaxon alert sounded. And then another. Strickland clicked the map refresh again, and now there were dots on the map in St. Petersburg, Russia, and Colorado Springs, Colorado.
Another klaxon alert. Refresh. Now a dot over Hyderabad, India. As the minutes passed, Strickland watched as their visual intelligence software quickly spread across the world. By dawn there were twenty dots on the map, spread across China, the U.S., Europe, Russia, and Japan. It was the map to a covert cyber espionage pipeline. Who the hell were these people?
Strickland did a Whois lookup on the Washington, D.C., IP address and saw that the domain was registered to a company named Mirror Strategies. A quick check showed them to be a public relations firm. But then, it was much more likely they were being used as an unwitting proxy-most likely compromised themselves by the people doing the data theft. Perhaps their network was just a drop zone for stolen files from around the globe. The thieves could even recompile the source code remotely for added safety. Strickland would have no way of knowing just who was behind this-Chinese, Russians, Americans… who could tell? And who was to say it was even a government that was doing it? It could be just a cyber crime gang. Grad students like him, perhaps. Privateers for a foreign government, or just hackers doing it for shits and giggles.
Christ. Strickland’s mind was racing. What did this mean? Well, for one thing, he could prove that their work had been-and was indeed still being-stolen. And that meant that they could avoid disciplinary action from the university. Hold it: They might even have a legal case against the university at this point. Would Stanford then be willing to underwrite an effort to find out who had done this to them? To find the people, companies, or governments responsible for this? In fact, DARPA would need to know. The Department of Defense would need to know. This had national security implications.
First Strickland had to call the team. His team. Whether Prakash was enraged at him or not, they needed to collectively decide on a course of action. Barely thirty minutes had elapsed after Strickland posted his revised code until it appeared half a world away. Someone had methodically targeted them. This was deliberate espionage. Strickland was just the weakest link, but it was likely that, had he not made the mistake, whoever it was would have kept searching until they found a way in.
On a brighter note that meant Strickland was not entirely responsible for this. It was no accident-it was someone’s mission. Deliberate. Targeted. Espionage. Someone was watching their research with great interest. That meant there was still value here.
Strickland picked up his phone and checked the time-four-thirty in the morning. This couldn’t wait, so he called the calmest person on the team: Gerhard Keopple. Maybe Koepple could convince the others to reconvene…
Infuriatingly, it took over twenty-four hours for Strickland to get the entire team to agree to a meeting. Prakash had been the lone holdout, and it required the combined efforts of Koepple and Kasheyev and finally even Professor Lei to convince him to show up. Bao-Rong and Chatterjee weren’t a problem. Like Strickland, they weren’t really critical team members. They were ready to hear what anyone could do to salvage this situation-and their academic careers.
Strickland had told them only that he’d discovered how the code had been stolen-and by whom. In fact, the discovery had made him paranoid, and he refused to hold the meeting at their offices. Instead he’d insisted on a public place in the quad just north of Memorial Church. The wide paved courtyard there had a rosette pattern in its center, and that’s where they found themselves standing in the predawn light as the occasional university worker walked past them on the way to the church or points beyond. Here they could see anyone approaching from a long way off.
Kasheyev betrayed no emotion. “How’s your face, Josh?”
He hadn’t thought about it all day. “Fine. I’m fine.”
Professor Lei nudged Prakash. “I think you have something to say to Josh.”
Prakash sighed impatiently and refused to look Strickland in the eye as he spoke. “I apologize for striking you, Josh. It was wrong, and I regret it.”
Strickland nodded. “That sounds very… well rehearsed, but apology accepted.”
Professor Lei raised her eyebrows. “So we’re meeting out here why, Josh-because you think the offices are bugged?”
Strickland nodded. “The university network’s been compromised-possibly by a foreign government. I’ve got the proof.”