Course Outline

Dag 1

  • IT-beveiliging en veilige codering
    • Aard van de beveiliging
    • IT-beveiligingsgerelateerde termen
    • Definitie van risico
    • Verschillende aspecten van IT-beveiliging
    • Vereisten van verschillende toepassingsgebieden
    • IT-beveiliging versus veilige codering
    • Van kwetsbaarheden tot botnets en cybercriminaliteit
      • Aard van de beveiligingsfouten
      • Redenen van moeilijkheden
      • Van een geïnfecteerde computer tot gerichte aanvallen
    • Classificatie van beveiligingsfouten
      • De taxonomie van Landwehr
      • De zeven verderfelijke koninkrijken
      • OWASP Top Tien 2013
      • OWASP Top Tien-vergelijking 2003 – 2013
  • Inleiding tot de Microsoft® Security Development Lifecycle (SDL)
    • Agenda
    • Applicaties worden aangevallen...
      • Evolutie van cybercriminaliteit
      • Aanvallen richten zich op toepassingen
      • De meeste kwetsbaarheden bevinden zich in kleinere ISV-apps
    • Oorsprong van de Microsoft SDL...
      • Beveiligingstijdlijn op Microsoft...
      • Welke apps zijn vereist om SDL te volgen?
    • Microsoft Levenscyclus van beveiligingsontwikkeling (SDL)
      • Microsoft Levenscyclus van beveiligingsontwikkeling (SDL)
      • Pre-SDL-vereisten: beveiligingstraining
      • Fase één: vereisten
      • Fase twee: ontwerp
      • Fase drie: implementatie
      • Fase vier: verificatie
      • Fase vijf: Vrijgave – Reactieplan
      • Fase vijf: Release – Laatste beveiligingsbeoordeling
      • Fase vijf: Vrijgeven – Archief
      • Post-SDL-vereiste: reactie
      • SDL-procesbegeleiding voor LOB-apps
      • SDL-richtlijnen voor Agile-methodologieën
      • Veilige softwareontwikkeling vereist procesverbetering
  • Veilige ontwerpprincipes
    • Aanvalsoppervlak
      • Vermindering van het aanvalsoppervlak
      • Aanvalsoppervlak – een voorbeeld
      • Analyse van het aanvalsoppervlak
      • Vermindering van het aanvalsoppervlak – voorbeelden
    • Privacy
      • Privacy
      • Inzicht in het gedrag en de problemen van toepassingen
    • Verdediging in de diepte
      • SDL-kernprincipe: diepgaande verdediging
      • Diepteverdediging – voorbeeld
    • Least privilege-principe
      • Minste privilege – voorbeeld
    • Veilige standaardinstellingen
      • Veilige standaardinstellingen – voorbeelden
  • Veilige implementatieprincipes
    • Agenda
    • Microsoft Levenscyclus van beveiligingsontwikkeling (SDL)
    • Basisprincipes van bufferoverflow
      • Intel 80x86 processors – hoofdregisters
      • De indeling van het geheugenadres
      • Het functieaanroepmechanisme in C/C++ op x86
      • De lokale variabelen en het stapelframe
      • Stapeloverloop
        • Bufferoverloop op de stapel
        • Oefeningen – introductie
        • Oefening BOFIntro
        • Oefening BOFIntro – bepaal de stapelindeling
        • Oefening BOFIntro – een eenvoudige exploit
    • Invoervalidatie
      • Invoervalidatieconcepten
      • Problemen met gehele getallen
        • Vertegenwoordiging van negatieve gehele getallen
        • Overloop van gehele getallen
        • Rekenkundige overloop – raad de uitvoer!
        • Oefening IntOverflow
        • Wat is de waarde van Math.Abs(int.MinValue)?
      • Beperking van het probleem van gehele getallen
        • Beperking van het probleem van gehele getallen
        • Rekenkundige overloop vermijden – optellen
        • Het vermijden van rekenkundige overloop – vermenigvuldiging
        • Overflow detecteren met het aangevinkte trefwoord in C#
        • Oefening – Het aangevinkte trefwoord gebruiken in C#
        • Uitzonderingen veroorzaakt door overflows in C#
      • Casestudy – Overflow van gehele getallen in .NET
        • Een real-world integer overflow-kwetsbaarheid
        • Het misbruiken van de kwetsbaarheid voor integer-overflow
      • Kwetsbaarheid bij het doorlopen van paden
        • Beperking van padovergang

Dag 2

  • Veilige implementatieprincipes
    • Injectie
      • Typische SQL Injectieaanvalmethoden
      • Blinde en tijdgebaseerde SQL injectie
      • SQL Injectiebeschermingsmethoden
      • Commando injectie
    • Verbroken authenticatie - wachtwoordbeheer
      • Oefening – Zwakte van gehashte wachtwoorden
      • Wachtwoordbeheer en opslag
      • Hash-algoritmen voor speciale doeleinden voor wachtwoordopslag
    • Cross-site scripting (XSS)
      • Cross-site scripting (XSS)
      • CSS injectie
      • Exploitatie: injectie via andere HTML tags
      • XSS-preventie
    • Ontbrekende toegangscontrole op functieniveau
      • Bestandsuploads filteren
    • Praktische cryptografie
      • Vertrouwelijkheid bieden met symmetrische cryptografie
      • Symmetrische coderingsalgoritmen
      • Blokcodes – werkingsmodi
      • Hash of berichtoverzicht
      • Hash-algoritmen
      • Berichtauthenticatiecode (MAC)
      • Integriteit en authenticiteit bieden met een symmetrische sleutel
      • Bied vertrouwelijkheid met encryptie met publieke sleutels
      • Vuistregel – bezit van een privésleutel
      • Typische fouten bij wachtwoordbeheer
      • Oefening – Hardgecodeerde wachtwoorden
      • Conclusie
  • Veilige verificatieprincipes
    • Functioneel testen versus beveiligingstesten
    • Beveiligingsproblemen
    • Prioritering
    • Beveiligingstests in de SDLC
    • Stappen van testplanning (risicoanalyse)
    • Scoring en informatieverzameling
      • Belanghebbenden
      • Activa
      • Het aanvalsoppervlak
      • Beveiligingsdoelstellingen voor testen
    • Modellering van bedreigingen
      • Modellering van bedreigingen
      • Profielen van aanvallers
      • Bedreigingsmodellering op basis van aanvalsbomen
      • Bedreigingsmodellering op basis van gevallen van misbruik/misbruik
      • Misbruik/misbruik gevallen – een eenvoudig voorbeeld van een webshop
      • STRIDE per element-benadering van bedreigingsmodellering – MS SDL
      • Beveiligingsdoelstellingen identificeren
      • Diagrammen – voorbeelden van DFD-elementen
      • Gegevensstroomdiagram – voorbeeld
      • Opsomming van bedreigingen – STRIDE- en DFD-elementen van MS SDL
      • Risicoanalyse – classificatie van bedreigingen
      • Het DREAD-bedreigings-/risicorangschikkingsmodel
    • Technieken en hulpmiddelen voor het testen van beveiliging
      • Algemene testbenaderingen
      • Technieken voor verschillende stappen van de SDLC
    • Codebeoordeling
      • Codebeoordeling voor softwarebeveiliging
      • Smaakanalyse
      • Heuristiek
    • Statische codeanalyse
      • Statische codeanalyse
      • Statische codeanalyse
      • Oefening – Analysetools voor statische code gebruiken
    • Het testen van de implementatie
      • Handmatige runtimeverificatie
      • Handmatige versus geautomatiseerde beveiligingstests
      • Penetratie testen
      • Stresstesten
    • Fuzzend
      • Geautomatiseerde beveiligingstests - fuzzing
      • Uitdagingen van fuzzen
    • Scanners voor webkwetsbaarheid
      • Oefening – Een kwetsbaarheidsscanner gebruiken
    • Het controleren en verharden van het milieu
      • Algemeen kwetsbaarheidsscoresysteem – CVSS
      • Kwetsbaarheidsscanners
      • Openbare databases
    • Casestudy – Formulierauthenticatie omzeilen
      • Kwetsbaarheid voor het beëindigen van NULL-bytes
      • De Forms Authentication Bypass-kwetsbaarheid in de code
      • Het misbruiken van de omzeiling van formulierauthenticatie
  • Kennisbronnen
    • Veilige codeerbronnen – een starterspakket
    • Kwetsbaarheidsdatabases
    • Richtlijnen voor veilige .NET-codering op MSDN
    • .NET-spiekbriefjes voor beveiligde codering
    • Aanbevolen boeken – .NET en ASP.NET

  14 Hours

Getuigenissen (9)

Related Courses

Standard Java Security

  14 Hours

Java and Web Application Security

  21 Hours

Advanced Java Security

  21 Hours

Advanced Java, JEE and Web Application Security

  28 Hours

.NET, C# and ASP.NET Security Development

  14 Hours

Comprehensive C# and .NET Application Security

  21 Hours

Advanced C#, ASP.NET and Web Application Security

  21 Hours

Web Application Security

  14 Hours

Security Testing

  14 Hours

Secure Web Application Development and Testing

  21 Hours

Secure coding in PHP

  21 Hours

Combined C/C++, JAVA and Web Application Security

  28 Hours

Combined JAVA, PHP and Web Application Security

  28 Hours

Android Security

  14 Hours

Related Categories