Secure Coding findet in den Kalenderwochen 31 und 32 statt, also in den ersten beiden Wochen im August. Von der Konzeption her war diese Lehrveranstaltung immer eine reine Online-Veranstaltung ohne jede Präsenz, das heißt, es gibt keine klassische Klausur, sondern ich bewerte die praktischen Arbeiten.
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 überprüfen und dazu ein sehr kurzes Paper schreiben.
(3) Ihr erhaltet Zugriff auf eine verwundbare REST-API (GIT über OpenVPN) und müsst die vorhandenen Schwachstellen identifizieren und beheben. Als Programmiersprache könnt ihr zwischen PHP, Java, Python, Perl, Go, Ruby und Node.js wählen. Hierfür nutze ich den Kurs "Secure Coding" auf binsec-academy.com als technische Ressource. Die Benutzerkonten werde ich dort später selbst anlegen, und die binsec academy GmbH stellt die technischen Ressourcen selbstverständlich kostenfrei bereit - ich bin Gesellschafter der Unternehmensgruppe.
Es zeigt sich immer wieder, dass Teilnehmer mit wenig oder schlechten Programmierkenntnissen es sehr schwer haben. Wer also mit der Programmierung auf Kriegsfuß steht, sollte von diesem Modul besser Abstand nehmen oder eine steile Lernkurve einplanen! Allgemeine Programmierhilfe gebe ich nicht.
Aufgabe 1 und 2 werde ich im Juli veröffentlichen, damit vorab daran gearbeitet werden kann. Für die abschließende Notenbewertung nutze ich primär die Anzahl der identifizierten und geschlossenen Schwachstellen im Code aus der 3. Aufgabe.
Für die Zulassung lege ich immer eine gewisse Hürde auf: Ihr müsst mir ein Code-Snippet in einer der oben genannten Programmiersprachen schicken (per E-Mail an patrick.sauer@mnd.thm.de), das einen Bezug zu einem der OWASP Top 10 hat, eine Schwachstelle enthält und einen richtigen Vorschlag zu deren Behebung liefert. Das Ganze muss via OpenSSL mit dem Passwort 123456 aes-verschlüsselt werden:
tar cz secure-coding-delivery-approval/ | openssl aes-256-cbc -pbkdf2 -e > first name.last name.matriculation number.secure-coding-gabe-zunahme.tar.gz.enc
zum Testen der Entschlüsselung: cat firstname.lastname.matrikelnummer.secure-coding-gabe-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.