Kursplan
A01:2025 – Bristande åtkomstkontroll
Åtkomstkontroll säkerställer att användare inte kan agera utanför sina avsedda behörigheter. Misslyckanden leder typiskt till obehörig utlämnande, modifiering eller förstörelse av data, eller att en affärsfunktion utförs utanför användarens gränser.
Praktiska aspekter
-
Praktiska exempel på bristande åtkomstkontroll
-
Säker åtkomstkontroll och bästa praxis
A02:2025 – Säkerhetsfelkonfiguration
Säkerhetsfelkonfiguration uppstår när ett system, en applikation eller en molntjänst är felaktigt konfigurerad ur ett säkerhetsperspektiv, vilket skapar sårbarheter.
Praktiska aspekter
-
Verklighetsnära exempel på felkonfigurationer
-
Åtgärder för att förebygga felkonfiguration, inklusive konfigurationshantering och automatiseringsverktyg
A03:2025 – Misslyckanden i mjukvaru-försörjningskedjan
Misslyckanden i mjukvaru-försörjningskedjan är brister eller komprometteringar i processen att bygga, distribuera eller uppdatera mjukvara. De orsakas ofta av sårbarheter eller skadliga ändringar i tredjepartskod, verktyg eller andra beroenden som systemet förlitar sig på.
A04:2025 – Kryptografiska misslyckanden
I allmänhet bör all data i transport krypteras på transportskiktet (OSI-skikt 4). Tidigare hinder som CPU-prestation och hantering av privata nycklar/certifikat hanteras nu av CPU:er med instruktioner designade för att accelerera kryptering (t.ex. stöd för AES) och förenklad hantering av privata nycklar och certifikat via tjänster som LetsEncrypt.org, där de stora molnleverantörerna erbjuder ännu mer integrerade certifikattjänster för sina specifika plattformar.
Utöver att skydda transportskiktet är det viktigt att bestämma vilka data som kräver kryptering vid lagring samt vilka data som behöver extra kryptering under transport (på applikationsskiktet, OSI-skikt 7).
Till exempel kräver lösenord, kreditkortsnummer, hälsoregistertals, personuppgifter och affärshemligheter extra skydd, särskilt om data omfattas av integritetslagar, t.ex. EU:s allmänna dataskyddsförordning (GDPR), eller regler som PCI Data Security Standard (PCI DSS).
Praktiska aspekter
-
Detaljerad analys av kryptografiska misslyckanden som svaga krypteringsalgoritmer eller otillräcklig nyckelhantering
-
Betydelsen av starka kryptografiska mekanismer, säkra protokoll (SSL/TLS) och exempel på modern kryptografi i webbssäkerhet
A05:2025 – Injektion
En injektionssårbarhet är ett systemfel som tillåter en angripare att infoga skadlig kod eller kommandon (som SQL- eller skalkod) i ett programmens indatafält, och lura systemet till att utföra koden eller kommandona som om de vore en del av systemet. Detta kan leda till allvarliga konsekvenser.
Praktiska aspekter
-
Detaljerad genomgång av SQL-, NoSQL-, OS- och LDAP-injektion
-
Åtgärder för att minska risken med förberedda uttryck, parameteriserade frågor och undanröjning av indata
A06:2025 – Osäker design
Osäker design är en bred kategori som representerar olika svagheter, uttryckta som ”saknad eller ineffektiv styrningsdesign”.
Osäker design är inte källan till alla övriga Top Ten-riskkategorier. Notera att det finns skillnad mellan osäker design och osäker implementation. Vi skiljer på designfel och implementationsbrister av en anledning: de har olika orsaker, inträffar vid olika tidpunkter i utvecklingsprocessen och kräver olika åtgärder.
En säker design kan fortfarande ha implementationsbrister som leder till sårbarheter som kan utnyttjas. En osäker design kan inte åtgärdas med en perfekt implementation eftersom de nödvändiga säkerhetsstyrningarna aldrig skapades för att försvara sig mot specifika attacker.
En av faktorerna som bidrar till osäker design är avsaknaden av affärsriskprofilering inneboende i den mjukvara eller det system som utvecklas, och därmed misslyckandet att bestämma vilken nivå av säkerhetsdesign som krävs.
Praktiska aspekter
-
Vi utforskar designfel som kan leda till sårbarheter, som otillräcklig indatavalidering
-
Vi studerar strategier för säker arkitektur och principer för säker design
A07:2025 – Autentiseringsmisslyckanden
När en angripare kan lura ett system till att erkänna en ogiltig eller felaktig användare som legitim, är denna sårbarhet närvarande.
Praktiska aspekter
-
Vanliga autentiseringsproblem
-
Säkra autentiseringsstrategier, som multifaktorautentisering och korrekt sessionshantering
A08:2025 – Misslyckanden med integritet för mjukvara eller data
Misslyckanden med integritet för mjukvara och data relaterar till kod och infrastruktur som inte skyddar mot ogiltig eller opålitlig kod eller data som behandlas som tillförlitlig och giltig.
Ett exempel på detta är när en applikation förlitar sig på plugins, bibliotek eller moduler från opålitliga källor, repositoryer och innehållsdistributionstjänster (CDN:er).
En osäker CI/CD-pipeline som inte konsumerar eller tillhandahåller kontroller för mjukvaruintegritet kan introducera risk för obehörig åtkomst, osäker eller skadlig kod, eller systemkompromettering.
Ett annat exempel är en CI/CD som hämtar kod eller artefakter från opålitliga platser och/eller inte verifierar dem före användning (genom att kontrollera signaturen eller liknande mekanism).
Praktiska aspekter
-
Fokus på problem som opålitliga mjukvaruuppdateringar och datamanipulering
-
Säkra uppdateringsmekanismer och kontroller för dataintegritet
A09:2025 – Misslyckanden med säkerhetsloggning och aviseringar
Utan loggning och övervakning kan attacker och intrång inte upptäckas, och utan aviseringar är det mycket svårt att svara snabbt och effektivt under en säkerhetsincident.
Otillräcklig loggning, kontinuerlig övervakning, detektion och aviseringar för att initiera aktiva svar inträffar hela tiden.
Praktiska aspekter
-
Betydelsen av att logga säkerhetsrelevant information och övervaka misstänkta aktiviteter
-
Verktyg och praxis för korrekt loggning och realtidsövervakning för att upptäcka intrång tidigt
A10:2025 – Felaktig hantering av exceptionella tillstånd
Felaktig hantering av exceptionella tillstånd i mjukvara sker när program misslyckas att förhindra, upptäcka och svara på ovanliga och oförutsägbara situationer, vilket leder till krascher, oväntat beteende och ibland sårbarheter.
Detta kan innefatta ett eller flera av följande tre misslyckanden:
-
Applikationen förhindrar inte att en ovanlig situation inträffar
-
Den identifierar inte situationen när den inträffar
-
Den svarar dåligt eller inte alls på situationen därefter
SAST – Statisch Application Security Testing
-
Vad statisk analys är och när den ska köras i SDLC:en (shift left)
-
Slags sårbarheter som kan upptäckas genom SAST, sårbar kod jämfört med säker kod
-
Översikt över SAST-verktyg (t.ex. Semgrep, SonarQube, Checkmarx, beroende på kundens stack)
-
Praktisk övning: köra ett SAST-scan på ett repository med avsiktligt introducerade sårbarheter, tolka resultat, prioritera falska positiva jämfört med riktiga sårbarheter
DAST – Dynamic Application Security Testing
-
Skillnaden mellan SAST och DAST, black box-testning på den körande applikationen
-
Flödet för DAST-scan, crawling, fuzzing, responsanalys
-
Översikt över DAST-verktyg (t.ex. OWASP ZAP, Burp Suite)
-
Praktisk övning: köra ett DAST-scan på en sårbar testapplikation (t.ex. OWASP Juice Shop), identifiera och validera fynden
SCA – Software Composition Analysis
-
Risken med tredjepartsberoenden och bibliotek, ärftliga sårbarheter
-
SBOM, Software Bill of Materials, vad det är och varför det är viktigt
-
Översikt över SCA-verktyg (t.ex. Dependency Check, Snyk, GitHub Dependabot)
-
Praktisk övning: köra ett SCA-scan på ett riktigt projekt, identifiera sårbara beroenden och skapa en åtgärdsplan (uppdatera, laga, minska risk)
Krav
Deltagarna bör ha:
- Grundläggande kunskaper i mjukvaruutvecklingskoncept
- Grundläggande förståelse för webbapplikationer och vanliga webbteknologier
- Kännedom om Software Development Lifecycle (SDLC)
- Grundläggande förståelse för källkod och mjukvaruberoenden
- Grundläggande kunskaper om säkerhetskoncept är en tillgång, men inte ett krav
Målgrupp
- Mjukvaruutvecklare
- Mjukvaruingenjörer
- QA- och mjukvarutestingenjörer
- DevOps- och DevSecOps-ingenjörer
- Applikationssäkerhetsexperter
- Säkerhetsingenjörer
- Mjukvaruaritekter
- Teckniska ledare
- Professionella som arbetar med säker mjukvaruutveckling och applikationssäkerhetstestning
Vittnesmål (3)
Erfarenhetsdelning, lärarens kunskap och värde är betydande.
Carey Fan - Logitech
Kurs - C/C++ Secure Coding
Maskintolkat
för att få bättre förståelse för produkten och några viktiga skillnader mellan RHDS och open source OpenLDAP.
Jackie Xie - Westpac Banking Corporation
Kurs - 389 Directory Server for Administrators
Maskintolkat
utbildningsledarens kunskap var mycket hög - han visste vad han pratade om och hade svar på våra frågor
Adam - Fireup.PRO
Kurs - Advanced Java Security
Maskintolkat