TU Wien:Einführung in Security VU (Maffei)

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

Daten[Bearbeiten | Quelltext bearbeiten]

Vortragende Matteo MaffeiSebastian RothMarco SquarcinaMauro Tempesta
ECTS 6,0
Alias Introduction to Security (en)
Letzte Abhaltung 2024S
Sprache English
Mattermost einfuehrung-in-securityRegisterMattermost-Infos
Links tiss:192019, eLearning
Zuordnungen
Bachelorstudium Informatik Modul Einführung in Security (Pflichtfach)
Bachelorstudium Wirtschaftsinformatik Modul INT/SEC - Einführung in Security (Pflichtfach)
Bachelorstudium Medieninformatik und Visual Computing Modul Security (Gebundenes Wahlfach)
Bachelorstudium Medizinische Informatik Modul Einführung in Security (Pflichtfach)
Bachelorstudium Software & Information Engineering Modul Einführung in Security (Pflichtfach)
Bachelorstudium Technische Informatik Modul Grundlagen Security (Gebundenes Wahlfach)


Inhalt[Bearbeiten | Quelltext bearbeiten]

  • Symmetric and Asymmetric Cryptography
    • Historic Cryptography
    • AES
    • MAC
    • Hash Functions
    • RSA (Encryption and Signatures)
    • Diffie-Hellman
    • Public-Key-Infrastructure
  • Authentication
  • Access Control
  • Network Security
  • Web Security (Server and Client Side)
  • Binary exploitation
  • Program Verification
  • SMT and Symbolic Execution (Reverse Engineering)

Ablauf[Bearbeiten | Quelltext bearbeiten]

2024S[Bearbeiten | Quelltext bearbeiten]

Der Vorlesungsteil wurde auf zwei Teile mit jeweils einem Test aufgeteilt. Der erste Teil umfasste Introduction, Cryptography, Authentication/Access Control und Network Security. Der zweite Teil Web Security, Systems Security (Binary Exploitation) und Program Verification. Es gab zweimal wöchtentlich einen zweistündigen Vortrag.

Der Übungsteil bestand aus 6 CTF Challenges zu jeweils den Themen Cryptography, Authentication / Network Security, Server-side Web Security, Client-side Web Security, Systems Security (binary exploitation) und Reverse Engineering (mit Angr), welche im Laufe des Semesters gelöst werden mussten.

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

Ein gutes Grundwissen und allgemeine Erfahrung im IT-Bereich sind definitiv von Vorteil.

Im speziellen sind folgende Vorkenntnisse sehr empfehlenswert:

  • Linux Grundwissen für den Access Control Teil
  • Netzwerktechnik Grundwissen für Network Security
  • Web Development Erfahrung (vorallem HTTP, HTML, PHP, SQL, JavaScript) für Web Security
  • Betriebssysteme und Assembly Grundkenntnisse für den Binary Exploitation und Symbolic Execution Teil
  • Python Erfahrung für die Challenges

Vortrag[Bearbeiten | Quelltext bearbeiten]

2024S[Bearbeiten | Quelltext bearbeiten]

Der Vortrag wird auf Englisch gehalten, die Vortragenden haben manchmal einen starken (italienischen) Akzent, sind aber dennoch gut verständlich. Die Folien sind meist recht detailliert. Kleine Teile wurden von PhD Studis aus der Research Group gehalten, diese waren teilweise kaum verständlich (beispielsweise der Vortrag über TLS). Alles in allem ist die Vorlesung aber meiner Meinung nach spannend und sehr gut gelungen.

Übungen[Bearbeiten | Quelltext bearbeiten]

2024S[Bearbeiten | Quelltext bearbeiten]

Die Übungen wurden im CTF-Stil auf einer eigenen Platform abgehalten. Hierbei musste immer eine Challenge gelöst werden, indem man eine Vulnearability ausnutzt um eine Flag zu finden. Nachdem man die Flag abgegeben hat konnten Recap-Questions beantwortet werden. Die Recap-Questions waren größtenteils spezifische Fragestellungen zu der Challenge und wie man sie gelöst hat, jedoch waren auch manche allgemeine Fragen zu dem Thema dabei. Für die Flag selber hat man keine Punkte bekommen, sondern nur für die Recap-Questions. Es gab auch die Möglichkeit aufzugeben wenn man die Flag nicht finden konnte, dann bekam man aber nur die halben Punkte.

  1. quickgen: Man bekommt ein Script um RSA Keypairs zu erstellen wurden und ein paar Public Keys die mit besagtem Script generiert wurden. Das Ziel ist eine Datei, welche mit einem der Public Keys verschlüsselt wurde zu entschlüsseln. Hierbei kann man sich zunutze machen, dass sich die generierten Public Keys Primfaktoren teilen, welche sich mit dem GCD Algorithmus recht effizient berechnen lassen.
  2. NetHunt: Man muss sich mit OpenVPN zu einem Netzwerk verbinden und dieses erkunden. Gelöst werden kann die Challenge indem man mit nmap -T4 -p1-65535 198.18.0.0/24 das ganze Netzwerk auf offene Ports scannt, sich auf einem der gefundenen Hosts auf Port 2323 via Telnet verbindet und darüber einen Nutzer erstellt, anschließend sich mit dem Nutzer über SSH verbindet, eine iptables rule in der Datei /secrets findet und dann einen beliebigen Text via UDP an 10.31.33.7 auf Port 666 sendet (zum Beispiel mit echo Hello | nc -u -w1 10.31.33.7 666).
  3. miningmind: Es muss eine Blind SQL Injection in einer Flask Webapp ausgenutzt werden. In der App wird zwar versucht SQL Injections zu unterbinden indem ' durch '' ersetzt wird, dies kann jedoch trivial umgangen werden, indem \' gesendet wird.
  4. Noncense: Es muss eine Reflected Client-Side XSS Vulnearability ausgenutzt und CSP umgangen werden. Die CSP Nonce wird hier basierend auf der aktuellen Uhrzeit generiert, wodurch der Wert selbst berechnet werden kann.
  5. ropot: Ein Buffer Overflow muss ausgenutzt werden. Hierfür muss eine ROP Chain erstellt werden um eine Shell zu spawnen.
  6. StarCrack: Eine Windows Binary muss mit ghidra und angr reverse-engineered werden.

Prüfung, Benotung[Bearbeiten | Quelltext bearbeiten]

Es gab zwei Teilprüfungen über jeweils die Hälfte des Vorlesungsstoffs mit jeweils 25 Punkten. Der Übungsteil floss mit 50 Punkten in die Note ein. Die Prüfungen waren angemessen schwer, die Benotung fair.

Dauer der Zeugnisausstellung[Bearbeiten | Quelltext bearbeiten]

Semester Letzte Leistung Zeugnis
2024S 17.06.2024 05.07.2024 18 Tage

Zeitaufwand[Bearbeiten | Quelltext bearbeiten]

2024S[Bearbeiten | Quelltext bearbeiten]

Ich habe versucht so gut es geht jegliche Arbeit für die LV aufzuzeichnen. Diese sind natürlich nicht minutengenau und haben einen gewissen Fehler, den ich mal auf maximal ±10% schätzen würde. Um diese Zahlen besser interpretieren zu können sollte ich vielleicht dazusagen, dass ich Informatik-HTL gegangen bin und dass mir generell (auch in der Schule schon) lernen leichtfällt. Außerdem hab ich einen guten Security Background und kannte daher viele Inhalte der LV schon. Das Ergebnis sieht folgendermaßen aus:

  • Note: 1
  • Zeitaufwand (h): 59
  • Stunden/ECTS: 9,8

Unterlagen[Bearbeiten | Quelltext bearbeiten]

noch offen

Tipps[Bearbeiten | Quelltext bearbeiten]

noch offen

Highlights / Lob[Bearbeiten | Quelltext bearbeiten]

Die LV ist wirklich hervorragend organisiert und inhaltlich sehr spannend. Vorallem die Übungen im CTF Stil haben wirklich Spaß gemacht. Das LV-Team ist auch außerordentlich kompetent und kennt sich hervorragend mit den Inhalten aus. Alles in allem kann ich die LV mehr als nur empfehlen.

Verbesserungsvorschläge / Kritik[Bearbeiten | Quelltext bearbeiten]

noch offen