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 koding
- Natur i sikkerhet
- IT-sikkerhetsrelaterte termer
- Definisjon av risiko
- Ulike aspekter ved IT-sikkerhet
- Krav fra ulike applikasjonsområder
- IT-sikkerhet vs. sikker koding
-
Fra sårbarheter til botnett og cyberkriminalitet
- Natur i sikkerhetsfeil
- Årsaker til utfordringer
- Fra infisert datamaskin til målrettede angrep
-
Klassifisering av sikkerhetsfeil
- Landwehrs taksonomi
- De syv farlige rijkene
- OWASP Top Ten 2013
- OWASP Top Ten sammenligning 2003 – 2013
Innføring i Microsoft® Security Development Lifecycle (SDL)
- Agenda
-
Applikasjoner under angrep...
- Cyberkriminalitetens utvikling
- Angrep fokuserer på applikasjoner
- De fleste sårbarheter er i mindre ISV-applikasjoner
-
Opprinnelsen til Microsoft SDL...
- Sikkerhetstidslinje ved Microsoft...
- Hvilke applikasjoner er pålagt å følge SDL?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Pre-SDL-krav: Sikkerhetstrening
- Fase ett: Krav
- Fase to: Design
- Fase tre: Implementering
- Fase fire: Verifisering
- Fase fem: Utgivelse – Responshåndtering
- Fase fem: Utgivelse – Endelig sikkerhetsvurdering
- Fase fem: Utgivelse – Arkivering
- Post-SDL-krav: Respons
- SDL-prosessveiledning for LOB-applikasjoner
- SDL-veiledning for agile metoder
- Sikker programvareutvikling krever prosessforbedring
Sikkerhetsdesignprinsipper
-
Angrepsflate
- Reduksjon av angrepsflate
- Angrepsflate – et eksempel
- Analyse av angrepsflate
- Reduksjon av angrepsflate – eksempler
-
Personvern
- Personvern
- Forståelse av applikasjonsatferd og bekymringer
-
Forsvar i dybden
- SDL-kjerneprinsipp: Forsvar i dybden
- Forsvar i dybden – eksempel
-
Minste privilegium-prinsipp
- Minste privilegium – eksempel
-
Sikker standardinnstilling
- Sikker standardinnstilling – eksempler
Prinsipper for sikker implementering
- Agenda
- Microsoft Security Development Lifecycle (SDL)
-
Grunnleggende kunnskap om buffer overflow
- Intel 80x86-prosessorer – hovedregistre
- Minnetes adresselayout
- Funktionskallmekanismen i C/C++ på x86
- Lokale variabler og stackrammen
-
Stakkoverflow
- Buffer overflow på stakken
- Øvelser – innføring
- Øvelse BOFIntro
- Øvelse BOFIntro – bestem stakklayouten
- Øvelse BOFIntro – en enkel exploit
-
Inputvalidering
- Begreper for inputvalidering
-
Heltallsproblemer
- Representering av negative heltall
- Heltallsoverflow
- Arimetisk overflow – gjett utdataen!
- Øvelse IntOverflow
- Hva er verdien av Math.Abs(int.MinValue)?
-
Mitigering av heltallsproblemer
- Mitigering av heltallsproblemer
- Å unngå arimetisk overflow – addisjon
- Å unngå arimetisk overflow – multiplikasjon
- Detektering av overflow med checked-nøkkelordet i C#
- Øvelse – Bruk av checked-nøkkelordet i C#
- Unntak utløst av overflows i C#
-
Casestudie – Heltallsoverflow i .NET
- En reell helletallsoverflow-sårbarhet
- Eksploitere helletallsoverflow-sårbarheten
-
Path traversal-sårbarhet
- Mitigering av path traversal
Dag 2
Prinsipper for sikker implementering
-
Injeksjon
- Typiske angrep metoder for SQL-injeksjon
- Blinde og tidsbasert SQL-injeksjon
- Beskyttelsesmetoder mot SQL-injeksjon
- Kommandoinjeksjon
-
Avbrutt autentisering – passordhåndtering
- Øvelse – Svakheter ved hashede passord
- Passordhåndtering og lagring
- Spesialformål hash-algoritmer for passordlagring
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS-injeksjon
- Eksploit: injeksjon gjennom andre HTML-tagger
- XSS-prevensjon
-
Manglende funksjonell tilgangsstyring
- Filtring av filopplastinger
-
Praktisk kryptografi
- Tilbyr konfidensialitet med symmetrisk kryptografi
- Symmetriske krypteringsalgoritmer
- Blokkkrypteringer – driftsmoduser
- Hash eller meldingssjekksum
- Hash-algoritmer
- Message Authentication Code (MAC)
- Tilbyr integritet og autentisitet med symmetrisk nøkkel
- Tilbyr konfidensialitet med offentlig nøkkelkryptering
- Tommelfingerregel – eierskap av privat nøkkel
- Typiske feil i passordhåndtering
- Øvelse – Hardkodede passord
- Konklusjon
Sikkerhetsverifiseringsprinsipper
- Funktionell testing vs. sikkerhetstesting
- Sikkerhetssårbarheter
- Prioritering
- Sikkerhetstesting i SDLC
- Trinn i testplanlegging (risikoanalyse)
-
Omfatt og informasjonsinnsamling
- Interessenter
- Ressurser
- Angrepsflaten
- Sikkerhetsmål for testing
-
Trusselmodellering
- Trusselmodellering
- Angriperprofiler
- Trusselmodellering basert på angrepstre
- Trusselmodellering basert på misbruk/feilbruksfall
- Misbruk/feilbruksfall – et enkelt Web shop-eksempel
- STRIDE per element tilnærming til trusselmodellering – MS SDL
- Identifisering av sikkerhetsmål
- Diagrammering – eksempler på DFD-elementer
- Dataflyt-diagram – eksempel
- Trusselnummerering – MS SDLs STRIDE og DFD-elementer
- Risikoanalyse – klassifisering av trusler
- DREAD trussel/risiko-rangeringsmodell
-
Sikkerhetstestingsteknikker og -verktøy
- Generelle testtilnærminger
- Teknikker for ulike trinn i SDLC
-
Kodegjennomgang
- Kodegjennomgang for programvaresikkerhet
- Taint-analyse
- Heuristikker
-
Statisk kodeanalyse
- Statisk kodeanalyse
- Øvelse – Bruk av statiske kodeanalyseverktøy
-
Testing av implementeringen
- Manuell kjøre-tid-verifisering
- Manuell vs. automatisert sikkerhetstesting
- Penetrasjonstesting
- Belastningstester
-
Fuzzing
- Automatisert sikkerhetstesting – fuzzing
- Utfordringer med fuzzing
-
Web-sårbarhetsskannere
- Øvelse – Bruk av en sårbarhetsskanner
-
Kontrollering og herding av miljøet
- Common Vulnerability Scoring System – CVSS
- Sårbarhetsskannere
- Offentlige databaser
-
Casestudie – Forms Authentication Bypass
- NULL-byte terminasjonssårbarhet
- Forms Authentication Bypass-sårbarheten i koden
- Eksploitering av Forms Authentication Bypass
Kunnskapskilder
- Kilder til sikker koding – en starterpakke
- Sårbarhetsdatabaser
- .NET-sikker koding retningslinjer på MSDN
- .NET-sikker koding cheat sheets
- 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