Course Overview
This course focuses on software security fundamentals, secure coding guidelines and principles, and advanced software security concepts. Students will learn to assess and understand threats, learn how to design and implement secure software systems, and get hands-on experience with common security pitfalls.
The course consists of two lectures per week (50 minutes each) and a 2-hour lab.
- Instructor : Byoungyoung Lee (email: byoungyoung@purdue.edu)
- TA : Chen Feng (email: fang102@purdue.edu)
- Lecture: 2:30 pm - 3:20 pm (Mon & Wed) at Felix Haas Hall G066.
- Lab: 2:30pm - 4:20pm (Fri) at Felix Haas Hall G056 (by annoucements)
- Office hour: 3:30 pm - 4:30 pm (Mon & Wed) at LWSN 1187
Schedule
- This schedule is subject to change, and changes will be announced in class or emailed if necessary.
Lab
- Programming assignment #1 - Weakening Strong Constraints for AFL
- Lab assignment setup guide
- Lab assignment #1 - Exploiting Simple Stack Overflow
- Lab assignment #2 - Exploiting Heap Overflow
- Lab assignment #3 - Return oriented programming
- Programming assignment #2 - Simple Integer Overflow Checker using LLVM
Grading
- Midterm exam: 20%
- Final exam: 20%
- Lab assignments: 30%
- Research projects: 30%
For academic honesty refer to the Purdue integrity/code of conduct; Except as by prior arrangement or notification by the professor of an extension before the deadline, missing or late work will be counted as a zero/fail.
Course Policy
This course will be run under the "reasonable adults" policy wherein it is assumed that all students are reasonable adults that want to benefit the most of the course by attending the course regularly, completing the homework assignments and projects on time, asking questions during the course and if they run into problems, and checking back with the instructor and the TA regularly to ensure good progress.
A more detailed version of the policy is available on Spaf's page. CS-527 follows the policies listed on that page. If you have any question about the course policy, don't hesitate to ask the instructor or the TA.
As a short summary: (i) you are expected to attend all classes (modulo good reasons), (ii) you are supposed to hand in all work before the deadlines (there's a 10% point reduction per day for late hand-ins), (iii) if you need special treatment or have special circumstances, talk to the instructor or TA.
Acknowledgment
-
Lecture slides are built with the help of Prof. Mathias Payer's class.
-
Lab assignments are built based on Prof. Taesoo Kim's class.