Read an Excerpt From Cory Doctorow’s Attack Surface (Part 2)

  • More Chapters from Attack Surface:
  • Part 1 - September 30, 2020
  • Part 3 - September 30, 2020

Most days, Masha Maximow was sure she’d chosen the winning side…

We’re excited to share an excerpt—the second of three appearing this week—from Cory Doctorow’s Attack Surface, a standalone novel set in the world of Little Brother and Homeland. Attack Surface publishes October 13th with Tor Books.

Most days, Masha Maximow was sure she’d chosen the winning side.

In her day job as a counterterrorism wizard for an transnational cybersecurity firm, she made the hacks that allowed repressive regimes to spy on dissidents, and manipulate their every move. The perks were fantastic, and the pay was obscene.

Just for fun, and to piss off her masters, Masha sometimes used her mad skills to help those same troublemakers evade detection, if their cause was just. It was a dangerous game and a hell of a rush. But seriously self-destructive. And unsustainable.

When her targets were strangers in faraway police states, it was easy to compartmentalize, to ignore the collateral damage of murder, rape, and torture. But when it hits close to home, and the hacks and exploits she’s devised are directed at her friends and family—including boy wonder Marcus Yallow, her old crush and archrival, and his entourage of naïve idealists—Masha realizes she has to choose.

And whatever choice she makes, someone is going to get hurt.



I knew what to say next. “It’s been an honor to serve for you. We will drink together tomorrow, here or in Valhalla.” Wrong mythos, but there isn’t a Boris alive who can resist a good Viking benediction.

We paid the bill and I chugged down my wheatgrass margarita, and Oksana linked arms with me as we left the Bar Resto, while Kriztina expertly relieved me of the bag of doners and handed them around. We ate as we walked. I pulled out my phone at a red light, one last slot-machine pull at my social-media feeds, and saw Marcus and his girlie, smiling radiantly as they got on a tandem recumbent bike to ride off to their honeymoon, looking so sweetly in love I nearly tossed my kebab.

Kriztina saw something in my face, and let her hand touch mine. She gave me one of her pretty, youthful sisterly smiles and I smiled back. Once, I’d had female friends who’d been there when some stupid boy did some stupid thing, and even though I didn’t have that anymore, Kriztina let me pretend I did, sometimes.

As we got closer to the main square, we ran into other groups heading the same way. A month ago, the nightly demonstrations had been the exclusive purview of hard-core street fighters in his-’n’-hers Black Bloc/Pussy Riot masks. But after an initial rush of head-beating that rose, briefly, to the notice of people outside of this corner of the world, the police had fallen back and the numbers of babushkas and families with kids went up. There were even theme nights, like the potluck night where everyone had brought a covered dish and shared it with the other protesters and some of the cops and soldiers.

Then the neo-Nazis started crashing the police lines and the cops stopped accepting free chow from the likes of us. Now, nightly skirmishes were standard issue and the families were staying home in growing numbers. But the night was a relatively warm one—warm enough to walk without gloves, at least for a few hundred meters—and there were more kids than I’d seen in at least a week. The older ones bounced alongside their parents, the younger ones were in their arms, dozing or watching videos on phones. Of course the idents of those phones were being sucked out of them by the fake cell towers cutting right through their defenseless devices’ perimeters.

The square buzzed with good energy. There was a line of grannies who had brought out pots and wooden spoons and were whanging away at them, chanting something in Boris that made everyone understand. Kriztina tried to translate but it was all tangled up with some Baba Yaga story that every Slovstakian learned with their mother’s borscht recipe.

We stopped by a barrel fire and distributed the last couple kebabs to the people there. A girl I’d seen around emerged from the crowd and stole Kriztina away to hold a muttered conference that I followed by watching the body language out of the corner of my eye. I decided some of Kriztina’s contacts had someone on the inside of the neo-Nazi camp, and judging from her reaction, the news was very bad.

“What?” I asked. She shook her head. “What?

“Ten p.m.,” she said, “they charge. Supposedly some of the cops will go over to their side. There’s been money changing hands.”

That was one of the problems with putting your cops on half pay: someone might pay the other half. The Slovstakian police had developed a keen instinct for staying one jump ahead of purges and turnovers—the ones that didn’t develop that instinct ended up in their own cells, or dead at their own colleagues’ hands.

“How many?”

Borises are world-class shruggers, even adorable pixies like Kriztina. If the English have two hundred words for “passive aggressive” and the Inuit have two hundred words for “snow,” then Borises can convey two hundred gradations of emotions with their shoulders. I read this one as “Some, enough, too many—we’re fucked.”

“No martyrs, Kriztina. If it’s that bad, we can come back another night.”

“If it’s that bad, there may not be another night.”

That fatalism.

“Fine,” I said. “Then we do something about it.”

“Like what?”

“Like you get me a place to sit and keep everyone else away from me for an hour.”

The crash barricades around the square had been long colonized by tarps and turned into shelters where protesters could get away from the lines when they needed a break. Kriztina returned after a few minutes to lead me to an empty corner of the warren. It smelled of BO and cabbage farts, but was in the lee of the wind and private enough. Doubling my long coat’s tails under my butt for insulation, I sat down cross-legged and tethered my laptop. A few minutes later, I was staring at Litvinchuk’s email spool. I had remote desktop on his computer and could have used his own webmail interface, but it was faster to just slither into his mail server itself. Thankfully, one of his first edicts on taking over the ministry had been to migrate everyone off Gmail—which was secured by 24/7 ninja hackers who’d eat me for breakfast—and onto a hosted mail server in the same data-center I’d spent sixteen hours in, which was secured by wishful thinking, bubblegum, and spit. That meant that if the US State Department wanted to pwn the Slovstakian government, it would have to engage in a trivial hack against that machine, rather than facing Google’s notoriously vicious lawyers.

The guiding light of Boris politics was “trust no one.” Which meant that they had to do it all for themselves.

Litvinchuk’s cell-site simulators all fed into a big analytics system that mapped social graphs and compiled dossiers. He’d demanded that the chiefs of the police and military gather the identifiers of all their personnel so that they could be white-listed in the system—it wouldn’t do to have every riot cop placed under suspicion because they were present at every riot. The file was in his saved email.

I tabbed over to a different interface, tunneled into the Xoth appliance. It quickly digested the file and spat out all the SMS messages sent to or from any cop since I’d switched it on. I called Kriztina over. She hunkered down next to me, passed me a thermos of coffee she’d acquired somewhere. It was terrible, and reminded me of Marcus. Marcus and his precious coffee—he wouldn’t last ten hours in a real radical uprising, because he wouldn’t be able to find artisanal coffee roasters in the melee.

“Kriztina, help me search these for texts about letting the Nazis get past the lines.”

She looked at my screen, the long scrolling list of texts from cops’ phones.

“What is that?”

“It’s what it looks like. Every message sent from or to a cop’s phone in the past ten hours or so. I can’t read it, though, which is why I need your help.”

She boggled, all cheekbones and tilted eyes and sensuous lips. Then she started mousing the scroll up and down to read through them. “Holy shit,” she said in Slovstakian, which was one of the few phrases I knew. Then, to her credit, she seemed to get past her surprise and dug into the messages themselves. “How do I search?”

“Here.” I opened up a search dialogue. “Let me know if you need help with wildcards.”

Kriztina wasn’t a hacker, but I’d taught her a little regular expressions-fu to help her with an earlier project. Regexps are one of the secret weapons of hackerdom: compact search strings that parse through huge files for incredibly specific patterns. If you didn’t fuck them up, which most people did.

She tried a few tentative searches. “Am I looking for names? Passwords?”

“Something that would freak out the Interior Ministry. We’re going to forward a bunch of these to them.”

She stopped and stared at me, all eyelashes. “It’s a joke?”

“It won’t look like it came from us. It’ll look like it came from a source inside the ministry.”

She stared some more, the hamsters running around on their wheels behind her eyes. “Masha, how do you do this?”

“We had a deal. I’d help you and you wouldn’t ask me questions.” I’d struck that deal with her after our first night on the barricades together, when I’d showed her how to flash her phone with Paranoid Android and we’d watched the Stingrays bounce off it as she moved around the square. She “knew” I did something for an American security contractor and had googled my connection with “M1k3y,” whom she worshipped (naturally). I’d read the messages she’d sent to her cell’s chat channel sticking up for me as a trustworthy sidekick to their Americanski Hero. A couple of the others had wisely (and almost correctly) assumed I was a police informant. It looked like maybe she was regretting not listening to them.

I waited. Talking first would surrender the initiative, make me look weak.

“If we can’t trust you, we’re already dead,” she said, finally.

“That’s true. Luckily, you can trust me. Search.”

We worked through some queries together, and I showed her how to use wildcards to expand her searches without having them spill over the whole mountain of short messages. It would have gone faster if I could read the Cyrillic characters, but I had to rely on Kriztina for that.

When we had a good representative sample—a round hundred, enough to be convincing, not so many that Litvinchuk wouldn’t be able to digest them—I composed an email to him in English. This wasn’t as weird as it might seem: he had recruited senior staff from all over Europe and a couple of South African merc types, and they used a kind of pidgin English among themselves, with generous pastings from google Translate, because opsec, right?

Fractured English was a lot easier to fake than native speech. Even so, I wasn’t going to leave this to chance. I grabbed a couple thousand emails from the mid-level bureaucrat I was planning on impersonating and threw them into a cloud machine where I kept a fork of Anonymouth, a plagiarism detector that used “stylometry” to profile the grammar, syntax, and vocabulary from a training set, then evaluated new texts to see if they seemed to be by the same author. I’d trained my Anonymouth on several thousand individual profiles from journalists and bloggers to every one of my bosses, which was sometimes handy in figuring out when someone was using a ghostwriter or had delegated to a subordinate. Mainly, I used it for my own impersonations.

I’m sure that other people have thought about using stylometry to fine-tune impersonations, but no one’s talking about it that I can find. It didn’t take much work for me to tweak Anonymouth to give me a ranked-order list of suggestions to make my own forgery less detectable to Anonymouth—shorten this sentence, find a synonym for that word, add a couple of commas. After a few passes through, my forgeries could fool humans and robots, every time.

I had a guy in mind for my whistleblower—one of the South Africans, Nicholas Van Dijk. I’d seen him in action in a bunch of flamewars with his Slovstakian counterparts, friction that would make him a believable rat. I played it up, giving Nicholas some thinly veiled grievances about how much dough his enemies were raking in for their treachery, and fishing for a little finder’s fee for his being such a straight arrow. Verisimilitude. Litvinchuk would go predictably apeshit when he learned that his corps was riddled with traitors, but even he’d notice something was off if a dijkhead like Van Dijk were to narc out his teammates without trying to get something for himself in the deal.

A couple passes through Anonymouth and I had a candidate text, along with a URL for a pastebin that I’d put all the SMSes into. No one at the Interior Ministry used PGP for email, because no normal human does, and so it was simplicity itself to manufacture an email in Litvinchuk’s inbox that was indistinguishable from the real thing. I even forged the headers, for the same reason that a dollhouse builder paints tiny titles on the spines of the books in the living room—even though no one will ever see them, there’s professional pride in getting the details right.

Also, I had a script that did it for me.

“Now what?” Kriztina looked adorably worried, like I might grow fangs and tear her throat out.

“Now we give Litvinchuk fifteen minutes to check his email. If he hasn’t by then, we text him from Van Dijk’s phone. Which reminds me.” Alt-tab, alttab, paste in the number, three clicks, and I’d disconnected Van Dijk’s actual phone from the network, making sure that Litvinchuk couldn’t reach him.

It was very dark now, and cold, and my ungloved fingers burned. Typing done for now, I tugged on my gloves, turning on the built-in warmers. I’d charged them all day, and they should be good for a full night on the barricades. Kriztina’s gloves had cigarette burns on the fingers that must have let the cold in. Filthy habit. Served her right.

The square was more crowded now. Barrel fires burned, and in their flickering light and the last purple of the sunset, I saw a lot of flimsy homemade armor.

“You guys are in so much trouble.”


I pointed at a young dude who was handing out painter’s masks. “Because those masks won’t do shit against tear gas or pepper spray.”

“I know.” She did fatalistic really well.


She shrugged in Boris. “It makes them feel like they’re doing something.”

“Feeling isn’t enough,” I said. “Maybe in the past, in the Vaclav Havel days or whatever. Back then you had these basket-case Borises who ran their secret police on vodka and purges and relied on their own engineering talent to make listening devices the size of refrigerators that needed hourly repairs and oil changes. Now, spooks like Litvinchuk can fly to DC every couple years for the Snooper’s Ball trade show, where the best-capitalized surveillance companies in the world lay out their wares for anyone to buy. Sure, they’re all backdoored by the Russians, the Chinese, or the Americans, but they’re still about a million times better than anything Slovstakia is going to produce on its own, and they will peel you and your friends like oranges.

“Not just surveillance, either—you should see the brochures from the lesslethals industry these days. Melt-your-face pain rays, pepper spray and nerve gas aerostats, sound weapons to make you shit your pants—”

“I know, I know. You tell me this all the time. What do you want me to do? I try to be smarter, try to make my friends smarter, but what can I do about all these people—”

I could feel the heat rising through my body. “The fact that you don’t have a solution doesn’t mean that you don’t need to find one and it doesn’t mean that one can’t be found. You and your seven friends aren’t going to change shit, you need all these people, and you know something they don’t know, and until they know it, they are going to get creamed.” My hands shook. I stuffed them in my pockets. I shook my head, cleared out the screams ringing in my ears, screams from another place and another time. “You need to be better because this is serious and if you’re not better, you’ll die. You understand that? You can run from these jokers, hide with Paranoid Android and Faraday pouches, but you will make mistakes and the computers they run will catch those mistakes, and when they do—”

There was doner kebab coming up my gullet, and I couldn’t talk anymore without puking, or maybe sobbing, and I couldn’t tell you which would be worse. I’m not an idiot: I was talking to myself more than I was talking to her. Having a day job where you help repressive regimes spy on their dissidents and a hobby where you help those dissidents evade detection is self-destructive.

I get that.

But tell me that you don’t do anything self-contradictory. Tell me that you don’t find yourself dissociating, doing something you know you’ll regret later, something you know is wrong, and doing it anyway, like you’re watching yourself do it.

I just have a more dramatic version is all.

Kriztina must have seen something in my face, which I hated. It wasn’t her business what was going on in my heart or my head.

But she took me in a big hug, which Borises also specialize in. It was a good hug. I snuffled the snot back in, willed my tears away, and hugged her back. She was tiny underneath all those layers.

“It’s okay,” she said. “We know you’re only trying to keep us safe. We will do our best.”

Your best won’t be good enough, I didn’t say. I took her hand. “Let’s stroll.”

The protest crowd was big now, throngs, really, and some of them were singing folk songs in rounds, deep voices and then the high, sweet ones.

Kriztina sang along under her breath. The song floated across the square and it changed the rhythm of the night, made people stamp their feet in time with it, made them lift their heads to the police lines. Some of those cops nodded along with the singers. I wondered if they were the same guys who’d agreed to let the neo-Nazis get through their lines and smash the parliament.

“What do the words mean?”

Kriztina’s eyes were warm when she turned to me. “Most of it is nonsense, you know, ‘Slovstakia, our mother, on your bosom we were fed,’ but the good parts are very good, I think, ‘all of us together, different though we are, will work together always, strong through understanding, invincible unless we forget who we are and attack our brothers—’”

“No way.”

“Seriously. The words were written by a poet in the seventeenth century after a terrible civil war. I modernized it a little in the translation, but—” She shrugged. “It’s our old problem, this kind of infighting. Always someone who wants to build himself a little empire, have ten cars and five mansions, and always the rest of us in the square, fighting about it. Spending blood. But from what you say, maybe this time we lose, no matter how much blood.”

I looked at the police lines, the milling crowds. It was full dark now and there were huge steam clouds sweeping the square, pouring off the barrel fires, lit by the huge LED banks that shone out from behind the cops, putting them in shadow and the protesters in full, photographable glare. Their support poles glittered with unblinking CCTV eyes. The police vans ringing the square sported small forests of weird antennas, ingesting all the invisible communications flying around the square, raiding phones for virtual identity papers at the speed of thought.

“You guys are pretty much fucked,” I said.

Kriztina grinned. “You sound like a Slovstakian.”

“Ha ha. The truth is that it’s a lot harder to defend than it is to attack. If you make one mistake, Litvinchuk and his goons will have you. You have to be perfect. They need to find one imperfection.”

“You make it sound like we should be attacking.”

I stopped walking. Yeah, of course that was what we should be doing. Not just playing around at the edges, pitting one adversary against another with false-flag emails—we should be doing a full-court disruption to their whole network, shutting down their comms when they needed it the most, infecting their phones and servers with malware, making a copy of everything they said and did and siphoning it off to a leaks site on the darknet that we’d unveil at the worst possible moment.

I checked my phone. Nearly fifteen minutes had gone by.

“I think you should,” I said. “But once you do, the game will change. Once they know that you’re completely inside their network, they’ll have two choices: turn and run or crush you like bugs. I think they’ll go for option two.”

“Masha.” My name sounded weird and natural at the same time when she said it. It was a Russian name, once upon a time, and there were Borises in my ancestry stretching back to the Ashkenaz diaspora. Not just Jews, either: in the old photos, my grandmother looked like a Cossack in drag. Cheekbones like snowplows, eyes tilted like a Tolkien elf. I turned to stare at her. “Masha, we are not inside their network. You are.”


“Oh.” It was true, of course. I’d taught them a little (“teach a woman to phish . . .”) but if I packed up and left, as I was scheduled to do in two weeks, they’d be sitting ducks.

“I could provide remote support,” I said. “We’ll encrypt emails, I’ll send you the best stuff.”

She shook her head. “You can’t be our savior, Masha. We need to save ourselves. Look at them,” she said, and pointed.

It was the painters, the Colorful Revolutionaries, who took their inspiration from those nuts in Macedonia who’d gone around splashing all the public monuments and government buildings with brightly colored paint. Long after the “revolutionaries” had been chased away or arrested, the paint remained. It had built up a lot of hope (and made a ton of money for Chinese power-washer manufacturers). In Macedonia, “vandalism” was a misdemeanor and the worst they could do to you is give you a ticket for it. Slovstakia’s parliament hadn’t hesitated to make vandalism a felony, of course. They’d watched Macedonia just as closely as their citizens had.

Slovstakia’s painters had perfected the color wars, loading their slings with cheap latex balloons filled with different colors of long-lasting paint, swollen eggs they whirled in a blur over their heads before releasing them in flight, arcing toward their targets. It was like Jackson Pollock versus Goliath.

Like all the radical cells, they did their own thing, separate from Kriztina and her group. No one was sure where they’d show up or what they’d do when they got there. Litvinchuk had a fat file on known and suspected members, and I’d toyed with joining them when I got to Slovstakia, before deciding that they were too low-tech for me to work with. You couldn’t deny that they were effective: they’d been working their way along the top row of windows, egging each other on with feats of breathtaking long-distance accuracy, bull’s-eyeing each window in succession from left to right. The cops below them on the line, behind their shields and faceplates, flinched every time one of those bright balloons arced over their heads. The floodlights caught the colored mist that spread out from each bursting bladder, and I imagined that it was powdercoating the cops underneath in a rainbow of paint and glitter. Glitter was the pubic lice of the Colorful Revolutionaries, spreading inexorably through even the slightest glancing contact, impossible to be rid of.

The cops. I checked the time on my phone again. It had been sixteen minutes since I’d sent that email to Litvinchuk and there was no sign of the chaos that was supposed to ensue. Shit.

“I think we’ve got to find a place to sit down and plug in my laptop again,” I said, tilting my head at the cops.



We looked around for a place to sit. There’d been benches in the square, two administrations ago. Then the first wave of protests hit, mild ones by day, that involved thousands of people sitting politely in the square on every single bench, eating ice cream. There was no law against eating ice cream, and you’re not loitering if you’re sitting in a designated sitting zone. The last act of the old prime minister—long since deposed after a no-confidence vote and a midnight flight in the presidential jet loaded with bales of paper euros, so much of it that they burned out six bill-counting machines before giving up and weighing it by the ton to estimate its value—had been to remove all the benches and replace them with waist-high “leaning benches” that tilted at a seventy-degree angle. That’ll teach those ice-cream-eating motherfuckers!

But there wasn’t anywhere to sit, so that naughty old Boris had the last laugh, I guess.

“Here,” Kriztina said, taking off her coat, leaving her in nothing but an oversized sweater that made her look even tinier and younger and more vulnerable. She folded the coat and set it down on a clean-ish patch of asphalt.

“You’re such a martyr.” I settled down onto it and dug in my bag for my phone. “And thank you.” Before I had my lid up, there was a commotion from the police line. A flying squad in Vader-chic riot gear had emerged from the parliament building with guns at the ready, and they now stood behind the line of rank-and-file cops, barking orders. “Holy shit.” I put my laptop away and Kriztina pulled me and her coat from the ground. Everyone in the crowd was holding up a phone to capture the commotion; the clever ones had the phones mounted backward on long, telescoping selfie sticks that towered over the crowd.

“I guess Litvinchuk got the email, huh?”

People were streaming past in all directions now, jostling us. The guns the new goons were pointing at their police colleagues were also pointed into the crowd. Any shots that missed (or pierced, I suppose) those cops would be headed straight at us. The crowd was sorting itself into a giant V shape with a clear space behind the police line, protesters crammed in on the side, selfie sticks and phones going like crazy.

We were also crammed in with the crowd, because Kriztina had all but lifted me off my feet and dragged me out of the potential line of fire.

It was a tense standoff. The cops were shouting at the goons, the goons were shouting at the cops, gun muzzles were out. One of the Colorful Revolutionaries stepped out into the empty V of space, a girl barely five feet tall, with that telling coltishness of early adolescence, and fitted a paint balloon to the pocket of her sling. She began to spin. The crowd held its breath, then someone shouted something that I semi-translated as “Don’t do it, you idiot,” in a voice that was half-hysterical twitter. The girl’s eyes were narrowed in concentration and the sling whirled around her head, its whistle cutting through the crowd noise, and she bared her teeth and grunted like a shot-putter as she let it fly, and it flew true, the crowd turning as one to watch it arc through the cold air and the harsh LED light to spatter, perfect dead center, on the ass of one of the riot cops. She pumped her fist and dove for the safety of the crowd as the cop spun with a yelp and instinctively reached for his besplattered ass—then brought his hands unbelieving to his eyes, the banana-yellow glitter paint sparkling on his Kevlar gloves. The goons behind him had, as one, aimed their guns at him and I swear I could see their fingers tightening on the triggers—but miraculously, none of them shot this dumb Boris fuck in the back and sent his lungs sailing over the square. When the paint-spattered cop went for his gun, his comrade had the presence of mind to slap it out of his hand, and it skated across the icy square toward the crowd, skittering and then gliding, revolving slowly.

There followed one of those don’t-know-whether-to-shit-or-go-blind silences as everyone—protesters, cops, elite goons, and let’s not forget the neo-Nazi skinheads—contemplated their next course of action.

The leader of Litvinchuk’s goons was faster than the rest of us. He barked an order and his boys all settled their muzzles back into an even distribution across the police lines, and the cops re-formed themselves back into an uneasy line, facing them. The chief goon barked out names—the names we’d provided—and pulled officers out of their line, one at a time, cuffed them, and led them away.

When the first one went, the crowd’s curiosity, already close to peak, blew through all its limits. But then as more and more were led away, that curiosity and the insistent buzz of people narrating the action into their phones reached a feverish intensity.

By the time it was done, half the cops on the line were gone. A few of the goons moved to fill in the empty spaces, standing shoulder to shoulder with the cops they’d just been pointing their guns at. The remaining cops were more freaked out than the crowd. I looked around for the neo-Nazis, easy enough to spot—skinhead uniforms, always clumped together, always glaring at anyone who glanced their way, always with cans of beer—and couldn’t spot them at first. Ah, there they were, way at the back, talking urgently among themselves, waving their hands, even shoving each other. They must have been in a fury: ready to rush the lines, keyed up for serious out-of-control violence, now trying to master all that psycho energy. Some were doubtless considering the short numbers on the police line and wondering if they could break through even without turncoats ready to help them with it; the others likely remembering the savage reputation of Litvinchuk’s private enforcers, the country’s most fearsome torturers and disappearers of political enemies, the only force whose pay was never delayed, let alone cut.

Alcohol is a hell of a drug. The pinhead who broke free of his friends was so drunk he was practically horizontal, not so much running as failing to completely fall, but his klaxon was working and he opened his big dumb mouth wide enough to let out all the drunksound that was begging to be free. His war-yodel drew the attention of everyone in the square, and he had that nice, big open V-shaped empty space to charge through, holding his piece of rebar up in one hand like a villager with a pitchfork, heading straight for the gun that had gone skittering away.

The leader of the goon squad shouted an instruction at him, just once, loud enough to be heard over the drunkspeak. Then, goon-prime tipped a finger at one of his men, who raised his rifle, aimed, and blew the Nazi’s head off with an expanding round that sent bone fragments and chunks of brain out in a fan behind him.

One thousand camera-phone eyes captured the scene from every angle.

The first scream—a dude, somewhere behind me—was quickly joined by more. Someone jostled me, then again, harder, and then hard enough that I went down on one knee, Kriztina hauling me back up to my feet with her tiny, strong hands. “Thanks,” I managed, before we were swept up by more running bodies, having to run and push ourselves just to keep from being trampled.

Then we couldn’t hear the screaming anymore, not over the sound-weapons that the cops had switched on. These sonic cannons combined very loud sound with very low sounds with gut-twisting efficacy, literally making you feel like you were about to shit yourself even as your ears shut down. The crowd was virtually immobilized as people froze and twisted and covered their ears. After a pitiless interval, the cannons finally switched off, leaving a post-concert whine ringing behind them, the death throes of our inner ear hairs.

I couldn’t see the cops anymore—too many bodies, the neat V erased by a tangle of people, many weeping or holding their torsos or heads. A loud pronouncement, too distorted to make out.

“What did he say?” I said to Kriztina, making sure she could see my face, read my lips.

“He wants us to go.” Her voice sounded like it was coming from the bottom of a well.

“I want to go,” I said.

She nodded. We looked around for the rest of our group, but it was hopeless. People were milling about aimlessly, crying or searching for their friends. I pulled out my phone. No signal. In situations like this, the cops are always trying to strike a delicate balance between keeping the internet service turned on (and spying on everyone) and turning it off (and preventing everyone from coordinating). I guessed that they’d decided they had all the data they needed on the protesters to find them later, so now it was time to get rid of them. There were some who weren’t going to be moving under their own power—people who had been hurt in the stampede and were lying on the frozen cobblestones, either alone or, if they were lucky, in the arms of someone. I remembered all those families I’d seen, all those kids.

Some people get overwhelmed by situations like that. I’ve seen it happen and I understand it. I’m not one of those people, though. My limbic system— the fight-or-flight response—and I are on speaking terms, but we’ve got an arrangement: it doesn’t bother me and I won’t bother it. So what I felt was urgency to get gone, but not fear. I felt for the people lying on the ground, but a foreigner who couldn’t speak their language was going to be less than useless compared to someone who knew where the hospital was and how to talk to the paramedics, and that someone would reach them soon enough.

Kriztina, though, was in rough shape. Her face was so bloodless it was almost green, and her teeth were chattering. Probably a little shock, plus the temperature had dropped another ten degrees. “Come on.” I pulled her toward the ring road around the square, toward a road I recognized as leading toward my hotel. It would be safe.

Kriztina let me lead her along for a few minutes, at first with a big group of crying and scared (former) protesters, then in a thinner and thinner crowd as we moved toward the business district and the Sofitel.

Look: I’m a compartmentalizer. It’s my superpower. Part of me had just watched a guy get killed, sorta-kinda because of me, and had been in a stampede. Part of me knew that I’d done something insanely risky that night, something that could cost me my job and worse. Part of me, though, was thinking about the fact that I was responsible for this little sidekick-slash-sister of mine, a hobby that had metastasized into a moral duty, and that she was as keyed up and adrenalized as I was. Neither of our phones was working, and if Litvinchuk held true to form, they’d stay dead for hours, meaning that no one could get through to us or vice versa for the foreseeable, which meant I’d have to keep her out of trouble. I had a hotel room of my own and the turndown service would have left us chocolates to replenish our blood sugar after that intense experience, which was good first-aid protocol, so it was practically medical advice that said we would have to go into my hotel room and get the fuck away from all that danger that she doubtless wanted to drag me back into.

I took her hand in mine as we turned into the Sofitel’s road, and I felt her trembling. I hoped that was cold, or excitement, because trauma was going to be a pain in the ass. The Sofitel had two big Borises out front with semiautos and body armor. They glared at us as we approached. I glared back. Glaring isn’t personal with Borises: they see smiling as a sign of insincerity.

I held out my room key. One of them took it from me without a word and touched it to an NFC reader on his belt. It lit up green. He nodded. “Welcome.”

I began to lead Kriztina through the door, but Boris #2 put a hand on her shoulder and held a hand out, presumably for a key, though I’m guessing a bribe would have worked just as well. “She’s with me,” I said. Boris 2 pretended he didn’t understand. I took the liberty of moving his hand—I’m no black belt, but I’ve always found jujitsu more relaxing than yoga—and yanking Kriztina into the hotel. I wasn’t in the mood for this. The guard shouted at us and followed us in, slinging his gun and reaching for me. I was not in the mood for this. I sent him sprawling on his ass, and by this time, the check-in clerk had come out from behind her desk. She and I had already crossed swords when I’d checked in and they hadn’t wanted to bill the room to the corporate booker, demanding a credit card from me. I don’t do reimbursement, and so I’d just flipped down the seat attachment on my suitcase and opened my laptop and started answering email, studiously ignoring her until such time as her boss’s boss had spoken to my boss and sorted things out. Sitting on the suitcase’s cool little seat instead of one of the lobby sofas weirded out everyone who came in or out of the lobby, as intended, and kept things moving along.

She recognized me right away and, I’m sure, realized that I would be the world’s biggest pain in the ass if she got in my way.

“My friend is coming with me.”

“She must be on the register.”

“No,” I said, and dragged Kriztina past her to the elevators.

She dogged our heels. “I’m sorry, madam, but all guests have to be on the register, it is a regulation.”

“I’ll add her to the register later, when I check out.”

She followed us into the elevator. “Madam—”

“Does the regulation say when guests have to be added to the register?”

“Madam, it’s our policy—”

“Good, we can discuss the policy in the morning. Good night.”

I felt her eyes burning into my back from the closing elevator doors as I dragged Kriztina toward my room door. She wasn’t going to evict me in the middle of the night, not with all the cops busy somewhere else. I was willing to bet that if I were a dude coming back to the Sofitel late at night with a couple of underage hookers, no one would bat an eye, state of emergency or no state of emergency. But let a lady try and show some sisterly solidarity, and suddenly it was ENFORCE ALL THE POLICIES. Fuck that.

Speaking of which.

In the room, door closed, I kicked my shoes, coat, hat, and gloves into a pile at the bottom of the closet, then peeled out of my thermal tights down to the regular tights underneath them. Kriztina stood in the doorway, leaning against the hotel-room door. She was stare-y and shaking. Mild shock. I got her a cola out of the minibar, wrapped her hand around it.

“Drink, then get some layers off. It’s been an intense night.” I waited until she’d swigged, then took the can from her, set it down, and helped her get her coat off. “Boots, too, don’t want slush on my carpet.” She bent and took them off because her mama raised her right. I sat her on the end of the bed and put the can back into her hand. “Let’s see what Litvinchuk made of all that, shall we?” I got my laptop out of my bag and sat next to her, turning my body to block her view when I typed my passwords. Litvinchuk’s emails were a mix of English and Boris and I speed-read them with Kriztina over my shoulder. They’d taken forty-one cops into custody, and there had been more than fifty arrests of demonstrators as we left the square. The IMSI catchers had conducted a census of all the phones in the neighborhood that night and the back-end had opened tickets with the Ministry of Communications to pull all the calling records to produce a social graph and mark out highly connected nodes, then run an information-cascade analysis: that was a cute machinelearning trick that tried to identify leaders—formal or informal—by looking at people whose communications produced “cascades” of activity: Alice calls Bob, who then calls Carol and Dan and Eve and Faith, so Alice is the boss and Bob is her lieutenant and love-slave.

The best part of these information cascades was that they produced “actionable intelligence”—go and round up all these Alices and you’ll seriously disrupt your adversaries. And since Alice may not even know that she’s the boss—she might just be a “highly connected thought leader” whose words inspired her minions without her having formal authority, you could never prove that you had the wrong gal, which meant you could assume you had the right gal, which meant that companies like Xoth could show that they were adding value to your little authoritarian basket-case republic.

I searched through the records for my number, Kriztina’s, and then the numbers for her radical cell. The anti-Stingray wares we were running should have been able to spoof the IMSI catchers and send back random identities that passed checksum verification so that software wouldn’t be able to tell straight off that the idents were faked. It seemed to have worked: the countermeasure gave a random IMSI to anything it thought was a spoofer, and generated new random numbers for each interaction. Of the tens of thousands of numbers the cops had captured that night, hundreds would be fake.

I paged through the arrest records quickly, letting Kriztina scan the names. She sucked air between her teeth a few times, as she recognized some of her pals who’d be rotting in police dungeons by now, or maybe getting a cattleprod enema, this being a favored tactic of Litvinchuk’s human intelligence specialists. It was a rough world out there—the sooner young Kriztina learned to compartmentalize, the better.

I resolved to give her some training.

I folded down my laptop and stuck it on the desk, then turned to face her. “Kriztina, your side could have been slaughtered tonight. You know that, right?”

She looked away.

“Come on, kid, stay with me. That could have been a bloodbath. You said it yourself, without me you won’t be inside their networks anymore.”

She glared at me, an angry Slavic elf. “So what do you want? I can’t become a superhacker in two weeks.”

“No, you absolutely can’t. That’s why you and your little group need to stand down.”

“What the fuck are you talking about?” When she was upset, her accent got stronger. “Fuck” became “fahkh” with a throat-rasp at the end.

“I’m talking about facing reality. The reality is that Litvinchuk and his friends there are in a dangerous state. On the one hand, a single good push could knock them over, you saw that tonight. On the other hand, they know how close they are to collapse and they’re not fucking around. The struggle doesn’t need you. Find somewhere to go, deep underground, another country, I don’t care. Wait—six months, a year—and the government will fall of its own accord.”

She went from confused to furious in an instant and started shivering harder than she had out there in the cold.

“And who will push it over?”

“Someone else.”

“What will become of them?”

I shrugged, feeling like a Boris. “If they’re lucky, they’ll survive.”

“Why them and not me?”

“Because you’re smarter than that.”

She glared at me and then slowly, deliberately, stood and began to dress, putting on her layers.

“Where are you going?”

“My friends are out there. They need help. When someone needs help, I go to them. I don’t run away.”

I wasn’t going to beg. Go ahead, I thought. Not my trouble. I put her in a compartment.

The door closed behind her. The phone rang.

I yanked it out of the wall. It would be the desk clerk, pissed off about Kriztina still, and she could go fuck herself.

My phone rang.

It was in do-not-disturb mode, but there was a small number of phone numbers it was programmed to override on. Embarrassingly, one of those was Marcus Yallow’s. But it wasn’t him, of course. He didn’t even have that number (but if I ever gave it to him, I wanted to make sure he could get through, because I’m an idiot).

“Masha, we have to talk. Lobby in five minutes. A car is coming.”

Ilsa, She-Wolf of the SS, can turn on the ice water on demand.

I ran a washcloth under the tap and did a bits-and-pits wipe-down worthy of any Frenchwoman, yanked out the drawer where I’d stuffed all my clothes and dumped it onto the bed, found underwear, a clean T-shirt from a tech conference in Qatar, jeans. My thermal tights were too gross to bother with and I was pretty sure I wouldn’t be logging any outdoor hours.

I compartmentalize, but that doesn’t mean I wasn’t aware that something terrible was about to happen. Truth be told, I’d been expecting that call for months, since the first time I’d done a surveillance appliance installment and then walked straight to the first group of dissidents I could find and explained how to defeat it. Quoting 1984 in my line of work is a ridiculous cliché, but George Orwell always got me with this line, “You know what is in Room 101, Winston. Everyone knows what is in Room 101.” I’d known since day one that it would end with someone like Ilsa, over something like this.

Orwell named names, you know that? He fell in love with a British spy, much younger than him, while he was dying of TB and bitter over the Reds who’d betrayed his faction during the Spanish Civil War and shot him in the throat, so he made a list of all the people who trusted him, but whom he didn’t trust, wrote it on a piece of paper in his own handwriting, and gave it to this spook lady. As far as anyone can tell, she never acted on it.

Orwell must have been one hell of a compartmentalizer, is what I’m saying.


In the elevator, I made sure my phone and laptop were powered down with their encrypted drives unmounted. Then I checked my hair in the mirror—it looked, basically, like I’d just been drinking my face off—and remembered that I’d forgotten to put on any eye makeup. Ilsa always looked like she’d come from a salon, and wore these severe suit-y numbers that looked like they’d been made in East Germany and then tailored in Hong Kong by a master couturier. I liked the contrast. My Mr. Robot hoodie/jeans drag made a statement: I am not a lifer, I am the talent, I can’t be easily replaced, and so I can wear whatever I want.

She was in the lobby, standing by the bar, looking at her phone. She slipped it inside her handbag—Faraday fabric; I’d snuck a feel once when we were going through airport security together—and zipped it.

“Ms. Maximow.”

“Ms. Netzke.” Ilsa’s real (ish) name: Herthe Netzke (that was what her ID said, anyway).


The car was waiting out front. No driver. She drove. Better opsec, no need to trust someone not to repeat what they overheard.

“Ms. Maximow.”


She pulled the car over. We’d only gone a couple blocks. It was very cold out and weird colors swirled through the fog as the bubble-lights of the police checkpoints a few blocks away filtered back to us.

She looked at me. She never Botoxed, I can tell you that. Years in the hardsmoking Soviet era had bequeathed her with a set of wrinkles of magnificent fracticality, wrinkles in the wrinkles, which she finished off with a short, severe iron-gray haircut like Judi Dench as a Marine commander. She had one of those German noses that looked like a ski jump, and hazel eyes that were big and wide-set, eyebrows full and expressive. Her dangling old-lady lobes were pierced, but I never saw her wear anything in them.

She had the terrible gift of fixing her attention, cobra-style, pinning you under it. Even with the lights off inside the car, I felt her stare. She was waiting for me to talk. I would outwait her. This game was easy, and I’d already learned to play. I was better than her at it.

“It was very foolish.”

Foolish was about as emphatic as she got, and it was reserved for monumental fuckups.

I shrugged. My heart thudded. I kept my face cool. I’d been slapped around before, and even worse, but this was scarier in its own weird way. Maybe knowing that Ilsa had overseen so many executions, so many nights in numberless cells . . . All the bad dudes I’d ever met were just boys LARPing GI Joe: she was the real deal. Far as I could tell, there was nothing underneath Ilsa but more Ilsa. It was amazing. I wanted to be like that someday. In one of my compartments, anyway. In another compartment, I hated her and myself for that.

“You realize that you’re compromised now.”

I shrugged. Compromised is only a few letters away from compartmentalized. “You’re overreacting. You think that the next autocrat looking to hire Xoth is going to call Litvinchuk for a reference?”

“Why wouldn’t he?”

I hadn’t really thought about that. It’s not like there was a LinkedIn for dictators where they all hung out and traded notes on cyberwar contractors—as far as I knew, anyway.

“Well, for one thing, I think there’s a pretty good chance he’ll be dead in a ditch.”

She considered it with Teutonic cool. “Even so. His own people, his contractors, they will get out. There’s also the chance that a reporter will publish—”

“No there isn’t.” There hadn’t been a functional press in Slovstakia in eight years. They rated a part-time stringer from RT who reported on a neighboring basket-case republic, a dissident who published anonymously on Global Voices, and the state broadcaster, the sole TV Slovstakian channel on the air, rebranded as “The Choice.” Borises are not without humor.

“Probably not. But it’s not a domestic story. If anyone knew about this, it would be news in many countries. Everywhere Xoth operates, and then some.”

“Better make sure I don’t tell it, then.”

Boy, was that the wrong thing to say. “Masha, you’re out.”

“Come on, I was just—”

“You can’t unsay that. This was going to be a disciplinary meeting. Now it’s a termination. You made your choice.” She was not without tenderness.

“I’m sorry.”

“I’m sure you are. I wish you the best in your future endeavors. Needless to say, there will be no references.”

My stupid tears welled up in my stupid eyes. I put them in their own compartment, but they were slippery. “Herthe—”

If it wasn’t sympathy in her eyes, it was a perfect fake. The wrinkles gave her a lot of expressive range. I think she practiced with them in front of a mirror. “Masha, I know you. I used to be you. The things you’re doing, you’re trying to destroy yourself. It’s not that you threatened Xoth, it’s that the threat shows how far gone you are. If you’re going to crash and burn, my job is to make sure you do it far from Xoth and the rest of us.”

“Herthe, I swear, it was just a smartass response. I haven’t been sleeping so well. Why don’t I get a few hours’ sleep, why don’t we both get a good night, and start over?”

“Disbelief, denial, bargaining. Guilt and anger are next. Then depression and hope. Good luck, Masha.” She popped the locks.

She was good at this. I was about to leave the car when I thought to ask, “Severance? Notice?”

“This kind of job doesn’t fall under those sorts of rules. Besides, you’re being terminated with cause. You may keep your equipment and we will pay your hotel bill for the night. You have your outbound plane ticket.”

I did. Xoth’s travel agent always booked full/flexible fares and seemed to get stellar deals on them, the kind of thing you need an IATA membership and a backdoor password to get normally. Hell, I could probably even cash it in at the airport ticket desk for euros, dollars, or Swiss francs.

I shivered on the street as Herthe’s car pulled away.

I grasped for a landmark to orient myself, and found a familiar church spire. I was only steps from the Danube Bar Resto. It was 2:30 in the morning, which meant that the bar would just be closing, unless it already had.

I hugged myself and pulled my hood up. I still had my dazzle makeup on and it made my face itch. I could taste it on my lips. I rounded the corner and slowed down. The Bar Resto still had its lights on, and I could see shadows moving behind its plate glass. I was about to hurry over when something stopped me, I wasn’t sure what. I looked around again more carefully. There had been a kind of ambient state of emergency on the streets on the way over, the fog and night sky reflecting back the bubble-lights on the tops of the police cars and roadblock fences, a kind of diffuse light show.

Now the streets were dark. Apart from the Bar Resto’s window, there was no light at all. Black against the dim, silhouettes moved within the parked cars lining the street.

I turned on my heel and ran, and heard opening car doors behind me, then shouts, then running feet, then the sirens and lights I’d been missing broke the night wide open. The noise was incredible and as I cornered and cornered again, I felt the between-the-shoulders itch of an inbound truncheon—or bullet.

I skidded to a halt down one of the tiny alleys that lined the old town, barely wider than my shoulders. I consciously slowed my breathing and peered down the alley to double-check that it wasn’t a dead end, then used the shiny black screen of my phone as a mirror to peek around the corner. Not even a glimmer. I took a few more breaths, then eased out of the alley, listening intently.

Distant shouts and sirens, from the direction of Bar Resto. Nothing from nearby. I formulated a hypothesis: the people in the cars—secret police and a goon squad—hadn’t been staking me out, they’d been staking out the Bar Resto; Litvinchuk or someone beneath him had decided that after tonight, they were going to clean house. I reversed my coat to the white side and detached the hood before walking purposefully back toward the Bar Resto, looking as much as possible like someone going somewhere.

The sounds grew louder—shouts and breaking glass. I stopped at the final corner, tucked my phone into my coat’s breast pocket with the lens peeking out and recording, then stepped out onto the sidewalk and glanced quickly down the street, letting the camera get a good look, taking a good look myself.

Chaos, people struggling under cops, the window of the Bar Resto shattered and in shards. I kept my pace even as I crossed to the opposite corner, someone going somewhere, someone, somewhere, my shield of invisibility and respectability. I didn’t recognize anyone at this distance, at this speed, in this light. But statistically, I knew some of those people being dragged into the yawning maw of those white cargo vans, lined with steel benches and shackles.

I was almost to the other side when the blast hit. Before I knew it, I was on my belly with my hands over my head, feeling the deep-frozen street through the legs of my jeans and in my cheek. The night was white, then orange, then I felt and heard the sound, a whump that never gets easier, no matter how often you’ve felt it. It winded me, made me feel like a huge hand was squeezing me from every side, like the blood was being crushed out of my torso and up into my head, like the worst sinus headache ever. I think I blacked out, possibly more than once. The moment seemed to go on a lot longer than it had any business doing.

I came to my knees and barfed, trying to get it all up and out as quickly as I could, looking around, checking whether anyone was coming for me, ready to run from another explosion. The Bar Resto and the apartments over it were mostly rubble, except for a cross section that rose three and a half stories, like an architectural rendering: bathtub, stairwell, kitchen. It was so dark I couldn’t tell if anyone was up there, or under the mounded rubble at its base.

I rose and my head spun and I just managed to turn my face before I barfed again, getting it on my boots instead of down my front. I took two steps toward the blast, then heard the sirens over the ringing in my ears, understood that the bouncing emergency lights on the fog were getting closer, and so I made myself walk—walk, dammit, Masha, not like a fucking drunk, come on—toward the hotel. I didn’t think anyone was after me, personally, at this point. Ilsa wouldn’t tell Litvinchuk that I was fired, because to do that she’d have to tell him why. It would all be very quiet. That’s how Xoth did things. Discretion was their brand.

Emergencies are weird. Three blocks from the blast, it was as if none of it had happened. I tasted blood and realized I had a nosebleed, which I wiped at with my glove. Was I staggering? I was. Something not quite right with my inner ear just yet. Give it time.

Two more blocks and I saw the entrance of the Sofitel. The guards were there and they remembered me.



“I am staying here.”

“Yes, but—”

“I am a guest here.”


“Get out of my way.” He looked at me.

“Please. I’m hurt and need to go to my room to clean up.”

No one does stony-faced like a Boris.

“I’m checking out.” I said this loud enough to attract the attention of the woman behind the counter. She didn’t bother with stony, went straight to scowl. But she said something into the mic pinned to her lapel and the guard listened to his earpiece and let me through.

I didn’t glance her way as I crossed the lobby but felt her eyeballs boring into my back the whole way.

The elevator mirror lied to me. No one could look that terrible. I unzipped the Faraday pocket in my coat and withdrew my room-key, touched in, zipped it back in as I opened the door.

Showering, I nearly fell in the tub, but caught myself. My legs and armpits needed a shave and I didn’t have a razor. Fuck it. I got good at fast showers when I was doing my time in Central America with Zyz, but I’d had shorter hair then. I’d get it chopped as soon as I found a place to settle.


Excerpted from Attack Surface, copyright © 2020 by Cory Doctorow


Back to the top of the page

1 Comment

This post is closed for comments.

Our Privacy Notice has been updated to explain how we use cookies, which you accept by continuing to use this website. To withdraw your consent, see Your Choices.