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
Leveringsopties
PRIVÉGROEPSTRAINING
Onze identiteit draait om het leveren van precies wat onze klanten nodig hebben.
- Pre-cursusgesprek met uw trainer
- Aanpassing van de leerervaring om uw doelen te bereiken -
- Op maat gemaakte overzichten
- Praktische, praktische oefeningen met gegevens / scenario's die herkenbaar zijn voor de cursisten
- Training gepland op een datum naar keuze
- Gegeven online, op locatie/klaslokaal of hybride door experts die ervaring uit de echte wereld delen
Private Group Prices RRP from €4560 online delivery, based on a group of 2 delegates, €1440 per additional delegate (excludes any certification / exam costs). We recommend a maximum group size of 12 for most learning events.
Neem contact met ons op voor een exacte offerte en om onze laatste promoties te horen
OPENBARE TRAINING
Kijk op onze public courses
Reviews (5)
Meerdere voorbeelden voor elke module en grote kennis van de trainer.
Sebastian - BRD
Cursus - Secure Developer Java (Inc OWASP)
Automatisch vertaald
Module3 Applicaties Aanvallen en Exploits, XSS, SQL injectie Module4 Servers Aanvallen en Exploits, DOS, BOF
Tshifhiwa - Vodacom
Cursus - How to Write Secure Code
Automatisch vertaald
Algemene cursusinformatie
Paulo Gouveia - EID
Cursus - C/C++ Secure Coding
Automatisch vertaald
De trainer had een uitstekende kennis van het onderwerp, en de manier waarop de sessies waren ingericht zodat het publiek mee kon doen met de demonstraties, hielp enorm om die kennis te verankeren, in tegenstelling tot gewoon zitten en luisteren.
Jack Allan - RSM UK Management Ltd.
Cursus - Secure Developer .NET (Inc OWASP)
Automatisch vertaald
Niks was perfect.
Zola Madolo - Vodacom
Cursus - Android Security
Automatisch vertaald