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
- Aanvalsoppervlak
- 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
- Injectie
- 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
Getuigenissen (10)
de balans tussen hoorcollege en praktijk, het ritme, de trainerskennis en pedagogische vaardigheid
Armando Pinto - EID
Cursus - C/C++ Secure Coding
Machine Translated
Very good knowledge and character.
Constantinos Michael
Cursus - Java and Web Application Security
Regelmatig wijzigingen pushen, want op dag 3 begon ik meer te verdwalen dan voorheen en was het moeilijker om een fout snel op te sporen, ik kon snel uitchecken voor de laatste wijziging en op de hoogte zijn van het materiaal
Paulina
Cursus - Advanced Java Security
Machine Translated
Het is heel goed om te begrijpen hoe een hacker sites zou kunnen analyseren op zwakke punten en op de tools die ze zouden kunnen gebruiken.
Roger - OTT Mobile
Cursus - .NET, C# and ASP.NET Security Development
Machine Translated
Beginning by how to hack to better understand how to secure was very interesting and appreciated.
Raphaël Capocasale - Mikron SA Boudry
Cursus - Advanced C#, ASP.NET and Web Application Security
Web 的同源策略和跨域的内容,以及XSS 的危害,這個很貼切我們的工作。
Princess Ou - 广东溢达纺织有限公司
Cursus - Web Application Security
Trainer willing to answer questions and give bunch of examples for us to learn.
Eldrick Ricamara - Human Edge Software Philippines, Inc. (part of Tribal Group)
Cursus - Security Testing
Leren omgaan met nieuwe tools. Vooral om te zien hoe beveiligingstests konden worden uitgevoerd
Jason - Kropman
Cursus - Secure Web Application Development and Testing
Machine Translated
The real life examples.
Marios Prokopiou
Cursus - Secure coding in PHP
The Burpe suite i need more training in this