Tack för att du skickade din fråga! En av våra teammedlemmar kontaktar dig snart.
Tack för att du skickade din bokning! En av våra teammedlemmar kontaktar dig snart.
Varaktighet 14 timmar
Kursplan
Dag 1
IT-säkerhet och säker kodning
- Säkerhetens natur
- Begrepp relaterade till IT-säkerhet
- Definition av risk
- Olika aspekter av IT-säkerhet
- Krav i olika applicationssammanhang
- IT-säkerhet vs. säker kodning
-
Från sårbarheter till botnät och cyberbrott
- Natur av säkerhetsbrister
- Orsaker till svårigheter
- Från en infekterad dator till riktade attacker
-
Klassificering av säkerhetsbrister
- Landwehrs taksonomi
- The Seven Pernicious Kingdoms
- OWASP Top Ten 2013
- OWASP Top Ten jämförelse 2003 – 2013
Introduktion till Microsoft® Security Development Lifecycle (SDL)
- Agenda
-
Applikationer under attack...
- Utvecklingen av cyberbrott
- Attacker riktar sig mot applikationer
- Flest sårbarheter finns i mindre ISV-applikationer
-
Ursprunget till Microsofts SDL...
- Säkerhets tidslinje hos Microsoft...
- Vilka appar är skyldiga att följa SDL?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Pre-SDL-krav: Säkerhetsträning
- Fas ett: Krav
- Fas två: Arkitektur
- Fas tre: Implementering
- Fas fyra: Verifiering
- Fas fem: Release – Svarsplan
- Fas fem: Release – Slutlig säkerhetsgranskning
- Fas fem: Release – Arkivering
- Post-SDL-krav: Svar
- SDL-processvägledning för LOB-appar
- SDL-vägledning för agila metoder
- Säker mjukvaruutveckling kräver processförbättring
Säkra arkitekturprinciper
-
Angreppsytta
- Minska angreppsytan
- Angreppsytta – ett exempel
- Analys av angreppsytan
- Minska angreppsytan – exempel
-
Integritet
- Integritet
- Förståelse av applikationers beteende och bekymmer
-
Defense in depth
- SDL-kärnprincip: Defense in depth
- Defense in depth – exempel
-
Principen om minsta privilegium
- Minsta privilegium – exempel
-
Säkra standardinställningar
- Säkra standardinställningar – exempel
Principer för säker implementering
- Agenda
- Microsoft Security Development Lifecycle (SDL)
-
Grunderna i buffertöverlopp
- Intel 80x86-processorer – huvudregister
- Minnesadresslayout
- Funktionsanropsmekanismen i C/C++ på x86
- Lokala variabler och stackramen
-
Stack overflow
- Buffertöverlopp på stacken
- Övningar – introduktion
- Övning BOFIntro
- Övning BOFIntro – avgör stacklayouten
- Övning BOFIntro – en enkel exploit
-
Validering av indata
- Begrepp kring validering av indata
-
Heltalsproblem
- Representation av negativa heltal
- Heltalsöverlopp
- Arimetiskt överlopp – gissar du utdata!
- Övning IntOverflow
- Vad är värdet av Math.Abs(int.MinValue)?
-
Mitigering av heltalsproblem
- Mitigering av heltalsproblem
- Undvika arimetiskt överlopp – addition
- Undvika arimetiskt överlopp – multiplikation
- Detektering av överlopp med nyckelordet checked i C#
- Övning – Använda nyckelordet checked i C#
- Undantag som triggas av överlopp i C#
-
Fallstudie – Heltalsöverlopp i .NET
- En verklig sårbarhet för heltalsöverlopp
- Exploatering av sårbarheten för heltalsöverlopp
-
Sårbarhet för sökvägstraversal
- Mitigering av sökvägstraversal
Dag 2
Principer för säker implementering
-
Injektion
- Typiska angreppsmetoder för SQL-injektion
- Blind och tidsbaserad SQL-injektion
- Skyddsmetoder mot SQL-injektion
- Kommandoinjektion
-
Bruten autentisering – lösenordshantering
- Övning – Svagheten med hashade lösenord
- Hantering och lagring av lösenord
- Hashalgoritmer av särskild för lösenordslagring
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS-injektion
- Exploatering: injektion via andra HTML-taggar
- Förebyggande av XSS
-
Saknad åtkomstkontroll på funktionsnivå
- Filtrering av filuppladdningar
-
Praktisk kryptografi
- Säkerställa sekretess med symmetrisk kryptografi
- Symmetriska krypteringsalgoritmer
- Blockchiffrar – driftlägen
- Hash eller meddelandeförteckning
- Hashalgoritmer
- Meddelandeautentiseringskod (MAC)
- Säkerställa integritet och autenticitet med en symmetrisk nyckel
- Säkerställa sekretess med asymmetrisk kryptering
- Tumregel – ägande av privat nyckel
- Typiska misstag i lösenordshantering
- Övning – Inbakade lösenord
- Slutsats
Principer för säker verifiering
- Funktionstestning vs. säkerhetstestning
- Säkerhetssårbarheter
- Prioritering
- Säkerhetstestning i SDLC
- Steg i testplanering (riskanalys)
-
Omfattning och insamling av information
- Intressenter
- Tillgångar
- Angreppsytan
- Säkerhetsmål för testning
-
Hotmodellering
- Hotmodellering
- Profiler av attackerare
- Hotmodellering baserad på angriffsträd
- Hotmodellering baserad på missbruks-/misbrukscaser
- Missbruks-/misbrukscaser – ett enkelt exempel på en webbutik
- STRIDE per element-ansats till hotmodellering – MS SDL
- Identifiering av säkerhetsmål
- Diagram – exempel på DFD-element
- Datflödesdiagram – exempel
- Hotuppräkning – MS SDL:s STRIDE och DFD-element
- Riskanalys – klassificering av hot
- DREAD-modellen för hot/riskrankning
-
Tekniker och verktyg för säkerhetstestning
- Generella testmetoder
- Tekniker för olika steg i SDLC
-
Kodgranskning
- Kodgranskning för mjukvarusäkerhet
- Taint-analys
- Heuristik
-
Statisk kodanalys
- Statisk kodanalys
- Övning – Använda verktyg för statisk kodanalys
-
Testa implementeringen
- Manuell körtidsverifiering
- Manuell vs. automatiserad säkerhetstestning
- Penetrationstestning
- Belastningstest
-
Fuzzing
- Automatiserad säkerhetstestning – fuzzing
- Utmaningar med fuzzing
-
Webb-sårbarhetsskannare
- Övning – Använda en sårbarhetsskanner
-
Kontrollera och förbättra miljön
- Common Vulnerability Scoring System – CVSS
- Sårbarhetsskannare
- Offentliga databaser
-
Fallstudie – Forms Authentication Bypass
- Sårbarhet för NULL-byte-terminering
- Forms Authentication Bypass-sårbarheten i koden
- Exploatering av Forms Authentication Bypass
Kunnaskällor
- Källor för säker kodning – en startkit
- Sårbarhetsdatabaser
- .NET-riktlinjer för säker kodning på MSDN
- .NET-snabbreferenser för säker kodning
- Rekommenderade böcker – .NET och ASP.NET
Vittnesmål (3)
Erfarenhetsdelning, lärarens kunskap och värde är betydande.
Carey Fan - Logitech
Kurs - C/C++ Secure Coding
Maskintolkat
utbildningsledarens kunskap var mycket hög - han visste vad han pratade om och hade svar på våra frågor
Adam - Fireup.PRO
Kurs - Advanced Java Security
Maskintolkat
Ämnet är aktuellt och jag behövde uppdateras
Damilano Marco - SIAP s.r.l.
Kurs - Secure Developer Java (Inc OWASP)
Maskintolkat