Sdílet prostřednictvím


Omezení nadprivilegovaných oprávnění a aplikací

Jako vývojář, který se zaměřuje na návrh a implementaci aplikací, které se řídí hlavními principy nulová důvěra (Zero Trust), chcete zvýšit zabezpečení aplikací s nejnižšími oprávněními. Je nezbytné snížit prostor pro útok vaší aplikace a dopad porušení zabezpečení.

V tomto článku se dozvíte, proč by aplikace neměly požadovat více oprávnění, než potřebují. Rozumíte termínu nadprivilegovaným a zjistíte doporučení a osvědčené postupy pro omezení oprávnění ve vašich aplikacích pro správu přístupu a zlepšení zabezpečení.

Co je nadprivilegované?

Nadprivilegované dochází v případě, že aplikace požaduje nebo přijímá více oprávnění, než potřebuje k tomu, aby správně fungovala. Vylepšete své znalosti o přeprivilegovaných příkladech nepoužívaných a znovu použitelných oprávnění ve zbývající části tohoto článku.

Nepoužitá oprávnění

V tomto příkladu nepoužitého klíče si představte, že existují tři zamknuté dveře (modrá, žlutá a zelená), jak je znázorněno v následujícím diagramu.

Diagram znázorňuje tři dveře s odpovídajícími klávesami pro ilustraci nepoužívaných oprávnění.

Vaše prostředky jsou za dveřmi. Máte tři klávesy (modrá, žlutá a zelená), které vám umožní otevřít odpovídající dveře. Modrá klávesa může například otevřít modré dveře. Pokud potřebujete přístup jenom ke žlutým dveřím, budete mít pouze žlutý klíč.

Pokud chcete prostředky co nejlépe chránit, budete mít klíče, které potřebujete, jenom když je potřebujete, a ponechat nepoužité klíče v bezpečném umístění.

Opětovná oprávnění

Příklad reducible keys je složitější než příklad nepoužívaného klíče, do kterého teď přidáváme dva speciální klíče, jak je znázorněno na následujícím diagramu.

Diagram znázorňuje tři dveře s odpovídajícími klávesami, které ilustrují reducible oprávnění.

První černý klíč je klíč, který může otevřít všechny dveře. Druhý černý klíč může otevřít žluté a zelené dveře. Pokud potřebujete přístup pouze ke žlutým a zeleným dveřím, budete mít pouze druhý černý klíč. Klíč pro předání si ponecháte v bezpečném umístění s redundantním zeleným klíčem.

Ve světě identit Microsoftu jsou klíče přístupová oprávnění. Vaše prostředky a vy, držitel klíče, jsou aplikace. Pokud rozumíte riziku používání nepotřebných klíčů, víte o riziku, že vaše aplikace mají nepotřebná oprávnění.

Mezera oprávnění a rizika

Jak můžou dveře a klíče pomoci pochopit, jak dochází k přeprivilegovaným? Proč může mít vaše aplikace správná oprávnění k provedení úlohy, ale stále je přeprivilegovaná? Podívejme se na mezeru oprávnění, která by mohla způsobit nesrovnalosti v následujícím diagramu.

Graf vpravo: Osa Y - Oprávnění, osa X - Čas; Horní křivka – Udělená oprávnění, Dolní křivka – Použitá oprávnění; Statistiky o právech popsaných v obsahu článku

Osa X představuje čas a osa Y představuje oprávnění. Na začátku měřeného času si vyžádáte a obdržíte oprávnění pro vaši aplikaci. S tím, jak firma roste a mění se v průběhu času, přidáte nová oprávnění pro podporu vašich potřeb a sklon udělených oprávnění se zvyšuje. Použitá oprávnění můžou být nižší než udělená oprávnění, když zapomenete odebrat nepotřebná oprávnění (například pokud aplikace neporuší), což způsobí mezeru oprávnění.

Tady jsou zajímavá pozorování na platformě Microsoft Identity Platform.

  • V Microsoft Graphu máme více než 4 000 rozhraní API.
  • Na platformě Microsoft Identity Platform je k dispozici více než 200 oprávnění Microsoft Graphu.
  • Vývojáři mají přístup k široké škále dat a možnost aplikovat členitost na oprávnění, která jejich aplikace požadují.
  • V našich šetřeních jsme zjistili, že aplikace mají pro své scénáře pouze 10 % plně využitých oprávnění.

Pečlivě zvažte, jaká oprávnění vaše aplikace skutečně vyžaduje. Dávejte pozor na mezeru oprávnění a pravidelně kontrolujte oprávnění aplikace.

Ohrožení zabezpečení kvůli přeprivilegovanému zabezpečení

Pojďme se podrobněji podívat na rizika, která vyplývají z mezer mezi oprávněními, a podívejme se na příklad. Tento scénář ohrožení zabezpečení zahrnuje dvě role: správce IT a vývojář.

  • Správce IT: Jeff je správce tenanta, který zajišťuje, aby aplikace v Microsoft Entra ID byly důvěryhodné a zabezpečené. Součástí úlohy Jeffa je udělení souhlasu s oprávněními, která vývojáři aplikací vyžadují.
  • Vývojář: Kelly je vývojář aplikací, který používá platformu Microsoft Identity Platform a vlastní aplikace. Kelly má za úkol zajistit, aby aplikace měly správná oprávnění k provádění požadovaných úkolů.

Následující běžný scénář ohrožení zabezpečení pro přeprivilegované obvykle má čtyři fáze.

Diagram popsaný v obsahu článku – čtyři fáze scénáře ohrožení zabezpečení

  1. Nejprve vývojář začne konfigurovat aplikaci a přidat požadovaná oprávnění.
  2. Za druhé správce IT zkontroluje požadovaná oprávnění a udělí souhlas.
  3. Za třetí, špatný herec začne prolomení uživatelských přihlašovacích údajů a úspěšně hackne identitu uživatele.
  4. Pokud uživatel vlastní více aplikací, je také přeprivilegovaný. Chybný objekt actor může rychle použít token uděleného oprávnění k načtení citlivých dat.

Přeprivilegované aplikace

Entita je přeprivilegovaná, když požádá nebo obdrží více oprávnění, než potřebuje. Definice přeprivilegované aplikace na platformě Microsoft Identity Platform je "libovolná aplikace s nepoužívanými nebo reduciovatelnými oprávněními".

V reálném příkladu použijeme Microsoft Graph jako součást platformy Microsoft Identity Platform, abychom lépe porozuměli nepoužitým oprávněním a znovu je zmenšovali.

Levý sloupec: Nepoužité – Udělení jednoho nebo více oprávnění, která nejsou vůbec nutná pro volání rozhraní API. Pravý sloupec: Reducible – Oprávnění, které má nižší privilegovanou alternativu, která by stále poskytovala přístup pro požadované úkoly.

K nepoužitým oprávněním dochází v případě, že vaše aplikace obdrží oprávnění, která nejsou potřebná pro požadované úlohy. Například vytváříte kalendářovou aplikaci. Vaše aplikace kalendáře požaduje a přijímá Files.ReadWrite.All oprávnění. Vaše aplikace se neintegruje s rozhraními API žádných souborů. Proto má vaše aplikace nepoužívané Files.ReadWrite.All oprávnění.

Opětovné zjištění oprávnění je obtížnější. Nastane, když vaše aplikace obdrží několik oprávnění, ale má nižší privilegovanou alternativu, která by poskytovala dostatečný přístup pro požadované úlohy. V příkladu aplikace kalendáře vaše aplikace požaduje a přijímá Files.ReadWrite.All oprávnění. Potřebuje ale jenom číst soubory z OneDrivu přihlášeného uživatele a nikdy nemusí vytvářet nové soubory nebo upravovat stávající soubory. V tomto případě vaše aplikace využívá Files.ReadWrite.All pouze částečně, takže potřebujete downgradovat na Files.Read.All.

Doporučení pro snížení nadprivilegovaných scénářů

Zabezpečení je cesta, ne cíl. Životní cyklus zabezpečení má tři různé fáze:

  • Prevention (Prevence)
  • Auditování
  • Náprava

Následující diagram znázorňuje doporučení pro snížení nadprivilegovaných scénářů.

Diagram popsaný v obsahu článku – doporučení k prevenci, auditování a nápravě přeprivilegovaných scénářů

  • Prevence: Při vytváření aplikace byste měli plně pochopit oprávnění požadovaná pro volání rozhraní API, která vaše aplikace potřebuje provést, a požádat pouze o to, co je nezbytné k povolení vašeho scénáře. Dokumentace k Microsoft Graphu obsahuje jasné odkazy na oprávnění s nejnižšími oprávněními k nejvíce privilegovaným oprávněním pro všechny koncové body. Při určování potřebných oprávnění mějte na paměti přeprivilegované scénáře.
  • Audit: Vy a správci IT byste měli pravidelně kontrolovat dříve udělená oprávnění stávajících aplikací.
  • Náprava: Pokud vy nebo správci IT zaznamenáte v ekosystému nadprivilegovanou aplikaci, měli byste přestat požadovat tokeny pro nadprivilegované oprávnění. Správci IT by měli odvolat udělené souhlasy. Tento krok obvykle vyžaduje změnu kódu.

Osvědčené postupy pro udržování oprávnění s nejnižšími oprávněními

Dvěma hlavními pobídkami pro zachování oprávnění s nejnižšími oprávněními u vašich aplikací je řízení přijetí aplikací a zastavení šíření.

Levý sloupec: Přijetí jednotek – Vytvoření důvěryhodné aplikace pro zákazníky tím, že se vyhnete nadměrným požadavkům na oprávnění. Pravý sloupec: Zastavit šíření – Útočníci nemůžou k získání dalšího přístupu použít nadměrná oprávnění.

  • Zajistěte přijetí vytvořením důvěryhodné aplikace pro zákazníky, kteří se vyhýbají nadměrným požadavkům na oprávnění. Omezte oprávnění aplikace jenom na to, co potřebuje k dokončení úkolu. Tento postup snižuje potenciální poloměr útoků a zvyšuje přijetí vašich aplikací zákazníkem. Při kontrole oprávnění, která aplikace požadují, a rozhodování o tom, jestli se mají udělit oprávnění aplikace, využijte důkladnější kontrolu.
  • Zastavte šíření tím, že zajistíte, aby útočníci nemohli k získání dalšího přístupu použít nadměrná oprávnění. Když vytvoříte aplikaci, která požádá o nepotřebná oprávnění, bude pravděpodobně zcela přijímat schválení nebo odepření. Nejlepší způsob, jak řídit poškození, je zabránit útočníkům v získání zvýšeného oprávnění, které zvyšuje rozsah ohrožení zabezpečení. Pokud třeba vaše aplikace musí User.ReadBasic.All číst jenom základní informace uživatelů, jsou vaše data z OneDrivu, Outlooku, Teams a jakýchkoli důvěrných dat v případě ohrožení zabezpečení aplikace v bezpečí.

Další kroky