Kill Decision(15)
The truth was that Strickland sought out supergeniuses—people who were obviously going places. That’s what he’d seen in Prakash, wasn’t it? And Kasheyev? The others just came with the package. Strickland supposed they thought the same of him.
But Strickland did have skills they lacked, didn’t he? Unlike them he was outgoing and persuasive. A motivator of people. He could focus work groups.
He paused for a moment.
He was a parasite, wasn’t he? Fuck. If he was honest with himself, he was the least valuable member of the Raconteur team. If they’d never met him, the software would probably have looked exactly like it did right now—Prakash’s vision. Strickland had spent hours and hours studying the team’s source code, intent on comprehending each class. Each function and subroutine. Damn, their code was elegant. Brief. Tight. Integrated. Epic poetry for machines. Strickland was still trying to understand all its subtle details and interconnections. He couldn’t imagine having actually developed it.
In truth, Strickland’s recklessness with the source code might have sunk all their hopes for youthful success. But was it really that reckless to store the code on their own department’s servers?
What would it have taken to steal the project files from the Leland cluster? Someone with inside access, obviously. The server’s log files might show who and when.
Unless they covered their tracks. But then he realized that these were probably virtual servers—part of a cloud. And even if that wasn’t the case, the computer science department was crawling with arch hackers. People who could design microchips on the back of a cocktail napkin. He wasn’t likely to find evidence they didn’t want found.
And what the hell was he thinking—someone with inside access? What if it was someone who’d stolen the code from a misplaced USB drive? From a laptop or a wireless home network? Who was to say it was Strickland who had screwed up? What if it was Prakash? Judgmental prick.
Strickland slid his tongue across his front teeth. One still felt loose. The swelling on his lips had gone down, but if he weren’t drunk, he guessed he’d probably be in serious pain right now.
Bottom line: There really wasn’t much chance of finding out how the code got out. He was no computer forensics expert. Maybe Prakash and his rich family could hire one, but their hiring a lawyer to sue Strickland seemed more likely.
A thought suddenly occurred to him. What if whoever stole the source code was still stealing it?
Strickland sat upright—suddenly alert.
What if he could insert something in the source code that “phoned-home” if they stole it again? A smile spread across his lips—and he stopped himself as the pain spiked. He slid the wine bottle across the nearest desk and marched unsteadily over to the nearest workstation. Man, he actually was pretty drunk.
Strickland logged on to SUNet, then navigated to his own share on the Leland cluster, where he’d stored several versions of the Raconteur C++ source code. He perused the various “cpp” files. How to go about this? Prakash’s code was so damned tightly integrated, and Strickland was pretty drunk. KISS—keep-it-simple-shithead. That was the best policy. But then, all Strickland had to do was add something that would run whenever the Raconteur service was executed. That meant during initialization, when constants and classes were instantiated.
What about stealth? Screw that. He was in no shape to develop a rootkit. His consciousness felt as though it were swimming hard just to stay above the alcohol line in his skull. He stared unsteadily at the screen. Focus, you asshat. Marshaling a few sober brain cells took all his concentration.
Software connecting to a remote host on start-up wasn’t unusual. Checking for updates is all. Nothing to be alarmed about. He could write a tiny remote procedure call to pass back whatever info he wanted from the client via HTTP—from wherever his software was executing. The IP address of whoever stole the code, for starters. Maybe some details on the offending machine’s operating system and language. Maybe a list of network shares and—
No. Keep-it-simple. Just a small XML-RPC client to send the data. He had a C++ library lying around that he could include in the Raconteur code base; that way he could fold his little messaging routine in without much trouble. Then he’d just set up a companion RPC server running on one of his own Web servers to pick up any XML messages sent from clients. The HTTP traffic would look just like standard Web surfing to the thief’s firewall.
But wouldn’t they notice Strickland’s addition to the code? Perhaps not. If someone had stolen the Raconteur software, that meant they trusted the source, right? And the phone-home code only had to run successfully once. Just the one time to find out where it had been spirited away to.