(###)
CPSC 538M: Systems Security
[**Overview**](#overview) **//** [**Registration and Prerequisites**](#registration-and-prerequisites) **//** [**Evaluation**](#course-structure-and-grading) **//** [**Projects**](./projects.html) **//** [**Class schedule**](#reading-list) **//** [**Academic Integrity**](#academic-integrity)
This is a research-oriented graduate course covering topics on security and privacy techniques for software systems in the web, cloud, mobile, and edge.
Learning objectives:
Instructor: Aastha Mehta ( [firstname]k[lastinitial] [AT] cs.ubc.ca )
Class hours: Tue/Thu 11:00 – 12:30 hours PT, SWNG 306 ICCS 304
Office hours: Wed, 12:00 - 13:00h PT ([Zoom](https://ubc.zoom.us/j/62230160950?pwd=vCin2dlT0nJqEhOz64ovhc0c8bumt2.1)), or by appointment
Web tools: Piazza
Registration: Note, the last date to add/drop out of the course is 15 Sep 2025.
Prerequisites: Undergraduate knowledge of operating systems, architecture, networking, databases, and software engineering is essential. Any background in security is welcome but not required. The course is intended for Masters and Ph.D. students in Computer Science, but enterprising Bachelors students are welcome to participate.
Prerequisites for bachelors students: Fourth year standing, satisfying honors requirements. Students should have taken CPSC 313 and CPSC 317. Having taken at least one of CPSC 436A or CPSC 436S is great, but not mandatory.
The goal of this course is to teach you how to identify security threats, devise and reason about defense strategies, and develop security-oriented research directions within your own domain. The evaluation for this course consists of three components:
The grading scheme is tentative and subject to change until the beginning of the course. The course staff reserves the right to change the scheme, but we do not anticipate using that right except in consultation with the class as a whole.
Class participation (20%): Participation includes engaging in discussion over Piazza, in the "lectures", over HotCRP, and in project presentations of your peers.
Mid-term Quiz (25%): There will be one mid-term quiz conducted in the class time. The quiz will be open-book and open-laptop. Note that sharing quiz questions and answers to any external site, or to people outside the course section, now or at a later point in time, is strictly forbidden.
Project (55%): The course project must be done in teams of 1-2. The goal of the project is to learn to conduct research in computer security. You are encouraged to come up with your own ideas, but you can talk to the instructor for some ideas that are well-scoped for a course project.
Graduate students who are working on their own research or identifying research directions for their PhD/MSc/MASc typically prefer option 1. Undergraduate students may decide to (and are recommended to) choose option 2 or 3, unless they are working in a team with graduate students. Please schedule a meeting with the instructor as soon as possible to discuss and finalize your project plans for the course.
The project deliverables will include a research proposal, a proposal presentation, a final presentation, and a final report. For reproducibility studies, the final report must also include an artifact. For more details, please check the project page.
Here is a tentative schedule of papers to be covered in the class.
Date |
Topic | Preparation material | Other resources |
---|---|---|---|
Sep 02 | *Imagine Day* | ||
Sep 04 | Introduction, security overview, threat models | How to read a paper | |
Sep 09 | Access control |
| [Qapla](https://aasthakm.github.io/files/sec17-qapla.pdf) |
Sep 11 | Information Flow Control |
| |
***Register project team*** | |||
Sep 16 | Software vulnerabilities | [Eternal War in Memory](https://nebelwelt.net/files/13Oakland.pdf) |
|
Sep 18 | CFI and SFI |
| |
Sep 23 | Software-based sandboxing | [RLBox](https://www.usenix.org/system/files/sec20-narayan.pdf) | |
Sep 25 | Hardware-accelerated compartmentalization | [Capacity](https://kha-dinh.github.io/assets/pdf/capacity.pdf) (Tentative) | |
***Project abstract due (1 page)*** | [How to write a great research paper](https://www.microsoft.com/en-us/research/academic-program/write-great-research-paper/) | ||
Sep 30 | *Regional holiday -- National Day for Truth and Reconciliation* | ||
Oct 01 | ***1st project check-in*** | ||
Oct 02 | Modeling isolation abstractions | OSMosis (TBA) | [Survey](https://dl.acm.org/doi/pdf/10.1145/2988545) |
Oct 07 | Hardware isolation primitives | [Video](https://www.youtube.com/watch?v=MREwcSo0uz4) | |
***Project proposal due (3 pages)*** | |||
Oct 09 | Secure applications in TEEs | [ReZone](https://www.usenix.org/system/files/sec22fall_cerdeira.pdf) (tentative) | [Sanctuary](https://www.ndss-symposium.org/wp-content/uploads/2019/02/ndss2019_01A-1_Brasser_paper.pdf) |
Oct 14 | TCB for TEEs | [ACAI](https://n.ethz.ch/~sshivaji/publications/acai_usenix24.pdf) (tentative) | [StrongBox](https://fengweiz.github.io/paper/strongbox-ccs22.pdf) |
***Peer review*** | |||
Oct 16 | Cache-timing side-channels | [Survey](https://eprint.iacr.org/2016/613.pdf)
| |
Oct 21 | ***Project proposal talks*** | [How to give a great research talk](https://www.microsoft.com/en-us/research/academic-program/give-great-research-talk/) | |
Oct 23 | Cache side-channel mitigations |
| |
Oct 28 | Transient execution attacks | [Transient execution attacks and defenses](https://www.usenix.org/system/files/sec19-canella.pdf) | [Survey](https://dl.acm.org/doi/pdf/10.1145/3442479) |
Oct 30 | Transient execution attack mitigations |
|
|
Nov 04 | Network side-channel attacks | [Beauty and the Burst](https://www.usenix.org/system/files/conference/usenixsecurity17/sec17-schuster.pdf) | |
Nov 05 | ***2nd project check-in*** | ||
Nov 06 | Network side-channel mitigations | [NetShaper](https://www.usenix.org/system/files/usenixsecurity24-sabzi.pdf) | |
Nov 11 | *Mid-term break* | ||
Nov 13 | ***Mid-term quiz*** | ||
Nov 18 | AI systems & security overview |
|
|
Nov 20 | Prompt injection and jailbreaking | [Design Patterns](https://arxiv.org/pdf/2506.08837) | |
Nov 25 | Agents and access risk | [Securing AI agents with IFC](https://arxiv.org/pdf/2505.23643) | |
Nov 27 | ***Final project presentation*** | ||
Dec 02 | Project time | ||
Dec 04 | Project time | ||
Dec 05 | ***Final project reports due (5 pages)*** |
(###) Additional reading
(###) Acknowledgements
UBC’s main Vancouver campus—including our classroom and other course spaces—is located on the traditional, ancestral and unceded territory of the Musqueam people. These lands have always been a place of learning for Musqueam youth, who were instructed in their culture, history, and tradition, and who in turn shared their knowledge with a new generation.