Course Information

  • Instructor: Sang Kil Cha
  • Time: (Mon./Wed.) 9:00 ~ 10:30
  • Location: N1 #201
  • TAs:
    • 이시훈
    • 이용우
    • 이하은
  • Grading:
    • 20% Participation (assignments, in-class activities, etc.)
    • 40% Midterm
    • 40% Final

This course provides a brief overview of software security. The major topics this course will teach include, but not limited to the followings:

  • Why software is insecure?
  • How attackers can exploit insecure programs?
  • How does malware (malicious software) work? and how to combat it?
  • How should we protect software systems?

Schedule

(subject to change)

Date Topic Reading Notes
02/28/2022 Introduction
03/02/2022 The Basics and Threat Model
03/07/2022 Cryptographic Privacy HW1 out (due 3/8)
03/09/2022 Presidential Election
03/14/2022 Secure Coding
03/16/2022 Secure Coding (2)
03/21/2022 Trusting Trust and Assembly [Thompson/CACM1984]
03/23/2022 Machine Code and Debugging [Machine-Level Representation of Programs] HW2
03/28/2022 Debugger Internals
03/30/2022 Control Hijack [Smashing the Stack for Fun and Profit]
04/04/2022 Shellcoding
04/06/2022 Format String Attacks [Exploiting Format String Vulnerabilities] HW3
04/11/2022 Memory Defenses 1
04/13/2022 Memory Defenses 2
04/18/2022 Midterm Week
04/20/2022 Midterm 9:00 - 11:00
04/25/2022 Memory Leakage and CTF
04/27/2022 CFI
05/02/2022 Malware
05/04/2022 Anti Malware 1
05/09/2022 Anti Malware 2 HW4
05/11/2022 Binary Instrumentation and Anti Debugging
05/16/2022 Obfuscation
05/18/2022 Binary Analysis
05/23/2022 Side Channel
05/25/2022 Fuzzing [The Art, Science, and Engineering of Fuzzing: A Survey]
05/30/2022 Symbolic Execution
06/01/2022 Local Election
06/06/2022 Memorial Day
06/08/2022 Final Overview and Conclusion
06/13/2022 Final Week
06/15/2022 Final Exam 9:00 - 11:00