everything.study
18-732

Secure Software Systems

12 units · Graduate

Spring: 12 units Poor software design and engineering are the root causes of most security vulnerabilities in deployed systems today. Moreover, with code mobility now commonplace and #8212;particularly in the context of web technologies and digital rights management and #8212;system designers are increasingly faced with protecting hosts from foreign software and protecting software from foreign hosts running it. This class takes a close look at software as a mechanism for attack, as a tool for protecting resources, and as a resource to be defended. Topics covered include the software design process; choices of programming languages, operating systems, databases and distributed object platforms for building secure systems; common software vulnerabilities, such as buffer overflows and race conditions; auditing software; proving properties of software; software and data watermarking; code obfuscation; tamper resistant software; and the benefits of open and closed source development. Students in 18-335 will share lectures and homeworks with students in 18-732 . However, 18-732 has additional requirements not shared by 18-335 , including the requirement to produce scribe notes and to practice and demonstrate the ability to read and summarize scientific papers on the topics covered by the course. Senior or graduate standing required. Prerequisites: (18-730 Min. grade C or 18-631 Min. grade C or 14-741 Min. grade C or 15-330 Min. grade C or 18-330 Min. grade C) and (18-613 Min. grade C or 15-513 Min. grade C or 14-513 Min. grade C or 18-213 Min. grade C or 15-213 Min. grade C)

Sources