EvoSec 2025W Lecture 8

From Soma-notes

Discussion Questions

  • How does Tierra work? Specifically, how does program control flow work, how do programs reproduce, and how do they die?
  • To what extent is Tierra a simple model of the computer security problem?

When you report back, focus on the second question (as well as any other random observations). But make sure you go through the first so you all understand what is going on.

Come back at noon!

Notes

Lecture 8
---------

Discussion questions

* How does Tierra work? Specifically, how does program control flow work, how do programs reproduce, and how do they die?
* To what extent is Tierra a simple model of the computer security problem?

When you report back, focus on the second question (as well as any other random observations). But make sure you go through the first so you all understand what is going on.

(Questions are on the wiki)

G1
 - how "loose" is the use of these bio terms? not defined!
 - what is this security model?
 - hyperparasites aren't punished for cheating

G2
 - how does the control flow work? bit unclear
 - host/parasite/hyperparasite interaction seems like computer security,
   user/attacker relationship, this is the battleground
 - we see diversity here, but not in computer security
 - computers can use multiple strategies, here they can use only one
   (can't be a parasite & hyperparasite)
   - if you can do it all you don't need diversity

G3
 - how do jumps work again? What is the role of the templates?
 - is a simple model of security - we see simple examples of malware (the parasites), cheating strategies
   - immunity to tampering looked kind of like ASLR, similar techniques
 
G4
 - if we make the perfect program, why would we want it to die?
    - shouldn't it live forever?
 - evolution of defenses in response to attacks - like red team, attacker arms race

 - this paper inspired my research career
 - but in grad school I got disillusioned
   - never develops complexity
   - but WHY?!

 - there's no way for one program to develop trust in another
   - thus no symbiosis, thus no increases in complexity
 
each "organism" is basically a process
 - except that procesess have read and execute access to other processes

machine code is like conventional machine code EXCEPT
 - errors (bit flips, instructions sometimes don't work)
 - no numeric arguments
   - so to store numbers in a register, you put a zero and then manipulate bits
 - jumps are with patterns of no-ops, not addresses  
   - just searches memory for the complementary pattern

So these changes are to make it more "biological", but what are they really?
 - to make programs that "work" even when they are changed randomly
 - they are a change in representation, something very important for GAs, and AI in general
   - makes the space of programs "denser" in terms of valid vs invalid programs

So where does computer security come in?
 - certainly looks like program conflict, attacker/defender dynamics
 - but again, it really isn't, because there's no trust relationships

What does it mean for a system to be secure?
 - its behavior conforms to its security policy, always
   - if it can be made to do things against policy, it is insecure

translate policy into model
 - programs keep reproducing? not satisfying, also guaranteed by the Tierra program

To be a good model of security, you need trust & trust violations
 - we get the mechanisms of an arms race, but without its basis in Tierra

The social parasites do exhibit proto-trust
 - but they have no way of enforcing those relationships
   - the "membranes" are fixed!

trust implies choice
 - whether to interact or not
    - well, maybe not quite with regards to extreme symbiosis,
      but then it is all one system?


what about diversity, does Tierra capture it?
 - in a base sense yes, programs aren't all the same
 - but that's not what diversity is about

Back in 1998, co-authored a paper "Building Diverse Computer Systems"

But I always thought that definition of diversity was wrong
 - it isn't just randomization