Kursplan

Dag 1

IT-sikkerhet og sikker kodning

  • Sjelens natur av sikkerhet
  • Termer relatert til IT-sikkerhet
  • Definisjon av risiko
  • Ulike sider av IT-sikkerhet
  • Krav fra ulike anvendelsesområder
  • IT-sikkerhet vs. sikker kodning
  • Fra sårbarheter til botnety og cyberkriminalitet
    • Sjelens natur av sikkerhetsfeil
    • Grunner til vanskelighetene
    • Fra en smittet datamaskin til målrettet angrep
  • Klassifisering av sikkerhetsfeil
    • Landwehr’s taxonomi
    • De syv ondskefulle kongedømmene
    • OWASP Top Ten 2013
    • OWASP Top Ten sammenligning 2003 – 2013

Introduksjon til Microsoft® Security Development Lifecycle (SDL)

  • Dagsorden
  • Programvare under angrep...
    • Cyberkriminalitetens utvikling
    • Angrepene fokuserer på programvare
    • Flest sårbarheter er i små ISV-applikasjoner
  • Opprinnelsen til Microsoft SDL...
    • Sikkerhetstidslinjen hos Microsoft...
    • Hvilke applikasjoner er påkrevd å følge SDL?
  • Microsoft Security Development Lifecycle (SDL)
    • Microsoft Security Development Lifecycle (SDL)
    • Pre-SDL-krav: Sikkerhetsutdannelse
    • Fase En: Krav
    • Fase To: Design
    • Fase Tre: Implementering
    • Fase Fire: Verifisering
    • Fase Fem: Utgivelse – Responnplan
    • Fase Fem: Utgivelse – Sluttsikkerhetsvurdering
    • Fase Fem: Utgivelse – Arkivering
    • Post-SDL-krav: Responn
    • SDL-prosessveiledning for LOB-applikasjoner
    • SDL-veiledning for agil metodikk
    • Sikker programvareutvikling krever prosessforbedring

Prinsipper for sikkert design

  • Angrepsflate
    • Reduksjon av angrepsflate
    • Angrepsflate – et eksempel
    • Analyse av angrepsflate
    • Reduksjon av angrepsflate – eksempler
  • Personvern
    • Personvern
    • Forståelse av applikasjonsatferd og bekymringer
  • Dypgående forsvar
    • SDL-kjerneprinsipp: Dypgående forsvar
    • Dypgående forsvar – eksempel
  • Minst rettighetsprinsippet
    • Minst rettigheter – eksempel
  • Sikre standardinnstillinger
    • Sikre standardinnstillinger – eksempler

Prinsipper for sikker implementering

  • Dagsorden
  • Microsoft Security Development Lifecycle (SDL)
  • Grunnleggende prinsipper for buffer overflow
    • Intel 80x86 Prosessorer – hovedregister
    • Hukommelsesadresselayouten
    • Funksjonshensiktsmekanismen i C/C++ på x86
    • Lokale variabler og stackrammen
    • Stack overflow
      • Buffer overflow på stacken
      • Øvelser – introduksjon
      • Øvelse BOFIntro
      • Øvelse BOFIntro – bestem stacklayouten
      • Øvelse BOFIntro – et enkelt angrep
  • Innmatningsvalidering
    • Konsepter for innmatningsvalidering
    • Heltalsproblemer
      • Representering av negative heltall
      • Heltalsoverflow
      • Aritmetisk overflow – gjett resultatet!
      • Øvelse IntOverflow
      • Hva er verdien av Math.Abs(int.MinValue)?
    • Mitisering av heltalsproblemer
      • Mitisering av heltalsproblemer
      • Unngå aritmetisk overflow – addisjon
      • Unngå aritmetisk overflow – multiplikasjon
      • Detektering av overflow med checked-nøkkelordet i C#
      • Øvelse – Bruke checked-nøkkelordet i C#
      • Unntak utløst av overflow i C#
    • Case study – heltalsoverflow i .NET
      • En reell heltalsoverflow-sårbarhet
      • Exploitering av heltalsoverflow-sårbarheten
    • Sårbarhet i path traversal
      • Mitisering av path traversal

Dag 2

Prinsipper for sikker implementering

  • Injection
    • Typiske SQL-injection-angrepsmetoder
    • Blind og tidsbasert SQL injection
    • Metoder for å beskytte mot SQL injection
    • Kommandoinjection
  • Brutt autentisering - passordhåndtering
    • Øvelse – svakhet ved krypterte passord
    • Passordhåndtering og lagring
    • Specialalgoritmer for hash for passordlagring
  • Cross-Site Scripting (XSS)
    • Cross-Site Scripting (XSS)
    • CSS injection
    • Exploitering: injection gjennom andre HTML-tagger
    • Mitisering av XSS
  • Manglende funksjonnivås kontroll
    • Filtrering av filopplasting
  • Praktisk kryptografi
    • Sikkerhet med symmetrisk kryptografi
    • Symmetriske krypteringsalgoritmer
    • Blokkchiffre – moduser for operasjon
    • Hash eller meldingsoversikt
    • Hashalgoritmer
    • Message Authentication Code (MAC)
    • Sikkerhet og autentisitet med symmetrisk nøkkel
    • Sikkerhet med offentlig nøkkels kryptering
    • Regel av daumen – eierskap til privat nøkkel
    • Typiske feil i passordhåndtering
    • Øvelse – Hardcoded passord
    • Konklusjon

Prinsipper for sikker verifisering

  • Funksjonstesting vs. sikkerhetstesting
  • Sikkerhetsfeil
  • Prioritering
  • Sikkerhetstesting i SDLC
  • Trinn i testplanlegging (risikoanalyse)
  • Omfang og informasjonsinnsamling
    • Interessenter
    • Resurser
    • Angrepsflate
    • Sikkerhetsmål for testing
  • Truselmodellering
    • Truselmodellering
    • Angrepprofil
    • Truselmodellering basert på angreps-tre
    • Truselmodellering basert på misbruk/missbrukssaker
    • Misbruk/missbrukssaker – et enkelt webbutikk-eksempel
    • STRIDE per element tilnærming til truselmodellering – MS SDL
    • Identifisering av sikkerhetsmål
    • Diagrammering – eksempler på DFD-elementer
    • Dataflytdiagram – et eksempel
    • Truselenumerering – MS SDL’s STRIDE og DFD-elementer
    • Risikoanalyse – klassifisering av trusler
    • DREAD trusel/risikoklassemodell
  • Sikkerhetstestingsmetoder og verktøy
    • Generelle testtilnærminger
    • Metoder for ulike steg i SDLC
  • Kodelyse
    • Kodelyse for programvare-sikkerhet
    • Forurensningsanalyse
    • Heuristikk
  • Statiske kodeanalyser
    • Statiske kodeanalyser
    • Øvelse – Bruk av statiske kodeanalyseverktøy
  • Testing av implementeringen
    • Manuell kjøringstidverifisering
    • Manuelle vs. automatiserte sikkerhetstester
    • Penetrationstesting
    • Stress-tester
  • Fuzzing
    • Automatiserte sikkerhetstester - fuzzing
    • Utfordringer med fuzzing
  • Web-sårbarhetslaster
    • Øvelse – Bruk av sårbarhetsskenner
  • Kontroll og hardening av miljøet
    • Common Vulnerability Scoring System – CVSS
    • Sårbarhetsskenner
    • Offentlige databaser
  • Case study – Forms Authentication Bypass
    • NULL byte termineringsvulnerabilitet
    • Sårbarheten i koden for Forms Authentication Bypass
    • Exploitering av Forms Authentication Bypass

Kunskapskilder

  • Sikre kodingkilder – et starterkit
  • Sårbarhetsdatabaser
  • .NET sikre kodningsveiledninger på MSDN
  • .NET sikre kodningscheatsheets
  • Anbefalte bøker – .NET og ASP.NET
 14 timer

Antall deltakere


Pris per deltaker

Referanser (5)

Kommende kurs

Relaterte kategorier