Kursplan
I. Introduksjon til sikker koding og webapplikasjonssikkerhet
1. Det moderne trusselsbildet for webapplikasjoner
- Vanlige angrepsvektorer for webapplikasjoner
- Sikkerhetsrisikoer i moderne ASP.NET-applikasjoner
- Den sikre kodingens rolle i programvareutvikling
- Innføring til OWASP-stiftelsen og dens ressurser
2. Prinsipper for sikker programvareutvikling
- Sikkerhet designet inn (Security by design)
- Forsvar i dybden (Defense in depth)
- Minst mulig tilgang (Least privilege)
- Feilende sikkert (Fail securely)
- Sikre standardinnstillinger (Secure defaults)
- Grunnleggende trusselvurdering
II. Sikker utviklingslivssyklus (SDL)
1. Livssyklussen for sikker programvareutvikling
- Sikkerhet gjennom hele utviklingslivssyklusen
- Sikkerhetskrav
- Sikker arkitektur og design
- Praksis for sikker koding
- Sikkerhetstesting og validering
- Sikker distribusjon og vedlikehold
2. Risikovurdering og trusselvurdering
- Identifisering av aktiva og trusler
- Analyse av angripsflate
- Introduksjon til STRIDE-modellen
- Prioritering av sikkerhetsrisikoer
III. OWASP Top 10 for ASP.NET-applikasjoner
1. Forståelse av OWASP Top 10
- Svikt i tilgangskontroll (Broken Access Control)
- Kryptografiske feil (Cryptographic Failures)
- Injeksjon (Injection)
- Usikre designtvalg (Insecure Design)
- Sikkerhetsfeilkonfigurasjon (Security Misconfiguration)
- Sårbar og utdaterte komponenter (Vulnerable and Outdated Components)
- Feil ved identifikasjon og autentisering (Identification and Authentication Failures)
- Svikt i programvare- og dataintegritet (Software and Data Integrity Failures)
- Svikt i sikkerhetslogging og overvåking (Security Logging and Monitoring Failures)
- Falsk forespørsel på server-siden (SSRF) (Server-Side Request Forgery)
2. Anvendelse av OWASPs anbefalinger
- Metoder for sikker koding
- Forebyggende tiltak
- Praksis for sikker konfigurasjon
- Eksempler og demonstrasjoner fra virkeligheten
IV. Sikkerhet ved autentisering og autorisering
1. Grunnleggende om autentisering
- Autentiseringsmekanismer i ASP.NET
- Passordsikkerhet
- Flerfaktorautentisering
- Sesjonsadministrasjon
- Håndtering av identitet (Identity management)
2. Autorisering og tilgangskontroll
- Autorisering basert på roller
- Autorisering basert på krav (Claims-based authorization)
- Autorisering basert på politikker
- Forebygging av privilegieøkning
- Beskyttelse av sensitive ressurser
V. Forebygging av injeksjonsangrep
1. Sårbarheter for injeksjon
- SQL-injeksjon
- Kommandoinjeksjon
- LDAP-injeksjon
- XML-injeksjon
- Oversikt over NoSQL-injeksjon
2. Metoder for sikker koding
- Parametriserte spørringer
- Innvalidering
- Utgangskodning (Output encoding)
- Sikkerhetsaspekter ved ORM (Object-Relational Mapping)
- Sikre rutiner for databasetilgang
VI. Forebygging av Cross-Site Scripting (XSS)
1. Forståelse av XSS
- Gemt XSS (Stored XSS)
- Reflektert XSS (Reflected XSS)
- DOM-basert XSS
- Angrepsscenarier
2. Forebygging av XSS
- Utgangskodning (Output encoding)
- Innvalidering
- Innholdssikkerhetspolicy (CSP) (Content Security Policy)
- Sikker håndtering av HTML og JavaScript
- ASP.NET-sikkerhetsfunksjoner for å forebygge XSS
VII. Forebygging av Cross-Site Request Forgery (CSRF)
1. Forståelse av CSRF
- Hvordan CSRF-angrep fungerer
- Vanlige angripsscenarier
- Beslutningsmessig påvirkning (Business impact)
2. Beskyttelse mot CSRF
- Tokens for å hindre falske forespørsler (Anti-forgery tokens)
- SameSite-cookie
- Sikker sesjonsadministrasjon
- Mekanismer i ASP.NET for å hindre falske forespørsler
VIII. Sikker konfigurasjon av ASP.NET-applikasjoner
1. Sikkerhetsfunksjoner i ASP.NET
- Sikkerhet for konfigurasjon
- Sikre HTTP-overskrifter
- Konfigurasjon av HTTPS og TLS
- Håndtering av hemmeligheter (Secrets management)
- Sikker feilhåndtering
2. Beskyttelse av sensitive data
- Databeskyttelses-API-er
- Sikker lagring av legitimasjon
- Gr unnleggende kryptering
- Nøkkelhåndtering
IX. Innvalidering og sikker datahåndtering
1. Validering av brukerinput
- Hvittliste versus svartliste
- Serverside validering
- Vurderinger ved klient-side validering
- Sikkerhet ved filopplastning
2. Sikker databehandling
- Sikkerhet ved serialisering
- Risikoer ved deserialisering
- Dataintegritet
- Sikre rutiner for logging
X. Penetration testing og sikkerhetsverifisering
1. Metodikk for penetration testing
- Planlegging av sikkerhetsvurderinger
- Identifisering av sårbarheter
- Konsepter for utnyttelse (Exploitation)
- Rapportering av funn
2. Teknikker for sikkerhetstesting
- Statisk applikasjonssikkerhetstesting (SAST)
- Dynamisk applikasjonssikkerhetstesting (DAST)
- Interaktiv applikasjonssikkerhetstesting (IAST)
- Analyse av avhengigheter og komponenter
- Manuell gjennomgang av kode
XI. Sikring av ASP.NET-applikasjoner
1. Anvendelse av sikre kodingsrutiner
- Sikker implementering av autentisering
- Sikker implementering av autorisering
- Sesjonssikkerhet
- Ekscepthåndtering
- Logging og overvåking
- Tilpasninger for sikker distribusjon
2. Best practices for sikkerhet
- Standarder for sikker koding
- Håndtering av avhengigheter
- Håndtering av patcher
- Kontinuerlig forbedring av sikkerheten
XII. Praktisk verksted innen sikkerhet
1. Identifisering og utnyttelse av vanlige sårbarheter
- Analyse av usikker ASP.NET-kode
- Identifisering av sårbarheter i OWASP Top 10
- Forståelse av angrepsmetoder
- Vurdering av applikasjonssikkerhet
2. Retting av sikkerhetsproblemer
- Implementering av fikser for sikker koding
- Validering av mot tiltak
- Testing av rettede applikasjoner
- Øvelse i gjennomgang av sikker koding
XIII. Oppsummering og kursgjennomgang
1. Gjennomgang av hovedbegreper
- Prinsipper for sikert design
- Motvirkningsstrategier for OWASP Top 10
- Sikkerhetsfunksjoner i ASP.NET
- Livssyklus for sikker utvikling
2. Avsluttende diskusjon
- Best practices for sikker koding
- Innbyggering av sikkerhet i utviki ngsteam
- Ytterligere OWASP-ressurser og verktøy
- Spørsmål og svar, samt neste steg
Krav
Erfaring med ASP.NET. Erfaring med å utvikle webapplikasjoner.
Referanser (5)
Innføring i de mange ulike typene usikre oppføringer.
Zhongqi
Kurs - Secure Developer .NET (Inc OWASP)
Maskinoversatt
å ha et individuelt møte med Raymond var fantastisk, han var virkelig flott og oppmerksom på alle mine treningstilsyn.
Joshua
Kurs - Secure Developer .NET (Inc OWASP)
Maskinoversatt
Den høye nivået av instruktorkunnskaper betydde at vi fikk en meget godt innblikk i emnene som ble dekket.
Dafydd - TATA Steel
Kurs - Secure Developer .NET (Inc OWASP)
Maskinoversatt
referanselinkene
Abraham Gonzalez - ATEB Servicios
Kurs - Secure Developer .NET (Inc OWASP)
Maskinoversatt
Instruktørens faglige kunnskap var fremragende, og måten sesjonene var strukturert på, slik at publikum kunne følge med i demonstrasjonene, virkelig bidro til å fastlegge denne kunnskapen, i motsetning til bare å sitte og lytte.
Jack Allan - RSM UK Management Ltd.
Kurs - Secure Developer .NET (Inc OWASP)
Maskinoversatt