CONTACT ONS

Cursusaanbod

Dag 1

IT-beveiliging en veilig coderen

  • Wat is beveiliging?
  • Termen die te maken hebben met IT-beveiliging
  • Definitie van risico
  • Diverse aspecten van IT-beveiliging
  • Vereisten per type toepassing
  • Verschillen tussen IT-beveiliging en veilig coderen
  • Van kwetsbaarheden tot botnets en cybercriminaliteit
    • Kenmerken van beveiligingsfouten
    • Waarom het moeilijk is deze fouten op te sporen
    • Van een geïnfecteerde computer tot gerichte aanvallen
  • Classificatie van beveiligingsfouten
    • Taxonomie volgens Landwehr
    • De Zeven Pernicieuze Koninkrijken
    • OWASP Top Ten 2013
    • Vergelijking tussen OWASP Top Ten van 2003 en 2013

Inleiding tot Microsoft® Security Development Lifecycle (SDL)

  • Agenda
  • Toepassingen die worden aangevallen...
    • Evolutie van cybercriminaliteit
    • Aanvallen richten zich steeds meer op toepassingen
    • De meeste kwetsbaarheden zitten in kleinere applicaties van onafhankelijke softwareontwikkelaars
  • Oorsprong van Microsoft SDL...
    • Overzicht van de beveiligingsgeschiedenis bij Microsoft...
    • Welke applicaties moeten voldoen aan SDL?
  • Microsoft Security Development Lifecycle (SDL)
    • Microsoft Security Development Lifecycle (SDL)
    • Voorbereidende eis vóór SDL: beveiligingstraining
    • Fase één: Vereisten
    • Fase twee: Ontwerp
    • Fase drie: Implementatie
    • Fase vier: Verificatie
    • Fase vijf: Release – reactieplan
    • Fase vijf: Release – laatste beveiligingscontrole
    • Fase vijf: Release – archivering
    • Nabetreffende eis na SDL: respons op incidenten
    • Begeleiding bij SDL voor bedrijfsapplicaties
    • Handleidingen voor toepassing van SDL binnen agile-methodologieën
    • Veilig softwareontwikkelen vergt verbetering van processen

Principes voor veilig ontwerp

  • Aanvalsvlak
    • Het verkleinen van het aanvalsvlak
    • Voorbeeld van een aanvalsvlak
    • Analyse van het aanvalsvlak
    • Voorbeelden van verkleinen van het aanvalsvlak
  • Privacy
    • Wat is privacy?
    • Begrijpen van het gedrag en de beveiligingsaspecten van een applicatie
  • Verdediging in diepte
    • Kernprincipe binnen SDL: verdediging in diepte
    • Voorbeeld van verdediging in diepte
  • Het principe van minste privileges
    • Voorbeeld van toepassing van het principe van minste privileges
  • Veilige standaardinstellingen
    • Voorbeelden van veilige standaardinstellingen

Principes voor een veilige implementatie

  • Agenda
  • Microsoft Security Development Lifecycle (SDL)
  • Basisprincipes van bufferoverloop
    • Intel 80x86-processors – belangrijkste registers
    • Indeling van het geheugen
    • Het mechanisme van functieaanroepen in C/C++ op x86
    • Lokale variabelen en de stack-frame
    • Stackoverloop
      • Bufferoverloop in de stack
      • Inleidende oefeningen
      • Oefening BOFIntro
      • Oefening BOFIntro – bepalen van de stackindeling
      • Oefening BOFIntro – een eenvoudige exploit
  • Invoervalidatie
    • Grondbeginselen van invoervalidatie
    • Problemen met gehele getallen
      • Weergave van negatieve getallen
      • Integer-overloop
      • Rekenkundige overloop – wat is het resultaat?
      • Oefening IntOverflow
      • Wat is de waarde van Math.Abs(int.MinValue)?
    • Het beperken van integerproblemen
      • Methoden om integerproblemen te voorkomen
      • Voorkomen van rekenkundige overloop bij optellen
      • Voorkomen van rekenkundige overloop bij vermenigvuldigen
      • Overstromingen detecteren met het ‘checked’-sleutelwoord in C#
      • Oefening – gebruik van het ‘checked’-sleutelwoord in C#
      • Uitzonderingen die door rekenkundige overstroming ontstaan in C#
    • Casestudy – Integer-overloop in .NET
      • Een daadwerkelijk voorkomende integer-overloopkwetsbaarheid
      • Hoe zo’n kwetsbaarheid misbruikt kan worden
    • Path traversal-kwetsbaarheden
      • Beperken van path traversal-kwetsbaarheden

Dag 2

Principes voor een veilige implementatie

  • Injectieaanvallen
    • Typische methoden van SQL-injectieaanval
    • Blind en tijdgebonden SQL-injectie
    • Beperkende maatregelen tegen SQL-injectie
    • Command injection
  • Onvoldoende authenticatie – wachtwoordbeheer
    • Oefening – kwetsbaarheid van gehashte wachtwoorden
    • Beheer en opslag van wachtwoorden
    • Speciale hash-algoritmen voor wachtwoordopslag
  • Cross-Site Scripting (XSS)
    • Wat is cross-site scripting?
    • CSS-injectie
    • Hoe injecties via andere HTML-tags misbruikt kunnen worden
    • Preventiemethoden tegen XSS
  • Gebrekkige toegangscontrole per functie
    • Het filteren van bestandsinvoer bij uploads
  • Praktische cryptografie
    • Vertrouwelijkheid realiseren met symmetrische cryptografie
    • Symmetrische encryptiealgoritmen
    • Werking van blokcipher-algoritmen en hun modi
    • Hash-functies of bericht-digesten
    • Soorten hash-algoritmen
    • Message Authentication Code (MAC)
    • Integriteit en authenticiteit beveiligen met een symmetrische sleutel
    • Vertrouwelijkheid realiseren met openbare-sleutelcryptografie
    • Gouden regel: de eigenaar van de privésleutel bepaalt alles
    • Vaakgemaakte fouten bij wachtwoordbeheer
    • Oefening – hardgecodeerde wachtwoorden
    • Conclusie

Beveiligingstestmethoden en -hulpmiddelen

  • Verschillen tussen functionele testen en beveiligingstesten
  • Soorten beveiligingskwetsbaarheden
  • Prioritering van beveiligheidsproblemen
  • Plaatsing van beveiligingstesten binnen de SDLC
  • Stappen bij het opstellen van testplannen (risicoanalyse)
  • Scopebepaling en informatieverzameling
    • Betrokken partijen
    • Te beschermen gegevens en middelen
    • Het aanvalsvlak
    • Beveiligingsdoelstellingen voor de testfase
  • Bedreigingenmodelleren
    • Inleiding tot bedreigingenmodelleren
    • Profielen van potentiële aanvallers
    • Bedreigingenmodelleren op basis van attack trees
    • Analyse op basis van misbruik- en abuse-cases
    • Voorbeeld: een eenvoudige webshop in misbruiksscenario’s
    • Toepassing van de STRIDE-methode binnen SDL
    • Begrijpen wat de specifieke beveiligingsdoelstellingen zijn
    • Diagrammen: voorbeelden van DFD-elementen
    • Data Flow Diagram – een praktijkvoorbeeld
    • Klassificatie en identificatie van bedreigingen volgens SDL's STRIDE-principe en DFD-elementen
    • Risicoanalyse – indeling naar gevaarlijkheid
    • Het DREAD-model voor beoordeling van bedreigingen/risico’s
  • Testmethoden en -hulpmiddelen
    • Algemene testmethodieken
    • Toepasbare technieken in elk stadium van de SDLC
  • Codebeoordeling
    • Beoordelen van broncode voor beveiligingseisen
    • Taint analysis
    • Heuristische technieken
  • Statische codeanalyse
    • Wat is statische codeanalyse?
    • Oefening – gebruik maken van statische analysehulpmiddelen
  • Testen tijdens implementatiefase
    • Handmatige runtime-verificatie
    • Vergelijking: handmatige vs. geautomatiseerde beveiligingstesten
    • Penetratietesten
    • Stress-testen
  • Fuzzing
    • Geautomatiseerde beveiligingstesting – fuzzing
    • Uitdagingen die bij fuzzing komen kijken
  • Web-vulnerability scanners
    • Oefening – gebruik maken van een vulnerability scanner
  • Controle en versterking van de beveiligingsomgeving
    • Common Vulnerability Scoring System – CVSS
    • Programma's om kwetsbaarheden te scannen
    • Publieke databases met beveiligingsinformatie
  • Casestudy – Omzeiling van Forms Authentication
    • Kwetsbaarheid door NULL-byte afronding
    • Voorbeeldcode waarin omzeiling van Forms Authentication mogelijk is
    • Hoe deze vorm van kwetsbaarheid misbruikt kan worden

Verzameling bronnen en aanbevelingen

  • Bronnen voor het veilig coderen – een startpakket
  • Databases met beveiligingskwetsbaarheden
  • Richtlijnen voor veilig coderen in .NET op MSDN
  • Praktische cheat sheets voor veilig coderen in .NET
  • Aanbevolen boeken – zowel over .NET als ASP.NET
 14 Uren

Aangepaste bedrijfsopleiding

Opleidingsoplossingen ontworpen exclusief voor bedrijven.

  • Aangepaste inhoud: We passen de syllabus en praktijkopdrachten aan naar de echte doelen en behoeften van uw project.
  • Voor flexibel schema: Datums en tijden aangepast aan het rooster van uw team.
  • Formaat: Online (live), In-company (bij uw kantoren) of Hybride.
Investering

Prijs per privégroep, online live training, startend vanaf 3200 € + BTW*

Neem contact met ons op voor een exacte offerte en om onze laatste promoties te horen

Reviews (3)

Voorlopige Aankomende Cursussen

Gerelateerde categorieën