<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=EvoSec_2025W_Lecture_2</id>
	<title>EvoSec 2025W Lecture 2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=EvoSec_2025W_Lecture_2"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=EvoSec_2025W_Lecture_2&amp;action=history"/>
	<updated>2026-04-22T08:59:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=EvoSec_2025W_Lecture_2&amp;diff=24952&amp;oldid=prev</id>
		<title>Soma: Created page with &quot;&lt;pre&gt; Lecture 2 ---------  cooperation &amp; trust in the context of evolution  Darwinian evolution  - population of individuals  - reproduction w/ variation + selection   life is a game of survival  - if you don&#039;t survive you&#039;re dead  your life is a resource for others  - can help them live, achieve their goals  so Darwinian evolution leads to &quot;fight for survival&quot; thinking  - kinda sounds like the Internet today right?  - only the secure survive  The metaphors of computer s...&quot;</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=EvoSec_2025W_Lecture_2&amp;diff=24952&amp;oldid=prev"/>
		<updated>2025-01-09T22:12:27Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;pre&amp;gt; Lecture 2 ---------  cooperation &amp;amp; trust in the context of evolution  Darwinian evolution  - population of individuals  - reproduction w/ variation + selection   life is a game of survival  - if you don&amp;#039;t survive you&amp;#039;re dead  your life is a resource for others  - can help them live, achieve their goals  so Darwinian evolution leads to &amp;quot;fight for survival&amp;quot; thinking  - kinda sounds like the Internet today right?  - only the secure survive  The metaphors of computer s...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Lecture 2&lt;br /&gt;
---------&lt;br /&gt;
&lt;br /&gt;
cooperation &amp;amp; trust in the context of evolution&lt;br /&gt;
&lt;br /&gt;
Darwinian evolution&lt;br /&gt;
 - population of individuals&lt;br /&gt;
 - reproduction w/ variation + selection&lt;br /&gt;
 &lt;br /&gt;
life is a game of survival&lt;br /&gt;
 - if you don&amp;#039;t survive you&amp;#039;re dead&lt;br /&gt;
&lt;br /&gt;
your life is a resource for others&lt;br /&gt;
 - can help them live, achieve their goals&lt;br /&gt;
&lt;br /&gt;
so Darwinian evolution leads to &amp;quot;fight for survival&amp;quot; thinking&lt;br /&gt;
 - kinda sounds like the Internet today right?&lt;br /&gt;
 - only the secure survive&lt;br /&gt;
&lt;br /&gt;
The metaphors of computer security are all around survival, fighting&lt;br /&gt;
 - &amp;quot;arms race&amp;quot;&lt;br /&gt;
 - military metaphors&lt;br /&gt;
 - attacker, defender&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But what does it take to win a war?&lt;br /&gt;
 - logistics is a HUGE part of what it takes to win&lt;br /&gt;
   (without good logistics, you lose)&lt;br /&gt;
&lt;br /&gt;
Is logistics a competitive process?&lt;br /&gt;
 - not if it works!&lt;br /&gt;
&lt;br /&gt;
Logistics is a problem of coordination&lt;br /&gt;
 - every part of the system working together to achieve a shared goal&lt;br /&gt;
 - might be producing and distributing food, clothing, weapons, or other things&lt;br /&gt;
    - if production or distribution fails, you lose&lt;br /&gt;
&lt;br /&gt;
So where does security come into logistics?&lt;br /&gt;
 - supply chain security, sure&lt;br /&gt;
 - but think more fundamental&lt;br /&gt;
&lt;br /&gt;
What do you need to make a supply chain work?&lt;br /&gt;
 - TRUST&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Readings for next week will be about trust&lt;br /&gt;
&lt;br /&gt;
How I define trust&lt;br /&gt;
 - model of behavior&lt;br /&gt;
 - aligned interests&lt;br /&gt;
&lt;br /&gt;
If A trusts B&lt;br /&gt;
 - A can predict B&amp;#039;s actions with some accuracy&lt;br /&gt;
 - A&amp;#039;s model of B predicts actions that are compatible with A&amp;#039;s goals&lt;br /&gt;
&lt;br /&gt;
If B is trustworthy&lt;br /&gt;
 - others can model B&amp;#039;s behavior&lt;br /&gt;
 - B&amp;#039;s general goals are not incompatible with those of others&lt;br /&gt;
   (generally pro-social, i.e., not in conflict with the group)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compare this with authentication&lt;br /&gt;
 - A authenticating B does not mean that A trusts B&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why might an agent behave in an untrustworthy manner?&lt;br /&gt;
 - because their personal goals no longer align with those of others,&lt;br /&gt;
   or those of the group in general&lt;br /&gt;
&lt;br /&gt;
Trust isn&amp;#039;t really about morality&lt;br /&gt;
 - it is more about predictability and alignment of interests&lt;br /&gt;
&lt;br /&gt;
Trusted computing base (TCB)&lt;br /&gt;
 - what does trust mean in this context?&lt;br /&gt;
 - the TCB is the part of the system that, if its security is compromised, the security of the entire system is compromised&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Explicit vs implicit trust&lt;br /&gt;
 - explicit trust involves models&lt;br /&gt;
   - so you can detect model deviations&lt;br /&gt;
 - implicit trust, there&amp;#039;s no model per se&lt;br /&gt;
   - but the functioning of the system depends upon certain&lt;br /&gt;
     conditions holding&lt;br /&gt;
   - if those conditions are violated, system will not function properly&lt;br /&gt;
      - but nothing in the system guarantees those conditions hold&lt;br /&gt;
      - (has to be guaranteed by external methods/factors)&lt;br /&gt;
&lt;br /&gt;
I would argue that most of computer security practice is based on systems of implicit trust&lt;br /&gt;
 - mechanisms that, if they work as intended, provide security guarantees&lt;br /&gt;
 - but, if they are compromised, nothing in the system inherently notices or cares&lt;br /&gt;
&lt;br /&gt;
Code injection defenses&lt;br /&gt;
 - no-execute memory, ASLR: implicit trust defenses&lt;br /&gt;
 - stack canaries: explicit trust&lt;br /&gt;
 &lt;br /&gt;
Consider authentication technologies&lt;br /&gt;
 - passwords: if an attacker steals a password, no way for the system to know&lt;br /&gt;
&lt;br /&gt;
How can you tell if an attacker is using compromised credentials?&lt;br /&gt;
 - intrusion detection, particularly anomaly-based intrusion detection&lt;br /&gt;
   (user or program based)&lt;br /&gt;
&lt;br /&gt;
Basic idea behind anomaly-based intrusion detection:&lt;br /&gt;
 - is the targed behaving as we&amp;#039;d expect?&lt;br /&gt;
 - or, does their behavior conform to our model of their behavior?&lt;br /&gt;
&lt;br /&gt;
You have to have a profile of behavior&lt;br /&gt;
 - which is typically built through &amp;quot;training&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You then detect deviations from the profile&lt;br /&gt;
 - while &amp;quot;testing&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sounds like a good candidate for machine learning right?&lt;br /&gt;
 - not quite&lt;br /&gt;
&lt;br /&gt;
The key for any anomaly IDS is that it differentiates between &amp;quot;allowed&amp;quot; and &amp;quot;normal&amp;quot;&lt;br /&gt;
 - the model of behavior is NOT what that entity is authorized to do&lt;br /&gt;
&lt;br /&gt;
Consider an email daemon&lt;br /&gt;
 - may need root access to deliver email as different users&lt;br /&gt;
 - but it won&amp;#039;t ever read random files in user directories or change system files&lt;br /&gt;
&lt;br /&gt;
So of course we could just use fine-grained permissions, make sure the email daemon can only write to mail files and can&amp;#039;t access anything else&lt;br /&gt;
 - but it is very hard to do such fine-grained permissions everywhere&lt;br /&gt;
 - generally easier to learn automatically&lt;br /&gt;
&lt;br /&gt;
even doing legit things in weird ways can be an anomaly&lt;br /&gt;
 - delivering email using different programs, APIs than it typically does&lt;br /&gt;
   - could detect a trojan version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
REST OF SEMESTER&lt;br /&gt;
 - readings assigned for each class&lt;br /&gt;
 - will need to turn in a response the night before (by midnight)&lt;br /&gt;
    - excerpt from your journal&lt;br /&gt;
    - around 500 words&lt;br /&gt;
      - don&amp;#039;t summarize readings, I&amp;#039;ve read them!&lt;br /&gt;
      - more discuss what you thought of it, other related thoughts&lt;br /&gt;
    - I&amp;#039;ll review in the morning before class&lt;br /&gt;
 - when we first meet, we&amp;#039;ll break into groups&lt;br /&gt;
    - you&amp;#039;ll discuss&lt;br /&gt;
 - we&amp;#039;ll then meet together to discuss in more depth&lt;br /&gt;
    - groups will often present their thoughts&lt;br /&gt;
&lt;br /&gt;
Don&amp;#039;t worry if you don&amp;#039;t understand the papers in depth&lt;br /&gt;
 - try to extract the basic arguments, not the details&lt;br /&gt;
 - read the abstract, intro, conclusion, look at the figures &amp;amp; tables&lt;br /&gt;
 - look at related work&lt;br /&gt;
 - then, look at the rest of the paper&lt;br /&gt;
&lt;br /&gt;
And we&amp;#039;ll focus on project-related things of course&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Trusted computing&lt;br /&gt;
-----------------&lt;br /&gt;
 - multiple meanings, we&amp;#039;ll discuss a few&lt;br /&gt;
 - trust really first comes up in computer security in the context of *assurance*&lt;br /&gt;
    - processes for creating computing systems that will have certain&lt;br /&gt;
      properties, particularly security properties&lt;br /&gt;
&lt;br /&gt;
I see assurance as a bit like quality control&lt;br /&gt;
 - process for creating &amp;quot;good&amp;quot; things&lt;br /&gt;
&lt;br /&gt;
To get assurance when building a secure system&lt;br /&gt;
 - get trusted people&lt;br /&gt;
 - have them create the correct requirements&lt;br /&gt;
   - have a process to make sure requirements are correct&lt;br /&gt;
 - implement requirements&lt;br /&gt;
   - have a process to make sure implementation achieves requirements&lt;br /&gt;
     - do testing &amp;amp; formal validation&lt;br /&gt;
 - this is the stuff of the &amp;quot;orange book&amp;quot;, common criteria&lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t start with a secure design, your system will forever be insecure&lt;br /&gt;
 - I DON&amp;#039;T AGREE&lt;br /&gt;
&lt;br /&gt;
Why?&lt;br /&gt;
 - because we can never follow the assurance process properly!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So classic assurance doesn&amp;#039;t work, isn&amp;#039;t practical. So what do we do instead?&lt;br /&gt;
 - FEATURES&lt;br /&gt;
&lt;br /&gt;
Biggest feature: cryptography&lt;br /&gt;
&lt;br /&gt;
Example: trusted computing&lt;br /&gt;
 - i.e., sign all the code&lt;br /&gt;
&lt;br /&gt;
Even in its primary use case of DRM (digital rights management), it fails all the time&lt;br /&gt;
 - and even more importantly, it is circumvented&lt;br /&gt;
   - e.g., tricking users into installing malicious apps&lt;br /&gt;
&lt;br /&gt;
trust =&amp;gt; code is signed&lt;br /&gt;
 - but signed code won&amp;#039;t necessarily behave as you expect&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
</feed>