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-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
Getuigenissen (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