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

Jako vývojář, který se zaměřuje na návrh a implementaci aplikací, které se řídí principy nulové důvěryhodnosti, 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í. Naučíte se termín nadměrná oprávnění. Zjistíte doporučení a osvědčené postupy pro omezení oprávnění v aplikacích, správu přístupu a zlepšení zabezpečení.

Co je nadprivilegované?

K přeprivilegování dochází, když aplikace požaduje nebo přijímá více oprávnění, než potřebuje, aby správně fungovala. Vylepšete své znalosti o přeprivilegování pomocí příkladů 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 svůj majetek co nejlépe chránit, mějte u sebe jen ty klíče, které potřebujete, když je potřebujete, a nepoužívané klíče ponechte na bezpečném místě.

Snížitelná oprávnění

Příklad klíčů k redukci je složitější než příklad nepoužívaného klíče, ke kterému nyní 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íči, které ilustrují redukovatelné 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íč. Přístupový klíč si ponecháte v bezpečném místě spolu se záložním zeleným klíčem.

U platformy Microsoft Identity Platform jsou klíči 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 nadměrnému postavení? 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 nesrovnalost v následujícím diagramu.

Diagram znázorňuje oprávnění a čas udělených oprávnění a použitých oprávnění.

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 můžou na oprávnění, která si aplikace vyžádají, použít členitost.
  • V našich šetřeních jsme zjistili, že aplikace plně využívají pouze 10% oprávnění pro jejich scénáře.

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

Ohrožení zabezpečení kvůli nadměrným oprávněním

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í nadprivilegovaným zabezpečením má obvykle čtyři fáze.

Diagram znázorňuje čtyři fáze scénáře ohrožení zabezpečení.

  1. Vývojář začne konfigurovat aplikaci a přidat požadovaná oprávnění.
  2. Správce IT zkontroluje požadovaná oprávnění a udělí souhlas.
  3. Špatný herec začne prolomovat přihlašovací údaje uživatele a úspěšně hackne identitu uživatele.
  4. Pokud uživatel vlastní více aplikací, je také přeprivilegovaný. Škodlivý aktér 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, abychom lépe porozuměli nepoužitým oprávněním a omezitelným oprávněním.

Diagram znázorňuje příklad nepoužívaných a reduciovatelných oprávnění.

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í.

Oprávnění, která lze redukovat, je obtížnější odhalit. 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:

  • Prevence
  • Kontrola
  • Opravné řešení

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

Diagram znázorňuje doporučení, která brání, auditují a opravují přeprivilegované scénáře.

  • Prevence: Při vytváření aplikace plně rozumíte požadovaným oprávněním pro volání rozhraní API, která vaše aplikace potřebuje provést. Požádejte pouze o to, co je potřeba 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, přestaňte 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í zásady minimálních oprávnění ve vašich aplikacích je podpora přijetí aplikací a zastavení šíření.

Diagram znázorňuje přijetí a zastavení šíření.

  • 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 špatní aktéři 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í, je nejméně pravděpodobné, že dostane schválení, nebo bude zcela zamítnuta. Nejlepším způsobem, jak omezit škody, je zabránit útočníkům v získání zvýšených oprávnění, rozšiřujících oblast ohrož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