Kursplan
A01:2025 – Brutt tilgangskontroll
Tilgangskontroller gjentar at brukere ikke kan handle utenfor deres intendede tillatelser. Feil fører typisk til ikke-autorisert utlevering, endring eller ødeleggelse av data, eller utførelse av en forretningsfunksjon utenfor brukerens grenser.
Praktiske aspekter
-
Praktiske eksempler på brutte tilgangskontroller
-
Sikre tilgangskontroller og beste praksis
A02:2025 – Feilkonfigurering
Feilkonfigurering forekommer når et system, en applikasjon eller en skytjeneste er satt opp feilaktig fra et sikkerhetsperspektiv, noe som skaper sårbarheter.
Praktiske aspekter
-
Eksempler fra virkeligheten på feilkonfigureringer
-
Tiltak for å forebygge feilkonfigurering, inkludert konfigurasjonsstyring og automatiseringsverktøy
A03:2025 – Svakheter i programvaresupplykjeden
Svakheter i programvaresupplykjeden er sammenbrudd eller andre kompromisser i prosessen med å bygge, distribuere eller oppdatere programvare. De skyldes ofte sårbarheter eller skadelige endringer i tredjeparts-kode, verktøy eller andre avhengigheter som systemet er avhengig av.
A04:2025 – Kryptografiske svakheter
Generelt sett bør all data i transport krypteres på transportlag (OSI-lag 4). Tidligere hindringer som CPU-ytelse og styring av private nøkler/sertifikater håndteres nå av CPU-er med instruksjoner designet for å akselerere kryptering (f.eks. AES-støtte) og forenklet styring av private nøkler og sertifikater ved hjelp av tjenester som LetsEncrypt.org, med store skyaktører som tilbyr enda tettere integrerte sertifikatstyringstjenester for deres spesifikke plattformer.
Utover å sikre transportlaget, er det viktig å bestemme hvilken data som trenger kryptering på lagret (at rest) og hvilken data som trenger ekstra kryptering i transport (på applikasjonslaget, OSI-lag 7).
Til eksempel, passord, kredittkortnummer, helseopplysninger, personopplysninger og handels hemmeligheter krever ekstra beskyttelse, spesielt hvis dataen faller inn under personvernlover, f.eks. EUs Generelle forordning om personvern (GDPR), eller regler som PCI Data Security Standard (PCI DSS).
Praktiske aspekter
-
Detaljert analyse av kryptografiske svakheter som svake krypteringsalgoritmer eller uriktig nøkestyring
-
Viktigheten av sterke kryptografiske mekanismer, sikre protokoller (SSL/TLS) og eksempler på moderne kryptografi i nettssikkerhet
A05:2025 – Injeksjon
En injeksjonssårbarhet er en systemsvakheter som tillater en angriper å sette inn skadelig kode eller kommandoer (som SQL- eller shell-kode) i et programmet inputfelt, slik at systemet blir lurt til å utføre koden eller kommandoene som om de var en del av systemet. Dette kan føre til virkelig alvorlige konsekvenser.
Praktiske aspekter
-
Detaljert oppsplitting av SQL-, NoSQL-, OS- og LDAP-injeksjon
-
Mitigeringsteknikker ved bruk av forberedte setninger, parametriserte spørringer og escaping av inndata
A06:2025 – Usikker design
Usikker design er en bred kategori som representerer ulike svakheter, uttrykt som «manglende eller ueffektiv kontroll-design».
Usikker design er ikke kilden til alle de øvrige Top Ten-risikkokategoriene. Merk at det er en forskjell mellom usikker design og usikker implementasjon. Vi skiller mellom designsvakheter og implementasjonsdefekter av en grunn; de har ulike rotårsaker, forekommer på ulike tidspunkter i utviklingsprosessen og har ulike rettingstiltak.
Et sikkert design kan fortsatt ha implementasjonsdefekter som fører til sårbarheter som kan utnyttes. Et usikkert design kan ikke rettes ved en perfekt implementasjon, da nødvendige sikkerhetskontroller aldri ble opprettet for å forsvare mot spesifikke angrep.
Én av faktorene som bidrar til usikker design er mangel på forretningsrisikoprofilering som er innebygget i den programvare eller system som utvikles, og dermed feilaktig å bestemme hvilket nivå av sikkerhetsdesign som kreves.
Praktiske aspekter
-
Vi vil utforske designsvakheter som kan føre til sårbarheter, som uriktig inndatavalidering
-
Vi vil studere strategier for sikker arkitektur og prinsipper for sikker design
A07:2025 – Autentiseringsfeil
Når en angriper lykkes i å lure et system til å anerkjente en ugyldig eller feilaktig bruker som legitim, er denne sårbarheten til stede.
Praktiske aspekter
-
Vanlige autentiseringsproblemer
-
Sikre autentiseringsstrategier, som tofaktorsautentisering og riktig sessionshåndtering
A08:2025 – Program- eller dataintegritetsfeil
Program- og dataintegritetsfeil vedrører kode og infrastruktur som ikke beskytter mot ugyldig eller upålitelig kode eller data som behandles som pålitelig og gyldig.
Ét eksempel på dette er når en applikasjon er avhengig av plugins, biblioteker eller moduler fra upålitelige kilder, repositorer og innholdsleveringstjenester (CDN-er).
En usikker CI/CD-pipe uten bruk og levering av programvareintegritetskontroller kan introdusere potensiale for ikke-autorisert tilgang, usikker eller skadelig kode, eller systemkompromittelse.
Et annet eksempel på dette er en CI/CD som henter kode eller artefakter fra upålitelige steder og/eller ikke verifiserer dem før bruk (ved å sjekke signaturen eller lignende mekanisme).
Praktiske aspekter
-
Fokus på problemer som upålitelige programvareoppdateringer og databrudd
-
Sikre oppdateringsmekanismer og dataintegritetskontroller
A09:2025 – Svakheter i sikkerhetslogging og varsling
Uten logging og overvåking kan angrep og brudd ikke oppdages, og uten varsling er det svært vanskelig å reagere raskt og effektivt under en sikkerhetshendelse.
Utilstrekkelig logging, kontinuerlig overvåking, deteksjon og varsling for å initiere aktive responser skjer hele tiden.
Praktiske aspekter
-
Viktigheten av logging av sikkerhetsrelevant informasjon og overvåking av mistenkelige aktiviteter
-
Verktøy og praksis for riktig logging og sanntidsmonitorering for å oppdage brudd tidlig
A10:2025 – Feilaktig håndtering av unntakstilfeller
Feilaktig håndtering av unntakstilfeller i programvare skjer når programmer ikke forhindrer, oppdager og reagerer på uvanlige og uforutsigbare situasjoner, noe som fører til krasj, uventet oppførsel og noen ganger sårbarheter.
Dette kan involvere ett eller flere av følgende tre feil:
-
Applikasjonen forhindrer ikke at en uvanlig situasjon inntreffer
-
Den identifiserer ikke situasjonen mens den pågår
-
Den reagerer dårlig eller ikke i det hele tatt på situasjonen i etterkant
SAST – Statiske applikasjonssikkerhetstesting
-
Hva statisk analyse er og når den skal kjøres i SDLC (shift left)
-
Typer sårbarheter som kan oppdages gjennom SAST, sårbar kode mot sikker kode
-
Overblikk over SAST-verktøy (f.eks. Semgrep, SonarQube, Checkmarx, avhengig av klients stack)
-
Praktisk øvelse: Kjør en SAST-scan på et repository med bevisst introduserte sårbarheter, tolk resultatene, sortere falske positive mot ekte sårbarheter
DAST – Dynamiske applikasjonssikkerhetstesting
-
Forskjellen mellom SAST og DAST, svart boks-testing på den kjørende applikasjonen
-
DAST-scanflyt, crawling, fuzzing, responsanalyse
-
Overblikk over DAST-verktøy (f.eks. OWASP ZAP, Burp Suite)
-
Praktisk øvelse: Kjør en DAST-scan på en sårbar testapplikasjon (f.eks. OWASP Juice Shop), identifiser og validere funnene
SCA – Programvarekomposisjonsanalyse
-
Risiko ved tredjepartsavhengigheter og biblioteker, arvede sårbarheter
-
SBOM, Software Bill of Materials, hva det er og hvorfor det betyr noe
-
Overblikk over SCA-verktøy (f.eks. Dependency Check, Snyk, GitHub Dependabot)
-
Praktisk øvelse: Kjør en SCA-scan på et ekte prosjekt, identifisere sårbare avhengigheter og bygge en rettingsplan (oppdater, patch, mitigere)
Krav
Deltakerne bør ha:
- Grunnleggende kunnskap om programvareutviklingskonsepter
- Grunnleggende forståelse av nettapplikasjoner og vanlige nett-teknologier
- Kjennskap til programvarelivssyklusen (SDLC)
- Grunnleggende forståelse av kildekode og programvareavhengigheter
- Grunnleggende kunnskap om sikkerhetskonsepter er en fordel, men ikke obligatorisk
Målgruppe
- Programvareutviklere
- Programvareingeniører
- QA- og programvaretestingeniører
- DevOps- og DevSecOps-ingeniører
- Applikasjonssikkerhetseksperter
- Sikkerhetsingeniører
- Programvarearkitekter
- Tekniske ledere
- Fagpersoner involvert i sikker programvareutvikling og applikasjonssikkerhetstesting
Referanser (3)
Erfargingdeling, lærerens kunnskap og verdi.
Carey Fan - Logitech
Kurs - C/C++ Secure Coding
Maskinoversatt
få mer forståelse for produktet og noen viktig forskjeller mellom RHDS og open source OpenLDAP.
Jackie Xie - Westpac Banking Corporation
Kurs - 389 Directory Server for Administrators
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