Kursplan

Dag 1

IT-säkerhet och säker programmering

  • Säkerhetens natur
  • Termer relaterade till IT-säkerhet
  • Riskdefinition
  • Olika aspekter av IT-säkerhet
  • Krav för olika programområden
  • IT-säkerhet vs. säker programmering
  • Från sårbarheter till botnät och cybrikriminalitet
    • Säkerhetens natur
    • Orsaker till svårigheter
    • Från en infekterad dator till målade anfall
  • Klassificering av säkerhetsbrister
    • Landwehr’s taxonomi
    • The Seven Pernicious Kingdoms
    • OWASP Top Ten 2013
    • Jämförelse av OWASP Top Ten 2003 – 2013

Introduktion till Microsoft® Security Development Lifecycle (SDL)

  • Dagordning
  • Program under attack...
    • Utvecklingen av cybrikriminalitet
    • Angrepp fokuserar på program
    • De flesta sårbarheter finns i mindre ISV-program
  • Uppkomsten av Microsoft SDL...
    • Säkerhetstidslinje på Microsoft...
    • Vilka program kräver att följa SDL?
  • Microsoft Security Development Lifecycle (SDL)
    • Microsoft Security Development Lifecycle (SDL)
    • För-SLD-krav: Säkerhetsutbildning
    • Fas ett: Krav
    • Fas två: Design
    • Fas tre: Implementering
    • Fas fyra: Verifiering
    • Fas fem: Utgivning – Reaktionsplan
    • Fas fem: Utgivning – Slutsäkerhetsgranskning
    • Fas fem: Utgivning – Arkivering
    • Efter-SLD-krav: Reaktion
    • SDL-processguiden för LOB-program
    • SDL-guiden för agila metodik
    • Säker programutveckling kräver processförbättring

Principer för säker design

  • Angreppsytan
    • Minimera angreppsyta
    • Angreppsyta – ett exempel
    • Analys av angreppsyta
    • Minimera angreppsyta – exempel
  • Integritet
    • Integritet
    • Förståelse av programbeteende och bekymmer
  • Djupgående försvar
    • SDL-kärnprincip: Djupgående försvar
    • Djupgående försvar – exempel
  • Minsta behörighetsprincipen
    • Minsta behörighet – exempel
  • Säker standardinställning
    • Säker standardinställning – exempel

Principer för säker implementering

  • Dagordning
  • Microsoft Security Development Lifecycle (SDL)
  • Grundläggande buffer overflow
    • Intel 80x86 Processorer – huvudregistreringar
    • Minnesadress-layouten
    • Funktionshandlingsmekanism i C/C++ på x86
    • Lokala variabler och stackramen
    • Stack overflow
      • Buffer overflow i stacken
      • Övningar – introduktion
      • Övning BOFIntro
      • Övning BOFIntro – fastställ stacklayouten
      • Övning BOFIntro – ett enkelt exploit
  • Inmatningsvalidering
    • Koncept för inmatningsvalidering
    • Heltalsproblem
      • Representation av negativa heltal
      • Heltalsoverskridning
      • Aritmetiskt överflöde – gissa resultatet!
      • Övning IntOverflow
      • Vad är värdet av Math.Abs(int.MinValue)?
    • Mitietering av heltalsproblem
      • Mitietering av heltalsproblem
      • Undvik aritmetiskt överflöde – addition
      • Undvik aritmetiskt överflöde – multiplikation
      • Detektera överflöde med checked nyckelordet i C#
      • Övning – Använda checked nyckelordet i C#
      • Undantag utlösta av överflöden i C#
    • Fallstudie – Heltalsoverskridning i .NET
      • Ett riktigt heltalsoverskridningsproblem
      • Exploitera heltalsoverskridningsproblemet
    • Sårbarhet för sökvägstraversal
      • Mitietering av sökvägstraversal

Dag 2

Principer för säker implementering

  • Injection
    • Typiska SQL-injection angreppsmetoder
    • Blinda och tidsbaserade SQL-injectioner
    • Metoder för att skydda mot SQL-injection
    • Kommando-injection
  • Bruten autentisering - lösenordshantering
    • Övning – Svagheter i hashade lösenord
    • Lösenordshantering och lagring
    • Specialiserade hashalgoritmer för lösenordslagring
  • Cross-Site Scripting (XSS)
    • Cross-Site Scripting (XSS)
    • CSS-injection
    • Exploitera: injection genom andra HTML-taggar
    • Förhindra XSS
  • Fattande funktionsnivååtkomstkontroll
    • Filöverföringsfiltering
  • Praktisk kryptografi
    • Tillhandahålla konfidentialitet med symmetrisk kryptering
    • Symmetriska krypteringsalgoritmer
    • Blockchiffer – operativa lägen
    • Hash eller meddelandedigest
    • Hashalgoritmer
    • Meddelandeautentiseringskod (MAC)
    • Tillhandahålla integritet och autenticitet med en symmetrisk nyckel
    • Tillhandahålla konfidentialitet med offentlig-nyckelskryptering
    • Regelbok – ägande av privat nyckel
    • Typiska misstag i lösenordshantering
    • Övning – Hårdkodade lösenord
    • Slutsats

Principer för säker verifiering

  • Funktionsprovning vs. säkerhetstestning
  • Säkerhetsproblem
  • Prioritering
  • Säkerhetstestning i SDLC
  • Steg i testplanering (riskanalys)
  • Omfattning och informationsinsamling
    • Intressenter
    • Tillgångar
    • Angreppsyta
    • Säkerhetsmål för testning
  • Hotmodellering
    • Hotmodellering
    • Angripareprofiler
    • Hotmodellering baserad på anfallsträd
    • Hotmodellering baserad på missbruk/missanvändningsfall
    • Missbruk/missanvändningsfall – ett enkelt webbshopexempel
    • STRIDE-element-approach till hotmodellering – MS SDL
    • Identifiera säkerhetsmål
    • Diagrammering – exempel på DFD-element
    • Dataflödesdiagram – exempel
    • Hotuppräkning – MS SDL’s STRIDE och DFD-element
    • Riskanalys – klassificering av hot
    • DREAD-hot/riskrangordningsmodellen
  • Säkerhetstestningstechniker och verktyg
    • Allmänna testningsanslutningar
    • Techniker för olika steg i SDLC
  • Kodgranskning
    • Kodgranskning för programvarusäkerhet
    • Taint-analys
    • Heuristiker
  • Statisk kodanalys
    • Statisk kodanalys
    • Övning – Använda statiska kodanalyseverktyg
  • Testning av implementeringen
    • Manuell runtime-verifiering
    • Manuell vs. automatiserad säkerhetstestning
    • Penetrationstestning
    • Stressprov
  • Fuzzing
    • Automatiserad säkerhetstestning - fuzzing
    • Utmaningar med fuzzing
  • Webbsårbarhetslurare
    • Övning – Använda en sårbarhetssökare
  • Kontroll av och hårdkodning för miljön
    • Common Vulnerability Scoring System – CVSS
    • Sårbarhetssökare
    • Offentliga databaser
  • Fallstudie – Forms Authentication Bypass
    • NULL byte termination sårbarhet
    • Sårbarheten i koden för Forms Authentication Bypass
    • Exploitera Forms Authentication Bypass

Kunskapskällor

  • Säker programmeringskällor – en startpaket
  • Sårbarhetsdatabaser
  • .NET säker programmerningsriktlinjer på MSDN
  • .NET säker programmeringscheatsheets
  • Rekommenderade böcker – .NET och ASP.NET
 14 timmar

Antal deltagare


Pris per deltagare

Vittnesmål (5)

Kommande Kurser

Relaterade Kategorier