Carnegie Mellon University

Electrical and Computer Engineering

College of Engineering

Course Information

18-732: Secure Software Systems

Units:

12

Description:

Poor software design and engineering are the root causes of most security vulnerabilities in deployed systems today. Moreover, with code mobility now commonplace--particularly in the context of web technologies and digital rights management--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.

Prerequisites: 18-730; Skills in operating systems and programming languages (C and Java), and senior or graduate standing.

Last Modified: 2018-11-09 12:58PM

Semesters offered:

  • Spring 2019
  • Spring 2018
  • Spring 2017
  • Spring 2016
  • Spring 2015
  • Spring 2014
  • Spring 2013
  • Spring 2012
  • Fall 2011
  • Fall 2010
  • Spring 2010
  • Fall 2009
  • Fall 2008
  • Fall 2006
  • Spring 2006
  • Fall 2005
  • Spring 2005
  • Fall 2004
  • Spring 2004