Secure Software Lab

Thomas Elsensohn, Patrick Lehmann · HSR (HSR University of Applied Sciences Rapperswil) · 2021

Aufgabenstellung / Zielsetzung In dieser Arbeit wurde ein Prototyp einer Lernplattform erstellt. Diese Lernplattform stellt eine webbasierte, auf Desktop Geräte optimierte Lernumgebung dar, in der Benutzer mehrere Kurse belegen können. Jeder dieser Kurse soll mindestens eine Aufgabe enthalten, die wiederum externe Ressourcen beinhalten kann und in einer separaten, auf Docker basierten virtuellen Umgebung verfügbar ist. Der Benutzer kann Lösungen zu Aufgaben einreichen und erhält vom System ein Feedback. Um die Vertraulichkeit der Daten zu gewährleisten, besteht die Lernplattform aus mehreren Sicherheitszonen. Zusätzliche Use Cases wurden für die Weiterentwicklung der Lernplattform definiert. Vorgehen / Technologien Spezifische Lösungen für Lernplattformen für sichere Softwareentwicklung (Hacking Lab, OWASP SKF, Eigenentwicklung) wurden analysiert und gegenübergestellt. Die Entscheidung fiel auf eine Neuentwicklung, da man flexibler bei der Wahl von Technologien und der Erweiterung von neuen Funktionen ist. Allgemeine E-Lernplattformen wie Moodle wurden nicht betrachtet, da diese das Einbetten von virtuellen Umgebungen in den Aufgaben nicht unterstützen. Die Architektur der Lernplattform besteht aus einem Frontend, einer Web API, einer Datenbank, einem Content Server als Docker Host für virtuelle Umgebungen, einem Identity Provider (IDP) und einem Reverse Proxy. Durch die strikte Trennung vom Frontend, das mit React realisiert und der Web API, die mit .NET Core umgesetzt wurde, kann das Frontend durch eine Mobile App ausgetauscht oder erweitert werden. Die Web API, welche in C# geschrieben ist, kommuniziert mit einer PostgreSQL Datenbank über das Entity Framework Core. Ausserdem steuert die Web API den Docker Host des Content Servers, um Dockerumgebungen für die Aufgaben zur Verfügung zu stellen. Die Authentisierung wurde mit dem Keycloak IDP realisiert. Der Reverse Proxy Traefik verbindet das Frontend, Web API, Keycloak und die virtuellen Umgebungen. Für die Kerntechnologien der Lernplattform wurde eine ausführliche Architekturentscheidung erstellt. Ergebnisse und Anwendungsmöglichkeiten Das Ergebnis ist eine webbasierte Lernplattform, in der sich Benutzer einloggen, Übungen lösen und Ergebnisse einreichen können. Jeder Kurs kann mehrere Aufgaben haben, die wiederum auch virtuelle Umgebungen beinhalten kann. Der Benutzer kann Lösungen einreichen, die dann automatisiert vom System geprüft werden. Die Erstellung und Bearbeitung der Kurse und Aufgaben erfolgt über die direkten Anpassungen auf der Datenbank. Keycloak wird über ein Import Script konfiguriert und ist für die Erstellung der Benutzer sowie für die Verteilung der Benutzerrollen zuständig. Die Lernplattform wird über die dockercompose Datei bereitgestellt.

Read the paper · More papers on PaperTik