Lectures
(Note this is a rough schedule and things are subject to change.)
-
Intro: Introduction and Course Overview
This lecture will give a high-level overview of the course, including topics covered, learning goals, and course mechanics. -
Recitation: Build It; Break It; Fix It -- Overview and Introductions
We will discuss the details of the first homework assignment. There will also be time for homework groups to meet and make plans for the assignment. Time permitting, there will be general Q&A about the weeks' topics. -
Intro: Crypto Refresher and Secure Cryptographic Coding
-
Intro: Attacks
Reminders and generalizations | Reading: | Optional Reading: -
Recitation: Software Exploits
We will practice the skills needed to analyze an unknown binary, identify vulnerabilities, and exploit them. -
Run-Time: Dynamic Taint Tracking
| Reading: | Optional Reading: -
Run-Time: Control-Flow Integrity (CFI)
| Reading: -
Recitation: Control Flow Graphs
We will practice extracting call graphs and control-flow graphs from code examples. -
Run-Time: Enforceable Properties
| Reading: | Optional Reading: -
Run-Time: Enforceable Properties (Continued)
-
Recitation: Enforceable Properties
We will practice creating and analyzing automata. -
Code Analysis: Fuzzing
| Optional Reading: -
Code Analysis: Static Analysis
| Reading: | Optional Reading: -
Recitation: Code Analysis
We will practice applying various forms of code analysis -
Code Analysis: Symbolic Execution
| Reading: | Optional Reading: -
Code Analysis: Model Checking
| Reading: | Optional Reading: -
Review: Exam 1 review
This will be a review session. Please think ahead of time what questions you may have. -
Exam: 1
We will have the first exam of the course. This will be a closed book, closed notes, closed neighbor exam. -
Architecture: Separation Mechanisms
| Reading: | Optional Reading: -
Canceled
: No Recitation
-
Mid-Semester Break
: No Class
-
Mid-Semester Break
: No Class
-
Mid-Semester Break
: No Recitation
-
Architecture: Separation Challenges
| Reading: -
Architecture: Separation Policies
| Reading: | Optional Reading: -
Recitation: Side Channels
We will practice identifying and exploiting side channel vulnerabilities. -
Architecture: Trusted Computing
| Reading: | Optional Reading: -
Languages: Programmer Assisted Verification - Part 1
| Reading: -
Review: Exam 2 review
This will be a review session. Please think ahead of time what questions you may have. -
Languages: Programmer Assisted Verification - Part 2
| Reading: -
Exam: 2
We will have the second exam of the course. This will be a closed book, closed notes, closed neighbor exam. -
Recitation: Dafny Practice
We will work through a variety of Dafny problems to help you prepare for the last two homework assignments. -
Languages: Type Systems
-
Languages: Type Systems (continued) and Non-Interference
| Reading: -
Recitation: Types
We will practice applying type rules and reasoning about non-interference. -
Languages: WebAssembly
| Reading: | Optional Reading: -
Languages: Rust - Part 1
| Reading: -
Spring Carnival
: No Recitation
-
Languages: Rust - Part 2
-
: Usability
-
Recitation: TAL and Wasm
We will practice reasoning about TAL and Wasm programs. -
Review: Exam 3 review
This will be a review session. Please think ahead of time what questions you may have. -
Exam: 3
We will have the third exam of the course. This will be a closed book, closed notes, closed neighbor exam. -
No recitation
: No Recitation