Sie befinden sich hier: Termine » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 1 » Angewandte Software-Sicherheit und Penetrationstests   (Übersicht)

Angewandte Software-Sicherheit und Penetrationstests

Studiengang: Master Inf
Dauer: 30 Minuten
Prüfer: Sebastian Schinzel
Datum: 21.02.2013

Allgemeines

Freundliche Begrüßung, lockere Atmosphäre (man kennt sich ja…). Stift und Papier gibts wie immer, gebraucht hab ich nichts davon.

Ich durfte weitestgehend ununterbrochen reden und damit auch ein bisschen steuern, was ich erzähle und wo weiter gefragt wurde. Gastvorträge wurden nicht gefragt, die relevanten Fragen gabs vorher als PDF und hatte er auch ausgedruckt dabei. Man kann sich also darauf verlassen, dass das, was im Prüfungsfragen-PDF steht auch nicht auswendig gelernt werden muss (z.B. die Beudeutung von SMART+ im Kontext Softwareanforderungen).

Inhalt

Zu Beginn durfte ich mir ein Thema aussuchen – in meinem Fall waren das Stack Overflows. Ich sollte erklären, wie Stack Overflows funktionieren, warum sie ein Problem sind, wie sie zustande kommen und wie man verhindert, dass solche Fehler passieren. Gegen Ende meines Redeschwalls hab ich noch Integer Overflows und das Problem

strncpy(buf, sizeof(otherbuf), src);

erwähnt, woraufhin wir noch darüber diskutiert haben, wie man letzteres verhindert (z.B. indem man die beiden zusammengehörigen Größen Puffer und Größe des Puffers auch zusammen speichert). Anschließend durfte ich noch Integer Overflows und passende Gegenmaßnahmen erklären (und warum eine Prüfung „> INT_MAX“ nicht funktioniert) und hab dann noch als Beispiel die vor kurzem wiederentdeckte Schwachstelle „INT_MIN / -1“ (die ein Signal auslöst, das nicht immer behandelt wird) erwähnt.

Dann kam ein Sprung zu djbs QMail-Paper, und ich sollte eliminating bugs, eliminating code, eliminating trusted code und die drei Ablenkungen speed, speed, speed, privilege separation und chasing attackers erklären.

Abschließend sind wir noch ins Web gewandert – gefragt waren eine Erklärung der Same Origin Policy, die ich ziemlich ausführlich gemacht habe. Dann kam eine Frage was denn Content Security Policies seien, wo ich kurz erwähnt habe, was XSS-Angriffe eigentlich sind und das CSPs als Gegenmaßnahme dazu geplant waren. Dann erklärt, was CSPs sind und wie (und warum) sie funktionieren. Die Follow-Up-Frage zielte darauf ab zu erklären, warum CSPs nicht gegen XSRF helfen (der Angegriffene bei XSRF ist der Server, nicht der Client!) und wir haben zwei Modelle diskutiert, wie man XSRF verhindern könnte (Anti-XSRF-Token, theoretische Whitelist von Origins, von denen aus ein Formular abgesendet werden darf auf dem Zielserver [und warum der Client ein Interesse daran hätte solche Vorgaben einzuhalten]). Abschließend wollte er noch wissen, wie der Überbegriff für XSRF ist (Confused-Deputy-Problem) und erwartete eine Erklärung davon.

Wäre noch Zeit gewesen wären Gerüchten™ zufolge die nächste Frage zu Clickjacking und dann Output Encoding und Input Validation gekommen.

Nachbesprechung

Sehr positiv fand ich das Feedback in der Nachbesprechung – Sebastian Schinzel gibt Tips, wie man seine Prüfungsperformance noch verbessern kann und erwähnt Stärken und Schwächen im eigenen Rede- und Erklärungsstil.

Vorbereitung

Ich habe mir zur Vorbereitung eine Zusammenfassung1) der Vorlesungsfolien geschrieben und habe die gegebenen Prüfungsfragen durchgearbeitet.

Allen Nachfolgern noch viel Erfolg!