Secure Coding (SEC)
1/2. Semester
5 ECTS | 4 SWS
Continuous Assessment (CA)
Inhalte
- Prinzipien von Secure Coding, Secure Software Development Lifecycle (SSDLC), Threat Modeling und Sicherheitsanforderungen.
- Überblick über typische Schwachstellen in C, C++, Java, Python, JavaScript u.a. (z. B. Pufferüberläufe, SQL-Injection, Cross-Site Scripting, Race Conditions).
- Programmiersprachen-spezifische Sicherheitspraktiken.
- Einsatz von statischer und dynamischer Codeanalyse, Sicherheits-Scanner, Linter, Unit-Tests zur Identifikation von Sicherheitsproblemen.
- Konkrete Umsetzung der Secure Design Prinzipien wie Least Privilege, Defense in Depth, Secure Defaults, Secure Error Handling und Logging.
- Hands-on-Übungen in verschiedenen Sprachen, sichere API-Nutzung, Umgang mit Libraries und Frameworks, sowie Abwehr typischer Exploit-Techniken.
- Einsatz von Large Language Models (LLMs) in der sicheren Softwareentwicklung
- Vorteile und Risiken von Large Language Models (LLMs)
Lernziele/Kompetenzen
Die Studierenden sind in der Lage,
- Prinzipien der sicheren Softwareentwicklung zu erklären und in der Praxis anzuwenden.
- Typische Sicherheitslücken in unterschiedlichen Programmiersprachen (C, C++, Java, Python, JavaScript) zu identifizieren, zu bewerten und zu schließen.
- Programmiersprachen-spezifische Secure Coding Techniken gezielt einzusetzen.
- Automatisierte Werkzeuge zur Sicherheitsanalyse von Code zu nutzen und deren Ergebnisse kritisch zu bewerten.
- Sichere Softwarearchitekturen und Design Patterns zu entwickeln und in eigenen Projekten umzusetzen.
- Praktische Sicherheitsmaßnahmen in der Softwareentwicklung eigenständig zu implementieren und Best Practices konsequent anzuwenden.
Literatur
- Kohnfelder, Loren: Designing Secure Software: A Guide for Developers, No Starch Press, 2021
- Deogun, Daniel; Johnsson, Dan Bergh; Sawano, Daniel: Secure By Design, Manning, 2019
- Seacord, Robert C.: Secure Coding in C and C++ 2nd Edition, Addison-Wesley, 2013
- Howard, Michael; LeBlanc, David: Writing Secure Code 2nd Edition, Microsoft Press, 2003
- Viega, John; McGraw, Gary: Building Secure Software: How to Avoid Security Problems the Right Way, Addison-Wesley, 2001
Dozentinnen / Dozenten
- Prof. Thomas Smits
- Prof. Dr. Sachar Paulus
Empfohlene Vorkenntnisse
-
Gute Programmierkenntnisse
-
Sicherheitstechnologien.
Die folgenden Kenntnisse sind erforderlich:
Daten zum Modul
| Semester |
1/2 |
| Unterrichtssprache |
Deutsch |
|
Häufigkeit
|
Wintersemester
|
| Kreditpunkte |
5 |
| Modulverantwortlich |
Prof. Dr. Sachar Paulus |
| Dauer |
1 Semester |
| Studienleistung |
Keine |
| Prüfungsvorleistung |
Keine |
| Prüfungsleistung |
Continuous Assessment (CA) |
Semesterwochenstunden
| Vorlesung |
2 SWS |
| Übung |
2 SWS |
| Summe |
4 SWS |
Arbeitsaufwand (work load)
| Vorlesung |
30 h |
| Labor |
30 h |
| Aufgaben |
30 h |
| Projekt |
60 h |
| Summe |
150 h |