
Hotmodellering frågar vad som kan gå fel i ett visst system och vad teamet bör göra åt det. Det användbara resultatet är inte en katalog över skrämmande möjligheter. Det är en uppsättning utformnings- och genomförandebeslut kopplade till arkitekturen, med ägare och belägg för att de valda skydden fungerar.
För en CTO är den centrala frågan om utvecklingsteamen kan förklara hur viktiga säkerhetsegenskaper håller när systemet beter sig verkligt: omförsök, bakgrundsjobb, privilegierade supportåtgärder, avbrott hos leverantörer och illasinnad indata. Ett diagram gör de samtalen konkreta. En underhållen hotmodell omvandlar slutsatserna till leveransarbete.
OWASP:s vägledning om hotmodellering ger en användbar grund: förstå systemet, identifiera hot, besluta hur de ska hanteras och bedöm om arbetet räcker. Arbetsflödet nedan tillämpar det tänkandet på tekniska beslut.
Börja med en avgränsad förmåga, till exempel kundexporter, betalningsinitiering eller enhetsuppdateringar. Att modellera en hel plattform på en gång ger ofta ytliga iakttagelser eftersom ingen kan förklara varje beroende tillräckligt detaljerat.
Ange tillgångarna och säkerhetsmålen i operativa termer. ”Skydda kunddata” är för brett. ”En autentiserad användare kan endast exportera poster som tillhör den kund som användaren är behörig för” ger teamet en egenskap att testa. Andra mål kan gälla transaktioners riktighet, tjänsters tillgänglighet, återställning eller spårbarhet för administrativa åtgärder.
Identifiera användare, tjänster, datalager, externa beroenden, ingångspunkter och förtroendegränser. Rita de viktiga dataflödena, inklusive asynkron behandling och administrativa vägar. Märk flödena med de data som överförs, autentiseringsmekanismen och auktoriseringskontexten där dessa påverkar analysen.
En förtroendegräns markerar en förändring i antaganden eller befogenheter, inte nödvändigtvis en nätverksperimeter. En webbläsare som anropar ett API korsar en gräns. En delad worker som agerar för en kunds räkning korsar en annan, även om båda tjänsterna körs i samma kluster.
För en applikation med flera kunder (multi-tenant), visa var kundidentiteten fastställs och hur den når auktoriseringskontroller, bakgrundsjobb och exporter. Inkludera tjänsteidentiteter, åtkomst till objektlagring, supportverktyg och externa callbacks. Annars kan diagrammet beskriva den lyckliga vägen men utelämna de vägar som mest sannolikt kringgår isoleringen.
Dokumentera antaganden separat från fakta. ”Kön kan inte skrivas till av kunder” behöver stöd i konfigurationsbelägg. Okända faktorer bör bli utredningsuppgifter, inte tyst accepterade skydd.
En metod ger frågor och struktur. Den avgör inte vilka hot som är viktigast, bevisar inte att en utformning är säker och ersätter inte kunskap om systemet.
STRIDE granskar sex kategorier. Tillämpa dem på relevanta komponenter, flöden och gränser i stället för att tvinga på varje kategori på varje element i diagrammet.
| Kategori | Fråga att ställa | Exempel i en tjänst för kundexporter |
|---|---|---|
| Spoofing | Kan en aktör utge sig för att vara en annan identitet? | En callback påstår sig komma från en betrodd leverantör. |
| Tampering | Kan data eller instruktioner ändras utan behörighet? | Kundidentifieraren i ett köat jobb ändras. |
| Repudiation | Kan en viktig åtgärd sakna tillförlitlig spårbarhet? | En supportexport saknar spårbart godkännande. |
| Information disclosure | Kan information nå en obehörig part? | En nedladdningslänk exponerar en annan kunds export. |
| Denial of service | Kan en aktör uttömma resurser eller störa tjänsten? | Upprepade exporter lägger beslag på delade workers. |
| Elevation of privilege | Kan en aktör få större befogenheter? | En vanlig användare anropar en export som bara administratörer får använda. |
Ett scenario kan sträcka sig över flera kategorier. Behåll en enda handlingsbar post där det är lämpligt i stället för att skapa dubbla ärenden för att tillfredsställa taxonomin.
PASTA, Process for Attack Simulation and Threat Analysis, erbjuder ett riskorienterat tillvägagångssätt i sju steg som kopplar samman affärsmål, tekniskt omfång, nedbrytning, hot- och sårbarhetsanalys, angreppsmodellering och riskbehandling. Det passar för djupare analys där angriparens beteende och affärskonsekvenserna behöver uttrycklig uppmärksamhet.
Attackträd utgår från en angripares mål och bryter ned det i alternativa eller kombinerade vägar. För ”få tag i en annan kunds export” kan alternativen vara att kringgå API-auktoriseringen, förvirra workerns kundkontext eller stjäla en nedladdningsbehörighet. OCH-relationer representerar villkor som måste inträffa samtidigt; ELLER-relationer representerar alternativ.
VAST, Visual, Agile, and Simple Threat modeling, betonar skalbar modellering ur både applikations- och driftperspektiv. Team som överväger metoden bör undersöka om deras verktyg och utvecklingsprocess kan upprätthålla dessa vyer konsekvent.
En praktisk rekommendation att börja med är ett dataflödesdiagram plus STRIDE, följt av ett attackträd för det mest konsekvensfyllda scenariot. Mer metodik är användbar bara när den förbättrar besluten.
Samla de personer som förstår genomförande och drift: en utvecklare, en arkitekt eller teknisk ledare, en säkerhetsgranskare och någon som känner till produktionsbeteendet. Ta med specialister på produkt, integritetsskydd eller leverantörer när deras kunskap påverkar omfånget.
Skicka ut diagrammet, säkerhetsmålen, relevant konfiguration och olösta antaganden före mötet. Under granskningen, följ en begäran eller händelse från ingång till slutförande. Fråga var identiteten förändras, var data lagras, vad som görs om vid fel och vilken komponent som har befogenhet att godkänna en åtgärd.
Skriv hot som scenarier, inte etiketter. ”Auktoriseringsproblem” är inte tillräckligt användbart. En starkare formulering är: ”En autentiserad användare byter ut identifieraren till en annan kunds export; nedladdningsendpointen kontrollerar inloggning men inte objektets ägarskap, vilket exponerar kunduppgifter.”
Skilj mellan tre begrepp:
Ett hot kan vara värt att utreda innan en sårbarhet har bekräftats. På samma sätt fastställer upptäckten av en svaghet inte att varje tänkbart angrepp är genomförbart.
Inkludera missbruk från legitima användare, privilegierade insiders, konfigurationsfel och leverantörsfel vid sidan av externa angrepp. Fråga vad som händer när ett beroende får timeout eller returnerar ett oväntat svar. Beteende som släpper igenom vid fel (fail-open) och inkonsekventa omförsök framträder ofta i dessa diskussioner.
Följande exempel är illustrativt. Anta att en SaaS-applikation har en webbklient, ett API, en delad databas, en jobbkö, en exportworker och objektlagring. Kundernas användare begär CSV-exporter; workern genererar filer och API:et utfärdar tillfälliga nedladdningslänkar. Supportadministratörer har ett separat gränssnitt för felsökning.
Säkerhetsmålen är kundisolering, behörig initiering av exporter, begränsad resursförbrukning och spårbara supportåtgärder. Anta att workern har databasåtkomst som är tillräckligt bred för att betjäna flera kunder. Det gör dess hantering av kundkontext till ett centralt beslut snarare än en mindre genomförandedetalj.
I API:et kopplas den autentiserade identiteten till tillåtet kundmedlemskap. En kundidentifierare som skickas från webbläsaren är en begäran om val, inte ett bevis på behörighet. API:et kontrollerar medlemskap och exportbehörighet innan det skapar en oföränderlig jobbpost som innehåller den behöriga kunden, den som begär exporten och det tillåtna exportomfånget.
Kömeddelandet refererar till den posten. Workern validerar jobbet och tillämpar kundavgränsad dataåtkomst när exporten tas fram. Metadata i lagringen kopplar det resulterande objektet till jobbet och kunden. Innan en nedladdningslänk utfärdas kontrollerar API:et den aktuella begärandens behörighet mot den kopplingen.
Utformningen behöver ändå uttryckliga beslut om återkallad åtkomst: ska en användare som förlorar sitt medlemskap efter att ha begärt en export behålla åtkomsten till den färdiga filen? Teamet måste definiera den policyn och tillämpa den konsekvent.
| Scenario | Behandlingsbeslut | Verifieringsbelägg |
|---|---|---|
| Användaren byter ut identifieraren till en annan kunds | Härled tillåtet omfång från medlemskap på serversidan och kontrollera objektets ägarskap | Negativa API-tester med två kunder och flera roller |
| Workern behandlar fel kundkontext | Validera jobb mot auktoritativa poster och använd kundavgränsade frågor | Workertester med felmatchad, saknad och felformaterad kontext |
| Nedladdningslänken läcker via loggar eller supportärenden | Håll behörighetsuppgifter borta från loggar och begränsa länkens giltighet efter exponering | Granskning av loggning, tester av länkens utgång och granskning av åtkomstvägar |
| En kund översvämmar exportkön | Tillämpa kvoter per kund, begränsningar av samtidighet och gränser för arbetsbelastning | Lasttester som visar tjänstens beteende vid missbrukande efterfrågan |
| Supportpersonal exporterar data utan ansvarsskyldighet | Kräv uttrycklig privilegierad behörighet och spårbara händelseposter | Rolltester och granskade stickprov av administrativa händelser |
Tillfälliga länkar medför ett kvarstående exponeringsfönster: innehav kan ge åtkomst fram till utgången, beroende på mekanismen. Teamet bör avgöra om det är acceptabelt för de berörda data eller om nedladdningar behöver en autentiserad mellanhand med aktuella behörighetskontroller.
Avsluta inte modellen efter att enbart ha testat det synkrona API:et. Verifiera fördröjda jobb, omförsök, avbrutna begäranden, utgånget medlemskap, raderade kunder och partiella fel. Ett jobb som görs om får till exempel inte återanvända ett objekt som är kopplat till en annan kund eller publicera en ofullständig export som lyckad.
Den resulterande leveransen är en granskad arkitektur, ett hotregister, genomförandeuppgifter och länkade verifieringsresultat. Det är inte bara diagrammet.
Prioritera rimliga scenarier utifrån exponering, påverkan, förutsättningar och befintliga skydd. Skilj ett direkt nåbart auktoriseringsfel från ett scenario som kräver flera obevisade kompromitteringar. Beakta berörda data, tjänsteavbrott, ekonomiska konsekvenser, säkerhetsmässiga följder för liv och hälsa samt svårigheter vid återställning där det är relevant.
Använd en enkel, konsekvent skala om den hjälper teamet, men dokumentera motiveringen bakom värderingen. En numerisk poäng med oförklarade indata skapar falsk precision. CVSS kan bidra till bedömningen av en konkret sårbarhet; det ersätter inte förståelsen av affärspåverkan eller ett arkitektoniskt missbruksfall.
Behandlingsalternativen omfattar att ändra utformningen, minska exponeringen, lägga till förebyggande eller upptäckande kontroller, avstå från förmågan eller acceptera den kvarstående risken. Leverantörsavtal kan fördela ansvar, men de tar inte bort tekniska felsätt.
Kvarstående risk bör ha en namngiven beslutsfattare, ett skäl, en giltighetstid eller utlösare för genomgång och eventuella driftvillkor. Att utvecklingen är klar och att risken accepteras är olika beslut. Ett ärende kan vara slutfört medan en betydande risk kvarstår.
För varje väsentligt scenario, dokumentera dess identifierare, berörda komponenter, förutsättningar, konsekvens, befintliga skydd, behandling, ägare och verifieringsmetod. Länka posten till arkitekturversionen och relevant genomförandearbete så att granskare kan se vilken utformning som bedömdes.
Översätt behandlingar till testbara acceptanskriterier. ”Förbättra åtkomstkontrollen” är vagt. ”Kund A kan inte begära, avläsa, avbryta eller ladda ned kund B:s export via någon endpoint som stöds” identifierar ett beteende som utvecklingsteamet kan verifiera.
Använd belägg som passar påståendet:
Ingen enskild artefakt bevisar hela modellen. En skärmdump av en inställning bevisar inte att varje worker använder den, och ett godkänt test visar inget om en otestad väg. Dokumentera testmiljö, omfång, resultat och begränsningar.
Hotmodellering kompletterar säker kodning, bedömning av beroenden, sårbarhetsskanning och penetrationstester. Dess särskilda bidrag är arkitektoniskt resonemang: den kan avslöja en farlig fördelning av befogenheter även när enskilda komponenter saknar kända sårbarheter.
Ett delat diagram och ett strukturerat register kan räcka för en fokuserad första granskning. Särskilda verktyg blir användbara när team behöver återanvändbara komponentbibliotek, konsekventa identifierare, samarbete och tillförlitliga länkar mellan hot och leveransposter.
Utvärdera om ett verktyg stöder förtroendegränser, egna scenarier, versionshistorik, exporterbara poster, ägarskap och referenser till belägg. Automatiskt genererade hot är uppslag att granska, inte bekräftade iakttagelser. Långa listor utan sammanhang kan dölja de få beslut som spelar roll.
AI-stöd kan ta fram utkast till scenariobeskrivningar, föreslå saknade vägar eller jämföra ändringar mot en tidigare modell. Mänskliga granskare måste ändå validera arkitektur, genomförbarhet, täckning av skyddsåtgärder och kvarstående risk. Håll konfidentiella diagram och inloggningsuppgifter borta från icke godkända tjänster. Att generera hotmodeller är också något annat än detektion i drift; att ta fram en modell etablerar inte kontinuerlig övervakning eller automatiserad åtgärd.
Uppdatera modellen vid nya integrationer, ändrad autentisering, privilegierade åtgärder, nya datakategorier, nätverksexponering och större förändringar i beroenden. En incident eller ett oväntat testresultat kan också ogiltigförklara ett tidigare antagande.
Olika system kräver olika tyngdpunkt. Molnapplikationer kräver uppmärksamhet på identitetsbehörigheter och åtkomst till kontrollplanet. Mobila klienter bör behandlas som miljöer som kontrolleras av angriparen snarare än som betrodda punkter för tillämpning. Uppkopplade enheter medför fysisk åtkomst, uppdateringarnas riktighet, återställning och potentiellt konsekvenser för liv och hälsa. AI-baserade funktioner lägger till obetrott innehåll och gränser för verktygsanvändning; auktoriseringen måste begränsa åtgärder oavsett modellens utdata.
Mät om viktiga flöden har aktuella modeller, om högt prioriterade behandlingar har verifieringsbelägg, om antaganden förblir olösta och om accepterade risker har försenade genomgångar. Att bara räkna hot belönar volym snarare än användbar analys. Be regelbundet en oberoende granskare att ifrågasätta ett kritiskt scenario och dess belägg.
Secani kan bevara arbetsflödet kring dessa beslut genom att modellera relevanta system och beroenden, tilldela ägare och granskare samt koppla belägg till krav, kontroller och beslut. Olösta antaganden blir uppgifter; källmaterial och mänskliga godkännanden förblir kopplade till granskningen. Eventuella AI-assisterade förslag bör kontrolleras före godkännande.
Börja med ett kritiskt dataflöde. Följ dess befogenheter från början till slut, identifiera ett fåtal rimliga scenarier och avsluta med behandlingar som har ägare och uttryckliga verifieringskriterier. Planera nästa granskning kring de arkitekturförändringar som skulle kunna ogiltigförklara dessa beslut.
Secani kopplar samman omfattningar, bevis, uppgifter och AI-agenter i en gemensam arbetsyta.
Koppla kritiska tjänster till återställningsmål, beroenden, övningar och korrigerande åtgärder så att kontinuitetsplanerna speglar den faktiska förmågan.
Granska identiteter, exponering, kryptering, återställning och loggning i molnet med underlag kopplade till de faktiska kontona, tjänsterna och uppgifterna.
Kombinera återkommande tekniska kontroller och periodisk bedömning med tydlig täckning, insamlingshälsa, tröskelvärden och ägarskap för uppföljning.