CSE 509 Computer System Security

Fall 2021

Piazza Grading Instructor and TA Texts
Lectures Schedule Course Description Special needs

Course Description

In the class, we will discuss the principles and practice of computer system security, with particular emphasis on:

One of the main objectives of this course is adversarial thinking: students should be able to quickly zoom in on the weakest link in any security technology, or system design. Students should be able to imagine how an attacker might break their system, and build in protection and mitigation measures to ward off such attacks.

This is a hands-on course, where students learn by carrying out several short assignments and a final project. Some assignments will be aimed at in-depth understanding of software vulnerabilities by developing exploits. Others will be aimed at tools and techniques used for mitigating security threats. All of them are designed to prepare you for a final project that will be completed by groups of 2 to 4. All of these assignments and the projects provide a taste of research in software and systems security.

Some assignments are best carried out by teams of two. Please find a suitable project partner right at the beginning of the course in order to avoid problems later. You can do these assignments alone, but that obviously will mean more effort.


Course Topics

We will reorder these topics during the semester in order to ensure that topics relevant for the course project are covered early on.

Lectures

Note that lecture recordings are from a previous offering of this course. While most of the material has not changed, the depth of coverage in a few topics will differ to some extent. So, use these recordingly as supplementary material, but not as a substitute for in-person lectures.

Topic
#
Topics and Lecture Recordings Slides Notes
1 Introduction PDF  
2a Memory Corruption Vulnerabilities I Reading: Smashing the stack for fun and profit PDF
PDF
C Runtime Environment
C/C++ Object Layout
Memory Errors and Defenses
2b Exploit Assignment Discussion    
2c Memory Corruption Vulnerabilities II PDF  
3 More Software Vulnerabilities PDF
4 Malware
  • Types and goals of malware: 24 mins, 18 mins
  • Stealth, Obfuscation and Challenges of malware defense: 24 mins
PDF PDF
5 Defenses for Untrusted Code and Malware PDF PDF
6 Binary analysis and instrumentation PDF
PDF
PDF
6a Midterm review discussion    
7 Cryptography Basics*
  • Introduction: 14 mins
  • Symmetric (Secret Key) Cryptography: Overview 5 mins, Ciphers and algorithms 8 mins
  • Asymmetric (Public Key) Cryptography: 16 mins
  • Public vs Secret key encryption: 5 mins
  • Cryptographic random numbers: 10 mins
  • Digital signatures and message digests: 8 mins
  • Digital certificates: 5 mins
PDF PDF
8 Identification and Authentication   1h 11m   1h 6m
Reading: Password Security: A Case History
Reading: Lamport's One-Time Password Scheme
PDF PDF
9 OS Security and Access Control Reading: Revisiting "Setuid Demystified"
Reading: Confining Root Programs with Domain and Type Enforcement
PDF PDF
10 Virtual Machines   1hr 6 mins PDF
11 Web security PDF  
12 Intrusion Detection   0:35   0:30 PDF
13 Vulnerability analysis: Fuzzing and Symbolic Execution   1:12 PDF
14 Side-channel attacks   0:53
Reading: Metdown and Spectre attacks
PDF  
15 Course Summary PDF  

* Topics marked with an asterisk were recorded outside of normal class hours.


Class Place and Time:


Tentative Deadlines:

Dates for assignments and mid-term exams are subject to change.

DateDayItem
September 23 Thursday Exploit assignment
October 5 Tuesday Quiz I
October 16 Saturday Lab 2
October 28Thursday Mid-term Exam
November 3 Wednesday Lab 3
November 9 Tuesday Project selection due
November 16 TuesdayQuiz II
November 30 TuesdayQuiz III
December 13 MondayProject submission
December 15 WednesdayFinal exam

Late submission policy: You can take a total of two late days across the three programming assignments/labs. Just inform the TA whenever you want to take a day off. A day is defined as 24 hours. You can use both late days for one assignment, or use one late day each for two of the assignments.


Instructor:

R. Sekar
Office: Rm 364 New Computer Science
Office Hours: Wed 11:30am to 12:30 on Zoom

If you experience difficulties in joining the zoom call, please send me email (my last name at cs.stonybrook.edu).

TA:

Rory Bennett
Office Hours: Mon, Fri 11am to noon on zoom
Email: rmbennett at cs dot stonybrook dot edu


Texts:

There is no textbook for this course. We will rely primarily on class notes.


Grading

You will be handed homework problems sets in order to help you prepare for the exams. You will not have to submit solutions to these problem sets, but in order to encourage you to actually work out the problems, we will hold short quizzes in the class that test you on problems very similar to those in the problem sets. My intent is that quizzes require no preparation beyond solving problems in the associated homework problem set. In order to further reduce the stress involved in these quizzes, we automatically scale up your score in each quiz by a factor of 4/3, up to a maximum of 100%.

Your final grades will be computed as follows. The wieightings are approximate, and will change over the semester, stabilizing about half way into the semester.

Copying homework solutions or programming assignments from a fellow student or from the Internet, and all other forms of academic dishonesty, are considered serious offenses. They will be prosecuted to the maximum extent permitted by university policies.


Special Needs

If you have special needs, concerns or a disability, please contact the staff at Student Accessibility Support Center (SASC). SASC staff will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation will remain confidential.