Schedule
SS3: Software Security: Principles, Policies, and Protection, by Mathias Payer
Note: Readings marked with “(*)” are usually more advanced and are optional for those who are curious to explore the topic further.
Week | Date | Topic | Readings |
---|---|---|---|
1 | Thu 8/22 | Introduction | SS3P Chap. 1, Chap. 2.3, Chap. 2.7–2.8 |
2 | Tue 8/27 | Security Principles | Information Protection Abstract, Sec. I.A |
Thu 8/29 | Anatomy of a Program in Memory | Memory Layout of C Programs | |
Program in Memory | |||
(*) Lifetime of Hello World | |||
3 | Tue 9/3 | Buffer Overflows | SS3P Chap. 4.1, Chap. 4.2.1 |
Smashing the Stack for Fun and Profit | |||
Thu 9/5 | Return-to-libc Attack | Return-to-libc / ret2libc | |
Getting around non-executable stack | |||
4 | Tue 9/10 | Return-oriented Programming | Innocent Flesh on the Bone Sec. 1–3 |
Thu 9/12 | Integer Overflows and Heap Overflows | ||
5 | Tue 9/17 | Use-after-Free | SS3P Chap. 4.2.2 |
SeMalloc Sec. 2.1 | |||
Thu 9/19 | Format String Vulnerabilities | TESO's Format String Paper Sec. 1–3 | |
6 | Tue 9/24 | Addres Space Layout Randomization | SS3P Chap. 6.4.2 |
ASLR | |||
(*) ASLR Evaluation 2004 | |||
(*) ASLR Evaluation 2024 | |||
Thu 9/26 | Instructor traveling. No Class. | ||
7 | Tue 10/1 | Stack Canaries and Shadow Stacks | SS3P Chap. 6.4.3 |
Shining Light on Shadow Stacks Sec. 1–3 | |||
Thu 10/3 | Control-flow Integrity (CFI) | SS3P Chap. 6.4.6 | |
CFI Sec. 1, Sec.3 | |||
8 | Tue 10/8 | Testing | SS3P Chap. 6 intro, Chap. 6.3.1 |
Thu 10/10 | Fall break. No Class. | ||
9 | Tue 10/15 | Fuzzing | SS3P Chap. 6.3.3 |
Thu 10/17 | Software-based Fault Isolation (SFI) | SS3P Chap. 6.4.8 | |
SFI Sec.1–3 | |||
10 | Tue 10/22 | SFI (cont.) & Hardware-based Memory Isolation | Page table entries |
Thu 10/24 | Hardware-based Memory Isolation Part 2 | libmpk Sec. 2 | |
Silhouette Sec. 2 | |||
(*) Hodor | |||
11 | Tue 10/29 | Least Privilege Principle | AutoPriv Sec. 1–2 |
Thu 10/31 | Address Sanitizing | SS3P 6.3.2 | |
ASan Section 1–3 | |||
12 | Tue 11/5 | Election day. No Class. | |
Thu 11/7 | Pointer-based Memory Safety | SoftBoundCETS Sec. 1–2 | |
13 | Tue 11/12 | Object-based Memory Safety | Jones and Kelly's Sec. 1–3 |
Thu 11/14 | Type Safety | SS3P Sec. 4.3 | |
HexType Sec. 1–2 | |||
14 | Tue 11/19 | Safe Programming Languages | Checked C Sec. 1, Sec. 3 |
Thu 11/21 | Course Review and Q & A | ||
15 | Tue 11/26 | Thanksgiving. No Class. | |
Thu 11/28 | |||
16 | Tue 12/3 | Students-led Paper Discussion | |
Thu 12/5 | Students-led Paper Discussion | ||
17 | Tue 12/10 | Students-led Paper Discussion |