Kursplan
Dag 1
- IT-säkerhet och säkert kodning
- Säkerhetsnatur
- Termer relaterade till IT-säkerhet
- Riskdefinition
- Olika aspekter av IT-säkerhet
- Krav från olika tillämpningsområden
- IT-säkerhet vs. säkert kodning
- Från sårbarheter till botnät och cyberbrottslighet
- Säkerhetsbrister
- Svårighetsgrad
- Från en infekterad dator till målinriktade attacker
- Klassificering av säkerhetsbrister
- Landwehrs taxonomi
- De sju ondska kungarikena
- OWASP Topp tio 2013
- OWASP Topp tio jämförelse 2003 – 2013
- Introduktion till Microsoft® Security Development Lifecycle (SDL)
- Agenda
- Applikationer under attack...
- Cyberbrottslighetsutveckling
- Attacker riktar sig mot applikationer
- De flesta sårbarheterna finns i mindre ISV-applikationer
- Ursprunget till Microsoft SDL...
- Säkerhetstidlinje på Microsoft...
- Vilka applikationer måste följa SDL?
- Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Före-SDL-krav: säkerhetsträning
- Fas ett: krav
- Fas två: design
- Fas tre: implementering
- Fas fyra: verifiering
- Fas fem: utgivning – svarsplan
- Fas fem: utgivning – slutlig säkerhetsgranskning
- Fas fem: utgivning – arkivering
- Efter-SDL-krav: svar
- SDL-processvägledning för LOB-applikationer
- SDL-vägledning för Agile metodologier
- Säker programutveckling kräver processförbättring
- Principen för säker design
- Attackyta
- Minskning av attackytan
- Attackyta – ett exempel
- Analys av attackytan
- Exempel på minskning av attackytan
- Integritet
- Integritet
- Förståelse för applikationsbeteenden och bekymmer
- Försvars i djupet
- SDL kärnprincip: försvars i djupet
- Exempel på försvars i djupet
- Principen om minst behörighet
- Exempel på minst behörighet
- Säkra standardinställningar
- Exempel på säkra standardinställningar
- Attackyta
- Principen för säker implementering
- Agenda
- Microsoft Security Development Lifecycle (SDL)
- Grunderna i bufferöverskridning
- Intel 80x86-processorer – huvudregister
- Minneadresslayout
- Anropningsmekanism för funktioner i C/C++ på x86
- Lokala variabler och stackram
- Stacköverskridning
- Bufferöverskridning på stacken
- Övningar – introduktion
- Övning BOFIntro
- Övning BOFIntro – bestäm stacklayout
- Övning BOFIntro – ett enkelt utnyttjande
- Inmatningsvalidering
- Koncept för inmatningsvalidering
- Heltalsproblem
- Representation av negativa heltal
- Heltalsöverskridning
- Aritmetisk överskridning – gissa utdata!
- Övning IntOverflow
- Vad är värdet av Math.Abs(int.MinValue)?
- Minskning av heltalproblem
- Minskning av heltalproblem
- Undvikande av aritmetisk överskridning – addition
- Undvikande av aritmetisk överskridning – multiplikation
- Upptäckande av överskridning med checked-kortet i C#
- Övning – Användning av checked-kortet i C#
- Undantag utlöst av överskridningar i C#
- Fallet – Heltalsöverskridning i .NET
- En verklig heltalöverskridningssårbarhet
- Utnyttjande av heltalöverskridningssårbarheten
- Sårbarhet för stigsgenomträngning
- Minskning av stigsgenomträngning
Dag 2
- Principen för säker implementering
- Injektion
- Typiska SQL Injektionsattackmetoder
- Blind och tidsbaserad SQL injektion
- SQL Injektionsskyddsmetoder
- Kommandoinjektion
- Felaktig autentisering - lösenordshantering
- Övning – svagheten i hashade lösenord
- Lösenordshantering och lagring
- Specialiserade hash-algoritmer för lösenordslagring
- Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS injektion
- Utnyttjande: injektion via andra HTML taggar
- Förhindrande av XSS
- Saknad funktion på nivån av åtkomstkontroll
- Filtering av filuppladdningar
- Praktisk kryptografi
- Säkerställande av sekretess med symmetrisk kryptografi
- Symmetriska krypteringsalgoritmer
- Blockchiffer – driftslägen
- Hash eller meddelandessumma
- Hash-algoritmer
- Meddelandeautentiseringskod (MAC)
- Säkerställande av integritet och autenticitet med en symmetrisk nyckel
- Säkerställande av sekretess med offentlig nyckelkryptografi
- Regel: ägande av privat nyckel
- Vanliga fel i lösenordshantering
- Övning – Hårdkodade lösenord
- Slutsats
- Injektion
- Principen för säker verifiering
- Funktionell testning vs. säkerhetstestning
- Säkerhetsbrister
- Prioritering
- Säkerhetstestning i SDLC
- Steg i testplanering (riskanalys)
- Omfång och informationsinsamling
- Intressenter
- Tillgångar
- Attackytan
- Säkerhetsmål för testning
- Hotmodellering
- Hotmodellering
- Attackerprofil
- Hotmodellering baserat på angreppsträd
- Hotmodellering baserat på missbruk/felaktig användning
- Missbruk/felaktig användning – ett enkelt webbshoppexempel
- STRIDE-elementapproach till hotmodellering – MS SDL
- Identifiering av säkerhetsmål
- Diagrammet – exempel på DFD-element
- Dataflödesdiagram – exempel
- Uppräkning av hot – MS SDL:s STRIDE och DFD-element
- Riskanalys – klassificering av hot
- DREAD-modellen för hot/riskrankning
- Säkerhetstekniker och verktyg
- Allmänna testmetoder
- Tekniker för olika steg i SDLC
- Kodgranskning
- Kodgranskning för programvara
- Spårningsanalys
- Heuristisk
- Statisk kodanalys
- Statisk kodanalys
- Statisk kodanalys
- Övning – Användning av statiska kodanalysverktyg
- Testning av implementeringen
- Manuell körverifiering
- Manuell vs. automatiserad säkerhetstestning
- Inträngningstestning
- Strestester
- Fuzzing
- Automatiserad säkerhetstestning - fuzzing
- Utmaningar med fuzzing
- Webbsårbarhetsskannrar
- Övning – Användning av en sårbarhetsskannare
- Granskning och hårdning av miljön
- Common Vulnerability Scoring System – CVSS
- Sårbarhetsskannrar
- Offentliga databaser
- Fallstudie – Forms Authentication Bypass
- NULL byte-termineringssårbarhet
- Forms Authentication Bypass-sårbarheten i koden
- Utnyttjande av Forms Authentication Bypass
- Källor för kunskap
- Källor för säkert kodning – ett startkit
- Databaser för sårbarheter
- .NET säkert kodningsriktlinjer på MSDN
- .NET säkert kodningscheat sheet
- Rekommenderade böcker – .NET och ASP.NET
Vittnesmål (5)
Flera exempel för varje modul och stor kunskap om tränaren.
Sebastian - BRD
Kurs - Secure Developer Java (Inc OWASP)
Machine Translated
Module3 Applications Attacks and Exploits, XSS, SQL injection Module4 Servers Attacks and Exploits, DOS, BOF
Tshifhiwa - Vodacom
Kurs - How to Write Secure Code
Machine Translated
Allmän kursinformation
Paulo Gouveia - EID
Kurs - C/C++ Secure Coding
Machine Translated
The trainer's subject knowledge was excellent, and the way the sessions were set out so that the audience could follow along with the demonstrations really helped to cement that knowledge, compared to just sitting and listening.
Jack Allan - RSM UK Management Ltd.
Kurs - Secure Developer .NET (Inc OWASP)
Nothing it was perfect.