Instructor Trent Jaeger (tjaeger 'at' cse.psu.edu)
Location 116 EES Bldg
Meeting Times T-TH 11:15pm-12:30pm
Credits 3
Office Hours Tu 2-3 and by appointment


In this course, we study research in computer and operating systems (host) security. The main focus of this course is the design of authorization systems and their application to host security. The course aims to provide foundations of authorization systems, approaches for designing effective systems, and tools and techniques for detecting problems in conventional systems and repairing such problems.

Topics will include protection systems, basic security principles, seminal security in Multics, vulnerabilities in ordinary systems, mandatory access control, security kernels, commercial MAC systems, secure capability systems, virtual machine systems, assurance, research in system integrity, dencentralized information flow, and distributed systems security. We will work from my book on operating systems security, and augment the text with research papers, some classical and some recent. There will also be three to four programming projects to explore the technological issues in the context of the Linux operating system (some involving kernel programming).

A detailed list of a lecture by lecture contents, assignments, and due dates (subject to change as semester evolves) is available on the course calendar.


The course will be graded on programming projects, exams, occasional quizzes, and class participation in the following proportions:

30% Projects
25% Midterm Exam
25% Final Exam
10% Quizzes and Reviews
10% Class Participation

Programming Projects

This course will have one or two basic programming projects aimed at giving you some hands-on experience with mandatory access control systems in Linux (e.g., Linux Security Modules and SELinux). These projects aim to give you a familiarity with the current practice of security operating systems. Some of the projects will involve kernel programming. For this, I expect you to install a VMware system (university has a license) and a Linux environment for performing kernel development.

In addition, there will be a course project, which will focus on a research area is systems security. You will work in teams on this project under my guidance.


This course will have midterm and final exams. The midterm will cover core background in systems security, including the book and related papers. This midterm will be a take-home midterm. The final exam will be comprehensive, and will be given in class.

Quizzes and Reviews

Quizzes will be given at the beginning of class and will cover topics from the prior lectures and readings. Quizzes will be announced in advance. Quizzes missed because of absences cannot be made up unless arrangements are made with the instructor prior to the course meeting.

Reviews of one paper from the day's readings will be required using the same format as was used in CSE 543.

Class Participation

Class participation focuses on the readings assigned for the class. During the lecture, we will discuss the readings, and students are required to participate in discussions during each lecture. It is strongly suggested that students do the reading prior to this class. Ultimately, the students' ability to exhibit comprehension of readings is essential to a good grade.

Lateness Policy

All milestones are assesed a 20% per-day late penalty, up to a maximum of 4 days. Unless the problem is apocalyptic, don't give me excuses. Students with legitmate reasons who contact the professor before the deadline may apply for an extension.

Required Texts

Most of the course readings will come from the following required textbook:

However, we will also read some research papers to supplement our discussions. The specific papers will be posted on the course calendar.

Course Outline

A rough outline of the class is as follows:

  1. Introduction
    1. Course background
    2. OS and Security
    3. Protection
    4. Security Principles
    5. Program Security Principles
  2. Intro to Protection and Security in Systems
    1. Multics
    2. Vulnerabilities in Multics
    3. Protection in Ordinary OSes
    4. Vulnerabilities in Ordinary OSes
  3. Mandatory Access Control (MAC)
    1. MAC Models -- Bell-La Padula, Biba, etc.
    2. Security Kernels
    3. Secure UNIX
    4. MAC OS -- SELinux
  4. Other Systems
    1. Decentralized Information Flow
    2. Capability Systems
    3. Virtual Machines Systems
  5. Assurance
    1. Classical Assurance
    2. Alternative Integrity
    3. Layering of Systems
  6. Special Topics
    1. Trusted Computing
    2. Device Security
    3. Cloud Security
    4. Software Security
    5. Software Testing Methods

Academic Integrity Policy

Students are required to follow the university guidelines on academic conduct at all times. Students failing to meet these standards will automatically receive a 'F' grade for the course. The instructor carefully monitors for instances of offenses such as plagiarism and illegal collaboration, so it is very important that students use their best possible judgement in meeting this policy. The instructor will not entertain any discussion on the discovery of an offense, and will assign the 'F' grade and refer the student to the appropriate University bodies for possible further action.

Note that students are explicitly forbidden to copy anything off the Internet (e.g., source code, text) for the purposes of completing an assignment or the final project. Also, students are forbidden from discussing or collaborating on any assignment except were explicitly allowed in writing by the instructor.

Ethics Statement

This course considers topics involving personal and public privacy and security. As part of this investigation we will cover technologies whose abuse may infringe on the rights of others. As an instructor, I rely on the ethical use of these technologies. Unethical use may include circumvention of existing security or privacy measurements for any purpose, or the dissemination, promotion, or exploitation of vulnerabilities of these services. Exceptions to these guidelines may occur in the process of reporting vulnerabilities through public and authoritative channels. Any activity outside the letter or spirit of these guidelines will be reported to the proper authorities and may result in dismissal from the class.

When in doubt, please contact the instructor for advice. Do not undertake any action which could be perceived as technology misuse anywhere and/or under any circumstances unless you have received explicit permission from Professor Jaeger.

Course Updates