Takk for at du sendte din henvendelse! En av våre teammedlemmer vil kontakte deg straks.
Takk for at du sendte din bestilling! En av våre teammedlemmer vil kontakte deg straks.
Kursplan
Dag 1
IT-sikkerhet og sikker kodning
- Sjelens natur av sikkerhet
- Termer relatert til IT-sikkerhet
- Definisjon av risiko
- Ulike sider av IT-sikkerhet
- Krav fra ulike anvendelsesområder
- IT-sikkerhet vs. sikker kodning
-
Fra sårbarheter til botnety og cyberkriminalitet
- Sjelens natur av sikkerhetsfeil
- Grunner til vanskelighetene
- Fra en smittet datamaskin til målrettet angrep
-
Klassifisering av sikkerhetsfeil
- Landwehr’s taxonomi
- De syv ondskefulle kongedømmene
- OWASP Top Ten 2013
- OWASP Top Ten sammenligning 2003 – 2013
Introduksjon til Microsoft® Security Development Lifecycle (SDL)
- Dagsorden
-
Programvare under angrep...
- Cyberkriminalitetens utvikling
- Angrepene fokuserer på programvare
- Flest sårbarheter er i små ISV-applikasjoner
-
Opprinnelsen til Microsoft SDL...
- Sikkerhetstidslinjen hos Microsoft...
- Hvilke applikasjoner er påkrevd å følge SDL?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Pre-SDL-krav: Sikkerhetsutdannelse
- Fase En: Krav
- Fase To: Design
- Fase Tre: Implementering
- Fase Fire: Verifisering
- Fase Fem: Utgivelse – Responnplan
- Fase Fem: Utgivelse – Sluttsikkerhetsvurdering
- Fase Fem: Utgivelse – Arkivering
- Post-SDL-krav: Responn
- SDL-prosessveiledning for LOB-applikasjoner
- SDL-veiledning for agil metodikk
- Sikker programvareutvikling krever prosessforbedring
Prinsipper for sikkert design
-
Angrepsflate
- Reduksjon av angrepsflate
- Angrepsflate – et eksempel
- Analyse av angrepsflate
- Reduksjon av angrepsflate – eksempler
-
Personvern
- Personvern
- Forståelse av applikasjonsatferd og bekymringer
-
Dypgående forsvar
- SDL-kjerneprinsipp: Dypgående forsvar
- Dypgående forsvar – eksempel
-
Minst rettighetsprinsippet
- Minst rettigheter – eksempel
-
Sikre standardinnstillinger
- Sikre standardinnstillinger – eksempler
Prinsipper for sikker implementering
- Dagsorden
- Microsoft Security Development Lifecycle (SDL)
-
Grunnleggende prinsipper for buffer overflow
- Intel 80x86 Prosessorer – hovedregister
- Hukommelsesadresselayouten
- Funksjonshensiktsmekanismen i C/C++ på x86
- Lokale variabler og stackrammen
-
Stack overflow
- Buffer overflow på stacken
- Øvelser – introduksjon
- Øvelse BOFIntro
- Øvelse BOFIntro – bestem stacklayouten
- Øvelse BOFIntro – et enkelt angrep
-
Innmatningsvalidering
- Konsepter for innmatningsvalidering
-
Heltalsproblemer
- Representering av negative heltall
- Heltalsoverflow
- Aritmetisk overflow – gjett resultatet!
- Øvelse IntOverflow
- Hva er verdien av Math.Abs(int.MinValue)?
-
Mitisering av heltalsproblemer
- Mitisering av heltalsproblemer
- Unngå aritmetisk overflow – addisjon
- Unngå aritmetisk overflow – multiplikasjon
- Detektering av overflow med checked-nøkkelordet i C#
- Øvelse – Bruke checked-nøkkelordet i C#
- Unntak utløst av overflow i C#
-
Case study – heltalsoverflow i .NET
- En reell heltalsoverflow-sårbarhet
- Exploitering av heltalsoverflow-sårbarheten
-
Sårbarhet i path traversal
- Mitisering av path traversal
Dag 2
Prinsipper for sikker implementering
-
Injection
- Typiske SQL-injection-angrepsmetoder
- Blind og tidsbasert SQL injection
- Metoder for å beskytte mot SQL injection
- Kommandoinjection
-
Brutt autentisering - passordhåndtering
- Øvelse – svakhet ved krypterte passord
- Passordhåndtering og lagring
- Specialalgoritmer for hash for passordlagring
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS injection
- Exploitering: injection gjennom andre HTML-tagger
- Mitisering av XSS
-
Manglende funksjonnivås kontroll
- Filtrering av filopplasting
-
Praktisk kryptografi
- Sikkerhet med symmetrisk kryptografi
- Symmetriske krypteringsalgoritmer
- Blokkchiffre – moduser for operasjon
- Hash eller meldingsoversikt
- Hashalgoritmer
- Message Authentication Code (MAC)
- Sikkerhet og autentisitet med symmetrisk nøkkel
- Sikkerhet med offentlig nøkkels kryptering
- Regel av daumen – eierskap til privat nøkkel
- Typiske feil i passordhåndtering
- Øvelse – Hardcoded passord
- Konklusjon
Prinsipper for sikker verifisering
- Funksjonstesting vs. sikkerhetstesting
- Sikkerhetsfeil
- Prioritering
- Sikkerhetstesting i SDLC
- Trinn i testplanlegging (risikoanalyse)
-
Omfang og informasjonsinnsamling
- Interessenter
- Resurser
- Angrepsflate
- Sikkerhetsmål for testing
-
Truselmodellering
- Truselmodellering
- Angrepprofil
- Truselmodellering basert på angreps-tre
- Truselmodellering basert på misbruk/missbrukssaker
- Misbruk/missbrukssaker – et enkelt webbutikk-eksempel
- STRIDE per element tilnærming til truselmodellering – MS SDL
- Identifisering av sikkerhetsmål
- Diagrammering – eksempler på DFD-elementer
- Dataflytdiagram – et eksempel
- Truselenumerering – MS SDL’s STRIDE og DFD-elementer
- Risikoanalyse – klassifisering av trusler
- DREAD trusel/risikoklassemodell
-
Sikkerhetstestingsmetoder og verktøy
- Generelle testtilnærminger
- Metoder for ulike steg i SDLC
-
Kodelyse
- Kodelyse for programvare-sikkerhet
- Forurensningsanalyse
- Heuristikk
-
Statiske kodeanalyser
- Statiske kodeanalyser
- Øvelse – Bruk av statiske kodeanalyseverktøy
-
Testing av implementeringen
- Manuell kjøringstidverifisering
- Manuelle vs. automatiserte sikkerhetstester
- Penetrationstesting
- Stress-tester
-
Fuzzing
- Automatiserte sikkerhetstester - fuzzing
- Utfordringer med fuzzing
-
Web-sårbarhetslaster
- Øvelse – Bruk av sårbarhetsskenner
-
Kontroll og hardening av miljøet
- Common Vulnerability Scoring System – CVSS
- Sårbarhetsskenner
- Offentlige databaser
-
Case study – Forms Authentication Bypass
- NULL byte termineringsvulnerabilitet
- Sårbarheten i koden for Forms Authentication Bypass
- Exploitering av Forms Authentication Bypass
Kunskapskilder
- Sikre kodingkilder – et starterkit
- Sårbarhetsdatabaser
- .NET sikre kodningsveiledninger på MSDN
- .NET sikre kodningscheatsheets
- Anbefalte bøker – .NET og ASP.NET
14 Timer
Referanser (3)
Erfargingdeling, lærerens kunnskap og verdi.
Carey Fan - Logitech
Kurs - C/C++ Secure Coding
Maskinoversatt
Trainerens kunnskap var meget høy - han visste hva han snakket om og hadde svar på våre spørsmål
Adam - Fireup.PRO
Kurs - Advanced Java Security
Maskinoversatt
Emnet er aktuelt og jeg trengte å oppdatere meg
Damilano Marco - SIAP s.r.l.
Kurs - Secure Developer Java (Inc OWASP)
Maskinoversatt