TU Wien:Advanced Internet Security VU (Dabrowski)

Aus VoWi
Wechseln zu: Navigation, Suche
Ähnlich benannte LVAs (Materialien):

Daten[Bearbeiten]

Vortragende Edgar Weippl, Wolfgang Kastner, Adrian Marek Dabrowski, Aljosha Judmayer, Christian Kudera, Georg Merzdovnik
ECTS 3
Abteilung Computer Engineering
Wann Wintersemester
Sprache English
Links tiss:183222, Homepage
Zuordnungen
Master Software Engineering & Internet Computing Wahlmodul Advanced Security

Mattermost: Channel "advanced-internet-security" Team invite & account creation link Mattermost-Infos

Inhalt[Bearbeiten]

  • General Unix security
  • Memory Corruption
  • Windows Security
  • Race conditions
  • Reverse Engineering
  • Web Security
  • Malware

Mit Sicherheit eine der interessantesten (aber auch anspruchvollsten) Lehrveranstaltungen im Studium. Die Übung ist sehr praxisnah und realistisch aufbereitet. Die meiste Zeit kommt echte Hacker-Atmosphäre auf und der Lerneffekt ist enorm. Du hast das Gefühl mit fähigen und kompetenten Leuten zu tun zu haben.

Ablauf[Bearbeiten]

Der Übungsteil der Lehrveranstaltung umfasst insgesamt sieben sog. Challenges, die im Laufe des Semesters veröffentlicht werden und die Punkte bringen. Am Ende des Semesters gibt es eine schriftliche Prüfung. Üblicherweise nimmt ein Team der TU Wien mit den Teilnehmern dieser Lehrveranstaltung an einem CTF (Capture The Flag) Wettbewerb teil, was sehr cool ist, die Teilnahme ist aber optional.

Benötigte/Empfehlenswerte Vorkenntnisse[Bearbeiten]

  • Wissen aus Internet Security wird vorausgesetzt
  • Grundlegende C/C++ Programmierung (wichtig!)
  • Grundlegendes Linux-Knowhow

Vortrag[Bearbeiten]

Vorlesung ist wöchentlich. Es sind 1-2 Gastvorträge üblich, z.B. von weiteren SecLab-Members, Ikarus-Gastvortrag... Alle Vorträge sind interessant und sehr empfehlenswert, die Challenges sind aber durchaus auch ohne Besuch der Vorlesung lösbar.

Die Inhalte sind im Vergleich zu anderen Security-LVAs sehr technisch bzw. hardwarenah (Chip Reverse Engineering im Hardware-Lab, SDR/RFID Radio, Android bzw. iOS).

Übungen[Bearbeiten]

Es gibt insgesamt sieben sog. Challenges, für die im Schnitt ca. zwei Wochen Zeit ist. Dabei handelt es sich meist um mittelgroße Programmieraufgaben, die auf dem Laborrechner (SSH-Zugang) abgegeben werden können. Es gibt einen Grading Bot, der bis zur Deadline beliebig oft aufgerufen werden kann. Manchmal fühlt es sich eher an gegen den Grading Bot zu kämpfen als gegen die Challenges.

Challenges bringen Punkte für die Benotung, wobei mindestens 4 von 7 Challenges gelöst werden müssen, um positiv zu sein. Teillösungen bringen keine Punkte (aber man kann beim Tutor freundlich nachfragen, wenn man irgendwo gar nicht weiterkommt).

Es gibt rege Diskussionen im Mattermost, es zahlt sich aus, mitzulesen bzw. zu fragen, wenn man nicht weiter kommt.

WS2015 Challenges[Bearbeiten]

  1. Unix Security (Unix Basics)
  2. Software Reverse Engineering (Binary Analyse & Patchen)
  3. Remote Buffer Overflow
  4. Virus
  5. PDF Exploit (anfällige Acrobat Reader Version mit JavaScript Heap Spray und Shellcode)
  6. Android Reverse Engineering (APK File Analyse)

WS2017 Challenges[Bearbeiten]

  1. Server-Side Template Injection
  2. Software Reverse Engineering (Binary Analyse & Patchen)
  3. Remote Buffer Overflow
  4. Software Defined Radio (Firmware einer Fernbedienung analysieren und mit Gnuradio ein Signal erstellen)
  5. Virus
  6. Android Reverse Engineering (APK File Analyse)

WS2018 Challenges[Bearbeiten]

  1. Eine Kombination aus 3+ OWASP Top 10 Lücken richtig ausnutzen und damit ein Botnetz ausschalten
  2. Android Reverse Engineering (APK File Analyse)
  3. Software Defined Radio (Firmware einer Fernbedienung analysieren und mit Gnuradio ein Signal erstellen)
  4. Reverse Engineering mit Hilfe von Symbolic Execution (angr)
  5. Stack Overflow in gestrippten Embedded System Image (ARM) exploiten
  6. Nonce reuse in ECDSA exploiten (PlayStation 3 exploit)
  7. Single byte heap overflow exploiten

Prüfung[Bearbeiten]

Die Prüfung am Ende des Semesters ist schriftlich, keine Unterlagen erlaubt. Es werden Fragen zu den behandelten Themen gestellt, bis auf wenige Ausnahmen Textfragen, die mit einem kurzen Absatz auf Englisch oder Deutsch beantwortet werden können. Die Prüfung trägt 1/3 zur Gesamtnote bei, allerdings kann man auch ohne Prüfung positiv sein. Es gibt nur einen Termin am Ende des Semesters für die Prüfung.

Mit dabei ist oft auch ein Stück Assembler-Code, dessen printf-Ausgaben nachvollzogen werden müssen. Sourcecode von Malware war auch schon dabei, der interpretiert werden musste (ein einfacher Virus).

Die Benotung ist sehr fair.

Dauer der Zeugnisausstellung[Bearbeiten]

  • WS 2018/19: Prüfung am 23. Jänner, Punkte am 29. Jänner eingetragen, Zeugnis am 23. Februar.

Literatur[Bearbeiten]

Vorlesungsfolien gibt es auf der LVA-Homepage zum Download, die Unterlagen reichen im Normalfall als Vorbereitung auf die Prüfung.

Zeitaufwand/Anspruch[Bearbeiten]

Hängt sehr stark von den Vorkenntnissen zum Thema der aktuellen Challenge ab.

Sehr hoch. Meist musst du doch einiges Recherchieren und Nachvollziehen, deshalb würde ich eher mit 10 bis 15 Stunden pro Challenge rechnen (also insgesamt mindestens 100 Stunden allein für die Übung).

Weitere Meinung: Ebenfalls sehr hoch. Wer gut C programmieren kann, ist klar im Vorteil. Auch Assembler Code nachvollziehen können ist absolutes Muss. 2 Challenges (Linux, Android) waren super easy mit "nur" 4h Aufwand. Der Rest jeweils 20h+ pro Übung.

Noch eine Meinung (2017): Die Challenges sind ähnlich wie in in InetSec gestaltet, jedoch deutlich schwieriger (immerhin eine LV im Master) als die Vorgänger. Wer vorher schon mal Assembly (zB in Übersetzerbau) gemacht hat ist klar im Vorteil, und wer kein C (tiefgängig) und Python (zumindest syntaktisch) beherrscht, wird wahrscheinlich Probleme haben. Wenn man aber das nötige Vorwissen mitbringt ist die LV sehr interessant, und man lernt tatsächlich Techniken die in der echten Welt relevant sind. (Keygen, Cracks, Malware, advanced buffer overflows, etc.). Ich würde der LV eine klare Empfehlung ausstellen, auch wenn man 3 ECTS billiger bekommen kann.

WS 2018/19: Der Aufwand ist wirklich hoch. Die sieben Challenges haben es in sich und für die Prüfung gibt es ca. 1000 Folien zu lernen. Der Aufwand liegt realistisch eher bei 150 Stunden, also durchaus höher als viele LVAs, die sogar offiziell 6 ECTS haben. Wenn man sich für die Materie interessiert, sollte man sich davon nicht abschrecken lassen, allerdings sollte man es bei der Planung des Semesters berücksichtigen.

Hilfreiche Links[Bearbeiten]

Fast immer sind "hilfreiche Links" zum aktuellen Thema bei der Angabe zur jeweiligen Challenge angegeben.

Wo gibts Mitschriften, Skripten, Folien...[Bearbeiten]

Vorlesungsfolien gibt es auf der LVA-Homepage zum Download, Skriptum wird keines zur Verfügung gestellt und Mitschriften entstehen eher selten.

Tipps[Bearbeiten]

  • Früh genug anfangen mit den Challenges und sie nicht unterschätzen (meistens ergeben sich noch unerwartete Stolpersteine beim ersten Abgabeversuch)
  • Wenn Interesse für Security da ist, ist diese LVA sehr, sehr empfehlenswert!
  • CTF-Contest: iCTF / WE_0WN_YOU

Verbesserungsvorschläge / Kritik[Bearbeiten]

  • Die LVA ist an sich recht gelungen und bietet einen interessanten Überblick über verschiedenste Gebiete der softwarebasierten IT Security. Auffällig ist jedoch, dass Advanced Internet Security quasi nicht (oder nur indirekt) von Interent-Technologie handelt.
  • Die LVA hat leider für den Aufwand zu wenig ECTS. Die Übungen sind sehr anspruchsvoll und zeitaufwändig und würden 6 ECTS auf jeden Fall rechtfertigen.
  • Im WS 2018/19 gab es nur einen Termin für die schriftliche Abschlussprüfung. Diese war allerdings nicht zwingend notwendig für eine positive Note.