Modules
A draft of the lecture slides for each module will be made available the evening before the module begins. The final version of the lecture slides will be made available after the module is completed and replaces the draft. Use of the draft is at your own risk!
Readings marked as mandatory contain required material for the course, and must be read before the date of the corresponding lecture.
Module - Introduction to Software and System Security
- May 09
- Lecture: Course logistics
- Handout
- Lecture: Basis concepts in security
- Handout
Module - Program Security (Attacks)
- May 11
- Lecture: Memory errors
- Handout
- May 16
- Lecture: Race conditions
- Handout
- May 18
- Lecture: Other typical bug types
- Handout
- May 25
- Lecture: Weird machine
- Handout
- Optional Reading
- paper-weird-machine.pdf
Module - Program Security (Defenses)
- May 30
- Lecture: Moving-target defense
- Handout
- Jun 01
- Lecture: Runtime sanity checks
- Handout
- Jun 06
- Lecture: Fuzz testing
- Handout
- Jun 08
- Lecture: Static and symbolic reasoning
- Handout
Module - Operating System Security
- Jun 13
- Jun 15
- Lecture: Authentication
- Handout
- Jun 20
- Jun 22
- Lecture: Malware and its defenses
- Handout
Module - Mobile Security
- Jun 27
- Lecture: Mobile security ecosystem
- Jun 29
- Lecture: Mobile application security
- Jul 04
- Lecture: Advanced topics in Android security
Module - Hardware Security
- Jul 06
- Jul 11
Module - Non-techincal Aspects in Security
- Jul 13
- Lecture: Ethical and legal issues
- Handout
- Jul 18
- Lecture: Administering security
- Handout
- Jul 20
Module - Cloud Security
- Jul 25
- Jul 27
- Lecture: Network security
- Handout
- Aug 01
- InteractiveEnd-of-course AMA session