Kursplan
Dag 1
- IT-sikkerhet og sikker koding
- Begrepet sikkerhet
- Termer relatert til IT-sikkerhet
- Definisjon av risiko
- Ulike aspekter av IT-sikkerhet
- Krav fra ulike applikasjonsområder
- IT-sikkerhet vs. sikker koding
- Fra sårbarheter til botnett og kyberkriminalitet
- Naturen av sikkerhetsfeil
- Årsaker til vanskeligheter
- Fra infisert datamaskin til målrettede angrep
- Klassifisering av sikkerhetsfeil
- Landwehrs taksonomi
- De syv onde riker
- OWASP Topp Ti 2013
- OWASP Topp Ti sammenligning 2003 – 2013
- Introduksjon til Microsoft® Sikkerhetsutviklingslivssyklus (SDL)
- Agenda
- Applikasjoner under angrep...
- Utvikling av kyberkriminalitet
- Angrep er fokusert på applikasjoner
- De fleste sårbarhetene er i mindre ISV-applikasjoner
- Opphavet til Microsoft SDL...
- Sikkerhetstidlinje hos Microsoft...
- Hvilke applikasjoner må følge SDL?
- Microsoft Sikkerhetsutviklingslivssyklus (SDL)
- Microsoft Sikkerhetsutviklingslivssyklus (SDL)
- Forkrav til SDL: Sikkerhetsopplæring
- Fase En: Krav
- Fase To: Design
- Fase Tre: Implementering
- Fase Fire: Verifisering
- Fase Fem: Utgivelse – Responsplan
- Fase Fem: Utgivelse – Endelig sikkerhetsvurdering
- Fase Fem: Utgivelse – Arkivering
- Etterkrav til SDL: Respons
- Prosessveiledning for SDL for LOB-applikasjoner
- SDL-veiledning for Agile-metodologier
- Sikker programvareutvikling krever prosessforbedring
- Sikre designtprinsipper
- Angrepsflate
- Reduksjon av angrepsflate
- Angrepsflate – et eksempel
- Analyse av angrepsflate
- Reduksjon av angrepsflate – eksempler
- Personvern
- Personvern
- Forstå applikasjonsatferd og bekymringer
- Dybdeforsvar
- SDL-kjernprinsipp: Dybdeforsvar
- Dybdeforsvar – et eksempel
- Prinsippet om minst mulig tilgang
- Minst mulig tilgang – et eksempel
- Sikre standardinnstillinger
- Sikre standardinnstillinger – eksempler
- Angrepsflate
- Sikre implementeringsprinsipper
- Agenda
- Microsoft Sikkerhetsutviklingslivssyklus (SDL)
- Grunnleggende bufferoverløp
- Intel 80x86-prosessorer – hovedregistre
- Hukommelsesadresselayout
- Funksjonskallmekanisme i C/C++ på x86
- Lokale variabler og stakkramme
- Stakkoverløp
- Bufferoverløp på stakken
- Øvelser – introduksjon
- Øvelse BOFIntro
- Øvelse BOFIntro – bestem stakklayout
- Øvelse BOFIntro – et enkelt utnyttbart eksempel
- Inndatavalidering
- Konsepter for inndatavalidering
- Heltalproblem
- Representasjon av negative heltall
- Heltaloverløp
- Aritmetisk overløp – gjett utdata!
- Øvelse IntOverflow
- Hva er verdien av Math.Abs(int.MinValue)?
- Mindre heltalproblem
- Redusere heltalproblem
- Unngå aritmetisk overløp – addisjon
- Unngå aritmetisk overløp – multiplikasjon
- Detektere overløp med checked-nøkkelord i C#
- Øvelse – Bruk checked-nøkkelord i C#
- Unntak utløst av overløp i C#
- Tilfelle: Heltaloverløp i .NET
- En reell heltaloverløpssårbarhet
- Utnytting av heltaloverløpssårbarheten
- Sti-navigasjons-sårbarhet
- Mottiltak mot sti-navigering
Dag 2
- Sikre implementeringsprinsipper
- Injeksjon
- Vanlige SQL injeksjonsangrep
- Blind og tidbasert SQL injeksjon
- SQL injeksjonsbeskyttelse
- Kommandoinjeksjon
- Feil autentisering – passordhåndtering
- Øvelse – Svakheter ved hash-passord
- Passordhåndtering og lagring
- Spesialiserte hash-algoritmer for passordlagring
- Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS injeksjon
- Utnyttelse: injeksjon gjennom andre HTML-tagger
- Forebygging av XSS
- Manglende funksjonsnivå tilgangskontroll
- Filtrering av filopplasting
- Praktisk kryptografi
- Opprettholde konfidensialitet med symmetrisk kryptografi
- Symmetriske krypteringsalgoritmer
- Blokk-sifre – driftstilstand
- Hash eller meldingsdigest
- Hash-algoritmer
- Meldingsautentiseringskode (MAC)
- Opprettholde integritet og autentisitet med en symmetrisk nøkkel
- Opprettholde konfidensialitet med offentlig-nøkkel kryptering
- Tommelregel – eie av privat nøkkel
- Vanlige feil i passordhåndtering
- Øvelse – Hardkodet passord
- Konklusjon
- Injeksjon
- Sikre verifikasjonsprinsipper
- Funksjonell testing vs. sikkerhetstesting
- Sikkerhetsmangler
- Prioritering
- Sikkerhetstesting i SDLC
- Treningsplanlegging (risikoanalyse)
- Interessenter
- Verdier
- Angrepsflate
- Sikkerhetsmål for testing
- Trusselmodellering
- Trusselmodellering
- Angrepsprofil
- Trusselmodellering basert på angrepstrær
- Trusselmodellering basert på misbruk/mishandling
- Misbruk/mishandling – et enkelt eksempel på nettbutikk
- STRIDE per element tilnærming til trusselmodellering – MS SDL
- Identifisere sikkerhetsmål
- Diagrammer – eksempler på DFD-elementer
- Dataflytdiagram – eksempel
- Trusselenumering – MS SDL’s STRIDE og DFD-elementer
- Risikoanalyse – klassifisering av trusler
- DREAD trussel/riskeringssystem
- Sikkerhetstestingsteknikker og verktøy
- Generelle testtilnærminger
- Teknikker for ulike trinn i SDLC
- Kodegjennomgang
- Kodegjennomgang for programvare sikkerhet
- Skjult analyse
- Heuristikk
- Statisk kodeanalyse
- Statisk kodeanalyse
- Statisk kodeanalyse
- Øvelse – Bruk statisk kodeanalyseverktøy
- Testing av implementering
- Manuell kjøretidsverifisering
- Manuell vs. automatisk sikkerhetstesting
- Inntrengingstesting
- Stress-testing
- Fuzzing
- Automatisk sikkerhetstesting - fuzzing
- Utfordringer med fuzzing
- Webvulnerabilitetsskannere
- Øvelse – Bruk en vulnerabilitetsskanner
- Sjekking og herding av miljø
- Common Vulnerability Scoring System – CVSS
- Vulnerabilitetsskannere
- Offentlige databaser
- Tilfelle: Omgang med Forms Authentication Bypass
- NULL-byteterminasjons-sårbarhet
- Forms Authentication Bypass-sårbarheten i koden
- Utnytting av Forms Authentication Bypass
- Kildeskjema
- Kilder for sikker koding – et startsett
- Sårbarhetsdatabaser
- .NET sikker kodingsveiledning på MSDN
- .NET sikker kodingsveiledning
- Anbefalte bøker – .NET og ASP.NET
Testimonials (5)
Flere eksempler for hver modul og stor kunnskap om treneren.
Sebastian - BRD
Kurs - Secure Developer Java (Inc OWASP)
Machine Translated
Module3 Applications Attacks and Exploits, XSS, SQL injection Module4 Servers Attacks and Exploits, DOS, BOF
Tshifhiwa - Vodacom
Kurs - How to Write Secure Code
Machine Translated
Generell kursinformasjon
Paulo Gouveia - EID
Kurs - C/C++ Secure Coding
Machine Translated
The trainer's subject knowledge was excellent, and the way the sessions were set out so that the audience could follow along with the demonstrations really helped to cement that knowledge, compared to just sitting and listening.
Jack Allan - RSM UK Management Ltd.
Kurs - Secure Developer .NET (Inc OWASP)
Nothing it was perfect.