Schulungsübersicht

Tag 1

  • IT-Sicherheit und sichere Codierung
    • Art der Sicherheit
    • Begriffe rund um die IT-Sicherheit
    • Definition von Risiko
    • Verschiedene Aspekte der IT-Sicherheit
    • Anforderungen unterschiedlicher Anwendungsbereiche
    • IT-Sicherheit vs. sichere Codierung
    • Von Schwachstellen über Botnets bis hin zu Cyberkriminalität
      • Art der Sicherheitslücken
      • Gründe für die Schwierigkeit
      • Von einem infizierten Computer bis hin zu gezielten Angriffen
    • Klassifizierung von Sicherheitslücken
      • Taxonomie der Landwehr
      • Die sieben verderblichen Königreiche
      • OWASP Top Ten 2013
      • OWASP Top-Ten-Vergleich 2003 – 2013
  • Einführung in den Microsoft® Security Development Lifecycle (SDL)
    • Agenda
    • Angegriffene Anwendungen...
      • Entwicklung der Cyberkriminalität
      • Angriffe konzentrieren sich auf Anwendungen
      • Die meisten Schwachstellen liegen in kleineren ISV-Apps
    • Ursprünge des Microsoft SDL...
      • Sicherheitszeitleiste unter Microsoft...
      • Welche Apps sind erforderlich, um SDL zu befolgen?
    • Microsoft Sicherheitsentwicklungslebenszyklus (SDL)
      • Microsoft Sicherheitsentwicklungslebenszyklus (SDL)
      • Anforderungen vor SDL: Sicherheitsschulung
      • Phase Eins: Anforderungen
      • Phase Zwei: Design
      • Phase drei: Umsetzung
      • Phase vier: Verifizierung
      • Phase fünf: Veröffentlichung – Reaktionsplan
      • Phase Fünf: Veröffentlichung – Abschließende Sicherheitsüberprüfung
      • Phase Fünf: Veröffentlichung – Archiv
      • Post-SDL-Anforderung: Antwort
      • SDL-Prozessleitfaden für LOB-Apps
      • SDL-Leitfaden für Agile-Methoden
      • Sichere Softwareentwicklung erfordert Prozessverbesserung
  • Sichere Designprinzipien
    • Angriffsfläche
      • Reduzierung der Angriffsfläche
      • Angriffsfläche – ein Beispiel
      • Angriffsflächenanalyse
      • Reduzierung der Angriffsfläche – Beispiele
    • Privatsphäre
      • Privatsphäre
      • Anwendungsverhalten und Bedenken verstehen
    • Verteidigung in der Tiefe
      • SDL-Grundprinzip: Defense In Depth
      • Tiefenverteidigung – Beispiel
    • Prinzip der geringsten Privilegien
      • Geringstes Privileg – Beispiel
    • Sichere Standardeinstellungen
      • Sichere Standardeinstellungen – Beispiele
  • Sichere Umsetzungsprinzipien
    • Agenda
    • Microsoft Sicherheitsentwicklungslebenszyklus (SDL)
    • Grundlagen zum Pufferüberlauf
      • Intel 80x86-Prozessoren – Hauptregister
      • Das Speicheradressenlayout
      • Der Funktionsaufrufmechanismus in C/C++ auf x86
      • Die lokalen Variablen und der Stack-Frame
      • Paketüberfluss
        • Pufferüberlauf auf dem Stapel
        • Übungen – Einführung
        • Übung BOFIntro
        • Übung BOFIntro – Bestimmen Sie das Stapellayout
        • Übung BOFIntro – ein einfacher Exploit
    • Eingabevalidierung
      • Konzepte zur Eingabevalidierung
      • Ganzzahlige Probleme
        • Darstellung negativer Ganzzahlen
        • Ganzzahlüberlauf
        • Arithmetischer Überlauf – erraten Sie die Ausgabe!
        • Übung IntOverflow
        • Was ist der Wert von Math.Abs(int.MinValue)?
      • Ganzzahlige Problemminderung
        • Ganzzahlige Problemminderung
        • Arithmetischen Überlauf vermeiden – Addition
        • Arithmetischen Überlauf vermeiden – Multiplikation
        • Erkennen eines Überlaufs mit dem geprüften Schlüsselwort in C#
        • Übung – Verwendung des geprüften Schlüsselworts in C#
        • Ausnahmen, die durch Überläufe in C# ausgelöst werden
      • Fallstudie – Ganzzahlüberlauf in .NET
        • Eine reale Schwachstelle durch Ganzzahlüberlauf
        • Ausnutzung der Schwachstelle durch Ganzzahlüberlauf
      • Schwachstelle beim Pfaddurchlauf
        • Minderung der Pfaddurchquerung

Tag 2

  • Sichere Umsetzungsprinzipien
    • Injektion
      • Typische SQL Injektionsangriffsmethoden
      • Blinde und zeitbasierte SQL Injektion
      • SQL Injektionsschutzmethoden
      • Befehlsinjektion
    • Defekte Authentifizierung – Passwortverwaltung
      • Übung – Schwäche von gehashten Passwörtern
      • Passwortverwaltung und -speicherung
      • Spezielle Hash-Algorithmen zur Passwortspeicherung
    • Cross-Site-Scripting (XSS)
      • Cross-Site-Scripting (XSS)
      • CSS Injektion
      • Ausbeutung: Einschleusung durch andere HTML Tags
      • XSS-Prävention
    • Fehlende Zugriffskontrolle auf Funktionsebene
      • Datei-Uploads filtern
    • Praktische Kryptographie
      • Gewährleistung der Vertraulichkeit durch symmetrische Kryptografie
      • Symmetrische Verschlüsselungsalgorithmen
      • Blockchiffren – Funktionsweisen
      • Hash oder Nachrichtenauszug
      • Hash-Algorithmen
      • Nachrichtenauthentifizierungscode (MAC)
      • Bereitstellung von Integrität und Authentizität mit einem symmetrischen Schlüssel
      • Gewährleistung der Vertraulichkeit durch Verschlüsselung mit öffentlichem Schlüssel
      • Faustregel – Besitz eines privaten Schlüssels
      • Typische Fehler bei der Passwortverwaltung
      • Übung – Hartcodierte Passwörter
      • Abschluss
  • Sichere Verifizierungsprinzipien
    • Funktionstests vs. Sicherheitstests
    • Sicherheitslücken
    • Priorisierung
    • Sicherheitstests im SDLC
    • Schritte der Testplanung (Risikoanalyse)
    • Scoping und Informationsbeschaffung
      • Stakeholder
      • Vermögenswerte
      • Die Angriffsfläche
      • Sicherheitsziele zum Testen
    • Bedrohungsmodellierung
      • Bedrohungsmodellierung
      • Angreiferprofile
      • Bedrohungsmodellierung basierend auf Angriffsbäumen
      • Bedrohungsmodellierung basierend auf Missbrauchsfällen
      • Missbrauchsfälle – ein einfaches Webshop-Beispiel
      • STRIDE-Ansatz pro Element zur Bedrohungsmodellierung – MS SDL
      • Identifizierung von Sicherheitszielen
      • Diagrammerstellung – Beispiele für DFD-Elemente
      • Datenflussdiagramm – Beispiel
      • Bedrohungsaufzählung – STRIDE- und DFD-Elemente von MS SDL
      • Risikoanalyse – Klassifizierung von Bedrohungen
      • Das DREAD-Bedrohungs-/Risiko-Ranking-Modell
    • Techniken und Tools für Sicherheitstests
      • Allgemeine Testansätze
      • Techniken für verschiedene Schritte des SDLC
    • Code-Review
      • Codeüberprüfung für Softwaresicherheit
      • Taint-Analyse
      • Heuristiken
    • Statische Codeanalyse
      • Statische Codeanalyse
      • Statische Codeanalyse
      • Übung – Verwendung statischer Code-Analysetools
    • Testen der Implementierung
      • Manuelle Laufzeitüberprüfung
      • Manuelle vs. automatisierte Sicherheitstests
      • Penetrationstests
      • Stresstests
    • Fuzzing
      • Automatisierte Sicherheitstests – Fuzzing
      • Herausforderungen des Fuzzing
    • Web-Schwachstellenscanner
      • Übung – Verwendung eines Schwachstellenscanners
    • Überprüfung und Abhärtung der Umgebung
      • Common Vulnerability Scoring System – CVSS
      • Schwachstellenscanner
      • Öffentliche Datenbanken
    • Fallstudie – Umgehung der Formularauthentifizierung
      • Sicherheitslücke bei NULL-Byte-Beendigung
      • Die Sicherheitslücke „Forms Authentication Bypass“ im Code
      • Ausnutzung der Umgehung der Formularauthentifizierung
  • Wissensquellen
    • Sichere Codierungsquellen – ein Starter-Kit
    • Schwachstellendatenbanken
    • .NET-Richtlinien für sichere Codierung bei MSDN
    • Spickzettel für sichere .NET-Codierung
    • Empfohlene Bücher – .NET und ASP.NET

  14 Stunden
 

Teilnehmerzahl


Beginnt

Endet


Die Termine sind abhängig von der Verfügbarkeit und finden zwischen 09:30 und 16:30 statt.

Preis je Teilnehmer

Erfahrungsberichte (10)

Kombinierte Kurse

Standard Java Security

  14 Stunden

Java and Web Application Security

  21 Stunden

Advanced Java Security

  21 Stunden

Advanced Java, JEE and Web Application Security

  28 Stunden

.NET, C# and ASP.NET Security Development

  14 Stunden

Comprehensive C# and .NET Application Security

  21 Stunden

Advanced C#, ASP.NET and Web Application Security

  21 Stunden

Web Application Security

  14 Stunden

Security Testing

  14 Stunden

Secure Web Application Development and Testing

  21 Stunden

Secure coding in PHP

  21 Stunden

Combined C/C++, JAVA and Web Application Security

  28 Stunden

Combined JAVA, PHP and Web Application Security

  28 Stunden

Android Security

  14 Stunden

Verwandte Kategorien