Vylepšení zabezpečení s využitím principu nejnižších oprávnění
Princip zabezpečení informací s nejnižšími oprávněními potvrzuje, že uživatelům a aplikacím by měl být udělen přístup pouze k datům a operacím, které potřebují k výkonu své práce. Postupujte podle těchto pokynů, které vám pomůžou snížit prostor pro útok na aplikaci a snížit dopad porušení zabezpečení (poloměr výbuchu), pokud by k němu došlo v Microsoft identity platform integrované aplikaci.
Doporučení na první pohled
- Zabránit nadměrně privilegovaným aplikacím odvoláním nepoužívaných a reduciovatelných oprávnění.
- Architektura pro vyjádření souhlasu platformy Identity Platform vyžaduje souhlas člověka s požadavkem aplikace na přístup k chráněným datům.
- Vytvářejte aplikace s minimálními oprávněními během všech fází vývoje.
- Pravidelně auditujte nasazené aplikace a identifikujte ty, které jsou nadměrněprivilegované.
Přeprivilegované aplikace
Každá aplikace, která má udělené nepoužívané nebo reduciitelné oprávnění, se považuje za nadměrnou. Nepoužitá a opětovně použitelná oprávnění můžou poskytovat neoprávněný nebo nezamýšlený přístup k datům nebo operacím, které aplikace nebo její uživatelé k provádění svých úloh nevyžadují. Vyhněte se bezpečnostním rizikům, která představují nepoužívané a reduciovatelnou oprávnění, tím, že udělíte pouze příslušná oprávnění. Příslušná oprávnění jsou oprávnění s nejméně povoleným přístupem vyžadovaným aplikací nebo uživatelem k provádění požadovaných úkolů.
Nepoužitá oprávnění
Nepoužité oprávnění je oprávnění, které bylo uděleno aplikaci, ale jehož rozhraní API nebo operace vystavená tímto oprávněním není volána aplikací, pokud se používá podle očekávání.
Příklad: Aplikace zobrazí seznam souborů uložených na OneDrivu přihlášeného uživatele zavoláním Graph API Microsoft pomocí oprávnění Files.Read. Aplikace ale také získala oprávnění Calendars.Read , ale neposkytuje žádné funkce kalendáře a nevolá rozhraní API Calendars.
Bezpečnostní riziko: Nepoužitá oprávnění představují horizontální bezpečnostní riziko eskalace oprávnění . Entita, která zneužije ohrožení zabezpečení v aplikaci, by mohla použít nepoužívané oprávnění k získání přístupu k rozhraní API nebo operaci, která aplikace normálně nepodporuje nebo nepovoluje, pokud se používá podle očekávání.
Zmírnění rizik: Odeberte všechna oprávnění, která se nepoužívají ve voláních rozhraní API provedených aplikací.
Reducible permissions
Opakované oprávnění je oprávnění, které má protějšek s nižšími oprávněními, který by aplikaci a jejím uživatelům stále poskytoval přístup potřebný k provádění požadovaných úkolů.
Příklad: Aplikace zobrazí informace o profilu přihlášeného uživatele voláním Graph API Microsoft, ale nepodporuje úpravy profilu. Aplikace však získala oprávnění User.ReadWrite.All . Oprávnění User.ReadWrite.All je zde považováno za opakované, protože méně oprávnění User.Read.All uděluje dostatečný přístup jen pro čtení k datům profilů uživatelů.
Bezpečnostní riziko: Reducible permissions představují vertikální eskalaci oprávnění bezpečnostní riziko. Entita, která zneužije chybu zabezpečení v aplikaci, by mohla použít redukovatelné oprávnění pro neoprávněný přístup k datům nebo k provádění operací, které tato role entity normálně nepovoluje.
Zmírnění rizik: Nahraďte všechna oprávnění v aplikaci, která se můžou opakovat, svým nejméně povoleným protějškem, který stále povoluje požadované funkce aplikace.
Použití souhlasu k řízení přístupu k datům
Většina aplikací vyžaduje přístup k chráněným datům a vlastník těchto dat musí s tímto přístupem vyjádřit souhlas . Souhlas může být udělen několika způsoby, včetně správce tenanta, který může vyjádřit souhlas všem uživatelům v Microsoft Entra tenantovi, nebo samotnými uživateli aplikace, kteří můžou udělit přístup.
Kdykoli aplikace spuštěná v zařízení požádá o přístup k chráněným datům, měla by před udělením přístupu k chráněným datům požádat uživatele o souhlas. Uživatel musí udělit (nebo odepřít) souhlas s požadovaným oprávněním, aby aplikace postoupila.
Nejnižší oprávnění během vývoje aplikace
Zabezpečení aplikace a uživatelských dat, ke kterým přistupuje, je zodpovědností vývojáře.
Při vývoji aplikací dodržujte tyto pokyny, abyste zabránili tomu, že by byla nadměrně neprivilegovaná:
- Plně porozumíte oprávněním požadovaným pro volání rozhraní API, která aplikace potřebuje provést.
- Seznamte se s nejméně privilegovanými oprávněními pro každé volání rozhraní API, které aplikace potřebuje pomocí Graph Exploreru.
- Vyhledejte odpovídající oprávnění od nejnižších po nejprivilegovanější.
- V případech, kdy aplikace provádí volání rozhraní API s překrývajícími se oprávněními, odeberte všechny duplicitní sady oprávnění.
- Výběrem nejméně privilegovaného oprávnění v seznamu oprávnění použijete pro aplikaci pouze nejnižší privilegovanou sadu oprávnění.
Nejnižší oprávnění pro nasazené aplikace
Organizace často váhají s úpravou spuštěných aplikací, aby nedošlo k ovlivnění jejich běžného obchodního provozu. Organizace by ale měla zvážit zmírnění rizika incidentu zabezpečení, který by byl možný nebo závažnější, a to použitím přeprivilegovaných oprávnění, která by si vyplatila plánovanou aktualizaci aplikace.
Zajistěte v organizaci tyto standardní postupy, které vám pomůžou zajistit, že nasazené aplikace nebudou nadměrně neprivilegované a nebudou přeprivilegované v průběhu času:
- Vyhodnoťte volání rozhraní API vytvořená z aplikací.
- Požadovaná a nejméně privilegovaná oprávnění potřebujete pomocí Graph Exploreru a dokumentace k Microsoft Graphu .
- Auditovat oprávnění udělená uživatelům nebo aplikacím
- Aktualizujte aplikace pomocí sady oprávnění s nejnižšími oprávněními.
- Pravidelně kontrolujte oprávnění a ujistěte se, že jsou všechna autorizovaná oprávnění stále relevantní.