Roo'd

Home > Other > Roo'd > Page 20
Roo'd Page 20

by Joshua Klein


  One brown leather shoe set itself firmly on the dusty road, followed by another. Poulpe approved. This was as it should be. He nodded slightly at the dark-faced man who emerged, admired the rustic cut of his blue jeans and slightly worn cotton shirt. He liked the leather apron he wore under his bulletproof vest. He liked the man's thick mustache. He liked his dark tinted glasses, surely designed for shooting.

  The man swung the short thick stub of some sort of chromed automatic weapon from the behind the car door and trained it on Poulpe's midsection. He walked around the door and swung it shut behind him. The man stood still. Poulpe smiled. The crickets sang.

  Eventually Poulpe began to nod at the man. Gently, he nodded in time with his heartbeat, a steady pulse. The man nodded back, his face expressionless. Then his shoulders began to bob, gently, along.

  Poulpe felt the heavens open to him and raised his hands up to the sky, nodding in time, the sweet smell of the night air rich in his lungs. He felt his blood sing, saw the man begin to cry. He cried black blood, the stain of his sins washing away. The angels sang above them. Then the man began to dance, to jerk, to flail a little. The gun fell from his hands, clattered to the ground, and his knees gave way beneath him. He slumped against the side of the car, one arm crooked over the mirror, black blood flowing from his eyes. Now it flowed from his ears, from his nose, and he opened his mouth to emit a thick black spurt. It stained his shirt and he fell, broken and soiled. Forgotten.

  The universe buzzed around him, and Poulpe let his arms sink down. He walked slowly to the car and opened the driver's side door. Another man, much like the first, rested peacefully, the holes where his eyes had been dark and empty. There was a steady drip-drip within the car, dark fluids gently streaming from the ceiling, from the walls. Poulpe reach in and collected the keys. He walked back and unlocked the trunk and was rewarded with a large blue gas container. He poured it over the car, sloshed it on the seats, sanctified the bodies with it. When he was done he undid his shirt and peeled it from his sweat-stained back. He tossed it onto the driver's lap, bent and pulled off his coveralls. He held them up with one hand, reached into his pocket, pulled out a lighter.

  The whoomp shook the car, and Tonx sat up despite himself. Poulpe was walking towards them, naked, arms upraised, a smile wide as heaven across his face.

  "We are saved" he said to Tonx's car window, his voice muffled through the glass. Then he walked down the road ahead of them, a bright blue gas tank in his hands, slowly pouring it over his limbs, rubbing it into his hair.

  They let him walk ahead of the car for an hour. Then they tossed him a rag to wipe off with, and let him settle down to sleep in the back of the car. Nobody spoke as they drove onwards into the night.

  Chapter 34

  Fede had filled up on chips and soda before settling down to code. Cessus put him in the back seat and taped him up again, intent on checking his "signals" as he coded. An hour into it he interrupted Fede to get him to take some vitamin tablets and a neutricutical bar. The rest of the night sped by.

  Now that he had the data set he could finalize the entire application. Using the network mockup Cessus had put together he was fairly certain it would propagate correctly, but he had to be absolutely certain it would crunch the data the right way or the whole thing would be a waste. The genetic algorithms he'd put together during his all-nighter at Cessus's had him especially nervous. From what he could tell his seed code should develop into functions specific to each chunk of the data set, and then process it more efficiently than anything he could hand-code ahead of time. But he wasn't very practiced in genetic programming, couldn't be sure about it in advance. He could only let it loose in a small sample space; there was no way to replicate what it would do when he unleashed it on a large scale. Like China.

  So he concentrated on the rest of the system. It was fairly straightforward: he was creating a supplement to the software updates required of all Chinese computers. It used the same Chrysler-Daimler libraries as the original photo-display app, but tweaked slightly. He'd tried to make the alterations as subtle as possible, using existing virii available online as a guide, and thought he'd done a good job. The Peer-to-peer networks in China used an outmoded, multi-level push model wherein a primary database, controlled by the government, had all the updates. A first wave of computers was contacted and checked to see if they had the new updates. If they didn't, they were fed them via download. Then those first-wave systems contacted their neighbors and checked them. All those second-wave systems would start downloading the new update from the first-wave ones and simultaneously make themselves available to update other second-wave systems. This way the Chinese government didn't have to host massive server systems to support updating every computer in the country - after the first wave, they all downloaded from each other. And they did it simultaneously, pulling data from multiple other machines at once. When they'd finished the download, they checked a hash key to make sure they'd received the download correctly. That was the flaw Fede was exploiting.

  If the Chinese government had done it right they'd have made all the second-wave systems check their hash from the government's primary servers. But it would all happen pretty fast, and would require the same server setup they'd wanted to avoid in the first place. So instead of making an alteration to the P2P software to space the hash checks over time, they let all the second wave systems check with each other.

  That meant that Fede could intercept an update and insert his own software in place of the existing image-viewer software. As long as he put it in a second-generation machine, all the computers checking with the one he'd infected could be made to assume they'd gotten a bad download, and search for confirmation about which was more current. Again the Chinese system made it easy for him. They'd set it up so that cases like this caused a check with their central server. But it was written so that both of the machines with a different hash did the check simultaneously, resulting in a race condition. Whichever machine came up with the answer first was assumed to be correct, and to have the latest version of the update. Any two machines that had a different hash first checked with each other to see who had the most recent hash, if any. It was lazy programming, Fede knew, but common enough, and it worked in his favor. All he did was tweak the library so that his update came with a pre-existing hash. That way, whenever any two machines had a different hash they checked with each other, and Fed's code generated a timestamp for his hash on the spot. His update version was always more recent, and his code would be propagated.

  It wasn't foolproof. Some machines would update more often that others, and eventually one of them would win the first-generation machine lottery and get assigned to download the update directly from the government's system. In that case Fed's timestamp trick wouldn't work because the government machines would know their system had the correct hash. But he'd set up his code to concede an error to timestamps that were similar enough to his - to updates that were as recent as the last few seconds. It meant it would take longer for his code to propagate, and that first- and second- generation machines would only get his code if they ran incidental updates and failed to be assigned first-machine status the second time. But any infected computer contacting the government's servers directly would simply question whether it had the right update, and then confirm that it must have received a buggy version. Since the distribution system worked like a pyramid, chances were good that not many systems would raise the challenge. If it was noticed, the government could only assume there were a lot more corrupted versions of the update than expected. That could be due to anything from bad software updates to rain on the old copper wires. If they ran a random search they'd find a lot of machines with the corrupted update, true, but it would correct itself as soon as they ran the query. And as soon as the machine tried to update itself again it would get Fed's code from its neighbor, assuming its neighbor wasn't a first-generation machine.

  Fede had even set it up so the code cleaned itself out if the application
was opened. Anybody doing a close scan of their system would be able to tell that the only application that wasn't updating correctly was the photo-viewing app, but if they launched it, or ran any part of it to check for hacks, it would notify that it had received a corrupted update and attempt to recompile. It would mean that a small bit of Fed's data was lost, but he'd designed his code to be extremely redundant about processing the data set, and it was safer than leaving any tracks.

  Most importantly, the entire data processing cycle should be done in under a week, based on his calculations, and the updates typically came biweekly. If everything went as planned he could inject his code somewhere, and when the next update cycle happened it would propagate. The networks would be really busy for a while. Longer than usual, but by the time it was clear there was a problem Fede should have his answer, and Tonx should have his solution, and they could all get paid.

  That was assuming it all worked as planned. For all he knew his propagation mechanism could be nipped in the bud by some new update technology the Chinese launched that week. Or it could fail to collect the parts of the data set correctly, or multiply out of control and completely crash every computer in China. He wouldn't know until he tried.

  Until then he could only debug as best he was able, and run simulations on the mini-network Cessus had made. So Fede coded, and recoded, and error checked and debugged and read and re-read his code. Over and over again.

  He did that for a couple of days, stopping a few times here and there to jump on a public wireless network from a parking lot or in front of a library, checking data collection sites and letting Cessus scan likely targets for dropping the trojan update. On the second day after they'd picked up Marcus's supplements he got online at the same time as Tonx, and was relieved to see his brother on a public IRC chat server. He flagged Tonx into a private session and they passed public keys back and forth to ensure another layer of encryption. It was like shaking an old friend's hand.

  Where the hell are you?

  Hey! Good to hear you! Everything OK?

  Stellar. Aside from the urge to kill your girlfriend I'm dandy. Cessus has been a huge help w/ the project.

  Cass getting on your nerves?

  No biggy. I think she misses you.

  that's cool. Give her my best, tell her I owe her.

  Will do. You okay there?

  Better than okay. Take your time; you're not going to get anything done once you get here. Don't know why I didn't come here before.

  You know the anticipation's killing me.

  :) That's SOP, my friend.

  Standard Operating Procedure.

  I went ahead and approved Marcus and Cessus's contract, hope that's okay.

  good. It's all boilerplate anyway; they're good guys.

  Marcus look cool with it?

  I think so. I think he's bummed about missing the fight, but is glad for the cash. I don't know he's weird.

  Weird?

  In a good way. he'd a good person.

  You're getting sweet in your old age. You got any code for me?

  :)

  ":)" ?

  `8&

  WTF is that?

  Raver smiley. Yeah, I got code for you. I'm nervous as fuck about it.

  Should be. I don't know how many chances we'll get to deploy it.

  Yeah well there isn't exactly a big pool of folks for me to have error check it you know.

  Don't worry. This is what you've always wanted to do. It'll be fine. This connection secure?

  As secure as we're going to get before we meet.

  Shit. Never mind. tell me how it works when we see each other. How far are you?

  Marcus says we should be there tonight.

  Sweet. That's not too bad. I can sit on it until then. The pina coladas help.

  ???

  You'll see. But you also better hope this pans out. Otherwise I'm going to have a nasty tab to try and run away from.

  No pressure.

  (hic)

  Whatever dude.

  Cass is banging the truck. Time to roll. C U later.

  later, little man. Take care.

  ciao.

  When he closed the chat session Fede felt a kind of strange relief. He'd missed Tonx. He thought maybe he'd been missing him for a long time.

  Cass opened the back of the truck.

  "Okay you slobs - Jesus! Cessus, you're fucking asphyxiating him out back here!" she said.

  "No worries, sister. Feed's all good. Says it doesn't effect him" said Cessus. He was sprawled on the couch, one eyeglass rolling slowly back towards his head, the other glimmering liminally with tiny golden pixels.

  "My ass" she said, throwing the lock to open the other door. They were in the parking lot behind some kind of mini-mart, the rear of a big wooden sign peeking over its plastic-shingled top. Lazy plumes of brown smoke rolled out over the edge of the doorway and away.

  "It's no problem, Cass. For real" said Fed. She opened her mouth to argue, but closed it again. Her brow dipped, a tiny pout appearing on her lips.

  "Whatever. You getting some good code done?" she asked.

  "Better. Just got off a chat with Tonx. He says to give you his best and said that he owes you."

  "Damn straight" she said. "That boy's got a big debt running."

  "He misses you" he said.

  "Good" she said, turning. "Just make sure your shit's together. We'll be seeing him tonight and Marcus says we'd better be ready to roll."

  "Girl, the boy just put together a month's worth of code, easy, in under a week. Give him some cred" said Cessus. He was upside down on the couch, his feet tapping against the side of the truck, his head hanging off the side. She turned back towards him, planted her hands on her hips.

  "His shit's tight. You got my word on it" he said.

  Cass's mouth stayed shut. She stared at Cessus a moment longer, turned and nodded at Fed.

  "All right" she said. "Good work. Tonight we'll see how well you did."

  She left the truck.

  "That girl needs to get laid" said Cessus, swinging his feet over to the side of the couch. He sat up and rubbed his eyes, yawned. "Anything else we can do to check your code?" he asked.

  "I can't think of anything. Or rather, I can think of a billion things, but they all involve someone looking at it who hasn't written the damn thing. And you don't count" said Fed. He scratched under one arm, wishing he could take a shower. The slut baths they'd been taking at rest stops and gas stations hadn't done him any good, and he only had the one change of clothes.

  "How about your stuff? You got all the launch sites ready?"

  "Oh yeah" said Cessus. "Piece of cake. The Chinese have plenty of holes in their security for being so goddamn uppity about controlling information coming in and out. The TCP-IP stack has been the same for how many years now, and folks still don't get it. I got a couple dozen machines ownzored until the next update. You give me your code, and I can drop it into place in under three minutes. Already scripted it out and everything."

  "Yeah?" asked Fed.

  "Yup. Using a series of relays to make time delays in delivery. It'll be backward scaling, so I'll connect through eight or nine relays. I'll dump the package through the last and terminate that connection. Then I'll only be connected through eight relays. Then dump the next one, terminate that connection. Anyone tracing me will want to track sequentially. They'll have to work backwards through time, which isn't typical. It also means they'll never know which drop is the last, make it harder to figure what we're up to."

  He smiled and began methodically cracking his knuckles.

  "I got a few other tricks up my sleeve, but that's the basic plan. I figure I'll use that one and a couple others and we ought to have everything delivered and our tracks cleaned up in under three minutes. It's automated, and I have an extra dozen machines cracked for redundancy."

  "Excellent. I should only need ten, but more is better. I just don't want to set off any alarms, you know?"

&nb
sp; "Don't you worry. I got it covered. Used to do this for a living, you know?"

  Fede didn't know, but figured that he pretty much didn't want to.

  "You think the collection idea will hold up?"

  "It should. The code's delivering to three different anonymous, public spaces. Each piece is encrypting its bit of the puzzle and posting it as an image file. Without knowing better it'll all look like random noise keys. The cryptographer newsgroups are full of that kind of crank shit, always have been. It won't seem like anything more than the usual kind of traffic. We'll be the only ones who know what to look for or what to download, and we'll be the only ones who can open it up once we get it."

  Cessus seemed pleased. He pressed one of his black thumbnails down hard with the palm of his hand.

  "We got it covered. Every one of those machines makes a hash check off the image Tonx's guy posted in Hawaii, then passes it around. Uses the same check system native to the Chinese update system, yeah?"

  Fede nodded.

  "So we're set. They grab their little chunk, mutate to be able to process the best fit, and post their result along with their processing code to one of three newsgroups. We sit back and watch it roll in, cross off redundant responses, and get a full picture in under a week. Cakewalk, yeah?"

  "Unless" began Fed.

  "Unless nothing" said Cessus. "You designed this thing from the ground up, Fed. We've tested it backwards and forwards. The only way we're going to know if there's an error in your code is if we launch it. The time for doubting yourself is over, man. Let your brain have a rest and do some background processing. Live in the now, you know?"

  Fede nodded again, pulled off his goggles. The image of swimming bits of code, a graphic representation of the genetic algorithms, swam in petri dish after-images of laser light on the inside of his eyeballs. He'd been watching them for hours. They never acted the same way twice, but they usually did the job. Usually.

 

‹ Prev