|
Software Reverse Engineering V+Ü (RE)5 ECTS (englische Bezeichnung: Software Reverse Engineering)
Modulverantwortliche/r: Tilo Müller Lehrende:
Tilo Müller
Start semester: |
SS 2016 | Duration: |
1 semester | Cycle: |
halbjährlich (WS+SS) |
Präsenzzeit: |
50 Std. | Eigenstudium: |
100 Std. | Language: |
Deutsch |
Lectures:
-
-
Software Reverse Engineering
(Vorlesung, 2 SWS, Tilo Müller, Tue, 14:15 - 15:45, 00.151-113)
-
Software Reverse Engineering - Übung
(Übung, 2 SWS, Tilo Müller et al., Tue, 16:15 - 17:45, 0.68; starting 19.4.2016)
Inhalt:
Ein regelmäßiger Untersuchungsgegenstand der angewandten IT-Sicherheit ist unbekannte Software, deren Funktionsweise analysiert werden soll bspw. um Schwachstellen aufzudecken oder um das Verhalten von Malware zu analysieren. Während "Reverse Engineering" im allgemeinen den Vorgang bezeichnet Konstruktionselemente und Strukturen aus einem bestehenden System zurückzugewinnen, bezeichnet "Software Reverse Engineering" speziell die Rückgewinnung von Software-Anforderungen und Intentionen aus Binärcode. Im Gegensatz zu "Software Engineering", bei dem es um die Übersetzung von Anforderungen in Code geht, muss hier also der umgekehrte Weg gegangen werden. Die Rückgewinnung von Informationen kann die Erstellung von äquivalenten Quell- oder Pseudocode beinhalten, hat darüberhinaus aber stets den Anspruch ein Programm auf höherer Ebene "zu verstehen".
Im Rahmen der Vorlesung werden grundlegende Konzepte sowie fortgeschrittene Techniken und Tools aus dem Bereich Software Reverse Engineering vorgestellt. Ziel der Veranstaltung ist ein Verständnis von statischen und dynamischen Methoden zur Analyse von Binärprogrammen, indem typische Werkzeuge wie Disassembler (bspw. IDA Pro) und Debugger (bspw. OllyDbg) zum Einsatz kommen. Es wird auch verdeutlicht, mit welchen Schwierigkeiten Software Reverse Engineering zu kämpfen hat und wo seine Grenzen liegen, bspw. im Bereich automatisierter Decompiler. Ebenso werden Techniken angesprochen um sich gegen Software Reverse Engineering zu schützen, bspw. Code-Verschleierung (Obfuscation) gegen statische Analyse und Anti-Debugging Techniken gegen dynamische Analyse. Außerdem wird vorgestellt wie sich Schwachstellen in Binärprogrammen aufspüren lassen und wie sich diese trotz aktueller Schutzmechanismen (ASLR und DEP) ausnutzen lassen.
Lernziele und Kompetenzen:
Die Vorlesung vermittelt Kompetenzen im Bereich "Software Reverse Engineering", insbesondere zur Analyse von Schadsoftware und um Schwachstellen in Binärprogrammen aufzudecken. Das Lernziel dieser Veranstaltung ist, dass die Teilnehmer ausführbare Programme unter Windows und Linux mit entsprechenden Werkzeugen analysieren können.
Literatur:
- "Reversing: Secrets of Reverse Engineering" von Eldad Eilam, Wiley Publishing Inc., Indianapolis, 2005
"The IDA Pro Book: An Unofficial Guide to the World's Most Popular Disassembler" von Chris Eagle, No Starch Press, San Francisco, 2011
"Microsoft Windows Internals: Fifth Edition" von Mark E. Russinovich und David Solomon, Microsoft Press, Washington, 2009
"Surreptitious Software: Obfuscation, Watermarking, and Tamperproofing for Software Protection" von Christian Collberg und Jasvir Nagra, Addison-Wesley Professional, 2009
"Buffer Overflows und Format-String-Schwachstellen: Funktionsweisen, Exploits und Gegenmaßnahmen" von Tobias Klein, Dpunkt Verlag, 2003
Verwendbarkeit des Moduls / Einpassung in den Musterstudienplan: Das Modul ist im Kontext der folgenden Studienfächer/Vertiefungsrichtungen verwendbar:
- Informatik (Bachelor of Arts (2 Fächer))
(Po-Vers. 2010 | TechFak | Informatik (Bachelor of Arts (2 Fächer)) | Vertiefung Informatik I und II | Vertiefungsmodul IT-Sicherheit)
- Informatik (Bachelor of Arts (2 Fächer))
(Po-Vers. 2013 | TechFak | Informatik (Bachelor of Arts (2 Fächer)) | Vertiefung Informatik I und II | Vertiefungsmodul IT-Sicherheit)
- Informatik (Bachelor of Science)
(Po-Vers. 2009s | TechFak | Informatik (Bachelor of Science) | Wahlpflichtbereich (5. und 6. Semester) | Wahlpflichtmodule | Vertiefungsmodul IT-Sicherheit)
- Informatik (Bachelor of Science)
(Po-Vers. 2009w | TechFak | Informatik (Bachelor of Science) | Wahlpflichtbereich (5. und 6. Semester) | Wahlpflichtmodule | Vertiefungsmodul IT-Sicherheit)
- Informatik (Master of Science)
(Po-Vers. 2010 | TechFak | Informatik (Master of Science) | Wahlpflichtbereich | Säule der systemorientierten Vertiefungsrichtungen | Vertiefungsmodul IT-Sicherheit)
- Informations- und Kommunikationstechnik (Master of Science)
(Po-Vers. 2010 | TechFak | Informations- und Kommunikationstechnik (Master of Science) | Schwerpunkte im Masterstudium | Schwerpunkt Kommunikationsnetze | Wahlpflichtmodule | Wahlpflichtmodul aus INF im Schwerpunkt Kommunikationsnetze)
- Informations- und Kommunikationstechnik (Master of Science)
(Po-Vers. 2010 | TechFak | Informations- und Kommunikationstechnik (Master of Science) | Schwerpunkte im Masterstudium | Schwerpunkt Realisierung von Informations- und Kommunikationssystemen | Wahlpflichtmodule | Wahlpflichtmodul aus INF im Schwerpunkt Realisierung von Informations- und Kommunikationssystemen)
- Mathematik (Bachelor of Science)
(Po-Vers. 2015w | NatFak | Mathematik (Bachelor of Science) | Module des Nebenfachs | Nebenfach Informatik | Vertiefungsmodule | Vertiefungsmodul IT-Sicherheit)
Studien-/Prüfungsleistungen:
Software Reverse Engineering V+Ü (Prüfungsnummer: 890193)
- Prüfungsleistung, mehrteilige Prüfung, benotet, 5 ECTS
- Anteil an der Berechnung der Modulnote: 100.0 %
- weitere Erläuterungen:
schriftliche Prüfung (Klausur) + erfolgreiche Teilnahme an den Übungen (verpflichtetend) + erfolgreiche Bearbeitung aller Übungsaufgaben (verpflichtetend)
- Erstablegung: SS 2016, 1. Wdh.: WS 2016/2017, 2. Wdh.: SS 2017
|
|
|