Lieber Teilnehmer, liebe Teilnehmerin,
zuallererst möchten wir Sie in unserem Online-Kurs „Secure Coding“ willkommen heißen. Bevor Sie jetzt Ihre Finger spreizen und sich motiviert an die Arbeit machen, möchten wir Ihnen gerne noch ein paar Worte über diesen Kurs mitgeben.
Als Anwendungsentwickler/in stellen Sie sich implizit der Herausforderung, Ihre Software vor böswilligen Hackern zu schützen. Um Sie zum Kampf zu rüsten, lassen wir Sie in „Secure Coding“ eine Zahlungsanwendung für Kreditkartentransaktionen exemplarisch auf Schwachstellen hin untersuchen und Ihre Findings in deren Programmcode beheben. Dazu erhalten Sie Zugriff auf eine virtuelle Laborumgebung, welche die Testumgebung des fiktiven Unternehmens Dubius Payment Ltd. darstellt.
Das virtuelle Labor können Sie über unseren OpenVPN-Server erreichen. Hierzu müssen Sie im ersten Schritt Ihr Labor-Startdatum in Ihrem MyPortal terminieren und sich zwischen PHP, Java, Python, Perl, Go, Ruby und Node.js als Programmiersprache entscheiden:
Sobald Ihr persönliches Übungslabor vollständig erstellt worden ist, können Sie Ihre VPN-Konfiguration in Ihrem MyPortal herunterladen und sich über den Befehl openvpn
Nach erfolgreicher Herstellung einer VPN-Verbindung haben Sie über GitBucket (http://git.dubius-payment.com) Zugriff auf den Source-Code des sogenannten Payment-Gateways. Mit Ihren Zugangsdaten (Benutzername: cto und Passwort: zeibaepohWei3aw) können Sie den Source-Code auschecken, Änderungen vornehmen und auf dem Server pushen. Darüber hinaus können Sie in Ihrem MyPortal Funktionstests und Schwachstellenscans triggern, welche Ihren letzten Stand analysieren und auswerten. Ehe Sie Änderungen am Source-Code vornehmen, empfehlen wir Ihnen jedoch eine allererste Codeüberprüfung auszulösen, um alle Tabellen mit den Anfangswerten zu initialisieren:
Beachten Sie bei der Testausführung bitte, dass ein Testdurchlauf bis zu fünf Minuten dauern kann. Nicht nur in Ihrem MyPortal werden Ihre Testergebnisse angezeigt, sondern Sie können Ihre Änderungen auch auf dem Deployment-Server (http://api.dubius-payment.com) in Augenschein nehmen. Dieser wird bei jedem Testdurchlauf neu initialisiert. Selbstverständlich können Sie das Payment-Gateway auch bei sich lokal aufsetzen - nur können wir die lokale Installation technisch nicht unterstützen. Damit Sie einfach zwischen Ihren Git Commits hin und her wechseln können, wird von uns mit jedem Build ein Tag in Form von build/
Grundsätzlich unterscheidet das Payment-Gateway zwischen zwei Benutzerrollen, den Administratoren und den Merchants. Während Administratoren die Benutzer verwalten, können Merchants Kreditkartenzahlungen ihrer Kunden über die API abwickeln. Die jeweiligen API-Dokumentationen finden Sie unter http://doc.dubius-payment.com/merchant/ und http://doc.dubius-payment.com/admin/. Hierbei gilt anzumerken, dass die API-Dokumentation der Merchants öffentlich erreichbar ist, wohingegen die Abfrage der Admin-API-Doku eine Benutzerauthentifizierung erfordert (Benutzername: admin und Passwort: admin1).
Im Allgemeinen haben wir jedem IT-System im Übungslabor eine IPv4-Adresse aus dem privaten IPv4-Netz 10.0.0.0/8 zugewiesen, sodass dieses Netz über unseren VPN-Server geroutet wird. Sollten Sie in Ihrem Arbeitsnetzwerk ebenfalls IPv4-Adressen aus dem o. g. Netzbereich beziehen, müssen Sie eventuell für eine reibungslose Funktionsweise „more specific rules“ anlegen.
Bekanntermaßen festigt sich selbst erarbeitetes Wissen durch das Sammeln von praktischen Erfahrungen schneller und tiefer als bei bloßer Nutzung einer Lernvorlage. Aus diesem Grund stellen wir Ihnen das grundlegende Handwerkszeug in unseren Kurskapiteln und Downloads bereit, verweisen aber bei tieferem Interesse auf externe Standarddokumente oder -veröffentlichungen im Internet. Für die praktische Umsetzung können Sie einen Editor bzw. eine IDE Ihrer Wahl verwenden und benötigen darüber hinaus - wie bereits angedeutet - nur die Open-Source-Tools „OpenVPN“ und „Git“.
Damit Sie sich auf Ihrer Suche nach Schwachstellen nicht die Zähne ausbeißen, verweisen wir gerne einmal auf unser Hilfesystem. Über dieses können Sie Tipps zu den einzelnen Schwachstellen freischalten, welche Ihnen einen Anhaltspunkt zum Fundort verraten. Spoiler verderben jedoch nicht nur den Spaß in Film und Fernsehen, sondern schmälern auch das Erfolgserlebnis, eine Schwachstelle als solche erkannt zu haben. Aus diesem Grund können Sie nur eine limitierte Anzahl an Tipps nutzen, da unser Hilfesystem an den Academy Coin gebunden ist: Für jeden Joker, den Sie ziehen möchten, müssen Academy Coins eingelöst werden. Zu diesem Zweck haben wir Ihnen ein Anfangsguthaben von 6 Academy Coins eingerichtet, welches sich über das Lösen unserer Multiple-Choice-Fragen in den Kapiteln weiter erhöhen lässt. Zudem wird ein Tipp automatisch freigeschaltet, wenn die dazugehörige Schwachstelle erfolgreich behoben wurde.
Nach Ihrem ersten erfolgreichen Fix einer Schwachstelle, die sich in den Programmcode eingeschlichen hat, erhalten Sie von uns eine Teilnahmebestätigung. Hierbei gilt anzumerken, dass viele Wege nach Rom führen. So können Sie den Weg bzw. die Technik, mit welcher Sie eine identifizierte Schwachstelle beheben möchten, frei wählen - lediglich die Funktionsweise der Anwendung muss sichergestellt sein. Dahingehend werden Ihre behobenen Schwachstellen von uns nur gewertet, wenn in Ihrem letzten Commit alle Funktionstests erfolgreich durchgelaufen sind. Eine Liste von verbreiteten Libraries, die Sie für Ihre Aufgabe verwenden können, haben wir für Sie zur Einsicht auf unserer Lernplattform bereitgestellt. Es können keine weiteren Libraries installiert werden. Für Ihre Kür werden Sie mit unserem BACSCP-Zertifikat (Binsec Academy Certified Secure Coding Professional) belohnt, und zwar wenn Sie mindestens acht aller von uns vorgesehenen Schwachstellen behoben haben.
Wir wünschen Ihnen viel Spaß und Erfolg dabei. :)
Letzte Änderung: 2022-12-15
Die binsec academy GmbH ist der europäische Anbieter für Online Security Trainings mit virtuellen Labor-Umgebungen. Kernbestandteil aller Security Trainings ist die Vermittlung von Praxis, Praxis und nochmals Praxis. Im Wiki finden Sie hier die öffentlichen und frei verfügbaren Kurs-Materialien. Die Theorie in die Praxis umsetzen, können sie auf binsec-academy.com.