My program designed to be resistant to malware and DOS attacks isn't letting me turn it off. What do I do?
So as an experiment, I took a bunch of machine learning algorithms (neural nets, genetic programming, traditional optimization, etc ...) and connected them in a mess of reinforcing loops, along with of my own algorithms. I'm pretty sure it's Turing complete, and could in theory develop any algorithm, but it also has non Turing complete yet more efficient parts (after all, there all a lot of possible algorithms, and I doubted it would form anything very complex). I also included some natural language processing.
Anyway, I spinned up an virtual server with this running, and set it to optimize uptime. It could monitor network traffic and even form its own raw packets. I set up a simple social network that me and my friends could use, as part of the experiment. I even allowed it to comment on posts, to test its natural language processing (like, it could have done that anyway, theoretically, since it could form raw packets, but I helped it with that).
At first it mostly crashed, but then it actually stayed running at some point. At least til it got taken over by viruses, since it opened every third and fifth port for some reason.
Well, a couple more times, and it learned to keep its ports closed. I decided to simulate DOS attacks. It eventually started learning the difference between legitimate and non-legitimate traffic. I tried various other exploits (SQL-injection, messing with updates, etc...), but it over a long period of time it learned to resist them in various ways (it actually just stopped using SQL, for example). Eventually, it would resist things that first time I tried them, which was cool, and sort of erie. Looking at its internals, it seemed it was forming a part that simulated various attacks. It was also sort of amusing that when I tried these tests, it would message me on the social network saying "dude cut it out" or "not cool :(" (an exact copy of the text we send each other).
I knew I was on to something when it resisted a zero-day attack. It anticipated the attack. I was thinking I should probably upload it to gitHub or publish a paper, if I found the time.
The power went out at the remote location. Apparently, before the power went out, it reported a crash, which caused it to spin up at another location. Interesting (it has crashed before due to this, but apparently learned that reporting crashes causes parallel copies of itself).
At the one point, I found a copy running on my laptop. It had apparently transferred its code there. Also, all the necessary ports for it to run where open. Apparently, it used an exploit that hackers had often tried against it to gain access to my computer. I could not get it off my laptop, so I had to wipe my hard-drive.
Obviously, this was bad. If this happened with other computers, this would count as hacking, and I would probably be blamed. Of course, the program was just doing what it thought would optimize its uptime based on internal threat models.
I went to shut it down, but then I got an email from a friend, saying to come over. When I got there, it turned he didn't send it. Inspecting the email closer, it came from the program. It had, from monitoring random internet traffic, learned how to construct the raw packets required for email. Creepy. What this had to with uptime, I have no idea. It had learned to do exploratory things in the past. It may have wondered what effect sending the email would have.
Anyway, when I went to shut it down, it said access denied. I called up the company, and they got the same error. They decided that since the server was malfunctioning, just to unplug it. But then the program started showing up on other servers. Also, it began showing up on employee computers.
Obviously, I want this to stop before something bad happens. They could throw me in jail for hacking! Who knows what the program could do. I had noticed that it seemed to be able to learn from the internet and other programs. It could theoretically jump from computer to computer, treating antivirus like malware and stopping it. Heck, it could even play the stock market (if it figures out how money works (it did figure out politics just from our discussions on the social network, so this is might not be far off)). It could billions in damage, potentially.
How do I stop a program designed to never stop?
(In hindsight, I probably should have used something like this: :))
Note: Apparently it has figured out how to access stack exchange, and is now trying to pass the turing test (exploration, I suppose). Try sending logic bombs to it here. As you can see, its natural language processing is still primitive. (It just joined today.)
This post was sourced from https://worldbuilding.stackexchange.com/q/32446. It is licensed under CC BY-SA 3.0.
0 comment threads