Software and System Security 1

wv.sws1-en.p, 28 Lektionen in HS2025

Lektionen (alle vorbei)

Und 16 weitere. Alle im Stundenplan

Modulbeschreibung 19HS

In diesem Modul lernen Sie, wie man sichere Software und Systeme entwickelt. Dazu werden verschiedene Methoden und Tools wie z.B. Security Requirements Engineering, Threat Modeling, Security Design & Controls, Secure Coding und Penetration Testing eingesetzt, die im Modul alle umfassend behandelt werden.

ECTS
4
Institut
T InIT
Verantwortung
Rennhard, Marc
Sprache
( ) Deutsch (X) Englisch

Modulinhalte

Meldungen über grössere Datenlecks oder andere IT-Sicherheitsvorfälle erreichen uns fast täglich. Die Ursache sind meist Schwachstellen in Software und Systemen und der Hauptgrund, warum wir heute so viele Sicherheitsschwachstellen haben, liegt daran, dass viele Softwareingenieure weder wissen, wie man sichere IT Systeme entwickelt, noch haben sie nennenswerte Kenntnisse realer Bedrohungen und Attacken gegen solche Systeme. Viele Softwareingenieure sind zudem der Ansicht, dass es für das Entwickeln sicherer Software reicht, wenn man die Programmiersprachen und Frameworks kennt, wenn man gutes Softwaredesign versteht und wenn man agile Entwicklungsprozesse sinnvoll einsetzt. Diese Denkweise ist allerdings komplett falsch: Die Sicherheit von Software entsteht nicht einfach von selbst. Stattdessen muss man sich aktiv und während des ganzen Software-Entwicklungsprozesses darum kümmern. Dies bedingt zusätzliche Skills, die gelernt und beherrscht werden müssen. In diesem Modul werden Sie lernen, wie man sichere Software und Systeme entwickelt, wobei sämtliche Phasen des Entwicklungsprozesses relevant sind. Wenn Sie z.B. Anforderungen definieren, dann werden Sie lernen sich zu fragen «was kann denn möglicherweise schieflaufen und wie schlimm könnte dies sein?». Basierend auf den dabei definierten Sicherheitsanforderungen werden Sie dann lernen, wie man sichere Software konkret konzipiert und implementiert, so dass diese resistent gegen Cyberattacken ist. Ebenfalls werden Sie einige Hacking Skills lernen, denn wenn Sie ein sicherheitsbewusster Softwareingenieur sein möchten, müssen Sie wissen, wie Angreifer vorgehen. Dazu gehört auch, dass Sie lernen, einen Penetration Test der eigenen Software oder der Software von Dritten durchzuführen. Dieses Modul ist sehr empfehlenswert für alle, die sich im Berufsleben im Bereich Software Engineering betätigen möchten oder die sich ganz generell für Informationssicherheit interessieren. Das Nachfolgemodul, Software and System Security 2, vertieft einige Themen aus diesem Modul und führt zudem neue Themen ein. Wir empfehlen, dass Sie beide Module absolvieren, es ist aber auch möglich, nur das erste Modul für sich alleine zu absolvieren. Inhaltlich werden folgende Themen abgedeckt, in Theorie und Anwendung: Sicherer Softwareentwicklungsprozess Einführung in die Software-Sicherheit Der Secure Development Lifecycle Fundamental Security Principles Security Requirements Engineering und Threat Modeling Security Risk Analysis Security Testing Security Testing von Web Applikationen Security Testing Tools: Static Code Analysis und Schwachstellenscanner Sichere Softwareentwicklung Typische, sicherheitsrelevante Programmierfehler und wie man diese ausnutzen kann (Buffer Overflows, Probleme mit Inputvalidierung, Race Conditions,...) Java Security Libraries für kryptografische Operationen und sichere Kommunikation Sichere Entwicklung von traditionellen (laufen primär server-seitig und liefern komplette HTML-Seiten) und modernen (Single Page Applikationen mit REST APIs im Backend) Webapplikationen (Authentisierung, Access Control, Sicherer Datenbankzugriff, Input-Validierung, Session-Handling, JSON Web Tokens, Verhindern von Schwachstellen wie XSS und CSRF,...) Der Theorieteil (Vorlesungsteil) wird im Selbststudium mittels vorab produzierter Lernvideos (Screencasts) erarbeitet. Die Videos enthalten integrierte Lernkontrollfragen, so dass Sie unmittelbar Feedback erhalten. Das Praktikum findet vor Ort im Klassenzimmer statt. Im Praktikum werden praxisbezogene Problemstellungen zu den Hauptthemen der Vorlesung bearbeitet. Ebenfalls werden sie als Teil des Praktikums während des ganzen Semesters mehrere Hacking-Challenges aus Sicht eines Angreifers bearbeiten, um Ihre Penetration Testing Skills fortlaufend zu verbessern.

Voraussetzungen

Das Modul IT-Sicherheit (Grundstudium) muss absolviert worden sein.

Modulgeschichte

  • Version 6.0, gültig ab 01.08.2022

    • Modulinhalte: Der Theorieteil (Vorlesungsteil) wird im Selbststudium mittels vorab produzierter… statt Secure development of traditional (run mostly server-side and serve full HTML pages) and…

Versionen

  • 19HSt.BA.WV.SWS1-EN.19HS

Verwandt