Skip to content

Files

Latest commit

f7e8b27 · May 22, 2025

History

History
253 lines (185 loc) · 13.3 KB

index.html

File metadata and controls

253 lines (185 loc) · 13.3 KB

CSE 227: Graduate Computer Security Deian Stefan

About

This course focuses on computer security, exploring a range of topics – from systems security, to web security, edge security, and privacy – to illustrate some of the modern research challenges in the area and the standards for advancement. It is not designed to be a tutorial course, but rather to give students the context to understand current security research and evaluate their interest in the field. The course will examine both the defensive and offensive side of the field. At the conclusion of the course, the students will have the foundation to conduct research in computer security and to apply the latest security research to a particular area of practice.

Lectures: : Tuesday and Thursday, 5:00--6:20pm, Mosaic 0204 Staff: : Instructor: Deian Stefan deian+cse227@cs.ucsd.edu

: Teaching Assistant: Hosein Yavarzadeh

Office hours: : Deian: Wednesday, 6:30--7:30pm, 3126

Class discussion: : Piazza : We'll use the CSE slack channel cse227-sp25

Calendar and Readings

Tue Apr 1 2025: Introduction

Thu Apr 3 2025: Low-level vulnerabilities and defenses

Tue Apr 8 2025: Low-level vulnerabilities and defenses

Thu Apr 10 2025: Low-level vulnerabilities and defenses

Tue Apr 15 2025: No class

Thu Apr 17 2025: No class

Tue Apr 22 2025: Privilege separation

Thu Apr 24 2025: Software fault isolation

Tue Apr 29 2025: OS security

Thu May 1 2025: OS Security

Fri May 2 2025: Status update

Tue May 6 2025: OS Security

Thu May 8 2025: Web-server security

Tue May 13 2025: Web-server security

Thu May 15 2025: Web-server security

Fri May 16 2025: Status update

Tue May 20 2025: Hardware security

Thu May 22 2025: Hardware security

  • Reading:
    • Spectre continued + hack on your project

Fri May 23 2025: Status update

Tue May 27 2025: Hardware security

Thu May 29 2025: Hardware security

Fri May 30 2025: Status update

Tue Jun 3 2025: Hot topics

Thu Jun 5 2025: MS Comprehensive exam

Evaluation

Since the primary goal of this course is to prepare to you to do research, the evaluation for this course is simple: (1) class participation and (2) research project.

Participation (35%)

You are expected to read the assigned paper(s) before each meeting. In class we will discuss the interesting parts of the paper(s). You are expected to do any background reading on your own and come prepared with questions and an evaluation of the paper.

Research project (65%)

You will work on projects in groups of 3-5. The goal of the project is to conduct original research in security. You are encouraged to come up with your own project idea, but we have a few ideas that are well-scoped for a quarter project.

At the end of the quarter, you are expected to turn in a short research paper (6-10 pages) and give a 7-10 minute talk. We will have periodic status updates to help you stay on track.

Comprehensive exam (25%)

If you are a MS student taking the comprehensive exam: your project will be worth 40% (not 65%) and the exam will be worth 25%.

Project ideas

Take a look at Stefan's list of project ideas. Here is a list of new projects:

  • Sandbox a serious third-party C library in a popular C++ program using RLBox.
  • Extend Wasm with provably-safe inline assembly.
  • Verify the SFI safety of binaries compiled with wasm2c (via Clang).
  • Find bugs by combining source-level static checking (e.g., CodeQL) with low-level symbolic execution (a la Sys).
  • Statically (or symbolically) check the IPC layerof Firefox (or Chrome).
  • Design and implement an RLBox like system for Rust.
  • Extend Rust's bindgen to sandbox C code in Rust projects.
  • Extend Node.js' Node-API to sandbox C code for Node.
  • Sandbox CPython code.
  • Analyze the implications of undefined behavior in sandboxing systems.
  • Add hardware backed (e.g., ARM MTE or CHERI) to Memory Safe Wasm (MSWasm) compiler.
  • Sandbox (e.g., using containers) npm install scripts.
  • Implement a transparency system for (detecting supply chain attacks on) npm.
  • Implement a language-level module sandboxing system for Node.js.
  • Analyze the top n Node.js module to understand if a capability security model is practical.
  • Analyze (attack) the pre-processing stage (e.g., image decoding library) of typical neural network pipelines.
  • Verify/check analysis passes (e.g., effects, alias) in JITs.
  • Verify peep hole optimizations in the Firefox JIT.
  • Verify the security of the V8 Sandbox.
  • Port the V8 Sandbox to Firefox' SpiderMonkey.
  • Find bugs in or verify uBPF's code generation.

Hall of fame

List of papers that started out as CSE 227 projects:

  • CoResident Evil: Covert Communications in the Cloud with Lambdas, Anil Yelam, Ariana Mirian, Keerthana Ganesan, Shibani Subbareddy, and Stefan Savage, Proceedings of the Web Conference (WWW), Ljubljana, Solvenia, April 2021.

  • Доверя́й, но проверя́й: SFI safety for native-compiled Wasm, Evan Johnson, David Thien, Yousef Alhessi, Shravan Narayan, Fraser Brown, Sorin Lerner, Tyler McMullen, Stefan Savage, and Deian Stefan, Proceedings of the Network and Distributed System Security Symposium (NDSS), San Diego, CA, February 2021.

  • Retrofitting Fine Grain Isolation in the Firefox Renderer, Shravan Narayan, Craig Disselkoen, Tal Garfinkel, Nathan Froyd, Eric Rahm, Sorin Lerner, Hovav Shacham, and Deian Stefan, Proceedings of the USENIX Security Symposium, August 2020.

  • Network Reconnaissance and Vulnerability Excavation of Secure DDS Systems, Ruffin White, Gianluca Caiazza, Chenxu Jiang, Xinyue Ou, Zhiyue Yang, Agostino Cortesi, Henrik Christensen, Proceedings of Workshop on Software Security for Internet of Things (SSIoT), June 2019.

  • FaCT: A Flexible, Constant-Time Programming Language, Sunjay Cauligi, Gary Soeller, Fraser Brown, Brian Johannesmeyer, Yunlu Huang, Ranjit Jhala, and Deian Stefan, Secure Development Conference (SecDev), September 2017.

  • On the (In)effectiveness of Mosaicing and Blurring as Tools for Document Redaction, Steven Hill, Zhimin Zhou, Lawrence Saul, and Hovav Shacham, Privacy Enhancing Technologies Symposium, Darmstadt, Germany, July 2016.

  • Fast and Vulnerable: A Story of Telematic Failures, Ian Foster, Andrew Prudhomme, Karl Koscher, and Stefan Savage, Proceedings of the USENIX Workshop On Offensive Technologies (WOOT), Washington D.C., August 2015.

  • Are AES x86 Cache Timing Attacks Still Feasible? (short paper), Keaton Mowery, Sriram Keelveedhi, and Hovav Shacham, Proceedings of the Cloud Computing Security Workshop (CCSW), October 2012.

  • When Good Services Go Wild: Reassembling Web Services for Unintended Purposes, Feng Lu, Jiaqi Zhang, and Stefan Savage, Proceedings of the USENIX Workshop on Hot Topics in Security, Bellevue, WA, August 2012.

  • Heat of the Moment: Characterizing the Efficacy of Thermal Camera-Based Attacks, Keaton Mowery, Sarah Meiklejohn, and Stefan Savage, Proceedings of the USENIX Workshop On Offensive Technologies (WOOT), San Francisco, CA, August 2011.

  • Extracting Device Fingerprints from Flash Memory by Exploiting Physical Variations, Pravin Prabhu, Ameen Akel, Laura Grupp, Wing-Key Yu, G. Edward Suh, Edwin Kan, and Steven Swanson, Proceedings of the 4th International Conference on Trust and Trustworthy Computing (TRUST), Pittsburg, Pennsylvania, June 2011.

  • Privacy-preserving Network Forensics, Mikhail Afanasyev, Tadayoshi Kohno, Justin Ma, Nick Murphy, Stefan Savage, Alex C. Snoeren, and Geoffrey M. Voelker, Communications of the Association for Computing Machinery 54(5), May 2011.

  • Got Traffic? An Evaluation of Click Traffic Providers, Qing Zhang, Thomas Ristenpart, Stefan Savage, and Geoffrey M. Voelker, Proceedings of the WICOM/AIRWeb Workshop on Web Quality (WebQuality), Hyderabad, India, Mar 2011.

  • Neon: System Support for Derived Data Management, Qing Zhang, John McCullough, Justin Ma, Navil Schear, Michael Vrable, Amin Vahdat, Alex C. Snoeren, and Geoffrey M. Voelker, Proceedings of the ACM International Conference on Virtual Execution Environments (VEE), Pittsburgh, PA, March 2010.

  • When Good Instructions Go Bad: Generalizing Return-Oriented Programming to RISC, Erik Buchanan, Ryan Roemer, Hovav Shacham, and Stefan Savage, Proceedings of the ACM Conference on Computer and Communications Security (CCS), Alexandria, VA, October 2008, pages 27-38.

  • Reconsidering Physical Key Secrecy: Teleduplication via Optical Decoding, Benjamin Laxton, Kai Wang, and Stefan Savage, Proceedings of the ACM Conference on Computer and Communications Security (CCS), Alexandria, VA, October 2008, pages 469-77.

<style class="fallback">body{visibility:hidden;white-space:pre;font-family:monospace}</style><script src="markdeep.min.js"></script> <script> window.alreadyProcessedMarkdeep || (document.body.style.visibility="visible"); markdeepOptions= {tocStyle: 'short', sortScheduleLists: false }; </script>