The process and the practice of assessing a computer system’s existing information security posture. Detailing the time-tested practices of experienced security architects; how to deliver the right security at the right time in the implementation lifecycle. Includes secure coding practices and methods, code review, and malware analysis.

Credits: 3

Session length: 2 hours and 45 minutes

Prerequisites

N/A

Course Objectives

  1. Analyze vulnerable software using disassembler and debugger output.
  2. Understand how to apply and bypass modern binary protections.
  3. Assess the information security posture of a computer system.
  4. Map insecure coding practices to common security frameworks.

AI Policy

Using LLMs has become increasingly popular for exploit development. This has increased efficiency and created novel methods to identify vulnerabilities which simply cannot be accomplished at the same human speed. It has also introduced a decrease in understanding of the exploits that LLMs generate, leading to incomplete patches and adjacent vulnerabilities appearing.

We will not shy away from this—first use AI to learn what a binary’s purpose is, then learn how to exploit it. Through in-class labs, presentations, and Q&As, you will build your reasoning.

Choosing your Model

You may use any agent. You are expected to purchase your own subscription if you wish to do so.

Usage

You are encouraged to use AI in this course.

However, there are rules for AI usage that must be strictly followed:

  1. You may NOT make use of any agent during live presentations.
  2. There are no exceptions to this rule.

Reporting

You are not permitted to work in teams for reports. All work written must be your own.

For additional questions about policy or usage, consult with me before submission.


Final Project

Each student will submit their own final project, including an end-of-semester presentation. More details available soon.


Grading

CategoryWeight
Labs (x5)45%
Final Project30%
Reports15%
Participation10%

Tentative Schedule

WeekTopicsDue
Week 1Environment setup, definition of Trusted Software SystemsLab 0
Week 2Memory & Logic Introduction
Week 3Introduction to GDB and secure coding
Week 4Analyzing simple binaries with GhidraLab 1
Week 5Case Study: Stripped binaries and binary patching in Ghidra
Week 6Binary Protections ILab 2
Week 7Binary Protections II and Evasion
Week 8MITRE CWE frameworkLab 3
Week 9Spring Break
Week 10Automated Vulnerability Discovery and fuzzing
Week 11Analyzing crash logsLab 4
Week 12Case Study: IoT Devices
Week 13CVSS scoring, responsible disclosure, SECURITY.mdLab 5
Week 14Prepare Projects
Week 15Final Project Presentations
Week 16Enjoy your break!

Acknowledgements

This course’s AI policy was inspired by Dr. Yueqi Chen’s course, CSCI 5573 Graduate Operating Systems, at CU Boulder.