Lab 02 — Hardening System Programming
In this lab session, we will take a practical tour of existing techniques to secure system programs implemented in traditional system programming languages. We will experiment with testing, fuzzing, code instrumentation (of both binary and source code), and static analysis.
By the end of the session, you will have a better understanding of the state of the art of hardening system programming, including its limitations.
Credits
The exercises of this lab session contain material and ideas reused with permission from the week 1 assignments of Stanford’s course CS 110L (2022) by Ryan Eberhardt, Armin Namavari, Will Crichton, Julio Ballista, and Thea Rossman.