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 sichere Codierung
- Natur der Sicherheit
- Begriffe im Zusammenhang mit IT-Sicherheit
- Definition von Risiko
- Verschiedene Aspekte der IT-Sicherheit
- Anforderungen verschiedener Anwendungsbereiche
- IT-Sicherheit vs. sichere Codierung
-
Von Schwachstellen zu Botnets und Cyberkriminalität
- Natur von Sicherheitslücken
- Gründe für die Schwierigkeit
- Von infizierten Computern bis zu gezielten Angriffen
-
Klassifizierung von Sicherheitslücken
- Landwehrs Taxonomie
- Die sieben giftigen Königreiche
- OWASP Top Ten 2013
- OWASP Top Ten Vergleich 2003 – 2013
Einführung in das Microsoft® Security Development Lifecycle (SDL)
- Agenda
-
Angreifene Anwendungen...
- Entwicklung der Cyberkriminalität
- Angriffe zielen auf Anwendungen ab
- Die meisten Schwachstellen befinden sich in kleineren ISV-Anwendungen
-
Ursprünge des Microsoft SDL...
- Sicherheits-Zeitstrahl bei Microsoft...
- Welche Anwendungen müssen SDL einhalten?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Vor-SDL-Anforderungen: Sicherheitstraining
- Phase 1: Anforderungen
- Phase 2: Design
- Phase 3: Implementierung
- Phase 4: Verifikation
- Phase 5: Veröffentlichung – Reaktionsplan
- Phase 5: Veröffentlichung – Abschließende Sicherheitsprüfung
- Phase 5: Veröffentlichung – Archivierung
- Nach-SDL-Anforderung: Reaktion
- SDL-Prozessführung für LOB-Anwendungen
- SDL-Richtlinien für agile Methodologien
- Sichere Softwareentwicklung erfordert Prozessverbesserung
Grundsätze für sicheres Design
-
Angriffsfläche
- Reduzierung der Angriffsfläche
- Angriffsfläche – ein Beispiel
- Analyse der Angriffsfläche
- Reduzierung der Angriffsfläche – Beispiele
-
Datenschutz
- Datenschutz
- Verständnis des Verhaltens von Anwendungen und Bedenken
-
Verteidigung in der Tiefe
- SDL-Grundprinzip: Verteidigung in der Tiefe
- Verteidigung in der Tiefe – Beispiel
-
Prinzip der minimalen Berechtigung
- Minimale Berechtigung – Beispiel
-
Sichere Standardwerte
- Sichere Standardwerte – Beispiele
Grundsätze für sichere Implementierung
- Agenda
- Microsoft Security Development Lifecycle (SDL)
-
Grundlagen zu Buffer Overflows
- Intel 80x86-Prozessoren – Hauptregister
- Speicheradresslayout
- Funktionsaufrufmechanismus in C/C++ auf x86
- Lokale Variablen und Stack-Frame
-
Stack-Overflow
- Buffer Overflow im Stack
- Übungen – Einführung
- Übung BOFIntro
- Übung BOFIntro – Stack-Layout bestimmen
- Übung BOFIntro – ein einfacher Exploit
-
Eingabevalidierung
- Konzepte der Eingabevalidierung
-
Ganzzahlige Probleme
- Darstellung negativer Ganzzahlen
- Ganzzahliger Überlauf
- Arithmetischer Überlauf – Rate das Ergebnis!
- Übung IntOverflow
- Was ist der Wert von Math.Abs(int.MinValue)?
-
Minderung von Ganzzahlproblemen
- Minderung von Ganzzahlproblemen
- Vermeidung von arithmetischem Überlauf – Addition
- Vermeidung von arithmetischem Überlauf – Multiplikation
- Erkennung von Überläufen mit dem checked-Keyword in C#
- Übung – Verwendung des checked-Keywords in C#
- Ausnahmen, die durch Überläufe in C# ausgelöst werden
-
Fallstudie – Ganzzahliger Überlauf in .NET
- Eine reale Schwachstelle durch ganzzahligen Überlauf
- Ausnutzung der Schwachstelle durch ganzzahligen Überlauf
-
Path-Traversal-Schwachstelle
- Minderung von Path-Traversal
Tag 2
Grundsätze für sichere Implementierung
-
Injektion
- Typische SQL-Injection-Angriffsmethoden
- Blinde und zeitbasierte SQL-Injection
- SQL-Injection-Schutzmethoden
- Command Injection
-
Fehlende Authentifizierung – Passwortverwaltung
- Übung – Schwäche gehashter Passwörter
- Passwortverwaltung und -speicherung
- Hash-Algorithmen für den Passwort-Speicher
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS-Injektion
- Ausnutzung: Injektion über andere HTML-Tags
- XSS-Prävention
-
Fehlende Zugriffskontrolle auf Funktionsebene
- Filterung von Dateiuploads
-
Praktische Kryptographie
- Bereitstellung von Vertraulichkeit durch symmetrische Kryptographie
- Symmetrische Verschlüsselungsalgorithmen
- Blockchiffren – Betriebsarten
- Hash oder Nachrichten-Digest
- Hash-Algorithmen
- Message Authentication Code (MAC)
- Bereitstellung von Integrität und Authentizität mit einem symmetrischen Schlüssel
- Bereitstellung von Vertraulichkeit durch Public-Key-Verschlüsselung
- Faustregel – Besitz des privaten Schlüssels
- Typische Fehler im Passwortmanagement
- Übung – Hartcodierte Passwörter
- Fazit
Grundsätze für sichere Verifikation
- Funktionstests vs. Sicherheitstests
- Sicherheitslücken
- Priorisierung
- Sicherheitstests im SDLC
- Schritte der Testplanung (Risikomanalyse)
-
Abgrenzung und Informationsbeschaffung
- Stakeholder
- Vermögenswerte
- Die Angriffsfläche
- Sicherheitsziele für Tests
-
Threat Modeling
- Threat Modeling
- Angreiferprofile
- Threat Modeling auf Basis von Angriffsbäumen
- Threat Modeling auf Basis von Missbrauchsfällen
- Missbrauchsfälle – ein einfaches Beispiel für einen Webshop
- STRIDE-Elementansatz zum Threat Modeling – MS SDL
- Identifizierung von Sicherheitszielen
- Diagrammierung – Beispiele für DFD-Elemente
- Datendflussdiagramm – Beispiel
- Threat Enumeration – STRIDE und DFD-Elemente von MS SDL
- Risikomanalyse – Klassifizierung von Bedrohungen
- Das DREAD-Bedrohungs-/Risikobewertungsmodell
-
Sicherheitstesttechniken und -werkzeuge
- Allgemeine Testansätze
- Techniken für verschiedene Schritte des SDLC
-
Code-Review
- Code-Review für Software-Sicherheit
- Taint-Analyse
- Heuristiken
-
Statische Codeanalyse
- Statische Codeanalyse
- Übung – Verwendung von Werkzeugen zur statischen Codeanalyse
-
Testen der Implementierung
- Manuelle Laufzeit-Verifikation
- Manuelle vs. automatische Sicherheitstests
- Penetrationstests
- Belastungstests
-
Fuzzing
- Automatisierte Sicherheitstests – 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 Formular-Authentifizierung
- NULL-Byte-Terminierungs-Schwachstelle
- Die Schwachstelle der Umgehung der Formular-Authentifizierung im Code
- Ausnutzung der Umgehung der Formular-Authentifizierung
Wissensquellen
- Quellen für sichere Codierung – ein Starter-Kit
- Schwachstellendatenbanken
- Richtlinien für sichere .NET-Codierung bei MSDN
- .NET-sichere Codierung Cheat-Sheets
- 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