The nuli added a second line to its digital display: “Bottled Water—$9.45.”
“Whoa,” said Marisa, “just tap water, please—take that off there.”
“The city of Los Angeles has designated today as a Red Drinking Day in this neighborhood,” said the nuli’s soft, feminine voice. “At Solipsis Cafe we care about our customers’ health, which is why we have a policy never to—”
“Fine,” said Marisa. It was just her luck that she’d be downtown on what was probably its one Red Drinking Day this month. “No water, just the salad. Nothing else.” The water disappeared from the display, and the nuli floated away to the next customer. “And extra dressing!” Marisa shouted after it, but the charge for the salad had already appeared in her djinni display, and she just had to hope that extra dressing was part of it. She blinked on the charge icon, transferring funds from her account, and waited.
“The dressing’s the best part,” she grumbled.
She looked out the window at the giant KT Sigan building across the street. Was she really ready to do this? She’d better be—she’d just invested sixty dollars in a salad. She couldn’t afford a second try. Marisa blinked open her Bowie coding program, reviewed her virus one last time, and then compiled it into a hidden executable and dumped it into her Djinni Activity Log. If everything worked the way it was supposed to, the Sigan tech support people would pull the log, and the virus would do the rest without being detected. If it didn’t work the way it was supposed to . . . well, they’d catch her red-handed trying to plant a virus in an international megacorp’s private files. The punishments for that were, to put it lightly, severe.
“I’ve got to find Grendel,” she whispered. “This is the only way.”
The woman at the next table shrieked in delight over something the man sitting with her said; they smiled at each other, cooing softly and touching hands, and Marisa rolled her eyes and looked away—being careful, this time, not to scatter her djinni’s icons as she did so. It wasn’t that she hated the idea of two people in love—it was the opposite. She loved being in love. She loved staring into someone’s eyes and laughing at whatever random thing he said, as if it was the funniest thing anyone had ever said in the history of human interaction. Which was why it was so hard to watch it from the outside, flanked by a long trail of catastrophically failed relationships.
Lal had been the worst—it wasn’t every day you fell for a guy who betrayed you as profoundly as he had—but the competition for second place was fierce. Maybe David? Maybe José? And she couldn’t forget that cuate with the motorcycle, what was his name? Carlos? It served her right for dating a guy with her father’s name—she should have known he’d drive her into a rage eventually. All she wanted was a simple, wonderful, storybook relationship. Was that so hard?
Or maybe just a boyfriend who didn’t have a secret plan to destroy the entire city?
The couple at the next table launched a selfie nuli, and Marisa dropped her face into the palm of her hand. Now she’d be a side character in their life story forever: The Girl in the Background. If her salad hadn’t come at that exact moment, gently deposited on her table by a delivery nuli, she might have packed up and gone home. Instead she opened the plastic box, saw not one but two little cups of salad dressing, and smiled.
“At least the waiter nuli loves me,” she whispered. She opened one of the dressing cups and drizzled it out on the salad. “I love you too, little guy. Bring me three next time and I’ll start picking out china patterns.”
An icon popped up in her djinni: a text message from Pati. She sighed and blinked on it.
When can you help me learn binary? her little sister sent. The assignment’s due on Thursday, and that’s a day and a half away. How do you say one and a half in binary? It doesn’t make sense I HATE IT.
Marisa smiled and sent a quick response: I’ll help you tonight. She took a bite, savoring the incredible blend of flavors—she really needed to look up Solipsis online and see if they’d posted the recipe somewhere—and looked back out at the Sigan building. May as well get started. She followed the same steps any random Sigan customer would follow: she blinked open her djinni settings, found her net connection info, and blinked on the customer service number. It dialed, and she was in.
“Hello,” said another automated voice. “Welcome to KT Sigan, the world’s leading provider of networking and telecom services. How may we direct your call?” A menu scrolled across her vision, and she blinked on customer support. “Thank you,” said the voice. “Please wait just a moment while we connect you with customer support.”
She took another bite of salad, and had to swallow it in a rush when the support guy answered almost immediately. “Hi, Ms. Car-nessicka,” he said, horribly mispronouncing her name. “My name is Pablo Nakamoto, and I’ll be handling your call today.”
Marisa had to bite down on her tongue to keep from laughing—this was the same guy she’d taken the security code from. Poor guy, she thought. If Sigan ever discovered the breach down the line, his name was going to be all over it.
“Please be aware that this call may be recorded for quality assurance purposes,” said Pablo. “How can I help you today?”
“Hi,” she said, trying to sound confident but naive. “I’ve been having some trouble with my connection. Could you take a look at it?” The other people in the cafe ignored her; most of them were having mumbled conversations on their djinnis as well. Only the loving couple was paying attention to the real world, and they were ignoring Marisa completely.
She shook her head and concentrated on her phone call.
“Of course,” said Pablo, his voice obsequious and servile. “I’m very sorry to hear that you’ve been having trouble, and I’ll do everything I can to fix it. Let me see here . . .” His voice trailed off as he did something on his end, reviewing what little data he had on her usage. None of it, she hoped, would be incriminating in itself—she was always careful to hide her more illicit internet activities from prying eyes. After a moment he spoke again. “I’m not seeing any significant losses of service or signal in the Mirador area,” he said. “Could you tell me more specifically what trouble you’ve been having?”
“Every now and then certain websites get really slow,” said Marisa, fabricating a story as she spoke. “Like, really slow, for no reason. I play Overworld all the time, with no problems, but sometimes it can’t even handle Muffin Top, and I figure that can’t be normal. You know Muffin Top? That game with all the little . . . muffin tops?” Social hacking was not her area of expertise; she needed to get him into the Djinni Activity Log and be done with it. “None of my friends or family have had the same issue, so I think it’s got to be local to me, maybe something in my settings.”
“I’m so sorry to hear that you’ve been having that problem, and I know how frustrating it can be,” he said again. Marisa figured he must have been reading off a script. “What I’d like to do next is pull your Djinni Activity Log, which will show me exactly what’s been going on with your signal. Is that okay?”
There it was. “That sounds great,” she said. “Thanks for your help.”
“Thank you,” said Pablo. “That’s very nice of you to say. I’ll start the download now, and while I do I also want to let you know that KT Sigan is a true partner to every community that embraces our service.” He continued with his “stall for time” speech while the download counter in Marisa’s vision slowly counted out the percents. She hadn’t realized her DAL would be so big, but she supposed it made sense—she was on her djinni, surfing the net, practically every waking minute.
What had she just permitted him to look at? The thought flashed through her mind, but if there was something to be worried about, it was already too late.
“There we go,” said Pablo, as the DAL transfer completed. “Now, if you’ll give me just a moment to analyze this data, I’ll see if we can find the source of your troubles. Do you mind if I put you on hold?”
“Go ahead,??
? said Marisa.
“Thank you,” said Pablo. He put her on hold, and an hourglass icon appeared in the corner of her vision, surrounded by the words “Your call is important to us.” She watched it for a moment, laughed, and then ended the call. When he eventually came back he’d probably just assume that she’d lost the connection. She took another bite of her salad and moved on to the next phase of the plan.
At this very moment, the virus was burrowing into the Sigan security center and fabricating a fake ID for Marisa to use to log in. She had no way of knowing when it was done; it wouldn’t send her a message or an alert, it would simply do its job and delete itself. She needed to give it time, and while she waited she activated another program inside of her own djinni, hiding all of her identifying information and rendering her completely anonymous to anyone who tried to scan her, or her connection, digitally. Immediately another nuli swarmed her table, thinking she was a new customer and rushing to clear what was left on the table, but she waved it away. This reaction gave her courage: the stealth program was working. Now she activated the final piece of anonymity, connecting to the Solipsis Cafe Wi-Fi instead of linking to Sigan directly—that was why, in the end, she was doing this here instead of at home. If anyone did happen to find her inside the network, and got suspicious enough to actually trace the signal, they’d find the cafe instead of her, with no ID or GPS data to give her away. As far as they would know, it could be anyone here.
She took another few bites of salad, too nervous to really enjoy them, and then connected to Sigan’s private network. She tried the fake ID the virus should have set up for her . . .
. . . Órale!
Marisa snapped her fingers, pointing at the ceiling with a triumphant whoop. A woman at another table glanced at her, but Marisa ignored her; a random shout from a girl on a djinni could mean almost anything. Just in case, she muttered, “One more turret to go,” to give the impression that she was watching an Overworld match. Then she silently continued her hack.
She activated one of her Goblins—the one that copied the user list, deleted her presence from it, and redirected any other users to the cleaned-up copy. This would keep her completely invisible from any IT personnel who happened to be patrolling the network, just as an added security measure. Once that was done she started exploring the system, following the branching paths of files and folders, learning how everything fit together and where any secrets might be hidden. It looked like Sigan used Gamdog 4.1, a pretty common data shell for big corporations, and one that Marisa was at least passingly familiar with. That was a stroke of luck. She found the folder for the Overworld tournament in the “Corporate Events” section, and the fancy party Chaewon and Sigan were throwing; she glanced through the party’s menu and some of the private emails, including a very strict order from Chaewon that one of the teams, called MotherBunny, was not to be invited or allowed in. Marisa wanted to read more, but she didn’t know how much time she had. She moved on, promising herself she would come back later if there was time.
She found an entire subsection of the network full of business plans for the coming year, and another from the in-house creative department, filled with draft after draft of upcoming ads and banners and sensovids. One section had what she assumed were customer pricing discussions, and another held meeting notes about a plan for a global corporate reorganization. Marisa was floating through a treasure trove of data, enough to make herself immensely wealthy if she leaked some key bits of it to Sigan’s competitors. She was more tempted than she cared to admit—she didn’t mind breaking in to private networks, but it was usually only for fun, or to accomplish some other goal. Actually stealing anything, real corporate espionage stuff, was another thing entirely.
But then, so was her family losing their business and their home. Maybe she could justify it, just this once?
She shook her head. She was here for Grendel—that was her goal, and she had to keep her mind focused on that and not get distracted. Stealing data to get rich was something Omar would do; Marisa was only stealing data to finally learn the truth about her past. Her own family.
She clung to that slim philosophical distinction, and kept exploring the network.
What she needed were the client files: the lists of who bought telecom service from Sigan, and where they were located, and how she could find them. Once she could connect Grendel’s IP address to a consistent physical location, it would only be a matter of time before she found him in real life; she could threaten him, she could dox him, or if he turned out to be close enough, she could even visit him in person, tearing the information out of him by hand. How much did he really know? Maybe a demonstration of skill would be enough: I found you, I’ve passed your little hacker test, now tell me what I need to know. Maybe she’d need more, but his location was the first step, and she searched the network for it as closely and carefully as possible.
As she explored the private network, she found references to the client database, but not the database itself. Where was it? She kept hunting, tracing every path in the network, every server connection . . . nothing. She growled in frustration, pounding the table, and glanced at the same woman who’d looked at her before. She was looking again. Marisa grumbled something else about an imaginary Overworld game, and looked back at the map of the network. The client files simply weren’t there.
If all else fails, she told herself, read the manual. She went back to the IT section of the network and found the employee handbook, combing through it for some hint about where the client database might be hiding. Maybe they’d renamed it? That was a common enough security tactic, calling your core folders something nonstandard to help foil the more common viruses—if a virus was automated to attack the “client database,” it would skip right by something called the “monkey swingset” without causing any damage. Maybe she’d already passed over the database without recognizing it? She found the client section of the handbook, read through it as quickly as she could, and swore again. The client database wasn’t just renamed, and it wasn’t just buried under a deeper layer of network security. This was worse.
It was airgapped.
The client database, along with the company’s financial information, was completely disconnected from the rest of the network and the internet itself, 100 percent unreachable unless you physically entered the building, logged in to a specific workstation, and reached it from there.
“Toda la mierda en el mundo,” Marisa muttered, and when the woman at the next table looked over, Marisa shot her a glare with every ounce of pent-up rage she was feeling. “My team lost. Again!” The woman looked away quickly.
Marisa didn’t know what to do next. How was she supposed to find Grendel now? She looked around the cafe, half hoping some magical solution would materialize out of nowhere. She’d risked so much to get into the network, and for nothing. But, no, it wasn’t past tense: she was still risking something. She looked back at her Goblin, checking to make sure that no one had found her in the user list.
Except . . . she wasn’t in the user list.
Marisa frowned, staring at the djinni display. She knew she was logged in—she could see the network, she could move around in it—but the user list didn’t say she was logged in. She wondered if maybe she was looking at the wrong copy of the user list, the one her Goblin was erasing her from, but no—she had both lists open, and she wasn’t in either of them. The only way that would be possible was if she, too, was looking at a fake copy of the user list, being redirected by someone else. And the only way that was possible was if . . .
“There’s a second Goblin,” she whispered.
Somehow, against all odds, she was hacking into Sigan’s private network at the same time as another hacker, and he must have been using the same copy-and-redirect tactic that she was.
What else was he doing?
Marisa stared at the user list, trying to figure out how to contact the other hacker. Her own plan was a bust, but maybe this new guy had something she co
uld use? It was risky, but this whole thing was risky.
Maybe if she added a fake user to the list? Something like HeyICanSeeYou—something so obviously fake he couldn’t help but notice it. But then, so would the IT department, and sooner or later they’d investigate it. Was it worth the trouble? She didn’t even know what she’d say to the hacker if she got his attention—it wasn’t like he was going to just offer his help out of the goodness of his heart. She refreshed the user list, trying to convince herself to create a fake username, and her jaw dropped open. The other hacker had already created one:
YoureNotSupposedToBeHere
Marisa shook her head, stunned, then smirked and added a fake username of her own:
NeitherAreYou
She refreshed again, hoping for a response. Nothing. She realized she was holding her breath, and forced herself to breathe. She clenched her fingers into a fist, and refreshed the list one more time.
The old fake name had been replaced by a new one:
GetOutNow
Marisa shook her head; she wasn’t leaving without some answers, and she typed in a new name:
WhoAreYou
She refreshed the list, two, three, four times, desperate for an answer, and then there it was:
IJustTrashedTheirPaymentDatabaseGetOutNow
Almost instantly her Goblin beeped at her: someone was looking for her. She thought at first that the username conversation had attracted attention, and started to delete the fake names, but almost instantly she saw other alarms going off all through the system. She was logged in with full admin privileges, so she could see every alert, and whatever this other hacker had done had set all of them off. In seconds, the entire IT department started sweeping the system for anyone accessing the private servers. Marisa had been careful, but she wasn’t ready for this—she hadn’t bounced her signal, she hadn’t brought in the extra Goblins; she was completely exposed. She had to get out now.
She cut her connection, jumped up from her table, and ran.