Authors: William Hertling
Tags: #A teenage boy creates a computer virus that cripples the world's computers and develops sentience
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 gently 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.
Visions of the virus permeated Leon’s head. 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.