Program Overview
Program Overview
The Proactive Computer Security (PCS) course is designed to provide students with a deep understanding of IT security from a technical perspective, focusing on the viewpoint of the attacker and defensive techniques.
Course Content
The course syllabus covers topics such as:
- Fuzzing, stack and heap buffer overflows, shellcode, reverse engineering
- Details of the interaction between user programs and the operating system
- Tools used for IT security, especially reverse engineering
- Vulnerabilities and how to correct them and/or mitigate attacks against them
Learning Outcomes
After completing the course, students will have:
- Knowledge of:
- Fuzzing, stack and heap buffer overflows, shellcode, reverse engineering
- Details of the interaction between user programs and the operating system
- Tools used for IT security, especially reverse engineering
- Vulnerabilities and how to correct them and/or mitigate attacks against them
- Skills to:
- Analyse simple applications from a security perspective, locate vulnerabilities, and demonstrate how to rectify them
- Describe and apply exploitation techniques such as return-oriented programming and stack and heap buffer overflows, as well as counter mechanisms
- Do basic reverse engineering of binary programs and locate vulnerabilities
- Understand the link between vulnerabilities in binary programs and the insecure source code that produce them
- Recognise insecure source code and suggest corrections
- Use and develop shellcode
- Determine a vulnerability by reviewing an exploit of it, and suggest corrections
- Competences to:
- Find and evaluate security issues using fuzzing, reverse engineering, and source code auditing
Teaching and Learning Methods
The course will employ lectures, exercise labs, student presentations, and practical individual mandatory assignments.
Literature
Literature for the course will be available on Absalon when the course is set up.
Recommended Prerequisites
Students are expected to be proficient in both high-level and low-level programming and have a working knowledge of Linux via a command prompt. Academic qualifications equivalent to a BSc degree are recommended.
Exam
The exam will consist of continuous assessment based on student presentation and 6-8 written, individual assignments. Each assignment will have equal weight towards the final grade, with the exception of the final assignment which will count as double.
Course Type and Workload
The course is a single subject course with a workload of:
- Lectures: 14 hours
- Practical exercises: 14 hours
- Project work: 164 hours
- Seminar: 14 hours
- Total: 206 hours
Language and ECTS
The course will be taught in English and is worth 7.5 ECTS.
Programme Level and Duration
The course is at the full degree master level and will run for 1 block.
Placement and Schedule
The course will be placed in block 4, schedule group A, with a capacity of 60 students.
Study Board and Contracting Department
The study board for the course is the Study Board of Mathematics and Computer Science, and the contracting department is the Department of Computer Science.
Course Coordinator
The course coordinator is Philippe Bonnet.
