Bedankt voor uw aanvraag! Een van onze medewerkers neemt binnenkort contact met u op
Bedankt voor uw boeking! Een van onze medewerkers neemt binnenkort contact met u op.
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.
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)
Ervaring delen, de kennis en waarde van de docent.
Carey Fan - Logitech
Cursus - C/C++ Secure Coding
Automatisch vertaald
de kennis van de trainer was zeer hoog - hij wist waarover hij het had en kon antwoord geven op onze vragen
Adam - Fireup.PRO
Cursus - Advanced Java Security
Automatisch vertaald
Het onderwerp is actueel en ik moest bijgewerkt worden.
Damilano Marco - SIAP s.r.l.
Cursus - Secure Developer Java (Inc OWASP)
Automatisch vertaald