Software verfügt aufgrund ihrer Komplexität häufig unbekannte bzw. unerwünschte Zusatzfunktionalität, die durch geschickte Eingaben provoziert werden kann. Die Ursachen solcher Funktionalität werden als (Software-)Schwachstellen bezeichnet. Beschreibungen von Eingaben, die diese Funktionalität auslösen, nennt man Exploits. Software Exploitation umfasst demnach die Suche nach Schwachstellen in Software und die Erstellung von Exploits für diese Schwachstellen.
Diese Lehrveranstaltung gibt einen Überblick über verbreitete Klassen von Schwachstellen in Software und wie man sie ausnutzen kann. Der Einsatz der vermittelten Kenntnisse und Kompetenzen im Kontext von Ethik und Recht wird ebenfalls angesprochen. Begleitet wird die Vorlesung von Übungen, in denen die vorgestellten Konzepte von den Studierenden praktisch umgesetzt und vertieft werden. Dazu werden Übungsaufgaben gestellt, die nach einer Bearbeitungszeit von jeweils einer Woche gemeinsam mit den Übungsgruppenleitern besprochen werden.
Die Lernziele der Veranstaltung sind:
- typische Schwachstellen in Quell- und Binärcode erkennen
- Exploits für konkrete Schwachstellen erstellen
- Eigenes Vorgehen rechtlich und ethisch bewerten