Schedule
This is a tentative schedule for the class. There could be some dynamic adjustments as and when needed.
Note: We will have project presentations on November 29th and December 01, 03, 06, 08, and, 10.
-
EventDateDescriptionCourse Material
-
No Class08/19/2024
MondayInstructor Travelling -
Lecture08/21/2024
WednesdayIntroductionRequired Readings:
-
Assignment08/21/2024
WednesdayAssignment #0 - Self Assessment released! -
Lecture08/23/2024
FridayMemory Corruption and Vulnerability Detection - Static analysis (Part 1)[slides] [References]Required Readings:
Suggested Readings:
-
Due08/23/2024 23:59
FridayAssignment #0 due -
No Class08/26/2024
MondayDARPA Meeting -
Lecture08/28/2024
WednesdayMemory Corruption and Vulnerability Detection - Static analysis (Part 2)[slides] [References]Required Readings:
Suggested Readings:
-
Lecture08/30/2024
FridayLLVM - Crash course[slides] -
Lecture09/02/2024
MondayVulnerability Detection - Fuzzing (Part 1)[slides]Required Readings:
Suggested Readings:
- Driller: Fuzzing and symbolic execution
- DIFUZE: Interface Aware Fuzzing for Kernel Drivers
- Angora: Efficient Fuzzing by Principled Search
- Be Sensitive and Collaborative: Analyzing Impact of Coverage Metrics in Greybox Fuzzing
- Not All Coverage Measurements Are Equal: Fuzzing by Coverage Accounting for Input Prioritization
- T-Fuzz: fuzzing by program transformation
-
No Class09/02/2024
MondayLabor Day -
Assignment09/03/2024
TuesdayAssignment #1 - LLVM Playground released! -
Lecture09/04/2024
WednesdayVulnerability Detection - Fuzzing (Part 1) -- By Shashank[slides]Required Readings:
Suggested Readings:
- Driller: Fuzzing and symbolic execution
- DIFUZE: Interface Aware Fuzzing for Kernel Drivers
- Angora: Efficient Fuzzing by Principled Search
- Be Sensitive and Collaborative: Analyzing Impact of Coverage Metrics in Greybox Fuzzing
- Not All Coverage Measurements Are Equal: Fuzzing by Coverage Accounting for Input Prioritization
- T-Fuzz: fuzzing by program transformation
-
Lecture09/06/2024
FridayFuzzing UEFI Interfaces (By Connor)[slides] -
Project Milestone09/09/2024 00:00
MondayProject Proposal Due -
Lecture09/09/2024
MondayVulnerability Detection - Sanitizers (Part 1)[slides]Recommended Readings:
-
Lecture09/11/2024
WednesdayVulnerability Detection - Sanitizers (Part 2)[slides]Recommended Readings:
-
Lecture09/13/2024
FridayVulnerability Detection - Symbolic Execution (Part 1)[slides]Required Readings:
- KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs
- Symbolic Execution for Software Testing: Three Decades Later
Suggested Readings:
- SAGE: Automated Whitebox Fuzzing
- Under-constrained symbolic execution
- Target-Driven Compositional Concolic Testing
- Chopped Symbolic Execution
- QSYM: A Practical Concolic Execution Engine Tailored for Hybrid Fuzzing
- Symbolic Execution with SymCC
- Neuro-Symbolic Execution: Augmenting Symbolic Execution with Neural Constraints
-
Lecture09/16/2024
MondayVulnerability Detection - Best Effort (Part 1)[slides]Required Readings:
Recommended Readings:
- Sys: a Static/Symbolic Tool for Finding Good Bugs in Good (Browser) Code
- μVulDeePecker: A Deep Learning-Based System for Multiclass Vulnerability Detection
- Automatic Inference of Search Patterns for Taint-Style Vulnerabilities
- Bran: Reduce Vulnerability Search Space by Learning Bug Symptoms
- ARBITRAR: User-Guided API Misuse Detection
Suggested Readings:
-
Project Milestone09/23/2024 00:00
MondayRelated Work Due -
Lecture09/23/2024
MondayVulnerability Prevention (Part 1)[slides]Required Readings:
- SoftBound: Highly Compatible and Complete Spatial Memory Safety for C
- Preventing Use-after-free with Dangling Pointers Nullification
Suggested Readings:
-
Lecture09/25/2024
WednesdayVulnerability Prevention (Part 1)[slides]Required Readings:
- SoftBound: Highly Compatible and Complete Spatial Memory Safety for C
- Preventing Use-after-free with Dangling Pointers Nullification
Suggested Readings:
-
Lecture09/27/2024
FridayVulnerability Prevention (Part 1)[slides]Required Readings:
- SoftBound: Highly Compatible and Complete Spatial Memory Safety for C
- Preventing Use-after-free with Dangling Pointers Nullification
Suggested Readings:
-
Lecture09/30/2024
MondayVulnerability Prevention (Part 2)[slides]Required Readings:
- CCured: Type-Safe Retrofitting of Legacy Code
- Dependent Types for Low-Level Programming
- Checked C: Making C Safe by Extension
Suggested Readings:
-
Due09/30/2024 23:59
MondayAssignment #1 due -
Exam10/02/2024 04:30
WednesdayMidterm 1 (In class, closed book, 50 min).Topics:
- Abstract Interpretation
- Static Analysis – Sound, Complete, Sensitivities
- Fuzzing – AFL++, Coverage, Feedback, etc.
- Symbolic Execution – Technique, advantages, disadvantages.
- Sanitizers – Technique, Types, Pros, Cons.
Style:
- On paper — old style.
Types of Questions:
- Multiple choice.
- Descriptive.
- Fill in the blanks.
- Open ended.
-
Assignment10/04/2024
FridayAssignment #2 - Symbolic Execution Playground released! -
Project Milestone10/07/2024 00:00
MondayResearch Plan Due -
No Class10/07/2024
MondayFall Break -
Lecture10/09/2024
WednesdayAutomated Patching (Part 1)[slides]Required Readings:
- Automatically Finding Patches Using Genetic Programming
- The strength of random search on automated program repair
- Talos: Neutralizing Vulnerabilities with Security Workarounds for Rapid Response
- Using Safety Properties to Generate Vulnerability Patches
- SAVER: scalable, precise, and safe memory-error repair
Suggested Readings:
-
Lecture10/11/2024
FridayAutomated Patching (Part 2)[slides]Required Readings:
- Automatically Finding Patches Using Genetic Programming
- The strength of random search on automated program repair
- Talos: Neutralizing Vulnerabilities with Security Workarounds for Rapid Response
- Using Safety Properties to Generate Vulnerability Patches
- SAVER: scalable, precise, and safe memory-error repair
Suggested Readings:
-
Lecture10/14/2024
MondayAutomated Patching (Part 3)[slides]Required Readings:
- Automatically Finding Patches Using Genetic Programming
- The strength of random search on automated program repair
- Talos: Neutralizing Vulnerabilities with Security Workarounds for Rapid Response
- Using Safety Properties to Generate Vulnerability Patches
- SAVER: scalable, precise, and safe memory-error repair
Suggested Readings:
-
No Class10/16/2024
WednesdayInstructor Attending CCS Conference. -
Project Milestone10/21/2024 00:00
MondayAbstract/Intro Due -
Lecture10/21/2024
MondayPatch Propagation (Part 1)[slides] -
Lecture10/23/2024
WednesdayPatch Propagation (Part 2)[slides] -
Due10/24/2024 23:59
ThursdayAssignment #2 due -
Lecture10/25/2024
FridayPatch Propagation (Part 3)[slides] -
Assignment10/25/2024
FridayAssignment #3 - Real World Bug Finding released! -
Lecture11/06/2024
Wednesday -
Lecture11/08/2024
FridayConfused Deputy in AI Accelators (By Srihari)[slides] -
Due11/20/2024 23:59
WednesdayAssignment #3 due -
Exam11/22/2024 04:30
FridayMidterm 2.Topics:
- Vulnerability Detection - Best effort.
- Vulnerability Prevention and Checked C.
- Automated Patching.
- Patch Propagation.
Style:
- On paper — old style.
Types of Questions:
- Multiple choice.
- Descriptive.
- Fill in the blanks.
- Open ended.
-
Project Milestone12/06/2024 00:00
FridayProject Presentation -
Project Milestone12/11/2024 00:00
WednesdayFinal Project Report Due