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
- Angriffsfläche
- 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
- Injektion
- 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
Erfahrungsberichte (8)
das Gleichgewicht zwischen Vortrag und Praxis, der Rhythmus, das Wissen und die pädagogischen Fähigkeiten des Ausbilders
Armando Pinto - EID
Kurs - C/C++ Secure Coding
Maschinelle Übersetzung
Beginning by how to hack to better understand how to secure was very interesting and appreciated.
Raphaël Capocasale - Mikron SA Boudry
Kurs - Advanced C#, ASP.NET and Web Application Security
Viele Informationen sehr gut erklärt. Good Beispiele, interessante Übungen. Trainer zeigte uns seine Erfahrungen aus der Praxis.
Gergely Bathó - GE Medical Systems Polska Sp. Z O.O.
Kurs - Application Security for Developers
Maschinelle Übersetzung
The Burpe suite i need more training in this
Gontse Ntshegi - Vodacom
Kurs - Android Security
Azure Web Security, es war mehr das, was ich erwartet hatte, die Penetrationstests würde ich nie in meinem Job machen
Toby
Kurs - Application Security in the Cloud
Maschinelle Übersetzung
Da ich mich am dritten Tag schon mehr als zuvor verlaufen hatte und es schwieriger war, einen Fehler schnell zu finden, konnte ich die letzte Änderung abhaken und war mit dem Material auf dem neuesten Stand.
Paulina
Kurs - Advanced Java Security
Maschinelle Übersetzung
Very good knowledge and character.
Constantinos Michael
Kurs - Java and Web Application Security
Es ist sehr gut zu verstehen, wie ein Hacker möglicherweise Websites auf Schwachstellen und die von ihm verwendeten Tools analysieren würde.
Roger - OTT Mobile
Kurs - .NET, C# and ASP.NET Security Development
Maschinelle Übersetzung