Software Protection

NUMMER: 211107
KÜRZEL: SP
MODULBEAUFTRAGTE:R: DR.-ING. TIM BLA­ZYT­KO
DOZENT:IN:
FAKULTÄT: Fakultät für Informatik
SPRACHE: Deutsch
SWS: 3
CREDITS: 5
ANGEBOTEN IM: jedes Sommersemester

LERNFORM

Die Veranstaltung wird als Vorlesung mit integrierten Übungen abgehalten. In den Übungen werden Studierende existierende Protection-Mechanismen analysieren sowie Eigene designen, implementieren und attackieren. Die Nähe zur Praxis vermittelt ein tiefgreifendes Verständnis der einzelnen Konzepte und Werkzeuge.

LERNZIELE

Die Studierenden kennen verschiedene Konzepte, Techniken und Tools aus dem Bereich Software Protection. Dies beinhaltet sowohl Wissen über das Design und die Implementierung von Obfuskierungstechniken als auch die Sicherheitsanalyse gängiger Systeme. Die Studierenden lernen erweiterte Techniken zur Programmanalyse, mit welchen sie komplexe Protection-Mechanismen angreifen können. Sie sind in der Lage, verschiede Aspekte der Software Protection zu beschreiben und auf neue Problemstellungen anzuwenden.

INHALT

Unter Software Protection versteht man Maßnahmen, welche die Analyse bzw. das Reverse Engineering von Software erschweren. Solche Methoden finden sowohl Anwendung in kommerzieller Software, um Piraterie zu verhindern, als auch in Malware, um deren Funktionsweise zu verschleiern.

In dieser Lehrveranstaltung lernen die Studierenden gängige Methoden der Software Protection kennen sowie Methoden, um diese zu brechen. Dazu designen und implementieren sie in praxisnahen Aufgaben erst ihre eigenen Protection-Mechanismen, welche sie im Anschluss brechen werden mit dem Ziel, diese wieder zu verbessern. Parallel dazu werden Schutzmechanismen aus der echten Welt analysiert, attackiert und diskutiert.

Dabei werden unter anderem die folgenden Themen und Techniken aus dem Bereich Software Protection behandelt:

- Opaque Predicates

- Control-flow Flattening

- Mixed Boolean-Arithmetic Expressions

- Virtual Machines

- Anti-Tamper

- Symbolische Ausfuehrung

- SMT Solving

- Programmsynthese

- Überblick zu existierenden Analysetools und Frameworks

VORAUSSETZUNGEN CREDITS

Bestandene Modulabschlussprüfung

EMPFOHLENE VORKENNTNISSE

im Bereich Reverse Engineering sind empfohlen, beipielsweise durch Erfahrung mit x86-Assembler. Erfahrung in systemnaher Programmierung (Assembler, C) ist hilfreich.