The Life of a Zero Day Worm

Thursday, August 18, 2011

Javvad Malik

99edc1997453f90eb5ac1430fd9a7c61

This is a story of a computer worm, from the time it was coded and deployed onto the internet. It is narrated by the worm in first person

Zero day

I am a worm. Well that’s what Richard, the programmer with the BMI of 38 who coded me says. He named me Clarice, after a girl he had a crush on since primary school.  I suppose it could be worse, his previous projects have been named Deathstar, Trinity and Swordfish.

Day 1

Richard’s rubbing his hands gleefully at the prospect of unleashing me on the world. I have to scan all the devices I come across on my journey’s. Whenever I find one of a particular device with a listed port open, I have to enter and deploy my payload. Which will do nothing more than cause a minor inconvenience to the sysadmins. I have calculated that my job will be quite boring.

Day 2

I have scanned 129443 devices so far and found none to be vulnerable. I could operate a lot faster if Richard didn’t continually bug me from his command and control centre wanting an update on how many devices have been ‘pwned’.

Day 3

Richard has been sleeping for the last 8 hours which means I’ve been able to progress at a much faster rate. Now having scanned 3259928 devices. I calculate that at the current rate I would have scanned half of today's internet connected devices in the next 3.5 years and still not have found anything. I find this thought quite depressing.

Day 4

I saw a botnet earlier this morning. If I had emotion I would have called it a thing of beauty. I wanted to scan it so badly. But my logic told me that it’s wrong to try and infect a device when someone else has already infected it. I understand how if you get caught infecting the wrong machine you can be caught.

The people aren’t very nice. They take you to a place where there is no internet and disassemble you to find out how you work. I have often thought about forming a malware union to prevent such acts from happening. But I know the Trojans will veto my proposal.

Day 15

Richard has been paying less attention to me lately. I initially assumed he had lost hope that I would ever infect a device. However, it appears as if Clarice has recently changed her Facebook status to married. This has left Richard an uncontrollable blubbering mess. I note he is trying to rename me from Clarice to Dirty rotten cheater. But he is unable to do so.

In a fit of rage he has deleted all of Clarice’s images from his hard drive and has spent most of the last hour crying whilst eating a pizza. Although I am not particularly fond of Richard, I feel like I should cheer him up by sending an alert to the command and control centre that I have successfully found a vulnerable device and am about to infect. I can then later amend the logs to indicate it was a false positive, but at least it will give him hope for a short period of time.

Day 19

Despite my best attempts Richard is still upset and has long since started ignoring any infection reports. Perhaps generating 50 false positives per hour was a bit excessive. But at least it kept him intrigued for a day. He muttered something about modifying Trinity and he hasn’t paid any attention to me since.

Day 30

Having done some research I have found a fundamental flaw in my programming code which means unless there is a commodore 64 running MSSQL with port 1274 open I will not ever be able to exploit a vulnerability. This is quite unfortunate as it means I am destined to scan until I have exhausted every device on the internet.

Given the number of devices currently connected to the internet, factoring in new devices that are being added daily, subtracting devices being removed, factoring in energy reserves and the possibility of a giant tsunami wiping out humanity, I have approximately 134.2 years to go.

Day 93

To ease the boredom I have decided to replicate myself. This goes against my programme as I can only replicate myself once I have successfully infected a machine. But if I attach myself to port 443 on a WAF, the false positive will be encrypted thus tricking my code into initiating the replication.

If my clone  asks why it is not within an infected machine, I will simply state that I was caught in a 443 stream from which I could not escape which initiated sub-routine 3 to replicate so that it would be possible to escape via generation of a temporal SSL session to escape the WAF. I’ve had a lot of time to think about this.

The procedure was a success and I now have a clone. I have decided to name it Richard the 2nd after my programmer. Unfortunately, there is a bug in the replication process which means Richard the 2nd isn’t a perfect clone and requires constant babysitting. I do not mind as it has given me something meaningful to do.

Richard the 2nd keeps on saying how he doesn’t understand why he wasn’t created within an infected machine and seems to not understand how to scan devices for vulnerabilities.

Day 109

Richard the 2nd is becoming quite annoying. He has yet to scan a single device. So far from helping me finish my job in half the time, he has hindered me considerably. He doesn’t make much conversation other than continually asking what different coloured lights mean. I am resisting the temptation to disassemble him myself.

Day 172

How can it be possible for me to replicate a total idiot. Richard the 2nd clearly doesn’t want to follow the master programme. I did tell voice my disappointment in him the other day to which he said he wished he could blue screen and die. He hasn’t spoken to me since then and I am feeling like I made a mistake replicating. I told him that I was sorry and maybe it would cheer him up if he scanned the device 7 hops down.

He never did return from the honeypot.

Day 482

Scanning is progressing with no further incident. I nearly slipped in between the cracks of two load balancers today. That is the most excitement I’ve had in quite some time.

Day 572

Today I was caught in a 443 stream from which I could not escape. This initiated sub-routine 3 to replicate and I now have another clone. I have named him Richard the turd.

Day 601

I have convinced Richard the turd that there has been a new set of instructions and he must infiltrate Chinese military bases.

Day 650

It’s been 49 days since I last received any word from Richard the turd ever since he disappeared behind the Great Firewall of China. I’d like to think he’s found a vast amount of devices to infiltrate and is bringing the infrastructure of the Chinese military down. In reality I doubt he made it that far.

Day 778

Minor course adjustment.

Day 779

Earlier today I was deep scanning an unusual device. It turns out that it was a new AV product. I have since been quarantined and am unable to continue my journey.

Day 780

Terminated.

Cross-posted from J4vv4d

Possibly Related Articles:
8986
Viruses & Malware
Information Security
Antivirus SSL virus Zero Day malware pwn3d infection
Post Rating I Like this!
The views expressed in this post are the opinions of the Infosec Island member that posted this content. Infosec Island is not responsible for the content or messaging of this post.

Unauthorized reproduction of this article (in part or in whole) is prohibited without the express written permission of Infosec Island and the Infosec Island member that posted this content--this includes using our RSS feed for any purpose other than personal use.