Dela via


Minska överprivilegierade behörigheter och appar

Som utvecklare som vill utforma och implementera program som följer de vägledande principerna för Noll förtroende vill du öka programsäkerheten med minsta möjliga behörighet. Det är absolut nödvändigt att du minskar angreppsytan för ditt program och effekten av ett säkerhetsintrång.

I den här artikeln får du lära dig varför program inte ska begära fler behörigheter än de behöver. Du lär dig termen överprivilegium. Du upptäcker rekommendationer och metodtips för att begränsa behörigheten i dina program, hantera åtkomst och förbättra säkerheten.

Vad är överprivilege?

Överprivilege inträffar när ett program begär eller tar emot fler behörigheter än det behöver för att det ska fungera korrekt. Förbättra din förståelse för överprivilege med exempel på oanvända och reproducerbara behörigheter i resten av den här artikeln.

Oanvända behörigheter

För det här oanvända nyckelexemplet kan du tänka dig att det finns tre låsta dörrar (blå, gul och grön) enligt följande diagram.

Diagrammet visar tre dörrar med motsvarande nycklar för att illustrera oanvända behörigheter.

Dina tillgångar är bakom dörrarna. Du har tre nycklar (blå, gul och grön) som gör att du kan öppna motsvarande dörr. Den blå nyckeln kan till exempel öppna den blå dörren. När du bara behöver åtkomst till den gula dörren bär du bara den gula nyckeln.

För att skydda dina tillgångar bäst kan du bara bära de nycklar du behöver när du behöver dem och behålla oanvända nycklar på en säker plats.

Reducerbara behörigheter

Exemplet med reducerbara nycklar är mer komplicerat än exemplet med den oanvända nyckeln, till vilket vi nu lägger till två specialnycklar, som visas i det följande diagrammet.

Diagrammet visar tre dörrar med motsvarande nycklar för att illustrera reducerbara behörigheter.

Den första svarta nyckeln är en passnyckel som kan öppna alla dörrar. Den andra svarta nyckeln kan öppna de gula och gröna dörrarna. När du bara behöver åtkomst till de gula och gröna dörrarna bär du bara den andra svarta nyckeln. Du håller din passeringsnyckel på en säker plats med den redundanta gröna nyckeln.

Med Microsofts identitetsplattform är nycklarna åtkomstbehörigheter. Du, nyckelhållaren, och dina resurser är applikationer. Om du förstår risken med att bära onödiga nycklar är du medveten om risken för att dina program har onödiga behörigheter.

Behörighetsgap och risk

Hur kan dörrar och nycklar hjälpa till att förstå hur överprivilege sker? Varför kan ditt program ha rätt behörighet att utföra en uppgift, men ändå vara överprivilegierad? Nu ska vi titta på det behörighetsgap som kan orsaka avvikelsen i följande diagram.

Diagrammet visar behörigheter och tid för beviljade behörigheter och behörigheter som används.

X-axeln representerar Tid och Y-axeln representerar Behörigheter. I början av den uppmätta tiden begär och får du behörighet för ditt program. När verksamheten växer och ändras över tid lägger du till nya behörigheter för att stödja dina behov och lutningen för Beviljade behörigheter ökar. De behörigheter som används kan vara lägre än beviljade behörigheter när du glömmer att ta bort onödiga behörigheter (till exempel om programmet inte bryts) vilket resulterar i ett behörighetsgap.

Här är intressanta observationer på Microsofts identitetsplattform.

  • Vi har fler än 4 000 API:er i Microsoft Graph.
  • Mer än 200 Microsoft Graph-behörigheter är tillgängliga på Microsofts identitetsplattform.
  • Utvecklare har åtkomst till en mängd olika data och kan tillämpa kornighet på behörigheter som deras appar begär.
  • I våra undersökningar upptäckte vi att appar endast använder 10% behörigheter för sina scenarier fullt ut.

Tänk noga på behörigheter som din app kräver. Se upp för behörighetsgapet och kontrollera regelbundet dina programbehörigheter.

Säkerhet komprometterad på grund av överprivilegierade

Nu ska vi gå djupare in på de risker som följer av behörighetsluckor med ett exempel. Det här komprometterande scenariot består av två roller: IT-administratör och utvecklare.

  • IT-administratör: Jeff är en klientorganisationsadministratör som ser till att program i Microsoft Entra-ID:t är tillförlitliga och säkra. En del av Jeffs jobb är att ge medgivande till behörigheter som apputvecklare behöver.
  • Utvecklare: Kelly är en apputvecklare som använder Microsofts identitetsplattform och äger appar. Kellys jobb är att se till att program har rätt behörighet att utföra nödvändiga uppgifter.

Ett vanligt scenario för säkerhetskompromisser på grund av överprivilegier omfattar vanligtvis fyra steg.

Diagrammet visar fyra steg i ett säkerhetskompromissscenario.

  1. Utvecklaren börjar konfigurera programmet och lägga till nödvändiga behörigheter.
  2. IT-administratören granskar nödvändiga behörigheter och beviljar medgivande.
  3. Den dåliga aktören börjar knäcka användarautentiseringsuppgifter och hackar användaridentiteten.
  4. Om användaren äger flera program är de också överprivilegierade. Den felaktiga aktören kan snabbt använda token för den beviljade behörigheten för att hämta känsliga data.

Överprivilegierade applikationer

En entitet överprivilegieras när den ber om eller tar emot fler behörigheter än den behöver. Definitionen av överprivilegierat program i Microsofts identitetsplattform är alla program med oanvända eller reproducerbara behörigheter.

Vi använder Microsoft Graph som en del av Microsofts identitetsplattform i ett verkligt exempel för att bättre förstå oanvända behörigheter och reducerbara behörigheter.

Diagrammet visar exempel på oanvända och reducerbara behörigheter.

Oanvänd behörighet inträffar när programmet får behörigheter som inte behövs för de önskade uppgifterna. Du skapar till exempel en kalenderapp. Din kalenderapp begär och får Files.ReadWrite.All behörighet. Appen integreras inte med några filers API:er. Därför har programmet en oanvänd Files.ReadWrite.All behörighet.

Det är svårare att upptäcka reducerbar behörighet. Det inträffar när programmet får få behörigheter men har ett lägre privilegierat alternativ som ger tillräcklig åtkomst för nödvändiga uppgifter. I exemplet med kalenderappen begär och tar din app emot Files.ReadWrite.All behörighet. Den behöver dock bara läsa filer från den inloggade användarens OneDrive och behöver aldrig skapa nya filer eller ändra befintliga filer. I det här fallet använder Files.ReadWrite.All ditt program bara delvis, så du måste nedgradera till Files.Read.All.

Rekommendationer för att minska överprivilegierade scenarier

Säkerhet är en resa, inte ett mål. Det finns tre olika faser i säkerhetslivscykeln:

  • Förebyggande
  • Granskning
  • Åtgärder

Följande diagram illustrerar rekommendationer för att minska överprivilegierade scenarier.

Diagrammet visar rekommendationer för att förhindra, granska och åtgärda överprivilegierade scenarier.

  • Förhindra: När du skapar ett program förstår du de behörigheter som krävs för de API-anrop som programmet behöver göra. Begär bara det som krävs för att aktivera ditt scenario. Microsoft Graph-dokumentationen innehåller tydliga referenser för behörigheter med minst behörighet till de flesta privilegierade behörigheterna för alla slutpunkter. Tänk på överprivilegierade scenarier när du avgör vilka behörigheter du behöver.
  • Granskning: Du och IT-administratörer bör regelbundet granska befintliga program tidigare beviljade privilegier.
  • Åtgärda: Om du eller IT-administratörer märker ett överprivilegierat program i ekosystemet slutar du att begära token för överprivilegierad behörighet. IT-administratörer bör återkalla beviljade medgivanden. Det här steget kräver vanligtvis en kodändring.

Bästa praxis för att förvalta principen om minst privilegium

Två viktiga incitament för att upprätthålla minimala behörigheter med dina program är att öka programanvändningen och begränsa spridningen.

Diagrammet illustrerar

  • Driva på implementeringen genom att skapa en tillförlitlig app för kunder som undviker orimliga behörighetsbegäranden. Begränsa programbehörigheterna till endast det som krävs för att slutföra uppgiften. Den här metoden minskar risken för angreppsradie och ökar kundernas användning av era appar. Tillämpa mer granskning när du granskar behörigheter som program begär och bestämmer om appbehörigheter ska beviljas.
  • Stoppa spridningen genom att se till att dåliga aktörer inte kan använda överdrivna privilegier för att få ytterligare åtkomst. När du skapar en app som ber om onödiga behörigheter är det minst troligt att den får godkännande eller nekas helt och hållet. Det bästa sättet att kontrollera skador är att förhindra att dåliga aktörer får utökade privilegier som ökar kompromissens omfattning. Om ditt program till exempel bara behöver User.ReadBasic.All läsa grundläggande användarinformation är dina OneDrive, Outlook, Teams och eventuella konfidentiella data säkra om en app komprometteras.

Nästa steg