<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adamniazi</id>
	<title>Soma-notes - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adamniazi"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Adamniazi"/>
	<updated>2026-05-12T16:40:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Computer_Systems_Security_(Winter_2016)&amp;diff=20795</id>
		<title>Computer Systems Security (Winter 2016)</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Computer_Systems_Security_(Winter_2016)&amp;diff=20795"/>
		<updated>2016-03-08T19:11:52Z</updated>

		<summary type="html">&lt;p&gt;Adamniazi: /* Lectures and Exams */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Course Outline==&lt;br /&gt;
&lt;br /&gt;
[[Computer Systems Security: Winter 2016 Course Outline|Here]] is the course outline.&lt;br /&gt;
&lt;br /&gt;
==Hacking Opportunities==&lt;br /&gt;
&lt;br /&gt;
The [[SystemsSec 2016W Hacking Opportunities|Hacking Opportunities]] page lists potential hacking opportunities that you can attempt for your hacking journal.  If you attempt but do not successfully accomplish one of them, be sure to document what you tried.  As you learn more, you may come back to them and try again.&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
===Readings===&lt;br /&gt;
&lt;br /&gt;
* For the first part of the course we will be reading selections from Trent Jaeger&#039;s [http://www.morganclaypool.com/doi/abs/10.2200/S00126ED1V01Y200808SPT001 Operating Systems Security] textbook.  You can download the PDF [http://www.morganclaypool.com.proxy.library.carleton.ca/doi/abs/10.2200/S00126ED1V01Y200808SPT001 through Carleton&#039;s library].  In the reading assignments this text will be referred to as &amp;quot;Jaeger&amp;quot;.&lt;br /&gt;
* An excellent but dated text on browser security is Michal Zalewski&#039;s [https://code.google.com/p/browsersec/wiki/Main Browser Security Handbook].&lt;br /&gt;
&lt;br /&gt;
===Other Courses===&lt;br /&gt;
&lt;br /&gt;
* Dan Boneh ran an excellent course at Stanford in Spring 2015 on [https://crypto.stanford.edu/cs155/ Computer and Network Security].  This course has many interesting readings that we will not be covering.  Also, the assignments are very good sources for hacking opportunities.&lt;br /&gt;
* The assignments from the Winter 2015 run of COMP 4108 [https://ccsl.carleton.ca/~dmccarney/COMP4108/ are available].  They are a reasonable start for several hacking opportunities.&lt;br /&gt;
&lt;br /&gt;
==Lectures and Exams==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width: 100%;&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;&lt;br /&gt;
    &amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Date&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;&lt;br /&gt;
    &amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Topic&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;&lt;br /&gt;
    &amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Readings&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Jan. 7&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 1|Introduction]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Jaeger, Chapter 1 (Introduction)&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Jan. 12&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 2|Access Control, Security Hacking 101]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Jaeger, Chapter 2 (Access Control Fundamentals)&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Jan. 14&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 3|Multics, UNIX, and Windows]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Jaeger, Chapter 3 (Multics) and Chapter 4 (UNIX &amp;amp; Windows) &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Jan. 19&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 4|Secure OSs, theory and practice]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Jaeger, Chapter 6 (Security Kernels) and Chapter 7 (Securing Commercial Operating Systems)&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Jan. 21&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 5|LSM, SELinux, &amp;amp; Capabilities]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Jaeger, Chapter 9 (LSM &amp;amp; SELinux) and Chapter 10 (Secure Capability Systems)&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Jan. 26&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 6|Secure Virtual Machines, Systems Assurance]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Jaeger, Chapter 11 (Secure Virtual Machine Systems) and Chapter 12 (System Assurance)&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Jan. 28&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 7|Lecture 7]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Feb. 2&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 8|Lecture 8]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Feb. 4&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 9|Defensive Security Technologies / Hacking Opportunities]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Feb. 9&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 10|Security Research, Hashes, and Secure Protocols]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Feb. 11&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 11|Modeling a potential attack/ Midterm FAQ]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Feb. 23&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 12|Midterm Review]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Feb. 25&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Midterm (in class)&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Mar. 1&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 13|Buffer Overflow/Memory Corruption Attacks]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Aleph One (aka Elias Levy), [http://www.phrack.com/issues/49/14.html#article Smashing The Stack For Fun And Profit] (Phrack 49, 1996)&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Mar. 3&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 14|Buffer Overflow/Memory Corruption Defenses]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Wikipedia, [https://en.wikipedia.org/wiki/Buffer_overflow_protection Buffer Overflow Protection]&amp;lt;br&amp;gt;&lt;br /&gt;
       Crispin Cowan et al., [https://www.usenix.org/legacy/publications/library/proceedings/sec98/cowan.html StackGuard: Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks] (USENIX Security, 1998)&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Mar. 8&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 15|Lecture 15]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Hovav Shacham et al., [http://dx.doi.org/10.1145/1030083.1030124 On the effectiveness of address-space randomization] (ACM CCS, 2004) [http://dl.acm.org.proxy.library.carleton.ca/ft_gateway.cfm?id=1030124&amp;amp;ftid=285463&amp;amp;dwn=1&amp;amp;CFID=588127386&amp;amp;CFTOKEN=74533951 (proxy)]&amp;lt;br&amp;gt;&lt;br /&gt;
           Hovav Shachem [http://dx.doi.org/10.1145/1315245.1315313 The geometry of innocent flesh on the bone: return-into-libc without function calls (on the x86)] (ACM CCS 2007) [http://dl.acm.org.proxy.library.carleton.ca/ft_gateway.cfm?id=1315313&amp;amp;ftid=476749&amp;amp;dwn=1&amp;amp;CFID=588127386&amp;amp;CFTOKEN=74533951 (proxy)]&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Mar. 10&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 16|Lecture 16]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Bellovin and Cheswick, [http://dx.doi.org/10.1109/35.312843 Network Firewalls] (IEEE Communications Magazine, 1994) [http://ieeexplore.ieee.org.proxy.library.carleton.ca/stamp/stamp.jsp?tp=&amp;amp;arnumber=312843 (proxy)]&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Mar. 15&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 17|Lecture 17]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Mar. 17&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 18|Lecture 18]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Mar. 22&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 19|Lecture 19]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Mar. 24&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 20|Lecture 20]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Mar. 29&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 21|Lecture 21]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Mar. 31&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 22|Lecture 22]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Apr. 5&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 23|Lecture 23]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;April 7&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W Lecture 24|Lecture 24]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;April 19, 9 AM&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Final Exam&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assignments==&lt;br /&gt;
&amp;lt;table style=&amp;quot;width: 100%;&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;&lt;br /&gt;
    &amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Due Date&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;&lt;br /&gt;
    &amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Assignments&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Jan. 30&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W: Assignment 1|Assignment 1]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Feb. 22&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W: Assignment 2|Assignment 2]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;Mar. 19&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W: Assignment 3|Assignment 3]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;April 4&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;[[SystemsSec 2016W: Assignment 4|Assignment 4]]&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Lecture Notes Guidelines==&lt;br /&gt;
&lt;br /&gt;
Part of your participation mark is doing notes for at least one of the lectures.  Here are the guidelines for those notes.&lt;br /&gt;
&lt;br /&gt;
The class TA Borke (BorkeObadaObieh at cmail.carleton.ca) will be handling course notes.  Please contact her to schedule your class to take notes.&lt;br /&gt;
&lt;br /&gt;
Borke or Anil will set you up with an account on this wiki.  You&#039;ll enter your initial draft notes here and then work with Borke to make sure they are of sufficient quality.  This may require a few rounds of revisions; however, if you follow the guidelines below it shouldn&#039;t be too bad.&lt;br /&gt;
&lt;br /&gt;
You should plan on organizing your notes as follows:&lt;br /&gt;
* Organize them in at least the following sections: Topics &amp;amp; Readings and Notes.&lt;br /&gt;
* The Topics &amp;amp; Readings section lists the main topics covered in the class, e.g. &amp;quot;buffer overflows&amp;quot;.  Please use an unordered bulleted list (using *&#039;s in wiki markup).  In this section also list readings relevant to the lecture that were mentioned in class.&lt;br /&gt;
* Put your notes in the Notes section.&lt;br /&gt;
&lt;br /&gt;
Use (nested) lists if appropriate for the notes; however, please have some text that isn&#039;t bulleted.  Please try to make the notes even if you did not attend lecture; however, you don&#039;t need to cover every small bit of information that was covered.  In particular the notes do not need to include digressions into topics only tangentially related to the course.  Complete sentences are welcome but not required.&lt;br /&gt;
&lt;br /&gt;
==Security Reading Analysis Guidelines==&lt;br /&gt;
&lt;br /&gt;
A security reading analysis is a detailed analysis of a security research paper.  In it you analyze the key arguments of the paper and give your informed opinion.&lt;br /&gt;
&lt;br /&gt;
Most security papers can be classified as attack or defense papers.  You should analyze them differently.&lt;br /&gt;
&lt;br /&gt;
For attack papers:&lt;br /&gt;
* What systems are vulnerable to the attack?&lt;br /&gt;
* What is the nature of the vulnerability?&lt;br /&gt;
* What is the the exploit?  In particular, what is its technical core?&lt;br /&gt;
* How reproducible is the exploit?&lt;br /&gt;
* Are there likely to be many similar exploits, in the targeted system or other systems?&lt;br /&gt;
* How difficult will it be mitigate/fix the vulnerability in targeted systems?&lt;br /&gt;
&lt;br /&gt;
For defense papers:&lt;br /&gt;
* What is the security problem the paper addresses?  In what kind of threat model(s) does the problem exist?&lt;br /&gt;
* How significant is the problem?  Specifically, to what degree do existing solutions not work sufficiently well?&lt;br /&gt;
* What is the defense?  How does it work?&lt;br /&gt;
* To what degree will the defense potentially solve the targeted security problem?  In particular, how difficult will it be for attackers to adapt to this defense?&lt;br /&gt;
* What are the challenges facing deployment of the defense?  Are they likely to be overcome?&lt;br /&gt;
&lt;br /&gt;
For both kinds of papers, you should give your reaction by addressing questions like the following:&lt;br /&gt;
* Did you like the paper?&lt;br /&gt;
* What it easy to understand, or was it hard to read?&lt;br /&gt;
* Did you learn much from the paper?&lt;br /&gt;
* How surprised were you by the result?&lt;br /&gt;
&lt;br /&gt;
Your analysis should not cover the above questions separately (this would tend to make for a very wordy analysis); instead, use these questions as a guide in writing a short essay (1-2 pages) on the paper in question.&lt;/div&gt;</summary>
		<author><name>Adamniazi</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2016W_Lecture_14&amp;diff=20790</id>
		<title>SystemsSec 2016W Lecture 14</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2016W_Lecture_14&amp;diff=20790"/>
		<updated>2016-03-06T19:21:12Z</updated>

		<summary type="html">&lt;p&gt;Adamniazi: Created page with &amp;quot; == &amp;#039;&amp;#039;&amp;#039;Topics and Readings&amp;#039;&amp;#039;&amp;#039; == * Aleph One (aka Elias Levy), Smashing The Stack For Fun And Profit (Phrack 49, 1996) *Crispin Cowan et al., StackGuard: Automatic Adaptive De...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== &#039;&#039;&#039;Topics and Readings&#039;&#039;&#039; ==&lt;br /&gt;
* Aleph One (aka Elias Levy), Smashing The Stack For Fun And Profit (Phrack 49, 1996)&lt;br /&gt;
*Crispin Cowan et al., StackGuard: Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks (USENIX Security, 1998)&lt;br /&gt;
*Wikipedia, Buffer Overflow Protection&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Notes&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How to cause a buffer overflow?&#039;&#039;&#039;&lt;br /&gt;
* buffer overflows are usually done by taking advantage of protocols that come standard across systems&lt;br /&gt;
* memory mapping is one concept that is standardized across many systems, therefore, it can be guessed and predicted&lt;br /&gt;
* the similarities/standardization is based on machine instructions&lt;br /&gt;
* this can be changed using randomized instruction sets but it is not done on modern systems&lt;br /&gt;
* another regularity/standardization is memory layout but can be protected against using randomize memory layout (ASLR)&lt;br /&gt;
* another regularity is runnable code (executable memory), but can be protected by changing parts of memory to non-executable memory&lt;br /&gt;
* but changing parts of memory to non-exec code breaks the use of generating code on the fly&lt;br /&gt;
* StackGuard is a technique used to protect against buffer overflows&lt;br /&gt;
* the regularities/standardizations are the most modified part of memory to protect against overflows&lt;br /&gt;
* the cost of these things (armour the stack) causes process to be slow as more computations are required for security&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stackguard&#039;&#039;&#039;&lt;br /&gt;
* works by inserting a canary word; a special value on every function exit, that is checked at every function exit&lt;br /&gt;
* The compiler does not know it&lt;br /&gt;
* It must be generated at runtime&lt;br /&gt;
* Placed between Ret and local variables&lt;br /&gt;
* Idea is that if overflow occurs, the canary word will be overwritten and when the canary word is checked, it won&#039;t match and the process will blow up&lt;br /&gt;
&lt;br /&gt;
ff &amp;lt;br&amp;gt;&lt;br /&gt;
|-------------------| &amp;lt;br&amp;gt;&lt;br /&gt;
|---Main + offs---| SP (main) &amp;lt;br&amp;gt;&lt;br /&gt;
|---------------| canary word can be put here &amp;lt;br&amp;gt;&lt;br /&gt;
|---------SP-------| all the registers*, SP -&amp;gt; FP &amp;lt;br&amp;gt;&lt;br /&gt;
|-------------------| &amp;lt;br&amp;gt;&lt;br /&gt;
|----Locals-----| &amp;lt;br&amp;gt;&lt;br /&gt;
|---Ret Addr----| &amp;lt;br&amp;gt;&lt;br /&gt;
|-----locals-------| address 20000 &amp;lt;br&amp;gt;&lt;br /&gt;
|-------------------| &amp;lt;br&amp;gt;&lt;br /&gt;
|--code (text)--| &amp;lt;br&amp;gt;&lt;br /&gt;
|--code (text)--| &amp;lt;br&amp;gt;&lt;br /&gt;
|--code (text)--| &amp;lt;br&amp;gt;&lt;br /&gt;
|--code (text)--| &amp;lt;br&amp;gt;&lt;br /&gt;
0 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Hardware changing really fast is misleading in CS, but software lags behind&lt;br /&gt;
* ex is speech recognition and learning. The algorithms are old, but the HW thats finally caught up so these slow algos can be run faster&lt;br /&gt;
* there are many other defences against buffer overflow, but they are not really deployed (see wikipedia link)&lt;br /&gt;
* in hardware, there is an idea called control flow integrity (CFI) to detect an attack (waste of time according to anil), good way of protecting buffer overflows but maybe not protect against backdoors&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Why do we still care about buffer overflows?&#039;&#039;&#039;&lt;br /&gt;
* legacy code still exists in the world, that is why we will care about buffer overflows.&lt;br /&gt;
* not all legacy code has or can be updated&lt;br /&gt;
* fixing legacy code can cause important parts of code to break&lt;br /&gt;
* buffer overflows usually occur because the protections are not enabled properly&lt;br /&gt;
* C is considered unsafe language, and because so much of code in the world is written in C/C++, these exploits can be used&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other Defence: watching program behaviour&#039;&#039;&#039;&lt;br /&gt;
* watching how program behaves, looking for security violation&lt;br /&gt;
* done by profiling code the program executes&lt;br /&gt;
* can lead to slowing the processes, this is fixed by not monitoring everything, just where things can go wrong.&lt;br /&gt;
* what to monitor?&lt;br /&gt;
** sys calls&lt;br /&gt;
** anomaly detection can be used to protect against backdoors&lt;br /&gt;
* problem is, either layout everything that is permissible (white list) or what is not allowed (blacklist)&lt;br /&gt;
** White list do not account for how system might used&lt;br /&gt;
** Black lists do not specify everything that can be disallowed&lt;br /&gt;
* even with stupid models, we can do a lot&lt;br /&gt;
* used to check privileged entities is different ways&lt;br /&gt;
* defences beat by acting normally but mixing in things you want to do (&#039;&#039;mimicry attack&#039;&#039;)&lt;br /&gt;
* a buffer overflows fit into this by having the attack run code that acts normally, not detected by anomaly detection&lt;br /&gt;
** very hard to do when included with canary and randomizing&lt;/div&gt;</summary>
		<author><name>Adamniazi</name></author>
	</entry>
</feed>