Introduction to Computer Security, Network Security, and Applied Cryptography

18-487 Fall 2014
Instructor: David Brumley

Course Overview

Course Time: Monday, Wednesday 2:30pm-4:20pm
Course Location: Hamerschlag Hall B103
Course Instructor: David Brumley
Office Hours: Wednesday immediately after class, until 5pm
Teaching Assistants: Peter Chapman peter@cmu.edu
Office Hours: Friday 10:00am–noon, CIC 2312
Zachary Weinberg zackw@cmu.edu
Office Hours: Monday 10:30am–noon, CIC 2312
Academic Assistant: Elizabeth Prelich-Knight, 1112 Hamerschlag Hall
Prerequisites: 15-213, or permission of instructor
Number of units: 12
Undergraduate course designation: Depth, Coverage
Undergraduate Course Area: Computer Software
Required Textbook: None

Course Description

Security is now a core requirement when creating systems and software. This course will introduce students to the fundamentals of computer security and applied cryptography. Topics include software vulnerability analysis, defense, and exploitation, reverse engineering, networking and wireless security, and applied cryptography. Students will also learn the fundamental methodology for how to design and analyze security critical systems.

Course Design

This course covers three basic areas in computer security:

Software security.

In this portion of the course we will investigate common types of vulnerabilities ranging from buffer overflows to injection attacks. Students will become adept at reverse engineering, identifying flaws, and exploitation. The goal is for students to be able to i) recognize vulnerabilities, ii) understand the fundamental characteristics of the vulnerabilities, and iii) understand current defenses.

Network security.
Applied Cryptography.

Grading and Policies

Grading

I will guarantee at least the following grades:

I may lower the points necessary to achieve a grade, but I will not raise them.

Breakdown

I will use the following breakdown:

Although there are three exams, I will drop the lowest exam grade.

Late Days

Late days interfere with the ability of course staff to quickly turn around assignment grades and solutions. The problem is we cannot give out solutions or graded assignments until everyone has turned in their work. Therefore, we only offer late days in emergency or exceptional circumstances, such as hospitalization. We do not offer late days for personal scheduling issues such as interviews, class load, etc.

Policies

The course staff will treat all students ethically and fairly. We, in turn, expect the same from all students.

Any lapse in ethical behavior will immediately result in −1,000,000 points, as well as be immediately reported to the appropriate university disciplinary unit. Really. Even if you just have to pass the class, even if you didn’t know it was cheating or plagiarism, and even if it will never happen again. Prof. Brumley is very, very tough and intolerant of cheating, plagiarism, or unethical behavior.

This course will follow CMU’s policy on cheating and plagiarism. Note that the policy gives several examples of what constitutes cheating and plagiarism. If you have any questions, you should contact the instructor. We have one additional rule: don’t be a nuisance. Even if something is legal, that doesn’t mean it is necessarily ok.

Please ask the course staff if you have any questions regarding whether a particular behavior is OK or not. In particular:

Schedule

The schedule below is subject to changes. Please check back regularly.

Num Date Subject and Slides Reading/Materials
08/25/2014 Introduction Trusting Trust
08/27/2014 Compilation and basic executions semantics CS:APP Chapter 3
09/01/2014 No Class. Official CMU Holiday
09/03/2014 Control flow attacks
09/08/2014 Thinking up exploits
09/10/2014 No Class.
09/15/2014 Control flow attack defenses Homework 1 Out
09/17/2014 Return-oriented programming
09/22/2014 CFI and Reference Monitors Control Flow Integrity: Principles, Implementations, and Applications (Note: I have here the conference version. There is also a longer, more complete journal version.)

Homework 1 Due
09/24/2014 Review
09/29/2014 Exam 1
10/1/2014 Class cancelled
10/06/2014 Introduction to cryptography Mihir Bellare’s Introduction to Modern Cryptography:
10/08/2014
10/13/2014 OTPs, PRNGs, and proving security
10/15/2014 OTPs, PRNGs, and proving security recap. Intro to block ciphers.
10/20/2014 Block ciphers continued.
10/22/2014 No Class.
10/27/2014 MACs and hashes
10/29/2014 Authenticated encryption Homework 2 Out
11/03/2014 Public key crypto
11/05/2014 Review Homework 2 Due
11/10/2014 Exam 2
11/12/2014 Web Security 1: The Basics
11/17/2014 Web Security 2 Homework 3 Out
11/19/2014 Mobile Security [PDF] [ODP]
11/24/2014 IDS and Detection Theory The base-rate fallacy and its implications for the difficulty of intrusion detection

Homework 3 Due
11/26/2014 No Class. Official CMU Holiday
12/01/2014 Review
12/03/2014 Exam 3 You’re done!

Homework

Homework 1

Homework 2

Homework 3

PPP: The CMU Hacking Team

Do you want to become a skilled hacker? There is no substitute for practice. Luckily, CMU has one of the best competitive hacking teams in the world: PPP. I am the faculty advisor for PPP, the CMU hacking team. Please visit their website for information. I recommend signing up for their mailing list, and regularly attending meetings.