Unexpected Rain. Jason LaPier
give the other man his full attention.
“Let me give an unrelated example,” Jax continued, his voice picking up speed. “There’s a command called ‘rain’. Now, residents don’t like climate-related surprises, so we have to turn on the rain warning at least twenty minutes before executing the ‘rain’ command.” He grabbed the notebook and pencil from Runstom, who didn’t resist. “So first you punch up a ‘rain-warning’ command. Somewhere in the system, a variable is set. Something like this,” he said as he wrote two phrases on the paper, one below the other. “Then, if you were to run the ‘rain’ command, the system would do a test and see if the current time is at least twenty minutes more than the variable we set with the ‘rain-warning’ command. If it’s not, the ‘rain’ command fails. Otherwise, it starts some subroutine that makes it rain in the dome.”
He finished scribbling and flipped the notebook back over to Runstom. The officer took a look and saw what might have been a series of math formulas. The only words that jumped out were RAIN and WARNING, both written in upper case.
“If I were to punch up RAIN at 10:10AM, it would fail the test,” Jax said, tracing his finger along the jumbled words on the page. “And I’d get this error message. If I were to do it after 10:20AM, it would succeed.”
“What is this?” Runstom asked. “Some kind of code, right?”
“It’s complex.”
“Yeah, I can see that. Goddamn complex.”
“No, I mean it’s COMP-LEX,” Jax said, exaggerating the syllables. “It stands for Computational Lexicon. It’s a common programming language for operational environments.”
“Oh.” Runstom looked at the operator’s scribbled words and symbols carefully. “Okay. So you’re saying that if someone punched in a command that opens the inner doors, then some – variable?” Jax nodded and Runstom continued. “Some variable is set that tells the system the inner doors are open. Then when someone runs a command to open the outer doors, the system would have run some check—”
“Yes, exactly. A check on the state of the inner doors. If they are already open, the command to open the outer doors fails and you get an error message. Same goes for the reverse – if you try to open the outer doors first and then the inner.”
“So someone might have reset that variable, the one that tracks the state of the doors after opening one set of doors.”
“Well, it’s not that simple. Those are actually system variables. No one has access to them from the console.”
Instead of replying, Runstom took a drink from his cup. He managed not to gag, and had another sip, waiting for Jackson to continue.
“Okay,” the operator said. “That’s where the theoretical stuff ends. I don’t know how they changed a variable only known to the system. I mean, the variable names we used here – I just made those up for the sake of a simple example. Operators like me have no idea what actual variables are used in the system, let alone have access to modify them. We can’t even be 100 percent certain of the conditional tests.” Jax paused momentarily, then finished in a soft voice, “That’s stuff only the system engineers would know.”
Runstom nodded slowly, trying to absorb the information he’d just gotten. “Okay, so let’s say somehow someone wrote some code that broke the safety check. Let’s go to the next question: How did they make it look like it came from your console?”
“How did they make it look like it came from my console?” Jax repeated quietly. “This part I’m not so sure about. I was logged into the system at my console. I didn’t punch in those commands, but somehow they were run as if I did punch them in. Or at least it was logged that way.” He trailed off.
Runstom took another drink of the cold coffee. He watched Jack Jackson and began to wonder if that nagging doubt in the back of his mind was right. That this was going nowhere. That this was really just a waste of time. He swallowed and tried to clear his head of doubt. It wasn’t as if he had anything better to do with his time. But he couldn’t help thinking that if an officer couldn’t trust his gut, he couldn’t trust anything. He shot for a simple explanation. “Maybe someone punched it in while you were away from the console? Did you take any restroom breaks?”
“No, that’s not it,” Jax said, shaking his head without looking up. “There’s some kind of body-detector at the console. Any time you get up and then come back to it, you have to re-authenticate to the system. Biometrics and all. Even if you just get up to stretch.”
“Sounds like a pain in the ass.”
“Yeah, it is.”
“Look, maybe we need to move to some—”
“Wait,” Jax interrupted. “There was one thing. One weird thing I remember from that night.” His cool gray eyes suddenly lit up. “That’s it! That has to be it! There was one time when I got up for a few minutes. When I sat back down, I re-authenticated, and it didn’t take. I had to do it again!”
Jax looked at Runstom expectantly. The officer started, “I don’t understand, why would …”
“Don’t you see? An op like me has to authenticate to a console dozens of times during each shift! By voiceprint, fingerprint, and typing in a password.” He enumerated the three actions on his long, white fingers. “Voiceprint, fingerprint, password. Voiceprint, fingerprint, password.”
“So you typed it in wrong?”
“No!” Jax said. “Did you hear what I said? Voiceprint, fingerprint, password. Dozens of times during every shift. I can type that password in my sleep. You could gouge out my eyes and sit me in front of that console and I’d still be able to authenticate.” He had a desperate look on his face, but Runstom, despite trying to keep an open mind, had trouble believing there was any significance to this story. “Check the logs.” Jax looked at the B-fourean guard, then back to Runstom. “Tell them to go get the logs. The console logs!”
The guard’s smile drooped slightly at being brought into the conversation by the prisoner. He looked at Jax and then at Runstom.
“There’s a file for this prisoner,” Runstom said. “A file that has to go to the System Attorney out at the court on Outpost Alpha. Could you please bring me that file?” The guard started to move, but hesitated. Runstom flipped through his notebook, as if looking for something. “I have a copy of it, but I left it back in my quarters,” he lied awkwardly. “I know the detectives left a copy that gets transferred with the prisoner. Could you please just have someone bring me that copy?”
The guard gave him a conspicuous look, like he didn’t trust Runstom completely, but then apparently decided he didn’t much care, because he shrugged and left the room. He came back a few seconds later and said, “Someone will bring it in just a moment, Officer.”
“Thank you very much,” Runstom said. He turned to Jax. “Okay, Jax. What’s the deal? What if you did have to authenticate twice? What will we see on those logs?”
“If I mistyped my password, then you’ll see an authentication failure. Followed by a successful auth a few seconds later,” Jax said. “But I don’t think we’ll see any failed auths.”
“And what does that mean? If there are no authentication failures?”
“It means that I wasn’t authenticated the second time. I just thought I was.”
“I don’t follow you,” Runstom said, desperately trying to focus.
“It was another program. Something that gave me a fake login prompt. Even though I was already logged into the system, I saw the login prompt and thought I was not logged in yet. I give it my voiceprint, fingerprint, and password again, and the prompt goes away. And that program runs whatever it is meant to run.”
Runstom rolled around the concept in his brain, thinking out loud. “So you see a login prompt. You think you