Since the system had a modular structure, Martin had first tried to rewrite the entire launch control module and then overwrite the old one. He analyzed the functions of the existing module, removed everything not absolutely necessary, and wrote thousands of lines of code in a daze. He did without real-time tests and added the new module in the ‘this ought to work’ state. It had taken him twelve hours, and he only made it with the help of a lot of caffeine from sweetened coffee that also provided the necessary calories. He then asked Stone not to tell the crew anything and to attempt a restart, but nothing happened. Martin bit his lips until he tasted blood.
The software had recognized his intrusion. The checksums are no longer correct. Martin had been aware of this. However, he had not suspected how cleverly the system would react. Instead of running the new module, it had simply loaded a copy of the old one from shadow memory and then launched it. This is really smart thinking, Martin concluded, as it prevents an outsider from interfering with the system. The memory the safety copy was based on was only readable, not writable, and it was aboard Valkyrie. So they could not simply swap the program.
Martin brooded over this. How else can I succeed in reaching the backup memory? It was on an add-in board plugged into the circuit board of the main computer of Valkyrie. The memory communicated with the system via encoded channels. It was not enough to simply connect a flash drive with the on-board computer, even if there was a flash drive aboard Valkyrie. “Perhaps there is a second Valkyrie to bring supplies to the crew from outside?” he posited, but Stone shook his head. The replacement vehicle was still being constructed, and the previous model was currently being used in the Alps for glacier research.
He wiped the sweat from his forehead and attacked the source code of the security system. There has to be a gap somewhere that will allow me to insert my own code. No one was able to write error-free programs because even computers made mistakes, and they could neither predict nor prevent bit-switching, the random change of a memory location. Be that as it may, Martin noticed very soon that Stone had hired very capable programmers who had been extremely well-informed about all current vulnerabilities and how to get rid of them. Martin briefly considered whether he should talk to them directly and ask them about potential weaknesses. Yet it appeared they had actively tried to close any back doors, and had certainly not left any gaps they were aware of.
Two hours later, Francesca had called him. He had not even noticed how much time had passed. Rather than feeling pressured, he was actually grateful to hear from her. He knew he had done nothing wrong, but a software problem he could not solve was simply not an option. He tried to imagine what the programmers had been like. In his life, Martin had already analyzed millions of lines of code. He thought, their style in writing the source code indicates they must have just graduated from college. That is why they were so well-informed about current vulnerabilities. They used the recommended countermeasures in a very systematic—but not particularly creative—fashion. A more experienced programmer would have taken shortcuts here and there, which were not mentioned in textbooks, but worked as well and looked even better. Aesthetically pleasing programming was a skill most did not develop until later, when they were bored with their normal work, because they felt like they had solved every problem several times already.
Martin contemplated, In this instance, how much attention did these programmers pay to software archeology? This subject had only become part of programming curriculums a few years ago. Its basic idea was to learn from the mistakes of the past. There were rather practical applications, though. Surprisingly enough, errors occurred in modern systems that ought to have been removed 50 years ago. The reason for this was that proven solutions were often copied—for good reason; you did not have to reinvent the wheel with each new piece of software. Troubleshooting such old code was always more complicated than troubleshooting code the programmers had written themselves. Therefore an ancient bug, now and then, would infect completely new systems that had not even been designed when the bug first occurred.
Can I maybe locate such a bug and exploit it? Martin considered this as he went through his own notes and tried to find suitable candidates that would structurally fit. Three bugs offered possibilities: one was from the 1980s; one had first shut down computer systems worldwide in 2008; and the third was by now twenty years old. Like a virus must match its host, not every bug was suitable for every technical system. Finding the bugs in the code of the control model took hardly any time. Martin programmed a bot for this purpose. Ten minutes later, it reported a result—no bugs found.
He must inform Stone. Yes, his programmers had worked well, too well. I’ve just sentenced two people to death. He felt so nauseous he leapt to his feet and ran outside. Even though the biting wind tugged at him, he did not feel cold. Martin vomited. He had remembered just in time to turn downwind. His stomach contents were blown away. The small amount he saw fall to the ground froze immediately. Then he started to feel the intense chill. He rushed back to the computer.
Martin wondered, If I cannot change the software, can I do something else? Of course he did not possess the power to remove the obstacle that prevented the system from restarting. But, how does the system perceive reality? Via the on-board radar, which works like an echo-sounder. Radio signals moved into the ice, sensors received reflections and measured the return time to calculate the locations of the obstacle. Can we possibly trick the radar? It did not work to simply turn it off, as the system would still refuse to restart. Instead, what if we send the signals in a different direction from what the vehicle is expecting? Then the software would generate a different—false—image from the new measurement data. The obstacle would appear to move, then, hopefully so far that the system no longer considered it a threat.
He called Stone via the encrypted line and described his idea. The company director briefly talked to his chief engineer. Stone’s answers confirmed it would not be easy to implement his plan.
“A crew member would have to misalign the radar. This in itself is not complicated—a pair of pliers would suffice. However, the system will quickly recognize the changed state, so we will have to trigger the restart at exactly the same time.”
“That sounds doable, doesn’t it?” Martin asked.
“The access to the radar module is located near the hot water jets. If we start the drill jets, they might scald the person holding the pliers.”
Martin leaned back. It was not his job to negotiate with the crew. He turned off the sound but continued watching the conversation on his monitor. Both Francesca and Devendra remained calm. They probably would argue among themselves who would be allowed to save the mission by dying. Typical space heroes! he concluded.I’m not one of them. If I were in the Sikh’s place, I would gladly let Francesca go first.
“Ground staff, I have an announcement to make,” Stone said via the general radio channel. Everyone wearing headphones could hear his words. His voice also came over the loudspeakers. The man described how they would attempt to save the crew.
“We ran the calculations again. If we do nothing, the risk of both of them dying is 100 percent. The risk of the crew member being killed immediately while working on misaligning the radar is 35 percent. With a probability of 90 percent, this person will suffer severe burns. If Valkyrie then restarts successfully, it is going to surface as quickly as possible. We have already prepared medical teams. There is a chance of about 50 percent that the treatment will happen in time. Thank you for your attention and best of luck to the crew, particularly Devendra Singh Arora, who has volunteered to manipulate the radar module.”