16:198:673:01: Introduction to Software Security

Fall 2007


Quick Links: [ General information | Course overview | Readings | Schedule | Summaries | Grading | Project | Resources | RUSENIX Security 2007! ]

Latest Announcements


General Information


Course overview

Security vulnerabilities in software cost the economy several billion dollars a year. Why is today's software so vulnerable to exploits? What techniques are attackers using to compromise software? How can we secure software to resist such attacks? Can we design primitives that will help programmers create software that resists such attacks?

This course will seek to answer such questions by covering an exciting range of topics ranging from state-of-the-art techniques used to attack software, as well as techniques to strengthen software to resist attacks. We will study analysis techniques that can be used to understand security properties of software systems and transform them to create secure software.

The course will be based upon readings of research papers, both classics as well as from recent security conferences. A key goal of the course will be to teach the student to think both as an attacker as well as a defender. Consequently we will study both "attack" and "defense" papers. The most exciting part of the course will be a course project where students get to research a topic of their liking, and report their findings in a conference style paper.


Reading list

Here is the reading list for this course. We will discuss papers roughly in the order that they appear on this list, though we will not be discussing all papers on the list. Please see the class schedule for the assigned readings for each week.

Students are expected to read and review the papers before they come to class. We will use class hours to summarize the paper, discuss its key ideas and shortcomings. Reading the paper before class will ensure that we will have more meaningful in-class discussions.

Paper summaries must be sent to the instructor via email by noon on the day of class. Please include "673-review" in the subject of your email.


Class schedule

Each week, we will discuss two or three papers from our reading list according to the schedule below.

The schedule below is still tentative, and may change over the course of the semester.
Date Assigned reading
9/5/2007
9/12/2007
9/19/2007
9/26/2007
10/3/2007
10/10/2007
10/17/2007
10/24/2007
Cancelled
10/31/2007
11/7/2007
11/14/2007
11/21/2007
Thanksgiving
11/28/2007
12/5/2007
12/12/2007 Project Presentations

Grading


Paper summaries

Students are expected to read and summarize the papers before they come to class. Paper summaries must be sent by email to the instructor by noon on the day of the class (with 673-review in the subject of the email).

Organize your review into three or four paragraphs, as follows:


Project

The final project is the main ingredient of this course. Students are expected to conduct original research and report their findings in a conference paper-style project report. The project can either be a new security system, extension of a previously-proposed system, or security analysis of an existing system. Although I will suggest project ideas, students are welcome and are encouraged to suggest their own projects.

The project will have the following checkpoints:

Important dates

Deadline Milestone
First two weeks of October Choose a project topic
October 19th, 2007 Project proposal due
November 19th, 2007 Midpoint review; Related work sections due
December 5th, 2007 Project titles and abstracts due
December 12th, 2007 Class minisymposium
December 14th, 2007 Final project reports due

More information on the project, including project suggestions, will be posted here over the course of the semester.


Other Resources

Organizations

Tips for good technical writing

Tips for effective presentation


Vinod Ganapathy