Modulet helt kort
Trusselsmodellering er en proces, der giver jer en dybere indsigt i og forståelse af vigtige sikkerhedsaspekter i systemer, applikationer og enheder. Ideen med trusselsmodellering er at sætte sig i hackernes sted, mens man foretager en grundig gennemgang af softwarearkitekturen.
En trusselsmodellering kan anvendes til både software, systemer og IoT-enheder.
Gennem processen får I systematisk afdækket, analyseret og vurderet trusler, så I kan prioritere indsatser og iværksætte de rette foranstaltninger.
Hvad er trusselsmodellering
Den øgede digitalisering har gjort virksomheder mere sårbare over for ondsindede angreb, hvor hackere forsøger at få uretmæssig adgang til data, afbryde digitale processer eller beskadige data. Som følge heraf står cybersikkerhed højt på dagsordenen, og virksomheder er konstant udfordret på at identificere sikkerhedstrusler mod deres systemer, applikationer og enheder, så de kan tage informerede beslutninger om, hvordan truslerne skal imødegås.
Oftest gennemføres en trusselsmodellering som en del af en risikoanalyse, hvor man afdækker de sårbarheder, der rent faktisk kan udgøre en risiko. En risikoanalyse har dog fokus på overordnet at afdække og analysere risici og har derfor et bredere fokus end en trusselsmodellering.
Før vi går i gang med en trusselsmodellering, er det vigtigt at få styr på nogle nøglebegreber, der går igen igennem hele processen.
Nøglebegreber i trusselsmodellering
- Aktiv: Et aktiv er data, enheder og komponenter i en virksomheds systemer, som har værdi – ofte fordi aktivet indeholder følsomme oplysninger eller kan bruges til at tilgå sådanne oplysninger.
- Trussel: En trussel er en hændelse, der har en negativ indvirkning på et aktiv – f.eks. at aktivet går tabt, bliver koblet af nettet, eller at uautoriserede får adgang til det.
- Sårbarhed: En sårbarhed er en svaghed i systemet, der kan udnyttes til at ødelægge, beskadige eller kompromittere et aktiv.
- Dataflow-diagram: Et dataflow-diagram illustrerer, hvordan data udveksles i et system.
- Trust boundary: En trust boundary er et udtryk for det sted i dataflow-diagrammet, hvor man ikke længere har tillid til elementet på den anden side af grænsen.
Herunder vises de enkelte trin i trusselsmodelleringsprocessen. Efterfølgende beskrives, hvordan hvert trin gennemføres
“Trin i trusselsmodelleringsprocessen” af CyPro under licens CC BY-SA 4.0
For at tydeliggøre de enkelte trin i processen, bruger vi en webshop som gennemgående eksempel. Eksemplet skal illustrere de systemer, der indgår i en bestilling samt interaktionen mellem kunden og logistikfirmaet. For nemheds skyld ser vi bort fra de omgivende systemer og modellerer kun på de elementer, der er obligatoriske for en købsproces.
Systemmodellering
For at gennemføre en trusselsmodellering skal I først have afgrænset, hvilket system der skal gennemgås, hvordan det interagerer med eksterne enheder, og hvilke aktiver I ønsker at beskytte. Der skal derfor tegnes et dataflow-diagram af systemet og dets trust boundaries, dvs. en afgrænsning af de elementer I (ikke) har kontrol over, og som derved udgør mulige angrebsflader. Brug eventuelt et eksisterende diagram, eller tegn et nyt.
For at få et fælles sprog for diagrammet, kan følgende dataflow-elementer benyttes, som også vil være vist i webshop eksemplet.
“Elementer i dataflow” af CyPro under licens CC BY-SA 4.0
Elementer i dataflow
Print-venlig version i stort format
Praktisk information
Det er vigtig del af trusselsmodellering at definere et scope. Det indebærer, at I skal have afgrænset, hvilket system/produkt I vil undersøge (herunder brugere og andre komponenter), samt hvordan denne afgrænsning hænger sammen med forretningsmålene. Det er vigtigt at foretage denne afgrænsning, så I kan få inddraget de rigtige interessenter i processen. Generelt anbefaler vi, at I inddrager en så bred skare som muligt, herunder ledelsen og tekniske profiler.
Når man undersøger et eksisterende system/produkt, vil det også være relevant at gennemgå den tilhørende dokumentation og henvise hertil gennem hele undersøgelsen.
Både systemmodellering og kortlægning af trusler gennemføres normalt som en workshop – eventuelt med brug af specialiserede værktøjer. Hvis I ikke har tænkt jer at anvende specialiserede værktøjer, skal I bruge et whiteboard/flipboard, farvede tusser, post-its, penne samt printede udgaver af de viste skemaer.
Afsæt mindst tre timer til at gennemføre en hele trusselsmodelleringen, altså systemmodellering og kortlægning af trusler.
Vejledning trin-for-trin
Følg denne proces ved at tage udgangspunkt i webshop-eksemplet:
1) Lav en brainstorm over de forskellige elementer i systemet.
- Vi lægger ud med at brainstorme over systemet og dets elementer. Her er der følgende elementer: Køber; logistikfirma; varekurv; ordrebehandling; produktstyring.
2) Lav en brainstorm over den data, der er nødvendig, for at systemet fungerer, og hvor data befinder sig.
- Vi laver herefter en brainstorm over den data, som findes i systemet, samt alle indbyrdes afhængigheder. Data i eksemplet: Produktinformation; ordreinformation; forsendelsesoplysninger.
3) Kortlæg hvordan de enkelte elementer i systemet interagerer med hinanden.
- Eksempler på interaktioner: Køber interagerer med varekurv; varekurv interagerer med produktstyring for at vise oplysninger om produkterne; produktinformation interagerer med produktstyring for at administrere kataloget over tilgængelige produkter.
4) Marker hvor der er en trust boundary mellem elementerne, for eksempel hvor forskellige mennesker har kontrol over forskellige ting.
- Efter at have afdækket alle elementerne, tegner vi trust boundaries mellem vores system og de eksterne aktører.
“Eksempel på dataflow-diagram ved køb i en webshop af ” af CyPro under licens CC BY-SA 4.0
Udbytte
Ved hjælp af principperne i et dataflow har vi nu skitseret et dataflow-diagram over systemet.
Det giver et overblik over, hvordan jeres system interagerer med eksterne aktører, samt hvilke aktiver I ønsker at beskytte. Ved hjælp af de trust boundaries, som er indtegnet, kan I nu se afgrænsningen til de elementer I (ikke) har kontrol over, og som derfor kan være mulige angrebsflader.
Med dataflow-diagrammet har I nu en større forståelse af, hvordan systemet er designet, og I kan gå videre til at kortlægge og vurdere trusler mod systemet. Kortlægningen er vist nedenfor og tager også udgangspunkt i webshop-eksemplet.
Ekspertens råd
Hvis man foretager trusselsmodelleringen som et led i en større risikostyringsproces, er system-modelleringen et godt udgangspunkt til at identificere aktiverne i jeres system. Aktiverne er de elementer eller data, som er nødvendige, for at systemet fungerer eller på anden måde skaber værdi. Giv hvert aktiv en unik identifikator såsom et navn og/eller et nummer for at holde styr på dem – også på et senere tidspunkt.
Kortlægning af trusler
Trusselsmodellering er et redskab til at kortlægge og forstå trusler mod det system, man undersøger, og hvordan man imødegår truslerne. Det er en struktureret proces, hvor systemet gennemgås fra en sikkerhedsmæssig synsvinkel. Desuden gør processen det muligt at prioritere trusler og afsætte ressourcer til at imødegå dem bedst muligt. Ved hjælp af flowdiagrammet for systemet kan vi nu se på, hvor der kan være trusler mod sikkerheden. Som udgangspunkt stoler vi på de interne komponenter, og sårbarhederne findes derfor normalt i overgangen mellem systemer med forskellige trust relationships, så det er her, man skal kigge efter angrebsflader.
Til denne process benyttes værktøjet til trusselsmodellering, som ses herunder.
“Trusselsmodellering” af CyPro under licens CC BY-SA 4.0
Trusselsmodellering
Print-venlig version af værktøjet i stort format
Praktisk information
Som ved systemmodellering anbefales det også her, at I inddrager en så bred skare som muligt, herunder ledelsen samt tekniske profiler. Ligeledes bør både flowdiagrammet over systemet samt systemdokumentationen være til rådighed, så det er muligt at henvise hertil gennem hele analysen.
En trusselsmodellering afholdes normalt som en workshop – eventuelt gøres der brug af specielle værktøjer. Hvis I ikke har tænkt jer at anvende specielle værktøjer, skal I bruge et whiteboard/flipboard, farvede tusser, post-its, penne samt printede udgaver af de skemaer, der er vist i vores eksempel.
Afsæt mindst tre timer til at gennemføre den samlede trusselsmodellering.
Tip: Download Alexandra Instituttets Cue Cards og få inspiration til at kortlægge mulige trusler baseret på CIA-princippet (Confidentiality / Fortrolighed, Integrity / Integritet, Availability / Tilgængelighed).
Vejledning trin-for-trin
Når I skal kortlægge trusler, kan I gøre følgende:
1) Kig på elementer, hvor data strømmer på tværs af trust boundaries. Tag en snak om, hvor det kan gå galt, når elementer/aktører med forskellig trust level udveksler data. Dette vil afsløre vigtige og kritiske trusler.
2) Kig også på elementer, hvor data strømmer inden for en trust boundary og diskuter, hvor truslerne kan opstå. Det er ikke unormalt, at man har overset noget og har tegnet en forkert trust boundary. Samtidig kan der være interne trusler, som man gerne vil tage højde for.
3) I kan også kigge på de tidligere identificerede aktiver og overveje følgende:
-
- kan uautoriserede få adgang til at læse eller manipulere med aktivet?
- kan aktivet gøres utilgængeligt for afhængige elementer/aktører?
4) Indsæt de trusler, I har fundet, i værktøjet til trusselsmodellering, så I har dem til senere.
Webshop eksempel
Nu gennemgår vi en af interaktionerne uden for vores systems trust boundary, dvs. mellem køber og varekurv. Bemærk at der er to interaktioner, der skal undersøges, både hvordan køberen kan påvirke varekurven og hvordan varekurven kan påvirke køberen. Først vil vil vi fokusere på, hvordan fortrolighed, integritet og tilgængelighed i indkøbsprocessen (på serveren) kan blive kompromitteret, hvis køber foretager en utilsigtet eller ondsindet handling.
Hvordan kan køber være en trussel mod fortrolighed, integritet og tilgængelighed i indkøbsprocessen?
Fortrolighed: Indholdet i varekurven kan blive sendt til en forkert køber. Det kan ske ved blot at ændre ID på varekurven i en cookie eller ved at pille ved en URL.
Integritet: Varekurven indeholder en række varer i et givent antal, som senere bliver til en ordre. Hvis integriteten er kompromitteret, kan det f.eks. betyde, at mængden af en bestemt vare ændres til et negativt antal, hvilket påvirker udregningen af den samlede pris, hvilket igen kan medføre økonomisk tab.
Tilgængelighed: Varekurvens tilgængelighed kan blive kompromitteret, hvis der er trin i processen, der tager meget lang tid pga. en uventet handling. F.eks. hvis en køber kommer til at lægge tusindvis af varer i kurven, hvorved sammentællingen af prisen både har indvirkning på systemets ydeevne og andre kunder.
Derefter vil vi se på interaktionen mellem varekurv og køber:
Hvordan kan varekurven være en trussel mod fortrolighed, integritet og tilgængelighed for kø-ber/købers data?
Fortrolighed: Et datalæk fra varekurven kan ske, hvis nogen har pillet ved koden. Som i eksemplet ovenfor kan dette resultere i, at en køber modtager data, der ikke er tiltænkt dem.
Integritet: Eftersom varekurven indeholder oplysninger hentet fra andre systemer, vises data vi ikke har kontrol over. Selvom disse systemer ligger inden for vores trust boundary, kan det ske, at køber får vist forkert data. Det vil vi gerne undgå.
Tilgængelighed: Ikke aktuelt her.
Ovenstående proces gentages for alle interaktioner i dataflow-diagrammet. Vigtigst er de interaktioner, der krydser trust boundary, sekundært de interaktioner som foregår indenfor trust boundary. Der kan også være interaktioner helt udenfor trust boundary, men disse vil ikke være relevante i forbindelse med trusselsmodelleringen.
Se værktøjet udfyldt herunder med en opsummering af truslerne fra webshopeksemplet.
“Eksempel på trusselsmodellering ved køb i en webshop ” af CyPro under licens CC BY-SA 4.0
Eksempel med IoT-dørlås
Vi vil bruge et IoT-dørlåsesystem som gennemgående eksempel under risikostyring.
"Nøgleteknologier i et IoT-dørlåsesystem" af CyPro under licens CC BY-SA 4.0
Eksemplet består af et sammenkoblet netværk af hardware, software og kommunikationssystemer, herunder IoT-dørlåshardwaren med et kommunikationsmodul, en hub, en mobilapplikation til fjernadgang og en cloud-infrastruktur til lagring og behandling af data.
Herunder findes der supplerende downloadmateriale omkring trusler for et IoT-dørlåsesystem.
Liste over 50 potentielle trusler for et IoT-dørlåsesystem (UK)
Print-venlig version af værktøjet i stort format
Udbytte
Resultatet af trusselsmodelleringen er en oversigt over mulige trusler mod systemet og tilsvarende sikkerhedsforanstaltninger, der kan mindske sandsynligheden for, at truslerne finder sted og får konsekvenser. Desuden giver en trusselsmodellering mulighed for at få skabt større bevidsthed om sikkerhed på tværs af virksomheden.
Yderligere ressourcer og viden
Der findes en lang række guidelines og kataloger, der understøtter trusselsmodelleringsprocessen. Følgende kataloger giver et overblik over mulige trusler:
Næste skridt
Trusselsmodellering er første skridt til at kortlægge og forstå risikolandskabet. Ud fra indsigterne i trusselsmodelleringen kan I gå et spadestik dybere og se på de forskellige risici for virksomheden. Det kan gøres ved hjælp af en risikoanalyse, som er en proces, hvor man afdækker, vurderer og prioriterer potentielle risici for jeres virksomhed.
En effektiv risikostyring tillader først og fremmest virksomheden at sætte ind hvor der er et behov. Det giver dog også en mulighed for at udnytte nye business cases, som man måske ikke var klar over var mulige. Når man skal mitigere de identificerede risici, er det vigtigt at processen bliver godt forankret.
Indholdselementerne ovenfor er udviklet gennem projektet:
’CyPro – Cybersikker produktion i Danmark’ af Aarhus Universitet, Alexandra Instituttet, DAMRC, UGLA Insights og FORCE Technology støttet af Industriens Fond. Materialet fra projektet er offentliggjort under licens CC BY-SA 4.0