Komma igång med hotmodelleringsverktyget

Microsoft Threat Modeling Tool 2018 släpptes som GA i september 2018 som en kostnadsfri klick-till-nedladdning. Ändringen av leveransmekanismen gör att vi kan skicka de senaste förbättringarna och felkorrigeringarna till kunder varje gång de öppnar verktyget, vilket gör det lättare att underhålla och använda. Den här artikeln tar dig igenom processen för att komma igång med Microsoft SDL-hotmodelleringsmetoden och visar hur du använder verktyget för att utveckla stora hotmodeller som en ryggrad i din säkerhetsprocess.

Den här artikeln bygger på befintliga kunskaper om SDL-hotmodelleringsmetoden. En snabb genomgång finns i Hotmodelleringswebbprogram och en arkiverad version av Artikeln Om säkerhetsbrister med hjälp av STRIDE-metoden MSDN som publicerades 2006.

För att snabbt sammanfatta innebär metoden att skapa ett diagram, identifiera hot, minimera dem och verifiera varje åtgärd. Här är ett diagram som visar den här processen:

SDL Process

Starta hotmodelleringsprocessen

När du startar verktyget Hotmodellering ser du några saker, som du ser i bilden:

Blank Start Page

Avsnittet Hotmodell

Komponent Details
Knappen Feedback, förslag och problem Tar dig MSDN Forum för allt SDL. Det ger dig möjlighet att läsa igenom vad andra användare gör, tillsammans med lösningar och rekommendationer. Om du fortfarande inte hittar det du letar efter kan du skicka ett e-postmeddelande tmtextsupport@microsoft.com till vårt supportteam för att hjälpa dig
Skapa en modell Öppnar en tom arbetsyta där du kan rita diagrammet. Se till att välja vilken mall du vill använda för din modell
Mall för nya modeller Du måste välja vilken mall som ska användas innan du skapar en modell. Vår huvudmall är Azure Threat Model Template, som innehåller Azure-specifika stenciler, hot och åtgärder. För generiska modeller väljer du SDL TM Knowledge Base i den nedrullningsbara menyn. Vill du skapa en egen mall eller skicka en ny för alla användare? Läs vår GitHub-sida för malllagringsplats om du vill veta mer
Öppna en modell

Öppnar tidigare sparade hotmodeller. Funktionen Nyligen öppnade modeller är bra om du behöver öppna dina senaste filer. När du hovra över markeringen hittar du två sätt att öppna modeller:

  • Öppna från den här datorn – klassiskt sätt att öppna en fil med hjälp av lokal lagring
  • Öppna från OneDrive – team kan använda mappar i OneDrive för att spara och dela alla sina hotmodeller på en enda plats för att öka produktiviteten och samarbetet

Komma igång-guide Öppnar huvudsidan för Microsoft Threat Modeling Tool

Mallavsnitt

Komponent Details
Skapa ny mall Öppnar en tom mall som du kan bygga vidare på. Om du inte har omfattande kunskaper om att skapa mallar från grunden rekommenderar vi att du skapar från befintliga mallar
Öppna mall Öppnar befintliga mallar som du kan göra ändringar i

Teamet för hotmodelleringsverktyget arbetar ständigt för att förbättra verktygsfunktionerna och upplevelsen. Några mindre ändringar kan ske under året, men alla större ändringar kräver omskrivningar i guiden. Se det ofta för att se till att du får de senaste meddelandena.

Skapa en modell

I det här avsnittet följer vi:

  • Cristina (utvecklare)
  • Ricardo (programansvarig) och
  • Ashish (en testare)

De går igenom processen med att utveckla sin första hotmodell.

Ricardo: Hej Cristina, jag arbetade med hotmodelldiagrammet och ville se till att vi fick detaljerna rätt. Kan du hjälpa mig att se över det? Cristina: Absolut. Låt oss ta en titt. Ricardo öppnar verktyget och delar sin skärm med Cristina.

Basic Threat Model

Cristina: Ok, ser enkelt ut, men kan du gå igenom det? Ricardo: Visst! Här är uppdelningen:

  • Vår mänskliga användare ritas som en extern entitet – en kvadrat
  • De skickar kommandon till vår webbserver – cirkeln
  • Webbservern konsulterar en databas (två parallella rader)

Vad Ricardo just visade Cristina är en DFD, kort för Dataflöde Diagram. Med verktyget Hotmodellering kan användarna ange förtroendegränser, som anges av de röda streckade linjerna, för att visa var olika entiteter har kontroll. IT-administratörer kräver till exempel ett Active Directory-system för autentisering, så Active Directory ligger utanför deras kontroll.

Cristina: Ser rätt ut för mig. Hoten då? Ricardo: Låt mig visa dig.

Analysera hot

När han klickar på analysvyn från menyvalet i ikon (fil med förstoringsglas) tas han till en lista över genererade hot som hotmodelleringsverktyget hittade baserat på standardmallen, som använder SDL-metoden som kallas STRIDE (förfalskning, manipulering, avvisning, informationsupplysning, Denial of Service och utökade privilegier). Tanken är att programvara kommer under en förutsägbar uppsättning hot, som kan hittas med hjälp av dessa 6 kategorier.

Detta tillvägagångssätt är som att skydda ditt hus genom att se till att varje dörr och fönster har en låsmekanism på plats innan du lägger till ett larmsystem eller jagar efter tjuven.

Basic Threats

Ricardo börjar med att välja det första objektet i listan. Så här händer det:

För det första förbättras interaktionen mellan de två stencilerna

Screenshot shows two stencils and the curved arrow connecting them in a heavier weight of line.

För det andra visas ytterligare information om hotet i Hot Fönstret Egenskaper

Screenshot shows the Threat Properties window, which contains Title, Category, Description, Interaction, and Priority.

Det genererade hotet hjälper honom att förstå potentiella designfel. STRIDE-kategoriseringen ger honom en uppfattning om potentiella attackvektorer, medan den ytterligare beskrivningen berättar exakt vad som är fel, tillsammans med potentiella sätt att minimera det. Han kan använda redigerbara fält för att skriva anteckningar i motiveringsinformationen eller ändra prioritetsklassificeringar beroende på organisationens felfält.

Azure-mallar har ytterligare information som hjälper användarna att förstå inte bara vad som är fel, utan även hur de åtgärdar det genom att lägga till beskrivningar, exempel och hyperlänkar i Azure-specifik dokumentation.

Beskrivningen fick honom att inse vikten av att lägga till en autentiseringsmekanism för att förhindra att användare förfalskas, vilket avslöjar det första hotet som ska bearbetas. Några minuter in i diskussionen med Cristina förstod de vikten av att implementera åtkomstkontroll och roller. Ricardo fyllde i några snabba anteckningar för att se till att dessa implementerades.

När Ricardo gick in i hoten under Information Disclosure insåg han att åtkomstkontrollplanen krävde några skrivskyddade konton för granskning och rapportgenerering. Han undrade om detta skulle vara ett nytt hot, men lindringsåtgärderna var desamma, så han noterade hotet i enlighet därmed. Han tänkte också på avslöjande av information lite mer och insåg att säkerhetskopieringsbanden skulle behöva kryptering, ett jobb för driftsteamet.

Hot som inte gäller för designen på grund av befintliga åtgärder eller säkerhetsgarantier kan ändras till "Ej tillämpligt" från listrutan Status. Det finns tre andra alternativ: Inte startad – standardval, Behöver undersökning – används för att följa upp objekt och Minimeras – när det har fungerat fullt ut.

Rapporter och delning

När Ricardo går igenom listan med Cristina och lägger till viktiga anteckningar, minskningar/motiveringar, prioritets- och statusändringar, väljer han Rapporter -> Skapa fullständig rapport -> Spara rapport, som skriver ut en fin rapport för honom att gå igenom med kollegor för att säkerställa att rätt säkerhetsarbete implementeras.

Screenshot shows a representative Threat Modeling Report.

Om Ricardo vill dela filen i stället kan han enkelt göra det genom att spara i organisationens OneDrive-konto. När han gör det kan han kopiera dokumentlänken och dela den med sina kollegor.

Hotmodelleringsmöten

När Ricardo skickade sin hotmodell till sin kollega med hjälp av OneDrive var Ashish, testaren, underväldigad. Verkade som Ricardo och Cristina missade en hel del viktiga hörnfall, som lätt kunde äventyras. Hans skepsis är ett komplement till hotmodeller.

I det här scenariot, efter att Ashish tog över hotmodellen, efterlyste han två hotmodelleringsmöten: ett möte för att synkronisera processen och gå igenom diagrammen och sedan ett andra möte för hotgranskning och signering.

Under det första mötet tillbringade Ashish 10 minuter med att gå igenom SDL-hotmodelleringsprocessen. Han tog sedan fram hotmodelldiagrammet och började förklara det i detalj. Inom fem minuter hade en viktig komponent som saknades identifierats.

Några minuter senare fick Ashish och Ricardo en utökad diskussion om hur webbservern byggdes. Det var inte det idealiska sättet för ett möte att fortsätta, men alla var så småningom överens om att upptäcka avvikelsen tidigt skulle spara dem tid i framtiden.

I det andra mötet gick teamet igenom hoten, diskuterade några sätt att hantera dem och godkände hotmodellen. De kontrollerade dokumentet i källkontrollen och fortsatte med utvecklingen.

Funderar på tillgångar

Vissa läsare som har modellerat hot kanske märker att vi inte har pratat om tillgångar alls. Vi har upptäckt att många programvarutekniker förstår sin programvara bättre än de förstår begreppet tillgångar och vilka tillgångar en angripare kan vara intresserad av.

Om du ska hotmodellera ett hus kan du börja med att tänka på din familj, oersättliga foton eller värdefulla konstverk. Du kanske börjar med att fundera på vem som kan bryta sig in och det aktuella säkerhetssystemet. Eller så kan du börja med att överväga de fysiska funktionerna, som poolen eller verandan. Dessa är analoga med att tänka på tillgångar, angripare eller programvarudesign. Någon av dessa tre metoder fungerar.

Den metod för hotmodellering som vi har presenterat här är betydligt enklare än vad Microsoft har gjort tidigare. Vi har upptäckt att metoden för programvarudesign fungerar bra för många team. Vi hoppas att det inkluderar ditt.

Nästa steg

Skicka dina frågor, kommentarer och problem till tmtextsupport@microsoft.com. Ladda ned verktyget Hotmodellering för att komma igång.