Can computer viruses evolve?
Sunday, February 21, 2010 at 02:05AM The latest episode of This Week in Virology posed an interesting question. A listener question (at about 20
minutes before the end) prompted the question of whether or not the similarities between biological viruses and computer viruses was close enough that it would be possible to create a truly evolving computer virus and if so whether it would develop in similar ways to real viruses.
I'm no virologist, but I did happen to do some research in neuro-evolution while I was a student at UT. I'm obviously no expert, but it's an interesting question that I have spend some time thinking about. The short answer is that the evolution of real computer programs doesn't really work. In my opinion, the problem is that of representation. Software instructions are very brittle. They cary out a specific set of instructions, and those instructions are so densely coded that almost all mutations or recombinations would yield completely non-functional programs. It's not even a question of reduced fitness - they simply wouldn't work. When all evolutionary paths result in death, evolution just doesn't have much to work with.
Although it's tempting to want to draw comparisons between DNA and software, I think it's clear that DNA is not software. It is information, but it's not computational. When a ribosome translates RNA, it isn't evaluating a fragile mathematical computation. It is chaining together amino acids to create proteins, creating tiny biomachines that perform some function. Changes in that representation can potentially produce new proteins which could perform new functions. I'd guess most changes only result in a small change in fitness of the entity, though some changes could be deadly. Either way, there's enough fuzziness in the system that evolution has some room to play and produce improvements.
That's not to say that computational evolution is impossible. It is done, however the trick is to find something other than software to evolve. In my university research, I evolved neural networks. A neural network is a system that takes inputs, passes them across a number of nodes that loosely mimic biological neural networks, and produces outputs. The representations of neural networks can look a lot more like DNA than normal software. A small change in a neural network won't necessarily kill the network, and it could conceivably improve it. In my research, I showed that you could apply neuro-evolution to complex game playing tasks and the system could naturally evolve successful playing strategies, apparently only limited by the expressiveness of whatever the underlying neural network system is.
In this way, the similarities to biological systems are quite striking. If DNA is the representation of proteins, then evolution of DNA should be capable of producing any sort of imaginable protein machine. If some combination of proteins could, for example, produce the kind of powers you see on Heroes, then I'd think we would almost surely see those capabilities produced. Since we don't observe that, then the most likely explanation is that our DNA-based architecture simply isn't capable enough. It's possible evolution just needs more time, but my personal belief is that we've largely hit the limits of our current architecture.
Getting back to software, neural networks are not the only computational devices that can be evolved. To engage in a bit of circular logic, we can evolve pretty much anything that has a representation that is amenable to evolution. That is to say, we need some sort of representation of the system that can be acted on by change operators (mutations and recombinations of some sort) and that is resilient in the face of those changes.
Real computer software doesn't fit that description, so the idea of setting computer viruses loose on a closed network and applying evolutionary pressure really wouldn't work. We can (and do) create evolving systems in software and study them, but so far I've yet to see anything truly amazing produced. My feeling is this is due to the limitations of the architectures being evolved and not due to the limitations of evolutionary techniques.



Reader Comments (6)
I must also point out that real virus's are produced in far greater quantity than computer virus'. Any given cold virus probably produces more copies in every human infection than a given computer virus achieves in throughout its lifetime in 'the wild'.
The evolution of higher plants and animals works best with the involvement of sex which means evolution doesn't need to rely on simply changing single DNA codes to see what works, but can also try out different combinations of known working configurations. This means also results in a massive increase in the amount of genes being tested. If a virus is evolving by changing one gene at a time in a sequential manner then finding the best 10 changes is far less likely than if a group of virus' each find one beneficial change and then compare results and combine the best changes.
you can emulate anything by computer.
Viruses or whatever , it may be difficult, though.
Many computer viruses do evolve but usually with
the help of programmers.
You could make them evolving like biological
systems, but that's less efficient.
However, I can think of some tricks how to improve
biological evolution - and maybe earlier or later some
of these will be implemented
Hi Norman, good to hear from you again. I'm currently studying evolutionary computation (for my Masters), and you're correct in that at this time it isn't easy to 'evolve' executable objects, mostly due to the brittleness of the code. So far the best represenation for evolving executable programs appear to be trees, such as Lisp-tree, or rules (GP or Genetic Programming). In this kind of representation, sub-trees are swapped, inserted or deleted as part of the recombination, while nodes are mutated. However there are number of problems with tree representations, such as bloatiness, initialization, etc.
I think it'll be a while before we see computer virii self-evolving, without the assistance of some kind of incubator that can mess with the virii.
I'd be interested in hearing more about your work with NN sometimes!
I got my 15 seconds of fame on TWIV 73. Cool!
I'm going home tonight to take a pick, i'm very excited about this (clearly you see how sad and crazy i am about shoes.) Will post the picture vhzixe vhzixe - justin supra shoes.
Christmas is probably the most special day of the year for children. One thing that makes it special is the popular tradition of Santa Claus. xdnkmy xdnkmy - Mulberry Bayswater Outlet.