Kurzbeschreibung
Die Lehrveranstaltung vermittelt grundlegende Konzepte zur Gestaltung eines sicheren Softwareentwicklungsprozesses verteilter, web-basierter Systeme, beginnend beim Requirements Engineering und erstreckt sich bis zur Inbetriebnahme und Wartung.
Lehrform/SWS
4 SWS: Vorlesung 2 SWS; Seminar 2 SWS
Arbeitsaufwand
Gesamtaufwand 180 Stunden, davon
- 36h Vorlesung
- 36h Seminar
- 36h Projektarbeit
- 72h Selbststudium
Angestrebte Lernergebnisse
(WAS) Studierende können Sicherheitsgutachten über den gesamten Softwareentwicklungsprozess erstellen,
(WOMIT) indem sie
- grundlegende Kenntnisse zur Gestaltung eines sicheren Softwareentwicklungsprozesses für Webanwendungen und Web Services anwenden.
- Sicherheitsanforderungen identiziereren und ins Requirements Engineering integrieren
- Architekturen, Code, Testergebnisse und Überwachungsereignisse von verteilter, web-basierte Softwaresystemen manuell analysieren
- den sicheren Umgang mit automatischen Sicherheitsevaluationsstools wie SAST, DAST, SCA und Fuzzing beherrschen,
(WOZU) um später qualitativ hochwertige Sicherheitskonzepte sowie Sicherheitsbewertungen zu verfassen mit dem Ziel Entwickler, Architekten, Requirements Engineers und Testingenuiere bei der sicheren von Entwicklung von komplexen Softwaresytemen zu unterstützen.
Inhalt
- Secure Software Development Lifecycle
- Architectural Risk Analysis
- Softwaresicherheit
- Misuse Cases/Evil User Stories/ Abuse Cases
- Code Review
- DevSecOps
- SBOM
- DAST/SAST/SCA Tools
- Fuzzing
- Mobile Security
- Risiken in der Software-Supply-Chain
- Social Engineering
- Semantic Gap Angriffe
- OWASP Top 10
- Erstellung Sicherheitsbewertungsberichte und Sicherheitskonzepte
- Compliance und gesetzliche Anforderungen
Medienformen
- Beamer-gestützte Vorlesungen
- Live-Coding und Live-Hacking
Literatur
- Gary McGraw, Software Security, Addison-Wesley, 2007
- John Viega und Gary McGraw, Building Secure Software, Addison-Wesley, 2002
- Greag Hoglund und Gary McGraw, Exploiting Software, Addison-Wesley, 2004
- Hoai Viet Nguyen, Authentication in Ultra Large-Scale REST-based Systems, Disseration, Universität Hamburg, 2020
Geförderter Kompetenzerwerb
Das Modul zahlt auf folgende Handlungsfelder und Kompetenzbereiche ein. Eine ausführliche Beschreibung der konkreten Komptenzen finden Sie weiter unten.
Designing for User Experiences
Developing Interactive and Distributed Systems
Exploring Advanced Interactive Media
Enhancing Interactions on Different Scales
Developing Interactive and Distributed Systems
-
Technologie
-
Kennen State-of-the-art Technologie zur Umsetzung von software-basierten Anwendungen (insb. in den Bereichen Web, Mobile, IoT, AR/VR, AI), können konkurrierende alternative Technologien auswählen und evaluieren, sich neue technologische Möglichkeiten erschließen, diese bewerten, nutzen, und integrieren sowie zukunftsorientiert neue Möglichkeiten screenen.
-
Wissen wie Kommunikation zwischen Computern realisiert wird (bspw. req/res, pub/sub und Protokolle wie HTTP, MQTT).
-
Wissen was ein Computer ist und wie Software darauf ausgeführt wird.
-
Entwurf
-
Können abstrahieren, logisch denken und komplexe Zusammenhänge verstehen.
-
Können Aspekte realweltlicher Probleme zu identifizieren, die für eine informatische Modellierung geeignet sind, algorithmische Lösungen für diese (Teil-)Probleme bewerten und selbst so zu entwickeln, dass diese Lösungen mit einem Computer operationalisiert werden können.
-
Konzepte (bspw. Paradigmen, Architekturen, Pattern) für die web-basierte Verteilung von Komponenten (bspw. Frontend/Clients/Apps, Backend/Server/Cloud) für verteilte interaktive Anwendungen kennen und umsetzen können.
-
Implementierung
-
Kennen Entwicklungsumgebungen, Tools und entwicklungsnahe Prozesse und diese praktisch nutzen (insb. IDE, Compiler, Linker, Libraries, Debugging, Unit-Testing, Repositories für eigenen Code / git, Build Tools, Paketmanager).
-
Können digitale Produkte und verschiedene Software-Artefakte zur Evaluation und zur Nutzung auf typischen Distributionswegen (bspw. Clickdummy, Web-Deployment, App Store) für verschiedene Zielgruppen bereit stellen (lauffähig, sicher und gebrauchstauglich).
Driving Creation Process
-
Innovation
-
Management
-
Kommunikation
-
Können Ideen vermitteln, sich über Anforderungen verständigen, Feedback einholen und mit verschiedenen Interessengruppen zu interagieren und verhandeln.
-
Sind in der Lage Arbeits- und Forschungsergebnisse klar und verständlich in aussagekräftigen, zielgruppengerechten Berichten, Präsentationen o.Ä. zu kommunizieren.
Enhancing Interactions on Different Scales
-
Analyse, Studien und Experimente
-
Situated Interaction
-
Haben ein tiefes Verständnis für die Bedürfnisse, Verhaltensweisen und Erwartungen der Benutzer:innen.
-
Können technologische Aspekte, die bei der Implementierung situierter Interaktion eine Rolle spielen, berücksichtigen, dies beinhaltet Kenntnisse über Sensortechnologien, Datenverarbeitung, maschinelles Lernen und die Integration von Software in physische Umgebungen.
-
Selbstlernen
-
Können wissenschaftlich Arbeiten und Schreiben.
-
Können sich selbstständig neue Wissens- und Kompetenzbereiche zu Methoden, Technologien oder Domänen erschließen.
In der linken Spalte sehen Sie, welche Kompetenzen für das Modul vorausgesetzt werden (hellgrauer Balken). In der rechten Spalte sehen Sie, welche Kompetenzen Sie mit dem Modul erwerben können (farbiger Balken). Die Kompetenzen sind in Handlungsfelder und Bereiche gegliedert.
Wenn Sie auf den grauen oder farbigen Balken klicken, gelangen Sie zu einer Liste von Modulen, die auf diese Kompetenz einzahlen. Hier finden die eine Übersicht über alle Kompetenzen und die Module, die auf diese einzahlen.