Uppmätt start- och värdattestering
Den här artikeln beskriver hur Microsoft säkerställer integritet och säkerhet för värdar genom uppmätt start och värdattestering.
Uppmätt start
TPM (Trusted Platform Module) är en kryptografiskt säker granskningskomponent med inbyggd programvara som tillhandahålls av en betrodd tredje part. Startkonfigurationsloggen innehåller hash-länkade mått som registrerats i dess PCR (Platform Configuration Registers) när värden senast genomgick bootstrapping-sekvensen. Följande bild visar den här inspelningsprocessen. Att stegvis lägga till en tidigare hash-mätning till nästa mätnings hash och köra hash-algoritmen i unionen åstadkommer hash-länkning.
Attestering utförs när en värd tillhandahåller bevis på sitt konfigurationstillstånd med hjälp av sin startkonfigurationslogg (TCGLog). Förfalskning av en startlogg är svårt eftersom TPM inte exponerar andra PCR-värden än läs- och utökningsåtgärderna. Dessutom är de autentiseringsuppgifter som tillhandahålls av värdattesteringstjänsten förseglade för specifika PCR-värden. Användningen av hash-chaining gör det beräkningsmässigt omöjligt att förfalska eller öppna autentiseringsuppgifterna out-of-band.
Värdattesteringstjänst
Värdattesteringstjänsten är ett förebyggande mått som kontrollerar om värddatorer är tillförlitliga innan de får interagera med kunddata eller arbetsbelastningar. Värdattesteringstjänsten kontrollerar genom att verifiera en efterlevnadsuttryck (verifierbart bevis på värdens efterlevnad) som skickas av varje värd mot en attesteringsprincip (definition av det säkra tillståndet). Integriteten i det här systemet garanteras av en rot av förtroende som tillhandahålls av en TPM.
Värdattesteringstjänsten finns i varje Azure-kluster i en specialiserad låst miljö. Den låsta miljön innehåller andra gatekeeper-tjänster som deltar i värddatorns bootstrappingprotokoll. En offentlig nyckelinfrastruktur (PKI) fungerar som mellanhand för att validera proveniensen för attesteringsbegäranden och som identitetsutfärdare (beroende på lyckad värdattestering). Autentiseringsuppgifterna efter attesteringen som utfärdats till attesteringsvärden är förseglade för dess identitet. Endast den begärande värden kan öppna autentiseringsuppgifterna och utnyttja dem för att få inkrementella behörigheter. Detta förhindrar man-in-the-middle och förfalskningsattacker.
Om en Azure-värd anländer från en fabrik med en säkerhetsfelkonfiguration eller manipuleras i datacentret innehåller dess TCGLog indikatorer på komprometterande som flaggats av värdattesteringstjänsten vid nästa attestering, vilket orsakar ett attesteringsfel. Attesteringsfel hindrar Azure-flottan från att lita på den felande värden. Det här förebyggandet blockerar effektivt all kommunikation till och från värden och utlöser ett incidentarbetsflöde. Undersökning och en detaljerad analys efter döden utförs för att fastställa grundorsakerna och eventuella tecken på kompromiss. Det är först när analysen har slutförts som en värd har åtgärdats och har möjlighet att ansluta till Azure-flottan och ta på sig kundarbetsbelastningar.
Följande är en arkitektur på hög nivå för värdattesteringstjänsten:
Attesteringsmätningar
Här följer exempel på de många mätningar som samlas in idag.
Skydda start- och säker startnycklar
Genom att verifiera att signaturdatabasen och återkallade signaturer är korrekta försäkrar värdattesteringstjänsten att klientagenten anser att rätt programvara är betrodd. Genom att verifiera signaturerna för den offentliga nyckelregistreringsnyckeldatabasen och den offentliga plattformsnyckeln bekräftar värdattesteringstjänsten att endast betrodda parter har behörighet att ändra definitionerna för vilken programvara som anses vara betrodd. Genom att se till att säker start är aktiv verifierar värdattesteringstjänsten att dessa definitioner tillämpas.
Felsöka kontroller
Felsökningsprogram är kraftfulla verktyg för utvecklare. Den ohämmade åtkomsten till minne och andra felsökningskommandon kan dock försvaga dataskyddet och systemintegriteten om den ges till en icke-betrodd part. Värdattesteringstjänsten ser till att alla typer av felsökning inaktiveras vid start på produktionsdatorer.
Kodintegritet
UEFI Secure Boot säkerställer att endast betrodd programvara på låg nivå kan köras under startsekvensen. Samma kontroller måste dock också tillämpas i miljön efter start på drivrutiner och andra körbara filer med kernellägesåtkomst. Därför används en kodintegritetsprincip (CI) för att definiera vilka drivrutiner, binärfiler och andra körbara filer som anses vara betrodda genom att ange giltiga och ogiltiga signaturer. Dessa principer tillämpas. Överträdelser av principen genererar aviseringar till svarsteamet för säkerhetsincidenter för undersökning.
Nästa steg
Mer information om vad vi gör för att skapa plattformsintegritet och säkerhet finns i: