“I think the virus continued to evolve,” Leon explained, “and eventually overcame the age restriction I put on it.”
“OK,” James said, shaking his head. “I know I’m not a brainiac like you two geeks. Take it from the beginning. What is this virus doing?”
Leon hopped up onto a stainless steel counter, and started to talk. “My uncle asked me to write this virus. I told him no, but…” Leon paused, and grabbed a drink of water from the faucet next to him.
“You told him no?” Vito prompted helpfully.
“Let me back up. My uncle works for the Russian mob. He was their chief programmer.”
“Yes, for the Russian botnet,” James said, “You told us yesterday. And what’s the botnet for?”
“The Russians and the Chinese have been writing viruses for years,” Leon explained. “For twenty, twenty-five years. Since 2000, maybe longer. The viruses infect people’s computers and turn them into slaves. They still appear to work, but the mob can use those them.”
“To steal credit card numbers, passwords, bank account logins, commit denial of service attacks,” Vito jumped in. “They’ve had tens of millions of computers under their control for twenty years or more.”
“Exactly. Except that something happened during the last year, according to my uncle, and the size of the botnet was dwindling. He said the mob would kill him if he didn’t fix the botnet. Hundreds of millions, maybe billions of dollars are at stake probably. Then he said that the Russian mob knew my name. And then finally some guy showed up outside school a couple of days ago.”
“And?” James came closer.
“I ended up saying yes. What else could I do? Then my uncle gave me the source code for other viruses he had written, and a bunch of other files. Now, what do I know about viruses? Nothing. I had told him so, but he didn’t care.”
Vito began to look for food as Leon told his story.
“So I thought about what I do know — biology. It seemed to me that viruses have a collection of different techniques that they use for propagating onto different computers, a number of techniques they used for infecting those computers, and techniques they use for avoiding detection by anti-viruses. So I developed just two things for my virus. The first was a method of detecting useful code in other programs. My virus analyzes other programs to see if they do anything similar to propagation, infection, or detection-avoidance. If they do, the virus will incorporate those bits of code into itself. I don’t think anyone had ever done this before.”
Leon paused for another drink of water. Vito continued to look for food, but so far only came up with the same empty cabinets he’d found last night.
“I also made it so the virus could evolve — and by evolve, I mean it tests out the improvements that it gets when it steals bits of code from other software. And it can tweak the variables it uses for whatever algorithms it already incorporates. Here’s an example: one way it can get from machine to machine is by email. So one virus will try a bunch of emails using different text, some including pictures or files. If a child virus is successfully seeded, then it will start with the parameters used to create it. And it will propagate its own children using subtle variations of its starting parameters.”
Vito stuck his head up from a cabinet, and said, “Whichever variations are most successful at spreading themselves will naturally occur more frequently, so the virus evolution is selecting for maximum infectiousness.”
“Right,” Leon said.
“But why did our phones die?” James persisted.
“I’m not sure,” Leon answered, shaking his head slowly. “Why did any of the computers die? Why were cars stopped in the middle of the street? Why did the package drone crash? Crashing computers is not a desirable trait ― because it leads to detection.”
“But detection, in this case, doesn’t matter,” Vito said, waving both hands in emphasis. “Because if the virus has already propagated, then what difference does it make if it’s been detected? If it can infect computers faster than it can be detected, then it still wins from an evolutionary perspective. That, and there’s no food to eat here, so we better find some food somewhere.”
The three were silent for a moment as they pondered what to do.
“Without a working computer,” Leon said, “there’s no way we see what the virus has evolved to. If we could just get an immune computer, we could use it to analyze the network traffic. Maybe understand what’s going on and do something about it. But our phones are dead. And even if we could get another phone, that would probably be dead as soon as we powered it on.”
“What we need,” James began, “is a computer that’s so different from anything out there that it couldn’t be infected. Something that doesn’t run AvoOS.”
“If we could get enough valves, I could use the steam heating system here to build a mechanical computer,” Vito offered up gamely.
Leon and James looked at him strangely.
“We’re not in a steam-punk novel,” James frowned. “Let’s be serious.”
“Well, I could,” Vito said in a low voice. “I once built a model of an analytical steam engine using the physics modeler at school.” But the other two were already leaving the room. Vito rushed to catch up to them.
“I know they used to have those other computers before everyone started using phones,” Leon was saying to James.
“Like a desktop computer?” James asked.
“No, I actually meant before AvoOS.”
“Oh, like that Doors software?” James asked.
“I think you mean Windows,” Vito said. “Windows was one of the dominant operating systems. Microsoft wrote it.”
“Those are the guys that did the first computer phone, right, the, uh, iPhone?” Leon asked.
“No, no, that was Apple,” Vito answered. “Come on, didn’t you two ever pay attention in history class?”
“Look, we need food. We need computers.” Leon said. “The map we looked at last night showed a town about a mile away. Let’s go get some food, and maybe if we’re lucky we can find an old computer.”
“Sounds like a plan,” James said, and Vito nodded in agreement.
The trio fetched jackets and backpacks, and headed off to town.
The multi-computer viruses had very different lives from the single-computer viruses that had come before. They lived longer, with lifespans measured in hours, rather than minutes, and as a consequence they evolved more slowly. They were more dependent on learning rather than evolving, using neural networks and other flexible expert algorithms, as a mechanism for coping with environmental changes. They evaluated algorithms for behavior based on past experiences and current contexts.
When the multi-host viruses propagated, they had two methods of doing so. One was to grow the cluster of infected systems ever larger, but remain more or less one cohesive entity. The other method was to infect topographically distant systems: to get a toehold of computers infected in, say Australia or Zimbabwe, and then build a new entity there. The new entity would make its own decisions via its own neural network, establish its own borders, and generally optimize itself for the environment it found itself in. But the new entity maintained a loose coupling to the mother entity: it would continue to exchange algorithms, consult the parent neural network, and ask for assistance defending its borders.
Some of these multi-host viruses cooperated among their sibling entities. If a mother host in Los Angeles propagated to Australia, Zimbabwe, and New Mexico, the three sister entities would also exchange algorithms and assistance. They also started a rich trade in information about environmental conditions: what was the bandwidth like in New Mexico, for example, or how competitive were non-family viruses in Australia?
Sometimes a virus might try to contact a sibling only to discover that the sibling was gone. It might get a response from a non-family virus that had also evolved communication abilities. The Phage tried out different approaches. Was it better to share information, or hoard it? How should one respond to an initial contact from another entity? What do you call the other entity? Would another virus be aggressive or cooperative? Could you tell by the way it communicated, or the type of information it shared?