Prodigal

Home > Other > Prodigal > Page 20
Prodigal Page 20

by Marc D. Giller


  “Could use some room service,” he replied. It was 0430—eighteen hours after he started his first run. He rubbed his eyes. “Better make that a midnight snack.”

  “I’ll send down some bread and water.”

  Nathan broke a weary smile. “I must be on punishment detail.”

  “Just trying to make you feel at home,” Lauren Farina said. Nathan’s earpiece masked the subtleties of her tone, but she sounded tired. “I started to get worried with you down in that cage all by yourself. Everything okay?”

  “Been better,” he admitted, and left it at that. “You’re up awfully early.”

  “New office hours. I don’t sleep until the crew sleeps. What’s your excuse?”

  “Immersion risks. You know the drill.”

  Nathan heard a series of clicks as the frequency changed to hyperband.

  “Any luck?” Farina asked.

  “It’s slow going,” Nathan replied, lowering his voice. Even though they were on personal comms, outside the ship’s network, conspiring about a court-martial offense still made him nervous. “Out this far, we’re on an eighteen-minute delay—which means I can’t make moves in real time. The crawler can extrapolate the jack using a series of odds-on scenarios, but it sure as hell ain’t like being on-site.”

  “Were you able to turn up anything?”

  “No smoking gun,” Nathan sighed. “Just a couple of low-level directives, requesting clarification on ‘the Mars situation.’ The Directorate is keeping this one off the books as much as possible.”

  “Which means you were right,” the captain said quietly. “Command doesn’t scare that easy. They must have a bunch of spooks breathing down their necks.”

  “Looks that way.”

  “So where does that leave us?”

  “Pretty much up the creek.”

  Farina laughed softly. “Is that the technical term for it?”

  “In so many words,” Nathan said. “Directorate security is one thing. Going up against Special Services—that’s a whole different ball game, Skipper. Maybe if we were live, I’d have a one-in-ten shot. On the remote, it would take a goddamned miracle.”

  “But it’s not impossible.”

  “Statistically, no,” he told her, uncertain of how far she wanted to take this. “The permutations are complex but finite—nothing the crawler can’t handle. But if you want stealth, this isn’t the approach. One bad guess and CSS will crack us wide open—and it won’t take them too long to figure out who penetrated them.” Nathan paused. “If that happens, it’ll be a long ride home, Lauren.”

  Farina went silent for several seconds—much longer than she usually took to make up her mind. She whispered to herself quietly during that time, a strange sound nipping at the edge of his senses. Nathan wondered if he might be imagining it, because it sounded so much like

  the dead voices

  what he heard in his dream, hints of suggestion that arose from those empty spaces all across the ship—places where people never went, but where something else made its home. Even now, fully awake, Nathan had a hard time believing it wasn’t real.

  “Do what you can,” Farina finally told him.

  Nathan settled back into his chair.

  “Okay,” he said, staring into the depths of the virtual screen. He put his hands back on the manual interface, steeling himself for another run. “I’ll let you know as soon as I—”

  A ghost of motion cut him off before he could finish.

  What the hell?

  “Nathan?”

  “Stand by,” he told the captain, dimming the main display. The Directorate feed dissolved into transparency, giving him a clearer view of the ship’s navigational construct, which hovered immediately behind. A representation of fixed code iterations, NavCon recompiled only at regular maintenance intervals—which made the change he saw, subtle as it was, almost impossible to miss.

  “Talk to me, Nathan.”

  Nathan ignored her. He went rigid scrutinizing the construct, riveted on every possible variation. He kept it on until his eyes dried out, but the construct never wavered. It seemed more solid than ever before.

  “Come on, Straka,” Farina said. “Don’t make me come down there.”

  “I thought…” he began, then squeezed his eyes shut. The afterimage stuck to the insides of his lids, but never materialized when he opened them again. “Never mind. I must be getting punchy.”

  “Wouldn’t be the first time.”

  “Yeah,” Nathan groaned. “Remind me to have a chat with our doctor about those stims he prescribed. Knowing Greg, he probably kept the good stuff—”

  The construct flickered again.

  “Shit,” Nathan said, shocked back into clarity. He jumped on the console, routing NavCon to the main display. It pixelated onto the screen in time for him to spot some kind of inclusion, but for less than a second. After that, it slipped back into the larger matrix—code blending into code, indistinguishable from its surroundings.

  “Commander?” Farina asked.

  Nathan barely heard her as he worked the construct. He parsed out the individual sections, trying to confirm what he saw—but everything came back maddeningly normal, operating well within the razor-thin mission parameters.

  “Report, Commander.”

  “I think I bumped against some flex code,” he said hurriedly, running even more numbers in the hopes that the thing had left some trace of itself. “Maybe a worm, working its way through the NavCon subsystem. I’m trying to track it down.”

  “You think?” Farina interjected. “You better be sure, Nathan.”

  “Verifying now.” Nathan tried not to sound scared, but fell short of the mark. Out here on the edge of nowhere, a bug running loose in the core was a nightmare scenario. Without her computers, Almacantar couldn’t even maintain orbit, much less life support. “I just hope to hell it’s something I can contain.”

  “One step at a time, Commander. Can you pinpoint the source?”

  Nathan checked the data transfer ports, but those were strictly internal—routing traffic between the component subsystems. As far as he could tell, none of them had been compromised.

  “Negative,” he said. “Everything looks secure.”

  “Any chance it could have happened during the downlink?”

  “I keep all of that stuff firewalled off from the larger system,” Nathan told her. “If something did get through, it would have to be pretty damned sophisticated—way better than those off-the-shelf countermeasures the Directorate has.”

  “I need a recommendation, Commander.”

  Farina sounded urgent, and with good reason. If Nathan couldn’t get a handle on this thing, the captain would have no choice but to scram the crawler as a precaution. Conventional backups could handle mission-critical operations—but Almacantar would be limping through space, half-deaf and totally blind.

  “Hold on,” he fired back, and played a hunch. Bypassing the crawler, he plunged deep into the old coding base—a substratum of the original core programming, left over from the first generation of the software kernel. That foundation had none of the safeguards built into the newer layers, which made it especially vulnerable to viral attack; but it also meant that any damage it suffered as a result would light up his screen like a fireworks display.

  Nathan held his breath. Strands of code stretched out before him, sifting through the diagnostic as fast as the buffers would allow. Not one of them, however, appeared in the least bit anomalous.

  “Dammit.”

  “So what is it?” Farina asked. “Good news or bad news?”

  Nathan slumped back, his fingers tapping idly on the console. He kept watching for a while longer, as each test came back negative.

  “Not sure, Skipper,” he said. “I know there’s something here—”

  “Relax, Nathan. Anybody down in it for that long is bound to get a little trippy.” She paused, long enough for Nathan to figure out that she was assessing him. “How about you s
tand down for a while, maybe get some rest? Might do you some good.”

  The thought of sleep—and the return of his dreams—chilled Nathan even more than staying here in the core. He made a clumsy attempt at evasion.

  “What about the run?”

  “It’ll wait,” the captain said. “We’re not going anywhere.”

  “I don’t know, Lauren. Maybe we should—”

  “That’s an order, Commander.”

  And the comm clicked off, ending the discussion.

  Nathan unbuckled himself. After taking a few minutes to decompress, he swung his legs over the side and dropped onto the deck. He steadied himself before he could stand on his own, caught between his wired state and somatic intoxication. He made it all the way to the hatch before another idea popped into his head, making him grind to a halt.

  You’re just tired, he told himself. You know it won’t make any difference.

  In spite of that, Nathan turned back—staring into the empty space occupied by the virtual display, wondering if he should even bother.

  If not, another part of him answered, then it won’t hurt to look.

  Nathan dragged himself back to the console. He plopped down on the edge of the chair, then punched up the NavCon system log. He still wasn’t sure what that would prove—it was just the one contingency he hadn’t tried.

  The log kept a record of every event that took place within the NavCon subsystem. Since it resided in its own memory space, the bug Nathan had seen—assuming it existed—wouldn’t have altered the contents of the log itself. That meant there would be a record of the incursion.

  Either that, or you’re just plain crazy. And right now, crazy ain’t looking so bad.

  He narrowed the search field down to the last five minutes, closing in on the exact time of the disturbance. Stopping there, he pondered the list for a few moments, trying to get a feel for the sequence. It was numbingly complex, with events piling on at a dizzying rate.

  All right, he thought, and rubbed his hands together. Truth or dare.

  He scrolled through each event, examining them one at a time. Nothing appeared out of the ordinary as he went further and further, which gave Nathan cold comfort—but also a raw sense of relief that mounted with each passing line. One line, however, grabbed him from the periphery of his sight. Slowly, he scrolled back up so he could see the entire entry, terrified by the implications of his find—and startled at how he had almost missed it:

  04.18.72 04:32:58.208 STEALTH MODE CONFIGURATION ENABLED—Internal / External Port 77524—Open Packet Relay Traffic—Initiate Data Transfer

  “Son of a bitch,” he whispered.

  Nathan quickly recalled the port diagnostic on another screen. He got the same results as before—no inclusions, no clandestine streams—even though the NavCon log had just told him that foreign data had moved in and out of the system. Fear displaced the drugs in his bloodstream as Nathan fully realized what confronted him. Even now, the crawler could be hemorrhaging—or rewriting itself in the image of some viral aggressor.

  And any bug that could do that was a killer.

  Hands moving in a blur, Nathan dumped the diagnostic results into a separate buffer and synced them to the time line of the NavCon log. Running through all of the events, he waited for the list to build, simultaneously searching for any indication of how much data had sneaked through. The console beeped at him when it happened across another entry, this one less than a tenth of a second after the initial hit:

  04.18.72 04:32:58.210 PACKET TRANSFER COMPLETED—Internal / External Port 77524—417TB TOTAL

  He mouthed the words, unable to speak them.

  I don’t believe it.

  Yet there was no denying it. Over four hundred terabytes had injected itself into the matrix while he watched, and barely caused a stir. More than that, the crawler had absorbed every bit without raising a single alarm—or revealing a single flaw.

  Nathan immediately killed the Directorate downlink. Hands trembling over the console panel, he purged everything he had collected during the run.

  That has to be it, he told himself. That has to be the source.

  But he had to make sure.

  Eyes darting back through a thicket of entries, he kept searching. When he found it, the passage didn’t seem real—especially since what it said was utterly impossible:

  04.18.72 04:31:24.813 PORT HIJACK DETECTED—Internal / External Port 77524 Source—SIG Hyperband—Address 100756E267BZ722QT47

  SIG. Standard Interface Group. With a local address…

  Carried on a wireless hyperband frequency. There was no question.

  The bug, whatever it was, had originated inside the ship.

  Nathan fumbled for his comm, opening a channel.

  “Captain!” he signaled—

  —and then doubled over in agony.

  Nathan toppled from the chair, slamming into the deck. He might have screamed—he couldn’t tell from the jagged pain inside his head, so extreme that it demanded explosive release. Ripping the comm from his ear, he came away with a handful of blood but didn’t care. Convulsing across the floor, he kicked against bulkheads and equipment but couldn’t escape. Every avenue promised only more pain, which shot down the length of his nervous system and engulfed his entire body. Nathan felt like he was on fire.

  “NO!!!!!”

  The echo of his cry died the same instant as his pain. Curled into a fetal position, clutching the sides of his head, Nathan trembled.

  “…Straka…hear…please…”

  Cold steel pressed against the side of his face, thrumming with the power of the ship’s engines and softening the broken call that squeaked out of his forgotten comm.

  “Answer me, goddammit!”

  Nathan heard Farina clearly that time. He scooped up the comm and placed it back in his ear.

  “Lauren—” he croaked.

  “Nathan!” the captain shouted. “What happened? Are you all right?”

  “Yeah, I think so.” He coughed. “There, uh…I think I had a little problem.”

  “Don’t move. I’m alerting sickbay right now.”

  “It’s okay, Skipper,” Nathan said, strength returning to his limbs. He pulled himself up, slowly regaining his balance. “I can make it there myself.”

  “Don’t be a hero, Nathan.”

  “Wouldn’t think of it.”

  “All right,” Farina said, seeming to take him at his word—though the loaded pause that followed spoke otherwise. “I’ll meet you in a few minutes.”

  “I’ll be there.”

  Nathan removed the comm, slipping it into his pocket. He then wandered back toward the console, approaching the displays warily. The NavCon log still floated in the imaging mist, broken by the occasional static discharge. It seemed exactly as Nathan had left it, innocuous reams of text concealing the monster beneath. All he wanted to do was close the log and distance himself from what happened, but he needed to back up what he had found. The captain was about to face some tough decisions—and Nathan needed to provide her with answers.

  Gingerly, he tried the console panel. It responded normally. He then entered a few other key combinations and got the same result. Swiping over the sections of the log he wanted to copy, Nathan used the last incriminating entry as a starting point and worked backward. But as the text highlighted itself in bright blocks, he noticed that something had changed. The event, as he had seen it, didn’t exist anymore. In its place was another line:

  04.18.72 04:31:24.813 DIAGNOSTIC PORT SCAN COMPLETED—Source SIG Local Core Console—User NSTRAKA—Result NOMINAL

  “No,” he said in flat denial. “No way.”

  Nathan ran the log back up to the first two entries he had discovered. Instead of a data transfer over a hijacked port, he found only a routine exchange between subsystems. The wording was almost the same—but the meaning entirely different.

  “NO!” he shouted, pounding on the console.

  The display went dark.


  Nathan hung his head and sobbed. His frustration quickly gave rise to anger, which built into a violent fury. He smashed the console with his bare hands, slicing his fingers into a bloody mess and singeing his skin with hot sparks.

  Drawing back, Nathan held his wounded, throbbing hands up in front of his face, coughing from the acrid smoke that now filled the air. He scarcely remembered doing it, much less being so enraged.

  What’s happening to me?

  He fled the core and headed down to sickbay.

  “The first rule of medical care,” Gregory Masir announced, “is never to let the patient know how stupid he was to inflict his own injury.” The ship’s doctor sprayed skin composite up and down the length of Nathan’s fingers, not making much of an effort to be gentle. Masir had even forgone anesthetic, making some cheap excuse about drug interaction with the stims left in Nathan’s system. “It’s bad for business.”

  The treatment stung like hell. Nathan didn’t want to give Masir the satisfaction of showing it, but still winced as the doctor worked him over.

  “I thought the first rule was to do no harm.”

  “Perhaps in the Territories,” the doctor laughed, “but I’m a field doctor. They teach us how to be tough.”

  “I can tell.”

  “Don’t be so high-and-mighty, my friend. I’m not the one who cracked two fingers assaulting a harmless piece of computer equipment.”

  “I guess you had to be there, Doc.”

  “Indeed. I would like to have seen that.”

  “So would I,” Lauren Farina said as she strolled into sickbay, looking worried. “What happened down there, Commander? You didn’t say anything about getting into a fistfight.”

  “It’s not as bad as it looks, Skipper.”

  “Let Greg be the judge of that,” she ordered. “For my money, you look like shit.”

  Farina put on a brave front, but Nathan knew his captain better than that. Although her uniform was fresh and crisp, and her hair pulled back neatly in regulation style, the rest of her struggled to hang on. Dark circles saddled her eyes and her skin had taken on a sallow sheen. She looked even more exhausted than Nathan imagined.

 

‹ Prev