Tag 1
Verantwortungsvolle Kodierung mit GenAI
Was ist Sicherheit?
Bedrohung und Risiko
Arten von Cybersicherheitsbedrohungen – die CIA-Triade
Folgen von unsicherer Software
Was ist verantwortungsvolle KI?
Sicherheit und verantwortungsvolle KI in der Softwareentwicklung
Die OWASP Top Ten 2025
A01 – Fehlerhafte Zugriffskontrolle
· Grundlagen der Zugriffskontrolle
· Fallstudie – Fehler in der Authentifizierung auf der FIFA-Plattform während der Weltmeisterschaft 2026
· Verwirrter Stellvertreter
o Unsichere direkte Objektreferenz (IDOR)
o Pfaddurchlauf
o Lab – Unsichere direkte Objektreferenz
o Bewährte Vorgehensweisen bei der Pfaddurchquerung
o Labor – Experimente zur Pfaddurchquerung in GenAI
o Umgehung der Autorisierung durch benutzergesteuerte Schlüssel
o Fallstudie – Fernsteuerung von Nexx-Garagentoren und Alarmanlagen
o Labor – Horizontale Autorisierung
o Uneingeschränkter Datei-Upload
o Bewährte Verfahren
o Lab – Uneingeschränkter Datei-Upload
· Server-seitige Anfragefälschung (SSRF)
o Fallstudie – SSRF in Ivanti Connect Secure
A02 – Falsche Sicherheitskonfiguration
· Konfigurationsgrundsätze
· Bewährte Vorgehensweisen bei der Python-Konfiguration
o Flask konfigurieren
· Probleme bei der Konfiguration der Websicherheit
o Content Security Policy
o Fetch-Anweisungen
o Zulassungsliste für Quellen
o Strenges CSP: Verwendung von Nonces und Hashes
o Bewährte Verfahren im Bereich CSP
· Sicherheit von Cookies
o Cookie-Attribute
· Verwaltung von Geheimnissen
o Fest codierte Passwörter
o Bewährte Verfahren
o Labor – Fest codiertes Passwort
· XML-Entitäten
o DTD und die Entitäten
o Entitätserweiterung
o Angriff durch externe Entitäten (XXE)
- Einbindung von Dateien mit externen Entitäten
- Serverseitige Anfragefälschung unter Einbeziehung externer Entitäten
- Übung – Angriff durch eine externe Stelle
- XXE verhindern
- Übung – DTD verbieten
- Fallstudie – XXE-Sicherheitslücke in Ivanti-Produkten
- Labor – Experimente mit XXE in GenAI
Tag 2
Die OWASP Top Ten 2025
A03 – Störungen in der Software-Lieferkette
· Verwendung anfälliger Komponenten
· Bewertung der Umgebung
· Härtung
· Import nicht vertrauenswürdiger Funktionen
· Schädliche Pakete in Python
· Sicherheit in der Lieferkette und die Software-Stückliste (SBOM)
· Beispiele für SBOMs
· Fallstudie – Der Angriff auf die Lieferkette von Polyfill.io
· Schwachstellenmanagement
o Patch-Management
o Schwachstellenmanagement
o Schwachstellen-Datenbanken
o Labor – Aufspüren von Sicherheitslücken in Komponenten von Drittanbietern
o DevOps, der CI/CD-Build-Prozess und die Software-Composition-Analyse
o Überprüfung von Abhängigkeiten in Python
o Labor – Erkennung anfälliger Komponenten
· Sicherheit von durch KI generiertem Code
o Praktische Angriffe auf Tools zur Codegenerierung
o Abhängigkeitshalluzinationen durch generative KI
o Fallstudie – Eine Chronologie der Schwachstellen von GitHub Copilot (bis Mitte 2025)
o Fallstudie – Agentische Codierung und Codesicherheit (ab Mitte 2025)
A05 – Injektion
· Eingabevalidierung
o Grundsätze der Eingabevalidierung
o Sperrlisten und Zulassungslisten
o Fallstudie – Fehler bei der Denylist in „urllib.parse.urlparse()“
o Was ist zu überprüfen – die Angriffsfläche
o Wo soll die Validierung erfolgen – mehrschichtige Sicherheit
o Wann sollte eine Validierung erfolgen – Validierung vs. Transformationen
· SQL-Injection
o Grundlagen der SQL-Injection
o Übung – SQL-Injection
o Angriffstechniken
o Inhaltsbasierte blinde SQL-Injection
o Zeitbasierte „Blind“-SQL-Injection
o Bewährte Verfahren zum Schutz vor SQL-Injection
- Eingabevalidierung
- Parametrisierte Abfragen
- Übung – Verwendung von vorbereiteten Anweisungen
- Fallstudie – SQL-Injection-Angriff auf die Sicherheitssysteme eines US-Flughafens
· Code-Injektion
o Code-Injektion über input()
o Befehlsinjektion im Betriebssystem
- Übung – Befehlsinjektion
- Bewährte Verfahren zum Schutz vor OS-Befehlsinjektionen
- Vermeidung von Befehlsinjektionen durch den Einsatz geeigneter APIs
- Übung – Bewährte Vorgehensweisen bei der Befehlsinjektion
- Labor – Experimente zur Befehlsinjektion in GenAI
- Fallstudie – Shellshock
- Lab – Shellshock
- Fallstudie – Befehlsinjektion in Ivanti-Sicherheitsgeräte
· HTML-Injektion – Cross-Site-Scripting (XSS)
o Grundlagen zum Cross-Site-Scripting
o Arten von Cross-Site-Scripting
- Persistentes Cross-Site-Scripting
- Reflektiertes Cross-Site-Scripting
- Clientseitiges (DOM-basiertes) Cross-Site-Scripting
o Übung – Gespeichertes XSS
o Übung – Reflektiertes XSS
o Fallstudie – Von XSS zu RCE bei Teltonika-Routern
o Bewährte Verfahren zum Schutz vor XSS
- Sicherheitsgrundsätze – Escape-Zeichen
- Lab – XSS-Behebung / gespeicherte Schwachstelle
- Lab – XSS-Behebung / reflektiert
- Fallstudie – XSS-Schwachstellen in DrayTek-Vigor-Routern
Tag 3
Die OWASP Top Ten 2025
A06 – Unsichere Konstruktion
· Das STRIDE-Modell für Bedrohungen
· Sicherheitsprinzipien von Saltzer und Schroeder
o Wirtschaftlichkeit des Mechanismus
o Ausfallsichere Standardeinstellungen
o Abgeschlossene Mediation
o Offenes Design
o Trennung der Privilegien
o Prinzip der geringsten Berechtigungen
o Der am wenigsten verbreitete Mechanismus
o Psychologische Akzeptanz
· Clientseitige Sicherheit
o Frame-Sandboxing
- Cross-Frame-Scripting-Angriffe (XFS)
- Übung – Clickjacking
- Bewährte Verfahren zum Schutz vor Clickjacking
- Übung – Einsatz von CSP zur Verhinderung von Clickjacking
A07 – Fehler bei der Authentifizierung
· Authentifizierung
o Grundlagen der Authentifizierung
o Mehrfaktorauthentifizierung (MFA)
o Fallstudie – Der „InfinityGauntlet“-Angriff
· Passwortverwaltung
o Speichern von Kontopasswörtern
o Passwort während der Übertragung
o Labor – Reicht es aus, Passwörter lediglich zu hashen?
o Wörterbuchangriffe und Brute-Force-Angriffe
o Salzen
o Adaptive Hash-Funktionen zur Speicherung von Passwörtern
o Übung – Einsatz adaptiver Hash-Funktionen in Python
o Labor – Experimente mit adaptiven Hash-Funktionen in GenAI
· Passwortrichtlinie
o NIST-Anforderungen an Authentifikatoren für auswendig gelernte Geheimnisse
o Migration der Passwortdatenbank
A08 – Fehler bei der Software- und Datenintegrität
· Integrität der Unterressourcen
o JavaScript importieren
o Übung – JavaScript importieren
o Fallstudie – Der Datenverstoß bei British Airways
· Unsichere Deserialisierung
o Herausforderungen bei der Serialisierung und Deserialisierung
o Integrität – Deserialisierung nicht vertrauenswürdiger Datenströme
o Deserialisierung mit pickle
o Übung – Deserialisierung mit Pickle
o Fallstudie – Die Sicherheit der Lieferkette im Bereich des maschinellen Lernens
o Fallstudie – Die erste Welle von Angriffen auf die Lieferkette: RCE über „pickle“ (2022)
o Fallstudie – Kompromittierung des „Hugging Face Hub“-Repositorys
o Integrität – Bewährte Verfahren bei der Deserialisierung
A10 – Unsachgemäßer Umgang mit Ausnahmesituationen
· Grundsätze der Fehler- und Ausnahmebehandlung
· Fehlerbehandlung
o Rückgabe eines irreführenden Statuscodes
o Offenlegung von Informationen durch Fehlermeldungen
- Informationslecks über Fehlerseiten
- Labor – Informationsleck bei Fläschchen
- Fallstudie – Informationslecks durch Fehler in Apache Superset
· Ausnahmebehandlung
o Im „except“-Block. Und wie geht es nun weiter?
o Leer, außer Block
o Übung – Chaos bei der Ausnahmebehandlung
Einpacken
Grundsätze der sicheren Kodierung
· „Grundsätze der robusten Programmierung“ von Matt Bishop
Und was nun?
· Quellen zum Thema Softwaresicherheit und weiterführende Literatur
· Python-Ressourcen
· Generative KI – Ressourcen und weitere Hinweise.