Cursusaanbod

Dag 1

IT-veiligheid en veilig programmeren

  • Aard van de veiligheid
  • Veiligheidstermen in de IT
  • Definitie van risico
  • Verschillende aspecten van IT-veiligheid
  • Vereisten voor verschillende toepassingsgebieden
  • IT-veiligheid vs. veilig programmeren
  • Van kwetsbaarheden naar botnets en cybercrime
    • Aard van veiligheidsfouten
    • Oorzaken van moeilijkheid
    • Van een geïnfecteerde computer naar gerichte aanvallen
  • Classificatie van veiligheidsfouten
    • Landwehr’s taxonomie
    • De Zeven Kwade Koninkrijken
    • OWASP Top Ten 2013
    • Vergelijking van OWASP Top Ten 2003 – 2013

Introductie tot het Microsoft® Security Development Lifecycle (SDL)

  • Agenda
  • Toepassingen onder aanval...
    • Ontwikkeling van cybercrime
    • Aanvallen richten zich op toepassingen
    • De meeste kwetsbaarheden zitten in kleinere ISV-apps
  • Oorsprong van het Microsoft SDL...
    • Veiligheidstijdlijn bij Microsoft...
    • Welke toepassingen moeten aan de SDL voldoen?
  • Microsoft Security Development Lifecycle (SDL)
    • Microsoft Security Development Lifecycle (SDL)
    • Pre-SDL Vereisten: Veiligheidstraining
    • Fase Een: Vereisten
    • Fase Twee: Ontwerp
    • Fase Drie: Implementatie
    • Fase Vier: Verificatie
    • Fase Vijf: Uitgifte – Responsieplan
    • Fase Vijf: Uitgifte – Eindveiligheidsbeoordeling
    • Fase Vijf: Uitgifte – Archiveren
    • Post-SDL Vereiste: Responsie
    • SDL Procesadvies voor LOB-apps
    • SDL Advies voor Agile Methodologieën
    • Veilig softwareontwikkeling vereist procesverbetering

Veilige ontwerpprincipes

  • Aanvalsvlak
    • Reductie van het aanvalsvlak
    • Aanvalsvlak – een voorbeeld
    • Analyse van het aanvalsvlak
    • Reductie van het aanvalsvlak – voorbeelden
  • Privacy
    • Privacy
    • Inzicht in gedrag en zorgen van toepassingen
  • Diepe verdediging
    • Kernprincipe SDL: Diepe Verdediging
    • Diepe verdediging – voorbeeld
  • Minimale bevoegdheidsprincipe
    • Minimale bevoegdheid – voorbeeld
  • Veilige standaarden
    • Veilige standaarden – voorbeelden

Veilige implementatieprincipes

  • Agenda
  • Microsoft Security Development Lifecycle (SDL)
  • Basis van bufferoverloop
    • Intel 80x86 Processors – hoofdregisters
    • Het geheugenadreslayout
    • De functioneeringsmechanisme in C/C++ op x86
    • De lokale variabelen en de stack frame
    • Stackoverloop
      • Bufferoverloop op de stack
      • Opdrachten – inleiding
      • Opdracht BOFIntro
      • Opdracht BOFIntro – bepaal de stacklayout
      • Opdracht BOFIntro – een eenvoudige exploit
  • Invoervalidatie
    • Concepten van invoervalidatie
    • Getalproblemen
      • Voorstelling van negatieve getallen
      • Getalsoverloop
      • Rekenkundige overloop – gok het uitvoerresultaat!
      • Opdracht IntOverflow
      • Wat is de waarde van Math.Abs(int.MinValue)?
    • Getalprobleemvermindering
      • Verhindering van getalproblemen
      • Voorkomen van rekenkundige overloop – optellen
      • Voorkomen van rekenkundige overloop – vermenigvuldigen
      • Detectie van overloop met de checked keyword in C#
      • Opdracht – Gebruik van de checked keyword in C#
      • Uitzonderingen veroorzaakt door overloop in C#
    • Casusstudie – Getalsoverloop in .NET
      • Een echte getalsoverloopkwetsbaarheid
      • Exploitatie van de getalsoverloopkwetsbaarheid
    • Padtraversiekwetsbaarheid
      • Verhindering van padtraversie

Dag 2

Veilige implementatieprincipes

  • Injectie
    • Typische SQL-injectieaanvalsmethoden
    • Blind en tijdgebaseerde SQL-injectie
    • Methoden voor het beschermen tegen SQL-injectie
    • Commando-injectie
  • Gebroken authenticatie - wachtwoordbeheer
    • Opdracht – Zwakte van gehashte wachtwoorden
    • Wachtwoordbeheer en opslag
    • Specialisatiehashalgoritmen voor wachtwoordopslag
  • Cross-Site Scripting (XSS)
    • Cross-Site Scripting (XSS)
    • CSS-injectie
    • Exploitatie: injectie via andere HTML-tags
    • XSS-voorkoming
  • Ontbrekende functioneel toegangscontrole
    • Filtering van bestandsoverdragen
  • Praktische cryptografie
    • Verborgen houden met symmetrische cryptografie
    • Symmetrische encryptiealgoritmen
    • Blokcijfers – modi van werking
    • Hash of berichtdigest
    • Hashalgoritmen
    • Message Authentication Code (MAC)
    • Verborgen houden van integriteit en authenticiteit met een symmetrische sleutel
    • Verborgen houden met publieke-sleutelversleuteling
    • Regel: Bezit van de privé-sleutel
    • Typische fouten in wachtwoordbeheer
    • Opdracht – Hardgecodeerde wachtwoorden
    • Conclusie

Veilige verificatieprincipes

  • Functioneel testen vs. veiligheidstesten
  • Veiligheidskwetsbaarheden
  • Priorisering
  • Veiligheidstesten in de SDLC
  • Stappen van testplanning (risicoanalyse)
  • Scopering en informatie-inwinning
    • Stakeholders
    • Assets
    • Het aanvalsvlak
    • Veiligheidstestdoelstellingen
  • Bedreigingsmodellering
    • Bedreigingsmodellering
    • Angstaanjagersprofielen
    • Bedreigingsmodellering op basis van aanvalsbomen
    • Bedreigingsmodellering op basis van misbruikscases/abusecases
    • Misbruikscases – een eenvoudig webwinkelvoorbeeld
    • STRIDE per element benadering voor bedreigingsmodellering – MS SDL
    • Identificatie van veiligheidsdoelstellingen
    • Diagrammen – voorbeelden van DFD-elementen
    • Dataflowdiagram – voorbeeld
    • Bedreigingsenumeratie – STRIDE en DFD-elementen in de MS SDL
    • Risicoanalyse – classificatie van bedreigingen
    • Het DREAD bedreigings/risicoscoremodel
  • Veiligheidstesttechnieken en -tools
    • Algemene testbenaderingen
    • Technieken voor verschillende stappen in de SDLC
  • Codereview
    • Codereview voor softwareveiligheid
    • Taint-analyse
    • Heuristieken
  • Statische codanalyse
    • Statische codanalyse
    • Opdracht – Gebruik van statische codanalysetools
  • Testen van de implementatie
    • Handmatige runtimeverificatie
    • Handmatig vs. automatisch veiligheidstesten
    • Penetratietesting
    • Stress-tests
  • Fuzzing
    • Automatisch veiligheidstesten – fuzzing
    • Uitdagingen van fuzzing
  • Webkwetsbaarheidsscanners
    • Opdracht – Gebruik maken van een kwetsbaarheidsscanner
  • Controleren en versterken van de omgeving
    • Common Vulnerability Scoring System – CVSS
    • Kwetsbaarheidsscanners
    • Publieke databases
  • Casusstudie – Forms Authentication Bypass
    • NULL-byte afsluiting kwetsbaarheid
    • De Forms Authentication Bypass-kwetsbaarheid in de code
    • Exploitatie van de Forms Authentication Bypass

Kennisbronnen

  • Veiligheidscodingsbronnen – een starterkit
  • Kwetsbaarheidendatabases
  • .NET-veiligheidsrichtlijnen op MSDN
  • .NET-veiligheidshandboeken
  • Aanbevolen boeken – .NET en ASP.NET
 14 uren

Aantal deelnemers


Prijs per deelnemer

Getuigenissen (5)

Voorlopige Aankomende Cursussen

Gerelateerde categorieën