Chair of Programming Languages and AI
print


Breadcrumb Navigation


Content

Program Analysis for Security (Mastervorlesung)

Overview

The lecture Program Analysis for Security covers topics on the theory and application of formal analysis techniques to low-level programs, as they are common in many security applications, from malware detection, forensic analysis, to vulnerability discovery and exploitation. The lecture curriculum consists of parts: binary analysis, static analysis, and dynamic analysis.

Teaching Staff

  • Prof. Dr. Johannes Kinder
  • Moritz Dannehl
  • Matías Gobbi
  • Oliver Braunsdorf

Prerequisites and Format

The course consists of three hours of lecture and two hours of exercises every week, both will be held in English. There are no formal prerequisites for the course, although prior knowledge of core operating systems concepts and foundational discrete mathematics, esp. lattices (Verband in German) will be helpful.

Time and Location

Lecture: Friday, 13:00–16:00, Richard-Wagner-Str. 10 / D 105 (from 18 October 2024)

Exercises: Monday, 14:00–16:00, Geschw.-Scholl-Pl. 1 (M) Raum M 101 (from 21 October 2024)

Exam

There will be a final exam, with the date announced in due course.

Topics

Analyzing Binaries

  • Executable Files
  • x86-64 Assembly
  • Disassembly
  • Decompilation
  • Debugging

Static Analysis

  • Lattices and fixpoints, classic dataflow analysis
  • Interval analysis
  • Interprocedural analysis
  • Binary control flow
  • Pointer analysis

Dynamic Analysis

  • Fuzzing
  • Testing for memory safety
  • Dynamic binary instrumentation
  • Dynamic taint analysis
  • Symbolic Execution