Sie befinden sich hier: Termine » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 1 » Allgemeines   (Übersicht)

Inhaltsverzeichnis

Allgemeines

Fach: Angewandte IT-Sicherheit

Prüfer: Prof. Dr. Freiling

Beisitzer: Michael Spreizenbarth

Stift und Papier liegen bereit und sollen für Erklärungen verwendet werden. Hinweis, dass man auch einfach „das weiß ich nicht“ sagen darf, und nicht minutenlang drum rum reden soll, weil die Prüfung ja auch nur 20 Minuten dauert.

Fragen

Mit was wollen sie anfangen?

Softwaresicherheit

Gab ja viele Schwachstellen, was ist denn ihre liebste bzw. welche hat sie vllt. überrascht?

Stack Overflow, dann erklärt, wie es bei Funktionsaufrufen auf dem Stack aussieht, return-Adresse und lokale Variablen, evtl. ein Buffer, den man beschreiben kann → Buffer läuft in Richtung der return-Adresse → überschreiben → Sprung in entweder eigenen Code oder Code, der schon auf der Maschine ist.

Wenn die Architektur anders wäre, z.B. lokale Variablen und Parameter vertauscht, wäre es dann besser?

Nein, man könnte immer noch Dinge in den Stackframes anderer Funktionen überschreiben, oder z.B. Zugriffe über Index-Variablen manipulieren → machts nicht besser.

Angreifer schreiben teilweise nicht nur eine Adresse, sondern mehrere übereinander in den Stackframe, was hat's damit auf sich?

Nennt sich Return-oriented programming, hier werden Befehlssequenzen angesprungen, die benötigte Funktionalität bieten, gefolgt von einem ret. Dieses ret führt dann zur Ausführung der nächsten abgelegten Adresse etc.

Ist ROP Turing-vollständig?

So lange die Funktionalitäten in den Libraries/im Code vorhanden sind schon; aus der Praxis bekannt, dass eigtl. fast alle Instruktionen da.

Man braucht ja auch Jumps…

Das geht über angesprungene Befehle, mit denen man den Stackpointer verändern kann, also z.B. ein Ablegen der Zieladresse auf dem Stack, gefolgt von einem angesprungenen pop %esp; ret;

Etwas kompliziertere Frage, kann man denn auch Subroutinen nachbilden?

Hier bin ich etwas gehangen, Prof. Freiling hat dann erklärt, dass man ja irgendein Register nehmen kann, dort eine Adresse angeben, und dann diese Adresse als Pseudo-Stack zum Speichern von Rücksprungadressen nutzen kann, und das Register zum Zugriff auf diesen Speicher. Später meinte er aber auch, dass diese Frage über den eigentlichen Prüfungsumfang rausging.

Wieso hilft ASLR gegen ROP?

Weil Bibliotheken auf verschiedenen Rechnern und bei mehreren Starts des selben Programms an unterschiedlichen Adressen im Speicher liegen, man also keine festen Adressen hat, die man anspringen kann.

Das war jetzt viel Software-Sicherheit, was bedeutet denn im Kontext der Interessen, die man in Bezug auf Sicherheit haben kann, CIA?

Confidentiality, Integrity, Availability mit Erklärung, was das jeweils bedeutet.

Gibt ja noch Unterpunkte, z.B. Authentizität, was hat es damit auf sich?

Erkennen, ob Absender richtig ist; noch bissl über CAs geredet und Authentifikation im Allgemeinen, wie das im Cyberspace so geht.

Wenn es eine vertrauenswürdige dritte Partei gibt, die mir sagen kann, dass eine Nachricht authentisch ist, kann es dann sein, dass es Authentizität ohne Integrität gibt?

Ja, wenn man z.B. nur den Inhalt einer Nachricht hasht, und die Nachricht dann verändert wurde, ist keine Integrität gegeben, aber die Authentizität „von außen“ bestätigt.

Zum Abschluss noch was anderes: Was sind denn Seitenkanäle?

Nicht beachtete Nebenwirkungen z.B. einer Berechnung, als Beispiel die Lucky-Thirteen-Attacke genannt, wo aus dem Timingverhalten des Servers Informationen über die an den Server gesendete Nachricht gewonnen werden koennen. Im Allgemeinen beobachtbare Auswirkungen, die eigentlich nichts mit der konkreten Berechnung zu tun haben, aber dennoch Rückschlüsse zulassen, eben z.B. Antwortzeit, Stromverbrauch, unterschiedliches Verhalten bei verschiedenen Fehlern etc.

Vorbereitung

Habe mir eine Zusammenfassung aus Übungs- und Vorlesungsfolien geschrieben, bei unklaren Punkten aus den Folien noch in die Vorlesungsvideos reingeschaut.

Man sollte auch Zusammenhänge verstanden haben, und evtl. selbst dann ein, zwei Worte fallen lassen, auch wenn nicht direkt nach etwas gefragt wurde; z.B. Naturgesetz der Kopierbarkeit immer ein Problem bei Authentifikation im Cyberspace.