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 sicheres Coding
- Natur der Sicherheit
- Begriffe im Bereich der IT-Sicherheit
- Definition von Risiko
- Verschiedene Aspekte der IT-Sicherheit
- Anforderungen verschiedener Anwendungsbereiche
- IT-Sicherheit vs. sicheres Coding
-
Von Sicherheitslücken zu Botnets und Cyberkriminalität
- Natur von Sicherheitsmängeln
- Gründe für die Komplexität
- Vom infizierten Computer zu gezielten Angriffen
-
Klassifizierung von Sicherheitsmängeln
- Taxonomie von Landwehr
- The Seven Pernicious Kingdoms
- OWASP Top Ten 2013
- Vergleich OWASP Top Ten 2003 – 2013
Einführung in das Microsoft® Security Development Lifecycle (SDL)
- Agenda
-
Angreifene Anwendungen...
- Entwicklung der Cyberkriminalität
- Angriffe konzentrieren sich auf Anwendungen
- Die meisten Schwachstellen befinden sich in kleineren ISV-Anwendungen
-
Ursprünge des Microsoft SDL...
- Zeitachse der Sicherheit bei Microsoft...
- Welche Anwendungen müssen das SDL befolgen?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Voraussetzungen vor dem SDL: Sicherheitstraining
- Phase 1: Anforderungen
- Phase 2: Design
- Phase 3: Implementierung
- Phase 4: Verifikation
- Phase 5: Release – Reaktionsplan
- Phase 5: Release – Finaler Sicherheitscheck
- Phase 5: Release – Archivierung
- Anforderung nach dem SDL: Reaktion
- SDL-Prozessanweisungen für LOB-Apps
- SDL-Anleitungen für agile Methoden
- Sichere Softwareentwicklung erfordert Prozessverbesserung
Prinzipien des sicheren Designs
-
Angriffsfläche
- Reduktion der Angriffsfläche
- Angriffsfläche – ein Beispiel
- Analyse der Angriffsfläche
- Reduktion der Angriffsfläche – Beispiele
-
Datenschutz
- Datenschutz
- Verständnis von Anwendungshandlungen und Bedenken
-
Defense in Depth
- SDL-Grundprinzip: Defense in Depth
- Defense in Depth – Beispiel
-
Prinzip der geringsten Berechtigung
- Geringste Berechtigung – Beispiel
-
Sichere Standardwerte
- Sichere Standardwerte – Beispiele
Prinzipien der sicheren Implementierung
- Agenda
- Microsoft Security Development Lifecycle (SDL)
-
Grundlagen des Buffer Overflow
- Intel 80x86-Prozessoren – Hauptregister
- Aufbau des Speichers
- Funktionsaufrufmechanismus in C/C++ auf x86
- Lokale Variablen und der Stack-Frame
-
Stack Overflow
- Buffer Overflow im Stack
- Übungen – Einführung
- Übung BOFIntro
- Übung BOFIntro – Bestimmung des Stack-Aufbaus
- Übung BOFIntro – ein einfacher Exploit
-
Eingabevalidierung
- Konzepte der Eingabevalidierung
-
Ganzzahl-Probleme
- Darstellung negativer Ganzzahlen
- Ganzzahl-Overflow
- Arithmetischer Overflow – rate die Ausgabe!
- Übung IntOverflow
- Was ist der Wert von Math.Abs(int.MinValue)?
-
Minderung von Ganzzahl-Problemen
- Minderung von Ganzzahl-Problemen
- Vermeidung arithmetischer Overflows – Addition
- Vermeidung arithmetischer Overflows – Multiplikation
- Erkennung von Overflows mit dem checked-Keyword in C#
- Übung – Verwendung des checked-Keywords in C#
- Ausnahmen, die durch Overflows in C# ausgelöst werden
-
Fallstudie – Ganzzahl-Overflow in .NET
- Eine reale Ganzzahl-Overflow-Schwachstelle
- Ausnutzung der Ganzzahl-Overflow-Schwachstelle
-
Path Traversal-Schwachstelle
- Minderung von Path Traversal
Tag 2
Prinzipien der sicheren Implementierung
-
Injektion
- Typische SQL-Injection-Angriffsmethoden
- Blind SQL Injection und zeitbasierte SQL Injection
- Schutzmethoden gegen SQL Injection
- Command Injection
-
Defekte Authentifizierung – Passwortmanagement
- Übung – Schwäche gehashter Passwörter
- Passwortmanagement und -speicherung
- Hash-Algorithmus für spezialisierte Zwecke zur Passwort-Speicherung
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS-Injektion
- Ausnutzung: Injektion über andere HTML-Tags
- XSS-Prävention
-
Fehlende funktionale Zugriffskontrolle
- Filterung von Dateiuploads
-
Angewandte Kryptographie
- Bereitstellung von Vertraulichkeit mittels symmetrischer Kryptographie
- Symmetrische Verschlüsselungsalgorithmen
- Blockchiffren – Betriebsmodi
- Hash oder Message Digest
- Hash-Algorithmus
- Message Authentication Code (MAC)
- Bereitstellung von Integrität und Authentizität mit einem symmetrischen Schlüssel
- Bereitstellung von Vertraulichkeit mittels Public-Key-Verschlüsselung
- Daumenregel – Besitz des privaten Schlüssels
- Typische Fehler im Passwortmanagement
- Übung – Hardcodierte Passwörter
- Fazit
Prinzipien der sicheren Verifikation
- Funktionales Testen vs. Sicherheitstesten
- Sicherheitslücken
- Priorisierung
- Sicherheitstesten im SDLC
- Schritte zur Testplanung (Risikomanalyse)
-
Scoping und Informationssammlung
- Stakeholder
- Assets
- Die Angriffsfläche
- Sicherheitsziele für Tests
-
Threat Modeling
- Threat Modeling
- Angreiferprofile
- Threat Modeling basierend auf Attack Trees
- Threat Modeling basierend auf Misuse/Abuse Cases
- Misuse/Abuse Cases – ein einfaches Beispiel eines Web-Shops
- STRIDE-Elementansatz zum Threat Modeling – MS SDL
- Identifizierung von Sicherheitszielen
- Diagrammatik – Beispiele für DFD-Elemente
- Datenflussdiagramm – Beispiel
- Threat Enumeration – STRIDE und DFD-Elemente des MS SDL
- Risikoanalyse – Klassifizierung von Bedrohungen
- Das DREAD-Bedrohungs-/Risikobewertungsmodell
-
Techniken und Werkzeuge für das Sicherheitstesten
- Allgemeine Testansätze
- Techniken für verschiedene Schritte des SDLC
-
Code-Review
- Code-Review für Software-Sicherheit
- Taint-Analyse
- Heuristiken
-
Statische Code-Analyse
- Statische Code-Analyse
- Übung – Verwendung von statischen Code-Analyse-Werkzeugen
-
Testen der Implementierung
- Manuelle Laufzeitverifikation
- Manuelle vs. automatisierte Sicherheitstests n
- Penetrationstests
- Belastungstests
-
Fuzzing
- Automatisiertes Sicherheitstesten – Fuzzing
- Herausforderungen des Fuzzings
-
Web-Schwachstellen-Scanner
- Übung – Verwendung eines Schwachstellen-Scanners
-
Prüfung und Härtung der Umgebung
- Common Vulnerability Scoring System – CVSS
- Schwachstellen-Scanner
- Öffentliche Datenbanken
-
Fallstudie – Umgehung der Form-Authentifizierung
- NULL-Byte-Terminierungs-Schwachstelle
- Die Schwachstelle der Form-Authentifizierungs-Umgehung im Code
- Ausnutzung der Form-Authentifizierungs-Umgehung
Wissensquellen
- Quellen für sicheres Coding – ein Starter-Kit
- Schwachstellendatenbanken
- Richtlinien für sicheres .NET-Coding auf MSDN
- Cheat Sheets für sicheres .NET-Coding n
- 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