Veranstaltung an der THM: Secure Coding – SS2022 – Aufgabe 1 / 3

Arbeiten Sie sich autodidaktisch in die Struktur und Funktionsweise einer REST-API ein. Entwickeln Sie dazu eine REST-API (Representational State Transfer API) in einer beliebiger Programmiersprache, die über mindestens folgende Funktionalität verfügt:

– per POST-Request einen Kundendatensatz annimmt und in einer Datenbank mit nachfolgenden Parametern hinterlegt: customerID, firstname, lastname, email

– die E-Mail-Adresse eines Nutzers per GET-Request über den Parameter customerID wieder ausgeben kann

– es soll möglich sein, Datensätze per entsprechendem Request wieder zu löschen.

– über eine beliebige Art der Zugriffskontrolle (Passwort, Token, OAuth, o.ä.) verfügt, sodass nur autorisierte API-Nutzer in der Lage sind, Datensätze wieder zu löschen

Dabei spielt es keine Rolle, ob man die REST-API und die Anwendung selbst per C hardware-nah programmiert (wenn auch nicht sinnvoll!) oder ob man die API mit einem Python-Framework kurz und schlank umsetzt.

Die Abgabe der Aufgabe bitte ausschließlich an meine E-Mail-Adresse der THM und zudem als verschlüsselter Anhang, da es ansonsten öfters Probleme mit Viren-Scanner gibt:

tar cz secure-coding-abgabe-1/ | openssl aes-256-cbc -pbkdf2 -e > vorname.nachname.matrikelnummer.secure-coding-abgabe-1.tar.gz.enc

Veranstaltung an der THM: Secure Coding – SS2022 – Termine, Belegung und Ablauf

Secure Coding wird in den Kalenderwochen  31 und 32 statt finden, also die ersten beiden Wochen im August. Diese Veranstaltung war vom Konzept ohnehin schon immer eine reine Online-Veranstaltung ohne jede Präsens, d.h. es gibt auch keine typische Klausur sondern ich bewerte die praktische Arbeit.

Es gibt drei Aufgaben:

(1) Ihr müsst eine sehr kleine REST-API schreiben.

(2) Ihr müsst eure eigene API auf die OWASP Top 10 prüfen und eine sehr kurze schriftliche Ausarbeitung dazu verfassen.

(3) Ihr erhaltet Zugang zu einer verwundbaren REST-API (GIT über OpenVPN) und müsst die existierenden Schwachstellen identifizieren und beheben. Dabei könnt ihr als Programmiersprache auswählen zwischen PHP, Java, Python, Perl, Go, Ruby und Node.js. Hierzu nutze ich als technische Ressource den „Secure Coding“-Kurs auf binsec-academy.com. Alle Accounts werden von mir dort später selbst angelegt und die binsec academy GmbH stellt die technischen Ressourcen natürlich kostenlos zur Verfügung – ich bin an der Unternehmensgruppe beteiligt.

Es zeigt sich immer wieder, dass sich Teilnehmer mit geringen oder schlechten Programmier-Kenntnissen sehr schwer tun. Wer also mit Programmierung auf Kriegsfuß steht, sollte von diesem Modul besser absehen oder eine steile Lernkurve einplanen! Ich gebe keine allgemeine Programmierhilfe.

Die Aufgaben 1 und 2 werde ich noch im Juli veröffentlichen, sodass daran vorher gearbeitet werden kann. Zur finalen Notenbewertung ziehe ich primär die Anzahl der gefundenen und geschlossenen Schwachstellen im Code aus der 3. Aufgabe heran.

Ich lege stets eine gewisse Hürde auf, um zugelassen zu werden: Ihr müsst mir ein Code-Snippet von einer der oben genannten Programmiersprachen zusenden (per E-Mail an patrick.sauer@mnd.thm.de), welche eine der OWASP Top 10 Schwachstellen enthält und einen korrekten Vorschlag zur Behebung geben. Das ganze bitte zwingend aes-verschlüsselt über OpenSSL mit dem Passwort 123456:

tar cz secure-coding-abgabe-zulassung/ | openssl aes-256-cbc -pbkdf2 -e > vorname.nachname.matrikelnummer.secure-coding-abgabe-zulassung.tar.gz.enc

zum Testen der Entschlüsselung: cat vorname.nachname.matrikelnummer.secure-coding-abgabe-zulassung.tar.gz.enc | openssl aes-256-cbc -pbkdf2 -d | tar xzv

In der Regel gibt es genug Plätze, ansonsten gilt first come, first serve.

WPF Penetration Testing als Online-Kurs an der Hochschule Darmstadt ab WS17/18

In den letzten beiden Semestern wurde das Wahlpflichtfach Penetration Testing an der Hochschule Darmstadt als reguläre Präsenzveranstaltung von uns angeboten. Nachdem Dominik Sauer im WS 2017/18 die Lehrveranstaltung „Internet-Sicherheit“ und ich „IT-Sicherheitsmanagement und Compliance“ halte, wird es keine Präsenzveranstaltung für „Penetration Testing“ geben. Stattdessen werden wir im Rahmen der Zusammenarbeit mit der binsec GmbH die gesamte Veranstaltung als Online-Kurs über binsec-academy.com anbieten, inklusive ausführlichen Unterlagen und dem bisher bekannten Pentest-Labor.

Diese Veranstaltung ist insbesondere für Studenten geeignet, die gerne Inhalte autodidaktisch ohne körperliche Anwesenheit in einer Präsenzveranstaltung lernen. Bisher ist geplant, dass diese Lehrveranstaltung abwechselnd im Wintersemester als Online-Kurs und im Sommersemester als reguläre Vorlesung angeboten wird. Die Prüfungsform wird bei beiden Veranstaltunsmodi weiterhin Hausarbeit (ein Pentest-Bericht) sowie Klausur (50% Multiple Choice, 50% Freitextfragen) sein.

Der dümmste Täuschungsversuch

Überrascht. Schockiert. Entsetzt: Wir haben im WPF Penetration Testing an der HDA einen besonders dreisten Täuschungsversuch erlebt. Der Abschlussbericht für das Praktikum wurde 1:1 von einem Team des Vorjahres kopiert. Also gut, die Namen wurden geändert und Bilder entfernt. Wow. Design ändern? Texte ändern? Wohl zu aufwendig.

Ich weiß ja nicht, wie aktuell in der Schule und im Studium kopiert und geschummelt wird, aber offensichtlich scheint die Kreativität bei manchen Studenten doch deutlich nachgelassen zu haben. Also wir haben – ich natürlich nicht … – damals die Werke anderer als „Vorlage“ genommen: Die Texte umformuliert. Vielleicht um 1-2 andere Aspekte ergänzt oder besonders kreativ – etwas falsches hinzugefügt. Und insbesondere haben wir nicht ganze Word-Designs von anderen übernommen. Selbst Guttenberg hat seine Doktorarbeit nicht exakt 1:1 von jemand anderem kopiert.

Sorry, echt, aber eine 5.0 und durchgefallen reicht dafür gar nicht. Studenten, die sich durch besonders dumme Täuschungsversuche auszeichnen, sollten einen besonderen Darwin Award für Plagiate bekommen…