Vielen Dank für die Zusendung Ihrer Anfrage! Eines unserer Teammitglieder wird Sie in Kürze kontaktieren.
Vielen Dank, dass Sie Ihre Buchung abgeschickt haben! Eines unserer Teammitglieder wird Sie in Kürze kontaktieren.
Schulungsübersicht
Tag 1
IT-Sicherheit und Secure Coding
- Natur der Sicherheit
- IT-sicherheitsrelevante Begriffe
- Definition von Risiko
- Unterschiedliche Aspekte der IT-Sicherheit
- Anforderungen unterschiedlicher Anwendungsbereiche
- IT-Sicherheit vs. Secure Coding
-
Von Schwachstellen zu Botnets und Cyberkriminalität
- Natur von Sicherheitslücken
- Gründe für die Schwierigkeit
- Vom infizierten Computer zu gezielten Angriffen
-
Klassifizierung von Sicherheitslücken
- Landwehr's Taxonomie
- Die Seven Pernicious Kingdoms (Sieben schädlichen Königreiche)
- OWASP Top Ten 2013
- Vergleich der OWASP Top Ten zwischen 2003 und 2013
Einführung in den Microsoft® Security Development Lifecycle (SDL)
- Tagesordnung
-
Anwendungen unter Angriff...
- Entwicklung der Cyberkriminalität
- Angriffe konzentrieren sich auf Anwendungen
- Die meisten Schwachstellen befinden sich in kleineren ISV-Anwendungen
-
Ursprünge des Microsoft SDL...
- Zeitleiste der Sicherheit bei Microsoft...
- Welche Anwendungen müssen dem SDL folgen?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Anforderungen vor dem SDL: Sicherheitsschulung
- Phase Eins: Anforderungen
- Phase Zwei: Entwurf
- Phase Drei: Implementierung
- Phase Vier: Überprüfung (Verification)
- Phase Fünf: Freigabe – Reaktionsplan
- Phase Fünf: Freigabe – Finale Sicherheitsüberprüfung
- Phase Fünf: Freigabe – Archivierung
- Erfordernis nach dem SDL: Reaktion
- SDL-Prozessleitfaden für LOB-Anwendungen (Line of Business)
- SDL-Leitfaden für agile Methoden
- Sichere Softwareentwicklung erfordert Prozessverbesserung
Prinzipien des sicheren Entwurfs
-
Angriffsfläche
- Reduzierung der Angriffsfläche
- Angriffsfläche – ein Beispiel
- Analyse der Angriffsfläche
- Reduzierung der Angriffsfläche – Beispiele
-
Privatsphäre (Privacy)
- Privatsphäre
- Verständnis von Anwendungsverhalten und -bedenken
-
Defense in Depth (Mehrschichtige Sicherheit)
- Kernprinzip des SDL: Defense in Depth
- Defense in Depth – Beispiel
-
Prinzip der geringsten Rechte (Least Privilege)
- Least Privilege – Beispiel
-
Sichere Standardvoreinstellungen (Secure Defaults)
- Secure Defaults – Beispiele
Prinzipien der sicheren Implementierung
- Tagesordnung
- Microsoft Security Development Lifecycle (SDL)
-
Grundlagen von Buffer Overflows
- Intel 80x86 Prozessoren – Hauptregister
- Der Speicheradressaufbau
- Der Funktionsaufrufmechanismus in C/C++ auf x86
- Die lokalen Variablen und der Stack-Fram
-
Stack-Überlauf
- Buffer Overflow auf dem Stack
- Übungen – Einführung
- Übung BOFIntro
- Übung BOFIntro – Ermittlung des Stapelaufbaus
- Übung BOFIntro – ein einfacher Exploit
-
Eingabevalidierung (Input Validation)
- Konzepte der Eingabevalidierung
-
Integer-Probleme
- Darstellung negativer Ganzzahlen
- Integer-Überlauf (Integer Overflow)
- Arithmetischer Überlauf – Raten Sie die Ausgabe!
- Übung IntOverflow
- Welchen Wert hat Math.Abs(int.MinValue)?
-
Minderungsmaßnahmen für Integer-Probleme
- Minderungsmaßnahmen für Integer-Probleme
- Vermeidung arithmetischer Überläufe – Addition
- Vermeidung arithmetischer Überläufe – Multiplikation
- Erkennung von Überläufen mit dem 'checked'-Schlüsselwort in C#
- Übung – Verwendung des 'checked'-Schlüsselworts in C#
- durch Überläufe ausgelöste Ausnahmen in C#
-
Fallstudie – Integer-Überlauf in .NET
- Eine reale Schwachstelle für Integer-Überlauf
- Ausnutzen der Schwachstelle für Integer-Überlauf
-
Pfadtransitivitäts-Schwachstelle (Path Traversal Vulnerability)
- Minderungsmaßnahmen für Path Traversal
Tag 2
Prinzipien der sicheren Implementierung
-
Injection (Einschleusung)
- Typische SQL-Injection-Angriffsmethoden
- Blinde und zeitbasierte SQL-Injection
- Schutzmethoden gegen SQL-Injection
- Kommandozeilen-Injection (Command Injection)
-
Defekte Authentifizierung – Passwortmanagement
- Übung – Schwächen von gehashten Passwörtern
- Passwortmanagement und -speicherung
- Spezialisierte Hashalgorithmen für diePasswortspeicherung
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS-Injection
- Ausnutzung: Einschleusung über andere HTML-Tags
- XSS-Prävention
-
Fehlende Zugriffskontrolle auf Funktionsebene
- Filtern von Dateiuploads
-
Praktische Kryptographie
- Gewährleistung von Vertraulichkeit mit symmetrischer Kryptographie
- Symmetrische Verschlüsselungsalgorithmen
- Blockchiffren – Betriebsarten
- Hashwert oder Nachrichten-Digest
- Hashalgorithmen
- Nachrichten-Authentifizierungscode (MAC)
- Gewährleistung von Integrität und Authentizität mit einem symmetrischen Schlüssel
- Gewährleistung von Vertraulichkeit mit Public-Key-Verschlüsselung
- Daumenregel – Besitz des privaten Schlüssels
- Typische Fehler im Passwortmanagement
- Übung – Harcodierte Passwörter
- Fazit
Prinzipien der sicheren Überprüfung (Verification)
- Funktionales Testen vs. Sicherheitstesting
- Sicherheitslücken
- Priorisierung
- Sicherheitstesting im SDLC
- Schritte der Testplanung (Risikobewertung)
-
Eindringtiefe und Informationsbeschaffung
- Stakeholder
- Assets (Wertschöpfende Objekte)
- Die Angriffsfläche
- Sicherheitsziele für das Testing
-
Bedrohungsmodellierung (Threat Modeling)
- Bedrohungsmodellierung
- Angreiferprofile
- Bedrohungsmodellierung basierend auf Angriffsbäumen (Attack Trees)
- Bedrohungsmodellierung basierend auf Missbrauchs-/Missbrauchsfällen
- Missbrauchs-/Missbrauchsfälle – ein einfaches Webshop-Beispiel
- STRIDE pro Element Ansatz zur Bedrohungsmodellierung – MS SDL
- Identifizierung von Sicherheitszielen
- Diagrammerstellung – Beispiele für DFD-Elemente
- Datenflussdiagramm – Beispiel
- Aufzählung von Bedrohungen – STRIDE der MS SDL und DFD-Elemente
- Risikobewertung – Klassifizierung von Bedrohungen
- Das DREAD-Bedrohungs-/Risikobewertungsmodell
-
Sicherheitstesting-Techniken und -Tools
- Allgemeine Testansätze
- Techniken für verschiedene Phasen des SDLC
-
Code Review (Code-Prüfung)
- Code Review für die Software-Sicherheit
- Taint-Analyse
- Heuristik
-
Statische Codeanalyse
- Statische Codeanalyse
- Übung – Verwendung statischer Codeanalysertools
-
Testen der Implementierung
- Manuelle Laufzeitüberprüfung
- Manuelles vs. automatisiertes Sicherheitstesting
- Penetrationstest
- Lasttests (Stress Tests)
-
Fuzzing
- Automatisiertes Sicherheitstesting – Fuzzing
- Herausforderungen beim Fuzzing
-
Web-Schwachstellen-Scanner
- Übung – Verwendung eines Schwachstellen-Scanners
-
Überprüfung und Härtung der Umgebung
- Common Vulnerability Scoring System – CVSS
- Schwachstellen-Scanner
- Öffentliche Datenbanken
-
Fallstudie – Umgehung der Formularauthentifizierung (Forms Authentication Bypass)
- Schwachstelle aufgrund von NULL-Byte-Beendigung
- Die Schwachstelle für die Umgehung der Formularauthentifizierung im Code
- Ausnutzen der Umgehung der Formularauthentifizierung
Wissensquellen
- Quellen für sicheres Codi eren – ein Starterset
- Schwachstellen-Datenbanken
- .NET-Leitfäden für sicheres Codi eren bei MSDN
- .NET-Cheat-Sheets für sicheres Codi eren
- Empfohlene Bücher – .NET und ASP.NET
14 Stunden
Erfahrungsberichte (3)
Die Leidenschaft mit der der Trainer sein Wissen verbreitet.
Christoph Weiland - Regionalverband Saarbrucken
Kurs - .NET, C# and ASP.NET Security Development
Erfahrungstechnik, es ist das Wissen und die wertvollen Kenntnisse des Lehrers.
Carey Fan - Logitech
Kurs - C/C++ Secure Coding
Maschinelle Übersetzung
Das Wissen des Trainers war sehr hoch – er wusste, worüber er sprach, und konnte unsere Fragen beantworten.
Adam - Fireup.PRO
Kurs - Advanced Java Security
Maschinelle Übersetzung