TU Wien: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 2022S
Sprache Deutsch
Abkürzung SecSysEng
Mattermost security-for-systems-engineeringRegisterMattermost-Infos
Links tiss:183637, eLearning, Homepage
Zuordnungen
Bachelorstudium Wirtschaftsinformatik
Bachelorstudium Medieninformatik und Visual Computing
Bachelorstudium Medizinische Informatik
Bachelorstudium Software & Information Engineering


Inhalt[Bearbeiten | Quelltext bearbeiten]

Weiterführende Themen aus dem Security-Bereich, recht durchmischt.

Ablauf[Bearbeiten | Quelltext bearbeiten]

Wöchentlicher Vortrag, drei Übungen über das Semester verteilt, schriftliche Abschlussprüfung.

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

Inhalte von Introduction to Security

Insbesondere der LVA vom gleichen Institut (INSO - ESSE) - da in der Vorlesung wiederholt auf Inhalte dieser LVA verwiesen wird, welche in der anderen Version nicht vorkommen (oder anders genannt wurden)

Vortrag[Bearbeiten | Quelltext bearbeiten]

2020W & 2021S

Der Vortrag wurde eingestellt. Das Distance Learning beschränkt sich darauf sich selbständig die Transkripte und Folien durchzulesen.

bis 2020S

Mehrere Vortragende besprechen unterschiedliche Themen von Security. Die Themen sind sehr Umfangreich und haben teilweise keine Gemeinsamkeiten (von SQL-Injection, XML-Injection, Voice over IP, Security bei Electronic-Cards, etc.). Man könnte diese Themen ja irgendwie interessant gestalten, aber die Vortragsstile sind alle samt so schlecht, dass man gar nicht weiß welcher den Worst-Place im Votragen bekommt. Dies fängt an bei Votragenden die keine Ahnung haben was auf den Folien für Beispiele bzw. Texte stehen bis hin zu welchen die keinen Satz sagen können oder 3 mal ÖHM, ÄHM, ÖHH zu sagen, sodass man sich fragt, was man hier überhaupt verloren hat.

2. Meinung: Finde die Aussage über den Vortragsstil ist eher subjektiv. Er ist zwar nicht toll, finde in aber durchaus in Ordnung.

3. Meinung: Die Fankhauser-Vorträge fand ich allesamt sehr gelungen. Ich habe die Vorlesungen wirklich gerne besucht und sie auch für sehr informativ gehalten. Wenn man sie besucht, dann ist es das Lernen für die Prüfung kein großer Aufwand mehr.

Übungen[Bearbeiten | Quelltext bearbeiten]

Lab 0[Bearbeiten | Quelltext bearbeiten]

Wenig Aufwand, alleine zu erledigen. Dient hauptsächlich zur sicheren Anmeldung zur LVA und dem Erlernen des Umgangs mit GPG.

Ein GPG-Schlüsselpaar für die eigene Email-Adresse muss generiert und der Public Key auf der ESSE Website eingetragen werden. Dadurch erhält man dann ein verschlüsseltes Mail, welches die SSH Zugangsdaten für die LVA enthält.

Lab 1[Bearbeiten | Quelltext bearbeiten]

Diese Abgabe stellt den Hauptaufwand der Übungen dar und wird im Team absolviert.

Im SS2012 musste für Lab1a eine bekannte Schwachstelle in einem Tomcat Server gefunden und ausgenutzt werden, um den Inhalt der beiden Dateien /etc/passwd und /etc/shadow zu extrahieren (http://www.cvedetails.com/cve/CVE-2010-3718/). Außerdem noch der RSA private key eines bestimmten Users. Im SS2015 musste für Lab1a ebenso eine bekannte Schwachstelle ausgenutzt werden. Es handelte sich hierbei um einen Apache Server der anfällig für den Shellshock-Exploit war.

Die Aufgabe für Lab1b war es dann, ein fiktives Firmennetzwerk zu analysieren: Hosts finden (IPv4/IPv6), offene Ports erkennen und nach Möglichkeit die dahinterliegende Software identifizieren - eine satte nmap Übung also. Dies waren im SS2012 12 Hosts und 32 Services. Diese Aufgabe war auch im SS2015 noch genauso. (Solltest du Probleme damit haben --> Lab1b

Für Lab1c mussten dann noch zwei Minimal-Anwendungen erstellt werden, die eine in der Vorlesung behandelte Sicherheitslücke demonstrieren. Wir wählten da a) ein Buffer Overflow Beispiel, und b) Weak Session IDs in PHP (fortlaufend). SS2015: Lab1c bestand aus vier Minimal-Anwendungen. Die Teams bestanden insgesamt auf vier Personen, wobei jede eine Schwachstelle aus der OWASP Top 10 Liste implementieren musste.

Aufwand ist nicht gewaltig, aber auch nicht zu unterschätzen. Die nmap-Scannerei dauert, man bleibt schnell mal bei einem Problem hängen, und es muss auch ein umfangreiches Dokument abgegeben werden. Dieses soll nicht nur die gefundene Schwachstelle und Vorgehensweise dokumentieren, sondern es sollen auch Gedanken zu weiteren Anfälligkeiten und Schutzmöglichkeiten gemacht werden. Außerdem für Lab1b die Netzwerkstruktur graphisch aufarbeiten und gefundene Dienste ausgiebig dokumentieren.

CTF-Contest[Bearbeiten | Quelltext bearbeiten]

Den Abschluss der Übung bildet der ESSE Capture-The-Flag contest, welcher im Labor stattfindet und ca. 7 Stunden dauert. Hier wird auch in Teams gearbeitet, es muss aber nicht dasselbe Team sein wie in Lab1.

Dabei erhält jedes Team, die so illustre Namen tragen wie "all_your_flags_are_belong_to_us", "'; DROP TABLE Teams; --" oder "1338 - Off by One", Zugriff auf eine eigene VM. Dort laufen einige anfällige Services, die in verschiedenen Sprachen geschrieben sind (SS2012: PHP, Ruby on Rails, C++, Java, Haskell, SS2017: PHP, Python (Flask), Java, Rust, Swift, Bash). Wenn ein Team eine Vulnerability findet, kann es seine eigenen Services dagegen fixen, und das Problem bei den VMs von anderen Teams ausnutzen, was Punkte gibt.

Beim CTF Contest steht der Spaß im Vordergrund und die konzentrierte Stimmung im Labor ist wirklich beeindruckend. Für die Benotung maßgeblich ist das abgegebene Protokoll, welches die einzelnen Services, die Vorgehensweise, gefundene Schwachstellen und deren Behebung beschreiben soll.

Tipps für den CTF:

  • Ein Team mit bunt gemischten Fähigkeiten und Erfahrungen ist von Vorteil.
  • Die Regeln beachten, fair bleiben.
  • Den Netzwerkverkehr der eigenen VM genau beobachten, um Angriffe frühzeitig zu erkennen.
  • Es ist empfehlenswert, sich auf den CTF etwas vorzubereiten - ein paar Lowlevel-Skripte schreiben, die üblichen Sprachen etwas anschauen, eine vernünftige Arbeitsumgebung am Notebook.
  • Bekannte Schwachstellen werden mit der Zeit immer weniger wert, deshalb soll möglichst früh automatisiert werden.
  • Das Format der Tokens und die Umgebung wird vorher bekanntgegeben. Es ist empfehlenswert, dafür ein plugin-basiertes Skript vorzubereiten, um das Einsammeln und Abgeben der Tokens zu automatisieren.

Prüfung, Benotung[Bearbeiten | Quelltext bearbeiten]

SS2017: Prüfung bestand aus 11 Seiten (37 Fragen). Es waren sehr viele Multiple Choice bzw. richtig/falsch Fragen, bei denen man die Hälfte der Punkte bekam wenn mehr als die Hälfte richtig gekreuzt/freigelassen wurde. Fragen behandelten so ziemlich alle Folien, wobei man sich die auf den Folien erwähnten Angriffe (auch die wo nur der Name dort steht) genau anschauen sollte (Google bzw. Referenzangaben checken).

SS2015: Die Prüfung bestand sowohl aus MC-Fragen wie auch offenen Fragen. Falsche MC-Fragen brachten keine Abzüge. Soweit ich mich erinnern kann, bekam man die Hälfte der Punkte für eine Frage, solange mehr als die Hälfte richtig gekreuzt war.

Alles in allem war sie mMn nicht besonders schwer. Man sollte sich die Folien davor auf alle Fälle ein paar mal durchgelsen haben. Ebenso ist es zu empfehlen die möglichen Angriffsmethoden genau nachzulesen, da diese auf den Folien nicht erklärt sind.

Dauer der Zeugnisausstellung[Bearbeiten | Quelltext bearbeiten]

SS2014: Punkte wurden am selben Tag wie die Prüfung im Tuwel eingetragen.

SS2015: Punkte wurden noch um 1 Uhr Früh nach der Prüfung eingetragen.

SS2018: Punkte wie bei SS15 auch um 1 Uhr Früh nach der Prüfung eingetragen.

SS2019: Punkte wurden um dreiviertel 2 in der Früh nach der Prüfung eingetragen.

Semester Letzte Leistung Zeugnis
2019S 19.06.2019 22.07.2019 ~5 Wochen

Zeitaufwand[Bearbeiten | Quelltext bearbeiten]

noch offen

Unterlagen[Bearbeiten | Quelltext bearbeiten]

noch offen

Tipps[Bearbeiten | Quelltext bearbeiten]

noch offen

Highlights / Lob[Bearbeiten | Quelltext bearbeiten]

noch offen

Verbesserungsvorschläge / Kritik[Bearbeiten | Quelltext bearbeiten]

noch offen