Kom i kontakt
 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

Antal deltagare


Pris per deltagare

Vittnesmål (3)

Kommande Kurser

Relaterade Kategorier