TU Wien:Advanced Security for Systems Engineering VU (Fankhauser)

Aus VoWi
Zur Navigation springen Zur Suche springen
Ähnlich benannte LVAs (Materialien):

Daten[Bearbeiten | Quelltext bearbeiten]

Vortragende Christian BremFlorian FankhauserFranz MairhoferChristian Schanes
ECTS 3
Letzte Abhaltung 2021W
Sprache „if required in english“ ist kein zulässiger Sprachcode.
Mattermost advanced-security-for-systems-engineeringRegisterMattermost-Infos
Links tiss:183645, eLearning, Homepage
Zuordnungen
Masterstudium Business Informatics
Masterstudium Medizinische Informatik
Masterstudium Software Engineering & Internet Computing


Inhalt[Bearbeiten | Quelltext bearbeiten]

Vorlesungen zu den Themen:

  • Web Application Security (SQL Injection, XSS, CSRF, Session Fixation Attacks, ...)
  • XML Security (XML Signature/Encryption, multiple attacks, WS-*, ...)
  • Attacks on Applications 1 (Stack Buffer Overflow attacks, Shellcode Writing, Stack Canary, W^X, Attacks/Mitigations, ...)
  • Attacks on Applications 2 (Race Conditions access/open, String Format Vul., Integer Overflow, Return Oriented Programming, Defeating ASLR, ...)
  • Passwort Security (Austrian ePass: how does it work)
  • Security of VoIP (Gastvortrag: VoIP: how does it work, Attacks/Mitigations, Honeypots...)
  • Forensics (Padding Oracle Attack, RSA-Issues with weak primes, full disk encryption (fde), anti-fde, anti-anti-fde, anti-anti-anti-fde (no joke ^^)...)
  • Skimming (mostly magnet stripe skimmers, NFC skimming, Fake PIN pads...)
  • Mobile Applications (Exploit android applications, using Activities, Content Providers, Services, Broadcast Receivers, IMSI Catcher, Structure of GSM, auth. 2G/3G...)
  • Secure Architectures (Design Principles: Least Privilege, Separation of Duties, Fail Secure, Open Design...)

Ablauf[Bearbeiten | Quelltext bearbeiten]

Grundsätzlich ca. 10 Vorlesungstermine mit etwa 1-3 Gastvorträge. Parallel dazu drei Übungen, welche (bis auf die erste) in 3er Teams zu absolvieren sind.

WS2021: 8 Vorlesungseinheiten dazu wurden Transskripte als PDF oder MD-Datei zur Verfügung gestellt. Die Übung war in 3 Aufgaben unterteilt, wobei lediglich die erste eine Einzelaufgabe war. Die Teamgröße war 3-4 Personen.

Benötigte/Empfehlenswerte Vorkenntnisse[Bearbeiten | Quelltext bearbeiten]

Vortrag[Bearbeiten | Quelltext bearbeiten]

WS2015: Die Qualität der Vorträge variierte von schlecht bis sehr gut. Die ersten beiden (WebApp u. XML Security) waren eher eintönig und theoretisch gestaltet. Attacks on Application 1 und 2 wären grundsätzlich interessant, dem Vortrag lässt sich aber nur schwer folgen. Die restlichen Vorträge sind i.d.R. sehr spannend und beinhalten teilweise praktische Demos (z.B. ePass, VoIP Honeypots, Android Exploits...)

Übungen[Bearbeiten | Quelltext bearbeiten]

WS2015: Es waren drei Labs zu machen:

  • Lab0: Einstiegsübung. Sobald diese absolviert ist, wird einem ein Zeugnis ausgestellt. (Einzelarbeit)
  • Lab1: (Teamarbeit) Exploits für je 2 Binaries schreiben, SQL-Injection in Webseite ausnützen.
  • Lab2: (Teamarbeit) RSA-Keys mit Schwachstellen kompromittieren, Oracle Padding Attacke durchführen, weitere Attacken zu VoIP und XML

Die Übung war grundsätzlich sehr schwierig gestaltet. Vor allem bei Lab1 waren kaum Hilfestellungen (z.B. Source Codes, um welche Schwachstelle handelt es sich?...) verfügbar. Tipp: geht bei der Vorlesung zum Vortragenden und fragt nach Hilfestellungen zu den Challenges (bzw. auch per E-Mail sind Infos zu bekommen). (In unserem Fall war dieser selbst über den Schwierigkeitsgrad überrascht. Angeblich hätte das nicht so schwierig werden sollen)

WS2016: Auch hier waren 3 Labs zu machen

  • Lab0: Einstiegsübung (Einzelarbeit). Modus wie 2015. Aufgabe: S/MIME Verschlüsselung im Mailclient einrichten
  • Lab1: (Teamarbeit) Sehr umfangreich:
    • Mehrere Buffer Overflow Attacken (u.a. in Umgebungen mit keinen, statischen oder dynamischen Libraries), mit/ohne ASLR, ...
    • QR Code aus Bild-Schnippseln auslesen (z.B. mit ImageMagick)
    • Passwörter cracken (7z files mit Tools: crark, ...), Muster definieren etc.
    • Source Code Analyse (diff)
    • Blind SQL Injection
  • Lab2: Weniger umfangreich als lab1, aber nicht zu unterschätzen.
    • Einzelaufgabe: Textaufgabe: Beschreibe eine Schwachstelle eines Open Source Projekts und wie diese ein gewähltes Secure Design Principle verletzt,
    • Teamarbeit: : XML-RPC-Exploit, Card-Skimming, Reverse Engineering (VHDL Code)

WS2021: 3 Aufgaben (genannt Labs)

  • Lab0 (20 Punkte, Einzelaufgabe):
    • OpenPGP für die Studierenden E-Mail-Adresse einrichten
    • Intermediate CA mit OpenSSL einrichten
    • Datei mit OpenSSL signieren
  • Lab1 (50 Punkte, Teamaufgabe):
    • Recherche einer/mehrere Vulnerability/Vulnerabilities aus den Kategorien A Stack-based Buffer Overflow, B Format-String Vulnerability, C Heap Corruption
    • Abstrahierten Code der Vulnerability erstellen
    • Exploit für den abstrahierten Code erstellen
    • Verfassen eines dazugehörigen Reports
  • Lab2 (50 Punkte, Teamaufgabe):
    • Jeopardy CTF mit 3 Android Beispielen und 3 Forensik Beispielen

Achtung: Serverumgebung setzt sich meist täglich zurück, also alle Daten von Exploitversuchen unbedingt lokal in Kopie halten.

Für jedes Lab muss ein Bericht geschrieben werden, wo erklärt wird, wie man Lösungen erreicht hat bzw. wie weit man mit unfertigen Lösungen gekommen ist (bringt auch Punkte). Außerdem muss man zum Abgabegespräch für lab1+lab2, hier muss man über die Lösungen der Teammitglieder bescheid wissen. Sehr faire Bewertung, motivierte Tutoren, die kreative Lösungen gutheißen


WS2022: gleich wie bei WS21

Prüfung, Benotung[Bearbeiten | Quelltext bearbeiten]

WS2015: 60% Übung, 40% Prüfung. Relative schwere Prüfung, vorallem aber durch die vielen Multiple-Choice-Fragen. Zeit ist mit 120 Minuten genügend vorhanden. Wer alle Challenges geschafft bzw. verstanden hat, sollte mit der Prüfung aber keine Probleme haben.

WS2021: 60 % Übung, 40 % Prüfung. Die Prüfung wurde über Zoom abgehalten und hatte mehr den Charakter eines Gesprächs als den einer Prüfungssituation. Noten wurden kurze Zeit später in TUWEL eingetragen.

WS2022: 60 % Übung, 40 % Prüfung. Die Prüfung war vor Ort im INSO.

Dauer der Zeugnisausstellung[Bearbeiten | Quelltext bearbeiten]

  • Letztes Abgabegespräch am 26.1., Zeugnis am 8.3. (6 Wochen)

Zeitaufwand[Bearbeiten | Quelltext bearbeiten]

Die Übung ist interessant aber fordernd gestaltet. Ohne Vorkenntnisse ist es sehr aufwendig sich in alle benötigten Techniken einzulesen.

WS2021: Je nach Vorkenntnissen etwa entsprechend der 3 ECTS (= 75 h), für mich in etwa 25 h Lab 1, 15 h Lab 2 und 25 h Vorlesung/Prüfungsvorbereitung.

WS2022: Lab 1 braucht sehr viel Zeit und ist sehr viel Aufwand. Lab 2 ist einfach und geht viel schneller. Prüfung ist relativ schwierig, weil sie genaue Fragen zu manchen Themen stellen. Hier würde ich mich sehr gut vorbereiten (Tipp: Es kommt meistens ein Beispiel C Programm, wo anhand dieses der Stack (Pointer) beschrieben wird => Wo ist der ebp gerade? etc.)

Unterlagen[Bearbeiten | Quelltext bearbeiten]

noch offen

Tipps[Bearbeiten | Quelltext bearbeiten]

  • Frühzeitig mit dem Challenges anfangen. Für die schwierigen Aufgaben können gerne mal 15-20 Stunden benötigt werden.
  • Im Zweifelsfall der LVA ein E-Mail mit dem aktuellen Stand/Problem. Meistens gibt es Tipps für weitere Schritte.
  • Anwesenheit wird stark empfohlen, da die Unterlagen nicht das gesamte Stoffgebiet abdecken bzw. nur vor Ort ausdefiniert werden.
  • Sowohl die Übungen als auch der Test sind anspruchsvoll, also sollte man ausreichend Zeit einplanen. Es gibt aber auch großflächige Überschneidungen mit anderen Security-LVs, was den Lerneffekt und -Aufwand stark dämpfen kann.
  • Wer zur Prüfungseinsicht geht, kann neu abgeprüft werden. Man kann seine Note zwar nur verbessern und es werden die selben Fragen wie zur Prüfung gestellt, eine unerwartete Überraschung kann es trotzdem werden.


WS22:

  • Anwesenheit wird stark empfohlen!!!
  • Früh genug mit lab1 anfangen.
  • Vorlesungen zu Attacks on Applications (1,2,3) gut verstehen, damit man bei der Prüfung beim Programm glänzen kann.

Verbesserungsvorschläge / Kritik[Bearbeiten | Quelltext bearbeiten]

Die Vortragenden fragen im Allgemeinen ob Studenten anwesend sind, die den Vortrag auf Englisch hören wollen bzw. kein Deutsch können. Dazu muss man sagen dass die Vorträge auf Englisch eine ziemlich schlechte Qualität haben, was schade ist.