The student will acquire:
- A good understanding of how formal verification techniques can be used to detect security vulnerabilities in software
- Practical experience with applying formal specification techniques to realistic software to detect security vulnerabilities.
Motivation: Many security problems in software systems can be detected by using formal verification techniques in an adequate way. In this course, the students experience this in a hands-on setting: in the form of an individual project, they use a suitable formal verification technique to analyse the security of a software system.|
Synopsis: This course is done in the form of an individual project. In the prerequisite courses, the students have obtained knowledge about possible security threats for software systems, and how formal techniques can be used to specify and verify the behaviour of a software system. In this course, they combine this knowledge in a concrete case study.
The student agrees with the supervisor on a suitable software system to be analysed. Possible security threats are identified, and the student then studies the literature on how formal verification techniques have been used to detect the identified security threats. Based on this literature study, a suitable verification approach is identified.
The student then uses the formal verification technique to identify whether the system indeed suffers from security issues. If appropriate, a fix is proposed, and the student uses the formal verification technique to show that the security issue has been properly addressed.
The student and supervisor together decide how the student will report on the work done. Typically, this will be done in the form of a report, and a presentation to the FMT group.