Wintersemester 22/23

Reverse-Engineering Software Systems

Reverse-Engineering Software Systems

Type of courseVorlesung mit integrierter Übung
LecturerProf. Dr.-Ing. Lucas Vincenzo Davi
ContactDavid Paaßen, M.Sc.
TermWinter Semester 2022/2023
TimeDo, 10:00-14:00 Uhr
RoomS-M 311
Start13th Oct 2022
End2nd Feb 2023
LanguageGerman/English
MoodleLecture in Moodle
LSFLecture in LSF
 Important NotesDie Vorlesung am 22. Dezember 2022 findet via Zoom statt.

In dieser Vorlesung mit integrierter Übung sollen die Studenten lernen Computerprogramme auf Binärebene (ohne vorhandenen Quellcode) zu analysieren und ggf. die Programmlogik zu ändern. Dabei werden im Vorlesungsteil die notwendigen theoretischen Inhalte vermittelt, welche anschließend im praktischen Teil der Übung angewendet werden sollen. Ein besonderer Fokus liegt dabei auf Intel x86 basierten Systemen auf denen die meisten klassischen Anwendungen lauffähig sind. Zusätzlich werden auch gängige Fehler in Programmen erläutert und analysiert wieso diese für Angriffe ausgenutzt und vermieden werden können. Ziel der Vorlesung ist es, dass die Studenten ein grundlegendes Verständnis über die Möglichkeiten im Bereich Reverse-Engineering haben und dort bewährte Tools einsetzen können.

  • Eldad Eilam: Reversing: Secrets of Reverse Engineering. Wiley, 2005
PG: Solananazz

PG: Solananazz

Type of courseProjektgruppe
LecturerProf. Dr.-Ing. Lucas Vincenzo Davi
ContactOussama Draissi, M.Sc.
TermWinter Semester 2022/2023
RoomS-GW 007
Start17th Oct 2022
End31st Mar 2023
LanguageGerman/English

Solana ist eine aufstrebende Kryptowährung und Blockchain Plattform, welche Smart Contracts unterstützt. Es werden aktuell viele Anwendungsfälle für die Solana Blockchain diskutiert, insbesondere Non-Fungible Tokens (NFTs) für Meta Platforms (ehemals Facebook) für Instagram, aber auch Gaming-DApps und Decentralized Exchanges (Stichwort DeFi). Da Contracts auf der Solana-Blockchain bereits oft Crytocurrency-Tokens mit einem Euro-Wert in Millionenhöhe verwalten, sind intensive Sicherheits- und Robustheitstests unabdingbar. Eine der effektivsten Methoden, um Bugs in Software zu finden ist Fuzzing. Diese Methode erlaubt das Generieren von zufälligen Eingaben, um das das Verhalten des Zielprogramms gezielt herauszufordern und zu überwachen.

In dieser Projektgruppe wollen wir den ersten Fuzzer für Solana Contracts entwickeln. Unser Ziel ist es nicht einen kompletten neuen Fuzzer zu entwickeln, sondern den Fuzzer von Google, nämlich AFL, für Smart Contracts in Solana anzupassen. Ein wesentlicher Bestandteil ist dabei die Mechanismen der Solana-Plattform (wie Accounts und Transaktionen) zu emulieren und geeignete Bug-Oracles für Smart Contracts zu implementieren.

Portfolioprüfung für PGs

Secure Software Systems (Sichere Software Systeme)

Secure Software Systems (Sichere Software Systeme)

Type of courseVorlesung
LecturerProf. Dr.-Ing. Lucas Vincenzo Davi
Contact

Tobias Cloosters, M.Sc.

Oussama Draissi, M.Sc.

TermWinter Semester 2022/2023
TimeDo, 12 - 14 Uhr
RoomS-E 108
Start13th Oct 2022
End2nd Feb 2023
LanguageGerman/English
MoodleLecture in Moodle
LSFLecture in LSF

In dieser Vorlesung erhalten die Studierenden einen Überblick über aktuelle Forschung, Angriffstechniken und Abwehrmethoden im Bereich der Software- und Systemsicherheit. Es werden Sicherheitsprobleme und Schutztechnologien auf Applikations- und Betriebssystemebene für unterschiedliche Rechnerarchitekturen (Desktop PCs, mobile und eingebettete Systeme) analysiert. Ein besonderer Fokus dieser Vorlesung ist die Verwundbarkeit von Softwaresystemen gegenüber Laufzeitangriffen (Exploits). Ziel der Vorlesung ist sowohl das Verständnis von modernen, praktischen Angriffstechniken gegen Softwaresysteme als auch die Entwicklung und Anwendung von Sicherheitstechnologien für Softwaresysteme. Die Vorlesung umfasst folgende Themenschwerpunkte:

  • Konventionelle und fortgeschrittene Software Exploittechniken (Buffer Overflow, Return-Oriented Programming)
  • Entwicklung von Sicherheitstechnologien zur Detektion und Prävention von Software Exploits (Programmfluss-Integrität, Speicherrandomisierung)
  • Software Fault Isolation und Application Sandboxing
  • Betriebssystemsicherheit und Zugriffsmodelle mit praktischen Beispielen anhand von Sicherheitsarchitekturen in Multics, Android und Windows
  • Trusted Computing Konzepte
  • Hardware-basierte Konzepte zur Unterstützung von Softwaresicherheit

Die Studierenden kennen die wichtigsten Klassen von Angriffstechniken und Abwehrmethoden im Bereich der Softwaresicherheit von der Applikationsebene bis zum Betriebssystem. Sie besitzen fundierte Kenntnisse in der Entwicklung von Angriffstechniken auf Softwaresystemen und sind in der Lage konkrete Verfahren zur Härtung von Softwaresystemen gegen fortgeschrittene Softwareangriffe anzuwenden. Sie kennen hardware-basierte Verfahren zur Durchsetzung von Softwaresicherheit und kennen die aktuelle Forschung und Problemstellungen bezüglich der Entwicklung von sicheren Softwaresystemen. Zusätzlich beherrschen sie die Konzepte von Softwarebasierten Angriffstechniken und Abwehrmethoden für verschiedenen Rechnerplattformen.

  • W. Stallings, L. Brown: Computer Security: Principles and Practice, Prentice Hall, 2014
  • M. Bishop: Computer Security: Art and Science, Pearson Education, 2015
  • T. Jaeger: Operating System Security, Morgan & Claypool, 2008
  • C. Anley, J. Heasman, F. Lindner, G. Richarte: The Shellcoder's Handbook: Discovering and Exploiting Security Holes, Wiley, 2007
  • L. Davi: Building Secure Defenses Against Code-Reuse Attacks, Springer, 2015
  • R. Anderson. Security Engineering: A Guide to Building Dependable Distributed Systems, Wiley, 2008
  • Aktuelle wissenschaftliche Publikationen von einschlägigen Sicherheitstagungen (werden in der Vorlesung bekannt gegeben)

mündlich

Übung: Secure Software Systems (Sichere Software Systeme)

Übung: Secure Software Systems (Sichere Software Systeme)

Type of courseÜbung
LecturerProf. Dr.-Ing. Lucas Vincenzo Davi
Contact

Tobias Cloosters, M.Sc.

Oussama Draissi, M.Sc.

TermWinter Semester 2022/2023
TimeDo, 14 - 16 Uhr
RoomS-E 108
Start13th Oct 2022
End2nd Feb 2023
LanguageGerman/English
LSFLecture in LSF

Theoretische und praktische Übungen zur Vorlesung Secure Software Systems.

Bachelorprojekt Sichere Software Systeme

Bachelorprojekt Sichere Software Systeme

Type of courseBachelorprojekt
LecturerProf. Dr.-Ing. Lucas Vincenzo Davi
ContactProf. Dr.-Ing. Lucas Vincenzo Davi
TermWinter Semester 2022/2023
Timenach Absprache
Roomnach Absprache
LanguageGerman/English
LSFLecture in LSF

Das Bachelorprojekt Sichere Software Systeme konzentriert sich auf aktuelle Forschungsthemen im Bereich der anwendungsorientierten IT-Sicherheit. Die Themengebiete für dieses Semester sind nachfolgend angegeben:

  • Schwachstellenanalyse: Fuzzing und Symbolic Execution
  • Blockchain und Smart Contract Security
  • WebAssembly Security
  • Memory Corruption
  • Embedded System Security
  • Rust Security

Bitte beachten Sie, dass die oben genannten Themengebiete sich mit Systemnahen Software und Hardware Aspekten beschäftigen (Betriebssystem-Code, Low-Level Code wie C-Code, Ethereum Bytecode und x86 oder ARM Assembler Instruktionen). Wir empfehlen Ihnen das Bachelorprojekt Sichere Software Systeme nur zu wählen, wenn Sie bereit sind sich mit Systemnahen Programmiertechniken auseinanderzusetzen, d.h. im Umfang des Bachelorprojektes diese zu erlernen und anzuwenden.

Zur Abstimmung des genauen Themas bitten wir Sie eine E-Mail unter Nennung des Themengebiets an Prof. Davi zu schreiben. Bitte beachten Sie, dass nur eine begrenzte Anzahl an Projektarbeiten jedes Semester angeboten werden kann.

Unsere Themen richten sich an aktuellen Forschungsthemen der IT-Sicherheit (insbesondere Systemsicherheit). Die besten IT-Sicherheitstagungen (A*-Konferenzen) sind nachfolgend aufgeführt. Über das Uni-Netzwerk können Sie für alle der genannten Konferenzen die wissenschaftliche Artikel (die sogenannten Papers) kostenlos herunterladen und sich die Vortragsvideos anschauen.

Seminar Secure Software Systems

Seminar Secure Software Systems

Type of courseSeminar
LecturerProf. Dr.-Ing. Lucas Vincenzo Davi
ContactProf. Dr.-Ing. Lucas Vincenzo Davi
TermWinter Semester 2022/2023
Timenach Absprache
Roomnach Absprache
LanguageGerman/English
LSFLecture in LSF

Die Seminararbeit im Bereich Sichere Software Systeme konzentriert sich auf aktuelle Forschungsthemen im Bereich der anwendungsorientierten IT-Sicherheit. Für dieses Semester sind folgende Themengebiete möglich:

  • Dynamische Schwachstellenanalyse mittels der sogenannten Fuzzing Technik
  • Sichere Smart Contract Programmierung in Ethereum
  • WebAssembly Security
  • Control-Flow Integrity für Funktionsaufrufe
  • Embedded Security

Bei Interesse an einem der Themengebiete, bitten wir Sie eine erste selbständige Recherche durchzuführen, damit Sie einen groben Einblick in das Themengebiet bekommen. Dies ist insofern wichtig, da die oben genannten Themen sich mit Systemnahen Software und Hardware Aspekten beschäftigen (Betriebssystem-Code, Low-Level Code wie C-Code, Ethereum Bytecode und x86 oder ARM Assembler Instruktionen). Wir empfehlen Ihnen das Seminar Sichere Software Systeme nur zu belegen, wenn Sie bereit sind sich mit Systemnahen Programmiertechniken auseinanderzusetzen. 

Zur Abstimmung des genauen Themas bitten wir Sie eine E-Mail unter Nennung des Themengebiets an Prof. Davi zu schreiben. Bitte beachten Sie, dass nur eine begrenzte Anzahl an Themen jedes Semester angeboten werden kann.

Die Studierenden lernen Methoden des wissenschaftlichen Arbeitens und sind in der Lage eigenständig ein Themengebiet auf Basis von wissenschaftlichen Veröffentlichungen zu erarbeiten. Durch die Seminararbeit lernen die Studierenden ein wissenschaftliches Thema zusammenzufassen sowie wissenschaftliche Publikationen zu systematisieren und bewerten. Die Studierenden üben die Präsentation über ein wissenschaftliches Themengebiet in Form der Abschlusspräsentation.

Unsere Themen richten sich an aktuellen Forschungsthemen der IT-Sicherheit (insbesondere Systemsicherheit). Die besten IT-Sicherheitstagungen (A*-Konferenzen) sind nachfolgend aufgeführt. Über das Uni-Netzwerk können Sie für alle der genannten Konferenzen die wissenschaftliche Artikel (die sogenannten Papers) kostenlos herunterladen und sich die Vortragsvideos anschauen.