Institute of Computer Science
  1. Courses
  2. 2024/25 spring
  3. Software Security (LTAT.03.024)
ET
Log in

Software Security 2024/25 spring

Course information

  • Home
  • Schedule
  • Exam

Related courses

  • Michael Hicks (Maryland)
  • Mathias Payer (EPFL)

Important links

  • AWS: Cedar
  • Meta: Infer

Infrastructure

  • Zulip
  • Moodle
  • GitHub

Software Security

This course is an introduction to quality-based security. We aim to learn methods for software understanding: the rigorous practice of constructing and assessing software-controlled systems to verify their functionality, safety, and security.

We will mainly explore machine reasoning techniques, from computational logic to abstract interpretation, that go beyond simple testing and provide strong guarantees about the security of software systems. We will consider threat-modelling and conventional topics briefly, but the idea is to focus on a couple of interesting industrial case studies that apply formal approaches.

  1. AWS: Cedar. We will consider the problem of access control, including the theory, and why these authorization solutions, like Google's Zanzibar or Amazon's Verified Permissions, are needed. We will then look at how Amazon's policy engine Cedar works and how it was implemented, using Dafny (then Lean) and coverage-guided fuzzing.
  2. Meta: Infer. Code-level vulnerabilities are still a thing. We will look at how one can verify the absence of vulnerabilities using automated software verification. We will study some of the underlying theory, including abstract interpretation and separation logic, so that we can understand how to use these tools properly.
  3. Low-Level Type Systems. By the end of the course, Chad Nester will show type-theoretic approaches to ensuring memory safety. He will focus on explaining the core ideas rather than immediately jumping to something complicated like Rust's borrow checker, but at least you will understand things! ;)
  4. Also, please propose your own case study!! Either as an individual or group project that replaces the exam, or suggest something we should do.

Grading and Requirements

There will be weekly moodle tests; and hands-on exercises that we discuss in the labs. The questions in the quiz and the exam will be based on the theory and conclusions; doing the practical work is optional. The exam can be replaced or supplemented by a project.

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment