Book Read Free

Nexus n-1

Page 10

by Naam, Ramez


  INTERVIEWER: Next topic. You and your co-conspirators give off extraordinarily strong Nexus signals, and they're not dropping. The drug isn't wearing off. How is that possible?

  SHANKARI: The limit of how much Nexus you can have in your brain is mental. Your neurons fire and the Nexus nodes are trying to coax them to fire. If they're not getting coherence, some of them break apart and get flushed out. Over time, your brain adapts to having a Nexus network. Your Nexus coherence increases. Your maximum possible levels of Nexus go up.

  INTERVIEWER: But why isn't the level dropping? It's been more than eight hours. Most of it should be out of your system.

  SHANKARI: [shakes head] We call Nexus a drug, but it's not. It's a nano-machine. It doesn't flush out because some enzyme has broken it down. Nexus nodes decompose to their parts because some internal logic has told them to. And if you give them the right signal, they just don't break down at all.

  […interview continues for another 18 minutes…]

  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 ha
ve 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.

 

‹ Prev