Kontakt aufnehmen

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

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Erfahrungsberichte (3)

Kommende Kurse

Verwandte Kategorien