8 BACK DOORS







Kade came out of his tech interview stressed and shaking. It had been an exhausting two hours. They'd drilled deep into what he and Rangan had built. They'd spotted every evasion. They'd known every time he lied or tried to hold something back. Well, he would show them.


He signed the papers they gave him. An ERD lawyer watched him, then countersigned the documents. The deal was real now. He would serve as their spy, and in exchange no one would go to jail. He and Rangan and Ilya would stay in science for just so long as Kade's mission lasted.


It was only then that they told him that Wats had gotten away.


Good for Wats, he thought.


A guard led him to the roof, to the VTOL plane waiting on the helipad; its wings rotated, its engines turned to the sky for vertical take-off. The engines were whining already. They ushered him up the stairs, and inside he found Rangan and Ilya, and the agent who would come with them to retrieve the Nexus code from San Francisco.


"Buckle up," the agent – who introduced himself as Myers – said over the sound of the engines. "There's a head in the back. Don't expect any beverage service."


Kade strapped himself in. Outside the cabin, the engines began to hum, and then to roar. All three of them remained silent as the plane rose slowly into the air, affording them a view of the city. Kade's window faced north, he thought. Where the wing did not obscure it, he could see a river – the Potomac? – and across that the Washington Monument and the Capitol. Then the engines swiveled gradually forward, and the plane picked up horizontal speed as well as altitude, and the city receded into the distance.


Kade looked over at Ilya. She was withdrawn into herself. She felt tense, wound up. He couldn't see Rangan with the seat back between them, but he could feel his friend's frustration and self doubt. He wanted to talk to them, but he didn't want to do so in any way Myers could hear.


He went Inside, found what he was looking for – ModOS's built-in chat app. He typed the words out on the mental keyboard in his mind, and the text-based chat program sent them to Rangan and Ilya. [kade] Don't react. We need to talk.


He felt their surprise. They'd forgotten about this app. A moment later he saw Ilya's response.


[ilya] Yeah. Definitely.


[rangan]+1


[kade] Put on a movie or something. Put your headphones on. Rangan, you first.


It was a relief to be talking again. He could sense the mood lighten a tiny bit for all of them. Rangan did something in front of him. A minute or so later Ilya dialed up a nature documentary on her seat-back TV screen.


[kade] Wats got away.


[ilya] They told me the same.


[kade] They offered me a deal. Give them Nexus and do a job for them, and no one goes to jail.


[ilya] You took it. [kade] Yes.


[ilya] I can't believe you're giving them Nexus 5. [rangan] It was that or life in jail.


[kade] And jail for everyone else at the party. [ilya] Do you have any idea what they'll do with Nexus? What the CIA will do?


He could feel her anger.


[kade] I know. But they were going to get it anyway. From the drives at lab or the backups at my place or Rangan's…


[rangan] He's right. Once they knew it existed, it was too late.


[ilya] You're going to have an awful lot of blood on your hands, then.


[kade] Probably. But there's one thing we can do. [rangan] What?


[kade] We can make sure we have a back door into their version.


[rangan] They already know about the back door. [kade] A new one. One they can't find. [rangan] How?


[kade] Remember that article we read last term? The Thompson hack?


He felt Rangan get it instantly. [rangan] Have the compiler inject it… It'd be in the binary, but gone from the source…


[kade] And have the ModOS compiler inject into the Nexus compiler…


[rangan] Yeah, yeah… Do we have time? How long is this flight going to take?


[ilya] 5 hours. I'm not following this hack.


Kade explained.

The Nexus OS existed in two forms. It existed as human-readable source code that Kade and Rangan or any programmer could read, understand, and modify. And it existed in a binary form that Nexus nodes could understand – sequences of raw ones and zeroes that were almost impossible to work with directly as a human.


Between the source code and the binary instructions was the compiler, the program that converted human-readable source code into Nexus-readable binary code. Kade and Rangan would use the compiler to insert their back doors.


Every time the compiler ran, it would search the Nexus OS source code for their new back doors. If the back doors weren't there, the compiler would add them before creating the binary version. The only evidence of the back doors would be in the binary version that was nearly incomprehensible to humans.


Finally, they would run the same hack on the compiler itself. The compiler's source code would contain no hint of the logic to insert the back doors. That would exist only in the compiler's binaries. Any time their workstation version of ModOS recompiled the compiler, it would insert all the logic of the hack.


Rangan felt thoughtful to Kade. Anxious still. He was thinking about the costs of being caught. He came to a decision. [rangan]OK. What the fuck. Let's do this thing.


Rangan and Kade pulled up their development environments and linked them. Ilya linked to their environments and watched over their virtual shoulders. They thought through the plan, divided the tasks up as they turned it from a vague idea into a concrete list of things to do.


Plan complete, they set to work. It went quickly at first. The backdoors they cloned from their existing overrides, changing only the passwords. The code in the compiler was conceptually simple. But as they coded, they hit bugs, each one a frustration. They checked the clock constantly. Minutes went by as they worked. An hour. A compiler crash frustrated them for twenty minutes. The fix was trivial once they understood it. A second hour had passed. One of the back doors was leaking memory. How could that be? They'd copied the code from the back door they already had. They figured it out. This fix took longer. A third hour passed.


At hour four, the back doors were working and the Nexus compiler was adding them. Rangan forced the /obfuscate flag on, instructing the compiler to scatter the new code far and wide as seemingly disconnected, innocuous instructions in the binary, making reverse-engineering what they'd done even more difficult. Next they needed to change the workstation compiler to add the backdoor code to the Nexus compiler. Rangan got on that.


Kade turned his attention to the second phase. He wanted to be able to use the back door without the person running Nexus OS knowing. He needed support for hidden processes. ModOS had that in some form. It was simple in theory, but there were so many tendrils.


He took large chunks of ModOS code they'd never used and brought them back into Nexus OS. The back doors would connect them to a hidden super-user account. That would do most of what he wanted. Logging would be off for that account. Yes. How to hide the memory usage?


Shit. His ears were popping. They were landing. He looked out the window. Fuck. They were at SFO, the airport closest to UCSF. How long from SFO to lab? Twenty minutes? Twenty-five? Shit. Rangan was done. Kade still had to finish up.


Could he hide the memory usage? He didn't see how. He'd have to leave it in. Were there other telltales someone could find? Think, think. Logfiles. Had he gotten them all? Network traces? No easy way to hide those. He'd have to leave them in.


He glanced outside the window again. The ground was coming up. He cursed under his breath, then caught himself. Fuck. Stay quiet. Stay cool. OK. He compiled the rev of Nexus OS he had. He had time for only the most basic tests. Compiling… Compiling… Done. He put it in the stress simulator. Did it crash? Not right away. Did it leak memory? Not obviously. Could he still use the backdoors? Yes. Could he hide a process from himself… Checking… Checking. Looked like it. Would it hold up to real digging? He had no idea.


The wheels hit the ground mid-test. Fuck.


[kade]Still working. Cover for me.


[rangan]On it.


Kade went back to work. He could do this. He could finish in time.

The pressure in the cabin changed. The door was opening.

[ilya]Heads up. Focus on the real world for just a minute here.


Myers stood up. "OK, everyone out and into the car."


Kade looked out the window. There was a black SUV alongside them, a big guy in a black suit next to it. Fuck. He stood up. The code beckoned. He remembered a flag he needed to change. Shit, what file was that in? Myers walked towards him, locking eyes with him. Kade held his breath. Did he know? The ERD agent stopped.


"Come on. Let's move." Myers gestured towards the aisle and the door behind Kade.


Kade blinked. Move. Yes. Off the plane. He turned wordlessly, stepped into the aisle, went down the stairs behind Rangan. He could feel Myers right behind him. He could imagine Myers's meaty hand coming down on his shoulder, imagine the ERD agent croaking out, "You've been trying to fuck with us, haven't you?"


He nearly tripped. Myers caught him by the arm from behind. "Watch your step," he said.


Fuck. Where was his head at? Breathe. Steady. He made it into the third row of seats in the SUV. Myers closed the door on the three of them and got into the shotgun seat.


[ilya] OK. We got you covered.


Ilya started talking. "My car was at Simonyi Field. Is there going to be a way for me to get it?"


"Officer Lewis here can take you there after this is over."


"I need a ride too," Rangan said. "And I think my key was in a bag inside the hangar. Will that still be there…?" And on and on.


Kade focused on his work. Fuck. The new Nexus OS in the stress simulator had crashed after seven minutes. Shit shit shit. Look at the stack trace. What had caused the crash? All he'd done was reactivate standard ModOS code. Oh, fuck. He'd coded a crude hack to stop all logging. Something must depend on the logfiles.


Sure enough. It was a crash in accessing a logfile. OK. What to do? He created empty logfiles by hand, let the simulator run again. Another crash.


OK. Not empty logfiles. Logfiles with a bogus entry in them.


He made the mistake of looking out the window. They were on the Bayshore Freeway, right along the water, headed north into South San Francisco. Maybe halfway there. Focus, Kade, focus.


He copied a random line out of each of the parallel logfiles in his own Nexus, copied them to the right places, stepped the simulator forward. Shit, it was still past the point where it had crashed. He rewound it, added the logfiles again, put in the bogus entries, ran the stress simulator forward… A second passed. Three seconds. Ten seconds. It hadn't crashed. He was holding his breath, he realized. He let it out.


Rangan and Ilya were talking louder and louder. Had he been making noise? He glanced out the window again. The Bay was gone. Was that Potrero Hill out the window? Fuck, they were close.


He let the stress simulator keep running. He needed to copy the new code into the hidden injector in the compiler. OK, good there. To test it… run a compile using the injector. See if the file sizes were the same. Compiling. Compiling. Fuck, he hated waiting. The freeway curved. That was SoMa outside. Shit. They were almost to the exit.


The compile finished. Identical. Thank god for small miracles. Kade tossed the code over to Rangan to insert one level further upstream into the compiler's compiler. Rangan got on it. Ilya kept talking. They exited onto Duboce Avenue, then turned onto Market Street. They were in downtown San Francisco now, maybe two miles from the lab.


What did Kade need to do now? Oh yeah, the source management. He had to fake it out. He got to work convincing the source management system that these changes had always been there.


The driver turned onto 17th to cut west towards UCSF.


OK. Fake change logs. Fake histories. Fake file change dates. The car turned and turned again.


Rangan's work was done. Kade integrated it. They were on Parnassus Avenue, a few blocks from the lab now. Flashing lights ahead.


The SUV took a strange turn, came around to the lab's back entrance.


[rangan] I'll boot the machine and stall him while you copy the new files over. Cool?


Kade nodded. Shit. Stop that, he told himself.


What have I missed?


"We're here," Myers said. "The fire alarm's been set off in the building. We have twenty minutes." He hopped out and opened their door. They were at the service entrance.


[kade] I need to double-check this. Keep covering.


Ilya chatted away about lab equipment and fire safety and fire department response times. Rangan took Kade's arm, walked him to the door. There was something he'd forgotten. What was it?


There. The separate source tree for ModOS. The changes to the ModOS compiler needed to be in there. He had to fix up the file names, the histories, the dates…


The light changed. They were in an elevator. Rangan was steering him. Was sweat beading on his brow? Was Myers looking at him? The other officer, Lewis, was he looking at Kade too?


He made the simplest change possible. He slapped the new ModOS binary down in the source tree as the most recent archive version and backdated it by three months.


The elevator opened. Kade was definitely sweating now.


He had to copy these new files onto the server as soon as Rangan got it up, fast enough to fool the agent. Then he had to backdate the file change dates on the server.


He needed to maximize bandwidth, get the copy to happen as fast as he could. He went through the apps running in his skull, killed everything that might interfere. Kade killed the development environment, killed the simulator and the stress test, killed as much of his own logging as he could, turned off the body interfaces that Don Juan and Peter North had used. Would that be enough?


He heard a beep and snapped his attention back to the outside world. Myers swiped a passkey at the door to their lab, and it opened. Fucking feds.


"Where's the machine?"


"It's over in the corner there," Rangan said. "I'll just boot it up, and we can copy all the data for you."


"No need for that," Myers replied. "We'll just take the whole system."


Kade felt his eyes bug out. Fuck!


Rangan stayed cool. "You want everything, right?"


Myers narrowed his eyes at Rangan.


Kade held his breath.


"Everything," Myers said.


"I need to power it up, then," Rangan said. "We'll have to download the latest experiment results from the lab server, and spool some data down from Simonyi Field."


Myers scowled.


Fuck, Kade thought. We're busted.


Ilya spoke up, strain evident in her voice, playing her part to a T. "Jesus, Rangan, don't be so fucking helpful."


"Damnit, Ilya," Rangan snapped back. "I'm doing it to keep our friends out of jail!"


"Shut up, both of you," Myers said. "We have seventeen minutes left. Shankari, let's get this done."


"Yeah." Rangan led them to the powered-down workstation. He touched a control and it came to life. Kade stood right next to it, picked up a pen from the desk, did his best not to fidget.


Kade searched for the server inside his head as the boot sequence scrolled across the screen. Come on… Come on… Come on… The Nexus data transfer card they'd used the circuit printer to make was in place. It was flashing green. He refreshed the list of available devices in his head. Why wasn't it showing up? Where was it? Where was it?


The login message appeared on the screen: Welcome to ModOS. Enter credentials.


There. SanchezLab018 came online in his head. He navigated its folder tree. There. Copy.


Rangan flubbed his first password attempt. He shook his head. He flubbed it again, swore softly. "Sorry… just a little nervous here." [ 10 percent complete ]


Myers put one burly hand on Rangan's shoulder. "Take your time," he said. "And no tricks. Think about what you're doing here."


Kade remote logged into the machine, jumped to super-user status, got ready to tweak the file date and time stamps after the copy was complete.


[ 25 percent complete ]


Rangan nodded. He typed his password again, and he was in.

"OK, checking the lab experiments directory." Rangan browsed folders. Kade knew damn well that directory was up to date.


[ 40 percent complete ]


"Yeah, it's out of date," Rangan lied. He entered commands to recopy the data. "That should do it."


Myers's face was a mask. "Fourteen minutes left. And we still need those Nexus vials from your fridge."


[ 50 percent complete ]


Rangan nodded. "OK. Pulling down the data from last night… " He opened up a window, poked a tiny hole in the firewall to connect to Simonyi Field, started pulling down logfiles.

[ 60 percent complete ]


"This shouldn't take more than a minute or two," he explained.


It took a hundred and eight seconds.


[ 80 percent complete ]


"And copying over the documentation," Rangan said.


Myers frowned, looked like he was about to say something.


Ilya cut in, stalling, "God, can you make it any fucking easier for them?"


"Jesus, Ilya," Rangan said. "We've been over this already!"


"That's enough, both of you," Myers said. "Power this down, Shankari. Now."


The copy was 91 per cent complete. Fuck fuck fuck. It would be obvious that they'd been trying to change something!


Rangan started to object. Myers held up his hand.


"Hold on," Myers said. He brought one finger to his right ear, plugged it, looked away from them, apparently listening to someone speaking to him.


Kade held his breath.

[ 96 percent complete ]


[ 98 percent complete ]


He let his breath out. The pen was rattling nervously against the desk. Myers scowled at him in annoyance, took a half step back.

[ 100 percent complete ] Kade jumped in his terminal window to change the time and date stamps on the files. One set done, second set done…


Myers pulled his hand away from his ear, looked over at them.


"Shut it down, I said. Now."


There was a third set to do…


Rangan gulped, nodded, and issued the shutdown command.


Windows started to close. The last time stamp change… Kade hit ENTER in the terminal window in his mind, got the command running. There, it was going, going, going…


The command finished.


A split second later his terminal window flashed, then disappeared. Session disconnected by host. A moment later the virtual drive SanchezLab018 disappeared. The happy shutdown face appeared on the screen. Kade wanted to scream in triumph. He did no such thing.


"Take this down to the car," Myers told Lewis. The other officer started pulling plugs and gathering up equipment. "Now, take us to your Nexus stocks."


Ten minutes later they were back outside. It was done. Myers had everything. Well, almost everything.



Warren Becker finished reading the transcripts of the three Nexus technical briefings. It was sobering stuff. The potential for abuse as a coercion technology was huge. Slavery. Prostitution. Worse. He thought of his two teenage girls, of the things he'd seen in the field, the horrors some men were capable of. He pushed it out of his mind.


The geopolitical implications were just as bad. Remote assassination. Subversion of political enemies. Everything the Chinese were doing, available on the cheap. This technology had to be kept out of the wild.


He dictated a memo outlining what they'd found and the dangers, labeled it TOP SECRET, and distributed it to key people across ERD, Homeland Security, FBI, CIA, State, and the Pentagon.


After that he opened another file on his terminal and reviewed its contents. Presidential Order 594 – Eliminating and Preventing Uncontrolled Non-Human Intelligences. Scenario 7c – HIVE INTELLIGENCE. He stared at it for long minutes. Could Nexus be used to create Borgs? Ilyana Alexander had said as much in her interview. He dictated a second memo on that possibility, sent it up the chain to the White House. It was above his pay grade.


He checked the time. 9 o'clock on a Sunday night. Claire would be upset. He packed up his things and headed out the door. The lights dropped and the room sealed itself behind him.


There was a light on in Holtzmann's office. Becker poked his head in. Holtzmann was there, working away at his terminal.


"Martin," Becker said, "you're here late."


Holtzmann flicked his eyes at Becker. "I could say the same of you," he said. "Shouldn't you be home with Claire and the girls?"


Becker smiled wryly, hoisted his briefcase for a moment. "Heading there. What do you make of the Nexus 5 risk level?"


Holtzmann shrugged. "If Nexus 5 ever gets out, it'll spread like wildfire. Permanent integration means a user only ever needs to procure a single dose for a lifetime effect. You can't fight that on the supply side."


Becker nodded glumly. He thought, We're underfunded. Understaffed. The fight gets harder every year.


"And the abuse potential is high," Becker said.


"That's not the problem," Holtzmann replied.


"Pardon?" Becker raised an eyebrow.


Holtzmann sighed. "The problem is that the utility is so high. People will find a thousand ways to use something like this. Communication. Entertainment. Mental health applications. Education. The potential is vast. Demand will be rampant."


Becker narrowed his eyes. "Martin, this is clearly illegal, on multiple fronts. Think about the coercion potential, the abuses the Chinese have already put it to…"


Holtzmann waved his hand. "Of course. It's all about the downsides. Never mind the upsides." He frowned. "This isn't what I came here for."


Becker shook his head. "Martin, I know you're frustrated. But you know the reality. The transhuman implications alone…"


Holtzmann frowned. "Would it be so bad? To be smarter? To touch another mind? Are you sure we're doing the right thing?"


Becker went still. Had Holtzmann just said that? He spoke slowly, carefully. "Martin, you're tired. I think you should go home now. Anne will glad to see you."


He turned and walked away calmly, leaving Holtzmann to his terminal and his thoughts.


Загрузка...