Ta kontakt

Kursplan

Dag 1

IT-sikkerhet og sikker koding

  • Natur i sikkerhet
  • IT-sikkerhetsrelaterte termer
  • Definisjon av risiko
  • Ulike aspekter ved IT-sikkerhet
  • Krav fra ulike applikasjonsområder
  • IT-sikkerhet vs. sikker koding
  • Fra sårbarheter til botnett og cyberkriminalitet
    • Natur i sikkerhetsfeil
    • Årsaker til utfordringer
    • Fra infisert datamaskin til målrettede angrep
  • Klassifisering av sikkerhetsfeil
    • Landwehrs taksonomi
    • De syv farlige rijkene
    • OWASP Top Ten 2013
    • OWASP Top Ten sammenligning 2003 – 2013

Innføring i Microsoft® Security Development Lifecycle (SDL)

  • Agenda
  • Applikasjoner under angrep...
    • Cyberkriminalitetens utvikling
    • Angrep fokuserer på applikasjoner
    • De fleste sårbarheter er i mindre ISV-applikasjoner
  • Opprinnelsen til Microsoft SDL...
    • Sikkerhetstidslinje ved Microsoft...
    • Hvilke applikasjoner er pålagt å følge SDL?
  • Microsoft Security Development Lifecycle (SDL)
    • Microsoft Security Development Lifecycle (SDL)
    • Pre-SDL-krav: Sikkerhetstrening
    • Fase ett: Krav
    • Fase to: Design
    • Fase tre: Implementering
    • Fase fire: Verifisering
    • Fase fem: Utgivelse – Responshåndtering
    • Fase fem: Utgivelse – Endelig sikkerhetsvurdering
    • Fase fem: Utgivelse – Arkivering
    • Post-SDL-krav: Respons
    • SDL-prosessveiledning for LOB-applikasjoner
    • SDL-veiledning for agile metoder
    • Sikker programvareutvikling krever prosessforbedring

Sikkerhetsdesignprinsipper

  • Angrepsflate
    • Reduksjon av angrepsflate
    • Angrepsflate – et eksempel
    • Analyse av angrepsflate
    • Reduksjon av angrepsflate – eksempler
  • Personvern
    • Personvern
    • Forståelse av applikasjonsatferd og bekymringer
  • Forsvar i dybden
    • SDL-kjerneprinsipp: Forsvar i dybden
    • Forsvar i dybden – eksempel
  • Minste privilegium-prinsipp
    • Minste privilegium – eksempel
  • Sikker standardinnstilling
    • Sikker standardinnstilling – eksempler

Prinsipper for sikker implementering

  • Agenda
  • Microsoft Security Development Lifecycle (SDL)
  • Grunnleggende kunnskap om buffer overflow
    • Intel 80x86-prosessorer – hovedregistre
    • Minnetes adresselayout
    • Funktionskallmekanismen i C/C++ på x86
    • Lokale variabler og stackrammen
    • Stakkoverflow
      • Buffer overflow på stakken
      • Øvelser – innføring
      • Øvelse BOFIntro
      • Øvelse BOFIntro – bestem stakklayouten
      • Øvelse BOFIntro – en enkel exploit
  • Inputvalidering
    • Begreper for inputvalidering
    • Heltallsproblemer
      • Representering av negative heltall
      • Heltallsoverflow
      • Arimetisk overflow – gjett utdataen!
      • Øvelse IntOverflow
      • Hva er verdien av Math.Abs(int.MinValue)?
    • Mitigering av heltallsproblemer
      • Mitigering av heltallsproblemer
      • Å unngå arimetisk overflow – addisjon
      • Å unngå arimetisk overflow – multiplikasjon
      • Detektering av overflow med checked-nøkkelordet i C#
      • Øvelse – Bruk av checked-nøkkelordet i C#
      • Unntak utløst av overflows i C#
    • Casestudie – Heltallsoverflow i .NET
      • En reell helletallsoverflow-sårbarhet
      • Eksploitere helletallsoverflow-sårbarheten
    • Path traversal-sårbarhet
      • Mitigering av path traversal

Dag 2

Prinsipper for sikker implementering

  • Injeksjon
    • Typiske angrep metoder for SQL-injeksjon
    • Blinde og tidsbasert SQL-injeksjon
    • Beskyttelsesmetoder mot SQL-injeksjon
    • Kommandoinjeksjon
  • Avbrutt autentisering – passordhåndtering
    • Øvelse – Svakheter ved hashede passord
    • Passordhåndtering og lagring
    • Spesialformål hash-algoritmer for passordlagring
  • Cross-Site Scripting (XSS)
    • Cross-Site Scripting (XSS)
    • CSS-injeksjon
    • Eksploit: injeksjon gjennom andre HTML-tagger
    • XSS-prevensjon
  • Manglende funksjonell tilgangsstyring
    • Filtring av filopplastinger
  • Praktisk kryptografi
    • Tilbyr konfidensialitet med symmetrisk kryptografi
    • Symmetriske krypteringsalgoritmer
    • Blokkkrypteringer – driftsmoduser
    • Hash eller meldingssjekksum
    • Hash-algoritmer
    • Message Authentication Code (MAC)
    • Tilbyr integritet og autentisitet med symmetrisk nøkkel
    • Tilbyr konfidensialitet med offentlig nøkkelkryptering
    • Tommelfingerregel – eierskap av privat nøkkel
    • Typiske feil i passordhåndtering
    • Øvelse – Hardkodede passord
    • Konklusjon

Sikkerhetsverifiseringsprinsipper

  • Funktionell testing vs. sikkerhetstesting
  • Sikkerhetssårbarheter
  • Prioritering
  • Sikkerhetstesting i SDLC
  • Trinn i testplanlegging (risikoanalyse)
  • Omfatt og informasjonsinnsamling
    • Interessenter
    • Ressurser
    • Angrepsflaten
    • Sikkerhetsmål for testing
  • Trusselmodellering
    • Trusselmodellering
    • Angriperprofiler
    • Trusselmodellering basert på angrepstre
    • Trusselmodellering basert på misbruk/feilbruksfall
    • Misbruk/feilbruksfall – et enkelt Web shop-eksempel
    • STRIDE per element tilnærming til trusselmodellering – MS SDL
    • Identifisering av sikkerhetsmål
    • Diagrammering – eksempler på DFD-elementer
    • Dataflyt-diagram – eksempel
    • Trusselnummerering – MS SDLs STRIDE og DFD-elementer
    • Risikoanalyse – klassifisering av trusler
    • DREAD trussel/risiko-rangeringsmodell
  • Sikkerhetstestingsteknikker og -verktøy
    • Generelle testtilnærminger
    • Teknikker for ulike trinn i SDLC
  • Kodegjennomgang
    • Kodegjennomgang for programvaresikkerhet
    • Taint-analyse
    • Heuristikker
  • Statisk kodeanalyse
    • Statisk kodeanalyse
    • Øvelse – Bruk av statiske kodeanalyseverktøy
  • Testing av implementeringen
    • Manuell kjøre-tid-verifisering
    • Manuell vs. automatisert sikkerhetstesting
    • Penetrasjonstesting
    • Belastningstester
  • Fuzzing
    • Automatisert sikkerhetstesting – fuzzing
    • Utfordringer med fuzzing
  • Web-sårbarhetsskannere
    • Øvelse – Bruk av en sårbarhetsskanner
  • Kontrollering og herding av miljøet
    • Common Vulnerability Scoring System – CVSS
    • Sårbarhetsskannere
    • Offentlige databaser
  • Casestudie – Forms Authentication Bypass
    • NULL-byte terminasjonssårbarhet
    • Forms Authentication Bypass-sårbarheten i koden
    • Eksploitering av Forms Authentication Bypass

Kunnskapskilder

  • Kilder til sikker koding – en starterpakke
  • Sårbarhetsdatabaser
  • .NET-sikker koding retningslinjer på MSDN
  • .NET-sikker koding cheat sheets
  • Anbefalte bøker – .NET og ASP.NET
 14 Timer

Antall deltakere


Pris per deltaker

Referanser (3)

Kommende kurs

Relaterte kategorier