<?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=Yannick</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=Yannick"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Yannick"/>
	<updated>2026-06-02T22:22:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_11&amp;diff=21514</id>
		<title>SystemsSec 2018W Lecture 11</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_11&amp;diff=21514"/>
		<updated>2018-02-14T15:07:57Z</updated>

		<summary type="html">&lt;p&gt;Yannick: /* Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Audio==&lt;br /&gt;
&lt;br /&gt;
[https://homeostasis.scs.carleton.ca/~soma/systemssec-2018w/lectures/comp4108-2018w-lec11-12Feb2017.m4a Lecture 11 Audio]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
=== HTTPS ===&lt;br /&gt;
- How to set it up?&lt;br /&gt;
- Get your public/private key pair signed by a respected authority&lt;br /&gt;
- You can also self-sign but may encounter errors&lt;br /&gt;
&lt;br /&gt;
- Current certificate is expired (Feb 2014)&lt;br /&gt;
&lt;br /&gt;
- Need to get new certificate&lt;br /&gt;
- New thing called “Let’s encrypt” that offers free certificates (only for 90 days)&lt;br /&gt;
- Recommends downloading CertBot&lt;br /&gt;
- Might already come with Linux distribution&lt;br /&gt;
&lt;br /&gt;
=== Certbot ===&lt;br /&gt;
- Default commands provide useful instructions&lt;br /&gt;
- Need to enter the webroot and url&lt;br /&gt;
- This is to prove to Certbot that we have control of the server&lt;br /&gt;
- Used to generate challenges that Certbot will verify&lt;br /&gt;
&lt;br /&gt;
- Update the server’s configuration file with the newly generated certificates&lt;br /&gt;
- In this case used symbolic links&lt;br /&gt;
- Restart the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Buffer overflows=== &lt;br /&gt;
- Make a classic C program&lt;br /&gt;
- Typing over the buffer length&lt;br /&gt;
- Detected stack smashing&lt;br /&gt;
- ONLY after writing and reading the bytes&lt;br /&gt;
- Use of canary words to detect if stack has been modified&lt;br /&gt;
- If you were a real attacker you would try and target a buffer that wasn’t protected by it&lt;br /&gt;
- The heap is a prime target&lt;br /&gt;
- If we turn off the stack protection&lt;br /&gt;
- Received a SIGSEGV from the kernel and the core is dumped&lt;br /&gt;
- Kernel saying that you tried to access memory that was not given&lt;br /&gt;
- Process can intercept signal and choose to do something with it&lt;br /&gt;
- Default handler causes you to crash with segfault&lt;br /&gt;
- What is “core dumped”?&lt;br /&gt;
- Comes from core memory&lt;br /&gt;
- Means that it’s written memory out&lt;br /&gt;
&lt;br /&gt;
Modify C program to have a function called target in the binary but it’s never called. Goal is to make the code jump to the target function and execute.&lt;br /&gt;
What tools can we use?&lt;br /&gt;
GDB to figure out what’s happening with memory&lt;br /&gt;
&lt;br /&gt;
“Stack Smashing for Fun and Profit”&lt;br /&gt;
Basic idea is you find the address and then overwrite the address&lt;br /&gt;
Might have to turn off address space randomization&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_11&amp;diff=21513</id>
		<title>SystemsSec 2018W Lecture 11</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_11&amp;diff=21513"/>
		<updated>2018-02-14T15:05:27Z</updated>

		<summary type="html">&lt;p&gt;Yannick: /* Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Audio==&lt;br /&gt;
&lt;br /&gt;
[https://homeostasis.scs.carleton.ca/~soma/systemssec-2018w/lectures/comp4108-2018w-lec11-12Feb2017.m4a Lecture 11 Audio]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
HTTPS&lt;br /&gt;
How to set it up?&lt;br /&gt;
Get your public/private key pair signed by a respected authority&lt;br /&gt;
You can also self-sign but may encounter errors&lt;br /&gt;
&lt;br /&gt;
Current certificate is expired (Feb 2014)&lt;br /&gt;
&lt;br /&gt;
Need to get new certificate&lt;br /&gt;
New thing called “Let’s encrypt” that offers free certificates (only for 90 days)&lt;br /&gt;
Recommends downloading CertBot&lt;br /&gt;
Might already come with Linux distribution&lt;br /&gt;
&lt;br /&gt;
Certbot&lt;br /&gt;
Default commands provide useful instructions&lt;br /&gt;
Need to enter the webroot and url&lt;br /&gt;
This is to prove to Certbot that we have control of the server&lt;br /&gt;
Used to generate challenges that Certbot will verify&lt;br /&gt;
&lt;br /&gt;
Update the server’s configuration file with the newly generated certificates&lt;br /&gt;
In this case used symbolic links&lt;br /&gt;
Restart the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Buffer overflows&lt;br /&gt;
Make a classic C program&lt;br /&gt;
Typing over the buffer length&lt;br /&gt;
Detected stack smashing&lt;br /&gt;
ONLY after writing and reading the bytes&lt;br /&gt;
Use of canary words to detect if stack has been modified&lt;br /&gt;
If you were a real attacker you would try and target a buffer that wasn’t protected by it&lt;br /&gt;
The heap is a prime target&lt;br /&gt;
If we turn off the stack protection&lt;br /&gt;
Received a SIGSEGV from the kernel and the core is dumped&lt;br /&gt;
Kernel saying that you tried to access memory that was not given&lt;br /&gt;
Process can intercept signal and choose to do something with it&lt;br /&gt;
Default handler causes you to crash with segfault&lt;br /&gt;
What is “core dumped”?&lt;br /&gt;
Comes from core memory&lt;br /&gt;
Means that it’s written memory out&lt;br /&gt;
&lt;br /&gt;
Modify C program to have a function called target in the binary but it’s never called. Goal is to make the code jump to the target function and execute.&lt;br /&gt;
What tools can we use?&lt;br /&gt;
GDB to figure out what’s happening with memory&lt;br /&gt;
&lt;br /&gt;
“Stack Smashing for Fun and Profit”&lt;br /&gt;
Basic idea is you find the address and then overwrite the address&lt;br /&gt;
Might have to turn off address space randomization&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_8&amp;diff=21482</id>
		<title>SystemsSec 2018W Lecture 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_8&amp;diff=21482"/>
		<updated>2018-01-31T17:31:09Z</updated>

		<summary type="html">&lt;p&gt;Yannick: /* What’s the security problem? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!&amp;gt; Reminder to complete the experiences on time (before March 26th)&lt;br /&gt;
&lt;br /&gt;
= Review of networking =&lt;br /&gt;
&lt;br /&gt;
== What is the basis of the internet? ==&lt;br /&gt;
&lt;br /&gt;
=== The IP packet ===&lt;br /&gt;
If you want to connect to the internet all you need to be able to do is send/receive packets to someone who is connected to the internet. Everyone along the line can forward or pass along packets. What about ethernet and wifi? It’s just ways of sending packets&lt;br /&gt;
&lt;br /&gt;
=== What’s an ip packet? ===&lt;br /&gt;
Data structure&lt;br /&gt;
:Header&lt;br /&gt;
::Source IP&lt;br /&gt;
::Destination IP&lt;br /&gt;
::Checksum&lt;br /&gt;
::Etc.&lt;br /&gt;
:Payload&lt;br /&gt;
Most important fields are the &#039;&#039;&#039;source IP address&#039;&#039;&#039; and the &#039;&#039;&#039;destination IP address&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;Note: Packets are unprotected! There’s no confidentiality, it’s all in the open. Everyone who touches it on the way gets to see (or change!) the entire packet. Example; NAT is changing the source and destination packets!&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What’s the security problem? ===&lt;br /&gt;
There is no security! How would you secure it? Certain fundamental problems about locking this down. What attacks can you perform on a set of IP packets?&lt;br /&gt;
; Eavesdropping&lt;br /&gt;
: &#039;&#039;&#039;&amp;amp;Delta;&#039;&#039;&#039; You can only encrypt the payload!&lt;br /&gt;
; Traffic analysis; rate of traffic, who’s talking to who, when they’re talking &lt;br /&gt;
: The only way to prevent traffic analysis is to encrypt the header and mask it&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
; Pizza delivery attack&lt;br /&gt;
: Let’s say you’re a military organization, and you want to plan an attack but your employees are staying late? Oh look they ordered a pizza late at night, so now you have to order pizza all the time, keep the parking lot full, etc.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;amp;Delta;&#039;&#039;&#039; You can use a trusted intermediary service&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;amp;Delta;&#039;&#039;&#039; Can also use onion routing (Tor) at the cost of speed&lt;br /&gt;
&lt;br /&gt;
It’s not that the designers weren’t smart, it’s that their decision had to factor in a tradeoff between functionality and security costs.&lt;br /&gt;
&lt;br /&gt;
=== Key management ===&lt;br /&gt;
You&#039;re going to send these packets to arbitrary other machines. Let’s assume you&#039;re going to do proper security (authentication, encrypt, etc..), you need to be able to identify the destination, you need their &#039;&#039;&#039;public key&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
; Where do I get the key? : Domain name system (DNS). &lt;br /&gt;
&lt;br /&gt;
The DNS maps Hostnames to IP addresses. Every domain name technically ends with a ‘.’ which is defined as the root, from there it goes down a level to com, and again down to something like google, etc..&lt;br /&gt;
&lt;br /&gt;
DNS is a bunch of public records, there’s no cryptographic protection in DNS. If you wanted to do that you would have to encrypt the entire mappings. Who would you trust to do that? Who has the authority to manage this? DNSSEC is an attempt to solve this and is currently being deployed but from a management’s perspective it is painful.&lt;br /&gt;
&lt;br /&gt;
What protocols would we use to securely communicate? TLS/SSH, but this would only work for the payload. It gives us end-to-end protection, except that everyone can see that those two endpoints are communicating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;amp;Delta;&#039;&#039;&#039; There is a VOIP attack, in which you can figure out the words being said simply by examining the size of the packets being sent.&lt;br /&gt;
&lt;br /&gt;
=== What does a VPN give you? ===&lt;br /&gt;
&#039;&#039;&#039;&amp;amp;Delta;&#039;&#039;&#039; What part of the traffic is encrypted and how is it authenticated?&lt;br /&gt;
With a VPN the whole packet is being encrypted, but it’s encapsulated in another header directed to the VPN gateway. Anyone observing your traffic would only see communication between you and the gateway. &lt;br /&gt;
&lt;br /&gt;
All you’ve done is move the problem, so why use it? It can help you against attackers close to you in the network space. If they have to compromise a VPN system further away that’s better maintained, it can (in principle) be harder to compromise.&lt;br /&gt;
&lt;br /&gt;
=== What is your path of trust? ===&lt;br /&gt;
You cannot trust hostnames because DNS can be messed with. You can’t trust IP address as those can be changed. You can only trust the encryption in the payload.&lt;br /&gt;
&lt;br /&gt;
=== How do you authenticate to a classic website? ===&lt;br /&gt;
Download a certificate and it is vouched for by a built-in authority. But how does the site authenticate with you? You can have a public key (and a private key) to identify yourself to the organization. Example is the Yubikey; an external thumb drive to store your key.&lt;br /&gt;
&lt;br /&gt;
=== Why not give everyone a key pair? ===&lt;br /&gt;
Hard to explain it to the everyone, and what happens when the cryptography becomes obsolete.&lt;br /&gt;
&lt;br /&gt;
At the end of the day, we can only really work with end-to-end and secure it on either end and hope that both ends are the correct ends.&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_8&amp;diff=21481</id>
		<title>SystemsSec 2018W Lecture 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_8&amp;diff=21481"/>
		<updated>2018-01-31T17:30:16Z</updated>

		<summary type="html">&lt;p&gt;Yannick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!&amp;gt; Reminder to complete the experiences on time (before March 26th)&lt;br /&gt;
&lt;br /&gt;
= Review of networking =&lt;br /&gt;
&lt;br /&gt;
== What is the basis of the internet? ==&lt;br /&gt;
&lt;br /&gt;
=== The IP packet ===&lt;br /&gt;
If you want to connect to the internet all you need to be able to do is send/receive packets to someone who is connected to the internet. Everyone along the line can forward or pass along packets. What about ethernet and wifi? It’s just ways of sending packets&lt;br /&gt;
&lt;br /&gt;
=== What’s an ip packet? ===&lt;br /&gt;
Data structure&lt;br /&gt;
:Header&lt;br /&gt;
::Source IP&lt;br /&gt;
::Destination IP&lt;br /&gt;
::Checksum&lt;br /&gt;
::Etc.&lt;br /&gt;
:Payload&lt;br /&gt;
Most important fields are the &#039;&#039;&#039;source IP address&#039;&#039;&#039; and the &#039;&#039;&#039;destination IP address&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;Note: Packets are unprotected! There’s no confidentiality, it’s all in the open. Everyone who touches it on the way gets to see (or change!) the entire packet. Example; NAT is changing the source and destination packets!&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What’s the security problem? ===&lt;br /&gt;
There is no security! How would you secure it? Certain fundamental problems about locking this down. What attacks can you perform on a set of IP packets?&lt;br /&gt;
; Eavesdropping&lt;br /&gt;
: &#039;&#039;&#039;&amp;amp;Delta;&#039;&#039;&#039; You can only encrypt the payload!&lt;br /&gt;
; Traffic analysis; rate of traffic, who’s talking to who, when they’re talking &lt;br /&gt;
: The only way to prevent traffic analysis is to encrypt the header and mask it&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
; Pizza delivery attack&lt;br /&gt;
: Let’s say you’re a military organization, and you want to plan an attack but your employees are staying late? Oh look they ordered a pizza late at night, so now you have to order pizza all the time, keep the parking lot full, etc.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;amp;Delta;&#039;&#039;&#039; You can use a trusted intermediary service&lt;br /&gt;
&amp;amp;Delta; Can also use onion routing (Tor) at the cost of speed&lt;br /&gt;
&lt;br /&gt;
It’s not that the designers weren’t smart, it’s that their decision had to factor in a tradeoff between functionality and security costs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Key management ===&lt;br /&gt;
You&#039;re going to send these packets to arbitrary other machines. Let’s assume you&#039;re going to do proper security (authentication, encrypt, etc..), you need to be able to identify the destination, you need their &#039;&#039;&#039;public key&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
; Where do I get the key? : Domain name system (DNS). &lt;br /&gt;
&lt;br /&gt;
The DNS maps Hostnames to IP addresses. Every domain name technically ends with a ‘.’ which is defined as the root, from there it goes down a level to com, and again down to something like google, etc..&lt;br /&gt;
&lt;br /&gt;
DNS is a bunch of public records, there’s no cryptographic protection in DNS. If you wanted to do that you would have to encrypt the entire mappings. Who would you trust to do that? Who has the authority to manage this? DNSSEC is an attempt to solve this and is currently being deployed but from a management’s perspective it is painful.&lt;br /&gt;
&lt;br /&gt;
What protocols would we use to securely communicate? TLS/SSH, but this would only work for the payload. It gives us end-to-end protection, except that everyone can see that those two endpoints are communicating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;amp;Delta;&#039;&#039;&#039; There is a VOIP attack, in which you can figure out the words being said simply by examining the size of the packets being sent.&lt;br /&gt;
&lt;br /&gt;
=== What does a VPN give you? ===&lt;br /&gt;
&#039;&#039;&#039;&amp;amp;Delta;&#039;&#039;&#039; What part of the traffic is encrypted and how is it authenticated?&lt;br /&gt;
With a VPN the whole packet is being encrypted, but it’s encapsulated in another header directed to the VPN gateway. Anyone observing your traffic would only see communication between you and the gateway. &lt;br /&gt;
&lt;br /&gt;
All you’ve done is move the problem, so why use it? It can help you against attackers close to you in the network space. If they have to compromise a VPN system further away that’s better maintained, it can (in principle) be harder to compromise.&lt;br /&gt;
&lt;br /&gt;
=== What is your path of trust? ===&lt;br /&gt;
You cannot trust hostnames because DNS can be messed with. You can’t trust IP address as those can be changed. You can only trust the encryption in the payload.&lt;br /&gt;
&lt;br /&gt;
=== How do you authenticate to a classic website? ===&lt;br /&gt;
Download a certificate and it is vouched for by a built-in authority. But how does the site authenticate with you? You can have a public key (and a private key) to identify yourself to the organization. Example is the Yubikey; an external thumb drive to store your key.&lt;br /&gt;
&lt;br /&gt;
=== Why not give everyone a key pair? ===&lt;br /&gt;
Hard to explain it to the everyone, and what happens when the cryptography becomes obsolete.&lt;br /&gt;
&lt;br /&gt;
At the end of the day, we can only really work with end-to-end and secure it on either end and hope that both ends are the correct ends.&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_8&amp;diff=21480</id>
		<title>SystemsSec 2018W Lecture 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_8&amp;diff=21480"/>
		<updated>2018-01-31T17:11:56Z</updated>

		<summary type="html">&lt;p&gt;Yannick: Created page with &amp;quot;&amp;lt;!&amp;gt; Reminder to complete the experiences on time (before March 26th)  Review of networking What is the basis of the internet? IP packet, if you want to connect to the internet...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!&amp;gt; Reminder to complete the experiences on time (before March 26th)&lt;br /&gt;
&lt;br /&gt;
Review of networking&lt;br /&gt;
What is the basis of the internet?&lt;br /&gt;
IP packet, if you want to connect to the internet all you need it to be able to send/receive packets to someone who is connected to the internet&lt;br /&gt;
Everyone along the line can forward or pass along packets&lt;br /&gt;
What about ethernet and wifi? It’s just ways of sending packets&lt;br /&gt;
&lt;br /&gt;
What’s an ip packet?&lt;br /&gt;
Data structure&lt;br /&gt;
Header&lt;br /&gt;
Source IP&lt;br /&gt;
Destination IP&lt;br /&gt;
Checksum&lt;br /&gt;
Etc.&lt;br /&gt;
Payload&lt;br /&gt;
Most important fields; source IP address and destination IP address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!&amp;gt; Packets are unprotected! There’s no confidentiality, it’s all in the open. Everyone who touches it on the way gets to see (or change!) the entire packet. Example; NAT is changing the source and destination packets!&lt;br /&gt;
&lt;br /&gt;
What’s the security problem? There is no security!&lt;br /&gt;
&lt;br /&gt;
How would you secure it? Certain fundamental problems about locking this down. What attacks can you perform on a set of IP packets?&lt;br /&gt;
Eavesdropping&lt;br /&gt;
&amp;lt;!&amp;gt; You can only encrypt the payload!&lt;br /&gt;
Traffic analysis; rate of traffic, who’s talking to who, when they’re talking &lt;br /&gt;
The only way to prevent traffic analysis is to encrypt the header and mask it&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!&amp;gt; Pizza delivery attack&lt;br /&gt;
Let’s say you’re a military organization, and you want to plan an attack but your employees are staying late? Oh look they ordered a pizza late at night, so now you have to order pizza all the time, keep the parking lot full, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!&amp;gt; You can use a trusted intermediary service&lt;br /&gt;
&amp;lt;!&amp;gt; Can also use onion routing (Tor) at the cost of speed&lt;br /&gt;
&lt;br /&gt;
It’s not that the designers weren’t smart, it’s that their decision had to factor in a tradeoff between functionality and security costs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Key management&lt;br /&gt;
I’m going to send these packets to arbitrary other machines. Let’s assume we’re going to do proper security (authentication, encrypt, etc..), I need to be able to identify the destination, I need their public key. &lt;br /&gt;
&lt;br /&gt;
Where do I get the key? Domain name system (DNS). &lt;br /&gt;
Every domain name ends with a ‘.’&lt;br /&gt;
Starts from root, goes to com, goes to google, etc..&lt;br /&gt;
Hostname =&amp;gt; IP address&lt;br /&gt;
&lt;br /&gt;
DNS is a bunch of records, there’s no cryptographic protection in DNS. You have to encrypt the entire mappins, who do you trust to do that? Who has the authority to manage this? DNSSEC is an attempt to solve this and is currently being deployed but from a management’s perspective is painful.&lt;br /&gt;
&lt;br /&gt;
What protocols would we use to securely communicate? TLS/SSH, but this would only work for the payload. Gives us end-to-end protection, except that everyone can see that those two endpoints are communicating.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!&amp;gt; VOIP attack, you can figure out the words being said simply by examining the size of the packets being sent.&lt;br /&gt;
&lt;br /&gt;
What does a VPN give you?&lt;br /&gt;
&amp;lt;!&amp;gt; What part of the traffic encrypted and how is it authenticated?&lt;br /&gt;
The whole packet is being encrypted, but it’s encapsulated in another header directed to the VPN gateway. Anyone observing your traffic would only see communication between you and the gateway. &lt;br /&gt;
&lt;br /&gt;
All you’ve done is move the problem, so why use it? It can help you against attackers close to you in the network space. If they have to compromise a VPN system further away that’s better maintained, it can in principle be harder to compromise.&lt;br /&gt;
&lt;br /&gt;
What is your path of trust?&lt;br /&gt;
You cannot trust hostnames because DNS can be messed with. You can’t trust IP address as those can be changed. You can only trust the encryption in the payload.&lt;br /&gt;
&lt;br /&gt;
How do you authenticate to a classic website?&lt;br /&gt;
Download a certificate and it is vouched for by a built-in authority. But how does the site authenticate with you? You can have a public key (and a private key) to identify yourself to the organization. Example is the Yubikey; an external thumb drive to store your key.&lt;br /&gt;
&lt;br /&gt;
Why not give everyone a key pair?&lt;br /&gt;
Hard to explain it to the everyone, and what happens when the cryptography becomes obsolete.&lt;br /&gt;
&lt;br /&gt;
At the end of the day, we can only really work with end-to-end and secure it on either end and hope that both ends are the correct ends.&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Computer_Systems_Security_(Winter_2018)&amp;diff=21479</id>
		<title>Computer Systems Security (Winter 2018)</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Computer_Systems_Security_(Winter_2018)&amp;diff=21479"/>
		<updated>2018-01-31T17:11:27Z</updated>

		<summary type="html">&lt;p&gt;Yannick: /* January 31, 2018 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Course Outline==&lt;br /&gt;
&lt;br /&gt;
[[Computer Systems Security: Winter 2018 Course Outline|Course Outline]]&lt;br /&gt;
&lt;br /&gt;
==Experiences==&lt;br /&gt;
&lt;br /&gt;
You are required to complete 9 experiences throughout the semester.&lt;br /&gt;
&lt;br /&gt;
* [[Computer Systems Security: Winter 2018 Experiences|List of Experiences]]&lt;br /&gt;
&lt;br /&gt;
==Assignments==&lt;br /&gt;
&lt;br /&gt;
Assignments will be posted here as they become available&lt;br /&gt;
&lt;br /&gt;
* [[Computer Systems Security: Winter 2018 Assignment 1|Assignment 1]]&lt;br /&gt;
* Assignment 2&lt;br /&gt;
* Assignment 3&lt;br /&gt;
* Assignment 4&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
Here are some resources you may find useful:&lt;br /&gt;
&lt;br /&gt;
* [http://homeostasis.scs.carleton.ca/~soma/systemssec-2018w/comp4108-2018w.ova A Virtualbox OVF image for Ubuntu 17.10.1]&lt;br /&gt;
* [https://openstack.scs.carleton.ca The SCS openstack cluster].  Note that you can only access this from the Carleton network.  To access from elsewhere, [https://carleton.ca/its/help-centre/remote-access/ VPN in] to the university.  (On Linux you can also use openconnect rather than the Cisco software provided by Carleton.)&lt;br /&gt;
&lt;br /&gt;
If you cannot access openstack, try [http://www.scs.carleton.ca/webacct changing your SCS password].&lt;br /&gt;
&lt;br /&gt;
==Schedule==&lt;br /&gt;
&lt;br /&gt;
===January 8, 2018===&lt;br /&gt;
&lt;br /&gt;
[[SystemsSec 2018W Lecture 1|Introduction]]&lt;br /&gt;
&lt;br /&gt;
===January 10, 2018===&lt;br /&gt;
&lt;br /&gt;
[[SystemsSec 2018W Lecture 2|Threat Modelling]]&lt;br /&gt;
&lt;br /&gt;
===January 15, 2018===&lt;br /&gt;
&lt;br /&gt;
[[SystemsSec 2018W Lecture 3|Common tools]]&lt;br /&gt;
&lt;br /&gt;
===January 17, 2018===&lt;br /&gt;
&lt;br /&gt;
[[SystemsSec 2018W Lecture 4|passwd]]&lt;br /&gt;
&lt;br /&gt;
===January 22, 2018===&lt;br /&gt;
&lt;br /&gt;
[[SystemsSec 2018W Lecture 5|Networks 1]]&lt;br /&gt;
&lt;br /&gt;
===January 24, 2018===&lt;br /&gt;
&lt;br /&gt;
[[SystemsSec 2018W Lecture 6|Virtual machines 1]]&lt;br /&gt;
&lt;br /&gt;
===January 29, 2018===&lt;br /&gt;
&lt;br /&gt;
[[SystemsSec 2018W Lecture 7|Cryptography 1]]&lt;br /&gt;
&lt;br /&gt;
===January 31, 2018===&lt;br /&gt;
&lt;br /&gt;
Assignment 1 due&lt;br /&gt;
&lt;br /&gt;
[[SystemsSec 2018W Lecture 8|Networking]]&lt;br /&gt;
&lt;br /&gt;
===February 14, 2018===&lt;br /&gt;
&lt;br /&gt;
Assignment 2 due&lt;br /&gt;
&lt;br /&gt;
===February 19 &amp;amp; 21, 2018===&lt;br /&gt;
&lt;br /&gt;
Winter break, no classes&lt;br /&gt;
&lt;br /&gt;
===February 26, 2018===&lt;br /&gt;
&lt;br /&gt;
Mid-term review&lt;br /&gt;
&lt;br /&gt;
===February 28, 2018===&lt;br /&gt;
&lt;br /&gt;
Mid-term Exam&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===March 19, 2018===&lt;br /&gt;
&lt;br /&gt;
Assignment 3 due&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===April 4, 2018===&lt;br /&gt;
&lt;br /&gt;
Assignment 4 due&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===April 9, 2018===&lt;br /&gt;
&lt;br /&gt;
Last day of class&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_3&amp;diff=21431</id>
		<title>SystemsSec 2018W Lecture 3</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_3&amp;diff=21431"/>
		<updated>2018-01-19T23:50:38Z</updated>

		<summary type="html">&lt;p&gt;Yannick: /* 3rd Era (Networking) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Notes =&lt;br /&gt;
Class 3, January 15&lt;br /&gt;
&lt;br /&gt;
== 1st Era (Time Sharing Systems) ==&lt;br /&gt;
Computing originated from cracking codes during WWII and initial computer security came from physical security measures put in place to limit physical access to the machine.&lt;br /&gt;
&lt;br /&gt;
; Mainframes&lt;br /&gt;
: Large, powerful computers. Early models of which implemented no implicit security. It was based on access to the system.&lt;br /&gt;
: Batch Processing: Processing written programs in batches. Programs were written offline then queued to be ran one after the other.&lt;br /&gt;
: Programmers didn&#039;t actually interact with the computer, the code went through Operators.&lt;br /&gt;
: Switched to time sharing which allowed many users to access the same machine concurrently through multiple terminals.&lt;br /&gt;
&lt;br /&gt;
Eventually people started wanting more time and resources with the computer and this caused the organization (HR) to start creating &#039;&#039;&#039;policy&#039;&#039;&#039; to manage the mainframe. Creating these policies lead to the computer getting the power to say &#039;No&#039; to operations, which is the early creation of software based access control.&lt;br /&gt;
; Access control&lt;br /&gt;
: Users, Groups&lt;br /&gt;
: Permissions&lt;br /&gt;
: ACLs (Access control list)&lt;br /&gt;
&lt;br /&gt;
However the number of people with knowledge about these systems was limited and all of them could easily circumvent the policy.&lt;br /&gt;
&lt;br /&gt;
== 2nd Era (Personal Computers) ==&lt;br /&gt;
Computers for personal use. Peer to peer file sharing (via floppy disks, etc...). This era of personal computers is all about copy protection and piracy as files could now be shared among peers and copied onto their own computer.&lt;br /&gt;
&lt;br /&gt;
; Copy protection&lt;br /&gt;
: any effort designed to prevent the reproduction of software, films, music, and other media, usually for copyright reasons.&lt;br /&gt;
: essentially telling a personal computer not to do what it was made to do.&lt;br /&gt;
&lt;br /&gt;
; Piracy : the unauthorized use or reproduction of another&#039;s work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mostly driven by people&#039;s desire to share games with their friends, the widespread sharing of software from unknown sources allowed for &amp;quot;malicious&amp;quot; programs to spread. When you introduce file-sharing between computers you get the invention of computer viruses (malicious software) and anti-virus software (added policy to protect resources).&lt;br /&gt;
&lt;br /&gt;
== 3rd Era (Networking) ==&lt;br /&gt;
Once you start networking computers together, both the previous era problems are now combined and become much more important. As computers are now interconnected, attacks are possible through the internet. An example is the [https://en.wikipedia.org/wiki/Morris_worm Morris Worm] that was a combination of various software bugs used to circumvent access controls. Although it had no malicious intent behind the creation, a bug in the code made it continue to duplicate itself and crash the system.&lt;br /&gt;
&lt;br /&gt;
It was determined that more complicated security measures were necessary.&lt;br /&gt;
; Attackers perspective&lt;br /&gt;
: find exploits&lt;br /&gt;
: infect systems&lt;br /&gt;
; Defenders perspective&lt;br /&gt;
: find exploits before they&#039;re used &lt;br /&gt;
: patch them &lt;br /&gt;
: or patch exploits after they&#039;re used. &lt;br /&gt;
&lt;br /&gt;
; Unix Directory System&lt;br /&gt;
: Labels for processes, files, directories, read/write/execute permissions.&lt;br /&gt;
: Users: UID&lt;br /&gt;
: Groups: GID&lt;br /&gt;
: Designed for multi-user systems. Works for single user systems as some processes require more permissions than others. Still in place due to legacy systems. Is considered robust due to evolution.&lt;br /&gt;
&lt;br /&gt;
; Military : The military and intelligence organizations cared about security from the beginning. Developed their own systems to enforce classification levels. Was convoluted and is no longer in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can understand any mechanism by looking at where it came from and what problem it was designed to solve. &lt;br /&gt;
    &amp;quot;The internet today is a result of evolution.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= E1 results =&lt;br /&gt;
      9 Firewall&lt;br /&gt;
      8 Windows Defender&lt;br /&gt;
      5 Windows Firewall&lt;br /&gt;
      5 https&lt;br /&gt;
      5 Google Authenticator&lt;br /&gt;
      4 SSL&lt;br /&gt;
      4 Passwords&lt;br /&gt;
      3 VPN&lt;br /&gt;
      3 uBlock Origin&lt;br /&gt;
      3 SSH&lt;br /&gt;
      3 KeePass&lt;br /&gt;
      3 firewall&lt;br /&gt;
      3 Cryptography&lt;br /&gt;
      3 Antivirus&lt;br /&gt;
      3 2FA&lt;br /&gt;
      2 Wireshark&lt;br /&gt;
      2 vpn&lt;br /&gt;
      2 Virtual Machines&lt;br /&gt;
      2 Valve Anti Cheat&lt;br /&gt;
      2 traceroute&lt;br /&gt;
      2 password&lt;br /&gt;
      2 OpenVPN&lt;br /&gt;
      2 netstat&lt;br /&gt;
      2 Netcat&lt;br /&gt;
      2 md5sum&lt;br /&gt;
      2 Malwarebytes Anti-Malware&lt;br /&gt;
      2 Malwarebytes&lt;br /&gt;
      2 HTTPS&lt;br /&gt;
      2 Filevault&lt;br /&gt;
      2 encryption&lt;br /&gt;
      2 Anti-virus&lt;br /&gt;
      2 antivirus&lt;br /&gt;
      2 access control&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_3&amp;diff=21430</id>
		<title>SystemsSec 2018W Lecture 3</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_3&amp;diff=21430"/>
		<updated>2018-01-19T23:35:53Z</updated>

		<summary type="html">&lt;p&gt;Yannick: /* 2nd Era (Personal Computers) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Notes =&lt;br /&gt;
Class 3, January 15&lt;br /&gt;
&lt;br /&gt;
== 1st Era (Time Sharing Systems) ==&lt;br /&gt;
Computing originated from cracking codes during WWII and initial computer security came from physical security measures put in place to limit physical access to the machine.&lt;br /&gt;
&lt;br /&gt;
; Mainframes&lt;br /&gt;
: Large, powerful computers. Early models of which implemented no implicit security. It was based on access to the system.&lt;br /&gt;
: Batch Processing: Processing written programs in batches. Programs were written offline then queued to be ran one after the other.&lt;br /&gt;
: Programmers didn&#039;t actually interact with the computer, the code went through Operators.&lt;br /&gt;
: Switched to time sharing which allowed many users to access the same machine concurrently through multiple terminals.&lt;br /&gt;
&lt;br /&gt;
Eventually people started wanting more time and resources with the computer and this caused the organization (HR) to start creating &#039;&#039;&#039;policy&#039;&#039;&#039; to manage the mainframe. Creating these policies lead to the computer getting the power to say &#039;No&#039; to operations, which is the early creation of software based access control.&lt;br /&gt;
; Access control&lt;br /&gt;
: Users, Groups&lt;br /&gt;
: Permissions&lt;br /&gt;
: ACLs (Access control list)&lt;br /&gt;
&lt;br /&gt;
However the number of people with knowledge about these systems was limited and all of them could easily circumvent the policy.&lt;br /&gt;
&lt;br /&gt;
== 2nd Era (Personal Computers) ==&lt;br /&gt;
Computers for personal use. Peer to peer file sharing (via floppy disks, etc...). This era of personal computers is all about copy protection and piracy as files could now be shared among peers and copied onto their own computer.&lt;br /&gt;
&lt;br /&gt;
; Copy protection&lt;br /&gt;
: any effort designed to prevent the reproduction of software, films, music, and other media, usually for copyright reasons.&lt;br /&gt;
: essentially telling a personal computer not to do what it was made to do.&lt;br /&gt;
&lt;br /&gt;
; Piracy : the unauthorized use or reproduction of another&#039;s work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mostly driven by people&#039;s desire to share games with their friends, the widespread sharing of software from unknown sources allowed for &amp;quot;malicious&amp;quot; programs to spread. When you introduce file-sharing between computers you get the invention of computer viruses (malicious software) and anti-virus software (added policy to protect resources).&lt;br /&gt;
&lt;br /&gt;
== 3rd Era (Networking) ==&lt;br /&gt;
Computers are now interconnected, attacks are possible through the internet. See [https://en.wikipedia.org/wiki/Morris_worm Morris Worm]&lt;br /&gt;
&lt;br /&gt;
More complicated security measures necessary. From an attackers perspective: find exploits, infect systems. From a defenders perspective: find exploits before they&#039;re used, patch them, or patch exploits after they&#039;re used.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The internet today is a result of evolution.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Unix Directory System &#039;&#039;&#039;&lt;br /&gt;
** Labels for processes, files, directories, read/write/execute permissions.&lt;br /&gt;
*** Users: UID&lt;br /&gt;
*** Groups: GID&lt;br /&gt;
* Designed for multi-user systems. Works for single user systems as some processes require more permissions than others. Still in place due to legacy systems. Is considered robust due to evolution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Military &#039;&#039;&#039;&lt;br /&gt;
The military and intelligence organizations cared about security from the beginning. Developed their own systems to enforce classification levels. Was convoluted and is no longer in use.&lt;br /&gt;
&lt;br /&gt;
= E1 results =&lt;br /&gt;
      9 Firewall&lt;br /&gt;
      8 Windows Defender&lt;br /&gt;
      5 Windows Firewall&lt;br /&gt;
      5 https&lt;br /&gt;
      5 Google Authenticator&lt;br /&gt;
      4 SSL&lt;br /&gt;
      4 Passwords&lt;br /&gt;
      3 VPN&lt;br /&gt;
      3 uBlock Origin&lt;br /&gt;
      3 SSH&lt;br /&gt;
      3 KeePass&lt;br /&gt;
      3 firewall&lt;br /&gt;
      3 Cryptography&lt;br /&gt;
      3 Antivirus&lt;br /&gt;
      3 2FA&lt;br /&gt;
      2 Wireshark&lt;br /&gt;
      2 vpn&lt;br /&gt;
      2 Virtual Machines&lt;br /&gt;
      2 Valve Anti Cheat&lt;br /&gt;
      2 traceroute&lt;br /&gt;
      2 password&lt;br /&gt;
      2 OpenVPN&lt;br /&gt;
      2 netstat&lt;br /&gt;
      2 Netcat&lt;br /&gt;
      2 md5sum&lt;br /&gt;
      2 Malwarebytes Anti-Malware&lt;br /&gt;
      2 Malwarebytes&lt;br /&gt;
      2 HTTPS&lt;br /&gt;
      2 Filevault&lt;br /&gt;
      2 encryption&lt;br /&gt;
      2 Anti-virus&lt;br /&gt;
      2 antivirus&lt;br /&gt;
      2 access control&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_3&amp;diff=21429</id>
		<title>SystemsSec 2018W Lecture 3</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_3&amp;diff=21429"/>
		<updated>2018-01-19T23:34:48Z</updated>

		<summary type="html">&lt;p&gt;Yannick: /* 2nd Era (Personal Computers) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Notes =&lt;br /&gt;
Class 3, January 15&lt;br /&gt;
&lt;br /&gt;
== 1st Era (Time Sharing Systems) ==&lt;br /&gt;
Computing originated from cracking codes during WWII and initial computer security came from physical security measures put in place to limit physical access to the machine.&lt;br /&gt;
&lt;br /&gt;
; Mainframes&lt;br /&gt;
: Large, powerful computers. Early models of which implemented no implicit security. It was based on access to the system.&lt;br /&gt;
: Batch Processing: Processing written programs in batches. Programs were written offline then queued to be ran one after the other.&lt;br /&gt;
: Programmers didn&#039;t actually interact with the computer, the code went through Operators.&lt;br /&gt;
: Switched to time sharing which allowed many users to access the same machine concurrently through multiple terminals.&lt;br /&gt;
&lt;br /&gt;
Eventually people started wanting more time and resources with the computer and this caused the organization (HR) to start creating &#039;&#039;&#039;policy&#039;&#039;&#039; to manage the mainframe. Creating these policies lead to the computer getting the power to say &#039;No&#039; to operations, which is the early creation of software based access control.&lt;br /&gt;
; Access control&lt;br /&gt;
: Users, Groups&lt;br /&gt;
: Permissions&lt;br /&gt;
: ACLs (Access control list)&lt;br /&gt;
&lt;br /&gt;
However the number of people with knowledge about these systems was limited and all of them could easily circumvent the policy.&lt;br /&gt;
&lt;br /&gt;
== 2nd Era (Personal Computers) ==&lt;br /&gt;
Computers for personal use. Peer to peer file sharing (via floppy disks, etc...). This era of personal computers is all about copy protection and piracy as files could now be shared among peers and copied onto their own computer.&lt;br /&gt;
&lt;br /&gt;
; Copy protection&lt;br /&gt;
: any effort designed to prevent the reproduction of software, films, music, and other media, usually for copyright reasons.&lt;br /&gt;
: essentially telling a personal computer not to do what it was made to do.&lt;br /&gt;
&lt;br /&gt;
; Piracy : the unauthorized use or reproduction of another&#039;s work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mostly driven by people&#039;s desire to share games with their friends, the widespread sharing of software from unknown sources allowed for &amp;quot;malicious&amp;quot; programs to spread. When you introduce networking you get the invention of computer viruses (malicious software) and anti-virus software (added policy to protect resources).&lt;br /&gt;
&lt;br /&gt;
== 3rd Era (Networking) ==&lt;br /&gt;
Computers are now interconnected, attacks are possible through the internet. See [https://en.wikipedia.org/wiki/Morris_worm Morris Worm]&lt;br /&gt;
&lt;br /&gt;
More complicated security measures necessary. From an attackers perspective: find exploits, infect systems. From a defenders perspective: find exploits before they&#039;re used, patch them, or patch exploits after they&#039;re used.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The internet today is a result of evolution.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Unix Directory System &#039;&#039;&#039;&lt;br /&gt;
** Labels for processes, files, directories, read/write/execute permissions.&lt;br /&gt;
*** Users: UID&lt;br /&gt;
*** Groups: GID&lt;br /&gt;
* Designed for multi-user systems. Works for single user systems as some processes require more permissions than others. Still in place due to legacy systems. Is considered robust due to evolution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Military &#039;&#039;&#039;&lt;br /&gt;
The military and intelligence organizations cared about security from the beginning. Developed their own systems to enforce classification levels. Was convoluted and is no longer in use.&lt;br /&gt;
&lt;br /&gt;
= E1 results =&lt;br /&gt;
      9 Firewall&lt;br /&gt;
      8 Windows Defender&lt;br /&gt;
      5 Windows Firewall&lt;br /&gt;
      5 https&lt;br /&gt;
      5 Google Authenticator&lt;br /&gt;
      4 SSL&lt;br /&gt;
      4 Passwords&lt;br /&gt;
      3 VPN&lt;br /&gt;
      3 uBlock Origin&lt;br /&gt;
      3 SSH&lt;br /&gt;
      3 KeePass&lt;br /&gt;
      3 firewall&lt;br /&gt;
      3 Cryptography&lt;br /&gt;
      3 Antivirus&lt;br /&gt;
      3 2FA&lt;br /&gt;
      2 Wireshark&lt;br /&gt;
      2 vpn&lt;br /&gt;
      2 Virtual Machines&lt;br /&gt;
      2 Valve Anti Cheat&lt;br /&gt;
      2 traceroute&lt;br /&gt;
      2 password&lt;br /&gt;
      2 OpenVPN&lt;br /&gt;
      2 netstat&lt;br /&gt;
      2 Netcat&lt;br /&gt;
      2 md5sum&lt;br /&gt;
      2 Malwarebytes Anti-Malware&lt;br /&gt;
      2 Malwarebytes&lt;br /&gt;
      2 HTTPS&lt;br /&gt;
      2 Filevault&lt;br /&gt;
      2 encryption&lt;br /&gt;
      2 Anti-virus&lt;br /&gt;
      2 antivirus&lt;br /&gt;
      2 access control&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_3&amp;diff=21428</id>
		<title>SystemsSec 2018W Lecture 3</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_3&amp;diff=21428"/>
		<updated>2018-01-19T23:28:00Z</updated>

		<summary type="html">&lt;p&gt;Yannick: /* 1st Era (Time Sharing) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Notes =&lt;br /&gt;
Class 3, January 15&lt;br /&gt;
&lt;br /&gt;
== 1st Era (Time Sharing Systems) ==&lt;br /&gt;
Computing originated from cracking codes during WWII and initial computer security came from physical security measures put in place to limit physical access to the machine.&lt;br /&gt;
&lt;br /&gt;
; Mainframes&lt;br /&gt;
: Large, powerful computers. Early models of which implemented no implicit security. It was based on access to the system.&lt;br /&gt;
: Batch Processing: Processing written programs in batches. Programs were written offline then queued to be ran one after the other.&lt;br /&gt;
: Programmers didn&#039;t actually interact with the computer, the code went through Operators.&lt;br /&gt;
: Switched to time sharing which allowed many users to access the same machine concurrently through multiple terminals.&lt;br /&gt;
&lt;br /&gt;
Eventually people started wanting more time and resources with the computer and this caused the organization (HR) to start creating &#039;&#039;&#039;policy&#039;&#039;&#039; to manage the mainframe. Creating these policies lead to the computer getting the power to say &#039;No&#039; to operations, which is the early creation of software based access control.&lt;br /&gt;
; Access control&lt;br /&gt;
: Users, Groups&lt;br /&gt;
: Permissions&lt;br /&gt;
: ACLs (Access control list)&lt;br /&gt;
&lt;br /&gt;
However the number of people with knowledge about these systems was limited and all of them could easily circumvent the policy.&lt;br /&gt;
&lt;br /&gt;
== 2nd Era (Personal Computers) ==&lt;br /&gt;
Computers for personal use. Peer to peer file sharing (via floppy disks, etc...).&lt;br /&gt;
&lt;br /&gt;
The era of personal computers introduced copy protection and piracy as files could now be shared among peers and copied onto their own computer.&lt;br /&gt;
&lt;br /&gt;
; Copy protection&lt;br /&gt;
: any effort designed to prevent the reproduction of software, films, music, and other media, usually for copyright reasons.&lt;br /&gt;
: essentially telling a personal computer not to do what it was made to do.&lt;br /&gt;
&lt;br /&gt;
; Piracy : the unauthorized use or reproduction of another&#039;s work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sharing software from unknown sources allowed for &amp;quot;malicious&amp;quot; programs to spread. The invention of computer viruses and therefore anti-virus software.&lt;br /&gt;
&lt;br /&gt;
== 3rd Era (Networking) ==&lt;br /&gt;
Computers are now interconnected, attacks are possible through the internet. See [https://en.wikipedia.org/wiki/Morris_worm Morris Worm]&lt;br /&gt;
&lt;br /&gt;
More complicated security measures necessary. From an attackers perspective: find exploits, infect systems. From a defenders perspective: find exploits before they&#039;re used, patch them, or patch exploits after they&#039;re used.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The internet today is a result of evolution.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Unix Directory System &#039;&#039;&#039;&lt;br /&gt;
** Labels for processes, files, directories, read/write/execute permissions.&lt;br /&gt;
*** Users: UID&lt;br /&gt;
*** Groups: GID&lt;br /&gt;
* Designed for multi-user systems. Works for single user systems as some processes require more permissions than others. Still in place due to legacy systems. Is considered robust due to evolution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Military &#039;&#039;&#039;&lt;br /&gt;
The military and intelligence organizations cared about security from the beginning. Developed their own systems to enforce classification levels. Was convoluted and is no longer in use.&lt;br /&gt;
&lt;br /&gt;
= E1 results =&lt;br /&gt;
      9 Firewall&lt;br /&gt;
      8 Windows Defender&lt;br /&gt;
      5 Windows Firewall&lt;br /&gt;
      5 https&lt;br /&gt;
      5 Google Authenticator&lt;br /&gt;
      4 SSL&lt;br /&gt;
      4 Passwords&lt;br /&gt;
      3 VPN&lt;br /&gt;
      3 uBlock Origin&lt;br /&gt;
      3 SSH&lt;br /&gt;
      3 KeePass&lt;br /&gt;
      3 firewall&lt;br /&gt;
      3 Cryptography&lt;br /&gt;
      3 Antivirus&lt;br /&gt;
      3 2FA&lt;br /&gt;
      2 Wireshark&lt;br /&gt;
      2 vpn&lt;br /&gt;
      2 Virtual Machines&lt;br /&gt;
      2 Valve Anti Cheat&lt;br /&gt;
      2 traceroute&lt;br /&gt;
      2 password&lt;br /&gt;
      2 OpenVPN&lt;br /&gt;
      2 netstat&lt;br /&gt;
      2 Netcat&lt;br /&gt;
      2 md5sum&lt;br /&gt;
      2 Malwarebytes Anti-Malware&lt;br /&gt;
      2 Malwarebytes&lt;br /&gt;
      2 HTTPS&lt;br /&gt;
      2 Filevault&lt;br /&gt;
      2 encryption&lt;br /&gt;
      2 Anti-virus&lt;br /&gt;
      2 antivirus&lt;br /&gt;
      2 access control&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_3&amp;diff=21427</id>
		<title>SystemsSec 2018W Lecture 3</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_3&amp;diff=21427"/>
		<updated>2018-01-19T23:15:34Z</updated>

		<summary type="html">&lt;p&gt;Yannick: /* Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Notes =&lt;br /&gt;
Class 3, January 15&lt;br /&gt;
&lt;br /&gt;
== 1st Era (Time Sharing) ==&lt;br /&gt;
Computing originated from cracking codes during WWII.&lt;br /&gt;
&lt;br /&gt;
Initial computer security came from physical security. Security measures were put in place to limit physical access.&lt;br /&gt;
&lt;br /&gt;
; Mainframes : Large, powerful computers. Early models of which implemented no implicit security. It was based on access to the system.&lt;br /&gt;
; Batch Processing: Processing written programs in batches. Programs were written offline then queued to be ran one after the other.&lt;br /&gt;
; Time Sharing :An environment option for Mainframes. They allowed many users to access the same machine concurrently.&lt;br /&gt;
&lt;br /&gt;
This caused a need for computer systems security. Policies were developed (more organizational policies than strict security), early creation of software based access control.&lt;br /&gt;
; Access control&lt;br /&gt;
: Users, Groups&lt;br /&gt;
: Permissions&lt;br /&gt;
: ACLs (Access control list)&lt;br /&gt;
&lt;br /&gt;
== 2nd Era (Personal Computers) ==&lt;br /&gt;
Computers for personal use. Peer to peer file sharing (via floppy disks, etc...).&lt;br /&gt;
&lt;br /&gt;
The era of personal computers introduced copy protection and piracy as files could now be shared among peers and copied onto their own computer.&lt;br /&gt;
&lt;br /&gt;
; Copy protection&lt;br /&gt;
: any effort designed to prevent the reproduction of software, films, music, and other media, usually for copyright reasons.&lt;br /&gt;
: essentially telling a personal computer not to do what it was made to do.&lt;br /&gt;
&lt;br /&gt;
; Piracy : the unauthorized use or reproduction of another&#039;s work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sharing software from unknown sources allowed for &amp;quot;malicious&amp;quot; programs to spread. The invention of computer viruses and therefore anti-virus software.&lt;br /&gt;
&lt;br /&gt;
== 3rd Era (Networking) ==&lt;br /&gt;
Computers are now interconnected, attacks are possible through the internet. See [https://en.wikipedia.org/wiki/Morris_worm Morris Worm]&lt;br /&gt;
&lt;br /&gt;
More complicated security measures necessary. From an attackers perspective: find exploits, infect systems. From a defenders perspective: find exploits before they&#039;re used, patch them, or patch exploits after they&#039;re used.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The internet today is a result of evolution.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Unix Directory System &#039;&#039;&#039;&lt;br /&gt;
** Labels for processes, files, directories, read/write/execute permissions.&lt;br /&gt;
*** Users: UID&lt;br /&gt;
*** Groups: GID&lt;br /&gt;
* Designed for multi-user systems. Works for single user systems as some processes require more permissions than others. Still in place due to legacy systems. Is considered robust due to evolution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Military &#039;&#039;&#039;&lt;br /&gt;
The military and intelligence organizations cared about security from the beginning. Developed their own systems to enforce classification levels. Was convoluted and is no longer in use.&lt;br /&gt;
&lt;br /&gt;
= E1 results =&lt;br /&gt;
      9 Firewall&lt;br /&gt;
      8 Windows Defender&lt;br /&gt;
      5 Windows Firewall&lt;br /&gt;
      5 https&lt;br /&gt;
      5 Google Authenticator&lt;br /&gt;
      4 SSL&lt;br /&gt;
      4 Passwords&lt;br /&gt;
      3 VPN&lt;br /&gt;
      3 uBlock Origin&lt;br /&gt;
      3 SSH&lt;br /&gt;
      3 KeePass&lt;br /&gt;
      3 firewall&lt;br /&gt;
      3 Cryptography&lt;br /&gt;
      3 Antivirus&lt;br /&gt;
      3 2FA&lt;br /&gt;
      2 Wireshark&lt;br /&gt;
      2 vpn&lt;br /&gt;
      2 Virtual Machines&lt;br /&gt;
      2 Valve Anti Cheat&lt;br /&gt;
      2 traceroute&lt;br /&gt;
      2 password&lt;br /&gt;
      2 OpenVPN&lt;br /&gt;
      2 netstat&lt;br /&gt;
      2 Netcat&lt;br /&gt;
      2 md5sum&lt;br /&gt;
      2 Malwarebytes Anti-Malware&lt;br /&gt;
      2 Malwarebytes&lt;br /&gt;
      2 HTTPS&lt;br /&gt;
      2 Filevault&lt;br /&gt;
      2 encryption&lt;br /&gt;
      2 Anti-virus&lt;br /&gt;
      2 antivirus&lt;br /&gt;
      2 access control&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_1&amp;diff=21422</id>
		<title>SystemsSec 2018W Lecture 1</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_1&amp;diff=21422"/>
		<updated>2018-01-17T22:50:03Z</updated>

		<summary type="html">&lt;p&gt;Yannick: /* The material covered today: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Notes =&lt;br /&gt;
Class 1, January 8&lt;br /&gt;
&lt;br /&gt;
== About the course: ==&lt;br /&gt;
Attendance is strongly recommended as lectures will not be posted online (only the wiki notes will be posted online).&lt;br /&gt;
&lt;br /&gt;
In order to succeed, you need to come to class. Things will be discussed, and you need to be present.&lt;br /&gt;
&lt;br /&gt;
=== Grading Criteria ===&lt;br /&gt;
* 20% Midterm&lt;br /&gt;
* 30% Final&lt;br /&gt;
* 10% Participation&lt;br /&gt;
* 20% Experiences&lt;br /&gt;
* 20% Assignments (4)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Midterm &amp;amp; Final ====&lt;br /&gt;
Short answer questions, possibly a few long-answer questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Participation ==== &lt;br /&gt;
Being present in the classroom, taking notes for the class, raising your hand, discussing things. There is also a slack instance ([https://join.slack.com/t/cucomp4108/shared_invite/enQtMjk2OTM0MTUwNjI0LTQ2MDExODYwMjliOTAxZWFjZjU0ZmM3M2U4NjFlYjRjY2UzZTgyM2QyNmQ5MTBiNTU1ZDVmOGFiNzYxMGNiOTc click here to join]) that you can participate in.&lt;br /&gt;
&lt;br /&gt;
If for some reason participation will be a problem for you, email the professor now to work it out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Experiences ====&lt;br /&gt;
There are 2 portions to the experiences section, reading and tools.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Readings&#039;&#039;&#039; – Make a diligent effort to understand the reading before coming to class. Not a summary. What was your interaction with the reading? What are your thoughts about the material covered? Did you have any difficulties following along?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tools&#039;&#039;&#039; – Computer Systems Security is fundamentally an applied field. It is tied to tools. Applied learning is important. Some exercises will be provided, but other things you will come across yourself (ie, try to set up a firewall, or play around with iptables, you don’t have to succeed). Write a tool response. Plan on sitting down a couple of times and doing some hacking. It is important to get your hands dirty. To start, pick something that you can handle, and maybe ramp it up as the term goes along.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Assignments ====&lt;br /&gt;
The assignments will be in the style of the midterm and final, and will let you know how prepared you are for the exams. There will be two assignments before the midterm and two more after the midterm. They will be submitted through CULearn.&lt;br /&gt;
&lt;br /&gt;
== The material covered today: ==&lt;br /&gt;
In the news recently: Meltdown and Spectre security flaws&lt;br /&gt;
&lt;br /&gt;
[[File:xkcd_meltdown_and_spectre.png|thumb|right|Source &#039;&#039;[https://m.xkcd.com/1938/ xkcd]&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
Meltdown in the Intel version, Spectre is the more general version. Basically every modern CPU that has high performance is affected, stems from a problem with processor design in which the strategy used to increase performance in modern processors allows for information leakage.&lt;br /&gt;
&lt;br /&gt;
Inherently, software programs and processes don&#039;t trust each other (and they shouldn&#039;t), but this flaw means that the barriers between them aren&#039;t fixed and that you can potentially read across them. &lt;br /&gt;
&lt;br /&gt;
This is a [https://en.wikipedia.org/wiki/Timing_attack timing attack], the basis of these attacks is that the time to compute depends on the data that you are computing. By knowing how long something takes to compute you can figure out what is being computed. There was previously a well known timing attack on public key encryption, which was solved by responding to all requests in the same constant time.&lt;br /&gt;
&lt;br /&gt;
Meltdown and Spectre exploit branch predictors (ie, the processor speculates at which branch of the code will be run next and “runs ahead”. If it predicts correctly, there is a performance advantage). However, flaws were found that enabled kernel memory to be read, or a virtual machine to read data from another virtual machine running on the same processor. This particularly affects cloud computing.&lt;br /&gt;
&lt;br /&gt;
These types of flaws come about because no one was thinking about the design from a security point of view. &lt;br /&gt;
&lt;br /&gt;
System Security is difficult. Attackers find flaws, defenders try to fix them. This happens in real systems, with enormous complexity. Theoretically we can design perfectly secure systems, but attackers will keep finding flaws. This game, as it is today, is weighted towards attackers. Re-balancing the game would require radical ideas.&lt;br /&gt;
&lt;br /&gt;
=== A (noncomprehensive) list of some security tools and methods: ===&lt;br /&gt;
The purpose of this list is to show what a vast area computer security is, not making a list of everything that will be covered.&lt;br /&gt;
*Firewalls&lt;br /&gt;
*Antivirus/Antimalware&lt;br /&gt;
*Network monitoring/NIDS&lt;br /&gt;
*Reverse engineering.&lt;br /&gt;
*Cryptography (encryption/digital signing) (for system security, encryption is a tool of last resort)&lt;br /&gt;
*Air gaps&lt;br /&gt;
*Social Engineering&lt;br /&gt;
*(D)DoS&lt;br /&gt;
*White list&lt;br /&gt;
*Black list&lt;br /&gt;
*One way info-gate&lt;br /&gt;
*Virtual machines&lt;br /&gt;
*Encapsulation&lt;br /&gt;
*Virtual memory&lt;br /&gt;
*Formal verification&lt;br /&gt;
*Randomization (ASLR)&lt;br /&gt;
*Passwords&lt;br /&gt;
*Captchas&lt;br /&gt;
*Biometrics&lt;br /&gt;
*Location monitoring&lt;br /&gt;
*Mandatory access control (ie SELinux, very inconvenient)&lt;br /&gt;
*Discretionary access control (traditional Unix, Windows…)&lt;br /&gt;
*Automatic memory management (garbage collection)&lt;br /&gt;
*Static analysis&lt;br /&gt;
*Dynamic analysis&lt;br /&gt;
&lt;br /&gt;
Security can affect just about any area of computer science. If there is a branch that doesn’t appear to be affected by security, it&#039;s because someone just hasn’t thought about it for long enough. This course isn’t about a specific tool or method, although many will be touched on. Primarily, we want to look at how to think about problems so that you see security issues. What can I do as an attacker? What can I do as a defender.&lt;br /&gt;
&lt;br /&gt;
There are always benefits and costs to any security decision, by strengthening security in one way, you can weaken it in another. This is important if you can’t risk lockouts and downtime, where having passwords could cause problems. For example, the US Air Force had all the nuke codes set to 0000000...&lt;br /&gt;
&lt;br /&gt;
If you make usability too difficult, users can (and will) find ways to bypass your security measures. Security is always a secondary concern. The primary concerns of users are the tasks that they are using the computer systems to complete. The most secure system is one that is off, in a locked room in a secure facility. However, that system is also completely useless.&lt;br /&gt;
&lt;br /&gt;
Even if you do not become a computer security professional, you will design systems and make decisions that have security implications.&lt;br /&gt;
&lt;br /&gt;
=== Reverse Engineering ===&lt;br /&gt;
Picked from the list at random to discuss&lt;br /&gt;
&lt;br /&gt;
*What is it?&lt;br /&gt;
**Normal engineering process would be Design -&amp;gt; code -&amp;gt; system.&lt;br /&gt;
**Reverse engineering is reversing that process. Looking at the system to figure out the code and the design. &lt;br /&gt;
&lt;br /&gt;
*Who?&lt;br /&gt;
**Attackers&lt;br /&gt;
***analyzing defenses&lt;br /&gt;
****If you can figure out how it works, then you can find weaknesses and exploit them.&lt;br /&gt;
You become an expert safecracker by learning about safes. In order to find flaws in systems, you must have a deep knowledge of those systems. What an attacker wishes to attack he must master, and by finding the flaw, the attacker &#039;&#039;&#039;proves his knowledge&#039;&#039;&#039;. It is like solving a puzzle. That is what drives the people developing these attacks. The negative impacts are often secondary.&lt;br /&gt;
&lt;br /&gt;
**Defenders&lt;br /&gt;
***Analyze defenses like attackers&lt;br /&gt;
***Analyze attacks &lt;br /&gt;
****(ie, figure out what a botnet does and how it works)&lt;br /&gt;
****Botnet – illegal cloud computing.&lt;br /&gt;
&lt;br /&gt;
=== DRM – Digital Rights Management ===&lt;br /&gt;
*People have been using reverse engineering crack DRM since DRM was released&lt;br /&gt;
*Interesting thing about DRM – it works to protect the content from the legitimate user that you want to have the content. &lt;br /&gt;
*Most secure current DRM- iOS. It is currently very difficult to crack (or “jailbreak”). In fact, it may even be “effectively unbreakable” because the cost and time involved in breaking it isn’t worth it.&lt;br /&gt;
*Jailbreaking iOS used to be very popular, as it allowed users to use their iPhones in ways that Apple didn’t allow. However, it would also negatively impact the security of the device. &lt;br /&gt;
*The jailbreak community showed Apple where the security flaws in their devices were found. Apple could then fix the flaws. The community would find new flaws, and Apple would fix them.&lt;br /&gt;
*This evolution or “trial by fire” is the only way that security gets strong. No theoretical security can be trusted until it has had people try to crack it.&lt;br /&gt;
&lt;br /&gt;
Today, attacks get put into usable software and distributed quickly. They spread fast.&lt;br /&gt;
&lt;br /&gt;
Nation-states pay lots of people to reverse engineer systems and find the security holes. They do it in secret, but they can’t keep secrets, so the attacks they create get leaked.&lt;br /&gt;
&lt;br /&gt;
The code of much modern malware that is causing problems has been written by &lt;br /&gt;
nation-states.&lt;br /&gt;
&lt;br /&gt;
We cannot make any system perfectly secure, but we don’t build systems under that assumption. We build systems that store large amounts of important data (how much data does Facebook have? Google? Governments?). We assume that we can do this securely, but we can’t.&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:Xkcd_meltdown_and_spectre.png&amp;diff=21421</id>
		<title>File:Xkcd meltdown and spectre.png</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:Xkcd_meltdown_and_spectre.png&amp;diff=21421"/>
		<updated>2018-01-17T22:37:07Z</updated>

		<summary type="html">&lt;p&gt;Yannick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_1&amp;diff=21420</id>
		<title>SystemsSec 2018W Lecture 1</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=SystemsSec_2018W_Lecture_1&amp;diff=21420"/>
		<updated>2018-01-17T21:11:24Z</updated>

		<summary type="html">&lt;p&gt;Yannick: /* About the course: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Notes =&lt;br /&gt;
Class 1, January 8&lt;br /&gt;
&lt;br /&gt;
== About the course: ==&lt;br /&gt;
Attendance is strongly recommended as lectures will not be posted online (only the wiki notes will be posted online).&lt;br /&gt;
&lt;br /&gt;
In order to succeed, you need to come to class. Things will be discussed, and you need to be present.&lt;br /&gt;
&lt;br /&gt;
=== Grading Criteria ===&lt;br /&gt;
* 20% Midterm&lt;br /&gt;
* 30% Final&lt;br /&gt;
* 10% Participation&lt;br /&gt;
* 20% Experiences&lt;br /&gt;
* 20% Assignments (4)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Midterm &amp;amp; Final ====&lt;br /&gt;
Short answer questions, possibly a few long-answer questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Participation ==== &lt;br /&gt;
Being present in the classroom, taking notes for the class, raising your hand, discussing things. There is also a slack instance ([https://join.slack.com/t/cucomp4108/shared_invite/enQtMjk2OTM0MTUwNjI0LTQ2MDExODYwMjliOTAxZWFjZjU0ZmM3M2U4NjFlYjRjY2UzZTgyM2QyNmQ5MTBiNTU1ZDVmOGFiNzYxMGNiOTc click here to join]) that you can participate in.&lt;br /&gt;
&lt;br /&gt;
If for some reason participation will be a problem for you, email the professor now to work it out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Experiences ====&lt;br /&gt;
There are 2 portions to the experiences section, reading and tools.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Readings&#039;&#039;&#039; – Make a diligent effort to understand the reading before coming to class. Not a summary. What was your interaction with the reading? What are your thoughts about the material covered? Did you have any difficulties following along?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tools&#039;&#039;&#039; – Computer Systems Security is fundamentally an applied field. It is tied to tools. Applied learning is important. Some exercises will be provided, but other things you will come across yourself (ie, try to set up a firewall, or play around with iptables, you don’t have to succeed). Write a tool response. Plan on sitting down a couple of times and doing some hacking. It is important to get your hands dirty. To start, pick something that you can handle, and maybe ramp it up as the term goes along.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Assignments ====&lt;br /&gt;
The assignments will be in the style of the midterm and final, and will let you know how prepared you are for the exams. There will be two assignments before the midterm and two more after the midterm. They will be submitted through CULearn.&lt;br /&gt;
&lt;br /&gt;
== The material covered today: ==&lt;br /&gt;
In the news recently: Meltdown and Spectre security flaws&lt;br /&gt;
&lt;br /&gt;
Meltdown in the Intel version, Spectre is the more general version.&lt;br /&gt;
&lt;br /&gt;
Basically every modern CPU that has high performance is affected&lt;br /&gt;
&lt;br /&gt;
Problem with processor design.&lt;br /&gt;
&lt;br /&gt;
Design strategy used to increase performance in modern processors allows for information leakage.&lt;br /&gt;
&lt;br /&gt;
Software programs and processes don&#039;t trust each other (and they shouldn&#039;t), but this flaw means that the barriers between them aren&#039;t fixed, you can read across them.&lt;br /&gt;
&lt;br /&gt;
It is a timing attack. The basis of timing attacks is that the time to compute depends on the data that you are computing. By knowing how long something takes to compute, you can figure out what is being computed. &lt;br /&gt;
&lt;br /&gt;
There was previously a well known timing attack on public key encryption, which was solved by responding to all requests in the same constant time.&lt;br /&gt;
&lt;br /&gt;
Meltdown and Spectre exploit branch predictors (ie, the processor speculates at which branch of the code will be run next and “runs ahead”. If it predicts correctly, there is a performance advantage). However, flaws were found that enabled kernel memory to be read, or a virtual machine to read data from another virtual machine running on the same processor. This particularly affects cloud computing.&lt;br /&gt;
&lt;br /&gt;
These types of flaws come because no one was thinking about the design from a security point of view. &lt;br /&gt;
&lt;br /&gt;
System Security is difficult. Attackers find flaws, defenders try to fix them. This happens in real systems, with enormous complexity. Theoretically we can design perfectly secure systems, but attackers will keep finding flaws. This game, as it is today, is weighted towards attackers. Rebalancing the game would require radical ideas.&lt;br /&gt;
&lt;br /&gt;
=== A (noncomprehensive) list of some security tools and methods: ===&lt;br /&gt;
*The purpose of this list is to show what a vast area computer security is, not making a list of everything that will be covered.&lt;br /&gt;
**Firewalls&lt;br /&gt;
**Antivirus/Antimalware&lt;br /&gt;
**Network monitoring/NIDS&lt;br /&gt;
**Reverse engineering.&lt;br /&gt;
**Cryptography (encryption/digital signing) (for system security, encryption is a tool of last resort)&lt;br /&gt;
**Air gaps&lt;br /&gt;
**Social Engineering&lt;br /&gt;
**(D)DoS&lt;br /&gt;
**White list&lt;br /&gt;
**Black list&lt;br /&gt;
**One way info-gate&lt;br /&gt;
**Virtual machines&lt;br /&gt;
**Encapsulation&lt;br /&gt;
**Virtual memory&lt;br /&gt;
**Formal verification&lt;br /&gt;
**Randomization (ASLR)&lt;br /&gt;
**Passwords&lt;br /&gt;
**Captchas&lt;br /&gt;
**Biometrics&lt;br /&gt;
**Location monitoring&lt;br /&gt;
**Mandatory access control (ie SELinux, very inconvenient)&lt;br /&gt;
**Discretionary access control (traditional Unix, Windows…)&lt;br /&gt;
**Automatic memory management (garbage collection)&lt;br /&gt;
**Static analysis&lt;br /&gt;
**Dynamic analysis&lt;br /&gt;
&lt;br /&gt;
Security can affect just about any area of computer science. If there is a branch that doesn’t appear to be affected by security, someone just hasn’t thought about it for long enough.&lt;br /&gt;
&lt;br /&gt;
This course isn’t about a specific tool or method, although many will be touched on. Primarily, we want to look at how to think about problems so that you see security issues. What can I do as an attacker? What can I do as a defender.&lt;br /&gt;
&lt;br /&gt;
There are always benefits and costs to any security decision, By strengthening security in one way, you can weaken it in another.&lt;br /&gt;
&lt;br /&gt;
For example, if you can’t risk lockouts and downtime, having passwords could cause problems.&lt;br /&gt;
&lt;br /&gt;
If you make usability too difficult, users can find ways to bypass your security measures. Security is always a secondary concern. The primary concerns of users are the tasks that they are using the computer systems to complete.&lt;br /&gt;
&lt;br /&gt;
The most secure system is one that is off, in a locked room in a secure facility. However, that system is also completely useless.&lt;br /&gt;
&lt;br /&gt;
Even if you do not become a computer security professional, you will design systems and make decisions that have security implications.&lt;br /&gt;
&lt;br /&gt;
=== Reverse Engineering ===&lt;br /&gt;
Picked from the list at random to discuss&lt;br /&gt;
&lt;br /&gt;
*What is it?&lt;br /&gt;
**Normal engineering process would be Design -&amp;gt; code -&amp;gt; system.&lt;br /&gt;
**Reverse engineering is reversing that process. Looking at the system to figure out the code and the design. &lt;br /&gt;
&lt;br /&gt;
*Who?&lt;br /&gt;
**Attackers&lt;br /&gt;
***analyzing defenses&lt;br /&gt;
****If you can figure out how it works, then you can find weaknesses and exploit them.&lt;br /&gt;
You become an expert safecracker by learning about safes. In order to find flaws in systems, you must have a deep knowledge of those systems. What an attacker wishes to attack he must master, and by finding the flaw, the attacker &#039;&#039;&#039;proves his knowledge&#039;&#039;&#039;. It is like solving a puzzle. That is what drives the people developing these attacks. The negative impacts are often secondary.&lt;br /&gt;
&lt;br /&gt;
**Defenders&lt;br /&gt;
***Analyze defenses like attackers&lt;br /&gt;
***Analyze attacks &lt;br /&gt;
****(ie, figure out what a botnet does and how it works)&lt;br /&gt;
****Botnet – illegal cloud computing.&lt;br /&gt;
&lt;br /&gt;
=== DRM – Digital Rights Management ===&lt;br /&gt;
*People have been using reverse engineering crack DRM since DRM was released&lt;br /&gt;
*Interesting thing about DRM – it works to protect the content from the legitimate user that you want to have the content. &lt;br /&gt;
*Most secure current DRM- iOS. It is currently very difficult to crack (or “jailbreak”). In fact, it may even be “effectively unbreakable” because the cost and time involved in breaking it isn’t worth it.&lt;br /&gt;
*Jailbreaking iOS used to be very popular, as it allowed users to use their iPhones in ways that Apple didn’t allow. However, it would also negatively impact the security of the device. &lt;br /&gt;
*The jailbreak community showed Apple where the security flaws in their devices were found. Apple could then fix the flaws. The community would find new flaws, and Apple would fix them.&lt;br /&gt;
*This evolution or “trial by fire” is the only way that security gets strong. No theoretical security can be trusted until it has had people try to crack it.&lt;br /&gt;
&lt;br /&gt;
Today, attacks get put into usable software and distributed quickly. They spread fast.&lt;br /&gt;
&lt;br /&gt;
Nation-states pay lots of people to reverse engineer systems and find the security holes. They do it in secret, but they can’t keep secrets, so the attacks they create get leaked.&lt;br /&gt;
&lt;br /&gt;
The code of much modern malware that is causing problems has been written by &lt;br /&gt;
nation-states.&lt;br /&gt;
&lt;br /&gt;
We cannot make any system perfectly secure, but we don’t build systems under that assumption. We build systems that store large amounts of important data (how much data does Facebook have? Google? Governments?). We assume that we can do this securely, but we can’t.&lt;/div&gt;</summary>
		<author><name>Yannick</name></author>
	</entry>
</feed>