Strickland launched Emacs and pondered what C++ project file to open first. Where should he make this change? He decided to slip the code into one of Raconteur’s ancillary services—a visual trace library. There he added a new subroutine that formed the XML, gathering client IP address, local time, and local operating system, then issuing it to an RPC server he’d set up next. Lastly, he incremented the Raconteur project version—making a bullshit notation about fixing a possible memory leak. He used Prakash’s initials to avoid arousing suspicion. After all, he’d rarely posted any changes that made it into the final source code. In fact, he’d have to admit he’d never made any meaningful contributions to the code itself. Until now.
Then Strickland took the better part of an hour coding the companion RPC server that would detect and process incoming pings from his phone-home code. It took that long mostly because he was so drunk he had trouble typing. He hosted it on a Web server he’d used as a summer intern at some Cupertino start-up. Error trapping? Bah. But it seemed to work, and it would gather any incoming data into a text file.
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?