Secure Development Training für Entwickler
Online-Training mit eigener LAB-Umgebung für praktische Übungen.
Kundenfeedback
Kapitelübersicht: Secure Development Training für Entwickler
Intro & Let’s hack
Einführung & Grundlagen: Wie läuft das Secure Development Training ab. Warum ist Sicherheit im gesamten Software-Development-Lifecycle so wichtig.
Dazu gleich etwas Hacking zum warm werden:
LAB-Übung: zu schlechtem Exception-Handling und Password-Cracking
Die Übung zeigt, welche Auswirkungen selbst unscheinbare Sicherheitslücken haben können.
Intro & Let’s hack
Grundlagen
Klärung der wichtigsten Secure Development Grundbegriffe:
- Die Schutzziele in der CIA-Triade: Confidentiality (Vertraulichkeit), Integrity (Integrität) und Availability (Verfügbarkeit)
- Die Security-Prinzipien im Secure Development, um diese CIA-Schutzziele zu erreichen: Traue keinem Input, halte Security einfach, minimiere die Angriffsfläche, setze „Defense in Depth“ um, benutze minimale Rechte, sei „Secure by Default“ und löse Security-Probleme immer gründlich
Grundlagen
Implementierungsphase
- Authentication: Welche Fehler werden bei der Authentifizierung oft gemacht und mit welchen einfachen Secure Development Mitteln können Entwickler hier die Sicherheit deutlich erhöhen
- Authorization (Zugriffskontrolle): Was ist der Unterschied zu Authentifizierung
LAB-Übung: Zugriff auf Daten über Direct-Object-Reference. Wie können Entwickler solche Schwachstellen verhindern und wie sieht eine angemessene Zugriffskontrolle aus - Session-Management: Welche Bedrohungen existieren rund um das Session-Management
LAB-Übung: Übernahme einer Session durch Session-Fixation. Wie kann das Session-Management sicher gestaltet werden - Input-Validation, Output-Sanitization und Injection: Was ist eine Injection und welche Formen gibt es
LAB-Übung: Datenmanipulation und Löschung mittels SQL-Injection. Mit welchen Secure Development Mitteln lassen sich Injections verhindern - Cross-Site-Scripting: Welche Arten von Cross-Site-Scripting gibt es
LAB-Übung: zu persistentem Cross-Site-Scripting. Welche Abwehrmaßnahmen sind wirksam. - Kryptographie & Secrets-Management: Welche Arten von Secrets gibt es und welche Formen nehmen sie an (“at rest”, „in transit“ und „in memory“)
LAB-Übung: Systemzugriff über File-Inclusion. Was ist der Unterschied zwischen Verschlüsselung und Enkodierung
LAB-Übung: Dekodierung eines Passwortes in einer Config-Datei. Tipps zum Umgang mit Secrets. - Remote-Code-Execution:
LAB-Übung: Webshell upload. Warum haben RCE-Schwachstellen derart katastrophale Auswirkungen. Wie kann der “Defence in Depth“-Ansatz im Secure Development Lifecycle solche Auswirkungen verringern - Exceptions & Error-Handling: Wie nutzen Hacker Fehlermeldungen und Fehlerroutinen aus. Wie sollte sichere Fehlerbehandlung aussehen
- Application-Logging: Warum ist eine gute Logging-Strategie elementar und was sollten Entwickler besser nicht loggen
LAB-Übung: Vertrauliche Daten in Logdateien. Tipps, wie man zu gutem Logging kommt - Secure-Networking und Infrastruktur: Hacker greifen Systeme an, nicht Software. Welche Schwachstellen gibt es in Übertragungsprotokollen und warum sind Hardening und Patching nicht nur die Aufgabe von Administratoren, sondern auch von Entwicklern.
Implementierungsphase
Validierungsphase
- Code-Reviews: Welche Security-Best-Practices gibt es und wann sollte ein Source-Code-Review durchgeführt werden
- Automatisierte Codeanalysen: Welchen Nutzen haben automatisierte Codeanalysen und welche Module können analysiert werden
- Schwachstellen-Scans: Was bringen automatisierte Schwachstellen-Scans und wo sind deren Grenzen
- Penetrationstests: Warum sind Penetrationstests manchmal unerlässlich
Validierungsphase
Betriebsphase
- Code-Changes: Welche Auswirkungen haben Code-Change auf die Security. Welche Maßnahmen sollten ergriffen werden
- Konfiguration: Wie beeinflusst die Konfiguration die Security
- Patch-Management: Wer ist für das Patching von Systemen verantwortlich und bis wohin LAB-Übung: Ausnutzung einer weiteren RCE Schwachstelle durch eine veraltete Bibliothek
- Decommissioning: Welche Schritte sind zu tun, wenn ein System „End of Life“ ist
Betriebsphase
Die nächsten Schritte: So holen Sie das Beste aus Ihrem Cyber LAB heraus
Unsere Secure Development Schulung für Entwickler schafft die richtige Basis für sichere Anwendungsentwicklung: Product Manager, Application Owner, Software-Architekten und Entwickler verstehen, warum Secure Development elementar wichtig ist und welche Komponenten dafür benötigt werden.
Diese Security-Begeisterung muss dann aber auch richtig kanalisiert werden, damit Secure Development tatsächlich nachhaltig im Entwicklungsalltag ankommt.
Wie das geht? Hier finden Sie unseren bewährten Best-Practice-Ansatz, mit dem Sie Secure Development fest im Entwicklungsalltag verankern.