|
Meeting time and location |
MW 10:30am–12pm EST in Hamerschlag Hall (HH) 1107 / 7:30-9am PST in Bldg. 23 Rm. 212 |
|
|
Instructors |
Lujo Bauer Anupam Datta |
|
|
Teaching assistants |
Chen Chen Michelle Mazurek Office hours: Thu 3–4pm in CIC 2214 Divya Sharma |
|
|
Discussion board |
||
|
Course description |
This course will study approaches, mechanisms, and tools used to make software systems more secure. We will motivate the study by discussing common software security dangers (e.g., buffer overflow attacks, cross-site scripting). The majority of the course will be divided into four main modules: architectural approaches to building secure software (e.g., confinement, virtual machines, trusted computing); software analysis (e.g., static analysis and testing, model checking); language-based approaches to building secure software (e.g., type systems, proof-carrying code); and run-time enforcement of security policies (e.g., dynamic taint analysis). Time permitting, the course will also cover topics such as the importance of usability to building secure software systems. Students will be evaluated based on five mini-projects, three in-class tests, and class participation. The mini-projects will provide students with practical experience with the tools and mechanisms studied in class. Students will work on the projects in groups of two or three, and the projects will be evenly spaced over the course of the semester. |
|
|
|
|
|