A.I. Apocalypse s-2 Page 3
Looking around for anyone watching, Leon made his way to the apartment building next to his, carefully avoiding any path that would put him within view of his own building’s glass enclosed lobby. He thumbed the RF code breaker app on his phone and held it up to the front door. Newer buildings had increased the code length, so this trick didn’t work on them. But these door locks were at least ten years old. Leon held the phone up to the swipe pad and counted the seconds. At twelve seconds, the door lock clicked, and he pushed the door open.
Leon pushed his blond hair out of his eyes and made his way to the staircase. A few minutes later he emerged at the top of the eight flights of stairs, breathless again, and continued up the smaller staircase to the roof. He opened the access door and looked for something to put in the doorway to keep the door from closing and locking him onto the roof. Then he saw that the doorframe already had duct tape over the hole to prevent the latch bolt from locking the door. He smiled and gently let the door close.
Leaning over the small wall around the roof, he didn’t see anyone suspicious on the ground. A few old ladies pushed their groceries home. At least he didn’t need to fear anyone’s grandma. He walked over to the fire escape and climbed down the roof ladder to the fire escape proper. Once there, he walked down the rusted metal stairs to the seventh floor.
On the seventh floor, as he and James once discovered, the two buildings bulged out for some reason. Maybe it was an example of what was once considered modern design, or maybe the bulge hid some obscure machinery needed for apartment buildings. Whatever the case, it further narrowed the already small gap between the two buildings. The fire escapes were just a few feet apart.
Leon leaned over to look down. Mistake. He quickly looked back across. Only a few feet. He had done this before with James, he reminded himself. He climbed over the short railing, and stood on the outside of the fire escape. He leaned out, but couldn’t quite touch the other fire escape. Well, there was still only one way to do it. He took a deep breath, let go of the railing he was holding, and leaned toward the other side.
His stomach leaped into his throat, but he focused all his attention on grabbing the opposing handrail. With a hard smack into his palms, he grabbed the thin metal strut with both hands. Getting a solid grip, he let his feet fall off the first metal structure, and as his feet swung down towards the new fire escape, he let go and dropped down onto the level below. The sound of his jump rang out through the metal structure.
“I’m getting too old for shit like that,” he mumbled to himself, leaning up against the solid wall of his own apartment building. What had ever made them think to try that in the first place?
He was outside his own kitchen window now. He held his phone up to the magnetic window locks and swiped the display. The window unlocked. Putting his hands flat against the glass he pushed up, and grudgingly it moved. He worked the ancient window up slowly until he could slide through the opening. He slid onto the kitchen floor, and slumped there for a minute, resting.
When his heartbeat had returned to normal, he made his way on tiptoe to the apartment door and looked out the peephole. He could see two people in the hallway. Suits. Long wool coats. Probably Russian. Backing away from the front door as though it was made of explosives that might blow at any instant, Leon made his way to his bedroom. He closed the bedroom door and took a deep sigh.
He didn’t see that he had any choice. Not only was his uncle’s life in danger, but now he had goons after him. He’d never heard of Russian mobsters being particularly kind, and he doubted they’d be nice to him just because he was a kid.
He plopped into his chair and gentled knocked his phone against his desk. The thirty-six inch display lit up and Leon swiped his hands across it, getting ready to compose a message to his uncle.
I’ll do it. But you have to keep the goons away from me and my family. I can’t work fearing for my life.
The reply came a few seconds later. Leon glanced at the clock, wondering what time it was in Moscow and whether his uncle ever slept. The reply back was big — Leon watched his bandwidth meter spike for a moment. But the text message was short:
Ok. But I can only keep them off your back for three days. Then you and I both will be in trouble if you can’t deliver. - Alex
“Shit,” Leon mumbled. What had he gotten himself into?
The attachment to his uncle’s message was massive. Leon swiped his desk screen, breaking the file into pieces and looking at each one in turn. Source code for a dozen viruses that his uncle had written. Binaries for dozens more viruses collected from around the world. Interface specifications for the admin tool Alex used to take control of the infected computers. Reverse engineered specs for anti-virus tools. Newsgroup threads for virus writers. His uncle must have been expecting he’d say yes and prepared this colossal archive of virus knowledge.
Leon’s jaw dropped. What was he going to do with all this? He slumped back in his chair, closed his eyes, and thought.
* * *
Hours later, Leon trudged to the kitchen. He grabbed a can of Japanese sweetened coffee from the refrigerator, and a piece of cake from the counter. He tiptoed to the front door, mouth full of cake, and looked out the peephole. Finally, they were gone. It had been a while since he had contacted his uncle, and the goons must have gotten the word that he agreed to help. He was relieved at some level, as he didn’t know how he would have explained them to his parents.
Leon still had a mess of work to do, but he had at least decided on a general approach for the virus. He had looked over the samples sent by his uncle with interest. But as he had no experience writing computer viruses, he eventually realized it would be impossible for him to understand all the exploits and techniques used by people with some skill in that area. Once he realized that, it became obvious that he needed to leverage what he did understand, which was biology and evolution.
In the real world, life adapted. A biological virus changed over time due to genetic mutations. As hosts built up immunity to a given virus, that one might die off or mutate to become a new species. Life in general mutated due to natural selection. A genetic variation that conveyed a benefit to survival would spread and become more common, while a different variation that was a barrier to survival would become less common as organisms that contained those genes would not survive to reproduce.
Leon thought about how evolution occurred through both sexual reproduction, in which a child received a mixture of genes from each of its parents, as well as simple mutation, in which genes experienced random changes due to errors in copying the DNA. For a computer virus, the closest parallel to DNA were the software algorithms the virus used.
Leon drew diagrams on his computer screen, dividing the problem up into the three primary functions of a virus. Propagation was the way a virus got from one computer to another. Infection was the way a virus took over a computer and installed itself. Countermeasures were how a virus evaded detection by antivirus software.
If Leon was going to write an evolutionary virus, it would need to contain a variety of methods of propagation, infection, and countermeasures. And as the virus reproduced, it should include the most successful of these methods and discard the least successful ones.
But looking over the materials provided by Alex, he realized that this approach alone wouldn’t be enough. If the algorithms Alex had provided worked well, then Alex’s viruses should be spreading. If they weren’t, it was a sure sign that the underlying algorithms were not effective.
That meant that Leon’s organism needed to find new sources of algorithms. He shoved the last bite of cake into his mouth and pulled up notes from his cultural anthropology class. He thought the problem was similar to what happened with small indigenous tribes: they needed new genetic material from outside the tribe. Leon swiped through his notes looking for the section on tribal outcasts.
Reviewing the notes, Leon found that tribes exchanged members to achieve this genetic diversity. Sometimes people ended up as
outcasts, sometimes members of the tribes were captured in war, and sometimes they raided each other for women. All of these mechanisms brought new genetic material into the tribe and enhanced its survivability. What appeared to be savage behavior to “civilized” people was in fact a sophisticated long-term approach to maintaining species health, diversity and viability.
His virus would need to raid other software programs to acquire new genetic material. That meant he needed it to detect useful behaviors. If a piece of software transmitted data to other computers that would support propagation by his virus, then it was a candidate for inclusion. If another piece of software started up other programs as part of its code, that would support infection, since it was necessary to run a program for it to infect a computer. It too would be a candidate for inclusion.
As for counter-measures to avoid detection, Leon thought that he was off to a good start since his virus would mutate frequently and would mimic other software programs by stealing their code. He decided to go one step further, and incorporate useful functionality into the virus: if the virus looked like a duck, and quacked like a duck, most people would think it was a duck, rather than be suspicious. He needed some source of random functionality. Where could he get that?
He could raid app repositories. Everyone ran competing app stores these days, trying to lock up the software market. The app stores listed free software in addition to paid software. If Leon had the virus download a small, free app, and then bolt that functionality onto the virus executable, it would also appear as a regular program to users.
The rough plan for the virus was finished. The computer screen swam with animated architecture diagrams. Leon looked down, surprised to see an empty dinner plate on the table. He heard his parents in the living room. He unfolded himself from his chair and looked out the window to see that it was dark. How many hours had passed? His mother probably thought he was working on schoolwork and had brought him dinner. He couldn’t recall eating.
Leon’s head swam with visions of the virus. He had an architecture. It was like drawing a house on paper. Now he actually had to build it. Oh man, and he only had three days. He needed to crank. After a quick visit to the bathroom, Leon sat back at his desk and got to work.
* * *
“Leon, come on.”
“One minute, I said.”
“Your father and I are waiting at the door with our coats on.”
It was three days and three hours since he starting working on the virus. He had skipped school all three days, fudging the school’s attendance system so that it looked as if his mother had submitted an absence report for a family vacation. He had worked around the clock, telling his mom he was working on a school report.
Leon looked over the message for the last time and hit send. He looked at the clock: half past seven. That meant it was half past three in the morning in Moscow. Would his uncle still be up?
“Leon, come now!” His father’s voice was harsh and thick with accent.
“Coming, I’m coming.” Leon’s hands were sweating. He hadn’t thought about God in a long time, certainly hadn’t talked to him since he was a little kid. But he clasped his hands together and muttered a little prayer. “Please God, please make sure this virus doesn’t get traced back to me.” He paused for a moment. “And please let me get a scholarship too.”
Leon grabbed his coat and joined his parents, who stared at him with exasperated looks. “What’s wrong with you? We’ve been waiting for ten minutes,” his father said.
Leon just shrugged and kept his mouth closed. Anything he said would just make them angrier.
* * *
On the other side of the world, Alexis Gorbunov checked the botnet status, face glowing blue from the reflected light of his screen. Smoke curled up from the cigarette in his mouth, his left eye in a permanent squint.
Without removing the cigarette, he spoke toward the phone on his desk. “We have five thousand computers.”
“Five thousand computers is nothing. You should just say we have nothing.” The voice was obviously angry.
Alexis shrugged, invisible to the man on the phone, and said nothing.
“Alexis, the botnet is our primary source of income. You are not taking this situation seriously enough.”
The botnet had been a primary source of revenue to the Russian mob over the last fifteen years. The mob infected personal computers with malware, which they could then control remotely. Then the mob rented out services on their army of infected personal computers. Anything from sending spam to trolling hard drives for passwords and financial account information to denial of service attacks and distributed hacking. It was all for sale.
“Boss, I am doing everything I can.” Alexis took a sip of sake from a small piece of Japanese pottery. “I told you, I have my brother’s son working on it. He is brilliant.”
The phone crackled. “You have been stalling me for three months.”
“We will have it for you by tomorrow. The kid will get code to me today. I will release it. By tomorrow you will have botnet back.”
“If I don’t have it, I’ll break both your hands. Then you can use your precious computers.” The phone clicked off suddenly.
Alexis leaned back in his chair, closed his eyes, and took another sip of sake. He had once run the largest single botnet in the world: thirty-million computers strong. He had been at the top of his game then. He had gotten respect.
Now look at him. Reminiscing about the past like an old woman. The botnet was down to five thousand computers and falling rapidly. Whatever was detecting and eliminating the botnet viruses was going to be fatal. Fatal to him if he didn’t have a solution by tomorrow afternoon. He hoped the damn kid would hurry up. He didn’t like to involve his brother’s son, but desperate times…
Alexis sat in front of the computer, chaining smoking and polishing off the bottle. He hit refresh on his email every minute. He stubbed out his smoke in an overflowing ashtray and let it fall to the ground. He pulled out another and was just holding up a lighter, when suddenly his email beeped.
The kid! An email from Leon! Thank God. Alexis took a breath. For a moment there, he almost thought he was going to cry.
He opened the email and saw a compressed file attachment. The source code for the virus was attached. Alexis nervously opened the files. There was no time to waste if he was to show results by tomorrow.
He set out to review Leon’s code. He, Alexis Gorbunov, might be ancient in the world of virus writers, but he still knew a thing or two. He peered through the source code line by line.
The dense code was written in the latest scripting language. Some bastard offshoot of Ruby and C#. Who the hell invented these languages? Alexis pored over screens of code, trying to make sense of it. It was like no virus he’d ever seen. What was this code for gene transcription? Did the kid think he meant a real biological virus? No, the kid wasn’t stupid. Just maybe too brilliant.
The kid had given the virus a name. Phage. Alexis grunted. He didn’t know what it meant, but it sounded good.
He took a deep breath and drank his last sip of sake. To show results by tomorrow, he had to release the virus immediately and hope it worked. There was no time for an in-depth review or to test it. He changed a few variables, just so he could have a role in it. He increased the aggressiveness of the virus, reduced the propagation delay. They would be useful tweaks if he was to show some effect by the next day.
Alexis used the admin tool to upload the compiled virus file to the ragged remains of his botnet army. The file was small and uploaded in minutes. He launched the file remotely, causing the five thousand bots to execute its code and become infected.
He sat back in his chair and finally lit his cigarette. He might just live to see another week if this worked. Now it was up to the virus.
* * *
The five thousand computers under Alexis’s control received the new virus directly from the botnet controller. These five thousand shared local networks
with twenty-five thousand other computers. Just as Leon planned, the Phage virus was highly infectious, managing to infect fifteen thousand of these computers almost immediately. Once installed on a computer, Phage started analyzing files, scrounging for any new algorithms it could incorporate from installed software. It assembled these parts, using random number generators and evolutionary algorithms to make decisions and tweak the behavior of its children. The children were then distributed by all known methods of propagation. This cycle would repeat indefinitely, the virus analogue of life.
An hour later, there were seventy-two unique variations of the virus, infecting more than a hundred thousand computers. The rate of doubling, a key metric of infectiousness used by the CDC for tracking diseases, was once every thirteen minutes.
In the second hour, the rate of doubling increased slightly, to once every twelve minutes. By the end of the second hour, more than three and a half million computers were impacted, with nearly two thousand versions of the virus.
But the rate of doubling increased still further, to once every ten minutes. By three hours after release, 1.5 % of the world’s computers were infected.
By this point, Phage caused appreciable jumps in Internet bandwidth around the world. Transatlantic fiber optic cables became saturated. Internet service degraded. During the fourth hour, ten thousand variations of the virus became a hundred thousand.
As the number of infected computers grew, sometimes the virus found itself on a computer it had already infected. Leon had anticipated this situation. What the virus was supposed to do was recognize that the computer was already infected, and simply exit.
But what Leon failed to anticipate was an evolutionary leap forward, the equivalent of a Virus 2.0, or V2. The improvement was a tiny bit of code leveraged from backup software. When V2 arrived on a new computer, it didn’t merely check to see if the virus was already installed. It used the backup checksum algorithm to verify that the installed virus was the same species as itself. If it wasn’t, V2 would reinfect the computer and erase the old virus.