The course does not have any formal pre-requisites. Some background in systems programming and/or exposure to logic might be helpful.
The objective of this course will be to understand, model, reason about and systematically defend against threats to system security. Students will learn the fundamentals of formal analysis and modeling, foundational security primitives, and how formal methods can be used to reason about the security of these primitives. The course will provide hands-on experience of applying formal tools for security analysis in order to automatically discover exploits and/or prove security properties of these systems.
|
Broad Title |
Topics |
Num. Lect. |
1. |
Satisfiability |
propositional logic, DPLL/CDCL/Chaff, SAT Extensions: QBF, AllSAT, etc. |
3 |
2. |
SMT and applica- tions |
first-order logic, SMT, approaches to SMT solving, symbolic execution using SMT |
4 |
3. |
Cryptographic Primitives |
message authentication, symmetric-key encryption, public-key cryptography, modeling crypto in SMT |
3 |
4. |
Model Checking |
explicit state, symbolic bounded reachability, induction, abstraction/refinement, CEGAR, self-composition and hyper- properties, simulation/bi-simulation, applications to security verification |
5 |
5. |
System Security Primitives |
isolation, access control, principle of least privilege, implementations of these in HW and SW, verification of these primitives: noninterference, static and dynamic information flow tracking |
4 |
6. |
Case studies, synthe- sis, machine learning |
case studies with potential examples being enclave platforms, hypervisor security, e-voting; syntax-guided synthesis, applica- tions to/of machine learning and statistical inference |
4 |
Ensuring computer systems remain secure is one of the fundamental challenges in computer science today. But what does a “secure system” mean, is it even possible to precisely and formally state the security requirements a system should satisfy? And even if that were possible, how would one verify that a system satisfies these requirements? Answering these questions will be the objective of the course.
This course will introduce the fundamentals of formal modeling and verification – techniques for precisely reasoning about system behavior. This will be interleaved with a discussion of system security primitives: ranging from cryptography to systems’ primitives like isolation and access control combined with formal techniques for analyzing security of these primitives. Students will gain hands- on experience practically applying formal tools to (i) find security exploits, and (ii) prove specific security properties. The course will conclude with case studies of system security verification, and a forward-looking discussion of potential research topics in this area.