Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 1 » Allgemein   (Übersicht)

Inhaltsverzeichnis

Allgemein

Entspannte Atmosphäre. Zettel, Stift und Wasser stehen bereit. Prof. Freiling fragt kurz, welchen Studiengang man belegt und ob man bei der letzten Vorlesung zur Prüfungssimulation anwesend war (war ich nicht). Daraufhin hat er kurz erklärt, dass man gerne nachfragen darf, wenn die Frage unklar ist und man klar ausdrücken soll, dass man die Frage nicht beantworten kann, anstatt sich zu winden und irgendwie auf eine Lösung zu kommen.

Fragen

Frage: Das erste Themengebiet dürfen Sie sich aussuchen. Was hätten Sie gerne?

Software Sicherheit.

Frage: Eine bestimmte Lücke?

Hier habe ich mich für Stackoverflow entschieden.

Frage: Dann erklären Sie mir das mal, ich bin der Student und Sie der Dozent.

Habe den Stack bei einem Programmaufruf hingemalt (Parameter, Rücksprungadresse, alter ebp, lokale Variablen) und dann erklärt, dass man als Angreifer versucht, eine lokale Variable zu overflowen, um die Rücksprungadresse zu überschreiben. Zieladresse ist meistens direkt im overflowten Bereich zu finden und es kann noch ein NOP Slide hinzugefügt werden, damit man die Adresse nicht genau kennen muss.

Frage: Wäre es sicherer, wenn die lokalen Parameter über der Rücksprungadresse angelegt würden?

Nein, da man dann die Rücksprungadresse des vorherigen Stackpointers überschreiben könnte.

Frage: Man kann den Stack als nicht ausführbar markieren, was machen Sie jetzt?

Return Oriented Programming angesprochen, wie das im Prinzip funktioniert und dass man den ROP Stack von einem Compiler aus einem C Quelltext erzeugen lassen kann, man das also nicht selbst machen muss.

Frage: Nun eine etwas kompliziertere Frage. (Hier holte Prof. Freiling ein von ihm vorbereitetes Blatt mit einem ROP Stack hervor). Kann man denn bei ROP auch Subroutinen nachbilden?

Konnte ich erst nicht gut beantworten und wollte es per JMP lösen, damit hätte man aber nur ein GOTO und keinen Rücksprung an die aktuelle Programmstelle. Habe dann gesagt, dass man den Stack ja nicht als Zwischenspeicher benutzen kann, da man den für das ROP benötigt. Stattdessen muss man das irgendwie über Register lösen.

Prof: Die Lösung ist, dass man sich einen Stack per Register und Heap nachbaut.

Hier entstand eine kurze Pause, die ich dafür genutzt habe, kurz Address Space Layout Resolution zu erklären und wieso mir das gegen ROP helfen kann.

Frage: Themenwechsel. Bei ASLR haben wir ja einen Angriff basierend auf dem Zeitverhalten kennengelernt. Das war ein Seitenkanal. Was ist ein Seitenkanal?

Die Möglichkeit, Informationen über den Zustand oder das Verhalten des Programms zu erfahren, und das nicht basierend auf Ein- und Ausgaben, sondern durch andere Mittel, wie z.B. Timing, Laufzeit, Fehlermeldungen. Habe kurz Beispiele zu Timing (Threadsynchronisierung), Laufzeit (Cacheverhalten), und Fehlermeldungen (unterschiedliche Meldung bei Benutzername unbekannt und falschem Passwort bei Anfrage an Datenbank) gegeben.

Frage: Gibt es auch einen Seitenkanal außerhalb der IT Sicherheit?

Wenn jemand das Gespräch von außerhalb des Zimmers belauscht, handelt es sich auch um einen Seitenkanal.

Frage: Wie kann man Seitenkanäle denn verhindern?

Man muss unterscheidbare Aktionen ununterscheidbar machen. Also bei Verzweigungen darauf achten, dass beide Zweige gleich lang zur Bearbeitung brauchen (durch Dummy Operationen), Zugriffe auf Ressourcen normalisieren (um Cacheeffekte auszunehmen) und den Traffic normalisieren.

Frage: Nun noch zu einem anderen Thema. Etwas zur Anonymität. Haben Sie schon einmal Tor benutzt?

Nein.

Frage: Wie funktioniert Tor denn?

Hier habe ich erst erklärt, dass die DirAuths die Liste der Tor Nodes stündlich erneuern und sich darauf einigen (Consensus) und die Liste dann signieren. Ein Client erfragt dann diese Liste bei einer der DirAuths und prüft die Authentizität mit dem Public Key der DirAuth, die im Tor Sourcecode hinterlegt ist.

Danach sucht der Client sich einen Circuit aus mindestens 3 Nodes und baut eine Verbindung zu R1 auf, macht einen DH key exchange um einen sym. Schlüssel auszutauschen, da diese performanter sind als asym. Danach noch einen DH key exchange mit R2 und R3. Sendet Alice dann eine Nachricht an R3, dann verschlüsselt diese mit Key3, Key2 und Key1 und jedes Relay nimmt eine Verschlüsselungsschicht runter (Onion Routing). Die Verbindung außerhalb des Tor Netzes (von R3 zu Bob) ist jedoch unverschlüsselt, wenn keine Ende-zu-Ende Krypto eingesetzt wird.

Habe dann noch erwähnt, dass Tor den 1. Knoten der Route fast nie wechselt, da ein Angreifer sonst eine höhere Chance hätte, dass er der 1. Knoten wird und die Kommunikation zuordnen kann (siehe Wikipedia).

Frage: Bob kann jetzt ja Browserfingerprinting machen. Wissen Sie, wie sich Tor dagegen schützt?

Tor selbst schützt sich da gar nicht dagegen, Bob kann Alice also über Fingerprinting trotzdem noch identifizieren und das sogar sehr gut, da die meisten Browserfingerprints eindeutig sind.

Frage: (Hier half mir Prof. Freiling in die richtige Richtung) Wie benutzt man denn Tor?

Zum Beispiel mit dem Torbrowser.

Frage: Und wie kann der Torbrowser Fingerprinting verhindern?

Ich vermute, dass er versucht, die Fingerprints aller Benutzer gleich zu machen, sodass diese nicht mehr identifizierbar sind.

Frage: Ist Tor denn illegal?

Die bloße Verwendung nicht, wenn ich damit jedoch bspw. Computersabotage nach §303b begehe, mache ich mich natürlich schon strafbar.

Frage: Welche IT sicherheitsrelevanten Paragraphen gibt es denn?

Diese sind nach den Schutzzielen der IT Sicherheit gegliedert – Vertraulichkeit, Integrität und Verfügbarkeit. Unter Vertraulichkeit gibt es das Ausspähen von Daten in §202a und das Abfangen von Daten in §202b, auch der bloße Versuch dazu ist nach §202c strafbar.

Frage: Was gibt es denn für Paragraphen, die die Integrität betreffen?

§303a betrifft das Verändern oder Löschen von Daten, §303b die Sabotage von IT Systemen, die für einen anderen essenziell sind. Wenn ich z.B. den Laptop eines Programmierers sabotieren, mit dem er seine Arbeit verrichtet, ist das Computersabotage.

Frage: Wenn ich nun auf Ihrem Laptop, den Sie für das Studium verwenden, Malware installiere, ist das dann Computersabotage oder Datenveränderung?

Das kommt darauf an, ob der Laptop für mich von essenzieller Bedeutung ist, und darauf, wie ein Richter das auslegt. Ich würde vermuten, ja.

Frage: Und wenn ich nur einen SPAM Bot installiere, der Sie nicht stört? Ist das dann nur Datenveränderung?

Das kommt wieder auf den Richter an, denke ich. Im Prinzip kann es ja auch sein, dass ich mich nun selbst strafbar mache, da von meinem Rechner aus SPAM verschickt wird und es mir vermutlich vor Gericht nichts bringt, wenn ich behaupte, ich wurde von Malware infiziert.

Frage: Nun ist die Zeit auch schon rum.

Bewertung

Ergebnis: 1,0.

Prof. Freiling merkte an, dass ich auf alles präzise geantwortet habe und nur beim Nachimplementieren des Stacks gehangen habe und ihm dann auch klar gesagt habe, dass ich nicht auf die genaue Lösung komme, und das fand er auch gut. Generell hat ihm gefallen, dass ich überzeugt von meinen Antworten war und man mir abkaufen konnte, dass ich mich mit den Themen auskenne (seid also selbstbewusst, auch wenn ihr vielleicht nicht 100% sicher seid).

Haben noch kurz über das Stacknachimplementieren gesprochen und Prof. Freiling sagte, dass das der Compiler, der den ROP Stack erzeugt, ja auch schon macht, da das für C benötigt wird. Dann hat er noch gesagt, ich solle doch mal Tor verwenden und dass er sich selbst manchmal wundert, wieso er denn nicht nur den Torbrowser verwendet.

Vorbereitung

Während des Semesters war ich bei ca 70% der Vorlesungen anwesend, bei den Übungen ebenso.

Zur Vorbereitung auf die Prüfung habe ich mir die meisten Aufzeichnungen angesehen (Vorlesung und Übung) und den gesamten Stoff zusammengefasst (ca 1 Kapitel pro Tag). Danach bin ich noch 2 Tage meine Zusammenfassung durchgegangen und habe den Fragenkatalog mit einem Kommilitonen durchgesprochen.

Zu Tor habe ich noch ein bisschen extra recherchiert (Wikipedia Seite und Tor Hidden Services noch mal genauer angesehen), da mir der Gastvortrag und die Folien nicht genau genug darauf eingingen.