Gå til indhold
atlas

Trusselsmodellering

At sætte sig ned med en tegning af et system og finde ud af, hvad der kan gå galt, hvem der kan stå bag, og hvad man vil gøre ved det.

Kladde - dette opslag er endnu ikke gennemgået.

Formelt

En struktureret metode til at finde trusler mod et planlagt eller eksisterende system ved at kortlægge dets dele, datastrømme og tillidsgrænser, gennemgå, hvad der kan gå galt i hvert punkt, og beslutte, hvilke kontroller der skal tilføjes; den gør mest gavn, mens designet stadig kan ændres.

Forklaret enkelt

Som at gennemgå tegningerne til et nyt hus og ved hver dør og hvert vindue spørge, hvordan nogen kunne komme ind her, og hvad der ville stoppe dem.

I praksis

Før teamet bygger betaling for daginstitutionspladser ind i en kommunes selvbetjening, tegner det, hvordan kortdata bevæger sig mellem siden, serveren og betalingsudbyderen, og opdager en intern tjeneste, der tager imod forespørgsler fra alle - så det tilføjer et tjek, før der skrives en linje kode.

Hvorfor det betyder noget

En fejl i selve designet kan ikke fjernes med en patch bagefter og kan kræve en dyr ombygning efter lancering; findes den på tegnebrættet, er den billig at rette.

Teknisk uddybning

De fleste metoder kan koges ned til Adam Shostacks fire spørgsmål, som Threat Modeling Manifesto (2020) også bygger på: Hvad arbejder vi på? Hvad kan gå galt? Hvad vil vi gøre ved det? Gjorde vi det godt nok? Det første spørgsmål besvares med en model af systemet, typisk et dataflowdiagram med eksterne entiteter, processer, datalagre, dataflows og tillidsgrænser eller et sekvensdiagram for protokoltunge designs. Kvaliteten af alt det følgende afhænger af, at modellen er korrekt og har det rette detaljeniveau, og derfor virker trusselsmodellering bedst som en samtale mellem arkitekter, udviklere og sikkerhedsfolk frem for et dokument, som sikkerhedsteamet laver alene.

Det andet spørgsmål besvares med en teknik til at finde trusler. STRIDE, anvendt pr. element eller pr. interaktion, er den mest udbredte; angrebstræer, som Bruce Schneier introducerede i 1999, deler et angribermål op i AND/OR-delmål; PASTA er en risikocentreret proces i syv trin, der kobler tekniske trusler til forretningsmæssig konsekvens; LINDDUN dækker privatlivstrusler; og kataloger som MITRE ATT&CK eller CAPEC kan bruges til at tjekke dækningen mod kendte teknikker. Det tredje spørgsmål giver en beslutning for hver trussel: afhjælp, fjern den ved at ændre designet, overfør den eller accepter den med en navngiven ejer. Fundene registreres som sikkerhedskrav eller backlog-punkter, så de kan følges og testes, og det fjerde spørgsmål lukker sløjfen ved at tjekke, at modforanstaltningerne blev bygget, og at modellen stadig passer til systemet.

I en sikker udviklingslivscyklus foregår trusselsmodellering i designfasen og igen, når en ændring krydser en tillidsgrænse, tilføjer en ny datatype eller indfører en ny ekstern afhængighed. NIST SP 800-218 (SSDF) praksis PW.1.1 nævner udtrykkeligt trusselsmodellering, angrebsmodellering og kortlægning af angrebsfladen som former for risikomodellering til at vurdere sikkerhedskrav. Værktøjerne spænder fra whiteboards til Microsoft Threat Modeling Tool, OWASP Threat Dragon og kodebaserede tilgange som pytm og Threagile, der genererer diagrammer og fund ud fra en model, der ligger i versionsstyring.

Typiske fejl er at modellere én gang og aldrig opdatere, at producere en lang liste generiske trusler uden tilknyttede beslutninger og at gå for dybt i én komponent og overse integrationerne, hvor de fleste reelle fejl findes. Trusselsmodellering adskiller sig fra risikovurdering i omfang og timing: en risikovurdering rangordner risici for organisationens aktiver, mens en trusselsmodel undersøger, hvordan et bestemt system kan angribes, tidligt nok til at ændre designet. Den adskiller sig også fra penetrationstest, der finder fejl i det, der allerede er bygget.

Hvad du bør lære først

Alt det, dette bygger på - grundlaget først.

  1. CIA-triaden
  2. →Trussel
  3. →Aktiv
  4. →Trusselsmodellering

Relationer

Forudsætter
TrusselAktiv
Implementeres af
STRIDE
Afbøder
Sårbarhed

Kilder og videre læsning

Hvor dataene kommer fra

Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.

Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON

Test dig selv

Indlæser…

Atlas er i beta.