Roo'd

Previous   Contents   Next

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 Fede’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 Fede’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 Fede’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 Fede’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.

prvtFeedWhere the hell are you?

prvtTonxHey!  Good to hear you!  Everything ok?

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

prvtTonxCass getting on your nerves?

prvtFeedNo biggy.  I think she misses you.

prvtTonxthat’s cool.  Give her my best, tell her I owe her.

prvtFeedWill do.  You okay there?

prvtTonxBetter 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.

prvtFeedYou know the anticipation’s killing me.

prvtTonx:) That’s SOP, my friend.

prvtTonxStandard Operating Procedure.

prvtFeedI went ahead and approved Marcus and Cessus’s contract, hope that’s okay.

prvtTonxgood.  It’s all boilerplate anyway; they’re good guys.

prvtTonxMarcus look cool with it?

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

prvtTonxWeird?

prvtFeedIn a good way. he’d a good person.

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

prvtFeed:)

prvtTonx":)” ?

prvtFeed`8&}

prvtTonxWTF is that?

prvtFeedRaver smiley.  Yeah, I got code for you.  I’m nervous as fuck about it.

prvtTonxShould be.  I don’t know how many chances we’ll get to deploy it.

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

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

prvtFeedAs secure as we’re going to get before we meet.

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

prvtFeedMarcus says we should be there tonight.

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

prvtFeed???

prvtTonxYou’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.

prvtFeedNo pressure.

prvtTonx(hic)

prvtFeedWhatever dude.

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

prvtTonxlater, little man.  Take care.

prvtFeedciao.

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 Fede.  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 Fede.

“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 Fede.  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 Fede.

“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?”

“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 Fede.

“Unless nothing” said Cessus.  “You designed this thing from the ground up, Fede.  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.

“C’mon” said Cessus, standing up.  “Let’s get something to eat beside those damn nutrient bars.  Chances are good Marcus is going to want to make the rest of the trip in one go.  If you have to piss now’s your chance.”

As they came out of the truck they saw Marcus and Cass leaning against the cab, looking out over the parking lot to the next lot over.  It was a hotel, and a fairly fancy one if the neatly trimmed hedge was any indication.  The front drive was u-shaped, curving up and under an overhang.  As they watched a limo pulled out and onto the road just as a second one pulled in.

Cass scratched under one armpit, wincing as she stretched her ribs.  She’d found a new t-shirt at the Red Cross and it had stained almost instantly from riding in the back of the truck.  Cessus nodded at the limo.

“What’s up?” he asked.

“We were discussing how you could tell who was security and who was just a date” said Marcus.  The second limo stopped under the overhang and a bellhop ran up to open the door.  An immaculately dressed man with a full beard stepped out, smoothing his tuxedo as he stood.  He was followed by an angel in blond hair and a long, pure white evening gown, tiny pearls glimmering in a sheer web across the drape of the fabric.  Their driver had come around and was gathering up the gown as it spooled out of the car, gently lifting it up in an arc behind her as he followed them inside.  The car slowly shut its doors and drove over to one side as soon as they had left.

“What do you think?” asked Marcus.

“Date” said Cass.  “Those are Manolo Blatnik shoes, definitely not made for any kind of action.  They’re incredibly comfortable, though.”

Cessus snickered.  “Give me a break” he said.  “I’m just impressed she could walk in them.”

“I’m serious” said Cass.  “Those heels are as comfortable as these boots I’m wearing.  They should be; they cost more than your house was worth.”  This last was aimed at Cessus, and she smiled as he rolled his eyes.

“For shoes?” asked Fede.

Cass shrugged.  “It’s what people will pay for them.  Believe me, you have to spend eight hours standing around looking pretty and they’d start looking like a good investment to you too.  I know a guy who has a friend who knows the guy who invented the heat conductive cooling sets they put in tuxedos, and the guy lives like a king down in South America.  At a certain point the money is sort of a secondary thing.”

She scratched herself again before turning to spitting on the hot cement.

“Come on” she said, walking towards the mini-mart.  Let’s piss and get back on the road.  I’ve got a boyfriend to beat up.”

Marcus chuckled and keyed in a locking sequence on the cab before following her.  Behind them another limo pulled up to the hotel, then slowly pulled away.

When they got into the mini-mart there was two unisex restrooms.  Cass came out before Marcus was finished, and Cessus went next.  Fede browsed among the magazine rack as she sorted through the juices for one with a remotely recent date.

“Do you miss it?” he asked.

“Miss what?” she said.

“Miss dressing up like that.  Miss limos and fancy shit.”  Fede knew he sounded like an idiot, didn’t much care.  He found, to his surprise, that he really wanted to know.

“No” she said thoughtfully.  “Not really.  I mean...” she stopped to pull out an orange juice but left the cooler door open, letting the cool air slowly pour out and over her legs.

“It was nice, in a way, to be so comfortable so much of the time.  To eat nice things, to only wear clothes that really fit.  But it had its costs, and the benefits never outweighed them.”

“What costs?” asked Fede.

“Freedom” she said, slowly scratching the price tag off the juice with one grimy fingernail.  “I was never free.  I went where I was told, wore what I was given to wear, ate what was cooked for me.  I played by the rules and was pretty successful at it.  But it was never my life.”

She shrugged and let the cooler door swing shut.  “I guess it’s a matter of what’s important to you — being safe, or being happy.  I could have stayed the rest of my life in evening gowns and limousines, but I wouldn’t ever have been happy there.  Took me a long time to figure that out, but when I did the rest was easy.”

Marcus emerged, nodded at them before heading back out to the truck.  Fede turned to head for the bathroom.

“Scratch that” said Cass.  She stood straight now, her arms hanging loosely at her sides as she looked past Fede’s head and into the parking lot beyond.

“It was never easy.  But once I made that choice it started to be worth it.”

Fede shuffled to the restroom in the back.


Previous   Contents   Next