Vylepšení zabezpečení pomocí principu nejnižších oprávnění
Princip zabezpečení informací s nejnižšími oprávněními tvrdí, že uživatelé a aplikace by měli mít přístup pouze k datům a operacím, které vyžadují k provádění svých úloh. Postupujte podle pokynů, které vám pomůžou snížit prostor pro útok aplikace a dopad porušení zabezpečení ( poloměr výbuchu) v aplikaci integrované na platformě Microsoft Identity Platform.
Doporučení na první pohled
- Zabránit přeprivilegovaným aplikacím odvoláním nepoužívaných a reduciovatelných oprávnění
- Použijte architekturu pro vyjádření souhlasu platformy Identity Platform, která vyžaduje, aby lidský souhlas s požadavkem z aplikace přistupoval 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 nadprivilegované.
Přeprivilegované aplikace
Každá aplikace, která má udělené nepoužívané nebo opakované oprávnění, se považuje za neprivilegovanou. Nepoužitá a znovu použitelná oprávnění mají potenciál poskytnout neoprávněný nebo nezamýšlený přístup k datům nebo operacím, které aplikace nebo její uživatelé nevyžadují k provádění svých úloh. Vyhněte se rizikům zabezpečení způsobeným nepoužívanými a opětovně použitelnými oprávněními tím, že udělíte pouze příslušná oprávnění. Příslušná oprávnění jsou ta s nejméně podmíněným přístupem vyžadovaným aplikací nebo uživatelem k provádění požadovaných úloh.
Nepoužitá oprávnění
Nepoužívané 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 je použita jako zamýšlená.
Příklad: Aplikace zobrazí seznam souborů uložených na OneDrivu přihlášeného uživatele voláním rozhraní Microsoft Graph API pomocí oprávnění Files.Read . Aplikace má ale také udělené oprávnění Calendars.Read , ale neposkytuje žádné funkce kalendáře a nevolá rozhraní API kalendářů.
Riziko zabezpečení: Nepoužitá oprávnění představují riziko zabezpečení eskalace horizontálních oprávnění. Entita, která zneužije ohrožení zabezpečení v aplikaci, může použít nepoužívané oprávnění k získání přístupu k rozhraní API nebo operaci, která není normálně podporovaná nebo povolená aplikací, pokud je použita podle očekávání.
Zmírnění: Odeberte všechna oprávnění, která se nepoužívají ve voláních rozhraní API provedených aplikací.
Opětovná oprávnění
Reducible oprávnění je oprávnění, které má nižší privilegovaný protějšk, který by stále poskytoval aplikaci a její uživatelé přístup, který potřebují k provádění požadovaných úloh.
Příklad: Aplikace zobrazí informace profilu přihlášeného uživatele voláním rozhraní Microsoft Graph API, ale nepodporuje úpravy profilu. Aplikace však byla udělena oprávnění User.ReadWrite.All . Oprávnění User.ReadWrite.All je zde považováno za znovu použitelné, protože méně oprávnění User.Read.All uděluje dostatečný přístup jen pro čtení k datům profilu uživatele.
Bezpečnostní riziko: Reducible permissions představuje riziko zabezpečení eskalace vertikálních oprávnění. Entita, která zneužije ohrožení zabezpečení v aplikaci, by mohla použít opakované 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í: Nahraďte každé opětovné povolení v aplikaci svým nejméně permissivním protějškem a stále povolte zamýšlené 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í souhlasit s tímto přístupem. Souhlas lze udělit několika způsoby, včetně správce tenanta, který může vyjádřit souhlas pro všechny uživatele v tenantovi Microsoft Entra, nebo uživateli aplikace, kteří sami 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 aplikace před udělením přístupu k chráněným datům požádat o souhlas uživatele. Aby mohl aplikace pokračovat, musí uživatel udělit (nebo odepřít) souhlas s požadovaným oprávněním.
Nejnižší oprávnění během vývoje aplikací
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 se vyhnuli přeprivilegování:
- 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 k používání Graph Exploreru.
- Vyhledejte odpovídající oprávnění od nejmenších po nejvíce privilegovaných.
- Odeberte všechny duplicitní sady oprávnění v případech, kdy aplikace provádí volání rozhraní API, která mají překrývající se oprávnění.
- Použití pouze nejméně privilegované sady oprávnění pro aplikaci výběrem nejméně privilegovaného oprávnění v seznamu oprávnění.
Nejnižší oprávnění pro nasazené aplikace
Organizace často váhají upravovat spuštěné aplikace, aby se vyhnuly dopadu na běžné obchodní operace. Organizace by ale měla zvážit zmírnění rizika incidentu zabezpečení, které bylo možné nebo vážnější použitím nadprivilegovaných oprávnění, aby byla vhodná pro plánovanou aktualizaci aplikace.
Nastavte v organizaci tyto standardní postupy, které vám pomůžou zajistit, aby nasazené aplikace byly neprivilegované a v průběhu času se nepřetěžovaly:
- Vyhodnoťte volání rozhraní API vytvořená z aplikací.
- Pro požadovaná a nejméně privilegovaná oprávnění použijte Graph Explorer a dokumentaci k Microsoft Graphu .
- Oprávnění auditu 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 oprávnění stále relevantní.