Arvutiteaduse instituut
  1. Kursused
  2. 2024/25 kevad
  3. Tarkvara turvalisus (LTAT.03.024)
EN
Logi sisse

Tarkvara turvalisus 2024/25 kevad

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.

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused