ECS 289M. Software Security

Fall 2004CRN: 63557
Lectures:Tuesday and Thursday, 6:10pm-7:30pm, 105 Olson.
Office hours:Thursday 12-1pm, 3063 Kemper, or by appointment.
Instructor:
Hao Chen  <hchen AT cs.ucdavis.edu>
TA:
Jeff Wu  <jtzwu AT ucdavis.edu>
Mailing list: ecs289m-f04@ucdavis.edu https://listproc.ucdavis.edu/class-secure/200410/ecs289m-f04 (secure web archive)

Announcements


Goals

This graduate course covers common software vulnerabilities and major techniques for improving software security. It emphasizes how to apply practical programming language techniques and tools to improving the security of real-world programs. It also prepares the students for research on language-based security.

Topics

Requirements and Grading


Readings

Note: readings are subject to change.

WeekDateTopicReadings
19/30Overview
Slides
210/5Overview (cache) Shifting the odds: Writing (more) secure software. Bellovin.
(cache) Improving Security Using Extensible Lightweight Static Analysis Evans, Larochelle.
10/7Type qualifier (cache) Detecting Format String Vulnerabilities With Type Qualifiers Shankar, Talwar, Foster, Wagner.
(The next paper is optional: it provides detailed background on type qualifiers.)
(cache) Flow-Sensitive Type Qualifiers Foster, Terauchi, Aiken.
310/12Type qualifier Slides
Speaker: Robert Johnson
(cache) Finding User/Kernel Pointer Bugs With Type Inference Johnson, Wagner.
10/14Software model checking (cache) MOPS: an infrastructure for examining security properties of software Chen, Wagner
(cache) Model checking one million lines of C code Chen, Dean, Wagner
410/19Software model checking (cache) The SLAM Project: Debugging System Software via Static Analysis Ball, Rajamani.
(cache) Automatically Validating Temporal Safety Properties of Interfaces Ball, Rajamani.
(The next paper is optional.)
(cache) Lazy Abstraction. Henzinger, Jhala, Majumdar, Sutre.
10/21Metacompilation (cache) A System and Language for Building System-Specific, Static Analyses Hallem, Chelf, Xie, Engler.
(cache) Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code Engler, Chen, Hallem, Chou, Chelf.
510/26No class. Work on your project
10/28No class. Work on your project
611/2Intrusion detection (cache) Intrusion Detection via Static Analysis Wagner, Dean.
11/4Intrusion detection (cache) Efficient Context-Sensitive Intrusion Detection Giffin, Jha, Miller.
711/9Buffer overrun (cache) StackGuard: Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks Cowan, Pu, Maier, Hinton, Bakke, Beattie, Grier, Wagle, Zhang.
(The next article explains buffer overruns in detail. It is an optional reading.)
(cache) Smashing The Stack For Fun And Profit Aleph One.
11/11No class. Veterans Day holiday
811/16Memory safety (cache) CCured: Type-Safe Retrofitting of Legacy Code Necula, McPeak, Weimer.
11/18Java security (cache) Extensible security architectures for Java Wallach, Balfanz, Dean, Felten
(The next paper is optional)
(cache) Java security: from HotJava to Netscape Dean, Felten, Wallach.
911/23Java security (cache) IRM enforcement of Java stack inspection Erlingsson, Schneider.
11/25No class. Thanksgiving holiday
1011/30Mobile code security (cache) A secure environment for untrusted helper applications: confining the wily hacker Goldberg, Wagner.
12/2Mobile code security(cache) Safe Kernel Extensions Without Run-Time Checking Necula and Lee.
1112/7Privilege separation
in the real world
(cache) Preventing Privilege Escalation Provos, Friedl, and Honeyman.
Project home
12/9DiscussionNone

Feedback

I always welcome any feedback on what I could be doing better. You are also welcome to send me feedback anonymously.


Hao Chen  <hchen AT cs.ucdavis.edu>
Last modified December 7, 2004.
Valid XHTML 1.1! Valid CSS!