The Florentine Deception
Page 30
TRIGGER–CRITERIA–BEGIN
DATE=09/06/2015
TIME=17:55:00GMT
TRIGGER–CRITERIA–END
PAYLOAD–PROGRAM–BEGIN
IF (oslang == “en-us” OR oslang == “he–il”) THEN DELETE %SystemRoot%system32ntoskrnl.exe
ENDIF
PAYLOAD–PROGRAM–END
“That should do it,” I said. “This will trigger at 5:55 p.m. GMT this coming Wednesday, which is 9:55 a.m. Pacific Standard Time, five minutes before Khalimmy’s attack is supposed to trigger.”
Amir lifted his glasses and reviewed the trigger criteria. “I concur.”
“Good, let’s review the payload now. Our payload first checks to see if the system is configured to use either English or Hebrew. This is the same criteria Khalimmy used, as far as we know, to identify which machines to target. If a machine uses either language, then our payload deletes the ntoskrnl.exe file. Otherwise our payload does nothing. Did I make any mistakes?”
Amir leaned in and studied the three-line program.
“No,” he said, running his index finger down the screen for a second review. “There are no problems I can see.” I moved the mouse over the Save button and clicked.
“Wait,” he said. “You’re missing the reboot command that will cause the machines to restart and then crash.”
“Good catch,” I said, adding a line with the word “REBOOT” after the “DELETE” line. “Look okay now?” I asked.
“Yes,” he said, after pausing to reread the entire program. Receiving his blessing, I saved the payload into a file called Antidote.dat.
“Now let’s reserve one of the authentication keys and pick a password.”
He shook his head. “You know, it’s scary that in just ten lines, you’ve got the power to crash hundreds of millions of computers, to potentially alter the path of entire economies …”
“It is scary,” I agreed.
I switched windows to the file containing the ten Florentine authentication keys and copied the last 256-digit key into a new file called Key.dat. Finally, I opened up a command shell where I could type in the command to launch the attack.
“Okay, pick a password we can use to cancel the attack, if need be.”
“Shamshiri,” Amir said.
“Like the restaurant?” I asked, referring to the popular Persian eatery near campus.
“Yes, it means ‘sword’ in Farsi. We are the defensive sword.”
“I guess we are,” I said, typing in the command line:
C:temp> florentine.exe key.dat shamshiri antidote.tad
“Don’t hit Enter!” said Amir nervously.
“Don’t worry.” I swiveled the chair around and patted him on the shoulder. “I intentionally misspelled the name of the payload file, Antidote.tad—it should be ‘.dat’, not ‘.tad’. If and when we’re ready to launch the attack, I’ll fix the spelling and then hit Enter.”
“I am getting slow in my old age.” He patted my back reciprocally. “So if we are to give all of the machines at least twenty-four hours to retrieve our Shamshiri payload, we need to launch the antidote before ten a.m. tomorrow morning, at the latest?”
“At the latest. Plus there’s a chance we’ll run into some problem or other, so I’d suggest we limit our launch time to no later than eight a.m. tomorrow morning. And the same holds true if we want to send a cancellation command. In order for the cancellation to reach every machine, we also have to launch it at least twenty-four hours prior to the original payload trigger time. Otherwise, there’s no guarantee all the machines will check the update server and see it.”
Amir reflected. “I hadn’t considered that. It’s another good point. Well, hopefully we won’t have to launch this attack in the first place, let alone send out a cancellation.” He stood up, stretched, and yawned. “So now we must focus on a less destructive solution. There must be something we’re missing, some clever fix.”
“Occam’s razor,” I suggested.
“Yes, exactly, an Occam’s razor solution but without the sharp edge.” Amir put his hand over his pocket. “Hold on a second.” He pulled out a cell phone. “Hello?” … “What? Nelson’s hurt?” … “Oh God. Is he okay? Did you call an ambulance?” … “Good, good. I’ll be right up.”
Amir clicked off his phone and took a step toward the door. “Professor Keller was found wandering aimlessly on the seventh floor with a bruise on his forehead. He must have fallen. He’s been having balance problems. Can you manage for fifteen or twenty minutes without me?”
“Go,” I said. “I’ll keep brainstorming.”
Amir dashed out of the room. I stood up and began pacing in thought.
After a few minutes of fruitless ruminating, I propped open the door and stepped back into the main Cellar area. Perhaps a walk between the old stacks of junk would help stimulate my creative juices.
I wandered through the mounds, stopping at an eighties-era metal desk entirely covered with thick textbooks. Crouching down on my haunches, I began dusting off their spines one at a time with my finger. Introduction to Bioengineering, Organic Chemistry II, and A History of Life successively emerged from beneath the filth. I flipped open the top cover of Introduction to Bioengineering in search of an inscription. A label on the first page read “From the library of Irving Whitman.”
“Probably long dead,” I muttered, “otherwise maybe you’d have some ideas for me.”
I scraped the dust from my finger on the underside of the desk, then tried its drawers: all locked. A challenge. My first-year UCLA roommate had taught me how to pick simple locks with a couple of heavy-duty paperclips, so I grabbed a handful from the desk in Amir’s vault and returned to test my skills.
“How is defending against Khalimmy’s attack like picking a lock?” I asked myself. I’d found that out-of-the-box questions like that sometimes resulted in interesting insights. This one did not, but after a bit of fumbling in the wavering gloom of the overhead lights, the lock clicked anyway. I pulled the left drawer open and rummaged inside. The drawer held a spare pair of thick-rimmed, black plastic glasses with quarter-inch-thick bifocal lenses, a half-full bottle of Jameson whiskey, and a tumbler.
I tried the right drawer and found a stack of yellowing exams. A thin, shiny-covered picture book sat partially covered at the base of the drawer under the stack. I pulled it out. How Animals Hide: Camouflage Techniques of the Animal Kingdom read the title. I flipped through the glossy color photos, catching successive glimpses of a salamander, a stick insect, and a flounder in the blur of pages. Who knew that flounder could change their skin colors? Not me.
I dropped the book back on top of the stack and eased the drawer shut.
Then the solution hit me like a load of bricks, or rather a net full of flounder.
Chapter 61
I raced back to Amir’s laptop, grabbed a soda from the refrigerator, and in just five minutes had created a new payload, actually two new payloads—my plan required a two-phase approach—and saved them under the names Flounder1.dat and Flounder2.dat. In another three minutes, I’d selected two new authentication keys—the next two from the bottom of the list of ten—picked a new cancellation password, and prepared the two command lines to submit my new payloads to the Microsoft Update servers. Eight minutes flat: an Occam’s razor solution if there ever was one. Assuming the approach was sound—and this, I wanted Amir to corroborate—all I needed to do was hit the Enter key twice to submit the two payloads, and Khalimmy’s impending attack would be fully neutralized, with little collateral damage, by five minutes after ten a.m. on Wednesday morning.
But where was Amir? I had no way of contacting him without leaving the Cellar, so I returned to the laptop and began reviewing my logic, running through every possible contingency. I couldn’t find any flaws, but I needed him to double check. I rubbed my eyes and looked over at the wall clock. He’d been gone for nearly two hours.
Something was definitely wrong.
I tucked the laptop under my arm,
then worked my way around the piles to the Cellar’s exit. Amir hadn’t left me his keycard, so I grabbed several thick manuals from the nearest desk and propped open the door as I left. Just in case.
If I wasn’t mistaken, and it had been a long time, Nelson Keller’s office was in a suite on the fourth floor. The emeritus professor, who was considered prehistoric when I was an undergrad and prattled incessantly about programming with punch cards, was almost certainly near death at this point. I took off toward the northwest stairwell to head up.
I reached the pair of glass doors leading from the atrium to the second-floor hallway, pulled the door open halfway, and stopped cold; standing no more than ten feet down the hall was a solid-looking guy in a blue suit, a cellphone at his ear, talking in what could only be described as agitated Russian.
How the hell did they find me? I eased the door closed, and just as I released the handle, the man turned around and headed for the elevator. He nodded to me curtly as he passed. I nodded back, as nonchalantly as possible, then did an about-face and began walking unhurriedly back to Cellar. At about ten steps from the Cellar door, I heard his voice again. I turned my head reflexively to look back; his eyes stared intently at me as he continued talking calmly into the phone in Russian. I kept walking.
When I reached the Cellar door, I took another look back—the phone was gone and the guy was surveying the atrium warily. Then his right hand reached inside his navy blue coat.
I wrenched open the door, kicked the manuals out of the way and slammed it shut behind me. I’d be safe for the time being—the guy wasn’t going to raise hell blasting through the metal door with a pistol. I scanned the dimly lit grotto for a campus phone to call 911. Nothing. Nor did Amir have one in his vault.
My mind blanked as I tried to concentrate, to identify my options. Then I heard it: the click of the metal door’s lock. Somehow the guy had obtained a keycard. Shit.
The door opened slowly, just a crack, casting a narrow strip of light along the right wall. Acting entirely on instinct, I threw my body up against the door, slamming it shut, then slapped my hand down on the light switch and dashed around the back of the closest heap of junk. The room was now totally dark. Laptop under my left arm, right hand out in front, I edged forward on my knees toward the back of the room.
The door clicked again, then opened. An instant later, the overhead fluorescents flickered back to life. This was it. I was dead.
“Excuse me,” came a voice—Amir’s voice—from outside. “Can I help you?”
“Building maintenance,” said the man in brusque, Russian-accented English.
“I’m sorry, but this is a restr …”
I didn’t wait for Amir to finish. I rose, fumbled left around a dented, six-foot-tall metal-mainframe chassis, and sprinted toward the rear door.
Expecting it to stick from years of disuse, I wrenched the handle and the door flew outward, nearly slamming into my face as I reeled backward. I dropped down and inched through the doorway, yanking the door shut behind me.
The cinderblock walls of the tunnel stretched off a good fifty or more feet without any obvious hiding places so I took off, sidestepping down the corridor to avoid the angry-looking plumbing, wiring, and electrical boxes strapped along both walls. After about thirty seconds of gentle uphill travel, the narrow passage opened up into a four-way intersection.
I was now almost certainly under the Court of the Sciences, or maybe a bit farther east, under the Geology building or Young Hall. While I hadn’t navigated the steam tunnels before, I’d heard endless stories about ways to access the network of passageways, and if my memory served me, a doorway in the basement of Franz Hall was my closest option for escape. I turned left into the wider artery, heading toward north campus and Franz Hall, Amir’s laptop cradled under my left arm. With each step, the heat increased. It was now easily eighty degrees and uncomfortably humid; overhead, bare light bulbs hung from aging PVC piping bolted into the concrete ceiling, painting the tunnel’s walls a harsh, artificial white.
The passage took a hard right turn after another hundred and fifty feet or so. I turned to look back but as I did, the cement wall to my left exploded in burst of tiny fragments.
Shit. I dashed right and sprinted about fifteen feet, then hit another T-shaped intersection. If my mental map was correct, I was either under or nearly under Franz Hall. I turned right toward the south, hoping to find an exit into Franz’s basement. Behind me I heard echoes of running footsteps—he was getting closer. The passage veered left again. I followed the bend, walked four steps, and ran into a solid wooden door bearing a plaque labeled “Franz Basement.”
I grabbed the metal doorknob and cranked it counterclockwise. The knob hesitated a millisecond, then twisted clear off the door and into my hand. “Dead end,” I whispered to myself, “literally.” A large drop of sweat trickled down from my right temple onto my cheek.
Louder footsteps, more hesitant now. He couldn’t be more than fifteen or twenty feet away. I had a fifty-fifty chance. If he veered left at the T, he’d almost certainly get lost in the larger network of tunnels heading to the north campus. If he chose right, it was game over.
Even odds were unacceptable. I edged up to the bend and hurled the doorknob north, past the last intersection, then backed up and stood deathly still. Before the knob finished clattering along the floor, the Russian bolted northward after it. I lingered until his footfalls faded and then walked stealthily back around the loop, sprinting once I reached the main north-south artery.
One thing was clear. Whether or not I ultimately survived, I needed to launch the antidote as soon as possible. With God-knows-how-many other Russian agents patrolling the Engineering school, I couldn’t afford to vet my solution with Amir, assuming he was even still alive. Any delay, and I might not get a second chance.
I slowed as I approached the four-way intersection, turned right, and began sidestepping down the middle of the narrow passage back to the Cellar.
I reached for the door handle, then jerked reflexively as a pipe a few feet behind my head exploded in a blistering burst of steam. A second bullet smacked into the wooden door in front of me. I pulled the door open and jumped through, slamming it shut behind me, then made a split-second decision—I needed at least thirty uninterrupted seconds to launch the attack, and while Amir’s storage vault was a dead end and a likely death sentence, the atrium offered no cover whatsoever; I’d be a sitting duck. I slalomed around the piles toward Amir’s vault, kicked up its doorstop, and slammed the door closed.
The first of the shots smacked into the metal door just as the laptop finished waking from its hibernation mode. The Russian rattled the door, then fired another shot into the lock. A combination of fear and adrenaline caused my fingers to shake near uncontrollably, but I managed to switch windows and hit the Enter key to launch the first phase of my antidote. The program launched and quickly printed “обработка …” then paused a second, then two, then three.
Why was it taking so long? Was it working?
I heard a kick, then another, and turned to see the metal door crash open. I returned my gaze to the screen and switched windows to launch the second phase of my cure but before I could hit the Enter key, my body lurched forward and onto the desk. No pain, somehow, but the gunshot’s blast registered a millisecond later in my ears. I heard a second blast and a scream, probably my own, as my vision grayed and I lost consciousness.
Chapter 62
“Alex, can you hear me?”
“Mmmmmm?”
“I think he’s awake,” said my mother, excitedly. “Alex?”
“Yes,” I said, my mouth unbelievably dry. “Can I get some …” The word wouldn’t come.
“Water?” responded my mother. I felt a hand, her hand, squeeze and then let go of mine.
“Yes.”
My mind latched on to the rhythmic beeping of a heart rate monitor—I was in a hospital. Again. I tried to sit up but was rewarded with searing pain in my
back and stomach. I groaned and tried to open my eyes. That lasted all of about two seconds.
“Don’t move, Alex.” It was my father.
“Here,” said Mom. She inserted a straw into my mouth and I sipped weakly. When she removed the straw, she continued. “Need anything else?”
“No,” I said, again fixating on the pulsating beeps. Beep … Beep … Beep …“What … what happened to …” The name wouldn’t come.
“To who, Alex?”
I couldn’t remember. “The world is going to end,” I mumbled.
“No, everything’s going to be fine, honey. Just rest and everything will be fine.”
I tried to concentrate. Why was the world going to end? “The world is going to end at … ten. What time is it?” I tried to sit up again. Again, stabbing pain. The monitor’s beeping quickened.
“No honey, everything’s going to be fine. Just relax.”
I was certain she was wrong, but I wasn’t sure exactly why. “Moooommmm,” I pleaded.
“It’s actually a few minutes before ten, Alex. You’ll see, everything will be just fine. You’re just a little sedated right now so you’re having strange thoughts. It will pass soon.”
“Amir!” I cried. It was slowly coming back. I opened my eyes again. My mother and father blurred in and out of focus. “Can I get some more water?” Mom placed the straw between my lips and I drank again, this time until I was sucking air. “More?”
“Who’s Amir?” asked my father.
“Amir is … Amir …” I couldn’t quite find the words to explain. “But is he okay?”
I heard a pouring noise and shifted my gaze over to Mom, but couldn’t focus on her.
“We don’t know who Amir is, honey,” she said. “Can you tell us?”
I couldn’t. I shook my head weakly. Beep … Beep … Beep …
“The world is going to end at ten a.m. … on …” then it came to me, “Wednesday.”
“No, honey, everything will be fine. Here, take another sip.”
Again, she placed the straw between my lips and I sucked.