This website is no longer updated.

As of 1.10.2022, the Faculty of Physics has been merged into the TUM School of Natural Sciences with the website https://www.nat.tum.de/. For more information read Conversion of Websites.

de | en

Mater Praktikum - Software Integrity Protection (IN2106, IN4213)

Course 0000003207 in SS 2017

General Data

Course Type practical training
Semester Weekly Hours 6 SWS
Organisational Unit Informatics 4 - Chair of Software & Systems Engineering (Prof. Pretschner)
Lecturers Responsible/Coordination: Alexander Pretschner
Dates

Assignment to Modules

Further Information

Courses are together with exams the building blocks for modules. Please keep in mind that information on the contents, learning outcomes and, especially examination conditions are given on the module level only – see section "Assignment to Modules" above.

additional remarks Software systems are subject to Man-At-The-End attacks. MATE attackers have control over the system on which the software is running, and thus they can manipulate both the software itself and its runtime environment for their own benefits. Attackers motive includes but not limited to: illegal usage of a software by bypassing license checks, accessing proprietary data, cheating in games or extracting confidential information (e.g. encryption keys) in an application. In this lab course, students will learn about different protection measures, their cons and pros and finally implement a selected set of techniques. Module 0: Introduction and Motivation Software protection scenarios 
Attack tree
Man-at-the-End vs. network attacker Overview of the attacks Disassembly
, decompilation
, debuggers, symbolic / concolic execution
 Introspection, state inspection, layered and remote protection. Module 1: Protection Process & LLVM Check() and Response() paradigm 
Overview of protection process & code transformation 
Post-compile, pre-compile, compile-time, load time and runtime transformations Granularity of protection: function, basic block, instruction, slice, control flow LLVM compiler infrastructure & passes Module 2: Introspection self-checksumming Self-checking and self-checksumming Network of checkers and cyclic checks Stealth analysis Attacks: memory split and taint analysis Module 3: Introspection self-encrypting Key derivation and Block-chain Whitebox cryptography Process level virtualisation Stealth analysis 
Attacks: memory dump and key extraction Module 4: State inspection Trace authentication
 Environmental states
 Oblivious hashing
 Stealth analysis
 Attacks: time-of-check vs. time-of-use Module 5: Intel SGX Running software on untrusted commodity Runtime integrity
 Trusted and untrusted program domains Enclaves Local attestation Remote attestation Limitations
Links E-Learning course (e. g. Moodle)
TUMonline entry
Top of page