🛒 Øvelse 11 – Udarbejd system- og sikkerhedsmål til webapplikation
ℹ️ Information
I denne øvelse skal I udarbejde systemmål og sikkerhedsmål til en webapplikation.
Applikationen findes her: .NET reference webshop (eShopOnWeb).
Brug git til at klone repositoryet, og start applikationen ved at følge instruktionerne i readme-afsnittet Running the sample using Docker.
⚠️ OBS! Husk at være i repo-mappen, inden I kører docker compose-kommandoerne.
🎯 Fokus
- Udarbejd systemmål repræsenteret som brugstilfælde.
- Udled relevante sikkerhedsmål med udgangspunkt i systemmålene.
- Hold et korrekt abstraktionsniveau:
- Brugstilfælde beskriver systemets forretningsmæssige formål.
- Misbrugstilfælde beskriver, hvordan disse formål eller tilhørende aktiver kan kompromitteres.
- Undgå tekniske detaljer i både brugstilfælde og misbrugstilfælde.
- Anvend CIA-modellen som hjælp til at identificere relevante sikkerhedsmål.
📌 Vigtig afklaring: Identificere vs. udarbejde brugstilfælde og misbrugstilfælde
-
Identificere betyder, at I finder og noterer relevante brugstilfælde eller misbrugstilfælde, typisk som korte titler eller overskrifter, og placerer dem på brugstilfældediagrammet.
Se eksemplet i Introduktion til software sikkerhed – Del 3. -
Udarbejde betyder, at I beskriver et brugstilfælde eller misbrugstilfælde mere udførligt.
For et brugstilfælde kan det eksempelvis være: - aktør - forudsætninger - forløb - forventet resultat
For et misbrugstilfælde kan det eksempelvis være: - trusselsaktør - tilknyttet brugstilfælde - forudsætninger - forløb - konsekvens
Se eksemplet i Introduktion til software sikkerhed – Del 3.
Ved at skelne mellem identificering og udarbejdelse undgår I at beskrive alle brugstilfælde og misbrugstilfælde detaljeret fra begyndelsen. Først skabes overblik, hvorefter relevante tilfælde kan udarbejdes mere udførligt.
⚠️ Husk abstraktionsniveauet!
Både brugstilfælde og misbrugstilfælde skal beskrives på et forretningsmæssigt abstraktionsniveau.
Undgå derfor tekniske detaljer om eksempelvis:
- implementering
- systemarkitektur
- protokoller
- databaser
- konkrete sårbarheder
- specifikke angrebsteknikker
På dette tidspunkt er formålet at forstå:
- Hvad skal systemet kunne?
- Hvad kan gå galt for systemets forretningsmæssige mål og aktiver?
Hvordan et misbrug teknisk kan realiseres, undersøges senere gennem trusselsmodellering.
⚠️ Vigtigt om abstraktionsniveau i misbrugstilfælde
Når I beskriver misbrugstilfælde, skal I fokusere på, hvordan systemmål eller tilhørende aktiver kan kompromitteres af en trusselsaktør.
I skal endnu ikke beskrive den konkrete tekniske metode, som trusselsaktøren anvender.
Korrekt abstraktionsniveau – forretnings-/systemniveau:
- "En trusselsaktør kan ændre en anden kundes ordredata."
- "En trusselsaktør kan få adgang til en anden kundes ordre- og kundeoplysninger."
- "En trusselsaktør kan forhindre kunder i at afgive ordrer."
CIA-modellen kan bruges til at identificere, hvad der kompromitteres:
- Confidentiality (fortrolighed) – uvedkommende får adgang til information.
- Integrity (integritet) – information eller funktionalitet ændres på en uautoriseret måde.
- Availability (tilgængelighed) – systemets funktionalitet eller information bliver utilgængelig.
Forkert abstraktionsniveau – teknisk trussel eller angrebsteknik:
- "En trusselsaktør udfører SQL-injektion for at hente data."
- "En trusselsaktør gennemfører et DDoS-angreb."
- "En trusselsaktør manipulerer en JWT."
- "En trusselsaktør udnytter en sårbar API."
Disse beskriver tekniske måder, hvorpå et misbrug kan realiseres. Det undersøger vi først senere i trusselsmodelleringen.
📝 Instruktioner
Øvelsen danner udgangspunkt for de efterfølgende øvelser med risikovurdering og trusselsmodellering.
-
🚀 Start applikationen og besøg hjemmesiden.
-
🗒️ Identificer mindst 3 brugstilfælde, og noter dem som titler på et brugstilfældediagram.
Bemærk: Her handler det om at identificere brugstilfældene – ikke om at udarbejde udførlige beskrivelser endnu. -
🕵️♂️ Brainstorm og identificer mindst 3 relevante misbrugstilfælde med udgangspunkt i brugstilfældediagrammet.
Brug CIA-modellen som hjælp til at undersøge, hvordan systemmål og aktiver kan kompromitteres. Bemærk: Her handler det stadig primært om identificering. -
✍️ Udarbejd minimum 1 brugstilfælde mere udførligt – gerne flere.
-
🔐 Udvælg minimum 1 relevant misbrugstilfælde, som er knyttet til et af de udarbejdede brugstilfælde, og udarbejd det mere udførligt.
Hvis I har tid, må I gerne udarbejde flere.
💭 Refleksionsspørgsmål
-
Hvorfor er det vigtigt at beskrive systemmål og sikkerhedsmål på et forretningsmæssigt abstraktionsniveau frem for at starte med tekniske løsninger eller angrebsteknikker?
-
Hvordan hjalp CIA-modellen jer med at identificere relevante misbrugstilfælde? Var nogle af CIA-kategorierne mere relevante end andre for jeres brugstilfælde?
-
Hvordan kan et brugstilfælde hjælpe jer med at identificere de aktiver, der er relevante for sikkerhedsarbejdet?
-
Hvad er forskellen på et misbrugstilfælde og en teknisk trussel? Hvorfor er det vigtigt at holde de to niveauer adskilt?
-
Hvordan kan brugstilfælde og misbrugstilfælde skabe et fælles sprog mellem udviklere, domæneeksperter og andre interessenter?
✅ Selvevaluering – du har forstået system- og sikkerhedsmål, når du...
Du har forstået den grundlæggende tilgang i denne øvelse, når du kan:
- forklare forskellen mellem et systemmål og et sikkerhedsmål
- forklare, hvorfor systemmål kan repræsenteres som brugstilfælde
- forklare, hvorfor sikkerhedsmål kan repræsenteres som misbrugstilfælde
- identificere en relevant aktør og beskrive, hvad aktøren forsøger at opnå med systemet
- identificere relevante aktiver med udgangspunkt i et brugstilfælde
- anvende CIA-modellen som hjælp til at identificere relevante misbrugstilfælde
- identificere en trusselsaktør og beskrive, hvad trusselsaktøren kan opnå gennem et misbrugstilfælde
- beskrive brugstilfælde og misbrugstilfælde på et forretningsmæssigt abstraktionsniveau
- forklare forskellen mellem et misbrugstilfælde og en teknisk trussel eller angrebsteknik
- forklare, hvorfor de identificerede misbrugstilfælde senere kan anvendes som udgangspunkt for risikovurdering
💡 Hvis I kan beskrive hvad systemet skal kunne, hvad der kan gå galt, og hvilke aktiver der påvirkes – uden at begynde at diskutere den tekniske angrebsmetode – er I godt på vej.