CSE 360 Software Security

Spring 2017

Course Description/Topics Lecture Notes Grading Class Hours
Important Dates Instructor and TA Texts Special needs

Course Description

This course will describe the principles and practice of securing software systems. We will cover software vulnerabilities and defenses, with a focus 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 thwart such attacks.

Lecture Topics

The topics covered in the course can be divided into two parts: foundations, and applications. Although the two parts are presented in sequence below, in reality, the lectures will alternate between the two.

Foundations

Contemporary Threats, Vulnerabilities and Defenses

Lecture Notes

The topics, notes and readings below will be updated as the semester progresses.
Topic
#
Description/Reading Slides Notes
1 Introduction
Challenges and Mitigation Techniques
PDF  
2 Cryptography Basics
Reading: Who is guarding the guardians: The Comodohacker's postings
Reading: The Perfect Weapon: How Russian Cyberpower Invaded the U.S.
PDF PDF
3 Identification and Authentication
Reading: Password Security:A Case History
Reading: Lamport's One-Time Password Scheme
Optional Reading: How anonymous hacked into a security firm
PDF PDF
4 Background: Runtime memory organization
Layout of code, static area, stack and heap
Struct/Object layout in C/C++ (Review only the last part of notes.)
   
TXT
TXT
5 Stack-smashing, Heap overflows and Format string attacks
Reading: Smashing the stack for fun and profit
PDF PDF
6 Integer overflows
Memory corruption defenses: guarding, ASR, DSR, ...
Optional Reading: Memory exploitation defenses in Windows
Optional Reading: (Not so) Recent advances in exploiting buffer overruns
Optional Reading: Basic Integer Overflows
See Prev. Topic
7 Memory-error detection: Bounds-checking, etc. See Prev. Topic
8 Malware
Evasion, obfuscation, Software tamper-resistance
A very short article from 2011 on specific malware trends.
PDF PDF
9 Securing Untrusted Code: System-call interception,
Inline-reference monitoring
PDF PDF
10 Securing Untrusted Code: Inline-reference monitoring,
Software-based fault isolation, Control-flow integrity
  PDF
11 Binary analysis and transformation: Disassembly, static binary rewriting
Dynamic translation
PDF PDF
12 Security policies
Reading (): Revisiting "Setuid Demystified"
Reading: (): Confining Root Programs with Domain and Type Enforcement
PDF PDF
13 Vulnerability analysis: Fuzzing and Symbolic Execution PDF
14 Injection Attacks, Taint-tracking
Race conditions
CWE and CVE
Principles of Secure System Design
PDF PDF
15 Web security PDF  
16 Virtual Machines PDF
17 Side-channel attacks
Network-based attacks
Intrusion Detection
Course summary
PDF  

Class Place and Time:

Lectures: Mon, Fri 1:00pm to 2:20am     Room New CS 115

Instructor:

R . Sekar
Office: Rm 364 New Computer Science
Office Hours: Mon/Fri noon to 1:00pm


Texts:

There is no official textbook for this course. We will primarily rely on lectures and notes posted on this page. Some of the lectures will draw on material from the following books, but I don't expect students to obtain copies of these books or read them, except for those who do it out of their own interest.


Important Dates:

First day of classes Jan 23
No classes March 13 to 17
Mid-term March 20 1:00pm to 2:20pm
Last day of classes May 5
Final Tuesday, May 16 2:15 PM to 5:00 PM

Grading

Your final grades will be computed as follows. You should expect some changes to the weightages over the semester.

Copying homeworks 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 a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS), in the ECC building, 632-6748v/TDD. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.