120989.fb2 Avogadro Corp. - читать онлайн бесплатно полную версию книги . Страница 9

Avogadro Corp. - читать онлайн бесплатно полную версию книги . Страница 9

Chapter 8

Gene Keyes waited outside Maggie Reynolds’ office on the first business day of the New Year. He had spent the last ten days confirming his data and validating his conclusions. Well, he could be honest with himself. He had done all that in the first two days, and then spent eight days cooling his heels waiting for anyone in the damn company to get back from holiday vacation.

Gene glanced at his watch, saw that it was five minutes to eight, and resumed waiting with only the smallest of sighs. Maggie, a member of the Finance department, assigned to the Procurement group, had authorized several of the charges. So the first action he planned to take was to confirm the data with Maggie in person. He had brought his paper file showing the unusual expenditures: a thick accordion folder, nearly bursting. He wished he could have escalated the issue when he’d found it in the first place, but the established process for investigating these things required him to complete at least a first round of discussions with people who had handled the transactions.

At eight, he saw Maggie approaching carrying a coffee cup in one hand, with a large purse in her other. As she got closer, her face turned puzzled as she realized that Gene was waiting outside her office door.

“Hello?” she asked, turning it into a question. She paused outside the door.

“I’m Gene Keyes. You came to my office for help a few weeks ago.”

She nodded.

“I’m investigating some irregularities in purchase orders since I last saw you.”

“Oh.” She paused, still holding her coffee cup in one hand and purse dangling from the other. “Oh,” she said again, more sharply. “What can I do for you?”

“Can we go into your office and sit down?” Gene gestured toward her door with the accordion folder.

“Of course, of course,” Maggie said hurriedly. She handed her coffee cup to Gene, and then swiped her ID badge to unlock the door. “Come in.”

Gene looked around as they entered the office. Clean, organized. He put the coffee cup down on her desk.

Maggie went around her desk, then sat down, sitting straight upright, looking like a student trying to impress a teacher. “What is it? Did I sign something I shouldn’t have?”

“I am hoping you can explain it to me.” Gene methodically took a seat, put his accordion folder in front of him, and took out a single page, the sheet rasping against the other tightly bound papers.

Maggie nervously fiddled with her hair.

“Does this look familiar?” Gene finally asked, putting the page in front of Maggie. “It’s from Gary Mitchell’s division. You can see there are multiple purchases. It starts with these charges for the ELOPe project. Then, over the course of the next two weeks, there are thirty four more purchase orders that were outside the normal expenditure range for Mitchell’s expenses. Furthermore, the billing is highly irregular in that they are split across multiple accounts.”

“I do remember this,” Maggie said, her hands shaking slightly as she took the printout. “Oh, I’m so sorry if I did anything wrong. I was concerned about the purchases when I first saw them. But I talked to John Anderson in Procurement about them. He said they were normal end of the year behavior because departments usually try to spend the leftover money in their budget.”

“That’s true, but not like this. You can see that the expenditures are distributed against dozens of budgets. This one charge…” Gene paused to remove more paper from his briefcase, this set of printouts showing how the charges were allocated to project budgets. Gene found the relevant line item, pointed it out on the print out, and continued, “This one charge is distributed against forty-nine accounts. You see, not only are they spending all the money left in their budgets, but they’re also ensuring that each expenditure doesn’t take more than one million from any one account — that would trigger an executive level review of the expense.” Gene paused to study Maggie.

“Sounds like someone deliberately manipulating the system to avoid being detected,” Maggie answered. She leaned forward, and started tracing through the print out with one finger. She went quickly through several pages, unconscious of Gene’s scrutiny.

“That’s right.” Gene paused to extract another set of papers from his folder. “Here’s another little bit of odd behavior.” Gene turned the papers around and slid them across the desk. “By the end of this reporting period, each budget has exactly one penny left in it.”

“That’s really bizarre,” Maggie said, her eyes bulging. “A penny? How did whoever did this get the budgets to come out so precisely?” Maggie pawed through the rest of the papers, swiftly going down the rows of purchases. “The individual charges are generally tens or hundreds of thousands of dollars each,” she mused out loud. “Spending precisely the right amount of money to bring the totals in to exactly that amount… Well, it seems impossible.”

“What is even more unusual,” Gene said, “is why they would do that. Whoever did this was smart enough to stay under the one million dollar limit in a single budget line item, knowing that would trigger the alert I mentioned. And in addition, they were smart enough to keep each account under budget, knowing that even hitting the budget would trigger another alert.”

Maggie laughed. “That’s true. There are emails from Finance every fiscal quarter about the repercussions of exceeding budgets or going over a million dollars. Anyone in the company who reads their email would know not to exceed their budget, or they would get chewed out by their Finance representative.”

“Then why would they try to spend every last penny but one?” Gene sat back. Gene liked hard data, but his gut was telling him that Maggie wasn’t in on whatever the deception was.

“It is contradictory,” Maggie said. “Smart enough to avoid any of the standard alerts, and yet foolish enough to create a suspicious pattern.”

They both paused for a moment and looked at each other.

“Gene, I don’t know what to tell you,” Maggie continued on, after a minute spent in reflection. “I agree, the picture you are painting looks suspicious, but I never saw anything unusual in the course of processing these requests. They were mostly for servers, additional hard drives and computer memory, contractors to service them, stuff like that. Nothing out of the ordinary for Gary’s department. Granted, they seemed so innocuous that after the first few, I just rubber stamped them.”

Gene watched Maggie sit back, her face apologetic, but her body posture relaxed and confident. It wasn’t Maggie, he thought to himself. “Is it typical for Gary Mitchell to approve all the purchases himself?” Gene asked out loud. “I see very few cases where he delegates purchasing authority.”

“Yes, that’s normal for Gary. Are you thinking that Gary is responsible?”

“The fact that Gary personally authorized all these orders makes him the first person I’d look at. But…” Gene trailed off.

“But?”

Gene pulled a fourth set of papers from his accordion folder. “It turns out that the same behavior is happening in another department. The Offshore Data Center project. Their expenditures exhibit some of the same characteristics. Multiple line items just under one million dollars, budgets coming in at just under one penny less than their limit.”

“But that’s not under Gary?”

“No, it’s not. Which makes it more likely that someone has hacked Avogadro’s procurement system.”

“But to what purpose?” Maggie asked. She scanned the papers again. “Why would someone risk their job and even jail to order servers, satellite communication systems, and hire contractors? It makes no sense.”

“I agree,” Gene said. “I was hoping that you would be able to shed some light on this, and that maybe there would be an easy answer.” He began to pick up his papers and put them back into the accordion folder. “I’m going to keep investigating this. Please don’t discuss it with anyone.”

Maggie nodded.

Gene stood up. “Thanks for your time, Maggie.” He let himself out, leaving Maggie full of questions.

* * *

From the time Mike arrived at the airport in Madison for the flight home, and periodically since he arrived back in Portland, he had tried to reach David by phone. Frustratingly, David had been off the grid in New Mexico. Mike knew that David always went to Christine’s family ranch for the holidays, and he knew that the ranch was off the grid, so he couldn’t claim any legitimate reason for feeling even more suspicious. Yet here he was, feeling manipulated by a software algorithm.

David had sent Mike a copy of his itinerary by email weeks earlier, so he had David’s flight information. Without even realizing what he was doing, he found himself standing in his living room, holding a printed copy of the itinerary, watching the clock. He had his jacket on, alternating between sitting on the couch tapping his toe and getting up to pace the living room. Finally, with more than an hour left before the flight would arrive, he drove to the airport.

Mike drove with furrowed brows through a light drizzle, with the streets threatening to ice over. His thoughts were bordering on obsessive. What had David done to ELOPe? What was ELOPe doing? Why was he locked out of the servers? He swore as his front tires spun crossing the light rail tracks, and the car fishtailed. He fought the wheel and recovered halfway through the turn onto Airport Way.

He sped into the parking garage, circling up the ramp, and parked near the skybridge. He walked across the covered bridge at a high speed, and stalked through the airport. He got to the security gate, and looked at his phone. Still nearly an hour until David’s flight would arrive.

He checked the flight monitors once, then forced himself to sit down and stay there, trying to squelch his nervous energy. He watched whole families disgorge through the security exit; suitcases, car-seats, and exhausted children in tow. He smiled as he watched a young woman welcome a man home with a single flower and a long embrace. He missed the bittersweet tang of young love.

Then he saw David and Christine coming through the gate. He walked over and waved. David and Christine were delighted to see him. Christine gave him a big hug, and a bigger smile. Standing in the middle of the stream of exiting passengers, Mike launched into an immediate explanation in a hushed voice. David and Christine leaned closer to listen, and their smiles vanished.

“My dad was absolutely fine. My mother never sent any emails at all. I’m telling you, I’m convinced that ELOPe originated those emails. What I don’t understand is why.”

“Did you get my email before you left?” David asked. “The one about the override I put in?”

Mike gave him a blank look. “No, but it sounds like you should start explaining.”

Before David could say anything, a TSA agent asked them to move out of the way of people.

“Let’s get to your car,” David said. “Then I’ll tell you.”

They rushed to the parking garage, made their way to Mike’s Jetta, and threw the bags in the trunk. Mike gripped the wheel tightly, while David sat next to him, and Christine sat in the middle of the rear seat, leaning forward.

“I put in an override,” David said once they got out of the garage. “I didn’t just use ELOPe to send an email to Gary. I have ELOPe filtering every company email.” David slammed the dashboard with his fist, startling Mike, who swerved sideways, skidding on the icy street, before regaining his lane.

“I sent you an email, the night you came over for dinner. I told you all this, and that I needed your help to do a live-patch on the server.”

“I never got it,” Mike said. ”I’ve been through all my emails from you.” He sighed. “This explains so much. Didn’t it occur to you that ELOPe would fabricate that email to get rid of me?”

“No, it didn’t.” David shook his head. He raised his voice defensively. “Look, I didn’t think that you would fly off to Wisconsin based only on an email.”

“Hey, I had just heard that my father had a heart attack. I was freaking out. And it’s your damn fault I had to go through that.” Mike was yelling now, and David leaned away in his seat.

“OK, chill out guys. If the two of you are fighting, you are not going to be thinking straight.” Christine said, also yelling to get their attention. “Look, what happened when you got back Mike? Did you look into ELOPe?” She spoke calmly, placatingly.

“I tried, but I couldn’t get access to either the source code or the system logs,” Mike said, resigned. “I assumed David had locked down access so that no one would find what he had done. And I didn’t want to say anything to any of the rest of the team, because I didn’t want to raise suspicions. I was still trying to cover for you, David.” Mike glared at him.

“I’m sorry, Mike,” David said gently. “I shouldn’t have said that about you and your dad. I’m really sorry you flew halfway across the country, but I’m glad your father was fine.”

Mike hesitated a minute, then nodded slightly, accepting the apology. “Well, did you do anything to lock down the system?” he asked.

“No. In retrospect, it sounds like a great idea to have locked down access to ELOPe, but I didn’t do it.”

“Shit, then somehow ELOPe has removed my access to the servers and the code.”

“Ugh, guys, that seems impossible.” Christine said. “Even if you are right, Mike, and ELOPe is somehow originating emails on its own, it seems preposterous to think that ELOPe could social engineer you to leave town. And how is ELOPe going to get your access rights removed? If all it can do is send emails, you can’t send an email to revoke someone’s access. I assume you guys have some kind of internal web application that handles access control. I think you’ve somehow become paranoid about David’s deceit being discovered, and now your imagination is running away with you.”

“No, Christine,” Mike said. “I’ve thought about this for days now, and it is possible. Let’s say ELOPe didn’t want to be turned off. It knows that I can turn it off. Now it has to figure out how to ensure I won’t do it. If it analyzes enough emails, it could figure out that people don’t do work when they leave town. If it can figure that out, then it can also determine that people leave town for family medical emergencies. If it had enough emails about medical emergencies, it could figure out that messages about family emergencies usually come from family members. My own email history would show who my parents are, and their email addresses, and that I’ve flown to visit them before. If it put all those things together in one long chain of deductions, it could figure out to fabricate an email from my mother saying that my father is sick. I know it sounds farfetched, but this is all within the design parameters of ELOPe.”

“Are you saying that this thing is reasoning and thinking like a human being?” Christine asked, shaking her head. “Because no matter how smart you guys are, I’m having a hard time believing that some code you wrote is suddenly developing a mind of its own.”

“It’s not thinking,” David said. “ELOPe is just analyzing emails, figuring out what language will optimize the success of the primary goal I entered, which was to maximize success of the ELOPe project. It’s a straightforward process; goal, analysis, language optimization, in response to inputs. It can chain goals together. It is not independent thought, but it can have the appearance of independent thought.”

Mike raised his hand up. “Look, here’s an analogy I thought of while I was waiting for your plane. Imagine that you’ve got all the pieces of all the jigsaw puzzles in the world. Now imagine you have a computer that is patient enough to try every possible combination of every possible puzzle. Given enough time, it could make any arbitrary picture it wanted out of those pieces. And that’s what emails are to ELOPe—puzzle pieces. It looks at the millions of emails in its library of emails, figures out all the components of them, and then figures out new ways to piece them together.”

“ELOPe, the computer system that ran away with itself.” David laughed nervously. “Well, we got the name right.”

“So is it an artificial intelligence? Is it thinking for itself, or isn’t it?” Christine spoke softly, half to herself.

“I don’t know, hon,” David said. “I don’t see how it could be capable of free-form thinking, which is what most people would think of as an AI. But it is pretty sophisticated when it comes to goal analysis and synthesis. We couldn’t hardwire goals into ELOPe and have it meet the design objectives. We had to let it discover people’s goals. So we gave it the ability to contextually determine goals by parsing emails.”

“Then it tries to make sense of those goals in terms of other goals it understands,” Mike added. “We implemented two approaches to learning about new goals. First, it can see whether goals might be similar based on language analysis. For example, a ‘break from work’ is semantically similar to a ‘vacation’, and a simple dictionary lookup can figure that out. Second, it can guess where one goal might be an extension of another. If it thinks one goal might be an extension of another, it will predict what people’s responses will be, and then test to see if the predictions match actual historical responses. For example, if I simply said I wanted to have fun today, then ELOPe might be able to extrapolate that activities such as playing a game, miniature golf, or going to see a band are fun.”

David nodded. “So when I added code to create an overriding goal to maximize the success of the ELOPe program, it’s hard to know what it might consider. The more emails it analyzes, the broader the definition of ‘success’ it might have. Up until the last couple of weeks, it had never had such a large base of emails to analyze, nor such a large number of servers to do the analysis on.”

“From what you’re saying, the more emails it analyzes, not only do the possibilities for what constitutes success get broader, but the system would also discover more methods to accomplish those goals,” Christine said. “What it really sounds like you’ve built is an expert system for social engineering. You know what I mean by social engineering?”

Mike nodded his head yes, but David had a puzzled look on his face, and shook his head.

“Social engineering is the name given to techniques for tricking people into giving you information or making changes to information systems,” Christine said. “Social engineering was popularized by hackers in the nineteen eighties. And by hackers, I don’t mean the good guy hackers like Richard Stallman. I’m thinking of folks like the Kevins.”

Mike nodded his head again, but David looked even more puzzled, and turned around to look at his wife.

“Honey, how can you be married to me, and not know this stuff? You know I was a total online geek as a kid, yes?”

“What can I say?” David sighed. “Please go ahead.”

“Okay, look. The eighties and nineties were the heyday of hacking. Folks like Kevin Mitnick and Kevin Poulsen were able to get access to all kinds of computer systems, phone company records, credit card company records. I think it was Kevin Poulsen who said that it was easier to trick someone into giving you a password than to brute force hack it. The classic example would be someone who was trying to get access to a company’s internal phone system. She might call the front desk of the company, and tell them, ‘Hi, I’m your AT&T rep. I’m stuck on a pole down the street troubleshooting your system. I need you to punch a few buttons on your end.’”

“And?” David asked.

“And the buttons the hacker would ask the operator to press might be a key sequence that would forward all incoming calls to an outside line. Then the hacker could impersonate an employee of the company from their home phone, so they could do even more social engineering. The point is, simply by knowing the lingo, giving plausible reasons, knowing what motivates people, a hacker can gain information or get people to do things by cleverly manipulating the human tendency to trust other humans. Since you’ve built a system that learns lingo, language nuances, and motivations, and can evaluate what will be most effective to the receiver, it is, by definition, an expert system for social engineering.”

David looked flabbergasted by this explanation. “How do you know all this?”

“You know, books and stuff,” Christine said, with a sarcastic smile.

“This is pretty much what I concluded when I was with my parents,” Mike added. “We never explored how far the system could go on its own.” He paused and looking meaningful at David. “So, what do we do?”

“I think you and I have to go right to Gary Mitchell, and tell him the truth. Even if that means I lose my job as the result of this. We have to get Gary to approve an immediate outage with hard power down. Then we can pull ELOPe off the system, even if that means we rebuild those servers from the ground up. Forget home. Mike, please go straight to the site.”

“On my way,” Mike replied, as he sped down Alberta Avenue, bypassing the turnoff for David’s block, and heading for the highway to downtown.

* * *

“Gary Mitchell is still gone. His admin says he was supposed to take a vacation over the holiday break, but he should have been back by now. Tahiti, in case you were wondering.” David had just returned from the building across the street where Gary’s office was located, while Mike and Christine waited in David’s office.

“I’m picturing him laying on a beach, a cigar in one hand, and a whiskey in the other.” Mike shook his head.

“I know,” David said, laughing, “I don’t think his admin meant to tell me where he was, but I was a bit demanding.”

“No word from him?”

“Nothing. He should have been back in town a couple of days ago. His admin has paperwork waiting for him to sign. She’s sent him emails and left voicemails, but nothing.”

Mike grunted.

“While you were over there, I spoke to Richard, who was the only member of our development team that worked through the holiday break,” Mike explained. “Remember that email you told me about just after we received the additional servers? You mentioned that we were assigned a team of top notch performance optimization experts to help us work on performance improvements to drive down resource utilization?”

David nodded. “Yeah?”

“According to Richard, that team showed up on the Monday after Christmas,” Mike said. “They were a bunch of subcontractors he had never met before. They had two guys onsite for the entire Christmas break, and another dozen offsite. He says he had an email from you telling him to grant them access, so he did.”

“Let me see what changes they made.” David turned to his computer, attempting to pull down the latest source code. He stared in frustration as an error dialog popped up, with an ‘access denied’ message. He tried again, and then pounded the keyboard in frustration.

“I’m in the same boat you’re in,” he finally said to Mike. “My access to the source code has been removed. I can’t pull down a copy of the latest code to see what they changed. Do you have any ideas?”

“Well, Richard kept an eye on them the first few days, and then he left for a skiing trip over New Year. If you look in your email inbox, the contractors emailed us both a written report of what they did. It was sent Friday morning, so they finished up just before either of us got back to town. According to the email, they made some major improvements in performance, mostly related to the Bayesian network. Melanie was here at work yesterday, pulled down the latest code and ran the performance tests against it. The new code seems to have taken the import of new emails from x squared to x log x, and quartered the evaluation time.”

“Woah, are you guys saying you originally had an exponential resource utilization curve?” Christine thought about her own work on massively multiplayer games. She knew that, in the ideal case, when you add users to an internet application of any kind, you want the application to scale linearly. She shook her head and turned to look at David and Mike. “How the hell did you ever expect this to scale?”

“Scaling the resources has been the major bottleneck all along. It’s why we ran into so many resource constraints, and why the project was in danger. It didn’t appear that there was any way to scale without requiring a massive number of servers.” David shrugged. “I just kept hoping that as long as we kept the project alive, we’d find some way to overcome that limitation. Now it seems that someone has.”

David turned back to his computer. He was still trying to coerce his computer into giving him access to the code. “Damn, how did our project access get revoked? I don’t understand how email could interface with the access rights.” He turned back to Mike. “Do we have any idea what else these contractors did?”

“I might.”

Everyone turned around to look at the door. There stood an older unshaven man, dressed in rumpled clothes, carrying bundles of paper under his arms.

“Gene Keyes, Controls and Compliance.” He spoke in a deep rumble. “I’m here to save your ass.”

* * *

Over the course of the next hour, Gene briefed the others on what he had found during his investigation. Like them, he had tried to reach Gary Mitchell, with no success. He had uncovered that while there were unusual charges across the company, the only consistent patterns of unusual behavior were found in three departments. As Gene spoke, he laid printed reports across David’s desk.

The first, of course, was the R&D department in which David’s ELOPe project was housed. According to Gene’s print outs, it had paid for several small allotments of servers and subcontractors to make modifications to ELOPe. The nature of the modifications was not specified, but the budget amounts were sufficient for dozens of engineer-months of work from an outside vendor.

In fact, it was the expenditures in David’s department that had led Gene to them. David’s legitimate order several months earlier of a pool of high performance servers had clued Gene in that all of the later purchases might be somehow tied to the project that first needed additional servers.

“So does this mean we’re under suspicion?” Mike asked meekly.

“No, I can see the problem is bigger than you boys. In fact, I can see the problem is bigger than just people,” Gene said, the cryptic answer more puzzling.

“But where did the money come from?” David asked. “I exhausted our budget weeks ago.”

“Transferred in from other departments,” Gene answered. “Namely, Gary Mitchell’s Ops group.”

Gene went on to explain that the second department that contained the unusual pattern of purchases was Gary Mitchell’s department, which was responsible for operations for the company’s communication products, including AvoMail, Avogadro Voice, and Avogadro Chat. By virtue of the size of its business, Mitchell’s department had a vast operational budget compared to the relatively small R&D budget for the ELOPe project. Gene’s printed records showed that Gary’s department purchased tremendous quantities of servers, had servers reallocated from other projects, paid for a variety of subcontractors to do programming work, and finally transferred substantial funds to both the ELOPe project and the Offshore Data Center department.

“Offshore Data Center department? What do they do?” asked Christine.

“They took the data center in a box concept, which is a standard shipping container filled with racks of computers, and put it on a seaworthy barge,” David answered. “Then they connect the data-center-boxes to wave-action electrical generators. The whole thing is connected back to the data grid with fiber optic cables. Avogadro calls them ODCs for short.”

“Well, anyone care to guess the third department with the same unusual pattern of purchases?” Gene asked.

“The Offshore Data Center department?” Mike volunteered.

“Bingo,” Gene answered, pointing to Mike. “Not every purchase order has all of the details, but from the ones I’ve been able to track down, I’ve found that the data centers have been augmented with satellite communication capability, and line of sight microwave transmission, the kind used for traditional phone and data communications before fiber optics.”

“If ELOPe has somehow gotten onto an Offshore Data Center,” Mike mused, as he paced across the room, “we wouldn’t be able to kill its communication channel by simply cutting off the fiber optic line. We’d actually have to go out to the ODC and turn off the computers by hand.”

Gene laughed out loud, a harsh, barking noise that startled the others, sending Christine off her perch on David’s desk.

“What’s so funny?” David asked.

“Nobody is shutting those machines off,” Gene growled, his face now stern.

“Why not?”

“Because you didn’t let me finish. According to the purchase orders, the offshore data centers are armed. They have autonomous robots for self-defense,” Gene said, slowing down and exaggerating each word. “Apparently to protect them from pirates. I heard what you boys were discussing when I came in, and I came to the same conclusion myself: there’s an artificial intelligence in the computer making these purchases. And now the AI has armed itself. So there’s no way we’re going to just walk on board the ODC and turn off the computers. We’re going to have to blow them all up.”

David slumped down in his seat. “Holy shit, holy shit, holy shit. How did we get ourselves into this mess?”

“You kids trusted the computer with everything,” Gene said, grumbling, “and worse yet, you put no controls in place. No leash, no way to shut it down.”

“Wait, I don’t understand,” Mike said, pacing by the window again. “How did you conclude it was a computer program making the purchases, and not a person?” He turned and stared hard at Gene.

“One benefit of being in the audit department — I can access anyone’s emails. And there’s some mighty funny emails going out.” Gene paused, and pulled out another sheaf of papers, this one almost an inch thick. He took a few pages off the top and put them on the desk.

David, Mike, and Christine all gathered around them. The emails were a cryptic combination of English words and HTML, the markup language used for web pages.

David fanned through the pages, then looked up at Gene. “What are we seeing?”

“You’re seeing emails between your email account and the procurement web application. This page,” Gene said, pointing to one, “is the procurement system displaying a list of accounts you are approved to use, and this one over here, is your email selecting one of the accounts.”

“It’s the timestamps, isn’t it?” Christine said.

Gene smiled at her. “You’re the smart one.”

She smiled back, then pointed to the printouts. “The timestamps on these emails are too close together.” She arranged the printed pages in pairs. “If you look at the email headers, you can see that every time there’s an incoming email that requires a response, the reply is immediate. There’s not even a one second delay. There’s no way a human could respond to an email that quickly.”

“Exactly right,” Gene said. “So at first I suspected someone had written a program exploiting a loophole in email authentication, and was using that to embezzle funds. But then I asked around about your project, and everyone started telling me stories about how you were creating an email generator.”

“Well, that’s not exactly what it’s for,” David protested. Then he sighed. “Well, I guess it is now.”

“What do we do next?” Mike asked, looking now at David. “David?”

David turned to the windows, fingers steepled, and stared out in silence, ignoring everyone’s eyes on him.