Special Topics in Offensive Security is a graduate course that explores the tools and techniques used to attack systems, networks, and software. The course goals are the following:

  • Provide both theoretical and working knowledge of popular vulnerability classes and how to exploit them
  • Enumerate deployed defense classes and how to bypass them
  • Examine techniques for discovering 0-day vulnerabilities and developing proof-of-concept exploits
  • Provide hands-on experience in the stages of typical attack campaigns

Topics covered by this course include:

  • Security foundations
  • Memory corruption
  • Reverse engineering
  • Fuzzing
  • Reconnaissance
  • Privilege escalation
  • Attack persistence
  • Data exfiltration

Upon completion of this course, students will be able to:

  • Discover previously-unknown vulnerabilities in compiled code using dynamic testing and manual reverse engineering
  • Develop proof-of-concept exploits for discovered vulnerabilities that bypass state-of-the-art defenses
  • Integrate exploits into multi-stage targeted attack campaigns

Meetings

  • Class meetings TBD
  • TA hours TBD
  • Office hours are by appointment

Grading

Grades will be assigned based on the completion and presentation of project assignments and a final project. There will be no written coursework in this class. However, points will be awarded for class participation.

Assignments
50%
Final Project
40%
Participation
10%

Prerequisites

This course assumes a solid background in programming, systems, and networking. Familiarity with the following systems, languages, and tools is strongly suggested.

  • UNIX/Linux
  • TCP/IP
  • C/C++
  • Bash scripting
  • Python, Ruby, etc.
  • JavaScript
  • SSH
  • Git

Policies

Cheating. Work submitted for grading must represent your own effort. Group work is not allowed unless a problem statement specifically states otherwise. There will be zero tolerance for cheating; all cheating cases will be brought to OSCCR. Actions that constitute cheating are defined in the University Academic Integrity Policy, and students that participate in this course must acknowledge that they have read and understood this document.

Grading. Late assignments will be accepted, with the caveat that scores will be penalized by a full letter grade for each day that an assignment is late. Grades may be subject to a curve.

Reference Material. There is no official textbook for this course. Instead, we will rely on lectures and suggested readings. If you need to brush up on background material, refer to relevant courses and their textbook recommendations.

Online Discussion. Online discussion and questions will be handled through Piazza, not via email. A best effort attempt will be made to respond to posts within 24 hours on weekdays during normal working hours. To ensure a timely response, do not wait to ask questions until the night before a submission deadline.

Ethics. This course covers sensitive material that includes information on how to exploit vulnerable software. Attack-oriented work must be restricted to the computing resources provided. Alternatively, students can perform this work using personal resources so long as other computing resources are not affected.

In particular, attacks performed against University resources or the open Internet are expressly prohibited. Students should also be familiar with the University Appropriate Use policy.

Schedule

Note: This schedule is preliminary and subject to change.
Date Module Topics and Readings

Projects

Topic Submission Deadline